2

我正在开发一个应用程序,我想在其中使用 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 中不起作用。语法是否正确?

谢谢

4

1 回答 1

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 引擎。默认系统语言设置为您选择的语言(在我的情况下设置为旁遮普语)

于 2017-07-29T10:26:39.767 回答