html5语音提示
- 行业动态
- 2025-05-13
- 1
HTML5支持语音交互,内置SpeechRecognition和SpeechSynthesis
HTML5语音提示详解
HTML5引入了SpeechSynthesis
API,允许网页通过JavaScript生成语音提示,无需依赖第三方插件,该功能常用于无障碍设计、交互反馈等场景。
核心技术:SpeechSynthesis API
属性/方法 | 说明 |
---|---|
speechSynthesis | 全局对象,控制语音合成 |
SpeechSynthesisUtterance | 构造函数,创建语音对象 |
text | 设置要朗读的文本 |
voice | 选择发音人(如男声、女声) |
rate | 语速(0.1-10) |
pitch | 音调(0-2) |
speak() | 开始播放 |
pause() | 暂停播放 |
resume() | 恢复播放 |
cancel() | 取消播放 |
浏览器兼容性
浏览器 | 支持版本 |
---|---|
Chrome | 33+ |
Firefox | 26+ |
Safari | 9+ |
Edge | 12+ |
Opera | 20+ |
基础实现步骤
创建语音对象:
const utterance = new SpeechSynthesisUtterance('你好,世界!');
配置参数:
utterance.rate = 1; // 正常语速 utterance.pitch = 1; // 正常音调
选择发音人(可选):
const voices = speechSynthesis.getVoices(); utterance.voice = voices.find(v => v.name === 'Microsoft Zipeng Chinese');
播放语音:
speechSynthesis.speak(utterance);
典型应用场景
表单验证反馈:
- 当用户输入错误时,自动朗读提示信息。
if (password.value.length < 6) { const msg = new SpeechSynthesisUtterance('密码长度不足6位'); speechSynthesis.speak(msg); }
- 当用户输入错误时,自动朗读提示信息。
导航提示:
在车载系统或地图应用中,实时播报路线指引。
无障碍阅读:
为视障用户提供网页内容朗读功能。
注意事项
- 文本长度控制:单次朗读建议不超过200字符,长文本需分割处理。
- 异常处理:监听
onerror
事件,处理语音引擎不可用的情况。 - 用户体验:提供关闭语音的选项,避免重复播放。
相关问题与解答
Q1:如何调整语音的音量和语速?
A1:HTML5 SpeechSynthesis
API未直接提供音量控制,但可通过以下方式调整:
- 语速:设置
utterance.rate
(0.1-10,默认1)。 - 音调:设置
utterance.pitch
(0-2,默认1)。 - 音量:需通过CSS或系统设置调整,API本身不支持直接控制。
Q2:如何处理语音播放时的异常?
A2:可通过监听onerror
事件捕获异常,
utterance.onerror = function(e) { console.error('语音播放失败:', e.error); alert('您的设备可能不支持语音功能,或网络出现问题