使用Microsoft Speech Platform SDK v11.0不会说中文

时间:2014-07-02 04:01:51

标签: c# .net microsoft-speech-platform

我刚跟着MSDN Installation,安装了" MSSpeech_TTS_zh-CN_HuiHui.msi" &安培; " MSSpeech_SR_zh-CN_TELE.msi",然后运行Sample,英语语音效果很好,但是当我键入中文时:

SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SelectVoiceByHints(VoiceGender.Neutral);
synth.Speak("你好");

它不会说任何事情,任何噱头?谢谢!

1 个答案:

答案 0 :(得分:0)

您可能需要明确选择语音,查看SelectVoiceByHints上的MSDN文档,它会声明它将返回符合您规范的第一个语音。

来自Link(强调我的)。

  

使用GetInstalledVoices方法和VoiceInfo类获取您可以选择的已安装的文字转语音(TTS)语音的名称。 SpeechSynthesizer对象选择第一个已安装的语音匹配指定的特征

     

当应用程序调用GetInstalledVoices时,该方法会验证它在注册表中找到的每个语音是否满足某些最低标准。对于任何验证失败的语音,GetInstalledVoices将其Enabled属性设置为False。应用程序无法选择Enabled属性为False的语音。通常,应用程序不会设置语音的Enabled属性。

     

要按名称选择语音,请使用SelectVoice方法

或者您可以使用以CultureInfo作为参数的SelectVoiceByHints方法的重载。

  

SpeechSynthesizer对象查找其性别,年龄和文化属性与性别,年龄和文化参数匹配的语音。 SpeechSynthesizer计算它找到的匹配项,并在计数等于voiceAlternate参数时返回语音。

     

Microsoft Windows和System.Speech API接受所有有效的语言 - 国家/地区代码。要使用culture参数中指定的语言执行文本到语音,必须安装支持该语言国家/地区代码的语音合成引擎。 Microsoft Windows 7附带的语音合成引擎使用以下语言 - 国家/地区代码:

     

•EN-US。英语(美国)

     

•ZH-CN。中文(中国)

     

•ZH-TW。中文(台湾)

     

两个字母的语言代码,例如" en"也是允许的。