Ffvoice logo

Ffvoice

Runs local Whisper transcription and speaker diarization through MCP, with no cloud audio transfer.

Install Ffvoice

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "ffvoice": {
      "command": "uvx",
      "args": [
        "ffvoice"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Offline transcription and speaker diarization are the core capabilities of the ffvoice MCP server, which connects AI agents to local audio processing. It uses an on-device pipeline built around whisper.cpp, with optional capture, denoising, voice activity detection, and diarization support. Audio can be processed into text and subtitle-oriented outputs without sending recordings to a cloud API. Reach for it when privacy, offline operation, or local control matters more than custom model tuning or maximum ASR throughput.

Use cases

  • Transcribe private recordings without uploading audio
  • Generate local SRT or VTT subtitles
  • Label meeting speech by speaker
  • Capture microphone audio for a voice assistant

Key features

  • On-device Whisper transcription
  • Offline speaker diarization
  • Word-level timestamps
  • WAV and FLAC output
  • SRT, VTT, JSON, and text formats
  • Optional RNNoise denoising and VAD

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

8/8 checks healthy over the last 40d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 15d ago via OSV.dev · ffvoice (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
Last commit1mo agoMost recent push to the default branch.

How Ffvoice works

What the ffvoice MCP server does

The ffvoice MCP server exposes local speech processing to AI agents through the Model Context Protocol. It is built for audio transcription and speaker diarization, using Whisper ASR on the device rather than a hosted speech API. The surrounding engine can capture microphone or system audio, apply audio processing, and produce transcription-oriented outputs.

The project is an integration layer around whisper.cpp, not a replacement inference engine. It preserves the upstream model’s recognition behavior and does not claim to improve Whisper accuracy or inference speed. The ffvoice MCP server is therefore a fit for agents that need an existing local speech pipeline, rather than a solution for training models or adding specialized vocabulary.

How it works

Audio can pass through a pipeline consisting of capture, optional volume normalization and high-pass filtering, RNNoise denoising, voice activity detection, Whisper transcription, and offline speaker diarization. PortAudio supports audio capture, while FFmpeg and FLAC support audio handling and lossless output. Diarization is provided through sherpa-onnx and is an optional build capability.

Whisper transcription supports plain text, SRT, VTT, and JSON output, including word-level timestamps. The project also includes an experimental live-captioning path that emits partial and final caption events. Partial captions may retranscribe accumulated speech, so they should not be treated as true incremental decoding.

Setup and configuration

The repository supports macOS, Linux, and Windows. A source build requires CMake 3.20 or newer, a C++20 compiler, FFmpeg 4.4 or newer, PortAudio 19.7 or newer, and FLAC 1.5 or newer. Whisper and RNNoise can be fetched during configuration when their corresponding options are enabled. Windows users can use vcpkg for the native dependencies or install the published Python package, according to the project documentation.

The ffvoice MCP server is included alongside the C++ SDK, command-line interface, and Python bindings. Those details should be checked in the repository before wiring the server into an agent host.

Tools and capabilities

The ffvoice MCP server gives an agent access to the project’s local speech capabilities through five MCP tools. The documented feature set covers:

  • Offline Whisper transcription
  • Offline speaker diarization
  • Microphone or system-audio capture
  • WAV and FLAC output
  • SRT, VTT, JSON, and plain-text transcription formats
  • Optional denoising and voice-activity segmentation

The broader engine also provides a CLI and Python bindings, but those interfaces are separate from the MCP tool surface.

Limitations and notes

Audio remains on the device, and the documented design has no cloud API dependency. Processing time and end-to-end latency depend on the target hardware, model, and audio length. The project uses Whisper tiny in its documented configuration, and ffvoice does not provide custom vocabulary support or acoustic-model fine-tuning.

The ffvoice MCP server also does not promise better word error rates or raw throughput than whisper.cpp or specialized runtimes. Diarization requires its optional build configuration, and live captioning is marked experimental. Evaluate the server on representative recordings if recognition quality, speaker labels, or real-time behavior are critical.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Ffvoice

ffvoice is an MCP server that connects AI agents to local audio transcription and speaker diarization through a five-tool interface. It uses whisper.cpp for on-device Whisper ASR and can work with the project’s capture, denoising, voice-activity, subtitle, and audio-output pipeline without sending recordings to a cloud service.

Install it through the project’s published Python package or build the repository with CMake. Source builds require CMake 3.20+, a C++20 compiler, FFmpeg, PortAudio, and FLAC; Whisper and RNNoise can be enabled during configuration.

Yes, ffvoice is designed to process audio entirely on the device. Its transcription uses whisper.cpp locally, and the documented pipeline does not require a cloud speech API or network round trip during inference.

Yes, ffvoice supports offline speaker diarization through sherpa-onnx. Diarization is an optional build capability and labels who spoke and when; the repository should be checked for the exact build option and runtime requirements.

ffvoice supports WAV and FLAC audio output plus plain text, SRT, VTT, and JSON transcription formats. JSON and the transcription pipeline can include word-level timestamps, while live captioning emits partial and final caption events.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFfvoice AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ffvoice?style=directory)](https://allmcps.com/mcp/ffvoice)
HTML Embed
<a href="https://allmcps.com/mcp/ffvoice"><img src="https://allmcps.com/api/badge/ffvoice?style=directory" alt="Ffvoice on AllMCPs" /></a>