2010-08-19 100 views
7

将以下SSML(Speech Synthesis Markup Language)文档传递给com.svox.pico TextToSpeech引擎会导致读取XML主体,但不会从音素元素或重点元素进行控制。该结果(没有明显的SSML控制)是在Nexus的同一个运行Android 2.2以及上运行的AVD与SDK水平模拟器8.Android TTS支持语音合成标记语言吗?

  String text = "<?xml version=\"1.0\"?>" + 
       "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" " + 
        "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + 
        "xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " + 
         "http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " + 
        "xml:lang=\"en-US\">" + 

        "tomato " + 
        "<phoneme alphabet=\"ipa\" ph=\"t&amp;#x259;mei&amp;#x325;&amp;#x27E;ou&amp;#x325;\"> tomato </phoneme> " + 

        "That is a big car! " + 
        "That <emphasis> is </emphasis> a big car! " + 
        "That is a <emphasis> big </emphasis> car! " + 
        "That is a huge bank account! " + 
        "That <emphasis level=\"strong\"> is </emphasis> a huge bank account! " + 
        "That is a <emphasis level=\"strong\"> huge </emphasis> bank account!" + 
       "</speak>"; 
      mTts.speak(text, TextToSpeech.QUEUE_ADD, null); 

是否任何Android TTS引擎支持任何SSML的元素?

回答

3

我一直在尝试使用SSML,看起来TTS引擎会自动使用根<speak>元素包装它的输入,所以如果你不发表它,那么它可以正常工作,并且不会出现解析器错误。

实施例:

String text = "Testing <phoneme alphabet=\"xsampa\" ph=\"&#34;{[email protected]`\"/>."; 
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);