【问题标题】:Web speech recognition automatically disconnects网络语音识别自动断开
【发布时间】:2020-12-18 01:06:01
【问题描述】:
所以我有一个项目,我需要制作一个基于 Web 的虚拟助手。
问题是,如果 Web Speech Recognition Api 在 5 秒内没有听到任何声音,它会自动断开麦克风的连接(所以我需要重新打开它)。
我的问题是如何保持麦克风处于活动状态,以便当我说出唤醒词时,它会使用下一个识别结果作为命令。
*额外说明:
- 麦克风应该一直在听,这样当我说唤醒词时它就会听到它。
- 如果我大约 5 秒钟不说话,麦克风会断开连接,所以我需要手动重新打开它(如何摆脱这种自动断开连接?)
谢谢!
【问题讨论】:
标签:
web
speech-recognition
microphone
【解决方案1】:
根据您的浏览器以及是否有任何选项卡试图访问您的麦克风,将 SpeechRecognition 对象设置为连续应该可以工作。
使用下面的代码作为参考。 window.SpeechRecognition 只是设置语音识别。
window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.continuous = true;
您还可以添加一个事件侦听器,用于当您的识别断开连接并开始备份网络语音 api 的识别。
recognition.addEventListener('end', () => {
recognition.start();
});
这个article, from our code world, on the speech api 还会继续存储连续说的中间词。
这在 Chrome 浏览器上对我有用。
如果将识别设置为连续无法正常工作,您可能需要对计算机上的其他服务从浏览器选项卡中获取麦克风进行故障排除。