claude-voice-input
Local MCP server that enables voice input to Claude by transcribing microphone audio locally using faster-whisper, avoiding cloud services.
README
claude-voice-input
Serveur MCP local pour parler a Claude au lieu de taper. Utilise faster-whisper pour la transcription entierement locale — rien n'est envoye dans le cloud.
Architecture
graph LR
A[Microphone] -->|Audio| B[recorder.py]
B -->|WAV bytes| C[faster-whisper]
C -->|Texte| D[Serveur MCP]
D -->|stdio| E[Claude Code]
style A fill:#f9f,stroke:#333
style E fill:#58f,stroke:#333
Flux de fonctionnement
sequenceDiagram
participant U as Utilisateur
participant CC as Claude Code
participant MCP as Serveur MCP Voice
participant R as Recorder
participant W as Whisper
U->>CC: "ecoute-moi"
CC->>MCP: voice_listen(language="fr")
MCP->>R: record_audio()
R->>R: Capture micro + detection silence
R-->>MCP: WAV bytes
MCP->>W: transcribe(audio)
W-->>MCP: Texte transcrit
MCP-->>CC: "Bonjour, je voudrais..."
CC->>CC: Utilise le texte comme contexte
CC-->>U: Repond a l'instruction vocale
Composants
graph TD
subgraph "claude-voice-input"
S[server.py<br/>Serveur MCP FastMCP] --> R[recorder.py<br/>Capture audio + silence]
S --> W[faster-whisper<br/>Transcription locale]
end
subgraph "Outils MCP exposes"
T1[voice_listen<br/>Micro → texte]
T2[voice_transcribe_file<br/>Fichier → texte]
end
S --> T1
S --> T2
Installation rapide
curl -fsSL https://raw.githubusercontent.com/Baseline-quebec/claude-voice-input/main/install.sh | bash
Le script fait tout automatiquement :
- Verifie Python 3.10+
- Installe PortAudio si manquant
- Clone le repo dans
~/.claude-voice-input - Cree un venv dedie et installe les dependances
- Configure le serveur MCP dans
~/.claude/settings.json
Avec un modele specifique
curl -fsSL https://raw.githubusercontent.com/Baseline-quebec/claude-voice-input/main/install.sh | WHISPER_MODEL=medium bash
Installation manuelle
git clone https://github.com/Baseline-quebec/claude-voice-input.git
cd claude-voice-input
# Dependance systeme (PortAudio)
sudo apt install portaudio19-dev # Ubuntu/Debian
brew install portaudio # macOS
# Installer
pip install -e .
Ajouter dans ~/.claude/settings.json :
{
"mcpServers": {
"voice": {
"command": "/chemin/vers/venv/bin/claude-voice-input",
"env": {
"WHISPER_MODEL": "base",
"WHISPER_DEVICE": "auto",
"WHISPER_COMPUTE_TYPE": "int8"
}
}
}
}
Configuration
Variables d'environnement
| Variable | Defaut | Description |
|---|---|---|
WHISPER_MODEL |
base |
Modele Whisper (voir tableau ci-dessous) |
WHISPER_DEVICE |
auto |
cpu, cuda, ou auto |
WHISPER_COMPUTE_TYPE |
int8 |
int8, float16, float32 |
CLAUDE_VOICE_DIR |
~/.claude-voice-input |
Repertoire d'installation |
Modeles Whisper
quadrantChart
title Compromis vitesse vs qualite
x-axis Lent --> Rapide
y-axis Basse qualite --> Haute qualite
tiny: [0.9, 0.25]
base: [0.75, 0.45]
small: [0.5, 0.65]
medium: [0.3, 0.8]
large-v3: [0.1, 0.95]
| Modele | RAM | Vitesse | Qualite | Cas d'usage |
|---|---|---|---|---|
tiny |
~1 Go | Tres rapide | Correcte | Tests, instructions simples |
base |
~1 Go | Rapide | Bonne | Usage quotidien (recommande) |
small |
~2 Go | Moyen | Tres bonne | Contexte technique |
medium |
~5 Go | Lent | Excellente | Dictee longue, accents forts |
large-v3 |
~10 Go | Tres lent | Maximale | Transcription de precision |
Outils MCP
voice_listen
Enregistre depuis le microphone et transcrit au silence.
| Parametre | Type | Defaut | Description |
|---|---|---|---|
language |
str |
"fr" |
Code langue ("fr", "en", etc.) |
silence_duration |
float |
2.0 |
Secondes de silence avant arret |
max_duration |
float |
120.0 |
Duree maximale d'enregistrement |
voice_transcribe_file
Transcrit un fichier audio existant.
| Parametre | Type | Defaut | Description |
|---|---|---|---|
file_path |
str |
— | Chemin du fichier (wav, mp3, m4a, etc.) |
language |
str |
"fr" |
Code langue |
Exemples d'utilisation dans Claude Code
> ecoute-moi
[Claude appelle voice_listen, vous parlez, il recoit le texte]
> transcris le fichier ~/meeting.wav
[Claude appelle voice_transcribe_file]
> ecoute mes instructions en anglais
[Claude appelle voice_listen avec language="en"]
Mise a jour
Relancer le script d'installation — il fait un git pull automatiquement :
curl -fsSL https://raw.githubusercontent.com/Baseline-quebec/claude-voice-input/main/install.sh | bash
Licence
MIT — Baseline
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.