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











