2016-02-25 88 views
0

當我檢查哪些語言泰國(TH)可butit不讀課文我怎樣才能讓文本到語音朗讀外語?

@SuppressLint("NewApi") 
private void speak() { 
    if(tts!=null && tts.isSpeaking()){ 
     tts.stop(); 
    }else{ 
     tts = new TextToSpeech(this, this); 
     tts.setLanguage(Locale.forLanguageTag("th"));  //tts.getAvailableLanguages().; 
     tts.setSpeechRate(0.7f); 
    } 
} 

@Override 
public void onInit(int status) { 

    tts.speak("ซึ่งมีระยะทางส่วนใหญ่เป็น ทางหลวงแผ่นดินหมายเลข (สายบางนา - หาดเล็ก) เป็นเส้นทางคมนาคมหลักเส้นหนึ่งของประเทศไทย ", TextToSpeech.QUEUE_FLUSH, null); 

} 
+0

當你把EN其工作或... –

+0

@BilalUsean當我改變文本英語它的工作原理 – code511788465541441

+0

泰國,泰國(th_TH) - >試試這個** tts.setLanguage(Locale.th_TH); ** –

回答

1

編輯你的代碼是這樣的:

@SuppressLint("NewApi") 
private void speak() { 
    if(tts!=null && tts.isSpeaking()) { 
     tts.stop(); 
    }else{ 
     tts = new TextToSpeech(this, this); 
    } 
} 

@Override public void onInit(int status) { 
    if (status == TextToSpeech.SUCCESS) { 
     int res = tts.setLanguage("th_TH"); 
     //tts.getAvailableLanguages().; 
     tts.setSpeechRate(0.7f); 

     if (res >= TextToSpeech.LANG_AVAILABLE) { 
      tts.speak("ซึ่งมีระยะทางส่วนใหญ่เป็น ทางหลวงแผ่นดินหมายเลข (สายบางนา - หาดเล็ก) เป็นเส้นทางคมนาคมหลักเส้นหนึ่งของประเทศไทย ", TextToSpeech.QUEUE_FLUSH, null); 
    } 
} 

因爲TextToSpeech例如異步方式創建,因此你可以在onInit()方法完成後控制你的tts時聽到合成結果。

+0

謝謝你的工作。我必須做的唯一改變是這條線\t \t \t'int res = tts.setLanguage(Locale.forLanguageTag(「th」));' – code511788465541441

相關問題