当前位置:首页 > HTML

在h5中实现语音输入

2026-01-13 22:45:00HTML

使用Web Speech API实现语音输入

Web Speech API是浏览器原生支持的语音识别接口,无需额外插件。以下为关键实现代码:

// 创建语音识别对象
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
recognition.lang = 'zh-CN'; // 设置语言
recognition.interimResults = true; // 返回临时结果

// 绑定结果处理事件
recognition.onresult = (event) => {
  const transcript = Array.from(event.results)
    .map(result => result[0])
    .map(result => result.transcript)
    .join('');
  document.getElementById('output').value = transcript;
};

// 开始/停止语音输入
document.getElementById('startBtn').addEventListener('click', () => recognition.start());
document.getElementById('stopBtn').addEventListener('click', () => recognition.stop());

兼容性处理方案

目前Chrome、Edge等基于Chromium的浏览器支持最佳,需注意:

  • iOS Safari需要用户主动触发(如点击事件)
  • 部分浏览器需添加前缀(webkitSpeechRecognition)
  • 始终检查API可用性:
if (!('SpeechRecognition' in window) && !('webkitSpeechRecognition' in window)) {
  alert('当前浏览器不支持语音识别');
}

增强用户体验的技巧

添加视觉反馈指示录音状态:

.recording {
  animation: pulse 1.5s infinite;
}
@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.5; }
  100% { opacity: 1; }
}

处理常见错误情况:

recognition.onerror = (event) => {
  console.error('识别错误:', event.error);
  if(event.error === 'not-allowed') {
    alert('请允许麦克风权限');
  }
};

备选第三方方案

当需要更高精度或跨浏览器支持时,可考虑:

  • 科大讯飞开放平台WebAPI
  • 百度语音识别SDK
  • Azure Cognitive Services

这些方案通常需要申请API密钥,但能提供更好的识别准确率和附加功能。

在h5中实现语音输入

标签: 语音
分享给朋友:

相关文章

h5实现语音输入

h5实现语音输入

使用Web Speech API实现语音输入 HTML5的Web Speech API提供了语音识别功能,可以在网页中实现语音输入。以下是一个完整的实现方法: <!DOCTYPE html&…

vue实现语音播报

vue实现语音播报

使用 Web Speech API 实现语音播报 Vue 中可以通过 Web Speech API 的 SpeechSynthesis 接口实现语音播报功能。该 API 是现代浏览器原生支持的语音合成…

如何实现语音react

如何实现语音react

语音识别基础设置 在React中实现语音识别功能通常需要借助浏览器的Web Speech API或第三方库。Web Speech API提供了SpeechRecognition接口,允许应用程序直接访…

vue实现语音导航

vue实现语音导航

实现语音导航的基本思路 在Vue中实现语音导航功能,主要依赖浏览器的Web Speech API。该API包含语音识别(SpeechRecognition)和语音合成(SpeechSynthesis)…