当前位置:首页 > JavaScript

js实现语音输入

2026-04-04 10:56:12JavaScript

使用Web Speech API实现语音输入

Web Speech API提供语音识别功能,允许浏览器直接捕获和处理语音输入。以下代码展示基础实现:

// 检查浏览器兼容性
if ('webkitSpeechRecognition' in window) {
  const recognition = new webkitSpeechRecognition();
  recognition.continuous = false;
  recognition.interimResults = false;

  recognition.onstart = () => {
    console.log('语音识别启动');
  };

  recognition.onresult = (event) => {
    const transcript = event.results[0][0].transcript;
    console.log('识别结果:', transcript);
    document.getElementById('output').textContent = transcript;
  };

  recognition.onerror = (event) => {
    console.error('识别错误:', event.error);
  };

  document.getElementById('startBtn').addEventListener('click', () => {
    recognition.start();
  });
} else {
  console.error('当前浏览器不支持语音识别');
}

添加实时反馈功能

通过设置interimResultstrue,可以获取实时识别结果:

recognition.interimResults = true;
recognition.onresult = (event) => {
  let interimTranscript = '';
  let finalTranscript = '';

  for (let i = event.resultIndex; i < event.results.length; i++) {
    const transcript = event.results[i][0].transcript;
    if (event.results[i].isFinal) {
      finalTranscript += transcript;
    } else {
      interimTranscript += transcript;
    }
  }

  document.getElementById('interim').textContent = interimTranscript;
  document.getElementById('final').textContent = finalTranscript;
};

设置语音识别参数

可配置参数优化识别体验:

recognition.lang = 'zh-CN'; // 设置中文识别
recognition.maxAlternatives = 3; // 获取多个可能结果
recognition.continuous = true; // 持续识别模式

兼容性处理方案

对于不支持的浏览器,可提供备用方案:

function fallbackVoiceInput() {
  alert('请使用最新版Chrome或Edge浏览器');
  // 可在此处添加第三方语音服务集成
}

用户界面优化建议

  1. 添加可视化麦克风状态指示器
  2. 提供语言选择下拉菜单
  3. 实现超时自动停止功能
  4. 添加识别结果编辑区域

完整示例需包含HTML结构:

js实现语音输入

<button id="startBtn">开始录音</button>
<div id="interim" style="color: gray;"></div>
<div id="final"></div>

标签: 语音js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…