En merket transkripsjon trenger begge svarene riktige. Fordi merkelappene ligger over ordene, kan en feil merkelapp rettes uten å røre teksten.
En transkripsjon av et møte svarer på to spørsmål samtidig: hva som ble sagt, og hvem som sa det. Leseren ser én oppgave, et navn ved siden av hver linje. Under overflaten ligger to problemer, hver med sine egne innganger og sine egne måter å feile på.
Talegjenkjenning lytter etter ord. Den gjør lyd om til tekst og gir, når den fungerer godt, et start- og sluttidspunkt for hvert ord. Den bryr seg ikke om stemmen endrer seg midt i en setning; jobben er å få setningen riktig.
Talerdiarisering lytter etter stemmer. Den kjenner ingen ord. Oppgaven er å dele tidslinjen inn i replikker og si hvilke replikker som tilhører samme person: Speaker 1, Speaker 2. Ordet er lånt fra «diary», og det er et godt bilde av resultatet: en logg over hvem som hadde ordet, og når.
Tre nærliggende begreper blandes ofte sammen med den. Diarisering sier hvem som snakket når, uten å kjenne noen. Taleridentifikasjon sier hvilken kjent person et stykke tale tilhører, ved å velge blant lagrede stemmer. Taleverifikasjon svarer på et ja-eller-nei-spørsmål: er denne stemmen virkelig person X? Leverandørers påstander blir lettere å lese når de tre holdes fra hverandre, fordi «talermerkelapper» kan bety alt fra et grovt gjett på replikkskiftene til navn som følger en person fra én innspilling til neste. For å se hva disse merkelappene kan og ikke kan love, må man se inn i diariseringsverktøyet.
De fleste diariseringssystemer arbeider i tre trinn, og ingen av dem involverer språk.
Hvert trinn kan feile på egen hånd. En stille taler blir oversett. To like stemmer slås sammen. En person som går fra rolig til engasjert, blir delt i to.
Feltet måler alt dette med diariseringsfeilraten, DER: andelen av taletiden som ble oversett, feilaktig oppdaget som tale eller tilskrevet feil taler, vanligvis med en tilgivelsesmargin på rundt en fjerdedel sekund rundt hver grense. Marginen finnes fordi ingen, verken menneske eller maskin, kan plassere et talerskifte til nærmeste millisekund. Den toleransen er grei når man måler en diariserer alene. Den er ikke grei for en transkripsjon, der en grense som ligger en fjerdedel sekund unna, havner på et ord.
Her møtes de to problemene, og her avgjøres kvaliteten på en merket transkripsjon. En diariserer setter grensene sine med en viss unøyaktighet, ofte en brøkdel av et sekund i begge retninger. En talegjenkjenner plasserer ordene på samme tidslinje. Legger man de to oppå hverandre uten videre, havner en grense inni et ord. Da tilhører halvparten av «i morgen» Speaker 1, og den andre halvparten tilhører Speaker 2.
Merkelapper kan også være feil en stund før de blir riktige. En diariserer blir sikrere på gruppene sine jo mer lyd den har hørt, så en tidlig merkelapp kan se feil ut sett med standarden til det som kommer senere. I en direkte transkripsjon kan en merkelapp revideres etter at linjen er vist. VocalStacks API for sanntid sender en transcript.amended-ramme som retter teksten eller taleren på en allerede bekreftet linje på stedet, slik at leseren ser en revisjon i stedet for en motsigelse.
Selv en perfekt plassert, helt stabil merkelapp er bare et tall. Et tall er nok til å følge en samtale; et navn er det folk vil lese.
En merkelapp blir til et navn på to måter, og de bygger på hverandre.
Den første er navngivning innenfor en innspilling. Hver taler som en transkripsjon finner, får en indeks, telt fra 0. Den som har tilgang, kan gi hver taler et navn under eller etter innspillingen. Navnet er et lag over ordene, så det kan settes, endres eller fjernes uten å røre teksten. Over API-et gjøres det med PUT /v1/recordings/{id}/speakers/{idx} og et name; et tomt navn fjerner det. En linje der speaker er -1, har ingen merkelapp. Enten er merkelappene av, eller, i et direkteutkast, så er ikke linjen tilskrevet ennå.
Den andre er gjenkjenning på tvers av innspillinger, identifikasjonsproblemet fra første del. En diariserer kan bare si at to stemmer er ulike, aldri hvem de er. For å gå fra «ulike» til «dette er Ana» trengs en referanse: en lagret stemme, hentet fra en innspilling av akkurat den personen. Minst tretti sekunder ren tale kreves, og et par minutter er bedre. Prøven bør også høres ut som innspillingene den skal matches mot. Den samme personen på en bærbar mikrofon og på en scenemikrofon kan høres mindre like ut for en maskin enn to fremmede som er innspilt på samme måte. Når en stemme er lagret, sammenlignes hver taler en transkripsjon hører, med den, og et treff bærer navnet inn i transkripsjonen. I VocalStack ligger dette under Voices. Filtranskripsjoner og direkte sesjoner i dashbordet matcher de lagrede stemmene dine automatisk, mens en API-sesjon for sanntid bare gjenkjenner stemmene du lister opp i identifyVoices.
En lagret stemme er biometriske data: den kan gjenkjenne en person i hvilken som helst innspilling, og i VocalStack fungerer den også som en klone som kan lese personens replikker høyt. Dashbordet ber deg bekrefte at du har personens tillatelse før du lagrer en stemme, og en stemme kan slettes når som helst.
Alt dette forutsetter at du vil ha merkelapper i det hele tatt. Ofte vil du ikke det.
En person som leser en forelesning, trenger ikke «Speaker 1» foran hver linje. Publikum vet allerede hvem som har mikrofonen. Derfor har innstillingen for talermerkelapper tre posisjoner, og de er like for en direkte sesjon, en sending, en transkripsjon og et opptak.
auto i API-et). Linjer merkes med taler når mer enn én stemme høres. Et opptak med én taler forblir ren tekst, og en andre stemme som kommer senere, blir fortsatt plukket opp. Det nye skjemaet for direktetranskripsjon i dashbordet starter her.En filopplasting bruker det samme alternativet speakerLabels, og API-et for sanntid lar deg endre det midt i en strøm. Detaljene finner du i API-referansen. Å skille talere og navngi dem legger aldri til på regningen (satsene står på prissiden), så valget handler om hva leseren skal se, ikke hva det koster.
Når det er slått på, er diarisering god, men ikke magisk. To situasjoner slår den fortsatt.
Den første er overlapp. Når to personer snakker samtidig, bærer en lydstrekning to stemmer. Diarisererer som tar hensyn til overlapp finnes i forskningen og i økende grad i produkter. Ende-til-ende nevral diarisering (EEND) behandler for eksempel «hvem som snakker» som et sett med samtidige ja-eller-nei-spørsmål i stedet for ett svar. De fleste produksjonssystemer tilordner likevel én taler per lydstrekning, og gjenkjenneren på toppen transkriberer én stemme om gangen. Kryssprat i en opphetet paneldebatt er det vanskeligste lydmaterialet i feltet, og alle leverandørers merkelapper blir dårligere der. Det er også, pålitelig, den delen alle vil sitere etterpå.
Den andre er svært like stemmer. Søsken kan lage innbeddinger som er for like til å skilles pålitelig, spesielt når de bytter korte replikker i en time. Telefonlyd gjør dette verre for alle. En smalbåndlinje samples med 8 kHz og bærer ingenting over omtrent 3,4 kHz, men mye av det som skiller én stemme fra en annen, ligger over den grensen. To personer på samme telefonlinje høres mer like ut for en diariserer enn for deg.
Det mest praktiske grepet for begge er før noen modell i det hele tatt: gi hver person sin egen mikrofon. Med én kanal per taler reduseres diarisering til å spørre hvilken kanal som er høyest. Overlapp blir to rene spor i stedet for ett grumsete, og innbeddingene slipper å gjøre den vanskelige jobben. En enkel bordmikrofon er billigere og nesten alltid det du har, og derfor finnes resten av denne artikkelen.
Ingen av disse grensene behøver å nå leseren uendret. Fordi merkelapper er et lag over ordene, koster en feil merkelapp aldri teksten. Navn på talere kan settes eller fjernes på et opptak når som helst, og i en direkte transkripsjon kan verten skrive om ethvert ord eller enhver linje mens den kjører. Hver rettelse merkes og kan angres.
For ordsiden dekker hva ordfeilrate (WER) måler, og hva den ikke fanger rettelseslagene i detalj. WER er for gjenkjenneren det DER er for diarisereren, og en transkripsjon trenger at begge er lave.