Skip to main content
PromptQuorumPromptQuorum
Accueil/LLM locaux avancés/Whisper.cpp vs faster-whisper 2026 : Benchmarks STT local, configuration & accélération GPU
Voice, Speech & Multimodal

Whisper.cpp vs faster-whisper 2026 : Benchmarks STT local, configuration & accélération GPU

·10 min de lecture·Par Hans Kuepper · Fondateur de PromptQuorum, outil de dispatch multi-modèle · PromptQuorum

whisper.cpp vs faster-whisper — les deux runtimes Whisper locaux dominants — s'imposent chacun sur leur plateforme cible. Sur Apple Silicon (Mac M-series), whisper.cpp avec l'accélération Metal est l'option STT locale la plus rapide en 2026 — large-v3 tourne à ~10× le temps réel sur M5 Pro. Sur les serveurs GPU NVIDIA et les pipelines Python, faster-whisper avec la quantification int8 CTranslate2 est le meilleur choix, atteignant ~12× le temps réel sur RTX 4070 avec seulement 2.5 GB de VRAM pour le modèle large-v3. Les deux outils utilisent les mêmes poids de modèle Whisper d'OpenAI (tiny à large-v3) ; la différence réside dans l'optimisation du runtime et le chemin d'intégration. Sur CPU uniquement, les deux sont utilisables pour les modèles tiny et base — faster-whisper a un léger avantage (~20× vs ~15× temps réel) grâce à la quantification int8.

whisper.cpp et faster-whisper sont les deux implémentations dominantes du modèle Whisper d'OpenAI pour la transcription locale hors ligne en 2026. Ce guide whisper.cpp vs faster-whisper détermine quel outil s'impose sur chaque plateforme. whisper.cpp est un portage pur C/C++ fonctionnant sur Apple Metal, CUDA, Vulkan et CPU — idéal pour Apple Silicon, les systèmes embarqués et les applications vocales temps réel. faster-whisper est une bibliothèque Python utilisant CTranslate2 qui atteint environ 4× le débit de l'implémentation originale de Whisper sur GPU NVIDIA via la quantification int8.

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èleParamètresVRAM / RAMWER anglaisFacteur de vitesse (vs temps réel, RTX 4070)
tiny39M~1 GB7.6 %~32×
base74M~1 GB5.0 %~16×
small244M~2 GB3.4 %~6×
medium769M~5 GB2.9 %~2×
large-v31.55B~10 GB2.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 (ou cmake). 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 fr pour 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 --step et --length selon le cas d'usage.
bash
# 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.wav

whisper.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-transcode pour 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 ggml avec de larges gains de performance, un nouveau flag -g / --gpu-device (et sélection de périphérique GGML_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-whisper l'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.
python
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 pywhispercpppip 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 avec GGML_CUDA=1 pip install git+https://github.com/absadiki/pywhispercpp.
  • Téléchargement auto de ggml-base.bin : from pywhispercpp.model import Model puis model = Model("base") télécharge ggml-base.bin depuis 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 base enregistre le fichier dans models/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.bin récupère le modèle sans script. Remplacez base par tiny, small, medium ou large-v3.
  • Ne confondez pas les paquets : pip install openai-whisper installe le Whisper PyTorch original d'OpenAI (il utilise des checkpoints .pt, pas ggml-base.bin). pip install faster-whisper utilise le format CTranslate2. Seul pywhispercpp consomme les fichiers GGML ggml-*.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ême ggml-base.bin est réutilisé d'un lancement à l'autre — aucun re-téléchargement.
bash
# 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.bin

Comparaison 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étriquewhisper.cpp (large-v3)faster-whisper (large-v3)
Plateforme / langageC/C++ (multi-plateforme)Python (CTranslate2)
Support GPUCUDA, Metal, VulkanCUDA uniquement
Optimisation CPUAVX2, ARM NEONQuantification 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 PythonWrapper nécessaire (pywhispercpp)Natif ✓
VAD (détection silence)Manuel (réglage --step)Intégré (Silero VAD) ✓
Streaming temps réelOui (flag --stream) ✓Oui (pipeline VAD)
Précision WER (large-v3)2.5 % (identique)2.5 % (identique)
Dépendance PythonAucune ✓Python 3.8+
Raspberry Pi / embarquéOui — binaire C ✓Limité — overhead Python
Formats de sortieSRT, VTT, JSON, CSV, txtObjets 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=True dans model.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-blank et --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-v3 pour 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=True de 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_0 ré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énarioMeilleur choixRaison
Mac Apple Silicon (tout modèle)whisper.cppAccélération Metal / Core ML — 3× plus rapide que faster-whisper (CPU uniquement sur Mac)
Serveur GPU NVIDIA (Linux/Windows)faster-whisperCTranslate2 int8 — plus rapide et moins de VRAM que le chemin CUDA de whisper.cpp
Pipeline de données Pythonfaster-whisperAPI Python native ; pas de wrapper subprocess ; VAD intégré
Raspberry Pi / Linux embarquéwhisper.cppBinaire C pur ; pas d'overhead runtime Python ; optimisé ARM NEON
Assistant vocal temps réelwhisper.cppMode stream à faible overhead ; fonctionne sans Python sur Pi / embarqué
Transcription par lots (grande archive audio)faster-whisperInférence en batch, utilisation GPU, intégration Python async
GPU AMD (Vulkan)whisper.cppSupport backend Vulkan ; faster-whisper est CUDA uniquement
Serveur Linux CPU uniquementfaster-whisperLa 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 whisperx et 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 avec cudatoolkit=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 Python coremltools : 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.6 en mode stream whisper.cpp, ou vad_filter=True dans model.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 fr dans whisper.cpp ou language="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/cpuinfo sous Linux ou sysctl machdep.cpu.features sur 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

← Retour aux LLM locaux avancés