【发布时间】:2016-09-06 22:59:14
【问题描述】:
我在尝试使用墨西哥西班牙语的文本到语音合成时遇到问题。我首先检查是否安装了西班牙语语音:
String Text = "some text in Spanish";
IEnumerable<VoiceInformation> spanishVoices = from voice in InstalledVoices.All
where voice.Language == "es-MX"
select voice;
if (spanishVoices.ElementAt(0) != null)
synth.SetVoice(spanishVoices.ElementAt(0));
await synth.SpeakTextAsync(Text);
现在,调试器显示 spanishVoices.ElementAt(0) 不为空,但我得到一个 System.IO.DirectoryNotFoundException,如果我注释掉 if 块不会发生这种情况(并且我得到的文本发音就像它是写的一样英文)。
查看手机语音设置后发现手机需要下载西班牙语语音。完成此操作后,应用程序按预期工作。
所以,问题在于InstalledVoices.All 没有说实话,因为西班牙语并没有真正安装。
有什么可靠的方法可以确定它是真的吗?
【问题讨论】:
-
我怀疑异常已经达到了预期效果。
-
您是否看到与
SpeechSynthesizer.GetInstalledVoices()相同的行为?
标签: windows-phone-8 text-to-speech