TTS是微软提供的一套将文本翻译成语音的方案。
Win7中文版内置了中文和英文的发音引擎,Win7以下的系统只有英文的发音引擎,需要安装中文的发音引擎。SpeechSDK51LangPack.exe。
开发者还需要下载:SpeechSDK51.exe。调用其中的DotNetSpeech.dll。
安装完之后,Win7可以在控制面板的“轻松访问”的“语音识别”中找到设置。Win7以下的系统可以通过“控制面板”在“语音”下找到相应的设置。
Winform下的调用:
引用Dll
using DotNetSpeech;//DotNetSpeech.dll
1 [Test]
2 public void TestVoice()
3 {
4 var voice = new SpVoice {Rate = -3};
5 try
6 {
7 voice.Speak("中文");
8 }
9 catch (Exception e)
10 {
11 Console.WriteLine(e.Message);
12 }
13 }
2 public void TestVoice()
3 {
4 var voice = new SpVoice {Rate = -3};
5 try
6 {
7 voice.Speak("中文");
8 }
9 catch (Exception e)
10 {
11 Console.WriteLine(e.Message);
12 }
13 }
Asp.net不能通过上述代码调用,因为语音装在客户端,但是可以通过ActiveObject在客户端调用:
1 try {
2 var voiceObj = new ActiveXObject("Sapi.SpVoice");
3 voiceObj.Speak("test voice:我勒个去,有报警了,快来处理啊!", 1);
4 } catch (e) {
5 alert("- 浏览器无法播放语音," + e + "\n" + "- 如果错误信息为:服务器不能创建对象,请做如下设置:\n- 在Internet选项的安全选项卡中,找到对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”这一项设置为“启用”");
6 }
2 var voiceObj = new ActiveXObject("Sapi.SpVoice");
3 voiceObj.Speak("test voice:我勒个去,有报警了,快来处理啊!", 1);
4 } catch (e) {
5 alert("- 浏览器无法播放语音," + e + "\n" + "- 如果错误信息为:服务器不能创建对象,请做如下设置:\n- 在Internet选项的安全选项卡中,找到对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”这一项设置为“启用”");
6 }
暂没有更深入的研究,希望对有需要的同学有所帮助!