微软TTS语音引擎实现文本朗读

本文比较了科大讯飞和neospeech的TTS语音引擎,推荐了neospeech的liang语音库,并介绍了如何使用微软TTS引擎进行文本朗读和生成wav文件的C#示例代码。
摘要由CSDN通过智能技术生成

科大讯飞和neospeech tts哪个更好

 

朋友们或许还有一个疑问,就是不知道科大讯飞和neospeech哪个更好。据我的体会,它们其实各有优点。

科大讯飞有几个语音库,比如小宇、小燕、还有一个粤语和英语的;而neospeech则有lily、liang、hui几个中文语音库。

科大的最大优点就是朗诵清楚,听起来能做到几乎每个字都让我们能听进去。而neospeech的优点则是流畅,高低起伏、抑扬顿挫,临场感很强,不过有时候某些字眼会让人听不太清楚。

提醒一下,neospeech里面的liang语音库,个人觉得是最好用的,浑厚的男声每个字都朗读的很清楚,而且临场感和流畅度都很强,是中文文字朗读里面的佼佼者!赞一个~~

要下载的朋友可以在电驴里面搜索下载。

综上所述,从总评来说,neospeech应该比讯飞语音略胜一筹的!至于各家的优点上面已经说过。要我自己来排名的话,是这样的(由高至低):

a. neospeech liang
b. 科大讯飞 小燕
c. neospeech lily
d. neospeech hui
e. 科大讯飞 小宇

当然如果说到英文,neospeech里面的Paul算是当前最好的发声效果了!连霍金都在用它,你说它有多么强悍呢!

最后说一下,文语通和方正畅听都是科大的,不过体积相比要小很多,尤其方正畅听,如果你的要求不高的话,完全可以使用方正畅听,听起来也是挺流畅滴。

最后希望大家好好爱护自己的眼睛,不要长期用眼看电脑,转“看”为“听”,既能护眼,又是一种享受,何乐不为呢?

下载地址:http://www.verycd.com/topics/2780296/(neospeech)

                  http://www.verycd.com/topics/2828273/(科大)

 

使用微软TTS语音引擎实现文本朗读

2017年11月04日 15:51:30 byxdaz 阅读数:12312

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/byxdaz/article/details/78443954

TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语音输出。TTS语音引擎有微软TTS语音引擎、科大讯飞语音引擎等。科大讯飞tts sdk参考这个页面http://www.xfyun.cn/sdk/dispatcher

文本主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件。

1、语音引擎及语音库的安装

微软TTS语音引擎提供了Windows Speech SDK开发包供编程者使用。Windows Speech SDK包含语音合成SS引擎和语音识别SR引擎两种,语音合成引擎用于将文字转换成语音输出,语音识别引擎用于识别语音命令。

Windows Speech SDK可以在微软的官网上免费下载,下载地址为:http://www.microsoft.com/download/en/details.aspx?id=10121

在该下载界面中,选择下载SpeechSDK51.exe、SpeechSDK51LangPach.exe和sapi.chm 即可。

SpeechSDK51.exe

语音合成引擎

SpeechSDK51LangPach.exe

语音库,支持日语和简体中文需要这个支持。

sapi.chm

帮助文档

speechsdk51MSM.exe

语音引擎集成到你的产品跟产品一起发布。解压出来三个文件夹1033、1041和2052。其中,1033下主要是用于英文的TTS和SR的.msm文件,1041下主要是用于日文SR的.msm文件,2052下是用于中文TTS和SR的msm文件。

Sp5TTintXP.exe

XP下Mike和Mary语音。

下载完成后,先安装语音引擎SpeechSDK51.exe,再安装中文语音库SpeechSDK51LangPach.exe。

目前最常用的Windows Speech SDK版本有三种:5.1、5.3和5.4。

       Windows Speech SDK 5.1版本支持xp系统和server 2003系统,需要下载安装。XP系统默认只带了个Microsoft Sam英文男声语音库,想要中文引擎就需要安装Windows Speech SDK 5.1。

       Windows Speech SDK 5.3版本支持Vista系统和Server 2008系统,已经集成到系统里。Vista和Server 2003默认带Microsoft lili中文女声语音库和Microsoft Anna英文女声语音库。

       Windows Speech SDK 5.4版本支持Windows7系统,也已经集成到系统里,不需要下载安装。Win7系统同样带了Microsoft lili中文女声语音库和Microsoft Anna英文女声语音库。Microsoft lili支持中英文混读。

2、SAPI接口的使用说明

       1)、基本朗读过程的实现

在使用语音引擎之前进行初始化:

       ISpVoice *pSpVoice;        // 重要COM接口
       ::CoInitialize(NULL);         // COM初始化
       // 获取ISpVoice接口
       CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_INPROC_SERVER, IID_ISpVoice, (void**)&pSpVoice);

获取到ISpVoice接口以后,我们就可以通过pSpVoice指针调用SAPI接口了。

我们可以设置音量:pSpVoice->SetVolume(80);。SetVolume的参数即音量的范围在0到100之间。

可以这样朗读字符串内容:pSpVoice->Speak(string, SPF_DEFAULT, NULL);。这样string里的内容就会被朗读出来了,第二个参数SPF_DEFAULT表示使用默认设置,包括同步朗读的设置。异步朗读可以设置成 SPF_ASYNC。同步朗读表示读完string中的内容,speak函数才会返回,而异步朗读则将字符串送进去就返回,不会阻塞。

使用完语音引擎后应执行:

       pSpVoice->Release();
       ::CoUninitialize();      

这样资源被释放,语音朗读过程结束。

以上就完成了一个简单的语音合成朗读的功能。

2)、ISpVoice的成员函数

鸡啄米再简单说明几个ISpVoice接口的成员函数:

       HRESULT Speak(LPCWSTR *pwcs, DWORD dwFlags, ULONG *pulStreamNumber);

用于读取字符串pwcs里的内容。参数pwcs为要朗读的字符串。dwFlags是用于控制朗读方式的标志,具体意义可以查看文档中的枚举 SPEAKFLAGS。pulStreamNumber为输出参数,它指向本次朗读请求对应的当前输入流编号,每次朗读一个字符串时都会有一个流编号返 回,异步朗读时使用。

       HRESULT SetRate( long   RateAdjust);         // 设置朗读速度,取值范围:-1010
       HRESULT GetRate(long *pRateAdjust);        // 获取朗读速度   
       HRESULT SetVoice(ISpObjectToken   *pToken);    // 设置使用的语音库
       HRESULT GetVoice(ISpObjectToken** ppToken);  // 获取语音库
       HRESULT Pause ( void );                              // 暂停朗读
       HRESULT Resume ( void );                          // 恢复朗读 
       //  在当前朗读文本中根据lNumItems的符号向前或者向后跳过指定数量(lNumItems的绝对值)的句子。
       HRESULT Skip(LPCWSTR  *pItemType, long  lNumIte
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值