当前位置:   article > 正文

使用微软TTS语音引擎实现文本朗读_阅读tts语音引擎网络导入

阅读tts语音引擎网络导入

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)、基本朗读过程的实现

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

  1.        ISpVoice *pSpVoice; // 重要COM接口
  2.        ::CoInitialize(NULL); // COM初始化
  3.        // 获取ISpVoice接口
  4.        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函数才会返回,而异步朗读则将字符串送进去就返回,不会阻塞。

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

  1.        pSpVoice->Release();
  2.        ::CoUninitialize();

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

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

2)、ISpVoice的成员函数

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

  1.        HRESULT Speak(LPCWSTR *pwcs, DWORD dwFlags, ULONG *pulStreamNumber);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/55452
推荐阅读
相关标签
  

闽ICP备14008679号