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