whisper.cpp 1.9.5 testé pour de vrai : protocole, mesures et limites (2026-10-18)
Test exécuté le 18 octobre 2026 (page rédigée le 18 octobre 2026).
Test d'usage réel mais limité : une machine, un jeu de test synthétique, aucune note ni classement. Les résultats ne se généralisent pas à d'autres données. Notre méthode.
En résumé
Le 2026-10-18, nous avons téléchargé whisper.cpp 1.9.5 et le plus petit modèle (ggml-tiny.bin), vérifié leurs empreintes, puis transcrit un seul extrait audio en français de 25,95 s, produit par une voix de synthèse. Ce test porte sur une machine, une version, un modèle et 62 mots : il décrit ce que nous avons observé, il ne dit rien de la qualité générale de whisper.cpp et ne se généralise ni aux autres modèles ni aux voix humaines. L'avis MagicMate sur whisper.cpp donne le contexte de l'outil.
Ce que nous avons observé, dans l'ordre :
- Temps de traitement : 2 509, 2 227, 2 280 et 2 300 ms sur 4 exécutions (moyenne 2 329 ms), chargement du modèle inclus, soit un facteur temps réel d'environ 0,09.
- Taux d'erreur de mots : 41,9 % en brut (26 erreurs sur 62 mots de référence) et 25,8 % après mise en forme (16 erreurs sur 62). Sur un seul extrait synthétique, ces valeurs n'ont aucune valeur statistique.
- Erreurs relevées : une vraie erreur de valeur (« 2016 » au lieu de « deux mille vingt-six »), un nom propre déformé, plusieurs mots courants mal reconnus. Les accents sont restitués quand le mot est reconnu.
- Les quatre formats de sortie demandés (JSON, SRT, VTT, texte) ont été produits. Un écart de 0,25 s sur l'horodatage final reste non expliqué.
Protocole et commandes
Machine : Windows 11, Intel Core i5-10400F (6 cœurs, 12 threads), processeur seul, sans carte graphique utilisée. Commandes en PowerShell. Aucun déplacement dans les dossiers téléchargés : chaque commande reçoit ses chemins en argument. Dans les commandes, $b désigne le dossier de travail (sous-dossiers dl, bin, audio, out).
- Version et binaire. whisper.cpp 1.9.5 est publiée le 2026-10-06 (API GitHub, release la plus récente). Le tag v1.9.5 ne porte aucun fichier : les binaires se trouvent sur la release compagnon
b5454, publiée le même jour, que le texte de la release v1.9.5 cite comme « Nightly build ». Nous avons utiliséwhisper-bin-x64.zip(8 928 640 octets, Windows x64, processeur seul, sans CUDA). Son SHA-256, calculé par nous (début 6BA69E34, fin D816CCB), est identique au condensat affiché par l'API GitHub (champdigest). L'éditeur ne publie pas de fichier de sommes de contrôle séparé : ce condensat est celui que GitHub calcule à l'envoi. - Modèle.
ggml-tiny.bin, 77 691 713 octets (77,7 Mo), tiré du dépôt officiel huggingface.co/ggerganov/whisper.cpp. SHA-256 calculé :BE07E048E1E599AD46341C8D2A135645097A538221678B7ACDD1B1919C6E1B21, identique à l'identifiant LFS publié par Hugging Face. - Téléchargement et vérification :
Invoke-WebRequest https://github.com/ggml-org/whisper.cpp/releases/download/b5454/whisper-bin-x64.zip -OutFile $b\dl\whisper-bin-x64.zip, puisInvoke-WebRequest https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin -OutFile $b\dl\ggml-tiny.bin, puisGet-FileHash <fichier> -Algorithm SHA256. - Extraction :
Expand-Archive $b\dl\whisper-bin-x64.zip -DestinationPath $b\bin(les exécutables sont dansbin\Release). L'archive contient aussi des binaires inutiles pour ce test (serveur, mesures de performance, tests) ;whisper-cli.exepèse 480 Ko etwhisper-cli.exe --versionaffiche « whisper.cpp version: 1.9.5 ». - Audio de référence : synthèse vocale Windows (System.Speech, voix « Microsoft Hortense Desktop », fr-FR), écrite avec
SetOutputToWaveFileen 16 kHz, 16 bits, mono. Durée 25,95 s (830 286 octets). Texte de référence, sans donnée personnelle et avec un nom propre fictif : « Aujourd'hui, le ciel est nuageux sur la région de Lyon. La température maximale atteindra vingt-trois degrés cet après-midi. Madame Odette Brancourt a présenté le bulletin météo le douze mars deux mille vingt-six. Demain, il pleuvra sur le nord du pays, avec des vents de soixante kilomètres par heure. Le week-end sera plus ensoleillé, et les températures remonteront progressivement. » - Options notables de
whisper-cli.exe --help:-l,-oj,-ojf,-osrt,-ovtt,-otxt,-olrc,-ocsv,-tdrz,--vad,-ng. - Transcription :
whisper-cli.exe -m ggml-tiny.bin -f test-fr.wav -l fr -of <out>\runN(4 threads et recherche en faisceau de largeur 5, valeurs par défaut). Pour les formats : même commande avec-oj -osrt -ovtt -otxt. - Mesures. Le temps est mesuré avec un
Stopwatchautour du processus entier, chargement du modèle inclus. La mémoire est le pic dePeakWorkingSet64, relevé toutes les 50 ms. - Taux d'erreur de mots : script Python (lancé avec
python -I) calculant la distance de Levenshtein sur les mots, en minuscules, ponctuation retirée, tirets et apostrophes traités comme des séparateurs. Ce script n'est pas fourni dans le dossier de test.
Résultats mesurés
| Mesure | Valeur |
|---|---|
| Durée de l'audio | 25,95 s |
| Temps total, 4 exécutions | 2 509 / 2 227 / 2 280 / 2 300 ms (moyenne 2 329 ms) |
| Facteur temps réel | environ 0,09 (environ 11 fois plus rapide que le temps réel) |
| Détail interne (exécution 1) | chargement 117 ms, encodage 507 ms, décodage (par lot) 986 ms, total 2 150 ms |
| Mémoire, pic | environ 200 Mo (mesure approximative) |
| Taille du modèle sur disque | 77,7 Mo |
| Taux d'erreur de mots, brut | 41,9 % (26 erreurs sur 62 mots de référence) |
| Taux d'erreur de mots, après mise en forme | 25,8 % (16 erreurs sur 62) |
La mise en forme consiste à épeler les chiffres, développer « km/h » et remplacer « weekend » par « week-end » avant le calcul. Le taux brut dépend donc de ce choix de normalisation (chiffres contre mots) : nous donnons les deux valeurs.
Transcription obtenue, identique sur les 4 exécutions (le fichier de sortie standard fait 528 octets à chaque fois) :
- « Aujourd'hui, le ciel est nu à jeu sur la région de Lyon. »
- « La température maximale atteindre à 23 degrés cet après-midi. »
- « Madame Audette Brancourt a présenté le but le tain météo le 12 mars 2016. »
- « Demain, il plovera sur le nord du pays, avec des ventes de 60 km/h. »
- « Le weekend sera plus en soleil et les températures remontront progressivement. »
Le code de sortie n'a pas été lu : l'objet Process de PowerShell l'a renvoyé vide avec notre méthode de lancement. Les fichiers de sortie ont néanmoins été produits et sont complets.
Erreurs relevées :
- Nombres : « 23 », « 12 » et « 60 » sont écrits en chiffres au lieu de mots, ce qui est un choix de format et pas forcément une erreur. « 2016 » au lieu de « deux mille vingt-six » est en revanche une erreur de valeur (2016 n'est pas 2026). « atteindre » pour « atteindra » est une erreur de conjugaison.
- Nom propre : « Audette » pour « Odette ». « Brancourt » et « Lyon » sont correctement restitués.
- Mots courants mal reconnus : « nuageux » devient « nu à jeu », « bulletin météo » devient « but le tain météo », « pleuvra » devient « plovera », « vents » devient « ventes », « ensoleillé » devient « en soleil », « remonteront » devient « remontront » (forme inexistante).
- Accents : ils sont restitués correctement quand le mot est reconnu (température, après-midi, présenté, météo). Les erreurs observées sont des erreurs de mots, pas de diacritiques.
- Ponctuation et majuscules : présentes et plausibles, une phrase par segment.
Formats de sortie (-oj, -osrt, -ovtt, -otxt) :
- Les quatre fichiers sont créés (JSON 1 935 octets, SRT 541, VTT 536, texte 356). Le JSON contient le modèle (type tiny, multilingue), la langue et, pour chaque segment,
timestamps(texte) etoffsets(millisecondes). L'option-ojf, plus détaillée, n'a pas été essayée. - Horodatages : 5 segments contigus, 0,00-4,08 / 4,08-8,84 / 8,84-14,64 / 14,64-20,52 / 20,52-26,20 s. Le dernier se termine à 26,20 s pour un audio de 25,95 s, soit un écart de 0,25 s. L'arrondi de la fenêtre de 30 s est une hypothèse, mais la cause n'est pas vérifiée. Les bornes sont plausibles (une phrase par segment, durées cohérentes avec une lecture à rythme constant), mais nous n'avons pas mesuré leur précision, faute de référence de chronométrage indépendante.
- SRT et VTT : format conforme (numéros,
-->, virgule en SRT, point en VTT, en-tête WEBVTT). Chaque ligne de texte commence par une espace.
Un point non établi
L'écart de 0,25 s entre la fin du dernier segment (26,20 s) et la durée de l'audio (25,95 s) : la cause n'est pas établie. Nous ne l'avons pas investiguée au-delà de la mesure.
Limites du test
- Une seule machine, une seule version (1.9.5, build b5454), configuration par défaut (processeur, 4 threads).
- Un seul modèle, le plus petit (tiny, multilingue). Les erreurs observées ne disent rien des modèles base, small, medium ou large.
- Un seul échantillon de 25,95 s et 62 mots, synthétique : une voix de synthèse n'est pas une voix humaine (articulation régulière, sans bruit, sans hésitation). Le taux d'erreur de mots n'a aucune valeur statistique et ne se généralise pas.
- Le taux brut dépend de choix de normalisation (chiffres contre mots).
- Mémoire mesurée par sondage toutes les 50 ms, donc approximative. Temps mesuré sur 4 exécutions, avec fichiers en cache disque.
- Aucune conclusion de qualité générale ne peut être tirée de ce test.
Ce que nous n'avons pas testé
- Des modèles plus grands (base, small, medium, large) et des modèles quantifiés (
ggml-tiny-q5_1.bin, 32 Mo, repéré mais non essayé). - Des voix humaines, des accents, du bruit de fond, plusieurs locuteurs, de la musique, de l'audio long (plusieurs heures), les formats mp3, flac et ogg.
- Une carte graphique (CUDA, OpenCL, Vulkan), les builds BLAS, d'autres processeurs ou systèmes.
- La diarisation (
-di;-tdrzdemande un modèle spécifique), la détection automatique de la langue, la traduction, le filtre de voix (--vad, modèle séparé), l'horodatage par mot, l'option-ojf. whisper-server,whisper-stream, les bibliothèques et les liaisons de programmation.- Une comparaison avec d'autres moteurs (Whisper d'OpenAI, faster-whisper, Vosk, etc.).
Sources
- Notre test du 2026-10-18, décrit ci-dessus (whisper.cpp 1.9.5, binaire de la release b5454, modèle ggml-tiny, empreintes SHA-256 vérifiées).
- https://github.com/ggml-org/whisper.cpp (page de la release et du binaire)
- https://huggingface.co/ggerganov/whisper.cpp (modèle ggml-tiny.bin)
- Avis MagicMate sur whisper.cpp, pour le contexte de l'outil.
Aller plus loin
- Avis MagicMate sur l'outil
- Fiche produit whisper.cpp dans le catalogue MARKETIA
- Comparatif : Transcrire de l'audio en local : Whisper, WhisperX, Vosk et applications, ce que disent les sources
- Demander une installation sur devis (installation de whisper.cpp chez vous, réponse sous 5 jours ouvrés, sans engagement)
- Tous les tests réels
- Dépôt du projet : https://github.com/ggml-org/whisper.cpp