Whisper: een verrassend goed AI-model om spraak naar tekst om te zetten
Een AI-technologie waar ik de afgelopen tijd mee speel is Whisper. Dat is een systeem om spraak om te zetten naar tekst, net zoals ChatGPT gebouwd door OpenAI. Het model is getrained op 680.000 uur aan audio, waarvan een derde geen Engels is. Zowel de code als het model zijn open source. Je kunt, net zoals bij ChatGPT, gebruik maken van de API van OpenAI en je audio laten transcriberen (dat kost je zo’n 40 dollarcent per uur).
Ik doe een onderzoek samen met Sahra Mohamed van de Utrecht Data School naar podcasts, en daar willen we graag grote hoeveelheden audio met spraak gaan omzetten naar tekst. Een collega had haar gewezen op Whisper.cpp, een port van de code van Whisper naar C++. De port heeft als voordeel dat het een stuk makkelijker is om het draaiend te krijgen op verschillende machines. Zoals een minicomputer als de Raspberry Pi of een oude smartphone. En natuurlijk zit er ook een financieel en privacy-voordeel aan: je bent niet afhankelijk van een online partij waarvoor je moet betalen en waar mogelijk je data wordt gelekt.
Installeren van die software werkte vrij makkelijk op mijn Macbook. Vervolgens lieten we de software de recentste aflevering van NRC Vandaag transcriberen (dus het omzetten van audio naar tekst). We zagen iets geks in de output: het leek te werken maar alles was geschreven in het Engels. Had NRC Vandaag toevallig een Engelse aflevering vandaag? Nee, blijkbaar vertaalt Whisper als je de instellingen verkeerd hebt staan ook automatisch alles naar het Engels. Bizar. Vooral omdat de teksten in het Engels ook nog eens goed vertaald waren.
Ook fascinerend was dat Whisper niet alleen spraak omzet in tekst, maar ook geluiden. Dit zijn bijvoorbeeld de eerste paar seconden van dit bekende filmpje van Frans Bromet over de introductie van de mobiele telefoon in Nederland:
Jezuite
Whisper werkt verbazingwekkend goed, maar het is zeker niet foutloos. Een bekend probleem is dat het model kan gaan ‘hallucineren’: dingen bedenken die er niet zijn. En ik heb ook al een aantal keer gezien dat het model blijft hangen en eindeloos dezelfde zin herhaalt:
OpenAI biedt zelf dus geen tool aan om audio om te zetten naar tekst (behalve de API). Er zijn wel organisaties die op de code doorbouwen en er zelf een dienst omheen bouwen, zoals My Good Tape, een Deens initiatief van een lokale digitale krant, waar je met het gratis abonnement 90 minuten per maand kan transcriberen. Podcastnetwerk-lid Michiel testte het uit en meldde me dat er nog wat features misten zoals het kunnen herkennen van verschillende sprekers. Ook is er nog een beperkt aantal exportformats. Dingen die met een concurrent als Amberscript wel kunnen. Maar daar staat tegenover dat de transcriptie dus veel beter is dan die van de concurrent.
Ik ben ook zelf aan de slag gegaan met wat tooling te bouwen om Whisper. Mocht u een beetje handig zijn op de command line dan kunt u wellicht met audio2text uit de voeten om uw eigen audio (of video) te transcriberen. Als bonus kunt u ook nog makkelijk de transcripties die in het SRT-formaat worden opgeslagen omzetten naar CSV, JSON en andere dataformaten.
Dit artikel verscheen eerder in editie #179 van De Circulaire.
Erwin Blom
Ik ben tot nu toe altijd teleurgesteld in alle diensten. Zeker als het in het Nederlands is en in bijvoorbeeld een chaotisch gesprek zoals in Top Names uitzendingen. Ook met My Good Tape. Maar dan blijf ik hopen en op Whisper!
Ali
Wij hebben twee jaar geleden een flink aantal uitgeprobeerd en toen kwam Trint als beste uit het onderzoek.
Gert-Jan
Interessant artikel. Als journalist/redacteur heb ik de afgelopen maanden talloze transcriptie-tools uitgeprobeerd (o.a. voor het uitwerken van grote interviews); op afstand de beste die ik ken, is My Good Tape, hierboven genoemd (wel cruciaal dat je de juiste brontaal selecteert!). In het Nederlands heel goed, in het Engels zelfs nóg beter.
Robbie
Hoi, voor mij werkt het wel maar ik weet niet wat ik erachter moet zetten om hem in het Nederlands te laten transcriberen. Ideeën?
hay
Hoi Robbie. Heb je al de
-l
(language) switch geprobeerd?