2

最近有人遇到过这个问题吗?“当我停止说话”和“当 android 语音识别停止收听”之间存在很长的延迟。之前的“沉默期”短了很多,现在真的很长了。以前是 1-2 秒左右,现在是 10 秒左右。我们没有更改代码中的任何内容。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak now...");
startActivityForResult(intent, REQUEST_CODE);
4

2 回答 2

1

这是一个互联网问题。我用我的三星 Galaxy Tab A7 进行了试验。离线时没有延迟,但是当我连接到互联网时,由于互联网连接不佳,会出现延迟。

我通过将值为 true 的 RecognizerIntent.EXTRA_PREFER_OFFLINE 添加到我传递的意图来解决了我的问题。

于 2018-09-06T11:03:44.300 回答
0

是的,我在使用 Android 4.4.2 (HTC One M8) 时遇到了完全相同的问题。设置像 intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, new Long(1000)) 这样的选项来缩短收听时间似乎没有任何效果。对于不会自动关闭它的旧手机,我曾经在 6 秒后关闭识别对话框,这很丑陋但工作正常,但现在除非我将超时时间从 6 秒增加到 10 秒以上,否则不会识别任何内容。这个不可变的 10 秒默认值似乎也没有记录,因此要找出跨设备和 Android 版本的工作原理,这一切都变成了反复试验。

于 2014-04-29T18:48:06.033 回答