我正在开发一个应用程序,我想使用TTS来阅读文本。我想离线支持印度语言,所以我在我的Android设备上安装了eSpeak Text To Speech引擎并将其设置为默认值。在理解了语音合成标记语言(SSML)后,我意识到我可以将音素作为输入,使语音引擎正确发音。所以我创建了一个示例应用程序,其中我正在使用Android的TextToSpeech类。
String text = "[[ D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt ]]";// "This is some phonetic text input"
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
我在espeak的文档中读到,要使引擎理解音素,只需将语音表达式放在双方括号中,它就会接受它作为音素并相应地渲染它。但这在Android中不起作用。语法是否正确?
由于
答案 0 :(得分:0)
我在我的应用程序中直接使用以下代码与旁遮普语言unicode文本,它的工作原理。
m_objTTS = new TextToSpeech(this, this, "com.googlecode.eyesfree.espeak");
m_strTexttoSpeak = "ਸਕਰੀਨ ਤੇ ਟੈਪ ਕਰੋ|"; // its punjabi translation for "Tap on Screen"
m_objTTS.speak(m_strTexttoSpeak,TextToSpeech.QUEUE_FLUSH, null, null);
您应该在移动设备上安装espeak TTS应用并将其设置为默认TTS引擎。默认系统语言设置为您选择的语言(在我的情况下设置旁遮普语)