将以下 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 引擎自动用根 <speak>
包装它的输入元素,因此如果您将其省略,则它可以正常工作并且不会出现解析器错误。
例子:
String text = "Testing <phoneme alphabet=\"xsampa\" ph=\""{k.t@`\"/>.";
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);
关于android - Android TTS 是否支持语音合成标记语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3525424/