浏览器需支持 Web Speech API,通过 SpeechRecognition 实现语音识别;2. 创建实例并设置语言、连续识别等参数;3. 绑定 onresult 获取文本,onerror 处理错误;4. 调用 start() 开始识别,stop() 停止;5. 仅在 HTTPS 或 localhost 运行,需用户授权麦克风;6. Chrome 支持良好,移动端尤其是 iOS 支持弱。

JavaScript 实现语音识别主要依赖于浏览器提供的 Web Speech API,其中 SpeechRecognition 接口是核心。目前该功能在部分现代浏览器中支持较好(如 Chrome),但需注意兼容性问题。
启用语音识别的基本步骤
使用 JavaScript 进行语音识别,需要创建一个 SpeechRecognition 实例,并配置事件监听来获取识别结果。
基本实现流程如下:- 检查浏览器是否支持
window.SpeechRecognition或window.webkitSpeechRecognition - 创建识别实例并设置参数(如语言、是否连续识别等)
- 绑定关键事件,如 onresult(获取识别文本)、onend(识别结束)
- 调用
start()方法开始录音,stop()结束
代码示例:简单语音转文字
以下是一个基础的语音识别实现:
// 检查浏览器支持
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (!SpeechRecognition) {
console.log('当前浏览器不支持语音识别,请使用 Chrome 等支持的浏览器');
}
const recognition = new SpeechRecognition();
// 设置中文识别
recognition.lang = 'zh-CN';
recognition.continuous = false; // 是否持续监听
recognition.interimResults = false; // 是否返回中间结果
// 获取识别结果
recognition.onresult = (event) => {
const transcript = event.results[0][0].transcript;
console.log('你说的是:', transcript);
// 可将 transcript 显示到页面某元素中
document.getElementById('output').textContent = transcript;
};
// 识别出错时
recognition.onerror = (event) => {
console.error('识别失败:', event.error);
};
// 开始识别(例如点击按钮触发)
document.getElementById('startBtn').onclick = () => {
recognition.start();
};
// 停止识别
document.getElementById('stopBtn').onclick = () => {
recognition.stop();
};
常见设置与优化建议
根据实际需求,可以调整识别行为以提升准确性和用户体验。
立即学习“Java免费学习笔记(深入)”;
-
语言设置:通过
lang属性指定语言,如 'en-US'、'ja-JP' 等 - 连续识别:设为 true 可持续监听多句话
-
中间结果:开启
interimResults可实时显示未完成的识别内容 - 安全性限制:语音识别需在 HTTPS 环境或本地开发服务器(localhost)运行
注意事项与兼容性
Web Speech API 并非所有浏览器都支持,使用前应做好降级处理。
- Chrome 支持较好,Firefox、Safari 和 Edge 支持有限或需手动开启
- 移动端支持较弱,iOS Safari 基本不可用
- 用户必须授权麦克风权限,否则无法启动识别
- 长时间识别可能自动中断,受浏览器策略影响
基本上就这些。只要浏览器支持,用几行 JavaScript 就能实现语音输入功能,适合用于语音搜索、表单填写辅助等场景。











