Page informative, sans valeur de conseil. Téléchargez depuis la source officielle, vérifiez la licence du logiciel et des modèles, et gardez en tête qu'une transcription automatique contient des erreurs : relisez avant de l'exploiter.
À quoi ça sert
whisper.cpp reconnaît la parole d'un fichier audio (ou d'un flux microphone) et la convertit en
texte. Il s'appuie sur la même famille de modèles que Whisper, mais réécrits pour la bibliothèque ggml :
tout tient dans un exécutable natif et un fichier de poids au format ggml (.bin). On l'utilise
pour transcrire des réunions, des interviews, des podcasts, sous-titrer une vidéo, ou alimenter un
pipeline d'analyse — le tout sans qu'un seul octet d'audio ne quitte le poste.
Ce qui fait sa force
- Aucune pile Python à maintenir. Là où l'implémentation d'origine réclame PyTorch et ses dépendances, whisper.cpp se compile en un binaire autonome. Idéal pour embarquer la transcription dans un outil, un service ou une machine légère.
-
Quantification native. Les modèles ggml existent en versions quantifiées
(
q5_0,q8_0…) qui divisent l'empreinte mémoire sans perte sensible de qualité — un modèlemediumtourne alors confortablement sur un portable. - Accélération matérielle large. Le projet sait exploiter Apple Metal (Core ML), CUDA, Vulkan, OpenVINO et les jeux d'instructions AVX/NEON. Sur CPU seul il reste utilisable ; avec un GPU il devient très rapide.
-
Sorties prêtes à l'emploi. Texte brut,
SRTetVTTpour le sous-titrage,JSONavec horodatage, voire timestamps au mot près. C'est un maillon propre dans une chaîne de traitement. - Cœur de tout un écosystème. Beaucoup d'applications de transcription locale embarquent whisper.cpp sous le capot : une base éprouvée et activement maintenue.
Pour qui
Pour qui est à l'aise avec un terminal et veut une transcription locale, rapide et scriptable. Si vous préférez piloter Whisper depuis Python avec une API d'objets, regardez plutôt faster-whisper, qui vise le même besoin avec une autre approche. Pour la voix dans l'autre sens (texte vers parole), voyez Piper.
Installation
Prérequis
git, cmake et un compilateur C/C++ (GCC ou Clang sous Linux/macOS,
MSVC ou MinGW sous Windows). FFmpeg est utile pour préparer l'audio.
Compiler depuis les sources
Le projet est passé à CMake ; l'ancien make à la racine et le binaire
./main sont dépréciés au profit de whisper-cli.
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
cmake -B build
cmake --build build -j --config Release
Télécharger un modèle
Un script récupère les poids officiels (tiny, base, small, medium, large-v3, et variantes quantifiées) :
# « small » — bon équilibre vitesse / qualité
sh ./models/download-ggml-model.sh small
# « large-v3 » — précision maximale (plus lourd)
sh ./models/download-ggml-model.sh large-v3
Transcrire un fichier audio
whisper.cpp attend du WAV PCM 16 bits, 16 kHz, mono. On normalise au besoin avec FFmpeg :
# Préparer l'audio
ffmpeg -i mon_audio.mp3 -ar 16000 -ac 1 -c:a pcm_s16le mon_audio.wav
# Transcrire en français
./build/bin/whisper-cli -m models/ggml-small.bin -f mon_audio.wav -l fr
Options utiles
# Sous-titres SRT
./build/bin/whisper-cli -m models/ggml-small.bin -f mon_audio.wav -l fr -osrt
# Sortie JSON avec horodatage
./build/bin/whisper-cli -m models/ggml-small.bin -f mon_audio.wav -l fr -oj
# Détection automatique de la langue
./build/bin/whisper-cli -m models/ggml-small.bin -f mon_audio.wav -l auto
# Transcription temps réel depuis le micro
./build/bin/whisper-stream -m models/ggml-small.bin -l fr
Bien choisir son modèle
Du plus léger au plus précis : tiny (~75 Mo), base (~140 Mo),
small (~460 Mo), medium (~1,5 Go), large-v3 (~3 Go). Les
modèles .en sont entraînés uniquement sur l'anglais et plus précis pour cette langue ;
pour le français, prenez les modèles multilingues. En cas de mémoire limitée, une version quantifiée
(-q5_0) réduit fortement l'empreinte pour une qualité quasi identique.
Points de vigilance
whisper.cpp est un outil sain : le traitement reste local et l'outil ne fait que lire de l'audio pour produire du texte. Les vrais points à garder en tête tiennent à ce qu'on transcrit, pas à l'outil.
| Point d'attention | Niveau | Ce qu'il faut savoir |
|---|---|---|
| Enregistrer une personne sans son accord | 🔴 selon le contexte | Une voix est une donnée personnelle. Transcrire un échange privé, un appel ou une réunion sans information ni consentement des intéressés peut contrevenir au RGPD. Le traitement local protège la confidentialité technique, pas la base légale de l'enregistrement. |
| Format audio d'entrée | 🟢 simple à corriger | whisper.cpp attend du WAV 16 kHz mono. Un fichier au mauvais format échoue ou donne un résultat dégradé : passez-le d'abord par FFmpeg. |
| Licence du logiciel et des modèles | 🟢 permissive | whisper.cpp est sous MIT, et les poids Whisper publiés par OpenAI le sont également sous MIT — usage commercial possible. Vérifiez la licence de tout modèle tiers (fine-tunes) que vous ajouteriez. |
| Migration de dépôt (ggerganov → ggml-org) | 🟡 liens à mettre à jour | Le projet a migré de ggerganov/whisper.cpp vers l'organisation ggml-org/whisper.cpp. Les anciens liens ou bookmarks pointent vers l'archive ; la source active est bien github.com/ggml-org/whisper.cpp. Mettez à jour vos scripts et tutoriels qui référencent l'ancienne adresse. |
Sécurité
- Compilez depuis la source officielle —
github.com/ggml-org/whisper.cpp— et tenez votre copie à jour, le projet évolue vite. - Traitez les enregistrements comme des données sensibles. S'ils contiennent des échanges confidentiels, chiffrez le dossier de stockage et purgez les fichiers temporaires.
- Téléchargez les poids depuis le script officiel ou Hugging Face réputé ; un fichier ggml reste un fichier de poids, pas du code exécuté, mais privilégiez les sources de confiance.
Aller plus loin
- faster-whisper — la même famille Whisper, pilotée en Python via CTranslate2.
- FFmpeg — convertir et normaliser l'audio avant transcription.
- Piper — le chemin inverse : transformer du texte en voix.
- OSIALab — tous les outils voix et transcription.
Sources
- Code source & licence (MIT) : github.com/ggml-org/whisper.cpp
- Modèle Whisper d'origine (MIT) : github.com/openai/whisper