Tuto Claude Code
Claude Code qui te répond avec ta voix
Quand Claude a fini d'écrire, il te lit sa réponse à voix haute. Avec la voix de ton choix, la tienne si tu veux. Tout tourne sur ton Mac : pas d'API, pas d'abonnement, et ton forfait Claude n'est pas touché.
- 0,3 savant le premier mot, une fois lancé
- 0 tokenla voix se génère sur ton Mac
- Gratuitmodèle open source, sans compte
- 10 languesdont le français et l'anglais
Ce qu'il te faut
Compte 15 minutes, dont la moitié pour enregistrer ta voix.
- Un Mac Apple Silicon (M1 ou plus récent). Le tuto utilise MLX, la bibliothèque d'Apple pour ces puces. Il n'est pas prévu pour un PC ni pour un Mac Intel.
- Claude Code, déjà installé.
- Homebrew, pour installer Python et ffmpeg.
- Environ 5 Go d'espace libre : 2,4 Go pour le modèle de voix, 1,6 Go pour Whisper, le reste pour Python et ses bibliothèques.
Les commandes des étapes se tapent dans le Terminal, et chaque bloc a un bouton pour copier. Tu n'utilises pas le Terminal ? Laisse faire Claude, juste en dessous.
Sans toucher au Terminal
Claude Code sait lancer les commandes lui-même. Tu peux lui confier toute l'installation.
Colle ce message dans Claude Code :
Claude te demandera d'autoriser chaque commande : c'est normal. Seule exception, Homebrew : s'il n'est pas encore sur ton Mac, installe-le toi-même depuis brew.sh, parce qu'il demande ton mot de passe.
Pour l'enregistrement, fais-le au dictaphone de l'iPhone, envoie-le sur le Mac par AirDrop, et donne à Claude le nom du fichier (il arrive dans Téléchargements). Les conseils de l'étape 5 valent aussi dans ce cas.
Installer Python et ffmpeg
Python fait tourner le modèle. ffmpeg convertit ton enregistrement dans le bon format.
brew install python ffmpegInstaller le moteur de voix
Le script, ta voix et un environnement Python à part vont dans un seul dossier, ~/.claude-speaks, lisible par toi seul. Le modèle, lui, ira dans le cache de Hugging Face (~/.cache/huggingface).
mkdir -m 700 -p ~/.claude-speaks && cd ~/.claude-speaks
"$(brew --prefix)/bin/python3" -m venv venv
venv/bin/pip install mlx-audio==0.5.7Le tuto a été testé avec la version 0.5.7 de mlx-audio.
Télécharger les modèles
Deux modèles, téléchargés une seule fois depuis Hugging Face :
- Qwen3-TTS, qui clone ta voix à partir de quelques secondes d'enregistrement. Le tuto utilise sa version légère : 2,4 Go.
- Whisper, d'OpenAI, qui écrira pour toi le texte de ton enregistrement à l'étape 5 : 1,6 Go.
cd ~/.claude-speaks
venv/bin/hf download mlx-community/Qwen3-TTS-12Hz-0.6B-Base-bf16
venv/bin/hf download openai/whisper-large-v3-turboCompte quelques minutes, selon ta connexion.
Récupérer le script
Un seul fichier Python fait le lien entre Claude Code et le modèle. Il garde le modèle en mémoire pour parler vite, et il retire de la réponse ce qui ne se lit pas bien à l'oral.
cd ~/.claude-speaks
curl -fsSLO https://a-foutoyet.github.io/claude-speaks/claude_speaks.pyTu peux le lire avant : environ 290 lignes commentées, sans aucun appel réseau.
Enregistrer ta voix
C'est l'étape qui compte. Le modèle copie tout ce qu'il entend : ton timbre, ton débit, ton énergie, et le bruit de la pièce avec.
- 10 à 30 secondes, une seule personne qui parle.
- Une pièce calme et sans écho. Un placard rempli de vêtements vaut mieux qu'un salon vide. Le bruit de fond et la réverbération se clonent avec la voix, et impossible de les retirer ensuite.
- Parle comme tu veux que Claude parle. Ton débit et ton énergie se retrouveront dans toutes les réponses.
- Parle dans la langue que Claude utilisera.
- Ne retouche pas le son. Débruiteur, compresseur et normalisation abîment le timbre, et le clone en hérite. Monter le volume, ça, pas de souci.
- Le dictaphone de l'iPhone suffit. Envoie-toi le fichier par AirDrop.
Ensuite, convertis l'enregistrement (remplace le chemin par le tien), puis laisse Whisper écrire le texte que tu prononces dedans :
cd ~/.claude-speaks
ffmpeg -y -i ~/Downloads/ma-voix.m4a -ac 1 -ar 24000 voix.wav
venv/bin/python claude_speaks.py transcrireLe texte s'affiche et part dans voix.txt. Relis-le : il doit coller mot pour mot à ce que tu dis. Pour corriger un mot, ouvre le fichier :
open -e ~/.claude-speaks/voix.txtSi le texte ne correspond pas à l'enregistrement, la voix se met à inventer des sons ("heu heu", "sh sh") au lieu de lire la réponse. C'est la cause numéro un d'une voix qui déraille : vérifie ce fichier en premier.
Clone uniquement ta voix, ou celle de quelqu'un qui t'a donné son accord.
Tester
cd ~/.claude-speaks
venv/bin/python claude_speaks.py say "Salut, c'est Claude. Tu m'entends ?"La toute première fois, il faut 10 à 20 secondes pour charger le modèle. Ensuite il reste en mémoire et la voix part tout de suite. Si ton enregistrement fait moins de 8 secondes, le script te prévient.
Le script lit en français par défaut. Pour une autre langue, ouvre ~/.claude-speaks/claude_speaks.py et change la ligne LANGUE = "french" (english, german, italian, portuguese, spanish, japanese, korean, russian, chinese).
Brancher sur Claude Code
Il reste à ajouter un hook : une commande que Claude Code lance tout seul quand il a fini de répondre. Il se règle dans le fichier ~/.claude/settings.json.
Le plus simple : demande-le à Claude Code lui-même. Colle-lui ce message :
À la main, si tu préfères : fais une copie du fichier, puis ajoute ce bloc au premier niveau, entre les accolades du fichier. Si tu as déjà une section "hooks", ajoute seulement la partie "Stop" dedans. Et si tu as déjà une liste "Stop", ajoute l'objet à la suite des autres. Si le fichier n'existe pas, crée-le avec ce bloc entouré d'une paire d'accolades { }.
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "\"$HOME/.claude-speaks/venv/bin/python\" \"$HOME/.claude-speaks/claude_speaks.py\" hook",
"timeout": 10
}
]
}
]
}Vérifie que le fichier est toujours valide :
python3 -m json.tool ~/.claude/settings.json > /dev/null && echo "fichier valide"Relance Claude Code et pose-lui une question. Il lit sa réponse finale, pas les petites notes du genre "je regarde le fichier". Le hook rend la main en moins d'un dixième de seconde : la voix se génère à côté, sans ralentir Claude.
Ajouter la commande /talk
Pour couper ou remettre la voix directement dans le chat de Claude Code, sans passer par le Terminal :
mkdir -p ~/.claude/commands
curl -fsSL -o ~/.claude/commands/talk.md https://a-foutoyet.github.io/claude-speaks/talk.mdRelance Claude Code : la commande /talk apparaît quand tu tapes /.
Au quotidien
| Pour | Dans Claude Code | Dans le Terminal, depuis ~/.claude-speaks |
|---|---|---|
| Couper la voix | /talk off | venv/bin/python claude_speaks.py off |
| Remettre la voix | /talk on | venv/bin/python claude_speaks.py on |
| Couper la phrase en cours | /talk stop | venv/bin/python claude_speaks.py stop |
| Libérer la mémoire | /talk quitter | venv/bin/python claude_speaks.py quitter |
Changer de voix : refais l'étape 5 avec un autre enregistrement, puis /talk quitter. La nouvelle voix se charge à la réponse suivante. Tu peux aussi le demander à Claude : "Refais l'étape 5 de claude-speaks avec ~/Downloads/nouvelle-voix.m4a".
Changer de langue : demande à Claude de remplacer LANGUE = "french" par la langue voulue dans ~/.claude-speaks/claude_speaks.py, puis /talk quitter.
Faire mieux sonner Claude
Claude écrit pour un écran. Tu peux lui demander d'écrire pour l'oreille.
Ajoute ces lignes dans ton CLAUDE.md :
Sans rien demander, le script saute les blocs de code, les tableaux, les adresses web en http, les balises HTML et les emojis. Pour un lien, il lit le texte du lien. Un chemin de fichier écrit entre accents graves (`comme ça`) est sauté, mais un chemin écrit en clair dans une phrase est lu.
Quand la voix déraille sur une réponse, dis-le à Claude. La dernière lecture est gardée dans ~/.claude-speaks/derniere.wav, avec son texte à côté. Par exemple :
Claude sait mesurer la hauteur de voix, le débit et les silences dans ce fichier. Si la voix invente des sons, vérifie d'abord ton voix.txt : c'est la cause la plus fréquente.
Limites et vie privée
- Claude parle quand il a fini d'écrire, pas pendant. Sur une réponse courte, ça ne se sent pas. Sur une longue, tu attends la fin du texte.
- La première réponse après un redémarrage attend le chargement du modèle, 5 à 20 secondes.
- Les mots anglais au milieu d'une phrase en français sont parfois prononcés à la française.
- Si deux sessions Claude Code tournent en même temps, elles partagent la même voix : la dernière qui parle coupe l'autre.
- Une fois le modèle téléchargé, rien ne sort de ton Mac. Le script interdit à la bibliothèque de Hugging Face d'aller en ligne. Le serveur écoute sur un fichier local que seul ton compte peut ouvrir, jamais sur un port réseau. Le dossier
~/.claude-speaks(ta voix, la dernière lecture) n'est lisible que par toi.
Chiffres mesurés sur un MacBook Pro M5 : premier mot entre 0,3 et 0,5 seconde après la fin de la réponse, démarrage du serveur entre 4 et 18 secondes.
Désinstaller
Retire d'abord le hook de ~/.claude/settings.json (ou demande à Claude de le faire), sinon Claude Code signalera une erreur à chaque réponse. Si tu l'as ajouté, retire aussi le bloc "Réponses lues à voix haute" de ton CLAUDE.md. Ensuite, dans le Terminal (ou demande à Claude de lancer ces commandes) :
pkill -f "claude_speaks.py serve"
rm -f ~/.claude/commands/talk.md
rm -rf ~/.claude-speaks
rm -rf ~/.cache/huggingface/hub/models--mlx-community--Qwen3-TTS-12Hz-0.6B-Base-bf16
rm -rf ~/.cache/huggingface/hub/models--openai--whisper-large-v3-turboLa copie ~/.claude/settings.json.bak faite à l'étape 7 reste là : supprime-la quand tout va bien.