向SpeechSynthesizer添加新语言

时间:2015-03-20 10:09:54

标签: c# .net speech-synthesis

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

发现这个: Add another voice into .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 - 英语(美国)

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

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

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

确认设置设置正确:

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

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

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

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

  5. 正确完成上述操作后,您的语言应出现在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

相关问题