Hoppa till innehållet

Vad är talardiarisering? Så fungerar det och vanliga användningsområden

Skriven av
Jack Limebear
Publicerad

LyssnaLyssna på den här artikeln

Talardiarisering tar en ljudström med ett okänt antal talare och skapar en tidslinje med märkta segment: talare A från 0:00 till 0:42, talare B från 0:42 till 1:15 och talare A igen från 1:15 och framåt. Systemet vet inte vilka talarna är, men det vet att de är olika personer och håller deras etiketter konsekventa genom hela inspelningen.

Det är den här processen som gör ljud med flera talare användbart. Mötesanteckningar, kontaktcenter-analyser, intervjutranskriberingar, poddredigering och juridisk dokumentation bygger alla på att veta både vad som sades och vem som sa det. 

I den här guiden förklarar vi hur diariseringsprocessen fungerar, hur den skiljer sig från närliggande tekniker som segmentering och identifiering, vilka open source-verktyg som kan användas och hur du mäter om ett diariseringssystem fungerar bra.

Sammanfattning

  • Talardiarisering delar upp en ljudinspelning efter vem som talar och skapar märkta talarbyten utan att identifiera någon med namn.
  • Talardiarisering skiljer sig från talarsegmentering, som hittar när talaren byts, och talaridentifiering, som matchar röster med riktiga namn.
  • Diariseringens resultat mäts med diarization error rate (DER) för övergripande noggrannhet och Jaccard error rate (JER) för att kontrollera att noggrannheten gäller för varje talare.

Vad är talardiarisering och hur fungerar det?

Talardiarisering är processen att dela upp en ljudström i segment utifrån vem som talar. I ett transkript med talardiarisering får varje ljudsegment en talaridentitet. Enkelt uttryckt besvarar det frågan: ”Vem sa vad och när?” 

Ett råtranskript från ett möte ger dig orden, medan ett diariserat transkript visar att talare 1 ställde frågan, talare 2 svarade och talare 3 avbröt halvvägs.

De flesta system för talardiarisering följer en pipeline med fyra steg:

Diarization pipeline: voice detection, segmentation, embeddings, clustering, and anonymous labels.

Vi går igenom stegen mer i detalj.

Talaktivitetsdetektering (VAD)

Talaktivitetsdetektering skiljer tal från allt annat: tystnad, bakgrundsljud, musik eller tangentbordsklick. Bara ljudsegment som faktiskt innehåller tal går vidare till nästa steg.

Eventuella fel i det här steget förs vidare genom resten av processen.

Segmentering

Segmenten som innehåller tal delas sedan vid punkter där talaren sannolikt byts, till exempel vid en förändring i röstläge, en paus mellan yttranden eller ett förändrat tonhöjdsmönster. De flesta system upptäcker dessa brytpunkter direkt genom att jämföra de akustiska egenskaperna på varsin sida om en möjlig gräns. 

Vissa segmenteringsverktyg delar ljudet i korta, jämnstora fönster, exempelvis två sekunder långa bitar, och förlitar sig sedan på klustringssteget för att slå ihop intilliggande fönster som tillhör samma talare.

Extrahering av embeddingar

Varje talsegment omvandlas till en talar-embedding, alltså en numerisk vektor som fångar röstegenskaperna hos personen som talar i segmentet. Embeddingar från samma talare hamnar nära varandra i vektorrymden, medan embeddingar från olika talare ligger längre ifrån varandra.

Klustring

Embeddingarna grupperas sedan så att segment från samma talare får samma etikett. Systemet vet vanligtvis inte antalet talare i förväg, så klustringsalgoritmen måste avgöra det själv: är det segment som låter lite annorlunda en ny talare, eller samma person med ett annat röstläge?

Embeddings cluster same-speaker samples together, but speaker count is unknown in advance in speaker diarization

Resultatet är en uppsättning talaretiketter kopplade till tidsintervall, vanligtvis tillsammans med ett transkript. Ett diariserat transkript från ett samtal mellan två personer kan till exempel se ut så här:

  • [speaker_0] Tack för att du ringer. Hur kan jag hjälpa till?
  • [speaker_1] Hej, jag ringer angående min faktura från förra månaden.
  • [speaker_0] Absolut, jag ska ta fram den.

Etiketterna är anonyma och konsekventa internt. Speaker_0 är samma röst varje gång etiketten förekommer, men systemet vet inte att speaker_0 heter Fergal. Att koppla riktiga identiteter till röster är en annan uppgift, som vi tar upp nedan.

Viktiga skillnader mellan talarsegmentering och talaridentifiering

Talarsegmentering och talaridentifiering överlappar båda nära med diariseringsprocessen, vilket innebär att de tre ofta blandas ihop.

De löser alla lite olika problem, så det är viktigt att förstå skillnaden när du utvärderar verktyg.

Som vi förklarade tidigare är talarsegmentering ett tidigt steg i diariseringsprocessen. Den hittar gränserna där talaren byts från en röst till en annan, utan att tilldela etiketter. Segmentering visar att ett byte skedde vid 0:42. Diarisering bygger vidare på det genom att gruppera de resulterande segmenten och skapa ett fullt märkt resultat, så att du vet att rösten vid 1:15 är samma som talade i början av inspelningen.

Talaridentifiering är en separat funktion utanför diariseringsprocessen, men kombineras ofta med den. Identifiering avgör vilka talarna faktiskt är. Ett identifieringssystem jämför röster med registrerade röstavtryck och använder en referens med kända talare för att returnera identiteter. Efter identifieringen blir speaker_0 och speaker_1 ”Fergal” och ”Eric”.

Många produkter kombinerar dessa verktyg för att skapa ett mer komplett sluttranskript. Ett mötesverktyg kan göra detta automatiskt, kanske till och med genom att hämta namn som någon har angett i Teams eller Meet, så att varje deltagares bidrag tillskrivs rätt namn utan manuell granskning. 

Comparison of segmentation, speaker diarization, and identification; diarize first, then identify.

Populära open source-verktyg och bibliotek för talardiarisering

Open source-verktyg för talardiarisering är värda att överväga när du behöver kontroll, flexibilitet eller lokal driftsättning. Det bästa valet beror på vilken typ av ljud du hanterar – telefonsamtal, möten, poddar eller sändningar – dina krav på latens och hur mycket utvecklingstid du kan lägga. 

Här är några av de populäraste alternativen.

Pyannote.audio

Pyannote.audio är en PyTorch-baserad verktygslåda som är byggd särskilt för talardiarisering och ett av de mest använda open source-alternativen. Den erbjuder förtränade pipelines som täcker hela diariseringskedjan, inklusive VAD, segmentering, embeddingar och klustring, samt byggstenarna för att träna eller finjustera modeller på dina egna data. 

De förtränade modellerna distribueras via Hugging Face och används ofta som diariseringslager i större transkriberingsprojekt.

WhisperX

WhisperX kombinerar OpenAI:s Whisper-transkribering med diariseringsprocessen och forcerad justering. Whisper ger i sig starka transkript, men tilldelar inte talaretiketter och tidsstämplarna är bara ungefärliga. WhisperX lägger till justering av tidsstämplar på ordnivå och integrerar pyannote-baserad diariseringsprocess, vilket ger transkript där varje ord har både en korrekt tidsstämpel och en talaretikett.

NVIDIA NeMo

NVIDIA NeMo inkluderar diariseringsprocessen som en del av sitt bredare ramverk för Conversational AI. Det erbjuder träningsbara diariseringsmodeller, inklusive end-to-end-metoder som hanterar överlappande tal, och är utformat för team som bygger anpassade talsystem i stor skala på GPU-infrastruktur.

Varje verktyg kräver att du hanterar diariseringsinfrastrukturen, inklusive modelldistribution, skalning, övervakning och uppdateringar. För team som inte vill ha den driftsbördan erbjuder hanterade API:er för talardiarisering ett enklare alternativ. De kan antingen integreras med befintliga workflow eller hantera hela diariseringsprocessen, vilket gör dem väl lämpade för produktionsanvändning, till exempel analyser av kundtjänst, mötestranskribering och poddbearbetning.

Diarisering i realtid: Utmaningar och användningsområden

Diarisering i realtid är betydligt svårare än diariseringsprocessen för en färdig inspelning, eftersom systemet måste fatta beslut med ofullständig kontext.

Ett offline-system ser hela inspelningen innan det fattar några beslut. Det kan jämföra en röst vid minut 2 med en röst vid minut 40 och med säkerhet avgöra att det är samma talare, eftersom båda tillfällena finns tillgängliga samtidigt. Ett realtidssystem har aldrig den möjligheten: det måste märka talet i samma ögonblick som det kommer in, utan tillgång till vad som sägs härnäst och med liten eller ingen möjlighet att ändra ett beslut i efterhand. 

Avsaknaden av framtida kontext gör tre specifika problem mycket svårare att lösa i realtid:

  • Latens kontra noggrannhet: Utan möjlighet att granska hela samtalet fram och tillbaka sker snabbare svarstider direkt på bekostnad av noggrannheten.
  • Överlappande tal: När personer pratar i mun på varandra kan ett system som får bearbeta ljudet på nytt reda ut det. Ett realtidssystem måste antingen tvinga in det under en enda etikett eller använda specialiserade modeller som hanterar överlappningar direkt.
  • Korta yttranden: Ett snabbt ”ja” eller ”kör på” ger knappt systemet tillräckligt med röstdata att arbeta med, och utan omgivande kontext måste det ändå tilldela en etikett direkt.

Trots svårigheterna kan vissa tillämpningar inte vänta på att en inspelning ska bli klar. Liveundertextning för möten och sändningar behöver talaretiketter medan personer talar. Kontaktcenterprogramvara som visar vägledning för agenter mitt i samtalet måste i realtid veta vilka ord kunden använder. Röstassistenter som hanterar samtal med flera deltagare måste utan fördröjning hålla reda på vem som frågar vad. I varje fall är ett system som är något mindre exakt men direkt bättre än ett som är mer exakt men fördröjt.

För arbetsflöden som inte verkligen kräver etiketter i realtid, som analyser, granskning för regelefterlevnad och transkriptgenerering, är batchdiarisering ett bättre val eftersom det är betydligt mer exakt.

Så utvärderar du resultatet för talardiarisering

Två mått är viktigast när du mäter diariseringsnoggrannhet: diarization error rate (DER), som visar den övergripande noggrannheten, och Jaccard error rate (JER), som kontrollerar om noggrannheten håller för varje talare.

DER beräknar specifikt andelen av den totala taltiden som har tillskrivits fel. Det kombinerar tre typer av fel:

  • Falskt positivt tal: Systemet märkte ett segment som tal trots att ingen talade.
  • Missat tal: Någon talade, men systemet märkte det som tystnad.
  • Talarförväxling: Tal upptäcktes men tillskrevs fel talare.

DER = (falskt positivt tal + missat tal + talarförväxling) / total taltid

Ett DER på 10 % innebär att felen motsvarar en tiondel av den totala taltiden för dessa tre feltyper. Lägre är bättre, och resultat kan bara jämföras när de mäts på samma data under samma förhållanden. DER varierar kraftigt beroende på ljudkvalitet, antal talare och hur mycket överlappande tal inspelningen innehåller.

Jaccard error rate (JER) mäter diariseringsnoggrannheten för varje talare separat och beräknar sedan genomsnittet för alla talare. För varje referenstalare matchar utvärderaren systemets närmaste talaretikett och jämför tiden då de överlappar korrekt med den totala tid som tilldelats endera talaren.

Föreställ dig till exempel ett 60 minuter långt möte där talare A talar i 50 minuter och talare B i 10. Ett diariseringssystem märker 48 av talare A:s 50 minuter korrekt, men bara 4 av talare B:s 10 minuter. Det övergripande DER-värdet kan ändå se relativt starkt ut eftersom större delen av mötet tillhör talare A. JER gör att talare B:s svaga resultat räknas lika mycket, eftersom det utvärderar talare A och talare B var för sig innan deras resultat beräknas som ett genomsnitt.

JER_speaker = 1 - (correct_overlap / (ref_time + sys_time - correct_overlap))

Det slutliga JER-värdet är genomsnittet av felvärdena per talare:

JER = (1 / N) * Σ[JER_speaker_i]  där i = 1..N

Genom att följa både DER och JER får du en mer heltäckande bild av diariseringsnoggrannheten: DER för den övergripande noggrannheten och JER för om den håller för alla deltagare, även personer som talar mer sällan.

Testning med ljud som motsvarar produktionen

När du utvärderar ett system för talardiarisering bör du beräkna både DER och JER på ljud som motsvarar dina faktiska driftsförhållanden: ditt vanliga antal talare, din ljudkvalitet och mängden överhörning. 

Publicerade benchmark-resultat kan vara uppmätta på rena, kontrollerade dataset, som studio-inspelningar, som sällan motsvarar hur verkliga samtalsinspelningar eller direktsända möten låter. Ett system som presterar bra i benchmark-tester kan ändå fungera betydligt sämre på brusigt, överlappande ljud från verkligheten. Testa på dina egna data innan du väljer en diariseringsprodukt.

Kom igång med ElevenAPI för talardiarisering

Om du vill bygga en transkriberingsfunktion med stöd för flera talare gör Scribe v2 från ElevenLabs talardiarisering tillgänglig via ett enda Speech to Text-API. Skicka ljud till endpointen med diarize=true, så märker JSON-svaret varje ord med ett talar-ID för upp till 32 talare, på över 90 språk och i filer som är upp till 10 timmar långa.

Två alternativ utökar standardresultatet för diariseringsprocessen. För samtalsinspelningar märker detect_speaker_roles=true talare som agent och kund i stället för med anonyma nummer. Om din workspace har registrerade talarprofiler kan use_speaker_library=true matcha upptäckta talare mot registrerade röster och förena diariseringsprocessen med identifiering i en och samma förfrågan. 

En parameter för diariseringsgränsvärde låter dig justera balansen mellan att dela upp talare för mycket och att slå ihop dem. När talarna redan är isolerade på separata ljudkanaler, till exempel i stereoinspelningar av samtal, flerkanalig transkribering tilldelar talare per kanal och hoppar över diariseringsprocessen helt.

Guiden Kom igång med Speech to Text går igenom den första integrationen steg för steg. För reglerade driftsättningar uppfyller plattformen SOC 2, ISO 27001, PCI DSS L1 och HIPAA, med EU-baserad datalagring och ett läge utan datalagring.

Redo att bygga in talardiarisering i dina system? Börja med att hämta din API-nyckel eller titta på ElevenLabs dokumentation om du vill veta mer.

Vanliga frågor

Liknande artiklar

Skapa med AI-ljud av högsta kvalitet