前端语音识别案例
不过要注意的是,在嘈杂环境中识别准确率会明显下降,这时候可以考虑加上降噪提示,或者要求用户在安静环境下使用。recognition的start()方法默认会一直等待用户说话,可以通过设置recognition.continuous = false配合超时重机制,在静默超过5秒时自动重启监听,这个在实现语音输入框时特别有用。遇到错误时通过onerror事件给用户提示,比如在权限被拒绝时显示“请允许麦
先来看核心代码。其实最关键的就几步:创建识别对象、配置参数、绑定事件监听。不过要注意兼容性问题,不同浏览器可能需要加前缀,比如webkitSpeechRecognition。下面这段基础代码可以在Chrome环境下直接跑起来:
这里有几个参数需要特别注意。continuous设置为true表示持续监听,不会在用户停止说话时自动结束。interimResults开启中间结果返回,这样就能实时显示识别过程中的临时文本。lang属性强烈建议设置为'zh-CN',虽然默认会自动识别语言,但明确指定中文后准确率会明显提升。
实际测试中发现几个值得注意的细节。首先必须是HTTPS环境,本地开发可以用localhost绕过这个限制,但部署到线上必须支持HTTPS。其次麦克风权限需要用户主动授权,最好在点击事件中初始化识别对象,避免页面加载就突然弹出权限申请吓到用户。
为了让体验更友好,可以加上状态提示。在onstart事件里把按钮文字改成“识别中...”,在onend事件里恢复原状。遇到错误时通过onerror事件给用户提示,比如在权限被拒绝时显示“请允许麦克风访问”,在网络异常时提示“请检查网络连接”。
还有个实用技巧是设置语音超时。recognition的start()方法默认会一直等待用户说话,可以通过设置recognition.continuous = false配合超时重机制,在静默超过5秒时自动重启监听,这个在实现语音输入框时特别有用。
最后附上完整的可运行代码。把这个保存为HTML文件,在Chrome里打开就能看到效果。点击按钮开始说话,识别结果会实时显示在页面上:
这个案例虽然简单,但已经包含了语音识别最核心的功能。在实际项目中,可以根据需求添加语音命令解析、语义理解等进阶功能。目前浏览器的语音识别准确率已经相当不错,特别是在 Chrome 浏览器上对中文的支持越来越成熟。不过要注意的是,在嘈杂环境中识别准确率会明显下降,这时候可以考虑加上降噪提示,或者要求用户在安静环境下使用。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)