Points clés
- whisper.cpp est le meilleur choix STT local pour Apple Silicon. Le port C/C++ exploite Core ML et Apple Metal pour l'accélération matérielle — large-v3 à ~10× le temps réel sur M5 Pro, sans dépendance Python.
- faster-whisper est le meilleur choix STT local pour les GPU NVIDIA et les pipelines Python. La quantification int8 CTranslate2 réduit le VRAM de ~40 % et multiplie le débit par ~4× par rapport à l'implémentation OpenAI originale — large-v3 à ~12× le temps réel sur RTX 4070 avec ~2.5 GB de VRAM.
- Les deux outils utilisent des poids de modèle Whisper identiques d'OpenAI. Le WER (taux d'erreur de mots) est identique — la différence réside dans la performance d'exécution et le chemin d'intégration, pas dans la précision de transcription.
- Whisper large-v3 offre la meilleure précision avec 2.5 % de WER sur l'anglais. Pour la plupart des cas d'usage, Whisper small (3.4 % WER, 2 GB RAM) ou medium (2.9 % WER, 5 GB RAM) offre un meilleur compromis vitesse-précision.
- La transcription en temps réel est accessible avec les deux outils — whisper.cpp via son flag
--stream, faster-whisper via son pipeline VAD intégré. La latence pratique est de 0.5–2 secondes derrière la parole en direct selon la taille du modèle. - whisper.cpp fonctionne sur CPU, Metal, CUDA et Vulkan — seul choix pour les déploiements embarqués multi-plateformes (Raspberry Pi, GPU Windows, serveurs ARM). faster-whisper supporte uniquement CPU et CUDA (pas de Metal sur Mac).
- Pour Raspberry Pi 5 et Linux embarqué, whisper.cpp tiny et base sur CPU sont les modèles capables de temps réel — tiny tourne confortablement plus vite que le temps réel, base autour du temps réel avec
-t 4. Le modèle small (3.4 % WER) tourne en deçà du temps réel sur le Pi 5 et convient mieux aux jobs par lots. Toute l'inférence se fait sur CPU (ARM NEON) — le Pi n'a pas de chemin GPU utilisable pour Whisper.
En un coup d'œil
- Les deux outils : basés sur le modèle Whisper open source d'OpenAI (licence MIT). Même précision — runtimes différents.
- whisper.cpp : écrit en C/C++ par Georgi Gerganov. Supporte CPU (AVX2/NEON), CUDA, Metal (Apple), Vulkan. Aucun Python requis.
- faster-whisper : bibliothèque Python utilisant CTranslate2. Supporte CPU (int8) et CUDA. Pas de support Apple Metal.
- Tailles de modèles Whisper : tiny (39M), base (74M), small (244M), medium (769M), large-v3 (1.55B). Tous au format GGML / CTranslate2.
- Meilleur modèle pour la plupart des usages : Whisper small — 3.4 % WER, tourne dans 2 GB de RAM, 6× le temps réel sur CPU moderne.
- Benchmark RTX 4070 (large-v3) : faster-whisper ~12× temps réel ; whisper.cpp CUDA ~8× temps réel. faster-whisper gagne sur NVIDIA.
- Benchmark M5 Pro (large-v3) : whisper.cpp Metal ~10× temps réel ; faster-whisper CPU uniquement ~3× temps réel. whisper.cpp gagne sur Apple.
Pourquoi la reconnaissance vocale locale ?
Les services STT cloud (Google Speech-to-Text, AWS Transcribe, Azure Speech) facturent à la minute audio — en général env. 0.005–0.022 €/min — et envoient vos données audio vers des serveurs distants. Pour les applications sensibles (dictée médicale, enregistrements juridiques, entretiens journalistiques, réunions d'entreprise), la transcription locale élimine entièrement l'exposition des données. La CNIL recommande le traitement local pour les données professionnelles sensibles lorsqu'une solution viable est disponible.
- Confidentialité : l'audio ne quitte jamais votre machine. Aucun contrat de sous-traitance RGPD requis — le traitement s'effectue localement.
- Coût : zéro frais à la minute. Un développeur transcrivant 8 heures de réunions par semaine économise env. 110–440 €/mois par rapport aux tarifs STT cloud.
- Hors ligne : fonctionne en avion, dans des installations sécurisées, sans connexion fiable. Aucune gestion de clé API.
- Latence : pas d'aller-retour upload/download. Pour les interfaces vocales temps réel, le traitement local réduit la latence STT de 300–800 ms (cloud) à 50–300 ms.
- Personnalisation : affinage sur un vocabulaire spécifique au domaine. Utilisation de n'importe quelle taille de modèle adaptée à votre matériel.
- Intégration Home Assistant : Whisper en local signifie que les mots de réveil et les commandes vocales ne quittent jamais votre réseau domestique. Voir Whisper local dans Home Assistant → pour la configuration du module qui remplace entièrement le STT cloud.
Tailles des modèles Whisper
whisper.cpp et faster-whisper utilisent les mêmes poids de modèle Whisper, convertis dans leur format respectif (GGML pour whisper.cpp, CTranslate2 pour faster-whisper). Choisissez la taille de modèle en fonction de votre budget VRAM/RAM et de vos exigences de précision.
| Modèle | Paramètres | VRAM / RAM | WER anglais | Facteur de vitesse (vs temps réel, RTX 4070) |
|---|---|---|---|---|
| tiny | 39M | ~1 GB | 7.6 % | ~32× |
| base | 74M | ~1 GB | 5.0 % | ~16× |
| small | 244M | ~2 GB | 3.4 % | ~6× |
| medium | 769M | ~5 GB | 2.9 % | ~2× |
| large-v3 | 1.55B | ~10 GB | 2.5 % | 1× (référence) |
| distil-large-v3 | ~756M | ~4 GB | ~2.6 % | ~6× |
Valeurs WER (taux d'erreur de mots) issues de l'article Whisper sur le jeu de test LibriSpeech clean. Plus la valeur est basse, meilleure est la précision. Facteurs de vitesse pour faster-whisper int8 sur RTX 4070. Valeurs distil-large-v3 issues de l'article Distil-Whisper.
Distil-Whisper : l'alternative plus rapide
distil-whisper/distil-large-v3 est une variante distillée de large-v3 avec ~50 % de paramètres en moins, tournant ~6× plus vite pour un WER supérieur de seulement ~1 %.** C'est le bon choix quand la vitesse de transcription prime sur le dernier pourcent de précision. distil-large-v3 fonctionne avec faster-whisper (support CTranslate2 natif) et whisper.cpp (via conversion au format GGML).
- Paramètres : ~756M — environ la moitié des 1.55B de large-v3, tenant dans ~4 GB de VRAM au lieu de ~10 GB.
- Vitesse : ~6× le temps réel sur RTX 4070 (vs 1× de référence pour large-v3) — comparable à medium en vitesse, avec une précision proche de large-v3.
- WER : ~2.6 % sur l'anglais — seulement ~0.1 % au-dessus des 2.5 % de large-v3. Différence imperceptible en pratique sur de la parole typique.
- Compatibilité : fonctionne nativement avec faster-whisper (
WhisperModel("distil-large-v3", device="cuda", compute_type="int8")). Pour whisper.cpp : conversion au format GGML via le script de conversion distil-whisper. - Idéal pour : transcription par lots, déploiements serveur avec VRAM limitée, et tout cas d'usage nécessitant la qualité de large-v3 à la vitesse du modèle medium.
- Déconseillé pour : la transcription multilingue — distil-large-v3 est optimisé uniquement pour l'anglais. Pour d'autres langues, utiliser large-v3 ou medium.
whisper.cpp – le port C/C++
whisper.cpp (par Georgi Gerganov) est une réimplémentation pure C/C++ du modèle Whisper d'OpenAI, optimisée pour l'inférence à faibles ressources sur toutes plateformes. Aucun Python, aucun toolkit CUDA requis — fonctionne sur pratiquement tout matériel, du Raspberry Pi au Apple M5 Pro.
- Support plateforme : CPU (AVX2, AVX512, ARM NEON), Apple Metal (Core ML), CUDA (NVIDIA), Vulkan (GPU AMD/Intel), OpenCL.
- Avantage Apple Silicon : whisper.cpp exporte les modèles au format Core ML, permettant l'inférence sur l'Apple Neural Engine. Large-v3 tourne à ~10× le temps réel sur M5 Pro via Metal — plus rapide que tout aller-retour cloud.
- Installation : cloner le dépôt, exécuter
make(oucmake). Binaires pré-compilés disponibles pour les plateformes courantes. Aucune dépendance Python. - Téléchargement du modèle :
bash ./models/download-ggml-model.sh base.en— télécharge le fichier modèle GGML (~142 MB pour base). - Exemple CLI :
./main -m models/ggml-base.bin -f audio.wav— transcrit un fichier WAV vers stdout. Ajouter-l frpour le français. - Mode stream temps réel :
./stream -m models/ggml-base.bin --step 3000 --length 10000— transcrit depuis le microphone par chunks de 3 secondes. - Wrapper Python : pywhispercpp fournit une liaison Python pour whisper.cpp, permettant son utilisation dans des pipelines Python sans sacrifier l'accélération Metal.
- Limitation : pas de VAD natif. Le mode stream nécessite l'ajustement des paramètres
--stepet--lengthselon le cas d'usage.
# Build from source (macOS / Linux)
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make -j4
# Download a model
bash ./models/download-ggml-model.sh large-v3
# Transcribe a file
./main -m models/ggml-large-v3.bin -f recording.wav
# Enable Metal on Apple Silicon (Core ML)
make -j4 WHISPER_COREML=1
./main -m models/ggml-large-v3-encoder.mlmodelc -f recording.wavwhisper.cpp : dernière version & mises à jour (juin 2026)
La dernière version de whisper.cpp est la v1.8.6, publiée le 2 juin 2026. Elle poursuit la ligne de maintenance v1.8.x (v1.8.4 et v1.8.5) axée sur le VAD en streaming, la stabilité serveur et les performances — pas de support de nouveau modèle. La version actuelle de faster-whisper est la v1.2.1 (31 octobre 2025). Les deux runtimes chargent toujours les mêmes poids OpenAI Whisper ; rien n'a changé concernant la précision de transcription en 2026.
- whisper.cpp v1.8.6 (2 juin 2026) : réimplémentation de
ffmpeg-transcodepour un décodage FFmpeg optionnel plus clair des fichiers audio compressés (MP3, M4A), plus une correction du chemin des exemples CI. - whisper.cpp v1.8.5 (mai 2026) : améliorations du VAD en streaming (détection d'activité vocale), corrections de fuites de paramètres serveur et d'horodatages de tokens, ainsi que des corrections de fuites mémoire dans les bindings Ruby et VAD.
- whisper.cpp v1.8.4 (19 mars 2026) : dernière synchronisation
ggmlavec de larges gains de performance, un nouveau flag-g/--gpu-device(et sélection de périphériqueGGML_CUDA) pour choisir un GPU, et des corrections de retour à la ligne des segments UTF-8. - Le VAD natif est désormais intégré à whisper.cpp. Les versions récentes ont ajouté un chemin natif de détection d'activité vocale, réduisant un avantage de longue date de faster-whisper — même si l'intégration Silero VAD de faster-whisper reste plus clé en main.
- faster-whisper v1.2.1 (31 octobre 2025) : version stable actuelle ;
pip install faster-whisperl'installe. Aucune version 2026 à la date de cette mise à jour — le projet est stable, pas à l'arrêt. - Aucun nouveau modèle Whisper de base en 2026. large-v3 et distil-large-v3 restent les poids les plus récents, donc les « mises à jour » de chaque outil sont des changements de runtime et d'outillage, pas de précision.
faster-whisper – le port CTranslate2
faster-whisper (par SYSTRAN) est une bibliothèque Python réimplémentant l'inférence Whisper avec CTranslate2 — un moteur d'inférence C++ hautement optimisé supportant la quantification int8, qui réduit l'utilisation VRAM et augmente le débit. Sur GPU NVIDIA, faster-whisper est l'implémentation Whisper locale la plus rapide disponible.
- Support plateforme : CPU (quantification int8) et GPU NVIDIA CUDA. Pas de support Apple Metal — tourne uniquement sur CPU sur Mac.
- Avantage int8 : la quantification int8 CTranslate2 réduit le VRAM de ~40 % et augmente la vitesse d'inférence de ~2× vs float16, avec un impact WER négligeable (< 0.1 % absolu).
- Installation :
pip install faster-whisper— aucune compilation requise. Le support CUDA nécessite CUDA 11.8+ et cuDNN 8.x. - VAD intégré : faster-whisper inclut l'intégration Silero VAD, qui ignore automatiquement les segments audio silencieux — crucial pour les pipelines de transcription temps réel.
- Python natif : l'API Python directe facilite le chaînage avec des LLM, des bibliothèques de traitement audio et des frameworks web.
- Vitesse : large-v3 int8 sur RTX 4070 à ~12× le temps réel avec ~2.5 GB de VRAM. CPU int8 atteint ~20× le temps réel pour le modèle tiny.
- Traitement par lots : faster-whisper supporte l'inférence en batch pour traiter efficacement de grandes archives audio.
- Limitation : pas de support Metal sur Mac — tourne uniquement sur CPU sur Apple Silicon, à ~3× le temps réel pour large-v3 vs ~10× de whisper.cpp avec Metal.
from faster_whisper import WhisperModel
# Load model (downloads automatically on first run)
model = WhisperModel("large-v3", device="cuda", compute_type="int8")
# Transcribe
segments, info = model.transcribe("audio.wav", beam_size=5)
print(f"Detected language: {info.language} (probability: {info.language_probability:.2f})")
for segment in segments:
print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {segment.text}")Obtenir ggml-base.bin via pip (configuration Python)
**Pour utiliser ggml-base.bin depuis Python via pip, installez le binding pywhispercpp — pip install pywhispercpp — puis chargez Model("base"), qui télécharge ggml-base.bin automatiquement au premier lancement.** Il n'existe pas de pip install whisper.cpp ; pywhispercpp est le wrapper pip autour du moteur C/C++ whisper.cpp, et il conserve l'accélération Metal et CUDA. Le fichier modèle GGML (ggml-base.bin, ~142 MB) est téléchargé séparément depuis Hugging Face et mis en cache localement — le paquet pip livre le moteur d'inférence, pas les poids.
📍 En une phrase
Exécutez pip install pywhispercpp, puis Model("base") en Python récupère et met en cache ggml-base.bin automatiquement à la première utilisation.
💬 En termes simples
pip installe le programme (pywhispercpp) ; le fichier modèle ggml-base.bin est un téléchargement séparé de ~142 MB qui se produit la première fois que vous chargez le modèle « base » — ou que vous récupérez à la main avec le script download-ggml-model.sh.
- Installer le binding :
pip install pywhispercpp. Pour l'accélération NVIDIA CUDA, compilez avecGGML_CUDA=1 pip install git+https://github.com/absadiki/pywhispercpp. - Téléchargement auto de ggml-base.bin :
from pywhispercpp.model import Modelpuismodel = Model("base")téléchargeggml-base.bindepuis Hugging Face (ggerganov/whisper.cpp) au premier lancement et le met en cache. Utilisez"base.en"pour la variante anglaise uniquement. - Téléchargement manuel (voie CLI, sans pip) : depuis un dépôt whisper.cpp cloné,
bash ./models/download-ggml-model.sh baseenregistre le fichier dansmodels/ggml-base.bin— le même fichier que pywhispercpp récupère. - Téléchargement direct :
curl -L -o ggml-base.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.binrécupère le modèle sans script. Remplacezbasepartiny,small,mediumoularge-v3. - Ne confondez pas les paquets :
pip install openai-whisperinstalle le Whisper PyTorch original d'OpenAI (il utilise des checkpoints.pt, pasggml-base.bin).pip install faster-whisperutilise le format CTranslate2. Seulpywhispercppconsomme les fichiers GGMLggml-*.bin. - Où réside le fichier : pywhispercpp stocke les modèles GGML téléchargés dans son cache de module (ou un chemin passé via
Model("base", models_dir="...")), de sorte que le mêmeggml-base.binest réutilisé d'un lancement à l'autre — aucun re-téléchargement.
# 1. Install the pip binding for whisper.cpp
pip install pywhispercpp
# 2. ggml-base.bin downloads automatically on first use
# from pywhispercpp.model import Model
# model = Model("base") # fetches & caches ggml-base.bin (~142 MB)
# for seg in model.transcribe("audio.wav"):
# print(seg.text)
# --- Or get ggml-base.bin manually (no pip) ---
# From a cloned whisper.cpp checkout:
bash ./models/download-ggml-model.sh base # -> models/ggml-base.bin
# Or download the file directly from Hugging Face:
curl -L -o ggml-base.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.binComparaison directe : tableau de benchmarks
Tous les benchmarks utilisent le modèle large-v3 sauf indication contraire. La vitesse est mesurée en multiples du temps réel (ex. 10× signifie : 60 minutes d'audio transcrites en 6 minutes). Valeurs VRAM pour les runs GPU ; valeurs RAM pour les runs CPU.
📍 En une phrase
Sur Apple Silicon, whisper.cpp avec Metal transcrit large-v3 à ~10× le temps réel ; sur GPU NVIDIA, faster-whisper avec int8 atteint ~12× — chaque outil s'impose nettement sur sa plateforme cible.
💬 En termes simples
Sur Mac : choisir whisper.cpp (exploite l'Apple Neural Engine) ; sur Windows/Linux avec GPU NVIDIA : choisir faster-whisper (12× plus rapide que le temps réel avec 40 % de mémoire GPU en moins).
| Métrique | whisper.cpp (large-v3) | faster-whisper (large-v3) |
|---|---|---|
| Plateforme / langage | C/C++ (multi-plateforme) | Python (CTranslate2) |
| Support GPU | CUDA, Metal, Vulkan | CUDA uniquement |
| Optimisation CPU | AVX2, ARM NEON | Quantification int8 |
| Vitesse – RTX 4070, large-v3 | ~8× temps réel | ~12× temps réel ✓ |
| Vitesse – M5 Pro, large-v3 | ~10× temps réel (Metal) ✓ | ~3× temps réel (CPU uniquement) |
| Vitesse – CPU uniquement (x86), base | ~15× temps réel | ~20× temps réel ✓ |
| VRAM – large-v3, GPU | ~3 GB | ~2.5 GB (int8) ✓ |
| Intégration Python | Wrapper nécessaire (pywhispercpp) | Natif ✓ |
| VAD (détection silence) | Manuel (réglage --step) | Intégré (Silero VAD) ✓ |
| Streaming temps réel | Oui (flag --stream) ✓ | Oui (pipeline VAD) |
| Précision WER (large-v3) | 2.5 % (identique) | 2.5 % (identique) |
| Dépendance Python | Aucune ✓ | Python 3.8+ |
| Raspberry Pi / embarqué | Oui — binaire C ✓ | Limité — overhead Python |
| Formats de sortie | SRT, VTT, JSON, CSV, txt | Objets Python (start, end, text) |
whisper.cpp écrit directement dans des formats standards (SRT, VTT, JSON, CSV, txt) — idéal pour les workflows de sous-titrage. faster-whisper retourne un générateur Python d'objets segment avec start, end et text — idéal pour le chaînage avec des LLM. Pour la génération de sous-titres, whisper.cpp est plus simple ; pour les pipelines traitant les segments de façon programmatique, faster-whisper est plus simple.
Configuration de la transcription en temps réel
La transcription temps réel traite l'audio en chunks au fur et à mesure de l'entrée microphone, produisant du texte avec un léger décalage par rapport à la parole. Les deux outils supportent ce mode avec des compromis différents.
- Mode stream whisper.cpp : exécuter
./stream -m models/ggml-small.bin --step 3000 --length 10000 -t 4. Traite des chunks de 3 secondes ; décalage ~0.5–1.5 seconde avec le modèle small. Aucun Python requis. - Pipeline VAD faster-whisper : utiliser
vad_filter=Truedansmodel.transcribe(). Silero VAD segmente automatiquement l'audio aux silences — chunks plus naturels que les fenêtres à durée fixe. - Latence pratique : 0.5–2 secondes derrière la parole en direct avec les modèles small ou medium. Utiliser tiny pour la latence minimale (< 0.5 seconde, mais WER plus élevé).
- Choix du modèle temps réel : small ou base est le meilleur compromis — assez rapide pour suivre la parole, assez précis sur audio propre. Éviter large-v3 en temps réel sans GPU dédié.
- Entrée microphone : whisper.cpp lit l'audio brut via SDL2 ou portaudio. faster-whisper lit des tableaux audio depuis n'importe quelle bibliothèque Python (sounddevice, pyaudio, soundfile).
- Stabilité : le mode stream de whisper.cpp peut produire des tokens répétés sur les silences. Supprimer avec
--suppress-blanket--no-speech-threshold.
Apple Silicon : whisper.cpp gagne
Sur Mac M1, M2, M3, M4 et M5, whisper.cpp avec l'accélération Core ML / Metal est le bon outil — sans hésitation. faster-whisper n'a pas de support Metal et tourne uniquement sur CPU sur Mac, atteignant ~3× le temps réel pour large-v3. whisper.cpp avec Metal atteint ~10× le temps réel sur M5 Pro — avantage 3× en vitesse.
- Export Core ML : exécuter
./models/generate-coreml-model.sh large-v3pour exporter l'encodeur au format Core ML. Cela déporte l'inférence de l'encodeur vers l'Apple Neural Engine. - Benchmark M5 Pro (large-v3, Metal) : ~10× le temps réel. 60 minutes d'audio transcrites en ~6 minutes. Note : le M5 Pro est sorti en mars 2026 — il s'agit de benchmarks communautaires préliminaires. Les performances pourront s'améliorer avec les mises à jour de whisper.cpp optimisant le Neural Engine M5.
- Benchmark M3 MacBook Air (large-v3, Metal) : ~7× le temps réel. 60 minutes en ~8.5 minutes.
- Mémoire : la mémoire unifiée signifie pas de VRAM séparée — un M5 Pro 16 GB peut exécuter large-v3 (~3 GB) confortablement en parallèle d'autres processus.
- faster-whisper sur Mac : CPU uniquement, int8. Large-v3 à ~3× le temps réel. Utilisable pour la transcription par lots de nuit, pas pour le temps réel.
- Recommandation : utiliser whisper.cpp pour tous les travaux STT sur Mac. Ajouter pywhispercpp si une intégration Python est nécessaire tout en conservant l'accélération Metal.
GPU NVIDIA : faster-whisper gagne
Sur Windows et Linux avec GPU NVIDIA, faster-whisper est le meilleur choix. Son backend CUDA CTranslate2 est plus optimisé que le chemin CUDA de whisper.cpp — ~12× vs ~8× le temps réel pour large-v3 sur RTX 4070, avec moins de VRAM.
- Benchmark RTX 4070 (12 GB) (large-v3 int8) : ~12× le temps réel, ~2.5 GB VRAM.
- Benchmark RTX 3060 (12 GB) (large-v3 int8) : ~8× le temps réel, ~2.5 GB VRAM.
- Benchmark RTX 4060 (8 GB) (large-v3 int8) : ~7× le temps réel, ~2.5 GB VRAM — tient facilement.
- int8 vs float16 : int8 est ~2× plus rapide et utilise ~40 % de VRAM en moins avec une perte de précision négligeable. Toujours utiliser
compute_type="int8"sur NVIDIA. - Traitement par lots : le paramètre
batched=Truede faster-whisper permet le traitement parallèle de plusieurs fichiers audio, maximisant l'utilisation GPU pour les gros jobs de transcription. - Intégration pipeline Python : faster-whisper s'intègre directement dans LangChain, Haystack et des pipelines Python personnalisés. Pas d'overhead subprocess comparé au wrapping de whisper.cpp.
Whisper sur Raspberry Pi 5 : tiny, base & small
Sur un Raspberry Pi 5, whisper.cpp exécute les modèles tiny et base en temps réel pour la transcription en direct, tandis que le modèle small tourne en deçà du temps réel et vaut mieux le réserver aux jobs par lots. Le quad-core Cortex-A76 du Pi 5 n'a pas de chemin GPU utilisable pour Whisper, donc toute l'inférence se fait sur CPU (ARM NEON). Utilisez les modèles GGML quantifiés (ggml-*-q5_0.bin) pour réduire l'usage mémoire et accélérer l'inférence.
📍 En une phrase
Sur un Raspberry Pi 5, le modèle small de whisper.cpp tourne plus lentement que le temps réel (~0.5×, batch uniquement) ; tiny et base sont les modèles qui suivent la parole en direct.
💬 En termes simples
Un Pi 5 peut transcrire de l'audio en direct avec les modèles Whisper tiny et base, mais le modèle small est trop lourd pour suivre en temps réel — utilisez small pour des fichiers enregistrés que vous traitez en arrière-plan, pas pour un microphone en direct.
- Whisper small sur Pi 5 : environ 0.4–0.6× le temps réel sur CPU (un clip de 10 minutes prend ~17–25 minutes). Précis à 3.4 % WER mais trop lent pour le sous-titrage en direct — à utiliser pour la transcription de nuit/par lots.
- Whisper base sur Pi 5 : autour du temps réel jusqu'à ~2× avec le multithreading (
-t 4). Le compromis pratique idéal pour la transcription en direct sur le Pi, avec un WER acceptable de 5.0 %. - Whisper tiny sur Pi 5 : l'option la plus rapide, confortablement plus rapide que le temps réel pour l'usage en direct, au prix d'un WER plus élevé de 7.6 %. Idéal pour la reconnaissance de mots de réveil et de commandes courtes.
- Utilisez des modèles quantifiés :
bash ./models/download-ggml-model.sh small-q5_0réduit la RAM et accélère l'inférence avec une perte de précision minimale — important sur la mémoire partagée du Pi 5. - faster-whisper sur Pi 5 : installable (
pip install faster-whisper, CPU int8) et compétitif pour les jobs par lots, mais le binaire C plus léger de whisper.cpp reste le choix embarqué le plus courant. - Thermique : une transcription soutenue sollicite fortement le CPU du Pi 5 — utilisez un refroidissement actif pour éviter le throttling thermique qui dégrade ces chiffres.
Quel outil utiliser ?
Correspondance directe scénario → outil recommandé :
📍 En une phrase
Utiliser whisper.cpp sur Apple Silicon et les cibles embarquées/multi-plateformes ; utiliser faster-whisper sur GPU NVIDIA et dans les pipelines Python.
💬 En termes simples
Avec un Mac : choisir whisper.cpp — 3× plus rapide que faster-whisper sur Apple. Avec un GPU NVIDIA et Python : choisir faster-whisper — plus rapide et 40 % de mémoire GPU en moins.
| Scénario | Meilleur choix | Raison |
|---|---|---|
| Mac Apple Silicon (tout modèle) | whisper.cpp | Accélération Metal / Core ML — 3× plus rapide que faster-whisper (CPU uniquement sur Mac) |
| Serveur GPU NVIDIA (Linux/Windows) | faster-whisper | CTranslate2 int8 — plus rapide et moins de VRAM que le chemin CUDA de whisper.cpp |
| Pipeline de données Python | faster-whisper | API Python native ; pas de wrapper subprocess ; VAD intégré |
| Raspberry Pi / Linux embarqué | whisper.cpp | Binaire C pur ; pas d'overhead runtime Python ; optimisé ARM NEON |
| Assistant vocal temps réel | whisper.cpp | Mode stream à faible overhead ; fonctionne sans Python sur Pi / embarqué |
| Transcription par lots (grande archive audio) | faster-whisper | Inférence en batch, utilisation GPU, intégration Python async |
| GPU AMD (Vulkan) | whisper.cpp | Support backend Vulkan ; faster-whisper est CUDA uniquement |
| Serveur Linux CPU uniquement | faster-whisper | La quantification int8 donne ~30 % d'avantage vitesse sur CPU x86 |
Au-delà de whisper.cpp et faster-whisper
Deux outils supplémentaires étendent Whisper avec des fonctionnalités qu'aucun des deux ne fournit nativement : la diarisation des locuteurs et l'inférence GPU ultra-rapide par lots.
- WhisperX :** construit sur faster-whisper, ajoute des horodatages au niveau du mot et la diarisation des locuteurs — qui a dit quoi. Idéal pour : transcription de réunions avec identification des intervenants, montage de podcasts, transcription d'interviews. Installation avec
pip install whisperxet token Hugging Face pour le modèle de diarisation. - insanely-fast-whisper :** wrapper de pipeline Hugging Face Transformers avec support Flash Attention 2 pour une inférence GPU significativement plus rapide que faster-whisper standard sur NVIDIA. Idéal pour : traitement par lots de grandes archives audio sur GPU NVIDIA. Nécessite un GPU compatible Flash Attention 2 (Ampere ou plus récent : RTX 3000+, A100, H100).
Problèmes courants et solutions
Les problèmes les plus fréquents en configuration et à l'exécution, avec des solutions directes :
- Incompatibilité de version CUDA : faster-whisper nécessite CUDA 11.8 ou supérieur. Vérifier avec
nvcc --version. Si votre CUDA est plus ancien : mettre à jour le driver ou installer faster-whisper dans un environnement conda aveccudatoolkit=11.8. - L'export du modèle Metal échoue : les Xcode Command Line Tools doivent être installés — exécuter
xcode-select --install. Le script d'export Core ML nécessite le paquet Pythoncoremltools:pip install coremltools. - Hallucinations sur les silences : les deux outils peuvent générer des tokens répétés sur les segments silencieux. Utiliser
--no-speech-threshold 0.6en mode stream whisper.cpp, ouvad_filter=Truedansmodel.transcribe()de faster-whisper pour ignorer automatiquement les silences. - Mémoire insuffisante avec large-v3 : passer à la quantification int8 dans faster-whisper (
compute_type="int8") — réduit le VRAM de ~5 GB (float16) à ~2.5 GB. Avec whisper.cpp : utiliser la variante GGML quantifiée (ex.ggml-large-v3-q5_0.bin), réduisant la mémoire à ~3–4 GB. - Sortie illisible sur audio non anglais : ne pas utiliser les variantes
.en(tiny.en, base.en) pour de l'audio non anglais — elles sont English-only. Utiliser les modèles multilingues (base, small, medium, large-v3) et spécifier la langue explicitement :-l frdans whisper.cpp oulanguage="fr"dans faster-whisper. - Inférence CPU lente : vérifier que le CPU supporte les instructions AVX2 (requises pour l'inférence CPU optimisée). Vérifier avec
grep avx2 /proc/cpuinfosous Linux ousysctl machdep.cpu.featuressur Mac. Les CPU sans AVX2 utilisent SIMD générique et seront 2–3× plus lents.
Foire aux questions
La précision de transcription est-elle identique entre whisper.cpp et faster-whisper ?
Oui. Les deux outils utilisent les mêmes poids de modèle OpenAI Whisper — le modèle lui-même est identique. La différence réside uniquement dans le runtime d'inférence (C/C++ vs CTranslate2 Python). Le WER sur le même fichier audio sera dans un écart de 0.1 % absolu — dans la variation normale due à la recherche en faisceau.
Puis-je utiliser faster-whisper sur un Mac Apple Silicon ?
Oui, mais uniquement sur CPU — faster-whisper n'a pas de support Metal. Sur un M5 Pro, faster-whisper large-v3 tourne à ~3× le temps réel (CPU int8), contre ~10× de whisper.cpp avec Metal. Pour la plupart des utilisateurs Mac, whisper.cpp est 3× plus rapide pour le même modèle. La seule raison d'utiliser faster-whisper sur Mac est si votre pipeline Python en dépend déjà et que la vitesse n'est pas critique.
Quelle taille de modèle Whisper utiliser pour un assistant vocal ?
Pour les interfaces vocales temps réel, Whisper small est la recommandation standard — 3.4 % WER sur l'anglais propre, ~200 ms de latence STT sur CPU ou GPU moderne, et tient dans 2 GB de RAM. Utiliser tiny sur matériel très contraint (Raspberry Pi Zero 2W) en acceptant ~7.6 % de WER. Réserver medium ou large-v3 à la transcription par lots où la latence n'est pas une contrainte.
whisper.cpp supporte-t-il d'autres langues que l'anglais ?
Oui. Tous les modèles Whisper multilingues (base, small, medium, large-v3) supportent 99 langues. Ajouter `-l [code langue] en CLI : -l fr pour le français, -l de pour l'allemand, -l ja` pour le japonais, etc. Les modèles tiny.en et base.en sont English-only et légèrement plus précis pour l'anglais que leurs équivalents multilingues.
Comment installer faster-whisper avec le support CUDA ?
Installation avec pip install faster-whisper. Le support CUDA nécessite CUDA 11.8 ou supérieur et cuDNN 8.x sur le système. Vérifier la version CUDA avec nvcc --version. Spécifier ensuite device="cuda" lors du chargement du modèle : WhisperModel("large-v3", device="cuda", compute_type="int8"). Si CUDA n'est pas détecté, faster-whisper bascule automatiquement sur CPU.
Lequel est le plus précis — whisper.cpp ou faster-whisper ?
Identique. Les deux outils utilisent les mêmes poids de modèle OpenAI Whisper et produisent le même WER sur tout fichier audio donné. La différence entre whisper.cpp et faster-whisper est la vitesse et le support plateforme, pas la précision. Toute différence de WER mesurée entre les runs est dans la variation normale de la recherche en faisceau, pas due au runtime.
Puis-je faire tourner Whisper large-v3 avec 8 GB de RAM ?
Oui sur GPU — large-v3 int8 dans faster-whisper utilise ~2.5 GB de VRAM et tourne sur tout GPU 8 GB. Sur matériel CPU uniquement, 8 GB de RAM est juste pour large-v3 (float32 utilise ~10 GB). Utiliser medium (5 GB RAM) ou small (2 GB RAM) sur systèmes CPU uniquement. whisper.cpp est plus efficace en mémoire que faster-whisper sur CPU grâce à un overhead runtime plus faible.
Quel est le coût de Whisper local vs STT cloud ?
Zéro coût récurrent. Les services STT cloud facturent env. 0.005–0.022 €/min — pour un développeur transcrivant 8 heures de réunions par semaine, cela représente env. 110–440 €/mois. Whisper local tourne sur du matériel déjà possédé, sans frais à la minute, sans gestion de clé API, et sans que les données audio quittent la machine.
Sources
- whisper.cpp sur GitHub — Code source, instructions de build, scripts de téléchargement de modèles et guide Metal/Core ML.
- faster-whisper sur GitHub — Code source, documentation de l'API Python et résultats de benchmarks.
- distil-whisper/distil-large-v3 sur Hugging Face — Fiche modèle, résultats de benchmarks et instructions d'utilisation de la variante distillée.
- WhisperX sur GitHub — Horodatages au niveau du mot et diarisation des locuteurs, construit sur faster-whisper.
- insanely-fast-whisper sur GitHub — Pipeline Whisper Flash Attention 2 pour un débit GPU NVIDIA maximal.
- OpenAI Whisper sur GitHub — Modèle Whisper original, article de recherche et fiches modèles pour toutes les tailles.
- Article OpenAI Whisper (Radford et al., 2022) — « Robust Speech Recognition via Large-Scale Weak Supervision. » Source des valeurs WER.
- Documentation CTranslate2 — Détails de quantification, support matériel et bases de l'optimisation int8.