【发布时间】:2016-03-16 08:38:42
【问题描述】:
我在DICTATION_MODE 中使用android.speech.SpeechRecognizer 在很长一段时间内识别命令。在这种模式下,对回调方法onPartialResults 的调用比在正常模式下延迟更多。有谁知道为什么会发生这种情况以及如何避免这种延迟?
这是我用于SpeechRecognizer的配置:
Intent recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
recognizerIntent.putExtra("calling_package", mainActivity.getApplicationContext().getPackageName());
recognizerIntent.putExtra("android.speech.extra.DICTATION_MODE", true);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 100);
【问题讨论】:
-
我建议您看一下并尝试使用 RecognizerIntent 类中的那些标志,并将其他值放入您的 Intent 对象中。
EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLISEXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLISEXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS这一个可能有问题,因为它的行为会根据Android版本和您的设备型号而有所不同。另外,看看那些:code.google.com/p/android/issues/detail?id=76130 我想发布它作为答案,但决定评论会更好。 -
是的,我也尝试了这些选项,但没有成功。还有其他建议吗?
-
您受已安装的语音识别器的支配。它可能正在等待收集更多上下文以帮助产生更准确的听写。如果您对此不满意,除了使用不同的语音识别引擎之外别无他法。
-
在这里回答 - stackoverflow.com/a/49810988/806328
标签: android speech-recognition