Web Speech API通过SpeechRecognition接口实现浏览器语音转文字,需创建实例并配置语言、连续识别等参数,绑定onresult、onerror、onend等事件,调用start()启动识别,支持Chrome及Chromium系浏览器,需HTTPS环境与用户授权,适用于语音输入与控制场景。

Web Speech API 让网页能够使用浏览器的语音识别功能,实现将用户的语音实时转换为文字。这项技术可以用于语音输入、语音控制、无障碍访问等多种场景。核心是 SpeechRecognition 接口(或其前缀版本 webkitSpeechRecognition),目前在 Chrome 和部分基于 Chromium 的浏览器中支持良好。
启用语音识别的基本步骤
要让网页具备语音识别能力,需要创建一个 SpeechRecognition 实例,并配置事件监听器来处理识别结果。
- 检查浏览器是否支持 Web Speech API
- 创建识别实例并设置参数(如语言、连续识别等)
- 绑定关键事件:onresult(收到结果)、onend(结束)、onerror(出错)
- 调用 start() 方法启动识别,stop() 停止
示例代码:
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();// 设置中文识别 recognition.lang = 'zh-CN'; // 连续识别模式 recognition.continuous = true; // 不自动结束 recognition.interimResults = false;
recognition.onresult = function(event) { const transcript = event.results[event.results.length - 1][0].transcript; console.log('识别结果:', transcript); document.getElementById('output').textContent = transcript; };
recognition.onerror = function(event) { console.error('识别出错:', event.error); };
recognition.onend = function() { console.log('语音识别已结束'); };
// 启动识别 document.getElementById('startBtn').onclick = () => { recognition.start(); };
// 停止识别 document.getElementById('stopBtn').onclick = () => { recognition.stop(); };
实用配置与优化建议
通过调整参数可以让识别更符合实际需求。
立即学习“Java免费学习笔记(深入)”;
- lang:指定语言,如 'en-US'、'zh-CN',确保用户发音匹配
- continuous:设为 true 可持续监听,适合语音助手类应用
- interimResults:true 时返回中间结果,用户体验更实时
- 添加 onstart 事件提示用户开始说话
- 错误处理需覆盖网络中断、权限拒绝等情况
常见问题与注意事项
Web Speech API 使用中容易遇到一些限制和坑点。
- 必须在 HTTPS 环境下运行,本地开发可用 localhost 测试
- 首次使用会请求麦克风权限,用户需手动允许
- 移动端兼容性较差,iOS Safari 支持有限
- 长时间识别可能自动终止,可监听 onend 并重新 start()
- 避免频繁 start/stop,防止状态混乱
基本上就这些。只要理解事件机制和参数作用,就能快速集成语音输入功能。虽然当前支持范围有限,但在可控环境(如企业内网、特定设备)中非常实用。不复杂但容易忽略细节,比如语言设置和权限处理。










