2014-10-30 39 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。

相关问题