2013-04-02 2 views
0

Я реализую простое речевое преобразование и синтез речи (SSML) на WP8. Когда я тестирую приложение в эмуляторе, все в порядке. Но когда я тестирую приложение на физическом устройстве (HTC Windows Phone X8), возникает одна проблема с синтезом SSML. Этот SSML код работает отлично:Текст в текстовом редакторе Windows Phone 8 с использованием SSML - <Prosody> Исключение тега на реальном устройстве

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