强制使用RecognizerIntent的特定语言非常简单,如this answer中所述。
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
但只有intent
实例化的类型为RecognizerIntent时才有效。
在我的应用程序中,我使用较低级SpeechRecognizer
,即:
Intent intent = new Intent(SpeechRecognizer.RESULTS_RECOGNITION);
试图强迫上面描述的语言根本不起作用。
以编程方式设置SpeechRecognizer的语言首选项的正确方法是什么?
这有可能吗?
答案 0 :(得分:1)
语言偏好应该有效。
请发布更多代码。
您仍然应该像这样创建Intent
:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
不喜欢这样:
Intent intent = new Intent(SpeechRecognizer.RESULTS_RECOGNITION);
然后你必须直接调用SpeechRecognizer
课程。
供参考,请参阅此code的recognizeSpeechDirectly()
方法。