当前位置:首页 > 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实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…