3

在我的 android TTS 应用程序中,我尝试说日语。因此,我将语言设置为日语。

result = tts.setLanguage(Locale.JAPAN);
finalText = textField.getText().toString();
tts.speak(finalText , TextToSpeech.QUEUE_ADD, null);

这没有用。所以我设置为

result = tts.setLanguage(Locale.JAPANESE);
finalText = textField.getText().toString();
tts.speak(finalText , TextToSpeech.QUEUE_ADD, null);

这也没有奏效。

奇妙的情况是,除了英语以外的任何其他语言都不起作用!!!!!!!!!!!!!!!

这是我试图说的文字

私は英雄です。だから问题は何ですか?

所以我的问题是,这里发生了什么?它不能说其他语言吗?

更新

一旦我将语言设置为onInit(). 以前,我尝试根据用户请求进行设置,这意味着onInit()当用户手动将语言从美国更改为日语时不会调用。那么,如何在OnInit()不重新启动活动的情况下手动调用呢?

4

3 回答 3

2

编写代码如 onCreate()

 String Text = text.getText().toString();
            tts.speak(Text, TextToSpeech.QUEUE_ADD, null);
Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

然后

public void onInit(int status) {
        // TODO Auto-generated method stub
        if(status== TextToSpeech.SUCCESS){
            int result= tts.setLanguage(Locale.US);
            if(result==TextToSpeech.LANG_MISSING_DATA||result== TextToSpeech.LANG_NOT_SUPPORTED){
                Log.e("TTS", "This Language is not Supported");
            }else{
                talk.setEnabled(true);
            speakOut();
            }
        }
        else{
            Log.e("TTS", "Initialization Falied");
        }

    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    if (requestCode == MY_DATA_CHECK_CODE) {
                        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
                            // success, create the TTS instance
                            tts = new TextToSpeech(this, this);
                        }
                        else {
                            // missing data, install it
                            Intent installIntent = new Intent();
                            installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                            startActivity(installIntent);
                        }
                    }

                }

这将为您提供选择语音服务的选项,您可以下载日语

于 2013-11-11T11:34:45.587 回答
0

检查返回值; http://developer.android.com/reference/android/speech/tts/TextToSpeech.html#setLanguage(java.util.Locale)

看来,如果您尝试设置的语言环境不可用(在您的手机上),它将设置最近的可用语言环境,在您的情况下可能只有英语

于 2013-11-11T11:28:32.990 回答
0
it not working because your default language select in your phone is English, you need to change it to your desired language or if the package is not available of the desired language you need to download it.
phone setting->language &input->google voice typing->languages.
yet your problem not solve than commenting me your problem.
于 2018-07-13T11:44:18.520 回答