我刚跟着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("你好");
它不会说任何事情,任何噱头?谢谢!
答案 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"也是允许的。