Hier staat een (niet volledige) lijst met termen die gebruikt worden en wat de betekenis daarvan is.
POS-tagging
Part of Speech tagging.
Syntactische-tagging
Diarizatie & Sprekerherkenning
Diarizatie kan het best vertaald worden in spreker-onderscheiding. Vaak wordt sprekerherkenning gebruikt maar dat is feitelijk onjuist. Bij Diarizatie wordt geen spreker herkend, maar wordt aangegeven welke spreker er op dat moment aan het woord is. Stel je hebt een opname met drie verschillende sprekers dan probeert de software zo goed mogelijk aan te geven welk van de drie sprekers (SPEAKER_0, SPEAKER_1 of SPEAKER_2) er op een bepaald moment spreekt.
Bij sprekerherkenning daarentegen moet je eerst de verschillende sprekers in de database hebben staan en vervolgens probeert de software om te bepalen wanneer welk van die bekende sprekers er op een bepaald moment spreekt. Dat is dus een stuk lastiger dan Diarzatie!
Orthografische transcriptie
Transcriptie waarbij het resultaat in "gewone" letters staat.
Fonetische transcriptie
Transcriptie waarbij het resultaat in "fonetisch schrift" staat. Meestal is dit IPA of XSAMPA
ASR
Automatic Speech Recognition of wel Automatische Spraakherkenning is het proces waarbij software de gesproken spraak zo goed mogelijk probeert om te zetten in een geschreven versie daarvan. Het is dus van handig dat je bij het omzetten weet in welke taal er wordt gesproken hoewel veel moderne spraakherkenners dit ook goed zelf kunnen bepalen.
Metadata
Data van of over een hoeveelheid data. Het zijn gegevens die de karakteristieken van "informatieobjecten" beschrijven. Voorbeelden van karakteristieken zijn bijvoorbeeld de naam, het moment van creatie, de gebruikte taal en het bestandsformaat. Metadata beschrijven niet alleen de informatieobjecten zelf, maar ook de context waarbinnen de informatieobjecten zijn ontstaan of ontvangen. En soms ook wat er vanaf het moment van ontstaan of ontvangst met die informatieobjecten is gebeurd.
Spraakherkenning - CGN
Werken met Spraak van het Corpus Gesproken Nederlands.
Hieronder staat een document met daarin uitleg over wat het CGN precies is, wat je er mee zou kunnen doen en een overzicht van de verschillende technieken die (mede door het CGN) ontwikkeld zijn. Omdat niet iedereen altijd op de hoogte is van wat alle termen nu precies betekeken, hebben we bovendien een tabel-overzicht gemaakt waarin de verschillende termen worden uitgelegd.
Achtergrond
Het Corpus Gesproken Nederlands (CGN, versie 2.0.3, 2014) is een verzameling van ong. 900 uur (met bijna 9 miljoen woorden) hedendaagse Nederlandse spraak, afkomstig van Vlamingen en Nederlanders. Het project starte eind jaren negentig en had als doel om een database te maken met daarin een representatieve weergave van het Nederlands zoals dat op dat moment in Nederland en Vlaanderen gesproken werd. Het ging er daarbij niet alleen om om welke woorden gesproken werden, maar ook om de manier waarop ze door de verschilllende sprekersgroepen uitgesproken werden. Als voorbeeld is er de ontwikkeling van het Poldernederlands. Is dat al ruim te horen in de geluidsopnamen of eigenlijk nog niet? En zo ja, door wie of welke groep spekers en/of spreeksters wordt er dan zo gesproken? (zie Jan Stroop: Poldernederlands)
De spraakfragmenten in het CGN bestaan zowel uit spontane als voorbereide spraak. Na opnamen en verzamelen werd de spraak door studenten (Nederlanders en Vlamingen) opgelijnd met diverse transcripties (o.a. orthografisch, fonetisch) en annotaties (syntactisch, POS-tags). Uiteraard werd dit allemaal dubbel gecorrigeerd om er voor te zorgen dat er een redelijk betrouwbare en homogene set transcripties en annotatie verscheen.
En dan is er nog metadata aan toegevoegd. Metadata is data over of van de data. Denk daarbij aan lexica, frequentielijsten en corpusexploratiesoftware zoals Corex.
Tenslotte is er ook een webcursus CGN waarmee je je vertrouwd kunt maken met wat je allemaal met het CGN kunt doen.
Automatische Spraakherkenning
Het mooie van het beschikbare corpus is natuurlijk de aanwezigheid van heel veel, goed opgenomen spraak waarvan ook bekend is wat er precies gezegd werd. Dit biedt de mogelijkheid om ASR (Automatische Spraakherkenning) toepassingen te maken waarbij direct gekeken kan worden hoe goed de spraakherkenning precies is.
Inleiding
In dit document gaan we in op de mogelijkheden om de spraakdata in het CGN te gebruiken voor onderzoek en toepassingen op het gebied van Spraaktechnologie en dan vooral Spraakherkenning. Spraakherkenning is sinds de herfst 2022 heel erg goed en bovendien als open source voor iedereen beschikbaar waardoor het eigenlijk voor niemand meer een probleem is om er ook zelf mee te werken. En, het lijkt zo vanzelfsprekend, dat je snapt wat andere mensen zeggen. Maar... zoals met zoveel fenomenen is het eigenlijk heel complex.
We laten zien hoe de Automatische Spraakherkenning gedaan kan worden.
Welke spraakherkenners zijn er?
Er bestaan een heleboel spraakherkenners die je grofweg in twee groepen kunt verdelen. Het makkelijkst om mee te werken zijn bestaande softwarepakketten of programma’s. Die geven je een interface om mee te werken, net als andere programma’s, en je krijgt de resultaten meestal op een goede manier aangeboden. Makkelijk in het gebruik, maar je hebt vaak wat beperktere mogelijkheden. Je kunt ook een python-script installeren. Dat geeft je veel meer flexibiliteit, maar vereist wel wat meer programmeervaardigheid.
Hieronder staan drie voorbeelden van spraakherkenners: aTrain, MacWhisper, SubtitleEdit (alle drie programma’s) en natuurlijk Whisper (een python-script).
Spraakherkenning
Sinds de herfst 2022 heeft OpenAI een redelijk universele spraakherkenner als OpenSource beschikbaar gesteld: Whisper. Het is een ASR-herkenner waarmee ong 99 verschillende talen goed tot uitstekend herkend kunnen worden. Het Nederlands hoort meestal tot de "uitstekend" herkende talen! Het is bovendien mogelijk om de herkende spraak direct in het Engels te vertalen waardoor je bv een toespraak in het Chinees of Arabisch redelijk tot goed kunt volgen. Uiteraard kun je de spraakherkenningsresultaten ook in andere talen vertalen, maar daar moet je dan aparte software (DeepL, Google Translate) voor gebruiken.
Door het open karakter van Whisper, is er vrij snel na de lancering een grote hoeveelheid extra software beschikbaar gekomen die allerlei facetten van moderne ASR nog beter en/of sneller beschikbaar maken. Voorbeelden zijn add-ons als Diarizatie en Voice Activity Detection (VAD) die in WhisperX draaien. Ook wordt er gewerkt aan het sneller maken van de Whisper spraakherkenning (Faster-Whisper, Insanely-Fast-Whisper). En dat proces het gaat maar door waardoor er iedere maand wel een update beschikbaar komt waardoor het nog beter/sneller gaat werken.
Python
Whisper is een python-script waarmee je op je eigen computer makkelijk de herkenning kunt doen. Er zijn op Internet verschillende sites waarin wordt uitgelegd hoe je Whisper kunt installeren. Een goede site is bv. Notta.
Als het lukt om Whisper en andere toevoegingen als een Python script op je computer te installeren, dan heeft dat het voordeel dat je erg flexibel bent in het uitvoeren. Nadeel is dat je in principe maar één herkenning tegelijk kunt doen waardoor het een heleboel werk is als je veel en lange AV-files wilt herkennen. Hier is gelukkig een oplossing voor waarbij je een set files kunt opgeven (incl. de te herkennen taal en het te gebruiken herkenningsmodel) die vervolgens herkend gaan worden.
Software
Naast de herkenning via het Python-script zijn er natuurlijk ook mensen/groepen die zich richten op het maken van "dedicated software pakketten" om de spraak te herkennen. De resultaten kunnen grofweg verdeeld worden in software voor a) Windows machines en b) Apple-machines.
Alle drie de programma’s werken goed, makkelijk en de resultaten zijn uitstekend. Een voordeel van aTrain is dat het ook de nieuwe ontwikkelingen zoals bv. Diarizatie doet terwijl MacWhisper zich in eerste instantie richt op het goed en makkelijk herkennen van de spraak. Uiteraard zijn ook zij bezig om de andere ontwikkelingen er bij in te zetten, maar op dit moment kan dat nog niet.
SubtitleEdit is een iets ander programma. Ontstaan als een OpenSource tool om makkelijk ondertitels van video's te maken, heeft het zich ontwikkeld tot een uitgebreid pakket met de mogelijkheid om de transcripties in ongeveer alle bestaande ondertitelingsformaten om te zetten. Met de komst vangoede, opensource spraakherkenners (eerst KALDI en daarna Whisper) hebben ze nu het proces vergemakkelijkt door ondertitelaars de optie te geven om de video eerst door de spraakherkenner te halen om daarna de transcripties slechts te corrigeren. Dat scheelt een heleboel tijd!
Installatie
De eerste stap is om te beslissen wat je precies wilt doen. Voor de beste flexibiliteit is het het beste om de geschikte python versie te downloaden en te installeren. Gaat het je vooral om het herkennen van files, dan kun je beter een software pakket downloaden (bv. aTrain, MacWhisper of SubtitleEdit).
aTrain
aTrain
Onderzoekers van de Universiteit van Graz hebben aTrain ontwikkeld: software waarmee je op een Windows machine spraakherkenning (=Whisper) kunt doen. De opzet is iets anders dan bij MacWhisper waardoor je direct al de nieuwste snufjes (snel, diarizatie) kunt gebruiken. Zeker bij gebruik van een grafische kaart gaat de snelheid van 3x de audio lengte (zonder kaart) naar 20% van de audio lengte (met kaart). Met kaart is dus ong 15x sneller dan zonder! De software kan gedownload worden in de Microsoft App (https://apps.microsoft.com/detail/9n15q44szns2?amp%3Bgl=US&hl=nl-nl&gl=NL) en extra informatie is op de website van de Universiteit van Graz te vinden (https://business-analytics.uni-graz.at/en/research/atrain/). aTrain is wel een behoorlijke download (> 13 GB) maar eenmaal geïnstalleerd, werkt het uitstekend!
MacWhisper
MacWhisper
Deze software komt in twee smaken. Een gratis versie waarmee de herkenning gedaan kan worden met de drie kleinere Whisper modellen (Tiny, Base, Small) en een (eenmalig) betaalde versie waarmee ook de twee fogrotere modellen (Medium en Large) gebruikt kunnen worden. De software kan gedownload worden in de Apple Store of hier (https://goodsnooze.gumroad.com/l/macwhisper) Je betaalt één keer een bedrag. Meestal iedere week kun je dan (vaak op woensdag) een nieuwere versie downloaden.
Ontstaan als een OpenSource tool om makkelijk ondertitels van video's te maken, heeft het zich ontwikkeld tot een uitgebreid pakket met de mogelijkheid om de transcripties in ongeveer alle bestaande ondertitelingsformaten om te zetten. Met de komst van goede, opensource spraakherkenners (eerst KALDI en daarna Whisper) hebben ze nu het proces vergemakkelijkt door ondertitelaars de optie te geven om de video eerst door de spraakherkenner te halen om daarna de transcripties slechts te corrigeren. Dat scheelt een heleboel tijd! De ontwikkelaars zagen snel in dat gebruik van goede ASR-software een duidelijk toegevoegde waarde had en zijn een 2 jaar geleden begonnen met de implementatie van KALDI en vervolgens Whisper. Het transcriptieproces werkt nu behoorlijk vlekkeloos en de resultaten zijn uitstekend. Het voordeel van SubtitleEdit is dat je direct het resultaat kunt verbeteren en vertalen in een andere taal. Nadeel is dat je maar een file per keer kunt doen..
Python
Python is een programmeertaal die begin jaren 90 ontworpen en ontwikkeld werd door Guido van Rossum, destijds verbonden aan het Centrum voor Wiskunde en Informatica in Amsterdam. Inmiddels wordt de taal doorontwikkeld door een enthousiaste groep techneuten, ondersteund door vrijwilligers op het internet. Python is vrije software. Om de Python versie te installeren, kun je het best kijken op de website van OpenAI: https://github.com/openai/whisper Hier staat redelijk goed uitgelegd wat je precies moet doen. Eventueel kun je ook nog op onze website kijken: https://speechandtech.eu/news/state-asr/whisper. Ook hier staat ook hoe je de juiste versie van het Python script kunt installeren.
Whisperx: pip3 install git+https://github.com/m-bain/whisperx.gitWhisperX is een "opgevoerde"versie van Whisper en kan naast het herkennen van de spraak, ook bepalen welke spreker er spreekt (bv SPEAKER_01, of SPEAKER_03). Ook is WhisperX beduidend sneller dan Whisper.
Tenslotte is er (voor Windows) ook nog een soort toverformule. Je typt eenvoudig: iex (irm whisper.tc.ht) waarna alles geinstalleerd wordt.
Windows
Video met het installeren onder Windows
MacOS
Video met het installeren onder MacOS
Als het allemaal lukt, dan heb je nu Whisper en WhisperX geinstalleerd en kun je je AV-files herkennen.
Hoe installeer je een spraakherkenner?
We laten hier onder in een aantal videofilmpjes zien hoe je de verschillende spraakherkenners download en installeerd.
aTrain
...
MacWhisper
...
SubtitleEdit
...
Additionele software
De hierboven beschreven software is in eerste instantie bedoeld om de spraak om te zetten in een geschreven versie daarvan (de transcriptie). Whisper doet het voor de meeste (westerse) talen uitstekend maar toch zal het nooit 100% correct worden. Denk bv aan namen (Jansen, Janssen, Janszen) die allemaal identiek klinken maar toch anders geschreven worden. Of aan bedrijfsnamen, Internet-termen (XS4All), (buitenlandse) woonplaatsen en andere woorden waarvan jij moet weten hoe die precies geschreven worden. Bovendien maken de sprekers ook dikwijls fouten of versprekingen. Wat wil je daarmee dan doen? Overnemen of toch omzetten in "correct Nederlands"? En tenslotte de vraag: waar wil je de transcripties voor gebruiken?
Over het algemeen worden er vier soorten transcripties onderscheden.
Bewerkte transcriptie
Verbatim of letterlijke transcriptie
Intelligente woordelijke transcriptie
Fonetische transcriptie
Bewerkt
Bij bewerkte transcriptie wordt het volledige, nauwkeurige script geformaliseerd en bewerkt op leesbaarheid, beknoptheid en duidelijkheid. Bewerkte transcriptie behandelt zaken als grammaticale fouten, jargon en onvolledige zinnen. Bij het transcriberen van geschreven materiaal worden ook spelling en interpunctie gecorrigeerd en kunnen de gesproken woorden formeler klinken.
Voorbeeld
Onbewerkt: “Mijn moeder zei tegen ons, tegen mij en mijn broer en zus: 'Jullie moeten niet klagen over het feit dat jullie je groenten moeten eten tijdens het avondeten.
Bewerkt: “Mijn moeder zei tegen mij en mijn broers en zussen dat ze niet moesten klagen over het feit dat ze groenten moesten eten tijdens het avondeten.”
Verbatim
Verbatim transcriptie is de geschreven vorm van gesproken taal die geconverteerd is van video- en audiobestanden. Elk geluid wordt vastgelegd, inclusief keelklikken en verbale pauzes zoals “ah”, “um” en “uh”. Het geeft aan wanneer er gelachen wordt en wanneer er geluiden zijn, zoals het rinkelen van een telefoon of het dichtslaan van een deur. Het kan onmisbaar zijn bij het vertalen van een video- of geluidsopname die is gemaakt in een juridische omgeving waarbij elk detail, inclusief pauzes en non-verbale geluiden, belangrijk kan zijn.
Intelligent
Intelligente verbatim transcriptie verwijdert afleidende opvullingen en herhalingen uit het gesproken woord. De bedoeling is om een beknopter, leesbaarder transcript te maken, terwijl de stemmen van de deelnemers en de bedoelde betekenissen behouden blijven. Dit brengt de nauwkeurigheid van verbatim transcriptie in balans met de duidelijkheid van non-verbatim transcriptie, waardoor het ideaal is voor veel zakelijke en professionele contexten.
Fonetisch
Fonetische transcriptie noteert de manier waarop gesproken woorden worden uitgesproken met behulp van fonetische symbolen.
Hoewel de Nederlandse taal 26 letters in het alfabet heeft, zijn er ongeveer 46 unieke klanken die fonemen worden genoemd. Het Internationaal Fonetisch Alfabet (IPA) is een gestandaardiseerde weergave van spraakklanken in een geschreven vorm die voor alle talen geldt. Je kunt dus het IPA gebruiken om een fonetische transcriptie te maken.
Je moet dus voor je de spraak om gaat zetten in een geschreven versie, eerst goed bedenken wat je met de transcripties gaat doen. Maar... hoe dan ook: helemaal foutloos zal ASR niet werken en dus kan het gebeuren dat je de herkenningsresuultaten zal moeten corrigeren. Nu kan dat op verschillende manieren want de transcriptie is eigenlijk gewoon een tekstbestand dat je met iedere editor kunt aanpassen. Maar het kan makkelijker als je tekst en audio bijelkaar houdt waardoor je beter en sneller weet wat er eigenlijk gezegd werd.
Correctie
Behalve het herkennen van opnamen, wil je er soms ook andere dingen mee doen. Bijvoorbeeld een ondertitelingsbestand maken, een HTML-script maken waarmee je kunt lezen en afluisteren, en natuurlijk: corrigeren van de herkenningsresultaten. Hiervoor hebben we WhisperCorrector gemaakt. Het is een softwarepakket (nog steeds in ontwikkeling) waarmee je vrij makkelijk de herkenningsresultaten kunt controleren en desgewenst aanpassen. Het is te downloaden op onze website SpeechAndTech alwaar er ook nog additionele informatie over het installeren en gebruiken van Whisper te vinden is (Engelstalig). De software die gedownload kan worden, staat hier.
Batch-jobs
Soms hoef je maar een paar files te herkennen en lukt het makkelijk om ze een-voor-een op de command line te draaien. Maar soms heb jer meer of heb je geen tijd of zin om op de resultaten te wachten. Dan kun je een batch job maken waarin je aangeeft hoe iedere file herkend moet gaan worden. Je slaat de resultaten op en "runt" ze. De computer voert dan een-voor-een de opdrachten uit en schrijft de resulaten in de opgegeven directory. Zo'n batch job kun je uitvoeren met WhisperBatch dat ook van de website te downloaden is.
Extra
De wereld staat gelukkig niet stil en vanwege het open karakter van de Whisper software zijn er heel veel zaken die goed uitgelegd en verbeterd worden. Bij het schrijven van deze tekst, viel mijn oog op een interessante YouTube vide waarin Trelis (uit Dublin) uitlegt hoe je Whisper kunt fine-tunen om bv heel vreemde woorden toch goed te kunnen herkennen.
De video staat hieronder:
In een redelijk lange video legt hij een paar basis onderdelen van Whisper uit en laat hij zien hoe je een model (in dit geval een small model) kunt aanpassen aan het goed herkennen van die rij erg vreemde woorden.
Zelf of in de Cloud?
Het herkennen van AV-materiaal kan goed op de eigen computer gedaan worden. Afhankelijk van het model dat je voor de herkenning gebruikt (tiny, base, small, medium of large) en de processor, geheugen en de aanwezigheid van een grafische kaart, gaat de herkenning van ong. 5x tot 0.1x de duur van de opnamen. Als je een aantal uur aan interviews hebt, dan kun je makkelijk 's avonds de computer starten en per keer 2 a 3 intervieuws herkennen. Maar heb je er 10-tallen, dan kan de lange duur bezwaarlijk worden. En veel studenten en onderzoekers in de SSH hebben nu eenmaal een eenvoudige laptop. Omdat probleem te ondervangen, zijn er verschillende oplossingen voorhanden. De eenvoudigste is het aanschaffen (of gebruiken) van een snelle computer met veel geheugen en een externe grafische kaart op de afdeling. Iedereen kan die dan gebruiken voor het herkennen van zijn of haar materiaal.
Als dat toch te druk wordt, kan een afdeling of universiteit besluiten om een cluster snelle PC's aan te schaffen die door iedereen van de groep gebruikt kan worden. En tenslotte kan zoiets ook op nationaal niveau geregeld beschikbaar gesteld worden. In nederland hebben we dit met SURF gedaan. Iedereen die met SURF kan werken, kan zijn/haar AV-files opsturen en door de computers van SURF laten herkennen.
Maar... hier kan een probleem optreden. Sommige onderzoekers hebben materiaal onder strikte voorwaarden in handen gekregen en hebben dan beloofd dat hun AV-opnamen NIET naar buiten mogen. Herkenningen in de Cloud mogen dan (officieel) niet! Als je dan de transcripties nodig hebt, zul je het zelf moeten doen en dat kost meestal en hoop tijd (en moeite). ASR op de eigen computer kan dan helpen om het sneller te doen.
Op je eigen computer thuis. Vertrouwelijk materiaal dat NIET naar buiten mag.
In een locale cloud van bv de afdeling. Gevoelig materiaal dat liever niet zomaar geopenbaard mag worden.
In een publieke cloud zoals bv die van SURF. Materiaal dat niet of nauwelijks gevoelig is voor openbaarmaking.
Conclusie
We hebben geprobeerd een overzicht te maken van Whisper: moderne spraakherkenningssoftware die gewoon via internet te downloaden is. Je kunt je AV-bestanden via dedicated software op zowel je Mac als je Windowsmachine makkelijk en gratis herkennen. Heb je heel veel bestanden die herkend moeten worden en/of ben je handig met Python, dan kun je de herkenning via Python-scripts uitvoeren. Voordeel is dat je net wat meer flexibiliteit krijgt en makkelijk de laatste ontwikkelingen kunt bijhouden. Die komen nl allemaal als eerste via Python beschikbaar.
Ook hebben we de verschillende transcriptiesoorten besproken. Bedenk vooraf dus goed waar je de transcripties voor gaat gebruiken en pas eventueel de te gebruiken software daar op aan.
Tenslotte hebben we onze correctiesoftware besproken. Die is nu ongeveer een jaar in gebruik (en ontwikkeling) en begint een zekere mate van volwasenheid te bereiken.
Laatste aanpassing website: vrijdag 25 oktober 2024, 12:51:10.