+-

将以下SSML( Speech Synthesis Markup Language)文档传递给com.svox.pico TextToSpeech引擎会导致读取XML正文,但无法通过音素元素或强调元素进行控制.这个结果(没有明显的SSML控制)在运行Android 2.2的Nexus One以及运行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&#x259;mei&#x325;&#x27E;ou&#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元素?
最佳答案
我一直在试验SSML,似乎TTS引擎自动用root< speak>包装它的输入.元素,所以如果你把它留下来,那么它工作正常,你不会得到一个解析器错误.
例:
String text = "Testing <phoneme alphabet=\"xsampa\" ph=\""{k.t@`\"/>.";
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);
点击查看更多相关文章
转载注明原文:Android TTS是否支持语音合成标记语言? - 乐贴网