在应用中使用eSpeak tts引擎

时间:2013-07-02 17:19:16

标签: android unicode text-to-speech

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

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?

2 个答案:

答案 0 :(得分:1)

使用

初始化TextToSpeech
TextToSpeech (Context context, TextToSpeech.OnInitListener listener, String engine)

那是

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

引擎要使用的TTS引擎的包名称,您可以通过调用getEngines来获取。

答案 1 :(得分:0)

尝试根据需要更改区域设置。

目前Locale.ENGLISH会相应更改此内容。