针对印尼人的Android文字转语音

时间:2014-07-18 02:20:30

标签: android locale text-to-speech android-4.2-jelly-bean

嘿,我正在尝试为3种不同的语言创建tts 他们是英语,西班牙语和印度尼西亚语 我对英语和西班牙语没有任何问题 他们工作正常,但我的印尼语错了 我尝试了不同的方式和不同的区域组合,但仍然没有运气

这是我的印尼代码:

Locale locInd = new Locale("IDN");

int result = tts.setLanguage(locInd);

我已尝试locale("in","ID");locale("ind","IDN");locale("in_ID); 但还是没有运气 每当我尝试时,输出都是英文而不是印尼文

我使用了jellybean(4.2.2)模拟器来运行它 当我运行模拟器时,在语言环境中有in_ID

编辑: 我发现我的问题,在pico TTS indonesian没有安装 是否有一个教程,每次没有支持的语言 它会弹出要求安装吗?

3 个答案:

答案 0 :(得分:0)

MainActivity.tts.setLanguage(new Locale("id","ID"));

我用过它并且有效!

显然你的手机必须支持印度尼西亚语。我尝试了两种不同的手机,其中一种不会说印尼语

答案 1 :(得分:0)

在更改语言环境时,在将文本初始化为语音时设置语言:

textToSpeech = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
     @Override
     public void onInit(int status) {
         switch (status) {
             case TextToSpeech.SUCCESS: {
                 synchronized (this) {
                         int result = textToSpeech.setLanguage(set the indonesia id here);
                  // Take action based on the result of initialisation

                 }
             }
             break;
             default: {
                 Toast.makeText(appContext, appContext.getResources().getString(R.string.tts_init_failed), Toast.LENGTH_LONG).show();
             }
             break;
         }
     }
 });

答案 2 :(得分:0)

如果您正在使用 "id", "ID"Locale("id", "ID") 并且不起作用,您可以尝试此代码

科特林:

private fun askSpeechInput(){
    if(!SpeechRecognizer.isRecognitionAvailable(this)){
        Toast.makeText(this, "Speech recognition is not available", Toast.LENGTH_SHORT).show()
    }else{
        val i = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
        i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "id-ID")
        i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Coba ucapkan sesuatu")
        launchSomeActivity.launch(i)
    }
}

这对我有用