Spraakherkenning zet een doorlopende geluidsgolf om in afzonderlijke woorden, en doet dat in een vaste reeks stappen. Het microfoonsignaal wordt gesampled tot getallen, de getallen worden een spectrogram, een neuraal netwerk koppelt het spectrogram aan waarschijnlijke tekst, en een opmaakstap maakt die tekst leesbaar. Elk modern systeem, of het nu het toetsenbord van uw telefoon is, een notulist voor vergaderingen of een dicteerapp, volgt een variant van deze pipeline.
Het korte antwoord op "hoe weet het wat ik zei" is: het weet het niet, het schat. Het model geeft de meest waarschijnlijke tekst voor het ontvangen geluid, op basis van wat het tijdens de training heeft gezien. Dat ene feit verklaart het meeste gedrag dat u in de praktijk opmerkt: waarom gangbare zinnen perfect overkomen, waarom de achternaam van een collega dat niet doet, en waarom een ruisende pauze kan veranderen in een zin die niemand heeft uitgesproken.
Dit artikel loopt de pipeline stap voor stap door, zonder wiskunde en zonder de interne werking van een bepaalde leverancier.
Geluid is een drukgolf. De microfoon zet die om in een elektrische spanning, en een analoog-digitaalomzetter meet die spanning vele duizenden keren per seconde. Elke meting is een sample.
Muziek wordt meestal opgenomen met 44.100 of 48.000 samples per seconde. Spraakherkenning heeft zelden zoveel nodig: de frequenties die spraak dragen, liggen grotendeels onder 8 kHz, dus de meeste herkenners werken met 16.000 samples per seconde (16 kHz). Het Whisper-paper vermeldt bijvoorbeeld dat alle audio eerst naar 16.000 Hz wordt geresampled, voordat er iets anders gebeurt. Telefoonaudio is vaak 8 kHz, en dat is een van de redenen waarom telefoonopnamen moeilijker te transcriberen zijn: een deel van het spraaksignaal is nooit vastgelegd.
In deze fase zijn er geen woorden, geen letters en geen stiltedetectie. Er is alleen een lange lijst getallen: één minuut audio op 16 kHz levert er 960.000 op.
De ruwe golfvorm vertelt hoe luid het signaal op elk moment is, maar de informatie die de ene spraakklank van de andere onderscheidt, zit in de frequenties. Een "s" is een uitbarsting van hoogfrequente ruis; een klinker als "a" heeft sterke, stabiele energiebanden lager in het spectrum.
Daarom knipt de herkenner de audio in korte, overlappende vensters, doorgaans ongeveer 25 milliseconden lang en telkens 10 milliseconden verschoven, en meet hij hoeveel energie elk venster bij elke frequentie heeft. Naast elkaar gezet vormen die metingen een spectrogram: tijd op de ene as, frequentie op de andere, luidheid als helderheid.
De meeste systemen gebruiken een log-Mel-spectrogram. "Mel" betekent dat de frequentiebanden verdeeld zijn zoals het menselijk gehoor toonhoogte waarneemt: dicht op elkaar bij lage frequenties, ver uit elkaar bij hoge. "Log" comprimeert de luidheid zoals het oor dat doet. De oorspronkelijke Whisper-modellen gebruiken 80 Mel-kanalen op vensters van 25 ms met een stapgrootte van 10 ms; het model large-v3 is overgestapt op 128. Hoe dan ook wordt één seconde audio ongeveer 100 kolommen getallen, een veel compactere en informatievere invoer dan 16.000 ruwe samples.
Hier zijn de benaderingen de afgelopen vijftien jaar het sterkst veranderd.
Decennialang werden herkenners uit losse onderdelen opgebouwd. Een akoestisch model schatte welke spraakklanken (fonemen) in elk frame waarschijnlijk waren, een uitspraakwoordenboek gaf aan hoe elk woord uit fonemen is opgebouwd, en een taalmodel beoordeelde welke woordreeksen plausibel zijn. Verborgen Markov-modellen (HMM's) verbonden het geheel in de tijd. Rond 2012 vervingen diepe neurale netwerken de oudere Gaussische mengmodellen binnen deze pipeline en verlaagden ze de foutpercentages aanzienlijk; het omslagpunt wordt meestal gedateerd op het gezamenlijke paper van Hinton en collega's van vier onderzoeksgroepen.
Moderne systemen trainen meestal één neuraal netwerk dat rechtstreeks van spectrogram naar tekst gaat. Drie ontwerpen domineren:
| Benadering | Hoe geluid en tekst worden uitgelijnd | Typische sterkte |
|---|---|---|
| CTC (Graves et al., 2006) | Geeft voor elk frame een label of een "blank" en voegt herhalingen samen | Snel, eenvoudig, geschikt voor streaming |
| Transducer, RNN-T (Graves, 2012) | Beslist bij elke stap of er een token wordt uitgegeven of het volgende frame wordt gelezen | Streaming met lage latentie |
| Attention-encoder-decoder | Een encoder leest het hele segment, een decoder schrijft de tekst token voor token | Hoge nauwkeurigheid op volledige uitingen |
Whisper is een voorbeeld van het derde type: een encoder-decoder-Transformer die fragmenten van 30 seconden leest en tekst schrijft. Streamingtranscriptie, waarbij woorden verschijnen terwijl u nog praat, geeft de voorkeur aan de eerste twee, omdat die al uitvoer kunnen geven voordat de zin af is.
De uitvoer bestaat meestal niet uit hele woorden maar uit subword-tokens: stukjes als "trans", "crip", "tie". Zo kan een model woorden spellen die het nooit als geheel heeft gezien, en daarom kan een nieuwe productnaam eruit komen als een plausibele maar verkeerde combinatie van fragmenten.
Een end-to-end-model heeft geen apart woordenboek, maar heeft wel een sterk gevoel voor welke woordreeksen waarschijnlijk zijn, geleerd uit de tekst die bij de trainingsaudio hoort. Schaal telt hier: de oorspronkelijke Whisper-modellen zijn getraind op 680.000 uur gelabelde audio, waarvan 117.000 uur in 96 andere talen dan Engels; large-v3 gebruikte 1 miljoen uur zwak gelabelde audio plus 4 miljoen uur pseudo-gelabelde audio. Talen en accenten die zeldzaam zijn in de trainingsdata, worden minder nauwkeurig herkend, om dezelfde reden als zeldzame namen.
Het netwerk geeft niet één antwoord. Bij elke stap geeft het een waarschijnlijkheid voor elk mogelijk token. Decoderen is het zoeken naar de beste reeks als geheel: greedy decoding neemt telkens het meest waarschijnlijke token, terwijl beam search meerdere kandidaatzinnen tegelijk openhoudt en aan het eind de beste volledige zin kiest.
Hier werken ook woordenschathints. Veel engines accepteren een lijst verwachte termen of een korte tekstprompt; de promptinggids van OpenAI voor Whisper toont bijvoorbeeld een prompt met product- en bedrijfsnamen om de spelling te sturen. Een hint verschuift de waarschijnlijkheden naar die woorden, maar kan geen audio redden die het model echt niet kan horen.
Ruwe herkenningsuitvoer ziet er vaak zo uit: "dus de vergadering is om half vier op vijf maart". Daar "Dus de vergadering is om 15.30 uur op 5 maart." van maken is een aparte taak:
Sommige modellen, waaronder Whisper, leren direct tekst met leestekens te produceren, omdat hun trainingstranscripties leestekens bevatten. Andere laten na de herkenning een apart model draaien. Hoe dan ook zijn opmaakfouten een andere categorie dan herkenningsfouten: de woorden kunnen kloppen terwijl de tekst toch lastig leesbaar is.
Wie de pipeline kent, kan de typische fouten voorspellen:
Nauwkeurigheid wordt meestal uitgedrukt als word error rate (WER), het woordfoutpercentage: vervangingen, weglatingen en invoegingen gedeeld door het aantal werkelijk uitgesproken woorden. Het is nuttig om systemen op dezelfde audio te vergelijken, maar cijfers van verschillende leveranciers zijn niet direct vergelijkbaar: de testopnamen verschillen, en ook de normalisatieregels die bepalen of "15.30" en "half vier" als hetzelfde tellen.
Voor dagelijks gebruik volgen uit de pipeline een paar praktische conclusies:
In Speak-Y werkt dicteren in meer dan 67 talen met automatische interpunctie, en de vergadermodus neemt gesprekken lokaal op zonder dat er een bot meedoet, transcribeert per spreker en bewaart transcripties standaard op uw apparaat; de afwegingen van opnemen zonder bot staan in vergaderingen opnemen zonder bot. Zodra er transcripties zijn, is de volgende vraag wat u ermee doet: met een lokale MCP-server kunnen AI-assistenten zoals Claude of Cursor ze doorzoeken en lezen, wat van de grond af wordt uitgelegd in wat een MCP-server is.
Een microfoon zet luchtdruk om in een reeks getallen, voor spraakherkenning meestal 16.000 samples per seconde. De software zet korte, overlappende stukjes van dat signaal om in een spectrogram: een beeld van welke frequenties op elk moment luid zijn. Een neuraal netwerk leest het spectrogram en voorspelt de meest waarschijnlijke reeks woorden of woorddelen, en een laatste stap voegt leestekens, hoofdletters en de notatie van getallen toe.
Een spectrogram laat zien hoe de energie van een geluid in de tijd over de frequenties verdeeld is. Spraakherkenners gebruiken meestal een log-Mel-spectrogram, dat frequenties verdeelt zoals het menselijk gehoor dat doet. Whisper van OpenAI berekent bijvoorbeeld een log-Mel-spectrogram met 80 kanalen op vensters van 25 milliseconden met een stapgrootte van 10 milliseconden, wat het model 100 kenmerkframes per seconde audio geeft.
Het model kiest de meest waarschijnlijke tekst voor het geluid dat het hoort, en die waarschijnlijkheid komt uit de trainingsdata. Een zeldzame achternaam of een nieuwe productnaam kwam daarin weinig of nooit voor, dus wint een gangbaar woord dat erop lijkt. Woordenschathints helpen: veel engines accepteren een lijst verwachte termen of een korte tekstprompt die de uitvoer naar die spellingen stuurt.
Ja. Modellen die tekst token voor token genereren, kunnen tijdens stilte of ruis vloeiende zinnen produceren. Een FAccT-studie uit 2024, Careless Whisper, vond dat ongeveer 1% van de Whisper-transcripties in de steekproef volledig gehallucineerde zinsdelen of zinnen bevatte. Stilte wegknippen vóór de herkenning en belangrijke transcripties nalezen verkleint het risico.
De word error rate (WER), het woordfoutpercentage, is de standaardmaat voor nauwkeurigheid: vervangingen plus weglatingen plus invoegingen, gedeeld door het aantal woorden in de referentietranscriptie. Lager is beter, en de waarde kan boven 100% uitkomen als een systeem veel extra woorden invoegt. WER-cijfers zijn alleen vergelijkbaar als ze op dezelfde testaudio en dezelfde regels voor tekstnormalisatie zijn gebaseerd.