更多语音提示资料,阅读:为自己的软件添加语音提示功能
微软提供的语音平台开发包:
全称: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