Ce que nous avons fait
Les mêmes 24 phrases anglaises lues, passées par sept codecs vocaux puis ramenées à 16 kHz, avec ffmpeg : A-law (300 à 3 400 Hz à 8 kHz), AMR bande étroite à 4,75 et 12,2 kbit/s, AMR large bande à 12,65 kbit/s, GSM 6.10, et Opus en mode voix à 8 et 16 kbit/s. Deux moteurs de reconnaissance ouverts, Whisper small et Whisper large-v3-turbo. Les conditions ont été enregistrées le 15 octobre 2026, avant la première transcription.
Les mesures d’AudioLab ont été lues ensuite sur les mêmes fichiers, sans connaître le résultat d’un moteur de reconnaissance. Cette lecture était exploratoire : elle n’avait pas de critères de réussite et ce n’est pas un test dont le protocole était enregistré à l’avance.
Le résultat
Ce que cela coûte à un moteur de reconnaissance : aucune différence nette pour aucun codec, pour aucun des deux modèles. La plus forte variation était celle de l’AMR bande étroite à 4,75 kbit/s pour Whisper small : +1,8 points, avec un intervalle de +0,0 à +4,5.
| Codec | Bande passante lue par AudioLab, Hz (médiane, plage) | Étiquette de source avec pertes | Variation du WER, points : Whisper small | Whisper large-v3-turbo |
|---|---|---|---|---|
| Non codé (référence) | 7 992 (6 297 à 7 992) | 24 lossless, 0 lossy | référence | référence |
| A-law, 8 kHz | 4 227 (4 047 à 4 453) | 14 lossless, 10 inconnu, 0 lossy | +0,0 (+0,0 à +0,0), pas de variation nette | −0,9 (−2,0 à +0,0), pas de variation nette |
| AMR bande étroite, 4,75 kbit/s | 3 965 (3 773 à 4 469) | 22 lossless, 2 inconnu, 0 lossy | +1,8 (+0,0 à +4,5), pas de variation nette | −0,7 (−1,8 à +0,0), pas de variation nette |
| AMR bande étroite, 12,2 kbit/s | 4 133 (3 797 à 4 477) | 19 lossless, 5 inconnu, 0 lossy | +1,1 (+0,0 à +3,1), pas de variation nette | −0,7 (−1,8 à +0,0), pas de variation nette |
| GSM 6.10 | 4 223 (4 016 à 4 492) | 15 lossless, 9 inconnu, 0 lossy | +0,5 (−1,3 à +2,8), pas de variation nette | −0,9 (−2,0 à +0,0), pas de variation nette |
| Opus, 8 kbit/s | 4 613 (4 328 à 4 914) | 23 lossless, 1 inconnu, 0 lossy | +0,2 (+0,0 à +0,8), pas de variation nette | −0,9 (−2,0 à +0,0), pas de variation nette |
| AMR large bande, 12,65 kbit/s | 7 273 (6 242 à 7 672) | 24 lossless, 0 lossy | −0,5 (−1,6 à +0,5), pas de variation nette | −0,5 (−1,1 à +0,0), pas de variation nette |
| Opus, 16 kbit/s | 7 633 (6 125 à 7 992) | 24 lossless, 0 lossy | −0,5 (−1,6 à +0,5), pas de variation nette | +0,0 (+0,0 à +0,0), pas de variation nette |
24 phrases par ligne. Les effectifs des étiquettes portent sur les 24 enregistrements. Une variation n’est nettement pire ou meilleure que si son intervalle à 95 % se trouve entièrement d’un seul côté de zéro et qu’elle atteint au moins 2 points ; aucune ne l’était.
Ce qu’AudioLab lit : la bande, pas le codec. La bande passante sépare complètement l’audio en bande étroite de l’audio en large bande. Les cinq conditions en bande étroite (A-law, les deux AMR bande étroite, GSM et Opus à 8 kbit/s) donnent 3,8 à 4,9 kHz, avec des médianes entre 4,0 et 4,6 kHz ; les deux codecs large bande et les phrases qui n’ont pas été codées donnent 6,1 à 8,0 kHz. Sur 120 enregistrements en bande étroite et 72 autres, l’aire sous la courbe est de 1,000. Opus à 8 kbit/s compte comme bande étroite : c’est ce que le moteur lit pour lui, et nous l’avons confirmé en mesurant l’énergie au-dessus de la bande, qui est presque nulle.
Ce qu’il ne lit pas : qu’un codec a été utilisé. L’étiquette de source avec pertes n’a jamais dit « lossy » sur ces 168 enregistrements : 141 ont été lus lossless et 27 inconnus. Lossless signifie ici qu’aucun mur d’un codec musical n’a été trouvé, pas qu’aucun codec n’a été utilisé. L’étiquette pour l’audio étiré depuis une fréquence d’échantillonnage plus basse a trouvé l’origine 8 kHz dans 4 enregistrements sur 96 passés par les quatre codecs 8 kHz, et la profondeur de bits effective a lu 16 partout, parce que la sortie est de l’audio 16 bits, quoi qu’il se soit passé avant.
Donc : AudioLab peut vous dire la bande que votre audio a réellement, ce qui est ce qu’une ligne en bande étroite fait à un enregistrement. Il ne peut pas vous dire qu’un codec est intervenu. Et pour ces deux modèles, aucun codec n’a coûté quoi que ce soit que nous ayons pu montrer ; pour savoir si cela compte pour votre moteur de reconnaissance, il faut le tester avec lui.
Jusqu’où cela va
De vrais encodeurs passés par ffmpeg sur de la parole lue en anglais, 16 kHz, 24 phrases par codec, Whisper small et large-v3-turbo sur un CPU. Les intervalles sont larges : une variation inférieure à environ 2 points ne se distingue pas d’une absence de variation.
Ce que nous n’avons pas testé
- De vrais appels téléphoniques : ce sont des fichiers passés par un encodeur, sans réseau, sans écho et sans second tronçon d’appel.
- Les codecs qui dissimulent les paquets perdus, et la perte elle-même (voir la page sur la perte de paquets).
- D’autres codecs et débits, et des chaînes de plusieurs codecs.
- D’autres moteurs de reconnaissance, des moteurs en flux continu et d’autres langues.
- Nous avions consigné à l’avance que l’AMR bande étroite à 4,75 kbit/s serait moins bon qu’à 12,2 kbit/s. Le sens était juste, mais dans le bruit.
Sources et étapes suivantes
Études dans notre registre : test de résistance v0.3, V03-ENG. Le statut de chaque mesure se trouve sur /lenses et notre façon de tester sur /methodology.
Autres preuves
- Niveau et écrêtage
- Perte de paquets
- Écho : en préparation
- Bruit et SNR
- Une voix concurrente
- Mesures de scène et type de contenu
- Détection de la parole
- Coupure au début et à la fin
- Pièce et réverbération
- Les mesures audio prédisent-elles les erreurs ?
- Une étape de nettoyage, avant et après : en préparation
- Là où nous nous sommes trompés