1

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

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 tts 引擎并将其安装在我的手机上。

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

目前,对于印地文中的一个词,它会说出一些数字。

我如何让它识别文本中使用的语言?它仅显示默认 google tts 中可用的语言环境。如何将 tts 引擎更改为 eSpeak tts?

4

2 回答 2

1

使用初始化您的 TextToSpeech

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

那是

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

engine 要使用的 TTS 引擎的包名,可以通过调用getEngines.

于 2013-07-03T18:01:42.310 回答
0

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

目前正在Locale.ENGLISH相应地改变这一点。

于 2013-07-02T17:42:53.167 回答