Преобразование текста в речь в 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
Другие вопросы по тегам