Android语音识别只能离线返回一个结果

时间:2014-12-22 14:15:17

标签: android speech-recognition

我试图离线使用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。

1 个答案:

答案 0 :(得分:0)

尝试将MAX_RESULTS设置为5,10,20或任何其他方法以查看是否有帮助。