Este contenido sigue en francés
La página está traducida, pero su contenido detallado todavía no. Las fichas, las guías y los catálogos se muestran en francés: preferimos darte el original antes que una traducción automática aproximada. Ver el sitio en francés
Guide 8 sur 12
Dictée et lecture à voix haute, sans connexion
La chaîne vocale complète — micro, transcription, modèle, synthèse — sur une machine à quelques watts. C'est ce qui rend l'outil accessible à ceux qui ne lisent pas encore, ou plus.
Démarrer le pas à pas 6 étapes · 1 h 30 · une étape à l'écran, avec Précédent / Suivant
- Un micro USB ou un casque-micro correct
- Un haut-parleur ou une sortie audio
- Les outils de compilation (voir le guide llama.cpp)
La chaîne complète
Micro -> whisper.cpp -> texte -> LLM -> texte -> Piper -> Haut-parleur
(écoute) (réfléchit) (parle)
Chaque maillon est libre, tient en quelques centaines de mégaoctets, et fonctionne sans réseau. L'ensemble tourne sur un Raspberry Pi 4.
Installer whisper.cpp
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
# Modèle small : le meilleur compromis pour le français
sh ./models/download-ggml-model.sh small
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
| Modèle | Poids | Qualité en français | Machine minimale |
|---|---|---|---|
| tiny | 75 Mo | Approximative | Raspberry Pi 4 |
| base | 142 Mo | Correcte sur audio propre | Raspberry Pi 4 |
| small | 466 Mo | Bonne | Raspberry Pi 5, mini-PC |
| medium | 1,5 Go | Très bonne | Mini-PC 16 Go, GPU |
Transcrire
# Enregistrer 5 secondes au format attendu : 16 kHz, mono
arecord -f S16_LE -r 16000 -c 1 -d 5 test.wav
# Transcrire en français
./build/bin/whisper-cli -m models/ggml-small.bin -l fr -f test.wav
# Sortie en sous-titres
./build/bin/whisper-cli -m models/ggml-small.bin -l fr -osrt -f cours.wav
ffmpeg -i source.mp3 -ar 16000 -ac 1 sortie.wav.Installer Piper
# Binaire précompilé, à adapter à l'architecture
wget https://github.com/rhasspy/piper/releases/latest/download/piper_linux_aarch64.tar.gz
tar -xzf piper_linux_aarch64.tar.gz && cd piper
# Une voix française (le .json accompagne obligatoirement le .onnx)
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/medium/fr_FR-siwis-medium.onnx.json
echo "Bonjour, je fonctionne sans connexion." \
| ./piper -m fr_FR-siwis-medium.onnx -f sortie.wav
aplay sortie.wav
Chaque voix pèse quelques dizaines de mégaoctets et la synthèse est plus rapide que le temps réel, y compris sur Raspberry Pi 4.
Assembler la borne vocale
#!/usr/bin/env bash
# borne-vocale.sh — appuyez sur Entrée, parlez, écoutez la réponse
set -euo pipefail
WHISPER=~/whisper.cpp
PIPER=~/piper
MODELE_LLM=qwen3:4b
while true; do
read -rp "Entrée pour parler (5 s), Ctrl+C pour quitter... "
arecord -f S16_LE -r 16000 -c 1 -d 5 /tmp/question.wav 2>/dev/null
question=$("$WHISPER"/build/bin/whisper-cli \
-m "$WHISPER"/models/ggml-small.bin -l fr -nt -f /tmp/question.wav 2>/dev/null)
echo "Vous : $question"
reponse=$(ollama run "$MODELE_LLM" "Réponds en deux phrases maximum. $question")
echo "SATI : $reponse"
echo "$reponse" | "$PIPER"/piper -m "$PIPER"/fr_FR-siwis-medium.onnx -f /tmp/reponse.wav
aplay -q /tmp/reponse.wav
done
chmod +x borne-vocale.sh
./borne-vocale.sh
Régler la latence
Sur un Raspberry Pi 5, comptez environ : deux à quatre secondes de transcription, une à deux secondes avant le premier mot du modèle, moins d'une seconde de synthèse. Le total reste sous les dix secondes, ce qui est acceptable pour un dialogue posé.
- Passer whisper de
smallàbasedivise la transcription par deux, au prix de quelques erreurs. - Contraindre la réponse à deux phrases dans le prompt réduit fortement le temps de génération.
- Découper la réponse en phrases et lancer la synthèse au fil de l'eau donne l'impression d'une réaction immédiate.
- Garder le modèle chargé (
OLLAMA_KEEP_ALIVE) évite plusieurs secondes de rechargement à chaque tour.
← Guide précédent
Interroger ses propres documents hors ligne
Indexer un corpus — cours, archives, documentation d'une collectivité — dans un simple fichier SQLite, et le rendre interrogeable en langage naturel sans qu'un octet ne sorte de la machine.
Guide suivant →
Mesurer avant d'optimiser
Trois chiffres suffisent à piloter un déploiement : traitement du prompt, vitesse de génération, watts à la prise. Voici comment les obtenir et ce qu'ils changent.