# ffvoice [Health: Active]

**Category:** 🎙️ Speech-to-Text  
**Repository:** https://github.com/chicogong/ffvoice-engine  
**GitHub Stars:** 3  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ffvoice

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

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "ffvoice": {
    "command": "uvx",
    "args": ["ffvoice"]
  }
}
```

## Documentation

## 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.

_Full upstream README: https://allmcps.com/mcp/ffvoice/readme_

