如何在Android应用程序中传递语音识别语言?

时间:2013-04-30 09:50:58

标签: java android speech-recognition speech speech-to-text

我一直在研究Android中的语音识别API,发现当语言设置发生变化时,语音结果会有所不同,有没有办法以编程方式设置它?或者是否打算在语音设置屏幕上午餐?或者还有什么?注意:我试图使用这个额外的意图:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");

Intent detailsIntent =  new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
sendOrderedBroadcast(detailsIntent, null, new LanguageDetailsChecker(), null, Activity.RESULT_OK, null, null);

2 个答案:

答案 0 :(得分:2)

是的,这种方法对我来说也不起作用。

我的默认设备语言是英语,但我需要意大利语SR。 只应用所有这三个附加内容,我成功地强制使用Google Engine(用作我设备的默认语音引擎)。

String myLanguage = "it"; //or, Locale.Italian.toString()
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, myLanguage);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, myLanguage); 
intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, myLanguage);

尝试这种方式自定义“myLanguage”变量,应该没问题!

答案 1 :(得分:1)

你现在唯一能做的就是

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, Locale.getDefault());  

如果识别器引擎不支持此语言,则可能无效。

相关问题