用C#编写语音自动朗读机器人
介绍之前首先推荐一个非常不错的网站,http://www.openso.net/
开发之前需要下载两个开发的sdk包以及语言包,下载地址:http://www.openso.net/querytool?index=1&word=,安装SpeechSDK51.exe,SpeechSDK51LangPack.exe,这里有个开发的帮助文档,下载地址:http://www.openso.net/queryebook?index=1&word=。
SAPI SDK是微软公司免费提供的语音应用开发工具包,这个SDK中包含了语音应用设计接口(SAPI)、微软的连续语音识别引擎(MCSR)以及微软的语音合成(TTS)引擎等等。目前的5.1版本一共可以支持3种语言的识别 (英语,汉语和日语)以及2种语言的合成(英语和汉语)。SAPI中还包括对于低层控制和高度适应性的直接语音管理、训练向导、事件、语法编译、资源、语音识别(SR)管理以及TTS管理等强大的设计接口。
1.首先使用Tlbimp工具,将COM类型库中的类型定义转换为公共语言运行库程序集中的等效定义。
命令如下:
cd C:\Program Files\Common Files\Microsoft Shared\Speech\
Tlbimp sapi.dll /out: DotNetSpeech.dll
最后再通过ildasm工具来查看生成的DotNetSpeech.dll组件。
说明:过程会有一些异常产生,不过并无妨。
2.其次,新建一个win项目,将组件通过引用的方式导入到项目中,并编写以下少量的代码。
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice v= new SpVoice();
v.Speak(this.txtContent.Text, spFlags);
3.最后运行程序,如下图所示: