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
Diaryzacja mówców przetwarza strumień audio z nieznaną liczbą osób mówiących i tworzy 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 od 1:15. System nie wie, kim są mówcy, ale rozpoznaje, że to różne osoby, i zachowuje spójne oznaczenia w całym nagraniu.
To właśnie sprawia, że audio z wieloma mówcami staje się 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ł.
Ten przewodnik wyjaśnia, jak działa diaryzacja, czym różni się od pokrewnych technik, takich jak segmentacja i identyfikacja, jakie narzędzia open source ją obsługują oraz jak ocenić jakość działania systemu diaryzacji.
Podsumowanie
- Diaryzacja mówców dzieli nagranie audio według tego, kto mówi, tworząc oznaczone wypowiedzi bez identyfikowania kogokolwiek z imienia i nazwiska.
- Diaryzacja mówców różni się od segmentacji mówców, która wykrywa zmiany mówcy, oraz identyfikacji mówców, która dopasowuje głosy do prawdziwych nazwisk.
- Jakość diaryzacji mierzy się współczynnikiem błędu diaryzacji (DER), który ocenia ogólną dokładność, oraz współczynnikiem błędu Jaccarda (JER), który sprawdza, czy ta dokładność utrzymuje się dla każdego mówcy.
Czym jest diaryzacja mówców i jak działa?
Diaryzacja mówców to proces dzielenia strumienia audio na segmenty zależnie od tego, kto mówi. Transkrypcja z diaryzacją mówców oznacza każdy segment audio tożsamością mówcy. Krótko mówiąc, odpowiada na pytanie: „Kto mówił i kiedy?”.
Surowa transkrypcja spotkania zawiera słowa, a transkrypcja z diaryzacją mówi, że mówca 1 zadał pytanie, mówca 2 na nie odpowiedział, a mówca 3 przerwał w połowie.
Większość systemów diaryzacji mówców działa w czterech etapach:

Przyjrzyjmy się bliżej każdemu z tych etapów.
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 następnego etapu trafiają tylko segmenty audio zawierające faktyczną mowę.
Wszelkie błędy na tym etapie będą się przenosić na kolejne etapy.
Segmentacja
Segmenty zawierające mowę są następnie dzielone w miejscach, gdzie mówca prawdopodobnie się zmienia, na przykład przy zmianie barwy głosu, pauzie między wypowiedziami lub zmianie wzorca wysokości dźwięku. Większość systemów wykrywa te punkty zmiany bezpośrednio, porównując cechy akustyczne po obu stronach potencjalnej granicy.
Niektóre narzędzia segmentacji dzielą audio na krótkie, równe okna, na przykład dwusekundowe fragmenty, a potem polegają na etapie grupowania, który łączy sąsiadujące okna należące do tego samego mówcy.
Wyodrębnianie embeddingów
Każdy segment mowy jest przekształcany w embedding mówcy, czyli wektor liczbowy opisujący cechy głosu osoby mówiącej w danym segmencie. Embeddingi tego samego mówcy tworzą skupiska blisko siebie w przestrzeni wektorowej, a embeddingi różnych mówców znajdują się dalej od siebie.
Grupowanie
Embeddingi są następnie grupowane, tak 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ą określić, 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 zakresów czasu, zwykle wraz z transkrypcją. Na przykład transkrypcja z diaryzacją 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] Oczywiście, już to sprawdzam.
Oznaczenia są anonimowe i spójne wewnętrznie. Speaker_0 to ten sam głos za każdym razem, gdy się pojawia, ale system nie wie, że speaker_0 ma na imię Fergal. Przypisywanie prawdziwych tożsamości to inne zadanie, które omawiamy poniżej.
Kluczowe różnice między segmentacją a identyfikacją mówców
Segmentacja i identyfikacja mówców są ściśle powiązane z diaryzacją, więc te trzy pojęcia często są ze sobą mylone.
Każde z nich rozwiązuje nieco inny problem, dlatego przy ocenie narzędzi warto rozumieć te różnice.
Jak wyjaśniliśmy wcześniej, segmentacja mówców to wczesny etap diaryzacji. Wykrywa granice, w których następuje zmiana z jednego głosu na drugi, bez przypisywania oznaczeń. Segmentacja wskazuje, że zmiana nastąpiła w 0:42. Diaryzacja rozwija ten proces: grupuje powstałe segmenty i tworzy w pełni oznaczony wynik, dzięki czemu wiadomo, ż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 diaryzacją, ale często się je łączy. Identyfikacja określa, kim faktycznie są mówcy. System identyfikacji porównuje głosy z zarejestrowanymi wzorcami głosu, używając bazy znanych mówców do zwrócenia ich tożsamości. Po identyfikacji speaker_0 i speaker_1 stają się „Fergalem” i „Ericiem”.
Wiele produktów łączy te narzędzia, aby tworzyć pełniejszą końcową transkrypcję. Narzędzie do spotkań może robić to automatycznie, nawet pobierając dane, takie jak nazwa ustawiona przez daną osobę w Teams lub Meet, aby wypowiedzi każdego uczestnika były przypisane do nazwiska bez ręcznej weryfikacji.

Popularne narzędzia i biblioteki open source do diaryzacji mówców
Narzędzia open source do diaryzacji mówców warto rozważyć, gdy potrzebujesz kontroli, elastyczności lub wdrożenia lokalnego. Najlepszy wybór zależy od rodzaju obsługiwanego audio — rozmów telefonicznych, spotkań, podcastów czy transmisji — wymagań dotyczących opóźnień oraz czasu, jaki możesz przeznaczyć na prace techniczne.
Oto kilka najpopularniejszych opcji.
Pyannote.audio
Pyannote.audio to oparty na PyTorch zestaw narzędzi stworzony specjalnie do diaryzacji mówców i jedna z najczęściej używanych opcji open source. Oferuje wstępnie wytrenowane pipeline’y obejmujące cały proces diaryzacji, w tym VAD, segmentację, embeddingi i grupowanie, a także elementy potrzebne do trenowania lub dostrajania modeli na własnych danych.
Jego wstępnie wytrenowane modele są udostępniane przez Hugging Face i często służą jako warstwa diaryzacji w większych projektach transkrypcji.
WhisperX
WhisperX łączy Whisper od OpenAI z ASR, diaryzacją i wymuszonym dopasowaniem. Sam Whisper tworzy dobre transkrypcje, ale nie przypisuje oznaczeń mówców, a jego znaczniki czasu są tylko przybliżone. WhisperX dodaje dopasowanie znaczników czasu na poziomie słów oraz integruje diaryzację 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 diaryzację jako część swojego szerszego frameworka Conversational AI. Udostępnia trenowalne modele diaryzacji, w tym podejścia end-to-end obsługujące nakładającą się mowę, i jest przeznaczony dla zespołów budujących własne systemy mowy na dużą skalę na infrastrukturze GPU.
Każde z tych narzędzi wymaga zarządzania infrastrukturą diaryzacji, w tym wdrażaniem modeli, skalowaniem, monitorowaniem i aktualizacjami. Dla zespołów, które nie chcą tego dodatkowego obciążenia operacyjnego, zarządzane API do diaryzacji mowy są prostszą alternatywą. Mogą integrować się z istniejącymi workflow lub obsługiwać cały proces diaryzacji, dlatego dobrze sprawdzają się w zastosowaniach produkcyjnych, takich jak analityka obsługi klienta, transkrypcja spotkań i przetwarzanie podcastów.
Diaryzacja w czasie rzeczywistym: wyzwania i zastosowania
Diaryzacja w czasie rzeczywistym jest znacznie trudniejsza niż diaryzacja gotowego nagrania, ponieważ system musi podejmować decyzje przy niepełnym kontekście.
System offline widzi całe nagranie, zanim podejmie jakąkolwiek decyzję. Może porównać głos z 2. minuty z głosem z 40. minuty i pewnie stwierdzić, że należy do tego samego mówcy, ponieważ ma jednocześnie dostęp do obu fragmentów. System działający w czasie rzeczywistym nie ma tego komfortu: musi oznaczać mowę w chwili, gdy się pojawia, 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 w przód, dotrzymanie krótszych czasów odpowiedzi bezpośrednio obniża dokładność.
- Nakładająca się mowa: Gdy ludzie mówią jednocześnie, system mogący ponownie przetworzyć audio mógłby to rozdzielić. System czasu rzeczywistego musi przypisać je do jednego oznaczenia albo na bieżąco korzystać ze specjalistycznych modeli uwzględniających nakładanie się mowy.
- Krótkie wypowiedzi: Szybkie „tak” lub „proszę mówić” ledwo daje systemowi wystarczającą próbkę głosu, a bez otaczającego kontekstu musi on od razu przypisać oznaczenie.
Mimo tych trudności niektóre aplikacje nie mogą czekać na koniec nagrania. Napisy na żywo dla spotkań i transmisji wymagają oznaczeń mówców, gdy ci mówią. Oprogramowanie call center przekazujące wskazówki agentom w trakcie rozmowy musi na bieżąco 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 z tych przypadków system nieco mniej dokładny, ale natychmiastowy, jest lepszy niż dokładniejszy, lecz opóźniony.
W przypadku zadań, które naprawdę nie wymagają oznaczeń w czasie rzeczywistym, takich jak analityka, weryfikacja zgodności czy tworzenie transkrypcji, diaryzacja wsadowa pozostaje lepszym wyborem, ponieważ jest znacznie dokładniejsza.
Jak oceniać jakość diaryzacji mówców
Przy mierzeniu dokładności diaryzacji najważniejsze są dwie metryki: współczynnik błędu diaryzacji (DER), który odzwierciedla ogólną dokładność, oraz współczynnik błędu Jaccarda (JER), który sprawdza, czy ta dokładność utrzymuje się dla każdego mówcy.
DER oblicza udział całkowitego czasu mowy przypisany nieprawidłowo. Łą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ł to jako ciszę.
- Pomylenie mówcy: Mowa została wykryta, ale przypisana niewłaściwemu mówcy.
DER = (fałszywie wykryta mowa + 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 w tych trzech kategoriach. Im niższy wynik, tym lepiej. Wyniki można porównywać tylko wtedy, gdy są mierzone na tych samych danych i w tych samych warunkach. DER bardzo różni się zależnie od jakości audio, liczby mówców i stopnia nakładania się wypowiedzi w nagraniu.
Współczynnik błędu Jaccarda (JER) mierzy dokładność diaryzacji 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 któremukolwiek z nich.
Wyobraź sobie na przykład 60-minutowe spotkanie, podczas którego mówca A mówi przez 50 minut, a mówca B przez 10. System diaryzacji poprawnie oznacza 48 z 50 minut mówcy A, ale tylko 4 z 10 minut mówcy B. Ogólny DER może nadal wyglądać całkiem dobrze, ponieważ większość spotkania należy do mówcy A. JER nadaje słabemu wynikowi mówcy B taką samą wagę, 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 jest średnią tych 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 diaryzacji: DER pokazuje ogólną dokładność, a JER to, czy utrzymuje się ona dla każdego uczestnika, także osób mówiących rzadziej.
Testowanie na audio reprezentatywnym dla produkcji
Oceniając system diaryzacji mówców, obliczaj DER i JER na audio odpowiadającym faktycznym warunkom wdrożenia: typowej liczbie mówców, jakości audio i skali nakładania się wypowiedzi.
Opublikowane wyniki benchmarków mogą być mierzone na czystych, kontrolowanych zbiorach danych, takich jak nagrania studyjne, które rzadko brzmią jak prawdziwe nagrania rozmów czy spotkania na żywo. System osiągający dobre wyniki w benchmarkach może mimo to działać znacznie gorzej na zaszumionym, nakładającym się audio z rzeczywistego świata. Przetestuj go na własnych danych, zanim wybierzesz produkt do diaryzacji.
Zacznij korzystać z ElevenAPI do diaryzacji mówców
Jeśli chcesz stworzyć funkcję transkrypcji z obsługą wielu mówców, Scribe v2 od ElevenLabs udostępnia diaryzację 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 plikach o długości do 10 godzin.
Dwie opcje rozszerzają standardowy wynik diaryzacji. W przypadku nagrań rozmów detect_speaker_roles=true oznacza mówców jako agenta i klienta zamiast anonimowymi numerami. Jeśli Twój obszar roboczy ma zarejestrowane profile mówców, use_speaker_library=true może dopasować wykrytych mówców do zarejestrowanych głosów, łącząc diaryzację i identyfikację w jednym żądaniu.
Parametr progu diaryzacji pozwala dostosować równowagę między nadmiernym dzieleniem a łączeniem mówców. Gdy mówcy są już odseparowani na osobnych kanałach audio, jak w stereofonicznych nagraniach rozmów, transkrypcja wielokanałowa przypisuje mówców według kanału i całkowicie pomija diaryzację.
Przewodnik Speech to Text — szybki start przeprowadzi cię krok po kroku przez pierwszą integrację. W przypadku wdrożeń regulowanych platforma jest zgodna z SOC 2, ISO 27001, PCI DSS L1 i HIPAA, a także oferuje rezydencję danych w UE i tryb zerowej retencji.
Chcesz dodać diaryzację mówców do swoich systemów? Zacznij od pobrania klucza API lub zajrzyj do dokumentacji ElevenLabs, aby dowiedzieć się więcej.




