ffvoice-engine
Offline speech-to-text & speaker diarization for AI agents — Whisper ASR + MCP server + CLI + Python bindings, fully on-device, no cloud | 离线语音识别与说话人分离,Agent 开箱即用
Install / Use
claude mcp add chicogong -- npx -y github:chicogong/ffvoice-engineIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Education & ResearchSupported Platforms
Our assessment of ffvoice-engine
ffvoice-engine scores 83/100 on our quality scale, 350th of 447 Education & Research skills we index.
Its MCP Server is 25 KB long, well organised into 107 sections with 19 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 2 months ago, so ffvoice-engine is actively maintained.
- Our last check on 2026-08-12 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
ffvoice-engine compared with similar skills
All 4 of these similar skills score higher than ffvoice-engine; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| ffvoice-engine (this skill)by chicogong | 83 | 3 | 45d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 106.6k | 5d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.3k | today | CLAUDE.md |
| last30days-skillby mvanhorn | 100 | 66.0k | 1d ago | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.7k | today | CLAUDE.md |
Frequently asked questions
- How do I install ffvoice-engine?
- Run
claude mcp add chicogong -- npx -y github:chicogong/ffvoice-engine. The install tabs above show the steps for each supported agent. - Which AI agents does ffvoice-engine work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is ffvoice-engine safe to use?
- It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is ffvoice-engine still maintained?
- The repository was last updated about 2 months ago, so ffvoice-engine is actively maintained.
Skill content
View source on GitHubffvoice-engine
<!-- mcp-name: io.github.chicogong/ffvoice --> <!-- Build & CI Status --> <!-- License & Language --> <!-- Platform Support --> <!-- Version & Community --> <!-- Dependencies --> <!-- Code Quality -->🎙️ Offline speech-to-text & speaker diarization for AI agents — Whisper ASR, live captioning, an MCP server, a CLI and Python bindings. Fully on-device, no cloud API.
🎙️ 离线语音识别 + 说话人分离,AI Agent 开箱即用 —— Whisper 实时转写 · 实时字幕 · MCP server · CLI · Python 绑定 · 100% 本地运行,音频不上云。

Why ffvoice? / 为什么用 ffvoice?
The honest pitch: ffvoice is an integration layer, not a new ASR engine. It embeds whisper.cpp as-is and makes no changes to its accuracy or inference speed. What ffvoice adds is a batteries-included, pre-wired pipeline — microphone capture → RNNoise denoising → VAD segmentation → Whisper ASR → speaker diarization → live captions / WAV / FLAC / subtitles — delivered as a single C++ SDK with Python bindings, a CLI, and an MCP server that lets AI agents (Claude and others) transcribe audio out of the box — all in one pip install or cmake build.
诚实定位: ffvoice 是一个集成层,而非新的 ASR 引擎。它内嵌 whisper.cpp,不修改其识别精度或推理速度。ffvoice 带来的是一条开箱即用、预连接的完整管道——麦克风采集 → RNNoise 降噪 → VAD 分段 → Whisper ASR → 说话人分离 → 实时字幕 / WAV / FLAC / 字幕输出——打包成 C++ SDK + Python 绑定 + CLI,外加一个 MCP server,让 AI agent(Claude 等)开箱即用地转写音频——一条 pip install 或 cmake 即可完成。
Pain points it addresses / 解决的痛点
| Pain point | ffvoice approach | |------------|-----------------| | Privacy / 隐私合规 — audio must not leave the device (GDPR, HIPAA, enterprise policy) | 100% offline; audio never transmitted | | Cloud cost / 云端费用 — commercial APIs charge per minute ($0.01–0.024/min at scale) | Zero per-minute cost; runs on your own hardware | | Glue code / 胶水代码 — wiring PortAudio + RNNoise + VAD + whisper.cpp + FLAC yourself takes days | All wired together and tested; one SDK | | Offline / 断网场景 — embedded systems, air-gapped environments, poor connectivity | Fully offline; no network dependency | | Local responsiveness / 本地响应 — cloud round-trips add network variance | Capture and inference stay on-device; measure end-to-end latency on your target hardware |
What ffvoice does NOT do / 不做什么
- ffvoice does not improve whisper.cpp's WER (word error rate) or speed. If Whisper tiny gives you 12% WER, ffvoice will too.
- ffvoice does not outperform sherpa-onnx or other optimized inference runtimes on raw transcription speed.
- ffvoice does not provide custom vocabulary or acoustic model fine-tuning.
If raw ASR accuracy or throughput is your primary concern, evaluate whisper.cpp directly or consider specialized runtimes. ffvoice's value is the integrated pipeline, not the ASR engine itself.
📋 项目介绍
ffvoice-engine 是一个轻量级、高性能的音频处理引擎,专注于实时音频采集、智能处理和语音识别。
🎯 使用场景
- 📝 会议记录 - 实时转写会议内容,说话人分离标注"谁说了什么",自动生成字幕
- 🎓 在线教育 - 录制课程并生成字幕,支持多语言识别
- 🎙️ 播客制作 - 高质量音频录制 + RNNoise 降噪 + 自动字幕生成
- 🎵 音乐制作 - 低延迟音频采集,支持 FLAC 无损压缩
- 🤖 语音助手 - 实时语音识别和处理,构建本地 AI 语音应用
- 📡 直播字幕 - 边录边转写,生成实时字幕流
✨ 核心优势
vs 商业服务(Azure/Google Cloud Speech):
- ✅ 完全离线 - 无需网络,保护隐私,零 API 费用
- ✅ 本地处理 - 无网络往返;端到端延迟取决于设备、模型与音频长度
- ✅ 开源免费 - MIT 协议,可商用
vs FFmpeg 命令行:
- ✅ 实时转写 - 边录边识别,支持 VAD 智能分段
- ✅ AI 降噪 - 集成 RNNoise 深度学习降噪
- ✅ C++ SDK - 可嵌入任何 C++ 应用,非黑盒工具
vs Python 方案(whisper-cli):
- ✅ 原生管道 - C++20 实现,处理链无 Python 解释器与胶水开销
- ✅ 易部署 - 单一可执行文件,无 Python 环境依赖
- ✅ 同样的精度 - 内嵌 whisper.cpp,识别质量与上游一致(ffvoice 不改模型)
💡 技术亮点
- 🚀 零拷贝处理链 - 音频数据在内存中就地处理
- 🧠 智能 VAD 分段 - 基于 RNNoise VAD 的语音活动检测
- 🎯 高压缩比 - FLAC 无损压缩 2-3x,质量无损
- ⚡ whisper.cpp 推理 - 内嵌 whisper.cpp,Apple Silicon 上推理快于实时
核心特性
- ✅ 实时音频采集 - 低延迟麦克风/系统声音捕获 (PortAudio)
- ✅ 多格式输出 - WAV、FLAC 无损压缩
- ✅ 音频增强处理 - 音量归一化、高通滤波、RNNoise 降噪
- ✅ 离线语音识别 - Whisper ASR (tiny model,纯文本/SRT/VTT/JSON 四种格式,含词级时间戳)
- 🧪 滚动字幕流 - LiveCaptioner 输出 partial/final 事件;partial 会重复转写累计语音,不等同于增量流式解码
- ✅ 说话人分离 - Diarizer 离线 diarization(sherpa-onnx),自动标注"谁在何时说话"
- ✅ Agent 集成 - CLI + MCP server,AI agent 可直接调用本地离线语音能力
🏗️ 当前状态 (v0.8.3)
四个集成层路线图阶段全部交付,已发布到 PyPI(macOS / Linux / Windows,Python 3.10–3.14)。
| 能力 | 状态 |
|------|------|
| 音频采集 / WAV·FLAC 输出 / 音频增强(归一化·高通·RNNoise) | ✅ |
| 离线语音识别(Whisper ASR — 纯文本 / SRT / VTT / JSON,词级时间戳) | ✅ |
| 滚动字幕流(LiveCaptioner — partial/final 字幕事件) | 🧪 实验性;需监控丢样 |
| 说话人分离(Diarizer — sherpa-onnx,可选 -DENABLE_DIARIZATION=ON) | ✅ |
| Agent 集成(CLI 硬化 + MCP server,5 个工具) | ✅ |
| 当前测试套件:296 C++ + 146 Python,全部通过 | ✅ |
完整历史见 CHANGELOG.md。
🚀 快速开始
依赖
- CMake 3.20+
- C++20 编译器(GCC 10+, Clang 12+, MSVC 2019+)
- FFmpeg 4.4+ (libavcodec, libavformat, libavutil, libswresample)
- PortAudio 19.7+ (音频采集)
- FLAC 1.5+ (无损压缩)
- whisper.cpp (可选,自动下载,用于语音识别)
- RNNoise (可选,自动下载,用于深度学习降噪)
macOS 安装:
brew install cmake ffmpeg portaudio flac
Linux (Ubuntu/Debian) 安装:
sudo apt-get install cmake build-essential \
libavcodec-dev libavformat-dev libavutil-dev libswresample-dev \
portaudio19-dev libflac-dev
Windows 安装:
# 使用 vcpkg 管理 C++ 依赖
# 1. 克隆 vcpkg(如果还没有)
git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
C:\vcpkg\bootstrap-vcpkg.bat
# 2. 安装依赖包
C:\vcpkg\vcpkg install ffmpeg:x64-windows portaudio:x64-windows libflac:x64-windows
# 3. 设置环境变量(用于 CMake)
set CMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
# 注意:Windows 用户也可以直接使用 PyPI 的预编译 wheels(推荐)
# pip install ffvoice
编译
标准编译:
Linux/macOS:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
Windows:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
cmake --build . --config Release
启用 RNNoise 降噪 (推荐,自动下载):
Linux/macOS:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_RNNOISE=ON
make -j$(nproc)
# RNNoise 库会通过 CMake FetchContent 自动下载和编译
Windows:
# 注意:Windows 版本禁用 RNNoise(MSVC 不支持 VLA)
# 使用其他音频处理选项替代
启用 Whisper 语音识别 (推荐,自动下载):
Linux/macOS:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_WHISPER=ON
make -j$(nproc)
# whisper.cpp 和 tiny 模型(39MB)会自动下载
Windows:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_WHISPER=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
cmake --build . --config Release
启用所有可选功能 (Linux/macOS):
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DENABLE_RNNOISE=ON \
-DENABLE_WHISPER=ON
make -j$(nproc)
使用
注意:
- Linux/macOS: 使用
./build/ffvoice- Windows: 使用
.\build\Release\ffvoice.exe
# 查看帮助
./build/ffvoice --help
# 生成测试 WAV 文件(440Hz A4 音符,3秒)
./build/ffvoice --test-wav test.wav
# 列出可用音频设备
./build/ffvoice --list-devices
# 录制 10 秒 WAV 音频(默认格式)
./build/ffvoice --record -o recording.wav -t 10
# 录制 30 秒 FLAC 音频(无损压缩)
./build/ffvoice --record -o recording.flac -t 30
# 使用最大压缩级别录制 FLAC
./build/ffvoice --record -o recording.flac --compression 8 -t 60
# 选择特定设备录制立体声
./build/ffvoice --record -d 1 -o stereo.wav --channels 2 -t 20
# 启用音频处理(音量归一化 + 高通滤波)
./build/ffvoice --record -o clean.wav --enable-processing -t 10
# 仅启用音量归一化
./build/ffvoice --record -o normalized.wav --normalize -t 10
# 自定义高通滤波频率(去除 100Hz 以下噪声)
./build/ffvoice --record -o filtered.flac --highpass 100 -t 20
# 组合:FLAC + 音频处理
./build/ffvoice --record -o studio.flac --normalize --highpass 80 -t 30
# RNNoise 深度学习降噪(推荐用于语音录制,仅 Linux/macOS)
./build/ffvoice --record -o clean.wav --rnnoise -t 10
# 完整处理链(高通 + RNNoise + 归一化,仅 Linux/macOS)
./build/ffvoice --record -o studio.flac --highpass 80 --rnnoise --normalize -t 30
# RNNoise + VAD (实验性,仅 Linux/macOS)
./build/ffvoice --record -o vad.wav --rnnoise-vad -t 20
# 播放录音
afplay recording.wav # 或 recording.flac
# ==================== 语音识别(需启用 ENABLE_WHISPER) ====================
# 转写音频文件为纯文本
./build/ffvoice --transcribe recording.wav -o transcript.txt
# 生成 SRT 字幕文件
./build/ffvoice --transcribe recording.wav --format srt -o subtitles.srt
# 生成 VTT 字幕文件
./build/ffvoice --transcribe recording.wav --format vtt -o subtitles.vtt
# 生成 JSON 转写文件(含分段级与词级时间戳)
./build/ffvoice --transcribe recording.wav --format json -o transcript.json
# 指定语言(中文)
./build/ffvoice --transcribe recording.wav --language zh -o transcript_zh.txt
# 转写 FLAC 文件
./build/ffvoice --transcribe recording.flac --format srt -o subtitles.srt
# 完整工作流:录制 + 音频处理 + 转写
./build/ffvoice --record -o speech.flac --highpass 80 --rnnoise --normalize -t 30
./build/ffvoice --transcribe speech.flac --format srt -o speech.srt
# ==================== 实时语音识别(需启用 ENABLE_RNNOISE 和 ENABLE_WHISPER) ====================
# 边录边转写(实时模式)
./build/ffvoice --record -o speech.wav --rnnoise-vad --transcribe-live -t 60
# 实时转写 + 音频处理
./build/ffvoice --record -o speech.flac --rnnoise-vad --transcribe-live --highpass 80 --normalize -t 120
# ==================== 实时字幕流(需启用 ENABLE_WHISPER;LiveCaptioner) ====================
# 边说边出字幕:partial 字幕实时刷新,final 字幕断句落定
./build/ffvoice --record -o talk.wav --live-captions -t 60
# 调整 partial 字幕刷新间隔(毫秒)
./build/ffvoice --record -o talk.wav --live-captions --partial-interval 300 -t 60
# ==================== 说话人分离(需 -DENABLE_DIARIZATION=ON 构建) ====================
# 转写并标注说话人:每段带 speaker_id
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
106.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.3kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
last30days-skill
66.0kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
CowAgent
47.7kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
