admin 管理员组文章数量: 1086019
2024年3月22日发(作者:for语句流程图画法)
微软Windows Speech SDK编程入门
2009-02-24 13:33
一、SAPI简介
软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech
synthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口API,虽然现在不是业界
标准,但是应用比较广泛。
SAPI全称 The Microsoft Speech API.相关的SR和SS引擎位于Speech SDK开发包中。这个语音引
擎支持多种语言的识别和朗读,包括英文、中文、日文等。
SAPI包括以下组件对象(接口):
(1)Voice Commands API。对应用程序进行控制,一般用于语音识别系统中。识别某个命令后,会
调用相关接口是应用程序完成对应的功能。如果程序想实现语音控制,必须使用此组对象。
(2)Voice Dictation API。听写输入,即语音识别接口。
(3)Voice Text API。完成从文字到语音的转换,即语音合成。
(4)Voice Telephone API。语音识别和语音合成综合运用到电话系统之上,利用此接口可以建立一
个电话应答系统,甚至可以通过电话控制计算机。
(5)Audio Objects API。封装了计算机发音系统。
SAPI是架构在COM基础上的,微软还提供了ActiveX控件,所以不仅可用于一般的windows程序,
还可以用于网页、VBA甚至EXCEL的图表中。如果对COM感到陌生,还可以使用微软的C++ WRAPPERS,
它用C++类封装了语音SDK COM对象。
二、安装SAPI SDK。
首先从这个站点下载开发包:/speech/download/sdk51
Microsoft Speech SDK 5.1添加了Automation支持。所以可以在VB,ECMAScript等支持Automation
的语言中使用。
版本说明:
Version: 5.1
发布日期: 8/8/2001
语音: English
下载尺寸: 2.0 MB - 288.8 MB
这个SDK开发包还包括了可以随便发布的英文和中文的语音合成引擎(TTS),和英文、中文、日文的
语音识别引擎(SR)。
系统要求98以上版本。编译开发包中的例子程序需要vc6以上环境。
******下载说明******:
(1)如果要下载例子程序,说明文档,SAPI以及用于开发的美国英语语音引擎,需要下载
,大约68M。
(2)如果想要使用简体中文和日文的语音引擎,需要下载。大约82M。
(3)如果想要和自己的软件一起发布语音引擎,需要下载,大约132M。
(在这个地址,我未能成功下载)。
(4)如果要获取XP下的 Mike 和 Mary 语音,下载。大约3.5M。
(5)如果要获取开发包的文档说明,请下载。大约2.3M。这个在sdk51里面已经包含。
下载完毕后,首先安装,然后安装中文语言补丁包SpeechSDK51LangPack,然后展
开
msttss22l,自动将所需dll安装到系统目录。
三、配置vc环境
在vc6.0的环境下编译语音工程,首先要配置编译环境。假设sdk安装在d:Microsoft Speech SDK
5.1路径下,打开工程设置对话框,在c/c++栏中选择Preprocessor分类,然后在"附加包含路径"
中输入
d:Microsoft Speech SDK 5.1include
告诉vc编译程序所需的SAPI头文件的位置。
然后切换到LINK栏,在Input分类下的附加库路径中输入:
d:Microsoft Speech SDK 5.1libi386
使vc在链接的时候能够找到。
四、语音合成的应用。即使用SAPI实现TTS(Text to Speech)。
1、首先要初始化语音接口,一般有两种方式:
ISpVoice* pVoice;
::CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice,
(void **)&pVoice);
然后就可以使用这个指针调用SAPI函数了,例如
pVoice->SetVolume(50);//设置音量
pVoice->Speak(ysString(),SPF_ASYNC,NULL);
另外也可以使用如下方式:
CComPtr
HRESULT hr = m_teInstance( CLSID_SpVoice );
在下面的例子中都用这个m_cpVoice变量。
CLSID_SpVoice的定义位于SPAI.H中。
2、获取/设置输出频率。
SAPI朗读文字的时候,可以采用多种频率方式输出声音,比如:
8kHz 8Bit Mono、8kHz 8Bit Stereo、44kHz 16Bit Mono、44kHz 16Bit Stereo等。在音调上有
所差别。具体可以参考sapi.h。
可以使用如下代码获取当前的配置:
CComPtr
HRESULT hrOutputStream = m_cpVoice->GetOutputStream(&cpStream);
if (hrOutputStream == S_OK)
{
版权声明:本文标题:Speech SDK使用说明 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711105490a588740.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论