Een gelabeld transcript heeft beide antwoorden nodig, en omdat labels bovenop de woorden zitten, kan een fout label worden hersteld zonder de tekst aan te raken.
Een transcript van een vergadering beantwoordt twee vragen tegelijk: wat er gezegd is, en wie het zei. Een lezer ziet één taak: een naam naast een regel. Daaronder liggen twee problemen, elk met eigen invoer en eigen manieren om te falen.
Spraakherkenning luistert naar woorden. Het zet audio om in tekst en geeft, goed uitgevoerd, bij elk woord een begin- en eindtijd. Het maakt niet uit of de stem halverwege een zin veranderde; de taak is om de zin goed te krijgen.
Sprekerdiarisatie luistert naar stemmen. Het kent geen woorden. De taak is om de tijdlijn te verdelen in beurten en aan te geven welke beurten bij dezelfde persoon horen: Spreker 1, Spreker 2. Het woord is ontleend aan "diary" (dagboek), en dat is een goed beeld van de uitvoer: een logboek van wie het woord had, en wanneer.
Drie verwante termen worden er vaak mee door elkaar gehaald. Diarisatie zegt wie wanneer sprak, zonder iemand te kennen. Sprekeridentificatie zegt welke bekende persoon een stuk spraak toebehoort, gekozen uit een set opgeslagen stemmen. Sprekerverificatie beantwoordt een ja-of-nee-vraag: is deze stem echt persoon X? Leverancierclaims worden makkelijker te lezen zodra de drie uit elkaar worden gehouden, want "sprekerlabels" kan alles betekenen, van een ruwe schatting van beurtgrenzen tot namen die een persoon van de ene opname naar de volgende volgen. Om te zien wat die labels wel en niet kunnen beloven, moet je in de diarizer kijken.
De meeste diarisatiesystemen werken in drie stappen, geen daarvan gebruikt taal.
Elke stap kan op zich misgaan. Een zachte spreker wordt gemist. Twee gelijkende stemmen worden samengevoegd. Eén persoon die van rustig naar opgewonden gaat, wordt in tweeën gesplitst.
Het vakgebied scoort dit allemaal met de diarization error rate, DER: het aandeel van de spreektijd dat gemist, ten onrechte als spraak aangemerkt of aan de verkeerde spreker toegeschreven werd, meestal met een vergevingsmarge (collar) van ongeveer een kwart seconde rond elke grens. De marge bestaat omdat niemand, mens of machine, een sprekerwisseling tot op de milliseconde kan plaatsen. Die tolerantie is prima om een diarizer op zichzelf te beoordelen. Voor een transcript is ze niet prima, want een grens die een kwart seconde afwijkt, belandt op een woord.
Hier komen de twee problemen samen, en hier wordt de kwaliteit van een gelabeld transcript bepaald. Een diarizer plaatst zijn grenzen met enige onnauwkeurigheid, vaak een fractie van een seconde in beide richtingen. Een herkenner plaatst woorden op dezelfde tijdlijn. Legt men de twee naïef over elkaar, dan valt een grens binnen een woord, zodat de helft van "morgen" bij Spreker 1 hoort en de andere helft bij Spreker 2.
Labels kunnen ook een tijdje fout zijn voordat ze goed zijn. Een diarizer wordt zekerder van zijn groepen naarmate het meer audio heeft gehoord, dus een vroeg label kan er verkeerd uitzien volgens de maatstaf van wat later komt. Bij een live transcript kan een label worden herzien nadat een regel al getoond is: de realtime-API van VocalStack stuurt een transcript.amended-frame dat de tekst of spreker van een vastgelegde regel ter plekke corrigeert, zodat een lezer de herziening ziet in plaats van een tegenspraak.
Zelfs een perfect geplaatst, perfect stabiel label blijft slechts een getal. Een getal is genoeg om een gesprek te volgen; een naam is wat mensen willen lezen.
Een label wordt op twee manieren een naam, en die bouwen op elkaar voort.
De eerste is benoemen binnen één opname. Elke spreker die een transcriptie vindt, krijgt een index, geteld vanaf 0. Wie toegang heeft, kan elke spreker tijdens of na de opname benoemen. De naam is een laag over de woorden, dus die kan worden ingesteld, gewijzigd of gewist zonder de tekst aan te raken. Via de API gaat dat met PUT /v1/recordings/{id}/speakers/{idx} met een name; een lege naam wist hem. Een regel waarvan speaker -1 is, heeft geen label, hetzij omdat labels uit stonden, hetzij, in een live concept, omdat de regel nog niet aan een spreker is toegeschreven.
De tweede is herkenning over opnames heen, het identificatieprobleem uit de eerste sectie. Een diarizer kan alleen zeggen dat twee stemmen verschillend zijn, nooit wie ze zijn. Om van "verschillend" naar "dit is Ana" te komen, heeft het systeem een referentie nodig: een opgeslagen stem, afkomstig van een opname van die ene persoon. Dertig seconden schone spraak is het minimum, en een paar minuten is beter. Het monster moet ook klinken als de opnames waarmee het vergeleken gaat worden: dezelfde persoon op een laptopmicrofoon en op een podiummicrofoon kan voor een machine minder op elkaar lijken dan twee vreemden die op dezelfde manier zijn opgenomen. Zodra een stem is opgeslagen, wordt elke spreker die een transcriptie hoort ermee vergeleken, en een match brengt de naam over naar het transcript. In VocalStack staat dit onder Voices; bestandstranscripties en live sessies in het Dashboard matchen je opgeslagen stemmen automatisch, en een realtime-API-sessie herkent alleen de stemmen die je in identifyVoices opsomt.
Een opgeslagen stem is biometrische data: ze kan een persoon in elke opname herkennen, en in VocalStack dient ze ook als kloon die zijn of haar regels hardop kan voorlezen. Het Dashboard vraagt je te bevestigen dat je toestemming van de persoon hebt voordat je er een opslaat, en een stem kan op elk moment worden verwijderd.
Dit alles veronderstelt dat je überhaupt labels wilt. Vaak wil je dat niet.
Een enkele persoon die een lezing geeft, heeft geen "Spreker 1" nodig voor elke regel. Het publiek weet al wie de microfoon heeft. Daarom heeft de instelling voor sprekerlabels drie standen, en die zijn hetzelfde bij een realtime-sessie, een uitzending, een transcriptie en een opname.
auto in de API). Regels krijgen hun spreker als label zodra meer dan één stem wordt gehoord; een opname met één spreker blijft gewone tekst, en een tweede stem die later instapt, wordt nog steeds opgepikt. Het nieuwe formulier voor live transcriptie in het Dashboard begint hier.Een bestandsupload gebruikt dezelfde speakerLabels-optie, en de realtime-API laat je de instelling midden in een stream wijzigen; de details staan in de API-referentie. Het scheiden en benoemen van sprekers verhoogt nooit de rekening (de prijzenpagina bevat de tarieven), dus de keuze gaat over wat de lezer moet zien, niet over wat het kost.
Ingeschakeld is diarisatie goed, maar niet magisch. Twee situaties verslaan het nog steeds.
Het eerste is overlap. Wanneer twee mensen tegelijk praten, bevat één stuk audio twee stemmen. Overlap-bewuste diarizers bestaan in onderzoek en, steeds vaker, in producten: end-to-end neural diarization (EEND) behandelt bijvoorbeeld "wie spreekt" als een reeks gelijktijdige ja-of-nee-vragen in plaats van één antwoord. De meeste productiesystemen kennen echter nog steeds één spreker per stuk, en de herkenner erbovenop transcribeert één stem tegelijk. Kruispraat in een verhitte paneldiscussie is de moeilijkste audio in het vakgebied, en daar worden de labels van elke leverancier slechter. Het is ook, betrouwbaar, het deel dat iedereen achteraf wil citeren.
Het tweede is zeer gelijkende stemmen. Broers en zussen kunnen embeddings produceren die te dicht bij elkaar liggen om betrouwbaar te scheiden, zeker wanneer ze een uur lang korte beurten wisselen. Telefoonaudio maakt dit voor iedereen erger: een smalbandlijn wordt bemonsterd op 8 kHz en bevat niets boven ongeveer 3,4 kHz, terwijl veel van wat de ene stem van de andere onderscheidt juist boven die grens ligt. Twee mensen op dezelfde telefoonlijn klinken voor een diarizer meer op elkaar dan voor jou.
De meest praktische remedie voor beide ligt stroomopwaarts van elk model: geef elke persoon zijn eigen microfoon. Met één kanaal per spreker wordt diarisatie gereduceerd tot de vraag welk kanaal het luidst is, wordt overlap twee schone sporen in plaats van één troebel spoor, en worden de embeddings nooit gevraagd het moeilijke werk te doen. Eén tafelmicrofoon is goedkoper en bijna altijd wat je hebt, en daarom bestaat de rest van dit artikel.
Geen van beide beperkingen hoeft de lezer ongewijzigd te bereiken. Omdat labels een laag over de woorden zijn, kost een verkeerd label je nooit de tekst: sprekernamen kunnen op elk moment bij een opname worden ingesteld of gewist, en bij een live transcriptie kan de host elk woord of elke regel herschrijven terwijl het nog loopt, waarbij elke correctie wordt gemarkeerd en ongedaan kan worden gemaakt.
Voor de woordkant behandelt wat word error rate meet en wat het mist de correctielagen in detail; WER staat tot de herkenner wat DER tot de diarizer is, en een transcript heeft beide laag nodig.