首页 > 解决方案 > 网络语音识别自动断开

问题描述

所以我有一个项目,我需要制作一个基于 Web 的虚拟助手。问题是,如果 Web Speech Recognition Api 在 5 秒内没有听到任何声音,它会自动断开麦克风的连接(所以我需要重新打开它)。我的问题是如何让麦克风保持活动状态,这样当我说出唤醒词时,它会使用下一个识别结果作为命令。*额外说明: - 麦克风应该一直在听,这样当我说唤醒词时它会听到它。- 如果我大约 5 秒钟不说话,麦克风会断开连接,所以我需要手动重新打开它(如何摆脱这种自动断开连接?)谢谢!

标签: webspeech-recognitionmicrophone

解决方案


根据您的浏览器以及是否有任何选项卡试图访问您的麦克风,将 SpeechRecognition 对象设置为连续应该可以工作。

使用下面的代码作为参考。window.SpeechRecognition 只是设置语音识别。

window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;

const recognition = new SpeechRecognition();
recognition.continuous = true;

您还可以在识别断开连接时添加事件侦听器并开始备份网络语音 api 的识别。

recognition.addEventListener('end', () => {
    recognition.start();
  });

本文来自我们的代码世界,关于语音 api还讨论了存储连续说出的中间单词。

这在 Chrome 浏览器上对我有用。

如果将识别设置为连续无法正常工作,您可能需要对计算机上的其他服务从浏览器选项卡中获取麦克风进行故障排除。


推荐阅读