如何向Google的TTS API添加新语言?

时间:2018-02-22 08:26:55

标签: android locale text-to-speech persian

我正在尝试在我的Android应用中使用Google TTS。在我的代码的这部分内:

    @Override
    public void onInit(int status)
    {
        if(status == TextToSpeech.SUCCESS)
        {
            int result=tts.setLanguage(Locale.);
            if(result==TextToSpeech.LANG_MISSING_DATA || result==TextToSpeech.LANG_NOT_SUPPORTED)
            {
                Log.e("error", "This Language is not supported");
            }
            else{
                ConvertTextToSpeech();
            }
        }
        else
            Log.e("error", "Initilization Failed!");
    }
});

在这一行int result=tts.setLanguage(Locale.);我尝试使用Locale.fa_IR但它说Error:(37, 54) error: cannot find symbol variable fa_IR。我该如何解决这个问题?

我想我应该在模拟器上安装一些东西,但不知道是什么,以及如何?

2 个答案:

答案 0 :(得分:1)

因为Locale.fa_IR不是文字转语音所理解的语言。 知道它支持多少语言。做一件事。

tts.setLanguage(Locale.);

在Locale dot之后,您会获得多个选项,因此在此处显示的唯一一组语言选择您希望在您的应用程序中支持哪种国家/地区语言

答案 1 :(得分:0)

使用https://www.w3schools.com/tags/ref_language_codes.asp中的语言代码。

mLanguage = new Locale(language_codes);

tts = new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {
        @Override
        public void onInit(int status) {
            if (status != TextToSpeech.ERROR) {
                int result = tts.setLanguage(mLanguage);
                if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                    Log.e("Text2SpeechWidget", result + " is not supported");
                }
            }
        }
    });