如何在文本转语音中设置荷兰语?

use*_*383 4 android text-to-speech android-location

我想在我的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 );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下行设置TTS中的语言

int result = tts.setLanguage(Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

Locale中的可用区域设置.

在此输入图像描述

现在,如果我的手机语言是荷兰语,那么我可以将TTS的语言设置为荷兰语,但如果我的手机语言不是荷兰语(例如,如果它是英语),则没有选项将TTS的语言设置为荷兰语.

有人可以帮我在TTS中设置荷兰语吗?

Hoa*_*yen 8

这应该工作

int result = tts.setLanguage(new Locale("de_NL"));
Run Code Online (Sandbox Code Playgroud)


Mys*_*icϡ 5

您正在设置默认的区域设置setLocale.这就是这个问题的原因:现在如果我的手机语言是荷兰语,那么我可以将TTS的语言设置为荷兰语,但如果我的手机的语言不是荷兰语(例如,如果它是英语),则没有选项来设置TTS的语言为荷兰语.

您应该使用您需要的Locale.所以更换

int result = tts.setLanguage(Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

int result = tts.setLanguage(Locale.XYZ);  //XYZ is Locale you want.
Run Code Online (Sandbox Code Playgroud)

例:

int result = tts.setLanguage(Locale.GERMAN);
Run Code Online (Sandbox Code Playgroud)

请参阅文档,其中包括可以设置的可用语言环境.DUTCH在那里不可用.

虽然这篇文章提到DUTCH是可用的Locale.可能不是为了android,而是对于java,正如这里所建议的那样

希望这可以帮助.