Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Ffvoice

by chicogongversion 0.8.3i★ –iRuns on your computer
Registry nameio.github.chicogong/ffvoice

Install

Overview

Description from the maker (original English)

Offline speech-to-text & speaker diarization MCP server: transcribe audio on-device, no cloud

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Design, images & audio

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "ffvoice": {
      "command": "uvx",
      "args": [
        "ffvoice",
        "--from",
        "ffvoice[mcp]"
      ]
    }
  }
}

Run this in your terminal

claude mcp add ffvoice -- uvx ffvoice --from 'ffvoice[mcp]'

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "ffvoice": {
      "command": "uvx",
      "args": [
        "ffvoice",
        "--from",
        "ffvoice[mcp]"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "ffvoice": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ffvoice",
        "--from",
        "ffvoice[mcp]"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account chicogong, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2192 servers in this category
  • Published to the registry more recently than 8% of the other 2192 servers in this category
  • Basic checks equal to or better than 100% of the other 2192 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Ffvoice safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.8.3) reached the registry 6 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Runs on your computer★ 16,165MITUpdated 5 months ago
Install

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago
Install

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

Runs in the cloud★ 2,152Updated 13 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

ffvoice-engine

🎙️ 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 pointffvoice 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 daysAll wired together and tested; one SDK
Offline / 断网场景 — embedded systems, air-gapped environments, poor connectivityFully offline; no network dependency
Local responsiveness / 本地响应 — cloud round-trips add network varianceCapture 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

Only the beginning is shown; read the rest in the repo

Ask PopNx