2013-07-02 67 views
1

我在我的應用程序中具有用於文本到語音的代碼。在應用程序中使用eSpeak tts引擎

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文字轉語音引擎從這個link並安裝它我的手機。

其默認語言設置爲英文。我如何在我的代碼中更改其語言,以便它可以讀取其他語言的unicode文本?

目前,對於印地語腳本中的一個詞,它會說一些數字。

我如何讓它識別文本中使用的語言?它只顯示默認谷歌tts中可用的語言環境。如何將tts引擎更改爲eSpeak tts?

+0

你可以解決這個問題。你可以分享一個相同的示例代碼嗎? – SSR

+0

@SSR不,我無法解決它..它沒有檢測到espeak引擎。 – newbee

回答

0

嘗試根據您的需要更改區域設置。

現在是Locale.ENGLISH相應地改變這個。

+0

是啊..但這並沒有檢測到eSpeak tts。它只顯示默認谷歌tts中可用的語言環境。如何將tts引擎更改爲eSpeak tts?你能否詳細解釋一下 – newbee

1

使用

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

這是TTS引擎使用,您可以通過調用getEngines得到

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

引擎封裝名初始化您的文字轉語音。

+0

?當我像這樣初始化它時,eclipse顯示上下文無法解析爲變量,TextToSpeech.OnInitListener無法解析爲變量....... – newbee

+0

我的手機上安裝了eSpeak tts。當我在eclipse中編碼時,如何讓它識別這個引擎?是否有一些即時消失的步驟?請幫忙。我是新的android – newbee

+0

我編輯了我的答案。 –