1

我只是按照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("你好");

它不会说话,有什么建议吗?谢谢!

4

1 回答 1

0

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

来自链接(强调我的)。

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

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

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

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

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

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

•zh-CN。美国英语)

•zh-CN。中文(中国)

•zh-TW。中文(台湾)

也允许使用两个字母的语言代码,例如“en”。

于 2014-07-02T04:23:45.187 回答