我的应用程序中有这个代码用于文本到语音。
public void onInit(int status) {
// TODO Auto-generated method stub
if (status == TextToSpeech.SUCCESS) {
//Setting speech language
int result = tts.setLanguage(Locale.ENGLISH);
//If your device doesn't support language you set above
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
//Cook simple toast message with message
Toast.makeText(this, "Language not supported", Toast.LENGTH_LONG).show();
//Log.e("TTS", "Language is not supported");
}
//TTS is not initialized properly
} else {
Toast.makeText(this, "TTS Initilization Failed", Toast.LENGTH_LONG).show();
//Log.e("TTS", "Initilization Failed");
}
}
我的应用程序包括许多不同的语言,如英语,印地语,马拉地语,泰卢固语,泰米尔语等。由于默认的android tts引擎不支持这些语言,我从这个link下载了eSpeak tts引擎并安装了它我的手机。
其默认语言设为英语。如何在我的代码中更改其语言,以便它也可以读取其他语言的unicode文本?
目前,对于印地文文字中的一个词,它会说一些数字。
如何让它识别文本中使用的语言?它仅显示默认Google帐户中可用的区域设置。如何将tts引擎更改为eSpeak tts?
答案 0 :(得分:1)
使用
初始化TextToSpeechTextToSpeech (Context context, TextToSpeech.OnInitListener listener, String engine)
那是
tts = new TextToSpeech(this, this, "com.googlecode.eyesfree.espeak");
引擎要使用的TTS引擎的包名称,您可以通过调用getEngines
来获取。
答案 1 :(得分:0)
尝试根据需要更改区域设置。
目前Locale.ENGLISH
会相应更改此内容。