annyang

几行代码给网站加上语音命令,让用户动嘴就能操作

annyang 是一个轻量级的 JavaScript 语音识别库,通过 Web Speech API 为网站添加语音控制能力。它解决了网页端语音交互门槛高、实现复杂的问题,让开发者无需深入了解语音识别底层原理,只需几行代码即可为网站添加自定义语音命令。核心能力包括:定义语音命令并绑定回调函数、支持连续监听和自动重启、提供简单的调试模式、兼容多种浏览器(如 Chrome、Edge 等)。它体积小(约 2KB),无依赖,适合快速集成到现有项目中。annyang 特别适合需要语音交互的 Web 应用,如语音导航、语音表单填写、游戏控制等场景,能显著提升用户体验和操作效率。

开源 free 语音识别
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 6817
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类语音识别
开发团队TalAter
所属国家
定价模式free
价格说明开源项目,MIT许可证,完全免费,无付费版本。
访问状态
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型speech,speech-recognition,speech-to-text,voice
GitHub 星标★ 6817
30天Star增速
HF 下载量
上线时间2013-08-23 00:00:00
最近更新2026-09-21 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数4

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 7 步

环境要求

  • 已安装 Node.js 与 npm(用于 npm install annyang)
  • 使用支持 Web Speech API 的浏览器,如 Chrome、Edge
  • 网页需通过浏览器访问,能在页面中执行 JavaScript

安装与启动步骤

  1. 1安装 annyang

    在项目根目录执行 npm 安装命令,把 annyang 加入项目依赖。

    npm install annyang
  2. 2ESM 方式引入

    推荐用 ESM 在脚本顶部引入默认导出的 annyang 对象。

    import annyang from 'annyang';
  3. 3或按需命名引入

    也可只引入需要的函数:addCommands、start、isSpeechRecognitionSupported。

    import { addCommands, start, isSpeechRecognitionSupported } from 'annyang';
  4. 4CommonJS 引入

    若项目使用 CommonJS,用 require 方式引入 annyang。

    const annyang = require('annyang');
  5. 5判断浏览器支持

    调用 isSpeechRecognitionSupported(),仅在返回真时初始化,避免不支持时报错。

    if (annyang.isSpeechRecognitionSupported()) {
      // 在这里添加命令并启动
    }
  6. 6定义语音命令

    用对象定义命令与回调,'search for *term' 中的 *term 会作为参数传给回调。

    const commands = {
      'hello': () => { alert('Hello world!'); },
      'search for *term': (term) => { console.log(`Searching for ${term}`); },
    };
    annyang.addCommands(commands);
  7. 7启动语音监听

    调用 start() 开始监听麦克风,页面此时会请求麦克风权限。

    annyang.start();

如何确认成功

对麦克风说“hello”,页面弹出 Hello world! 提示,说明命令已识别并执行。

常见问题

Q:浏览器不支持语音识别怎么办?

A:先用 annyang.isSpeechRecognitionSupported() 判断,返回 false 时不要调用 start(),可提示用户改用 Chrome、Edge 等支持 Web Speech API 的浏览器。

Q:命令里怎么接收用户说的内容?

A:在命令字符串中用 *term 这类通配符,如 'search for *term',回调函数的第一个参数就会拿到用户说出的 term 内容。

Q:必须用 ESM 引入吗?

A:不是。README 也给出 CommonJS 写法:const annyang = require('annyang'); 之后同样调用 addCommands、start 等方法。

Q:在哪里查看完整 API 和更多示例?

A:README 提供 FAQ、API reference、在线教程和 CHANGELOG 链接,均在项目 GitHub 与官网 talater.com/annyang 上。

注意事项

  • annyang 无依赖、体积约 2KB,MIT 许可,可自由使用和修改。
  • 命令通过 addCommands 批量注册,注册后再调用 start() 才会开始监听。
  • 官网提供可直接体验的在线语音识别 Demo,便于先验证效果。

核心亮点

  • 极简 API,几行代码即可定义语音命令并触发动作
  • 基于 Web Speech API,无需额外后端或第三方服务
  • 体积小(约 2KB),无依赖,易于集成到任何前端项目

不足之处

  • 依赖浏览器对 Web Speech API 的支持,兼容性有限(主要 Chrome/Edge)
  • 语音识别准确率受环境和浏览器影响,嘈杂环境效果不佳
  • 文档/社区待观察

适用场景

  • 为网页添加语音导航或快捷操作(如'打开设置')
  • 语音表单填写或搜索,提升移动端输入效率
  • 游戏或演示页面的语音控制,增加互动性

替代项目

Web Speech API(原生)、SpeechRecognition.js、Artyom.js

项目介绍

annyang 是语音识别领域的开源项目,由 TalAter 开发,2013 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(6,817)位列前 7%,在语音识别分类的 212 个项目里位列前 10%。

项目仍在小幅维护中,最近一次代码更新于 2026-09-21。MIT许可证,完全免费,无付费版本。

它主要面向的使用场景是:为网页添加语音导航或快捷操作(如'打开设置')。同类可对比的替代方案包括 Web Speech API(原生)、SpeechRecognition.js、Artyom.js。

上一篇:speech_recognition

下一篇:wav2letter

同类项目推荐

obs-localvocal 开源

直播录屏时,本地AI实时生成字幕,保护隐私零延迟

OBS plugin for local speech recognition and captioning using AI

★ 1616 2026-09-10
LiveCaptions-Translator 开源

实时捕获系统音频,一键翻译成你懂的语言

Lightweight and powerful real-time audio/speech translation tool based on Windows Li···

★ 3755 2026-08-10
speechbrain 开源

一站式 PyTorch 语音工具箱,快速搞定识别、说话人验证等任务

A PyTorch-based Speech Toolkit

★ 11834 2026-08-26
whisper-diarization 开源

给语音转写加上说话人标签,会议记录一目了然

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

★ 5657 2026-08-13