web - 网络语音识别自动断开
问题描述
所以我有一个项目,我需要制作一个基于 Web 的虚拟助手。问题是,如果 Web Speech Recognition Api 在 5 秒内没有听到任何声音,它会自动断开麦克风的连接(所以我需要重新打开它)。我的问题是如何让麦克风保持活动状态,这样当我说出唤醒词时,它会使用下一个识别结果作为命令。*额外说明: - 麦克风应该一直在听,这样当我说唤醒词时它会听到它。- 如果我大约 5 秒钟不说话,麦克风会断开连接,所以我需要手动重新打开它(如何摆脱这种自动断开连接?)谢谢!
解决方案
根据您的浏览器以及是否有任何选项卡试图访问您的麦克风,将 SpeechRecognition 对象设置为连续应该可以工作。
使用下面的代码作为参考。window.SpeechRecognition 只是设置语音识别。
window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.continuous = true;
您还可以在识别断开连接时添加事件侦听器并开始备份网络语音 api 的识别。
recognition.addEventListener('end', () => {
recognition.start();
});
本文来自我们的代码世界,关于语音 api还讨论了存储连续说出的中间单词。
这在 Chrome 浏览器上对我有用。
如果将识别设置为连续无法正常工作,您可能需要对计算机上的其他服务从浏览器选项卡中获取麦克风进行故障排除。
推荐阅读
- android-studio - 为什么警报对话框每次都会使我的应用程序崩溃
- javascript - 验证具有不同属性的 json 对象
- sql - SQL join 用先前的值填充空值
- haproxy - 在一次重定向中将 www 重定向到非 www 并将 http 重定向到 https?
- google-cloud-platform - terraform create pub/sub on gcp 给出错误
- django - 如何使用包装类/装饰器在 python django 中传递错误日志记录参数并将其用于每个方法?
- machine-learning - HDBSCAN参数之间的差异
- python - 在 Python 3.x 中使用 os.walk 和 shutil.move 第一个文件夹消失(但文件在剩余中)的问题
- javascript - 使用对象 id 每 10 秒对对象的 javascript 数组进行洗牌
- javascript - 将公司和联系人数组组合成由第三个数组排序的单个结果