Android TTS支持语音合成标记语言吗?

Android TTS支持语音合成标记语言吗?,android,text-to-speech,ssml,Android,Text To Speech,Ssml,将以下SSML()文档传递到com.svox.pico TextToSpeech引擎会导致读取XML正文,但不会从phoneme元素或emphasis元素进行控制。这个结果(没有明显的SSML控制)在运行Android2.2的NexusOne和运行SDK级别为8的AVD的模拟器上是相同的 String text = "<?xml version=\"1.0\"?>" + "<speak version=\"1.0\" xm

将以下SSML()文档传递到com.svox.pico TextToSpeech引擎会导致读取XML正文,但不会从phoneme元素或emphasis元素进行控制。这个结果(没有明显的SSML控制)在运行Android2.2的NexusOne和运行SDK级别为8的AVD的模拟器上是相同的

            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);
String text=“”+
"" +
“西红柿”+
“西红柿”+
“那是一辆大轿车!”+
“那是一辆大轿车!”+
“那是一辆大轿车!”+
“那是一个巨大的银行账户!”+
“那是一个巨大的银行账户!”+
“那是一个巨大的银行账户!”+
"";
mTts.speak(text,TextToSpeech.QUEUE\u ADD,null);
安卓TTS引擎是否支持任何SSML元素?

答案似乎是“某种程度上”。并非所有的SSML标记都受支持,但是使用
标记的一些测试示例位于


尽管测试示例生成所需的语音输出,但它们也在logcat中生成XML解析器错误消息。我在Android问题跟踪器(第11010期)上发布了一个关于这些看似不正确的错误消息的问题。

我一直在试验SSML,似乎TTS引擎会自动用root
元素包装其输入,因此如果您忽略它,那么它工作正常,不会出现解析器错误

例如:

String text = "Testing <phoneme alphabet=\"xsampa\" ph=\"&#34;{k.t@`\"/>.";
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);
String text=“测试。”;
mTts.speak(text,TextToSpeech.QUEUE\u ADD,null);

看起来SDK级别23的
android.speech.tts
支持SSML的一个子集。语音文本可以包装在
标记中,并且可以观察到
,而
则不能。没有关于SSML支持的文档