使用eSpeak文字转语音的应用程序引擎(using eSpeak tts engine in ap

2019-10-18 08:20发布

我在我的应用程序这个代码文本到语音。

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引擎不支持这些语言,我下载eSpeak文字转语音引擎从这个链接 ,并安装它在我的手机上。

它的默认语言设置为英文。 如何更改其语言在我的代码,以便它可以读取其他语言的Unicode文本呢?

目前,在印地文脚本一句话,它说一些数字。

我如何让它识别文本中使用的语言? 这表明仅在默认的谷歌TTS可用的区域。 如何更改TTS引擎到eSpeak文字转语音?

Answer 1:

使用初始化您的文字转语音

TextToSpeech (Context context, TextToSpeech.OnInitListener listener, String engine)

那是

tts = new TextToSpeech(this, this, "com.googlecode.eyesfree.espeak");

使用TTS引擎的引擎包的名称,你可以通过调用得到getEngines



Answer 2:

尝试改变区域设置根据您的需要。

目前,它是Locale.ENGLISH相应地改变这一点。



文章来源: using eSpeak tts engine in application