一段时间后,Web语音API在没有输入的情况下停止侦听

时间:2016-12-25 20:31:25

标签: google-chrome webspeech-api webkitspeechrecognition

我正在使用网络语音API但是一旦一段时间过去(一分钟或两分钟)没有任何声音输入,它就会完全停止听。我知道这是因为我把它的解析后的文本记录到控制台,然而,当我不说话一两分钟时它会停止这样做。

有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:6)

您可以收听end事件,然后在SpeechRecognition对象上重新启动识别。

您应该使用布尔标志来决定(在onend事件处理程序中)何时重新启动识别(以及何时不重启)。

您可以使用其他与识别相关的事件。

E.g。启动识别后,Chrome会触发以下事件处理程序:

1. onstart
2. onaudiostart

   (only if sound / speech is detected)
3. onsoundstart
4. onspeechstart

如果未检测到声音语音,则仅触发前2个,然后在超时后,相应的end个事件(按相反顺序)。

答案 1 :(得分:0)

一个简单的解决方案可能是监听结束事件并重新开始识别

recognition.addEventListener('end', recognition.start);

答案 2 :(得分:0)

recognition.addEventListener('end', () => recognition.start()) 有效,但 Chrome 浏览器似乎通过生成弹出窗口允许阻止麦克风来阻碍连续性每 5-7 秒一次。