在使用DICTATION_MODE时,使用android.speech.SpeechRecognizer会出现延迟问题。

58

我正在使用android.speech.SpeechRecognizerDICTATION_MODE中识别长时间的命令。在此模式下,回调方法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);

1
我建议您查看并尝试使用RecognizerIntent类中的这些标志,并将其他值放入您的Intent对象中。 EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS <-- 尤其是这个 EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS由于 Android 版本和设备型号不同,可能会出现问题。 此外,请查看以下内容: https://code.google.com/p/android/issues/detail?id=76130 我本想将其发布为答案,但决定把它放在评论中更好一些。 - scana
是的,我也尝试了这些选项,但没有成功。还有其他建议吗? - acimutal
你完全受安装的语音识别器支配。它可能正在等待收集更多上下文以帮助产生更准确的口述。如果您对此不满意,除了使用不同的语音识别引擎外,没有其他办法。 - j__m
回答在这里 - stackoverflow.com/a/49810988/806328 - Karan Harsh Wardhan
2个回答

1

-1

响应时间取决于许多因素,例如:

  • 设备特性
  • 操作系统版本
  • 互联网速度

通常情况下,由于这种模式涉及猜测上下文并尝试弄清每个新单词的含义,因此响应时间会更长。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接