js实现文字转语音
使用Web Speech API实现文字转语音
Web Speech API是浏览器原生支持的语音合成接口,无需额外库即可实现文字转语音功能。

// 创建语音合成实例
const synth = window.speechSynthesis;
// 创建语音文本对象
const utterance = new SpeechSynthesisUtterance('需要朗读的文本内容');
// 设置语音参数
utterance.voice = synth.getVoices()[0]; // 选择语音库
utterance.rate = 1; // 语速 (0.1-10)
utterance.pitch = 1; // 音高 (0-2)
utterance.lang = 'zh-CN'; // 语言代码
// 执行语音合成
synth.speak(utterance);
语音参数详细配置
可通过以下属性定制语音效果:

volume: 音量 (0-1)rate: 语速,正常为1pitch: 音调,正常为1voice: 通过speechSynthesis.getVoices()获取的语音对象onstart/onend: 开始/结束回调函数
utterance.onend = function() {
console.log('朗读完成');
};
获取可用语音列表
浏览器支持的语音列表可通过异步获取:
function loadVoices() {
const voices = speechSynthesis.getVoices();
voices.forEach(voice => {
console.log(voice.name, voice.lang);
});
}
// Chrome需要等待voiceschanged事件
speechSynthesis.onvoiceschanged = loadVoices;
loadVoices(); // 首次调用
兼容性处理
对于不支持Web Speech API的浏览器,可考虑以下方案:
- 使用第三方TTS服务API(如Google Cloud TTS)
- 引入polyfill库
- 降级为音频文件播放
注意事项
- 某些浏览器要求语音合成必须在用户交互事件中触发(如点击事件)
- iOS设备有自动暂停背景音频的限制
- 不同浏览器支持的语音质量和语言可能有差异
以上实现方案在现代浏览器中包括Chrome、Firefox、Edge等均可使用,Safari部分版本可能需要前缀。






