annyang

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 语音识别 🍴 复刻 1045 🐛 待处理 7 👀 关注 226
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 6820
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源项目,MIT许可证,完全免费,无付费版本。

项目预览

annyang 项目界面预览图
图片来源:项目官网

项目数据

分类语音识别
开发团队TalAter
定价模式🏷️完全免费
价格说明开源项目,MIT许可证,完全免费,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型speech,speech-recognition,speech-to-text,voice
GitHub 星标★ 6820
上线时间2013-08-23 00:00:00
代码更新2026-10-29
仓库体积1.9 MB
本站数据更新2026-11-09
维护状态较活跃
收录时间2026-08-10
浏览次数5

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 6820

使用教程

难度:入门 约 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

上一篇:speech_recognition

下一篇:wav2letter

同类项目推荐

CrispASR 开源

C++ 本地跑多款语音模型,离线转录不用 Python

C++ ggml runtime hub for multilingual ASR and TTS models: Cohere Transcribe, Parakee···

★ 804 2026-10-02
Typeleast 开源

按快捷键说话,本地识别加大模型润色,直接写进光标处

TypeLeast:按一下快捷键说话,本机识别(SenseVoice),用你自己的大模型 API Key 整理成···

★ 121 2026-11-08
easy-whisper-ui 开源

点点鼠标,把录音批量转成文字

Easy to use interface for the Whisper model optimized for all GPUs!

★ 589 2026-10-22
no-tipe-releases 开源

开口说话就能往任意应用里打字,本地云端都行

Free desktop dictation for macOS and Windows. Speak messages, emails and notes into ···

★ 517 2026-10-19
talon-ai-tools 开源

用语音直接指挥 AI 工具,解放双手提效

Query LLMs and AI tools with voice commands

★ 92 2026-08-09
ctc-forced-aligner 开源

用CTC模型把音频和文本对齐,秒出音素时间戳

Text to speech alignment using CTC forced alignment

★ 575 2026-10-01
vosk-api 开源

离线语音识别,不用联网,隐私安全,本地秒转文字

Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Pytho···

★ 15236 2026-08-10
whisper_dictation 开源

用语音控制电脑和 AI,免打字,隐私本地化。

Private voice keyboard, agent, AI chat, images, webcam, recordings, voice control wi···

★ 295 2026-08-09