android - Google 语音识别超时

标签 android speech-recognition voice-recognition google-voice-search

我正在开发一个基于语音识别的 Android 应用程序。

直到今天,一切都运行良好且及时,例如我会启动我的语音识别器,说话,最多 1 或 2 秒内应用程序收到结果。

这是一种非常可接受的用户体验。

然后今天我现在要等十几秒才能出识别结果。

我试过设置以下 EXTRAS,但没有任何区别

RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS
RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS

我一直在不断地更改我的应用程序,但是这些更改都与语音识别器无关。

有什么方法可以减少语音识别器从 onBeginningOfSpeech() 切换到 onResults() 之间的时间吗?

这是一个需要多长时间的例子

07-01 17:50:20.839 24877-24877/com.voice I/Voice: onReadyForSpeech()
07-01 17:50:21.614 24877-24877/com.voice I/Voice: onBeginningOfSpeech()
07-01 17:50:38.163 24877-24877/com.voice I/Voice: onEndOfSpeech()

最佳答案

编辑 - 显然已在 2016 年 8 月即将发布的版本中修复 您可以 test the beta确认。

这是 Google 'Now' V6.0.23.* 版本中的一个错误,并且在最新的 V6.1.28.* 中仍然存在。

自从 V5.11.34.* 发布以来,Google 的 SpeechRecognizer 实现一直被错误所困扰。

您可以使用 this gist复制其中的许多。

您可以使用这个 BugRecognitionListener解决其中的一些问题。

我已将这些直接报告给 Now 团队,所以他们知道了,但到目前为止,还没有任何问题得到解决。 Google Now 没有外部错误跟踪器,因为它不是 AOSP 的一部分,所以恐怕您无法加注星标。

您详述的最新错误几乎使它们的实现无法使用,正如您正确指出的那样,控制语音输入时间的参数被忽略了。根据the documentation :

Additionally, depending on the recognizer implementation, these values may have no effect.

是我们应该期待的……

如果您不说话或发出任何可检测到的声音,识别将无限期地继续。

我目前正在创建一个项目来复制这个新错误和所有其他错误,我将转发并很快链接到这里。

编辑 - 我希望我可以创建一个解决方法,使用部分或不稳定结果的检测作为触发器来了解用户仍在说话。一旦它们停止,我可以在设定的时间段后手动调用 recognizer.stopListening()

不幸的是,stopListening() 也被破坏了,实际上并没有停止识别,因此没有解决方法。

围绕上述尝试破坏识别器并仅依赖部分结果直到那一点(当破坏识别器 onResults() 未被调用时)未能产生可靠的实现,除非你是simply keyword spotting .

在 Google 修复此问题之前,我们无能为力。您唯一的出路是向 apps-help@google.com 发送电子邮件报告问题,并希望他们收到的邮件量能给他们一个插入......

关于android - Google 语音识别超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189556/

相关文章:

algorithm - AMR 中的静音检测

android - 可以过滤 WifiManager 的扫描吗?

android - Firebase 函数生成 Android 应用

android - 如何将大写字母转换为小写字母?

xml - 可以自动将 ABNF 转换为 XML 吗?

Android - 语音识别和保存音频文件 - 在某些设备上不工作

Android通过蓝牙进行语音识别

java - 为字段名称维护单独常量的替代方法

android - 用于英语以外语言的 Google 语音转文本 API

c# - 如何从文件中进行语音识别,System.ApplicationException 0xa SPXERR_INVALID_HEADER