向SpeechSynthesizer添加新语言

所以我试图在SpeechSynthesizer中添加一种新的语言,特别是挪威语,但它似乎没有安装。

发现这个: 在.NET Speech中添加另一个声音 (但问题是捷克语不受支持)

我从这里安装了挪威语包: http : //www.microsoft.com/en-us/download/details.aspx?id = 27224

在我的代码中,我使用它来检查它是否已安装:

foreach (var voice in speaker.GetInstalledVoices()) { Console.WriteLine(voice.VoiceInfo.Description); } 

但它只输出: Microsoft Zira Desktop – 英语(美国)

检查了文字转语音工具,这也是唯一的选择。 还尝试注销/登录并重新启动计算机。

有人知道怎么修这个东西吗?

您可能需要向Windows 10添加语音语言并设置您的区域设置,国家/地区,Windows显示语言和语音语言,以便它们与Cortana支持的区域设置配置一致。

要确认设置是否正确:

  1. 打开设置。 选择时间和语言,然后选择区域和语言。

  2. 检查Windows显示语言的语言(设置为默认值)设置。 如果您没有所需的语言,请添加所需的语言:

    • 单击添加语言。
    • 从列表中选择所需的语言。
    • 选择所需的区域设置,即语言/国家/地区组合。
    • 单击新选择的区域设置,然后选择选项。
    • 在“下载语言包”下,单击“下载”
    • 在语音下,单击下载。
    • 下载完成后(可能需要几分钟),返回时间和语言设置。
    • 单击您的新语言,然后选择“设为默认值”。
    • 注意:如果您更改了语言,则必须退出帐户并重新登录才能使新设置生效。
  3. 检查国家或地区设置。 确保所选国家/地区与语言设置中设置的Windows显示语言相对应。

  4. 返回“设置”,“时间和语言”,然后选择“语音”。 检查语音语言设置,确保它与之前的设置保持一致。

正确完成上述操作后,您的语言应出现在SpeechSynthesizer.AllVoices集合中。 然后,您应该能够将此语音分配给SpeechSynthesizer实例的Voice属性:

  private async void SpeakText(MediaElement audioPlayer, string TTS) { SpeechSynthesizer ttssynthesizer = new SpeechSynthesizer(); //Set the Voice/Speaker to Spanish using (var speaker = new SpeechSynthesizer()) { speaker.Voice = (SpeechSynthesizer.AllVoices.First(x => x.Gender == VoiceGender.Female && x.Language.Contains("ES")) ); ttssynthesizer.Voice = speaker.Voice; } SpeechSynthesisStream ttsStream = await ttssynthesizer.SynthesizeTextToStreamAsync(TTS); audioPlayer.SetSource(ttsStream, ""); } 

http://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/speech-language-in-windows-10-home/3f04bc02-9953-40b1-951c-c1d262fc3f63?auth=1