Czym jest diaryzacja mówców? Jak działa i gdzie się jej używa
- Autor
- Jack Limebear
- Opublikowano
- Ostatnia aktualizacja
PosłuchajPosłuchaj tego artykułu
Diarizacja mówców przetwarza strumień audio z nieznaną liczbą rozmówców na oś czasu oznaczonych segmentów: mówca A od 0:00 do 0:42, mówca B od 0:42 do 1:15, a potem znów mówca A. System nie wie, kim są rozmówcy, ale rozpoznaje, że to różne osoby, i konsekwentnie oznacza ich w całym nagraniu.
To właśnie sprawia, że audio z wieloma rozmówcami jest użyteczne. Notatki ze spotkań, analityka call center, transkrypcje wywiadów, edycja podcastów i dokumentacja prawna wymagają wiedzy nie tylko o tym, co powiedziano, ale też kto to powiedział.
Z tego przewodnika dowiesz się, jak działa diarizacja, czym różni się od pokrewnych technik, takich jak segmentacja i identyfikacja, jakie narzędzia open source ją obsługują oraz jak ocenić skuteczność systemu diarizacji.
Podsumowanie
- Diarizacja mówców dzieli nagranie audio według tego, kto mówi, tworząc oznaczone wypowiedzi bez identyfikowania osób z imienia.
- Diarizacja mówców różni się od segmentacji mówców, która wykrywa zmiany rozmówcy, oraz identyfikacji mówców, która dopasowuje głosy do prawdziwych nazwisk.
- Skuteczność diarizacji mierzy się współczynnikiem błędu diarizacji (DER), określającym ogólną dokładność, oraz współczynnikiem błędu Jaccarda (JER), który sprawdza dokładność dla każdego mówcy.
Czym jest diarizacja mówców i jak działa?
Diarizacja mówców to dzielenie strumienia audio na segmenty według tego, kto mówi. Transkrypcja z diarizacją oznacza każdy segment audio tożsamością mówcy. Mówiąc prościej, odpowiada na pytanie: „Kto mówił i kiedy?”.
Surowa transkrypcja spotkania zawiera słowa, a transkrypcja z diarizacją informuje, że mówca 1 zadał pytanie, mówca 2 odpowiedział, a mówca 3 przerwał w połowie.
Większość systemów diarizacji mówców działa w czterech etapach:

Przyjrzyjmy się tym etapom bliżej.
Wykrywanie aktywności głosowej (VAD)
Wykrywanie aktywności głosowej oddziela mowę od wszystkiego innego: ciszy, szumu tła, muzyki czy kliknięć klawiatury. Do kolejnego etapu trafiają tylko segmenty audio zawierające faktyczną mowę.
Błędy na tym etapie przeniosą się na wszystkie kolejne.
Segmentacja
Segmenty zawierające mowę są następnie dzielone w miejscach, w których rozmówca prawdopodobnie się zmienia, np. przy zmianie barwy głosu, pauzie między wypowiedziami lub zmianie wzorca wysokości dźwięku. Większość systemów wykrywa te punkty bezpośrednio, porównując cechy akustyczne po obu stronach potencjalnej granicy.
Niektóre narzędzia do segmentacji dzielą audio na krótkie, równe okna, np. dwusekundowe fragmenty, a następnie na etapie grupowania łączą sąsiadujące okna należące do tego samego mówcy.
Ekstrakcja embeddingów
Każdy segment mowy jest zamieniany na embedding mówcy, czyli wektor liczbowy opisujący cechy głosu osoby mówiącej w danym segmencie. Embeddingi tego samego mówcy skupiają się blisko siebie w przestrzeni wektorowej, a embeddingi różnych mówców są bardziej odległe.
Grupowanie
Embeddingi są następnie grupowane, aby segmenty tego samego mówcy miały wspólne oznaczenie. System zwykle nie zna z góry liczby mówców, więc algorytm grupowania musi ją wywnioskować, decydując, czy nieco inaczej brzmiący segment należy do nowego mówcy, czy do tej samej osoby mówiącej innym tonem.

Wynikiem jest zestaw oznaczeń mówców przypisanych do przedziałów czasu, zwykle połączony z transkrypcją. Na przykład transkrypcja z diarizacją rozmowy dwóch osób wygląda tak:
- [speaker_0] Dziękuję za telefon. Jak mogę pomóc?
- [speaker_1] Dzień dobry, dzwonię w sprawie faktury z zeszłego miesiąca.
- [speaker_0] Jasne, już to sprawdzam.
Oznaczenia są anonimowe i spójne wewnętrznie. Speaker_0 to za każdym razem ten sam głos, ale system nie wie, że speaker_0 ma na imię Fergal. Przypisanie prawdziwej tożsamości to osobne zadanie, które omawiamy poniżej.
Kluczowe różnice między segmentacją a identyfikacją mówców
Segmentacja i identyfikacja mówców ściśle wiążą się z diarizacją, dlatego te trzy pojęcia często są ze sobą mylone.
Każde z nich rozwiązuje nieco inny problem, dlatego warto rozumieć różnice przy ocenie narzędzi.
Jak wyjaśniliśmy wcześniej, segmentacja mówców to wczesny etap diarizacji. Wykrywa granice, w których mowa przechodzi z jednego głosu na drugi, bez przypisywania oznaczeń. Segmentacja mówi, że zmiana nastąpiła w 0:42. Diarizacja idzie dalej: grupuje powstałe segmenty i tworzy w pełni oznaczony wynik, dzięki któremu wiesz, że głos w 1:15 to ten sam głos, który mówił na początku nagrania.
Identyfikacja mówców to osobna funkcja poza diarizacją, choć często się je łączy. Identyfikacja określa, kim faktycznie są rozmówcy. System identyfikacji porównuje głosy z zarejestrowanymi wzorcami głosu i zwraca tożsamości na podstawie znanych mówców. Po identyfikacji speaker_0 i speaker_1 stają się „Fergalem” i „Ericiem”.
Wiele produktów łączy te narzędzia, aby stworzyć pełniejszą końcową transkrypcję. Narzędzie do spotkań może robić to automatycznie, nawet pobierając np. nazwę ustawioną przez daną osobę w Teams lub Meet, aby przypisać wypowiedzi każdego uczestnika po imieniu bez ręcznej weryfikacji.

Popularne narzędzia i biblioteki open source do diarizacji mówców
Narzędzia open source do diarizacji mówców warto rozważyć, gdy potrzebujesz kontroli, elastyczności lub lokalnego wdrożenia. Najlepszy wybór zależy od rodzaju obsługiwanego audio (rozmowy telefoniczne, spotkania, podcasty, transmisje), wymagań dotyczących opóźnień i czasu, który możesz przeznaczyć na prace inżynieryjne.
Oto kilka najpopularniejszych opcji.
Pyannote.audio
Pyannote.audio to oparty na PyTorch zestaw narzędzi stworzony specjalnie do diarizacji mówców i jedna z najczęściej używanych opcji open source. Oferuje wstępnie wytrenowane pipeline'y obejmujące cały stos diarizacji, w tym VAD, segmentację, embeddingi i grupowanie, a także komponenty do trenowania lub dostrajania modeli na własnych danych.
Jego wstępnie wytrenowane modele są dystrybuowane przez Hugging Face i często służą jako warstwa diarizacji w większych projektach transkrypcji.
WhisperX
WhisperX łączy Whisper od OpenAI, ASR, z diarizacją i wymuszonym wyrównaniem. Sam Whisper tworzy dobre transkrypcje, ale nie przypisuje oznaczeń mówców, a jego znaczniki czasu są tylko przybliżone. WhisperX dodaje wyrównanie znaczników czasu na poziomie słów i integruje diarizację opartą na pyannote, tworząc transkrypcje, w których każde słowo ma dokładny znacznik czasu i oznaczenie mówcy.
NVIDIA NeMo
NVIDIA NeMo obejmuje diarizację jako część szerszego frameworka Conversational AI. Udostępnia modele diarizacji, które można trenować, w tym rozwiązania end-to-end obsługujące nakładającą się mowę. Jest przeznaczony dla zespołów budujących własne systemy mowy na dużą skalę w infrastrukturze GPU.
Każde z tych narzędzi wymaga zarządzania infrastrukturą diarizacji, w tym wdrażaniem modeli, skalowaniem, monitorowaniem i aktualizacjami. Dla zespołów, które nie chcą tego dodatkowego obciążenia, zarządzane API diarizacji mowy są prostszą alternatywą. Mogą integrować się z istniejącymi workflow lub obsługiwać cały pipeline diarizacji, więc dobrze sprawdzają się w zastosowaniach produkcyjnych, takich jak analityka obsługi klienta, transkrypcja spotkań i przetwarzanie podcastów.
Diarizacja w czasie rzeczywistym: wyzwania i zastosowania
Diarizacja w czasie rzeczywistym jest znacznie trudniejsza niż diarizacja gotowego nagrania, ponieważ system musi podejmować decyzje przy niepełnym kontekście.
System offline widzi całe nagranie, zanim podejmie decyzję. Może porównać głos z 2. minuty z głosem z 40. minuty i pewnie uznać, że to ten sam mówca, bo oba fragmenty ma dostępne jednocześnie. System działający w czasie rzeczywistym nie ma tego komfortu: musi oznaczyć mowę w chwili jej nadejścia, bez dostępu do tego, co zostanie powiedziane później, i z małą lub zerową możliwością zmiany podjętej decyzji.
Brak przyszłego kontekstu sprawia, że trzy konkretne problemy są o wiele trudniejsze do rozwiązania w czasie rzeczywistym:
- Opóźnienie a dokładność: Bez możliwości analizowania całej rozmowy wstecz i naprzód, krótszy czas odpowiedzi oznacza bezpośrednio niższą dokładność.
- Nakładająca się mowa: Gdy ludzie mówią jednocześnie, system mogący ponownie przetworzyć audio mógłby je rozdzielić. System działający w czasie rzeczywistym musi przypisać je do jednego oznaczenia albo na bieżąco korzystać ze specjalistycznych modeli uwzględniających nakładanie się mowy.
- Krótkie wypowiedzi: Krótkie „tak” lub „proszę mówić” daje systemowi zbyt mało głosu do analizy, a bez otaczającego kontekstu nadal musi od razu przypisać oznaczenie.
Mimo tych trudności niektóre zastosowania nie mogą czekać na koniec nagrania. Napisy na żywo dla spotkań i transmisji potrzebują oznaczeń mówców w trakcie wypowiedzi. Oprogramowanie call center podpowiadające wskazówki agentom podczas rozmowy musi w czasie rzeczywistym wiedzieć, jakich słów używa klient. Agenci głosowi obsługujący rozmowy z wieloma uczestnikami muszą bez opóźnień śledzić, kto o co pyta. W każdym przypadku system nieco mniej dokładny, ale natychmiastowy, jest lepszy niż dokładniejszy, ale opóźniony.
W przypadku zadań, które naprawdę nie wymagają oznaczeń w czasie rzeczywistym, takich jak analityka, kontrola zgodności i generowanie transkrypcji, diarizacja wsadowa pozostaje lepszym wyborem, ponieważ jest znacznie dokładniejsza.
Jak oceniać skuteczność diarizacji mówców
Przy pomiarze dokładności diarizacji najważniejsze są dwie metryki: współczynnik błędu diarizacji (DER), który pokazuje ogólną dokładność, oraz współczynnik błędu Jaccarda (JER), który sprawdza, czy dokładność utrzymuje się dla każdego mówcy.
DER oblicza udział całkowitego czasu mowy błędnie przypisanego do mówcy. Łączy trzy rodzaje błędów:
- Fałszywie wykryta mowa: System oznaczył segment jako mowę, choć nikt nie mówił.
- Pominięta mowa: Ktoś mówił, ale system oznaczył ten fragment jako ciszę.
- Pomylenie mówcy: Mowa została wykryta, ale przypisana niewłaściwemu mówcy.
DER = (fałszywy alarm + pominięta mowa + pomylenie mówcy) / całkowity czas mowy
DER na poziomie 10% oznacza, że błędy stanowią jedną dziesiątą całkowitego czasu mowy we wszystkich trzech kategoriach. Niższy wynik jest lepszy, a wyniki można porównywać tylko wtedy, gdy zmierzono je na tych samych danych w tych samych warunkach. DER bardzo zależy od jakości audio, liczby mówców i stopnia nakładania się mowy w nagraniu.
Współczynnik błędu Jaccarda (JER) mierzy dokładność diarizacji osobno dla każdego mówcy, a następnie uśrednia wynik dla wszystkich mówców. Dla każdego mówcy referencyjnego ewaluator dopasowuje najbliższe oznaczenie mówcy z systemu i porównuje czas ich prawidłowego nakładania się z całkowitym czasem przypisanym do któregokolwiek z nich.
Wyobraź sobie 60-minutowe spotkanie, podczas którego mówca A mówi przez 50 minut, a mówca B przez 10. System diarizacji poprawnie oznacza 48 z 50 minut mówcy A, ale tylko 4 z 10 minut mówcy B. Ogólny DER może wyglądać całkiem dobrze, bo większość spotkania należy do mówcy A. JER uwzględnia słaby wynik mówcy B w takim samym stopniu, ponieważ ocenia mówcę A i B niezależnie przed uśrednieniem ich wyników.
JER_speaker = 1 - (correct_overlap / (ref_time + sys_time - correct_overlap))
Końcowy JER to średnia współczynników błędu dla poszczególnych mówców:
JER = (1 / N) * Σ[JER_speaker_i] dla i = 1..N
Śledzenie zarówno DER, jak i JER daje pełniejszy obraz dokładności diarizacji: DER pokazuje ogólną dokładność, a JER, czy utrzymuje się ona dla każdego uczestnika, także tych mówiących rzadziej.
Testowanie na audio reprezentatywnym dla produkcji
Oceniając system diarizacji mówców, oblicz DER i JER na audio odpowiadającym rzeczywistym warunkom wdrożenia: typowej liczbie mówców, jakości audio i poziomowi nakładania się rozmów.
Opublikowane wyniki benchmarków mogą być mierzone na czystych, kontrolowanych zbiorach danych, takich jak nagrania studyjne, które rzadko odpowiadają rzeczywistym nagraniom rozmów lub spotkań na żywo. System osiągający dobre wyniki w benchmarkach może znacząco gorzej działać na zaszumionym, nakładającym się audio z realnego świata. Przetestuj go na własnych danych, zanim wybierzesz produkt do diarizacji.
Zacznij korzystać z ElevenAPI do diarizacji mówców
Jeśli chcesz stworzyć funkcję transkrypcji z obsługą wielu mówców, Scribe v2 od ElevenLabs udostępnia diarizację mówców przez jedno API Speech to Text. Wyślij audio do endpointu z diarize=true, a odpowiedź JSON oznaczy każde słowo identyfikatorem mówcy — dla maksymalnie 32 mówców, w ponad 90 językach i w plikach trwających do 10 godzin.
Dwie opcje rozszerzają standardowy wynik diarizacji. W przypadku nagrań rozmów detect_speaker_roles=true oznacza mówców jako agenta i klienta zamiast anonimowymi numerami. Jeśli w twoim obszarze roboczym zarejestrowano profile mówców, use_speaker_library=true może dopasować wykrytych mówców do zapisanych głosów, łącząc diarizację i identyfikację w jednym żądaniu.
Parametr progu diarizacji pozwala dostosować kompromis między nadmiernym dzieleniem a łączeniem mówców. Gdy mówcy są już odseparowani na osobnych kanałach audio, np. w nagraniach rozmów stereo, transkrypcja wielokanałowa przypisuje mówców według kanału i całkowicie pomija diarizację.
Przewodnik Speech to Text — szybki start prowadzi krok po kroku przez pierwszą integrację. W przypadku regulowanych wdrożeń platforma spełnia wymogi SOC 2, ISO 27001, PCI DSS L1 i HIPAA, a także oferuje rezydencję danych w UE oraz tryb zerowej retencji.
Chcesz wdrożyć diarizację mówców w swoich systemach? Zacznij od pobrania klucza API lub zajrzyj do dokumentacji ElevenLabs, aby dowiedzieć się więcej.


