LUFS integrated, short-term et momentary
Les relevés de loudness de MixLab implémentent ITU-R BS.1770-4 à la lettre, la recommandation qui définit l’algorithme derrière le LUFS, la mesure utilisée par toutes les grandes plateformes de streaming pour la normalisation de lecture. La norme spécifie un filtre à deux étages, une passe de sommation d’énergie et une porte à seuil relatif.
La chaîne de filtres K-weighting
Le signal est préfiltré par deux étages biquad qui, ensemble, modélisent la réponse en fréquence de la perception humaine de la loudness :
- Un high-shelf à ~1681 Hz avec +4 dB de gain, modélisant la résonance de l’oreille externe.
- Un high-pass à ~38 Hz (le filtre « RLB », BS.1770 revised low-frequency B-weighting) qui atténue l’énergie de sub-basses ne contribuant pas à la loudness perçue.
Les coefficients biquad sont normalisés pour 48 kHz ; pour toute autre fréquence d’échantillonnage, nous calculons les coefficients équivalents via la transformée bilinéaire du prototype analogique, sans réutilisation naïve des coefficients. Le préfiltre d’AudioLab concorde avec l’implémentation de référence de l’EBU à 0,05 LU près sur le jeu de tests EBU R128.
De l’énergie filtrée au LUFS
Après le K-weighting, le signal est élevé au carré et moyenné sur une fenêtre glissante de 400 ms avec 75 % de recouvrement. Les canaux sont sommés avec des pondérations de canal : 1,0 pour L/R/C, 1,41 pour les surrounds. AudioLab mesure du matériel stéréo, la somme des canaux est donc simplement la moyenne quadratique L² + R².
La loudness instantanée en LUFS vaut alors :
L = -0.691 + 10·log₁₀( Σ Gᵢ · meanSquareᵢ )
where Gᵢ is the channel weight and meanSquareᵢ is the time-averaged
squared sample value after K-weighting on channel i. Trois échelles de temps, trois chiffres
- Momentary (M) : 400 ms sans gating. Le chiffre nerveux, qui sert à capter les crêtes transitoires.
- Short-term (S) : 3 s sans gating. La base du calcul du LRA selon EBU 3342.
- Integrated (I) : Le programme entier, avec un gating à deux étages : une porte absolue à –70 LUFS, puis une porte relative à –10 LU sous la moyenne sans gating. Le gating supprime les silences et les passages très calmes pour que le chiffre reflète « ce que vous avez réellement entendu », et non la moyenne arithmétique silence compris.
LRA : loudness range
EBU Tech 3342. Nous trions les valeurs LUFS short-term, prenons les 10e et 95e percentiles après application d’une porte relative (–20 LU sous la moyenne short-term sans gating) et rapportons leur différence en LU. Le résultat exprime à quel point la loudness « respire » sur l’ensemble du programme.
Référence
ITU-R BS.1770-4 (10/2015), Algorithms to measure audio programme loudness and true-peak audio level ; EBU Tech 3341 (mesure de loudness), 3342 (LRA), 3343 (vérification de conformité).
Crêtes inter-échantillons via suréchantillonnage 4×
La valeur d’échantillon maximale d’un enregistrement numérique n’est pas la même que la valeur maximale de la forme d’onde continue sous-jacente. Entre deux échantillons situés tous deux confortablement sous 0 dBFS, le signal analogique reconstruit peut brièvement dépasser 0 dB, ce qu’on appelle une crête inter-échantillon. Les limiteurs qui ne regardent que les valeurs d’échantillon les manquent. Les décodeurs de référence des plateformes de streaming, non.
BS.1770-4 Annex 2 spécifie un suréchantillonnage 4× via un interpolateur FIR, suivi d’une détection de crête sur le signal suréchantillonné. AudioLab utilise un interpolateur cubique à 4 points qui insère trois échantillons intermédiaires entre chaque paire d’originaux. La valeur absolue maximale sur le buffer suréchantillonné est rapportée comme le true peak.
L’interpolation cubique suffit pour le facteur 4× que prescrit BS.1770 (la référence de la norme utilise un FIR à 12 taps ; nous restons dans les 0,1 dBTP sur les signaux de test standard). Pour une analyse de qualité mastering, un noyau d’ordre supérieur est préférable ; le relevé d’AudioLab est destiné au travail de loudness diagnostique, non à remplacer un instrument de laboratoire calibré.
Corrélation de Pearson, énergie mid/side, Lissajous
La corrélation stéréo dans MixLab est le coefficient de corrélation de Pearson entre les canaux gauche et droit, calculé échantillon par échantillon sur l’ensemble du programme (hors ligne) ou sur une fenêtre glissante de 1024 échantillons (pendant la lecture). Les valeurs vont de +1 (parfaitement mono) à 0 (décorrélé) puis –1 (parfaitement inversé, incompatible avec un repli mono).
Le phase scope est une figure de Lissajous : un tracé 2D avec L sur un axe et R sur l’autre, dessiné à partir d’une fenêtre glissante d’échantillons récents. Une ligne verticale signifie un contenu mono ; un cercle signifie une stéréo décorrélée ; une ligne horizontale signifie un matériel à polarité inversée qui s’annulera jusqu’au silence en lecture mono. L’affichage n’approxime pas : il dessine les paires d’échantillons réelles.
Les énergies mid et side se déduisent de la somme et de la différence usuelles : M = (L + R) / 2, S = (L – R) / 2. Nous rapportons le dBFS-RMS de chacune sur des fenêtres de 100 ms ; le rapport M/S en dB est un résumé pratique en un seul chiffre de l’équilibre centre-vs-côtés.
FFT, fenêtre de Hann et la carte tonale à sept bandes
La vue spectrale en temps réel utilise l'AnalyserNode intégré au navigateur,
qui implémente en interne une FFT avec une fenêtre de Blackman. Pour l’analyse hors ligne, nous utilisons une fenêtre de Hann
et une FFT à 4096 points, avec 50 % de recouvrement. Ce choix de fenêtre dégrade légèrement la plage dynamique par rapport à
Blackman, mais préserve une meilleure résolution du lobe principal, utile pour la lisibilité visuelle de l’affichage de l’analyseur.
Le meter à sept bandes regroupe les bins de la FFT en bandes réparties de façon perceptuelle. Les choix correspondent aux conventions courantes des outils de mastering :
Sub 20 Hz – 60 Hz
Bass 60 Hz – 250 Hz
Low-mid 250 Hz – 500 Hz
Mid 500 Hz – 2 kHz
High-mid 2 kHz – 4 kHz
Presence 4 kHz – 8 kHz
Air 8 kHz – 20 kHz Chaque bande rapporte l’énergie RMS en dBFS, sommée sur tous les bins compris dans les limites de fréquence de la bande. L’espacement des bins à 48 kHz / 4096 FFT est de 11,7 Hz, suffisant pour tout ce qui est au-dessus du sub-bass ; la bande la plus basse s’appuie sur la pondération bilinéaire de l’AnalyserNode pour la précision sous-bin.
Intelligibilité de la parole, sibilance, bruit de fond
VoiceLab QA rapporte un score composite sur quatre dimensions. Le score est assumé, conçu pour les producteurs de podcasts et de voix off, et n’est explicitement pas une mesure clinique.
- Présence de parole (VAD) : un classifieur au niveau de la trame fondé sur l’énergie + la planéité spectrale avec un hop de 20 ms. Une trame est « parole » si son énergie est au moins 12 dB au-dessus du bruit de fond estimé et si sa planéité spectrale est inférieure à 0,25. Une hystérésis (attaque sur 3 trames / relâchement sur 10 trames) empêche le scintillement lors des pauses après les consonnes occlusives.
- Équilibre de sibilance : le rapport entre l’énergie de la bande 5–9 kHz et l’énergie totale de la bande de parole (200 Hz – 8 kHz). Rapporté en dB par rapport à un profil de voix broadcast typique (–8 dB). Les valeurs positives indiquent une sibilance dure ; les valeurs négatives indiquent un matériel terne ou étouffé.
- Bruit de fond : le dBFS-RMS estimé dans les silences entre phonations, calculé par suivi en statistiques de minimum (Martin 2001) sur une fenêtre de 1,5 s. La valeur correspond à ce qui serait audible pendant un passage calme à des niveaux d’écoute habituels.
- Détection des plosives : de brèves bouffées d’énergie basse fréquence dans la zone 20–80 Hz pendant les segments de parole. Détectées via le rapport d’énergie aux 100 ms environnantes de la bande de parole ; signalées si l’élévation dépasse 6 dB.
Le score composite est la somme à pondération égale des quatre dimensions ci-dessus, chacune contribuant jusqu’à 25 points, plafonnée à un total de 0–100. C’est un signal de triage, pas un verdict éditorial.
Détection de régions et classification du contenu
SignalLab indexe n’importe quel fichier audio en régions étiquetées : musique, parole, silence, mixte, à dominante de bruit. Le classifieur est un pipeline à deux étages.
- Caractéristiques de trame : pour chaque trame de 50 ms, nous calculons le centroïde spectral, la planéité spectrale, le taux de passages par zéro, le RMS et un résumé Mel sur 6 bandes. Les caractéristiques sont normalisées par rapport au contexte glissant de 10 s : le classifieur est relatif, non absolu.
- Fusion des régions : les étiquettes de trame sont lissées par un filtre majoritaire de 1 s, puis fusionnées en régions contiguës. Les régions de moins de 750 ms sont absorbées par leurs voisines.
Les étiquettes sont heuristiques ; le schéma de tags est publié à /docs/signallab/tag-schema. Elles sont utiles pour la navigation et le filtrage en masse. Pour une indexation de production à grande échelle, il faudrait un modèle appris avec un jeu d’entraînement étiqueté, et non l’heuristique exécutée dans le navigateur.
Ce que nous citons
ITU-R BS.1770-4
Algorithmes de mesure de loudness et de true-peak (10/2015)
EBU R128
Normalisation de loudness et niveau maximal autorisé (2014)
EBU Tech 3341
Exigences pour la mesure de loudness
EBU Tech 3342
Définition de la loudness range (LRA)
EBU Tech 3343
Guide pratique de conformité pour la mesure de loudness
AES17-2020
Mesure des équipements audio numériques
IEC 61672-1
Sonomètres : spécifications (à titre de contexte)
W3C WebAudio
Spécifications AudioContext, AnalyserNode, AudioWorklet
Martin 2001
Estimation de la densité spectrale de puissance du bruit par statistiques de minimum
EBU 3253-s
Loudness dans les services de streaming (informatif)
Ce que ce n’est pas
Les chiffres sont exacts dans les tolérances documentées ci-dessus, mais il s’agit d’un analyseur basé sur le navigateur qui tourne sur le CPU de l’utilisateur. Ce n’est pas un substitut à :
- Un loudness-mètre matériel calibré pour les audits de conformité broadcast.
- Un analyseur audio de qualité laboratoire pour tester amplificateurs ou convertisseurs.
- Un instrument d’audiométrie clinique : HearLab est explicitement non médical.
- Un encodeur/décodeur de référence pour vérifier la conformité d’un codec.
Ce qu’il est, dans l’esprit du reste du site : une mesure fonctionnelle, rapide et défendable que vous pouvez exécuter sur n’importe quel fichier audio sans rien téléverser sur un serveur, avec les calculs entièrement documentés et le chemin de code pouvant être relié depuis chaque démo jusqu’ici.