2014-10-30 66 views
3

我想在我的TTS對象中設置荷蘭語。以下是代碼,如何在文本到語音中設置荷蘭語?

@Override 
public void onInit(int status) 
{ 
    if (status == TextToSpeech.SUCCESS) 
    { 
     int result = tts.setLanguage(Locale.getDefault()); 

     System.out.println ("Result : " + result + " " + Locale.getDefault().getLanguage()); 

     if (result == TextToSpeech.LANG_MISSING_DATA 
       || result == TextToSpeech.LANG_NOT_SUPPORTED) 
     { 
      Toast.makeText(this , "Please Set your Language to English US.", Toast.LENGTH_LONG).show(); 
     } 
     else 
     { 
      tts.speak("Hoe gaat het",TextToSpeech.QUEUE_FLUSH, null); 
     } 
    } 
} 

以下行設置的語言TTS

int result = tts.setLanguage(Locale.getDefault()); 

可用區域設置在區域設置。

enter image description here

現在,如果我的手機的語言的是荷蘭的話,我可以設置TTS語言爲荷蘭語,但是如果我的手機語言不是荷蘭(對於例如,如果是英語),那麼將TTS的語言設置爲荷蘭語是沒有選擇的。

任何人都可以幫助我在TTS中設置荷蘭語嗎?

回答

8

這應該工作

int result = tts.setLanguage(new Locale("de_NL")); 
+0

謝謝,它的工作原理:) – user2060383 2014-10-31 10:18:38

+0

爲什麼地球上荷蘭有「de」前綴而不是「nl」? – Josh 2016-04-12 14:06:14

4

您正在設置默認語言環境setLocale。這就是這個問題的原因:現在,如果我的手機的語言是荷蘭語,那麼我可以將TTS的語言設置爲荷蘭語,但是如果我的手機的語言不是荷蘭語(例如,如果是英語),則無法設置TTS的語言爲荷蘭語。

您應該使用您需要的語言環境。因此,與

int result = tts.setLanguage(Locale.XYZ); //XYZ is Locale you want. 

實例代替

int result = tts.setLanguage(Locale.getDefault()); 

int result = tts.setLanguage(Locale.GERMAN); 

參考documentation,其中包括可用的本地化,您可以設置。 DUTCH在那裏不可用。

儘管this文章提到DUTCH可用區域設置。可能是它不適用於android,但對於java,建議here

希望這有助於。

+0

請再次檢查該問題,我已在語言環境中添加了可用選項的圖像。 – user2060383 2014-10-30 09:03:30

0

的印地文印

newsReaderTTS.setLanguage(新的區域( 「欣」, 「IND」, 「變體」));

爲英語(美國)

newsReaderTTS.setLanguage(新區域設置( 「主機」, 「USA」, 「變體」));

其中newsreaderTTS是TTS。