Преобразование текста в речь в Windows Phone 8 с использованием SSML - исключение тега <Prosody> на реальном устройстве
Я внедряю простое речевое преобразование и синтез речи (SSML) на WP8. Когда я тестирую приложение в эмуляторе, все в порядке. Но когда я тестирую приложение на физическом устройстве (HTC Windows Phone X8), возникает одна проблема с синтезом SSML. Этот код SSML работает нормально:
await synth.SpeakSsmlAsync(@"<speak version=""1.0""
xmlns=""http://www.w3.org/2001/10/synthesis"" xml:lang=""en-US"">
<voice gender=""female"">
Volume level 100.
</voice>
</speak>");
И этот SSML:
await synth.SpeakSsmlAsync(@"<speak version=""1.0""
xmlns=""http://www.w3.org/2001/10/synthesis"" xml:lang=""en-US"">
<voice gender=""female"">
<prosody volume=""100.0"">
Volume level 100.
</prosody>
</voice>
</speak>");
выдает исключение:
{System.FormatException:
The text associated with this error code could not be found.
at Windows.Phone.Speech.Synthesis.SpeechSynthesizer.SpeakSsmlAsync(String content)
at PhoneApp1.MainPage.<voiceSynth_Click>d__9.MoveNext()} System.Exception
{System.FormatException}
У кого-нибудь есть идеи, почему <prosody>
тег не работает на устройстве?
1 ответ
Решение
ЗАДАЧА РЕШЕНА!
<prosody volume=""100.0""> doesn't work because the number is not integer.
<prosody volume=""100""> it should look like this