1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C++调用MicrosoftSpeechPlatformSDK(SAPI)实现文字转语音提示

C++调用MicrosoftSpeechPlatformSDK(SAPI)实现文字转语音提示

时间:2019-11-03 16:10:51

相关推荐

C++调用MicrosoftSpeechPlatformSDK(SAPI)实现文字转语音提示

更多语音提示资料,阅读:为自己的软件添加语音提示功能

微软提供的语音平台开发包:

全称:Speech Recognition and Text-to-Speech Enginesfor Microsoft supported Languages

中文翻译:语音识别和文本转换为语音引擎基于Microsoft支持的语言

开发包名称:MicrosoftSpeechPlatformSDK.msi

官网:/en-us/download/details.aspx?id=27224

1.安装微软语音平台开发包

安装后,可以在安装路径下找到:

include文件夹下:开发需要的头文件

件夹:

2.Visual Studio中配置SpeechPlatformSDK

【view】-->【property manager】-->双击打开【Microsoft.Cpp.x64.user】

1).【Common properties】-->【VC++ Directories】-->【Inclde Directories】和【Lib Directories】-->分别添加头文件和lib文件路径。

2).【Linker】-->【Input】-->【Additional Dependencies】

复制lib文件名。

3.实现文字转语音功能

// SpeechPlatformTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "sapi.h" #pragma comment(lib,"ole32.lib") //CoInitialize CoCreateInstance需要调用ole32.dll #pragma comment(lib,"sapi.lib") //sapi.lib在SDK的lib目录,必需正确配置 int _tmain(int argc, _TCHAR* argv[]){ISpVoice * pVoice = NULL; //COM初始化: if (FAILED(::CoInitialize(NULL))) return FALSE; //获取ISpVoice接口: HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice); if( SUCCEEDED( hr ) ) { hr = pVoice->Speak(L"Hello world你好呀,你好吗,丫丫哦哦呀哦哦哦哦呀", 0, NULL); pVoice->Release(); pVoice = NULL; } //千万不要忘记: ::CoUninitialize(); return 0;}

朗读时,使用

voice.Speak(string,SpeechVoiceSpeakFlags.SVSFlagsAsync);

暂停,使用

voice.Pause();

从暂停中继续刚才的朗读,使用

voice.Resume();

停止功能是大多资料都没有写清楚的,而且在网上很少能找到,这里使用

voice.Speak(string.Empty, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);

这样就可以完整地实现了“朗读”、“暂停”、“继续”、“停止”的功能。

---------------------

作者:yobsun

来源:CSDN

原文:/yobsun/article/details/51891383

版权声明:本文为博主原创文章,转载请附上博文链接!

参考文献:

C++使用SAPI实现语音合成和语音识别的方法和代码

/blog/1356161

基于SAPI(微软的语音API)的文字转语音功能

/lyycs/article/details/79552399

《MFC添加语音功能》

/mars_xiaolei/article/details/82697259

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。