HTML本身不直接处理语音,但可通过JavaScript的Web Speech API实现语音识别(语音转文字)和语音合成(文字转语音),开发者利用
SpeechRecognition接口捕获麦克风输入并转换为文本,用
SpeechSynthesis接口朗读指定文字,需注意浏览器兼容性和用户授权。
在HTML中实现语音功能,主要通过浏览器提供的API和HTML5原生标签完成,以下是四种主流方法及详细实现方案:
Web Speech API(语音合成)
用途:让浏览器“朗读文本”(文字转语音)
适用场景:阅读助手、语音提示、无障碍访问
优点:无需预录音频,动态生成语音
缺点:浏览器兼容性有限(Chrome/Firefox/Edge支持,Safari部分支持)
<button onclick="speakText()">点击朗读</button>
<script>
function speakText() {
// 创建语音对象
const speech = new SpeechSynthesisUtterance();
speech.text = "欢迎访问我们的网站!"; // 设置朗读文本
speech.lang = 'zh-CN'; // 中文普通话
speech.rate = 1.0; // 语速(0.1~10)
// 调用浏览器语音引擎
window.speechSynthesis.speak(speech);
}
</script>
关键参数:

text:要朗读的文本lang:语言代码(如en-US、ja-JP)volume:音量(0~1)- 通过
speechSynthesis.getVoices()获取浏览器支持的语音库
Web Speech API(语音识别)
用途:将用户语音转为文字(语音转文本)
适用场景:语音搜索、语音输入表单
优点:实时识别,无需服务器处理
缺点:需用户授权麦克风,仅HTTPS环境可用
<button onclick="startListening()">开始录音</button>
<p id="result">识别结果将显示在这里</p>
<script>
function startListening() {
// 初始化语音识别
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
recognition.lang = 'zh-CN'; // 设置语言
// 监听识别结果
recognition.onresult = (event) => {
const transcript = event.results[0][0].transcript;
document.getElementById('result').textContent = transcript;
};
recognition.start(); // 开始识别
}
</script>
注意事项:

- 必须通过HTTPS协议部署
- 首次使用需用户授权麦克风权限
- 支持连续识别需设置
recognition.continuous = true
HTML5 Audio标签 + 预录音频
用途:播放预录制的语音文件
适用场景:固定提示音、背景音乐、按钮音效
优点:兼容所有现代浏览器,支持MP3/WAV等格式
缺点:需提前录制音频文件
<audio id="myAudio" src="welcome.mp3" preload="auto"></audio>
<button onclick="playAudio()">播放欢迎语音</button>
<script>
function playAudio() {
const audio = document.getElementById('myAudio');
audio.play(); // 播放音频
// 暂停用 audio.pause()
}
</script>
优化技巧:
- 添加
controls属性显示播放控件(如进度条) - 用
preload="auto"提前加载音频 - 通过
<source>标签兼容多格式:<audio controls> <source src="welcome.mp3" type="audio/mpeg"> <source src="welcome.ogg" type="audio/ogg"> </audio>
第三方语音服务API
用途:复杂语音处理(如实时翻译、情感分析)
适用场景:多语言翻译、智能客服
代表服务:Google Cloud Speech-to-Text、Azure Cognitive Services
优点:功能强大,支持高级特性
缺点:需网络请求,可能产生费用

// 示例:调用Google语音识别API(需替换API_KEY)
async function recognizeSpeech(audioFile) {
const response = await fetch(
`https://speech.googleapis.com/v1/speech:recognize?key=API_KEY`,
{
method: "POST",
body: JSON.stringify({
audio: { content: audioFile },
config: { languageCode: "zh-CN" }
})
}
);
const data = await response.json();
console.log(data.results[0].alternatives[0].transcript);
}
选择建议
- 基础场景:用
<audio>标签播放预录音频 - 动态文本朗读:选Web Speech API的
SpeechSynthesis - 语音输入:用
SpeechRecognition(注意HTTPS限制) - 企业级需求:接入第三方API实现高级功能
安全与兼容性提醒
- 语音识别必须通过HTTPS协议运行
- 检测浏览器兼容性:
if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) { // 支持语音识别 } - 用户隐私:明确告知麦克风使用目的,按需请求权限
引用说明: 参考以下权威来源:
- MDN Web Docs – Web Speech API
- W3C Specification – Speech API
- Google Developers – Web Speech Recognition
