【问题标题】:Delay when using android.speech.SpeechRecognizer in DICTATION_MODE在 DICTATION_MODE 中使用 android.speech.SpeechRecognizer 时出现延迟
【发布时间】: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_MILLIS EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS EXTRA_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


【解决方案1】:

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

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

通常情况下它更长,因为这种模式意味着猜测上下文并尝试找出每个新单词变化的含义。

【讨论】:

    【解决方案2】:

    问题可能是因为网速。

    尝试将EXTRA_PREFER_OFFLINE设置为true,看看延迟是否会减少

    https://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_PREFER_OFFLINE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2019-05-24
      • 2022-01-28
      相关资源
      最近更新 更多