メキシコ スペイン語でテキスト読み上げ合成を使用しようとすると問題が発生します。まず、スペイン語の音声がインストールされていることを確認します。
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)
null ではないことを示しますが、ブロックSystem.IO.DirectoryNotFoundException
をコメントアウトすると発生しないif
が表示されます (そして、テキストが英語で書かれたかのように発音されます)。
電話機の音声設定を確認したところ、電話機にスペイン語の音声をダウンロードする必要があることがわかりました。その後、アプリは意図したとおりに動作します。
問題は、InstalledVoices.All
スペイン語が実際にインストールされていないため、真実を語っていないことです。
それが本当にあることを確認する信頼できる方法はありますか?