所以我试图在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 - 英语(美国)
检查了文字转语音工具,这也是唯一的选择。 还尝试注销/登录并重新启动计算机。
任何人都知道如何解决这个问题?
答案 0 :(得分:4)
您可能需要在Windows 10中添加语音语言并设置您的区域设置,国家/地区,Windows显示语言和语音语言,以便它们与Cortana支持的区域设置配置一致。
确认设置设置正确:
打开设置。选择时间和时间语言,然后是地区&语言。
检查Windows显示语言的语言(设置为默认值)设置。如果您没有所需的语言,请添加所需的语言:
检查国家或地区设置。确保所选国家/地区与语言设置中设置的Windows显示语言相对应。
返回设置和时间&语言,然后选择语音。检查语音语言设置,确保它与之前的设置保持一致。
正确完成上述操作后,您的语言应出现在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, "");
}