Glossaire / Comment il vous entend
Taux d’erreur de mots
Aussi : WER
Mis à jour le
Définition
Le taux d’erreur de mots (WER, word error rate) est la mesure standard de la précision de la reconnaissance vocale : le nombre de mots sur lesquels un modèle s’est trompé, divisé par le nombre de mots réellement prononcés. Un WER de 5 % signifie qu’environ un mot sur vingt a été remplacé, omis ou inventé.
Le WER compte trois types d’erreurs. Une substitution est un mauvais mot au bon endroit (« ces » pour « ses »). Une suppression est un mot prononcé qui n’est jamais apparu. Une insertion est un mot apparu qui n’a jamais été prononcé. Additionnez-les, divisez par le nombre de mots de la transcription correcte, et vous obtenez le taux. Il peut dépasser 100 % sur un mauvais audio, car les insertions ne sont pas limitées.
Le chiffre n’a de sens qu’à côté de l’audio sur lequel il a été mesuré. Un modèle qui obtient 3 % sur de l’anglais lu, propre, enregistré avec un micro de podcast, peut obtenir 15 % avec la même personne dans un café, et pire encore dans une langue qu’il a moins vue à l’entraînement. Les WER publiés sont presque toujours mesurés sur des jeux de référence standard, plus propres que votre bureau.
Ce que le WER ne mesure pas
Toutes les erreurs comptent pareil, et elles ne se valent pas. Un « euh » omis est une amélioration ; un « pas » omis inverse le sens. Un nom de famille mal orthographié vous coûte une correction ; un « le » mal orthographié ne vous coûte rien, car vous ne le voyez jamais. La mise en forme est totalement invisible pour le WER : « 1030 am » et « 10:30 AM » sont les mêmes mots. Un outil avec un WER brut un peu moins bon et une bien meilleure mise en forme peut donc produire un texte qui demande beaucoup moins de corrections.
C’est pourquoi le chiffre qui vous intéresse vraiment ressemble plutôt à « corrections pour cent mots après mise en forme », qu’aucun benchmark ne publie et que vous ne pouvez mesurer qu’en dictant votre propre travail pendant une semaine.
Comment lire une annonce de précision d’un éditeur
Demandez quel benchmark, quelle langue et quel micro. « Précis à 99 % » sans jeu de données cité est une phrase marketing. Demandez si le chiffre est avant ou après une éventuelle étape de correction, et si un dictionnaire personnel était utilisé. Et mettez-le en balance avec ce que le WER ne voit pas : les noms, les nombres, et si le texte arrive comme un écrit ou comme une transcription.
Réduire votre propre taux d’erreur
Un meilleur micro, plus près de votre bouche, aide plus que n’importe quel changement de modèle. Finir vos phrases avant de relâcher la touche donne au modèle le contexte pour lever les ambiguïtés. Et un dictionnaire personnel pour les noms et les termes que vous dites vraiment corrige les erreurs qui se répètent, celles qui comptent : une erreur qui arrive une fois par mois est un désagrément, une erreur qui arrive tous les jours est une raison d’arrêter de dicter.
Comment mesurer votre propre taux d’erreur de mots sur un Mac
Vous pouvez mesurer le WER sur votre propre voix et votre propre micro avec un outil open source gratuit appelé jiwer. Il calcule la distance d’édition minimale entre une transcription correcte et ce que le système de reconnaissance a produit, ce qui est le même calcul que celui des benchmarks.
Le résultat décrit votre bureau, votre micro et le passage que vous avez lu. C’est un petit échantillon : prenez-le comme une mesure approximative, et refaites le test avec un autre texte avant de tirer des conclusions.
- Choisissez un passage de quelques centaines de mots et enregistrez-le en fichier texte brut nommé ref.txt, avec une phrase par ligne. C’est votre référence.
- Dictez le même passage avec l’outil que vous voulez tester, et enregistrez le résultat sous hyp.txt, avec les mêmes phrases sur les mêmes lignes.
- Décidez comment traiter les majuscules, la ponctuation et les nombres, puis appliquez le même nettoyage aux deux fichiers. Un choix simple : tout mettre en minuscules et retirer la ponctuation dans les deux.
- Ouvrez Terminal et installez l’outil avec : pip install jiwer (il faut Python 3.8 ou ultérieur).
- Lancez : jiwer -r ref.txt -h hyp.txt pour afficher le taux d’erreur de mots.
- Ajoutez -a à la commande pour afficher l’alignement de chaque phrase et voir quels mots ont été remplacés, supprimés ou insérés.
- Ajoutez -c si vous voulez plutôt le taux d’erreur de caractères.
Pourquoi deux WER pour le même modèle ne concordent-ils pas ?
En général parce que le texte n’a pas été nettoyé de la même façon avant le calcul. Le WER repose sur la distance d’édition entre chaînes : il pénalise donc chaque différence entre les deux transcriptions, y compris celles qu’une personne jugerait correctes, comme une contraction écrite en entier ou un nombre écrit en chiffres.
L’article sur Whisper décrit ce problème et y répond avec un normaliseur de texte, appliqué aux deux transcriptions avant de compter les erreurs. Les auteurs indiquent que, sur plusieurs jeux de données, cette seule étape a fait baisser le WER de jusqu’à 50 %. Un WER publié sans la description de la normalisation utilisée ne peut pas être comparé à un autre.
- Le normaliseur de Whisper supprime les mots hmm, mm, mhm, mmm, uh et um avant le calcul.
- Il supprime toute expression entre crochets ou entre parenthèses.
- Il développe les contractions en leur forme complète.
- Il réécrit en chiffres les nombres et les montants écrits en toutes lettres, si bien que « ten thousand dollars » devient « $10000 ».
- Il convertit l’orthographe britannique en orthographe américaine et retire la plupart de la ponctuation et des symboles.
WER ou CER : des mots ou des caractères
Le taux d’erreur de caractères (CER) est le même calcul, fait sur les caractères au lieu des mots. Une seule lettre fausse dans un mot long compte comme une erreur entière dans le WER et comme une petite fraction d’erreur dans le CER. Le CER donne donc un chiffre plus clément, et les deux ne peuvent pas être comparés entre eux.
Les éditeurs de modèles choisissent l’unité selon la langue. Le projet Whisper, par exemple, publie soit le WER, soit le CER pour chaque langue sur les jeux de données Common Voice 15 et Fleurs. Quand vous lisez un tableau de précision, vérifiez lequel des deux une ligne utilise avant de la comparer à une autre.
Les questions qu’on se pose.
Qu’est-ce qu’un bon taux d’erreur de mots ?
Sur de l’audio de référence propre en anglais, les meilleurs modèles actuels sont sous les 5 %. En usage réel, avec le micro d’un portable et une parole ordinaire, 5 à 10 % est courant et reste très utilisable quand l’outil a une bonne mise en forme et un dictionnaire pour vos noms.
Comment calcule-t-on le taux d’erreur de mots ?
Substitutions plus suppressions plus insertions, divisées par le nombre de mots de la transcription correcte. Un modèle qui change un mot, en omet un et en ajoute un dans un passage de cent mots a un WER de 3 %.
Un WER plus bas signifie-t-il toujours un meilleur outil ?
Non. Le WER ignore la mise en forme, la ponctuation et la nature des mots erronés. Un outil qui écrit correctement les heures, les prix et les noms et qui retire les hésitations peut demander moins de corrections qu’un outil au WER brut plus bas sans mise en forme.
Comment calculer le WER moi-même ?
Enregistrez le texte correct et la sortie de la reconnaissance vocale dans deux fichiers texte, installez l’outil open source jiwer avec pip install jiwer, et lancez jiwer -r ref.txt -h hyp.txt dans Terminal. Appliquez d’abord le même nettoyage des majuscules et de la ponctuation aux deux fichiers, sinon les différences de mise en forme seront comptées comme des erreurs.
Quelle est la différence entre WER et CER ?
Le WER compte les mots faux et le CER les caractères faux, chacun divisé par la longueur de la transcription correcte. Pour une même sortie, le CER est plus bas, car un mot avec une seule lettre fausse est presque juste au niveau des caractères.
La ponctuation compte-t-elle dans le taux d’erreur de mots ?
Cela dépend de la normalisation du texte. La plupart des bancs d’essai retirent la ponctuation et les majuscules des deux transcriptions avant le calcul, comme le fait le normaliseur de l’article sur Whisper. Le chiffre publié ne dit donc rien de la façon dont un modèle ponctue.