登录
首页 >  文章 >  前端

HTML5语音合成API使用教程

时间:2025-12-15 22:15:40 399浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《HTML5语音合成API使用方法详解》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

HTML5的SpeechSynthesis API可实现网页文字转语音。首先检测'speechSynthesis' in window支持情况,再通过new SpeechSynthesisUtterance()创建语音对象并调用speak()播放,可设置音量、语速、音调和语言等参数。由于getVoices()初始可能为空,需监听onvoiceschanged事件获取可用语音列表,并可据此选择特定语音如中文普通话。还支持pause、resume和cancel控制播放状态。关键在于处理语音列表异步加载及参数适配,适合语音播报与可访问性增强场景。

HTML5语音合成API怎么用_HTML5SpeechSynthesisAPI实现语音合成的方法

HTML5的SpeechSynthesis API可以让网页直接调用系统语音引擎,实现文字转语音(TTS)功能。使用它不需要引入外部库,兼容现代主流浏览器,适合做语音播报、可访问性增强等场景。

1. 检测浏览器是否支持SpeechSynthesis

在使用API前,先判断当前浏览器是否支持:

if ('speechSynthesis' in window) {
  // 支持语音合成
} else {
  console.log('当前浏览器不支持语音合成');
}

2. 基本语音播报实现

使用 window.speechSynthesis.speak() 方法播放语音:

const utterance = new SpeechSynthesisUtterance('你好,这是语音合成示例');
speechSynthesis.speak(utterance);

SpeechSynthesisUtterance 是语音内容对象,可以设置文本、音调、语速、音量和发音语言等参数。

3. 设置语音参数

你可以自定义语音输出效果:

const utterance = new SpeechSynthesisUtterance('欢迎使用语音合成');
utterance.volume = 1;     // 音量:0 到 1
utterance.rate = 1;       // 语速:0.1 到 10
utterance.pitch = 1;      // 音调:0 到 2
utterance.lang = 'zh-CN'; // 语言:中文普通话

调整 rate 可让语音更慢或更快,适合不同用户习惯。

4. 获取可用语音列表

不同设备支持的语音不同,可通过以下方式获取系统可用语音:

// 等待语音列表加载完成
speechSynthesis.getVoices().forEach(voice => {
  console.log(voice.name, voice.lang, voice.default ? '默认' : '');
});

注意:getVoices() 初始可能返回空数组,需监听 voiceschanged 事件:

if (speechSynthesis.getVoices().length === 0) {
  speechSynthesis.onvoiceschanged = () => {
    const voices = speechSynthesis.getVoices();
    // 此处可选择特定语音
  };
}

5. 选择特定语音

比如想使用中文女声:

const utterance = new SpeechSynthesisUtterance('使用中文语音播报');
const voices = speechSynthesis.getVoices();
const chineseVoice = voices.find(voice => voice.lang === 'zh-CN');
if (chineseVoice) {
  utterance.voice = chineseVoice;
}
speechSynthesis.speak(utterance);

6. 控制语音播放状态

提供暂停、恢复和取消功能:

speechSynthesis.pause();    // 暂停
speechSynthesis.resume();   // 恢复
speechSynthesis.cancel();   // 取消全部语音

可用于交互式应用,如点击按钮停止播报。

基本上就这些。SpeechSynthesis API简单易用,关键是处理好语音列表异步加载问题,并根据用户需求调节语速和语言。不复杂但容易忽略细节。

本篇关于《HTML5语音合成API使用教程》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>