欢迎来到天天文库
浏览记录
ID:37772610
大小:19.65 KB
页数:7页
时间:2019-05-30
《微软Windows+Speech+SDK编程入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微软WindowsSpeechSDK编程入门2009-02-2413:33一、SAPI简介软件中的语音技术包括两方面的内容,一个是语音识别(speechrecognition)和语音合成(speechsynthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口API,虽然现在不是业界标准,但是应用比较广泛。SAPI全称TheMicrosoftSpeechAPI.相关的SR和SS引擎位于SpeechSDK开发包中。这个语音引擎支持多种语言的识别和朗读,包括英文、中文、日文等。SAPI包括以下组件对象(接口):(1)Voice
2、CommandsAPI。对应用程序进行控制,一般用于语音识别系统中。识别某个命令后,会调用相关接口是应用程序完成对应的功能。如果程序想实现语音控制,必须使用此组对象。(2)VoiceDictationAPI。听写输入,即语音识别接口。(3)VoiceTextAPI。完成从文字到语音的转换,即语音合成。(4)VoiceTelephoneAPI。语音识别和语音合成综合运用到电话系统之上,利用此接口可以建立一个电话应答系统,甚至可以通过电话控制计算机。(5)AudioObjectsAPI。封装了计算机发音系统。SAPI是架构在COM基础上的,微
3、软还提供了ActiveX控件,所以不仅可用于一般的windows程序,还可以用于网页、VBA甚至EXCEL的图表中。如果对COM感到陌生,还可以使用微软的C++WRAPPERS,它用C++类封装了语音SDKCOM对象。二、安装SAPISDK。首先从这个站点下载开发包:http://www.microsoft.com/speech/download/sdk51MicrosoftSpeechSDK5.1添加了Automation支持。所以可以在VB,ECMAScript等支持Automation的语言中使用。版本说明:Version:5.1发
4、布日期:8/8/2001语音:English下载尺寸:2.0MB-288.8MB这个SDK开发包还包括了可以随便发布的英文和中文的语音合成引擎(TTS),和英文、中文、日文的语音识别引擎(SR)。系统要求98以上版本。编译开发包中的例子程序需要vc6以上环境。******下载说明******:(1)如果要下载例子程序,说明文档,SAPI以及用于开发的美国英语语音引擎,需要下载SpeechSDK51.exe,大约68M。(2)如果想要使用简体中文和日文的语音引擎,需要下载SpeechSDK51LangPack.exe。大约82M。(3)如果
5、想要和自己的软件一起发布语音引擎,需要下载SpeechSDK51MSM.exe,大约132M。 (在这个地址,我未能成功下载)。(4)如果要获取XP下的Mike和Mary语音,下载Sp5TTIntXP.exe。大约3.5M。(5)如果要获取开发包的文档说明,请下载sapi.chm。大约2.3M。这个在sdk51里面已经包含。下载完毕后,首先安装SpeechSDK51.exe,然后安装中文语言补丁包SpeechSDK51LangPack,然后展开msttss22l,自动将所需dll安装到系统目录。三、配置vc环境在vc6.0的环境下编
6、译语音工程,首先要配置编译环境。假设sdk安装在d:MicrosoftSpeechSDK5.1路径下,打开工程设置对话框,在c/c++栏中选择Preprocessor分类,然后在"附加包含路径"中输入d:MicrosoftSpeechSDK5.1include告诉vc编译程序所需的SAPI头文件的位置。然后切换到LINK栏,在Input分类下的附加库路径中输入:d:MicrosoftSpeechSDK5.1libi386使vc在链接的时候能够找到sapi.lib。四、语音合成的应用。即使用SAPI实现TTS(TexttoSp
7、eech)。1、首先要初始化语音接口,一般有两种方式: ISpVoice*pVoice; ::CoInitialize(NULL); HRESULThr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice, (void**)&pVoice); 然后就可以使用这个指针调用SAPI函数了,例如 pVoice->SetVolume(50);//设置音量 pVoice->Speak(str.AllocSysString(),SPF_ASYNC
8、,NULL); 另外也可以使用如下方式: CComPtr m_cpVoice; HRESULThr=m_cpVoice.CoCreateInstance(CLS
此文档下载收益归作者所有