Naar inhoud
Inloggen

/methodology

Hoe AudioLab dingen meet.

Elk getal dat in de labs verschijnt, heeft een gedefinieerde herkomst. Deze pagina documenteert de algoritmes, haalt de standaarden aan en linkt naar de bron. Als een demo een waarde claimt, zou je die vanaf de grond af aan moeten kunnen reproduceren met wat er op deze pagina staat.

01 · Loudness-meting

Integrated, short-term en momentary LUFS

De loudness-uitlezingen van MixLab implementeren ITU-R BS.1770-4 letterlijk, de aanbeveling die het algoritme achter LUFS definieert, de maatstaf die elk groot streamingplatform gebruikt voor afspeelnormalisatie. De standaard schrijft een tweetraps-filter, een energie-sommatiestap en een gate met relatieve drempel voor.

De K-weging-filterketen

Het signaal wordt voorgefilterd met twee biquad-trappen die samen de frequentierespons van de menselijke loudness-waarneming modelleren:

  • Een high-shelf op ~1681 Hz met +4 dB versterking, die de resonantie van het buitenoor modelleert.
  • Een high-pass op ~38 Hz (het "RLB"-filter, BS.1770 revised low-frequency B-weighting) die sub-bas-energie verzwakt die niet bijdraagt aan de waargenomen loudness.

De biquad-coëfficiënten zijn genormaliseerd voor 48 kHz; voor elke andere samplefrequentie berekenen we de equivalente coëfficiënten via de bilineaire transformatie van het analoge prototype, geen naïef hergebruik van coëfficiënten. Het voorfilter van AudioLab komt overeen met de referentie-implementatie van de EBU tot op 0,05 LU op de EBU R128-testset.

Van gefilterde energie naar LUFS

Na K-weging wordt het signaal gekwadrateerd en gemiddeld over een schuivend venster van 400 ms met 75% overlap. Kanalen worden gesommeerd met kanaalgewichten: 1,0 voor L/R/C, 1,41 voor surrounds. AudioLab meet stereomateriaal, dus de kanaalsom is simpelweg het L² + R² mean-square.

De momentane loudness in LUFS is dan:

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.

Drie tijdschalen, drie getallen

  • Momentary (M): 400 ms ongegate. Het snelle getal, gebruikt om transiënte pieken te vangen.
  • Short-term (S): 3 s ongegate. De basis voor de LRA-berekening volgens EBU 3342.
  • Integrated (I): Het volledige programma, met tweetraps-gating: een absolute gate op –70 LUFS, dan een relatieve gate op –10 LU onder het ongegate gemiddelde. Gating verwijdert stilte en zeer rustige passages, zodat het getal weergeeft "wat je werkelijk hebt gehoord" en niet het rekenkundige gemiddelde inclusief stilte.

LRA (loudness range)

EBU Tech 3342. We sorteren de short-term-LUFS-waarden, nemen het 10e en 95e percentiel na het toepassen van een relatieve gate (–20 LU onder het ongegate short-term-gemiddelde) en rapporteren hun verschil in LU. Het resultaat drukt uit hoeveel de loudness "ademt" over het programma heen.

Referentie

ITU-R BS.1770-4 (10/2015), Algorithms to measure audio programme loudness and true-peak audio level; EBU Tech 3341 (loudness-metering), 3342 (LRA), 3343 (compliancecontrole).

02 · True peak

Inter-sample-pieken via 4× oversampling

De maximale samplewaarde in een digitale opname is niet hetzelfde als de maximale waarde van de onderliggende continue golfvorm. Tussen twee samples die beide comfortabel onder 0 dBFS liggen, kan het gereconstrueerde analoge signaal kortstondig 0 dB overschrijden, een zogeheten inter-sample-piek. Limiters die alleen naar samplewaarden kijken, missen die. De referentiedecoders van streamingplatforms niet.

BS.1770-4 Annex 2 schrijft 4× oversampling voor via een FIR-interpolator, gevolgd door piekdetectie op het opgesamplede signaal. AudioLab gebruikt een 4-punts kubische interpolator die tussen elk paar originelen drie tussenliggende samples invoegt. De maximale absolute waarde over de opgesamplede buffer wordt gerapporteerd als de true peak.

Kubische interpolatie volstaat voor de 4×-factor die BS.1770 voorschrijft (de referentie van de standaard gebruikt een 12-taps FIR; wij blijven binnen 0,1 dBTP op standaard-testsignalen). Voor mastering-grade analyse verdient een kernel van hogere orde de voorkeur; de uitlezing van AudioLab is bedoeld voor diagnostisch loudness-werk, niet als vervanging voor een gekalibreerd labinstrument.

03 · Stereobreedte + fase

Pearson-correlatie, mid/side-energie, Lissajous

Stereocorrelatie in MixLab is de Pearson-correlatiecoëfficiënt tussen het linker- en rechterkanaal, sample voor sample berekend over het hele programma (offline) of over een schuivend venster van 1024 samples (tijdens het afspelen). De waarden lopen van +1 (perfect mono) via 0 (gedecorreleerd) tot –1 (perfect geïnverteerd, niet mono-compatibel: valt weg bij mono-sommatie).

De fasescope is een Lissajous-figuur: een 2D-plot met L op de ene as en R op de andere, getekend uit een schuivend venster van recente samples. Een verticale lijn betekent mono-content; een cirkel betekent ongecorreleerde stereo; een horizontale lijn betekent polariteit-geïnverteerd materiaal dat bij mono-weergave tot stilte ineenklapt. Het display benadert niet, het tekent daadwerkelijke samplepaaren.

Mid- en side-energie worden afgeleid uit de standaard som en verschil: M = (L + R) / 2, S = (L – R) / 2. We rapporteren de dBFS-RMS van elk over vensters van 100 ms; de verhouding M/S in dB is een nuttige samenvatting in één getal van de balans tussen midden en zijkanten.

04 · Spectrum- en bandmeters

FFT, Hann-venster en de zevenbands tonale kaart

De realtime spectrumweergave gebruikt de ingebouwde AnalyserNode van de browser, die intern een FFT met een Blackman-venster implementeert. Voor de offline-analyse gebruiken we een Hann-venster en een 4096-punts FFT met 50% overlap. De vensterkeuze verslechtert het dynamisch bereik iets ten opzichte van Blackman, maar behoudt een betere main-lobe-resolutie, handig voor de visuele leesbaarheid in de analyser-weergave.

De zevenbandsmeter aggregeert FFT-bins tot perceptueel verdeelde banden. De keuzes volgen gangbare conventies van mastering-tools:

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

Elke band rapporteert RMS-energie in dBFS, gesommeerd over alle bins binnen de frequentiegrenzen van de band. De binafstand bij 48 kHz / 4096 FFT is 11,7 Hz, prima voor alles boven de sub-bas; de laagste band steunt op de bilineaire weging van de AnalyserNode voor sub-bin-precisie.

05 · Voice-quality-scoring

Spraakverstaanbaarheid, sisklanken, ruisvloer

VoiceLab QA rapporteert een samengestelde score over vier dimensies. De score is eigenzinnig, ontworpen voor podcast- en voice-overproducenten, en uitdrukkelijk geen klinische maatstaf.

  • Spraakaanwezigheid (VAD): een classifier op frameniveau op basis van energie + spectrale vlakheid met een hop van 20 ms. Een frame is "spraak" als de energie minstens 12 dB boven de geschatte ruisvloer ligt en de spectrale vlakheid onder 0,25 ligt. Hysterese (3 frames attack / 10 frames release) voorkomt geflikker bij pauzes na plofklanken.
  • Sisklankbalans: de verhouding tussen de bandenergie van 5–9 kHz en de totale spraakband-energie (200 Hz – 8 kHz). Gerapporteerd in dB ten opzichte van een typisch broadcast-stemprofiel (–8 dB). Positieve waarden duiden op scherpe sisklanken; negatieve waarden duiden op dof of gedempt materiaal.
  • Ruisvloer: de geschatte dBFS-RMS tijdens stiltes binnen spraak, berekend via minimum-statistics-tracking (Martin 2001) over een venster van 1,5 s. De waarde is wat hoorbaar zou zijn tijdens een rustige passage bij gangbare luisterniveaus.
  • Plofklankdetectie: kortdurende laagfrequente energie-uitbarstingen in het gebied van 20–80 Hz tijdens spraaksegmenten. Gedetecteerd via een energieverhouding ten opzichte van de omringende 100 ms van de spraakband; gemarkeerd als de verhoging meer dan 6 dB bedraagt.

De samengestelde score is de gelijk gewogen som van de vier bovenstaande dimensies, elke draagt tot 25 punten bij, begrensd op een totaal van 0–100. Het is een triagesignaal, geen redactioneel oordeel.

06 · Signaalindexering

Regiodetectie en contentclassificatie

SignalLab indexeert een willekeurig audiobestand in gelabelde regio’s: muziek, spraak, stilte, gemengd, ruis-dominant. De classifier is een tweetraps-pijplijn.

  1. Framekenmerken: voor elk frame van 50 ms berekenen we de spectrale centroïde, spectrale vlakheid, zero-crossing-rate, RMS en een Mel-samenvatting over 6 banden. Kenmerken worden genormaliseerd ten opzichte van de lopende context van 10 s. De classifier is relatief, niet absoluut.
  2. Regiosamenvoeging: framelabels worden afgevlakt met een majority-filter van 1 s en vervolgens samengevoegd tot aaneengesloten regio’s. Regio’s korter dan 750 ms worden door hun buren opgenomen.

De labels zijn heuristisch; het tagschema is gepubliceerd op /docs/signallab/tag-schema. Ze zijn nuttig voor navigatie en bulkfiltering. Voor productie-indexering op schaal wil je een getraind model met een gelabelde trainingsset, niet de in-browser-heuristiek.

07 · Aangehaalde standaarden

Wat we aanhalen

ITU-R BS.1770-4

Algoritmes voor loudness- en true-peak-meting (10/2015)

EBU R128

Loudness-normalisatie en toegestaan maximumniveau (2014)

EBU Tech 3341

Eisen aan loudness-metering

EBU Tech 3342

Definitie van loudness range (LRA)

EBU Tech 3343

Praktische gids voor compliance bij loudness-meting

AES17-2020

Meting van digitale audioapparatuur

IEC 61672-1

Geluidsniveaumeters: specificaties (ter context)

W3C WebAudio

Specificaties voor AudioContext, AnalyserNode, AudioWorklet

Martin 2001

Schatting van ruisvermogensdichtheid via minimum-statistics

EBU 3253-s

Loudness in streamingdiensten (informatief)

08 · Bekende beperkingen

Wat dit niet is

De getallen zijn nauwkeurig binnen de hierboven gedocumenteerde toleranties, maar dit is een browsergebaseerde analyser die draait op de CPU van de gebruiker. Het is geen vervanging voor:

  • Een gekalibreerde hardware-loudnessmeter voor broadcast-compliance-audits.
  • Een lab-grade audioanalyser voor het testen van versterkers of converters.
  • Een klinisch audiometrie-instrument. HearLab is uitdrukkelijk niet-medisch.
  • Een referentie-encoder/-decoder voor het verifiëren van codec-compliance.

Wat het wel is, in de geest van de rest van de site: een werkende, snelle, verdedigbare meting die je op elk audiobestand kunt uitvoeren zonder iets naar een server te uploaden, met de wiskunde volledig gedocumenteerd en het codepad vanaf elke demo terug te linken naar hier.