En märkt transkribering behöver båda svaren rätt, och eftersom etiketterna ligger ovanpå orden kan en felaktig etikett rättas utan att texten rörs.
En transkribering av ett möte besvarar två frågor samtidigt: vad som sades och vem som sa det. En läsare ser ett enda jobb, ett namn bredvid varje rad. Under ytan finns två problem, vart och ett med egna indata och egna sätt att misslyckas.
Taligenkänning lyssnar efter ord. Den omvandlar ljud till text och ger, när den fungerar väl, en start- och sluttid för varje ord. Den bryr sig inte om rösten ändrades mitt i en mening; dess uppgift är att få meningen rätt.
Talarindelning (diarisering) lyssnar efter röster. Den känner inga ord. Dess uppgift är att dela upp tidslinjen i turer och säga vilka turer som tillhör samma person: Talare 1, Talare 2. Ordet är lånat från "dagbok", och det är en rimlig bild av resultatet: en logg över vem som hade ordet, och när.
Tre närliggande begrepp blandas ofta ihop med den. Talarindelning säger vem som talade när, utan att känna till någon. Talaridentifiering säger vilken känd person ett stycke tal tillhör, genom att välja bland inlästa röster. Talarverifiering besvarar en ja-eller-nej-fråga: är den här rösten verkligen person X? Leverantörernas påståenden blir lättare att läsa när de tre hålls isär, eftersom "talaretiketter" kan betyda allt från en grov gissning om turgränser till namn som följer en person från en inspelning till nästa. För att se vad de etiketterna kan och inte kan lova, titta inuti talarindelaren.
De flesta system för talarindelning arbetar i tre steg, och inget av dem handlar om språk.
Varje steg kan gå fel på egen hand. En tyst talare missas. Två likartade röster slås ihop. En person som övergår från lugn till engagerad delas i två.
Fältet poängsätter allt detta med diarization error rate, DER: andelen talad tid som missades, felaktigt räknades som tal eller tillskrevs fel talare, vanligtvis med en förlåtelsemarginal på ungefär en fjärdedels sekund runt varje gräns. Marginalen finns eftersom ingen, vare sig människa eller maskin, kan placera en talarväxling till millisekunden. Den toleransen duger för att poängsätta en talarindelare på egen hand. Den duger inte för en transkribering, där en gräns som ligger en fjärdedels sekund fel hamnar på ett ord.
Här möts de två problemen, och här avgörs kvaliteten på en märkt transkribering. En talarindelare placerar sina gränser med viss osäkerhet, ofta en bråkdel av en sekund åt endera hållet. En taligenkännare placerar orden på samma tidslinje. Lägger man de två ovanpå varandra på ett naivt sätt hamnar en gräns mitt i ett ord, så att hälften av "imorgon" tillhör Talare 1 och den andra hälften Talare 2.
Etiketter kan också vara fel en stund innan de blir rätta. En talarindelare blir säkrare på sina grupper ju mer ljud den har hört, så en tidig etikett kan se fel ut jämfört med vad som kommer senare. I en livetranskribering kan en etikett revideras efter att en rad har visats: VocalStacks realtids-API skickar en transcript.amended-ram som rättar texten eller talaren på en redan bekräftad rad på plats, så att läsaren ser en revision i stället för en motsägelse.
Även en perfekt placerad och helt stabil etikett är ändå bara ett nummer. Ett nummer räcker för att följa ett samtal; ett namn är det folk vill läsa.
En etikett blir ett namn på två sätt, och de bygger på varandra.
Det första är namngivning inom en inspelning. Varje talare som en transkribering hittar får ett index, räknat från 0. Den som har åtkomst kan namnge varje talare under eller efter inspelningen. Namnet är ett lager ovanpå orden, så det kan sättas, ändras eller rensas utan att texten rörs. Via API:et sker det med PUT /v1/recordings/{id}/speakers/{idx} och ett name; ett tomt namn rensar det. En rad vars speaker är -1 saknar etikett, antingen för att etiketter var avstängda eller, i ett levande utkast, för att raden ännu inte har tillskrivits någon talare.
Det andra är igenkänning över inspelningar, identifieringsproblemet från första avsnittet. En talarindelare kan bara säga att två röster är olika, aldrig vilka de är. För att gå från "olika" till "det här är Ana" behöver systemet en referens: en sparad röst, tagen från en inspelning av just den personen. Trettio sekunder ren tal är minimum, och några minuter är bättre. Provet bör också låta som de inspelningar det ska matchas mot: samma person i en bärbar datormikrofon och i en scenmikrofon kan låta mindre lika för en maskin än två främlingar som spelats in på samma sätt. När en röst väl är sparad jämförs varje talare som en transkribering hör mot den, och en träff för med sig namnet in i transkriberingen. I VocalStack finns detta under Voices; filtranskriberingar och livesessioner i dashboarden matchar dina sparade röster automatiskt, och en realtids-API-session känner bara igen de röster du listar i identifyVoices.
En sparad röst är biometrisk data: den kan känna igen en person i vilken inspelning som helst, och i VocalStack fungerar den dessutom som en klonad röst som kan läsa personens repliker högt. Dashboarden ber dig bekräfta att du har personens tillstånd innan du sparar en röst, och en röst kan tas bort när som helst.
Allt detta förutsätter att du vill ha etiketter alls. Ofta vill man inte det.
En enda person som håller en föreläsning behöver inte "Talare 1" framför varje rad. Publiken vet redan vem som har mikrofonen. Därför har inställningen för talaretiketter tre lägen, och de är desamma i en realtidssession, en sändning, en transkribering och en inspelning.
auto i API:et). Rader märks med sin talare när mer än en röst har hörts; en inspelning med en talare stannar som ren text, och en andra röst som kommer in sent fångas ändå upp. Dashboardens nya formulär för livetranskribering börjar här.En filuppladdning tar samma alternativ speakerLabels, och realtids-API:et låter dig ändra inställningen mitt i en ström; detaljerna finns i API-referensen. Separering och namngivning av talare ökar aldrig kostnaden (i priserna finns taxan), så valet handlar om vad läsaren ska se, inte om vad det kostar.
När den är påslagen är talarindelning bra, men inte magisk. Två situationer klarar den fortfarande inte.
Den första är överlappning. När två personer talar samtidigt bär en del av ljudet två röster. Överlappningsmedvetna talarindelare finns i forskningen och, allt oftare, i produkter: end-to-end neural diarization (EEND), till exempel, behandlar "vem som talar" som en uppsättning samtidiga ja-eller-nej-frågor i stället för ett enda svar. De flesta produktionssystem tilldelar ändå en talare per del, och igenkännaren ovanpå transkriberar en röst i taget. Korsprat i en hetsig paneldebatt är det svåraste ljudet inom fältet, och alla leverantörers etiketter blir sämre just där. Det är också, med säkerhet, den del som alla vill citera efteråt.
Den andra är mycket lika röster. Syskon kan producera embeddingar som ligger för nära varandra för att kunna särskiljas tillförlitligt, särskilt när de turas om att tala korta repliker under en timme. Telefonljud gör detta svårare för alla: en smalbandig linje samplas med 8 kHz och bär ingenting över ungefär 3,4 kHz, men mycket av det som skiljer en röst från en annan ligger ovanför den gränsen. Två personer på samma telefonlinje låter mer lika för en talarindelare än de gör för dig.
Det mest praktiska botemedlet mot båda ligger uppströms om alla modeller: ge varje person sin egen mikrofon. Med en kanal per talare reduceras talarindelning till att fråga vilken kanal som är högst, överlappning blir två rena spår i stället för ett grumligt, och embeddingarna behöver aldrig göra det svåra. En enda bordsmikrofon är billigare och nästan alltid det man har, vilket är anledningen till att resten av den här artikeln finns.
Ingen av gränserna behöver nå läsaren oförändrad. Eftersom etiketter är ett lager ovanpå orden kostar en felaktig etikett aldrig dig texten: talarnamn kan sättas eller rensas på en inspelning när som helst, och i en livetranskribering kan värden skriva om vilket ord eller vilken rad som helst medan den fortfarande pågår, med varje rättelse markerad och ångringsbar.
För ordsidan går vad ordfelsfrekvens (WER) mäter och vad den missar igenom rättelselagren i detalj; WER är för taligenkännaren vad DER är för talarindelaren, och en transkribering behöver att båda är låga.