Web 语音识别自动断开连接
Web speech recognition automatically disconnects
所以我有一个项目需要制作一个基于 Web 的虚拟助手。
问题是网络语音识别 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();
});
这个 article, from our code world, on the speech api 还会继续存储连续说出的中间词。
这对我在 Chrome 浏览器上有效。
如果将识别设置为连续不起作用,您可能需要在计算机上从浏览器选项卡中取出麦克风来解决其他服务问题。
所以我有一个项目需要制作一个基于 Web 的虚拟助手。 问题是网络语音识别 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();
});
这个 article, from our code world, on the speech api 还会继续存储连续说出的中间词。
这对我在 Chrome 浏览器上有效。
如果将识别设置为连续不起作用,您可能需要在计算机上从浏览器选项卡中取出麦克风来解决其他服务问题。