您可能想要明确选择语音,查看 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”。