我试图离线使用Android的语音识别API,就像这个问题Android Offline Speech Recognition shows only one result?一样。我在线时也得到五个结果,只有一个结果离线,并希望在任何一种情况下得到五个(ish)结果。这仅仅是Android内置语音识别引擎的限制,还是有一些隐藏的设置可以更改以强制使用多个结果?
这是我的意图设置:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //< have tried both FREE_FORM and WEB_SEARCH
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getPackageName());
intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
mRecognizer.startListening(intent);
我的onResults():
@Override
public void onResults(Bundle results) {
// data.size() is 1, if running offline and generally 5, if online
ArrayList<String> data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
//...
}
我正在运行Android 4.4.2。
答案 0 :(得分:0)
尝试将MAX_RESULTS设置为5,10,20或任何其他方法以查看是否有帮助。