当前位置:首页 > JavaScript

js实现声控

2026-04-06 08:29:05JavaScript

使用 Web Speech API 实现语音识别

Web Speech API 是现代浏览器提供的原生语音识别接口,无需额外依赖库。以下是一个基础实现示例:

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

  // 设置参数
  recognition.continuous = false; // 单次识别
  recognition.interimResults = true; // 返回临时结果
  recognition.lang = 'zh-CN'; // 设置语言

  // 开始识别
  recognition.start();

  // 处理结果
  recognition.onresult = (event) => {
    const transcript = Array.from(event.results)
      .map(result => result[0].transcript)
      .join('');
    console.log('识别结果:', transcript);
  };

  // 错误处理
  recognition.onerror = (event) => {
    console.error('识别错误:', event.error);
  };
} else {
  console.error('当前浏览器不支持语音识别');
}

第三方库实现方案

使用开源的 annyang 库可以快速实现语音命令控制:

// 引入库后初始化
if (annyang) {
  const commands = {
    '打开 *page': (page) => {
      console.log(`打开${page}页面`);
    },
    '搜索 *term': (term) => {
      console.log(`搜索${term}`);
    }
  };

  annyang.addCommands(commands);
  annyang.start({ language: 'zh-CN' });
}

语音合成实现

通过 speechSynthesis API 实现文本转语音:

js实现声控

function speak(text) {
  const utterance = new SpeechSynthesisUtterance(text);
  utterance.lang = 'zh-CN';
  utterance.rate = 1; // 语速
  window.speechSynthesis.speak(utterance);
}

speak('语音播报测试');

注意事项

  1. 浏览器兼容性:Chrome、Edge 支持较好,部分功能需 HTTPS 环境
  2. 用户授权:首次使用需获取麦克风权限
  3. 移动端适配:需处理设备旋转等场景下的重新初始化
  4. 性能优化:长时间监听需考虑内存管理

高级功能扩展

  1. 自定义热词唤醒:通过分析音频流实现本地唤醒词检测
  2. 语音指令上下文:结合 NLP 处理多轮对话
  3. 离线识别:使用 TensorFlow.js 加载本地语音模型

完整项目建议结合 Vue/React 等框架实现状态管理,对于复杂场景可考虑专业语音服务如 Azure Speech Service 或阿里云智能语音交互。

标签: js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选框 co…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…