JavaScript语音合成依赖Web Speech API的SpeechSynthesis接口,支持Chrome、Edge等主流浏览器,需检测window.speechSynthesis可用性、监听voiceschanged事件获取音色,设置utterance属性后调用speak()播放,注意Safari中文兼容性及移动端手势触发限制。

JavaScript 中实现语音合成(文字转语音)主要靠浏览器内置的 Web Speech API,特别是其中的 SpeechSynthesis 接口。它无需第三方库、不发请求、纯前端运行,兼容 Chrome、Edge、Safari(部分支持)、Firefox(需手动启用),是目前最轻量实用的方案。
不是所有浏览器都默认开启或完全支持,先安全检测:
window.speechSynthesis 判断 API 是否可用window.speechSynthesis.getVoices() 获取可用音色列表(注意:首次调用可能为空,需监听 voiceschanged 事件后再读取)三步搞定一句话朗读:
const utter = new SpeechSynthesisUtterance('你好,今天天气不错');
utter.rate = 1; utter.lang = 'zh-CN'; utter.voice = voices.find(v => v.name.includes('Tingting'));
window.speechSynthesis.speak(utter);
中文推荐优先选系统自带的中文音色(如 macOS 的 'Tingting'、Windows 的 'Microsoft Yaoyao'、Chrome 的 'Google Zh-CN'),但不同系统返回的 voice.name 差异大:
立即学习“Java免费学习笔记(深入)”;
lang 筛选:voices.filter(v => v.lang.startsWith('zh'))
utter.voice = voices[0] || null
getVoices() 结果,避免重复查询实际使用中常需暂停、继续、取消、监听状态:
window.speechSynthesis.pause() / .resume() / .cancel()
utter.onend = () => console.log('说完啦');,utter.onerror = e => console.error('语音失败', e)
基本上就这些。不用引入 SDK,不走服务器,开箱即用——但得提醒一句:Safari 对中文支持较弱,部分机型可能只念拼音;移动端需用户手势触发(比如点击按钮后才能 speak),不能自动播放。
以上就是javascript中如何实现语音合成?_javascript的文字转语音怎么实现?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号