Juvoly Spraak API
Sinds de start van Juvoly werken we intensief aan de ontwikkeling van onze eigen spraakmodellen. We zijn dan ook verheugd om ons nieuwste model te presenteren: Kolibri. Dit model is niet alleen sneller en duurzamer, maar ook aanzienlijk nauwkeuriger.
​
​
Sinds de verschijning van Careless Whisper (https://arxiv.org/abs/2402.08021) zijn er talloze artikelen verschenen op mediakanalen, maar ook op LinkedIn (zie dit bericht). In dit artikel wil ik graag delen wat Whisper is, waarom we problemen ondervinden met Whisper en hoe we hier bij Juvoly mee omgaan.
Wat is Whisper?
Whisper is een end-to-end spraakherkenningsmodel. De bron van Whisper wordt niet benoemd in de paper zelf, maar het is zeer waarschijnlijk dat het model getraind is op YouTube-data. Veel video's zijn daar ondertiteld door de makers zelf—zeer bruikbare trainingsdata dus! Echter, TV Gelderland is een van de grootste aanbieders van video's met ondertiteling op YouTube. Het komt daarom regelmatig voor dat Whisper aan het einde van een zin, zodra er stilte valt, de tekst "Ondertiteld door TV GELDERLAND 2021" produceert.
Whisper is beschikbaar in verschillende varianten, maar de meest gebruikte is de large versie met 1550 miljoen parameters—de helft voor de encoder en de andere helft voor de decoder. Er zijn drie versies van Whisper Large:
Whisper Large V1
-
Getraind op basis van de originele Whisper-dataset
-
Percentage foute woorden op Common Voice: 7,1%
-
Hallucineert het minst op audiodata
Whisper Large V2
-
Getraind op de Whisper-dataset met data-augmentatie
-
Percentage foute woorden op Common Voice: 5,8%
-
Hallucineert middelmatig vaak
Whisper Large V3
-
Getraind op YouTube-video's die door Whisper zelf zijn ondertiteld
-
Percentage foute woorden op Common Voice: 4,3%
-
Hallucineert aanzienlijk vaak
In de ongeveer 680.000 uur aan data die Whisper gebruikt voor training, is ongeveer 3.000 uur Nederlands. Whisper is tot op heden het meest accurate spraakherkenningsmodel voor de 100+ talen die het ondersteunt. Voor sommige Europese talen zijn er betere open-source alternatieven; Nederlands is hier (voorlopig) niet een van.
Whisper is getraind op segmenten van 30 seconden audio. Het model is dus niet bedoeld voor real-time inzet, wat een grote beperking is.
Waarom hallucineert Whisper?
De manier waarop Whisper is getraind is uniek, althans voor de schaal waarop het is gedaan. Whisper is namelijk getraind met weakly supervised data. De makers hebben data verzameld van verschillende online bronnen zonder te controleren of de audio en de ondertiteling daadwerkelijk overeenkomen met wat er is uitgesproken. Zoals eerder aangegeven, is het niet ongewoon dat Whisper "TV GELDERLAND 2021" als output genereert.
Een groot probleem van deze methode is dat ondertiteling vaak niet één-op-één overeenkomt met de uitgesproken woorden, vooral bij mensen die de taal nog niet volledig beheersen. Neem bijvoorbeeld de volgende zin, uitgesproken door iemand die Nederlands aan het leren is:
"Ik ben geprikt door de bij"
Deze zal zeer waarschijnlijk worden ondertiteld als:
"Ik ben door een bij geprikt"
Whisper heeft dus moeite om akoestiek (het geluid) te scheiden van de tekst (de ondertiteling). In de 680.000 uur aan data van Whisper is het aannemelijk dat dit soort discrepanties voorkomen.
Omdat Whisper een end-to-end model is, hebben we geen controle over de akoestiek en de tekst. Als we Whisper simpelweg ruis als input geven, kan de decoder (het taalmodel van Whisper) verrassend goed dingen verzinnen.
Wat doen we bij Juvoly?
Bij Juvoly kwamen we al vroeg achter het probleem van Whisper. Toen we in 2023 Whisper aan het uitproberen waren om consulten tussen arts en patiënt samen te vatten in een huisartspraktijk in Rotterdam-Zuid, kwamen hallucinaties geregeld voor in de geproduceerde transcripties—aanzienlijk vaker dan in testgesprekken tussen twee personen op kantoor. Ook werden medicijnnamen vaak verkeerd herkend. Voorbeelden zijn "1 april" (bedoeld werd enalapril) en "C3zine" (bedoeld werd cetirizine).
Niet alleen was Whisper ongeschikt voor de consulten, maar het verbruikte ook aanzienlijk veel stroom vanwege de grootte van het model. Bovendien is Whisper niet geschikt voor real-time transcriptie, iets wat onze gebruikers nodig hebben om relevante bronnen op te zoeken voor de arts of patiënt, of om in de toekomst vertalingen aan te bieden.
Al snel begonnen we met het bouwen van onze eigen spraakherkenningsmodellen. In samenwerking met taalscholen hebben we data verzameld om inzicht te krijgen in hoe mensen de Nederlandse taal spreken wanneer het niet hun moedertaal is. Op deze manier hebben we uiteindelijk ons Kolibri-model ontwikkeld:
Kolibri (Nederlands model)
-
Gebaseerd op de Juvoly-dataset
-
Percentage foute woorden op Common Voice: 3,7%
-
Hallucinaties geminimaliseerd
Ons model heeft een maximale latency van 1 seconde en heeft ook maar maximaal 1 seconde nodig voor verwerking. Daarnaast zijn onze modellen aanzienlijk kleiner; per jaar audio stoten we evenveel COâ‚‚ uit als twee kilometer rijden met de auto.
Binnenkort andere talen
We willen niet alleen Nederlands aanbieden; zo willen we alle Europese stemmen gehoord laten worden in de consult kamers van Europa. Zo zijn we nu hard bezig om nieuwe talen te introduceren. Een daarvan is bijvoorbeeld de Friese taal!
Geïnteresseerd? Meer weten?
Onze modellen zijn beschikbaar via een API en zijn goed gedocumenteerd: https://documentation.juvoly.nl/. Voor het gebruik is een API-key nodig. Stuur daarvoor een mailtje naar thomas@juvoly.nl.
​​
Waarom een eigen spraakmodel?
Sinds de introductie van Whisper (gemaakt door OpenAI) en de daaropvolgende modellen Whisper V2 en Whisper V3 hebben we een ongekende nauwkeurigheid gezien in Nederlandstalige audiotranscriptie. Whisper presteert niet alleen uitmuntend op evaluatiedatasets bedoeld om een spraakherkenningssysteem te testen op nauwkeurigheid (Common Voice, Fleurs en Vox Populi), maar is ook ongekend goed in Long-Form transcriptie (audiosegmenten langer dan 1 minuut). Een groot probleem van evaluatiedatasets is echter dat de audiolengte varieert tussen de 4 tot 7 seconden. Dit is veel korter dan de gesprekken die huisartsen tijdens hun consult voeren, waardoor evaluatiedatasets minder geschikt zijn om audiomodelen te testen die bedoeld zijn voor lange gesprekken.
20%
Nauwkeuriger
40x
keer sneller
10x
keer duurzamer
Kolibri vs. OpenAI's Whisper
Per seconde audio heeft ons model nog maar 1 tot 10 milliseconden nodig om audio te transcriberen. We kunnen het rapport dus bijna instantaan opbouwen terwijl het gesprek tussen patiënt en dokter gaande is. Ook kunnen we nu met 1 GPU ongeveer 100 huisartsen van real-time gesprekken voorzien. In plaats van 11 kWh hebben we nu nog maar 350 Wh nodig.