Transkrypcja mówi, co zostało powiedziane. W wywiadach, spotkaniach i podcastach równie ważne jest to, kto mówił — badacze mowy nazywają to diaryzacją mówców. Od wersji iPhone 1.8.5, Mac App Store 1.3.2 i Mac DMG 1.5.1 Whisper Notes wykonuje diaryzację w całości lokalnie.
Poniżej wyjaśniamy, jak to działa, pokazujemy wyniki benchmarku względem chmurowych danych referencyjnych i opisujemy jeden trudny przypadek, którego nie dało się usunąć samą zmianą modelu — oraz nasze praktyczne rozwiązanie.
Co robi diaryzacja mówców
Otwórz notatkę — własne nagranie, zaimportowany plik audio lub wideo albo nagranie spotkania — i naciśnij przycisk mówców. Po kilku sekundach każdy akapit otrzyma etykietę mówcy i znacznik czasu.
Etykiety mówców na Macu i iPhonie. Dotknięcie zdania przenosi odtwarzanie do tego momentu.
Początkowo etykiety nazywają się „Mówca 1” i „Mówca 2”. Zmiana jednej nazwy aktualizuje cały transkrypt. Dotknięcie dowolnego zdania przenosi dźwięk dokładnie do tego miejsca, więc cytat można łatwo porównać z oryginalnym głosem.
Zmiana nazwy mówcy aktualizuje każdy akapit notatki.
W nagraniach spotkań rozpoznawanie mówców uruchamia się automatycznie po zakończeniu rozmowy; można je wyłączyć w Ustawieniach. Etykiety pozostają przy eksporcie: Kopiuj transkrypcję z mówcami przenosi je do schowka, a pliki SRT i VTT zachowują je w napisach.
Diaryzacja analizuje głosy, nie słowa, dlatego działa tak samo w ponad 100 językach, które aplikacja potrafi transkrybować.
Model 19 MB na Neural Engine
Diaryzacja odpowiada na pytanie „kto i kiedy mówił” w trzech krokach. Dźwięk jest dzielony na segmenty mowy. Każdy segment staje się odciskiem głosu — małym wektorem opisującym sam głos, a nie wypowiadane słowa. Następnie odciski są grupowane: segmenty w tym samym klastrze otrzymują jedną etykietę.
Whisper Notes używa potoku pyannote community-1 przekonwertowanego do Core ML, dzięki czemu oba etapy działają na Neural Engine. Jednorazowo pobierany model ma 19 MB, a rozmowa trwająca 5.7 minuty jest przetwarzana na Macu z serii M w 2–4 sekundy.
Dźwięk → segmenty mowy → odciski głosu → klastry → etykiety
Każdy etap odbywa się na urządzeniu.
Przy diaryzacji ma to szczególne znaczenie. Odcisk głosu jest cechą biometryczną — identyfikuje osobę podobnie jak odcisk palca. Praca lokalna oznacza, że odciski głosu Twoje, współpracowników i rozmówców są obliczane, grupowane i usuwane na urządzeniu. Nigdzie ich nie wysyłamy.
Co zmierzyliśmy
Utrzymujemy stały benchmark diaryzacji złożony z dwóch plików. Dane referencyjne pochodzą z chmurowej usługi ASR i diaryzacji ElevenLabs, a następnie są ręcznie sprawdzane. Ocena przypisuje każde 10 ms mowy do mówcy i wybiera najlepsze odwzorowanie wyniku na wzorzec. Dwa pliki to mała próba, więc liczby traktujemy jako wskazówkę, nie ostateczny werdykt.
Pierwszy plik reprezentuje zwykły przypadek: pięciominutowy angielski podcast z dwiema wyraźnie różnymi barwami głosu. Tak wygląda większość wywiadów, podcastów i spotkań jeden na jeden.
| Angielski podcast, dwóch mówców (5 min) | Wynik |
|---|---|
| Przypisanie na poziomie ramek (rozdzielczość 10 ms) | 96.7% |
| Dokładność zdań (to, co czytasz) | 99.1% |
| Czas przetwarzania, Neural Engine serii M | 2–4 s |
Pozostałe 0.9% to trzy przesunięcia granic o łącznej długości 3.4 sekundy, czyli w granicach rozdzielczości samego wzorca. Dla takiego materiału wynik lokalny odpowiada usłudze chmurowej, która utworzyła dane referencyjne.
Trudny przypadek
Drugi plik jest celowo trudny: dwa podobne męskie głosy w pomieszczeniu z pogłosem i prowadzący, który wtrąca się 19 razy, średnio na 2.3 sekundy. Gość mówi przez 272 sekundy, prowadzący przez 43. Taki profil akustyczny załamuje diaryzację w każdym języku: podobne głosy wymieniają krótkie wypowiedzi.
Automatyczne grupowanie tutaj się załamuje. Odciski są tak blisko siebie, że algorytm je łączy i przypisuje niemal całą rozmowę do jednej etykiety. Nagranie okazuje się chińskim programem z wywiadem, co pozwoliło sprawdzić oczywistą hipotezę — czy model wyspecjalizowany językowo zadziała lepiej. W potoku CPU porównaliśmy dwa modele uczone specjalnie na chińskiej mowie:
| Model | Angielski podcast | Trudny przypadek* | Czas (audio 5.7 min) |
|---|---|---|---|
| pyannote community-1 (nasz, Neural Engine) | 96.7% | 81–82% | 2–4 s |
| CAM++ (trening na chińskim, CPU) | 93.9% | 81.2% | 36–103 s |
| ERes2NetV2 (trening na chińskim, CPU) | — | 80.5% | 220–290 s |
* Przypisanie na poziomie ramek w trudnym pliku przy podanej liczbie mówców. Bez niej każdy model zbiega do jednego mówcy.
Oba modele załamują się tak samo, choć wymagają 10–100 razy więcej obliczeń. Trudność jest akustyczna, nie językowa — ograniczeniem jest to, co obecne embeddingi głosu potrafią odróżnić, niezależnie od języka.
Podaliśmy więc potokowi fakt, którego nie umie pewnie wywnioskować: liczbę osób w pomieszczeniu. Po wybraniu w menu od 2 do 6 mówców dokładność zdań w trudnym pliku rośnie po załamaniu do 89%. Automatyczne wykrywanie pozostaje domyślne, bo sprawdza się w typowych nagraniach.
Ponowne rozpoznawanie z dokładną liczbą mówców. To samo menu eksportuje SRT i VTT z etykietami.
Korekta krótkich wtrąceń
Po ustaleniu liczby mówców mniej więcej połowa pozostałych błędów dotyczyła wtrąceń krótszych niż trzy sekundy. Dwusekundowy fragment daje modelowi embeddingów mało sygnału, a przy szybkiej wymianie zdań odcisk przejmuje część sąsiedniego mówcy.
Po grupowaniu potok ponownie sprawdza każde zdanie krótsze niż 3.5 sekundy: przelicza odcisk z maską obejmującą dokładnie ramki tego zdania, porównuje go z punktem odniesienia każdego mówcy — średnią z jego najdłuższych wypowiedzi — i zmienia etykietę tylko przy wyraźnej przewadze. Wykorzystuje istniejący model, więc nie ma dodatkowego pobierania.
| Końcowa dokładność zdań | Przed korektą | Po korekcie |
|---|---|---|
| Trudny przypadek (podana liczba) | 89.0% | 94.8% |
| Angielski podcast (automatycznie) | 98.5% | 99.1% |
Próg jest ostrożny: w obu plikach korekta zmieniła 21 etykiet i nie wprowadziła żadnego nowego błędu.
Ograniczenia
• Etykiety pojawiają się po zakończeniu nagrania, nie w trakcie rozmowy. Jeśli podczas spotkania potrzebujesz napisów na żywo z nazwami mówców, lepszym narzędziem będzie usługa chmurowa, taka jak Otter lub Notta.
• Nakładająca się mowa otrzymuje jedną etykietę na zdanie.
• Podobne głosy nadal są trudne. 94.8% w naszym trudnym pliku to obecny pułap z podaną liczbą mówców, a nie rozwiązany problem.
Dostępność
Rozpoznawanie mówców jest częścią jednorazowego zakupu za $6.99 wraz z trzema silnikami transkrypcji — Parakeet V3, Whisper Large V3 Turbo i SenseVoice — oraz lokalną edycją AI. Nie ma osobnego planu ani konta.
• iPhone: App Store, wersja 1.8.5 lub nowsza.
• Mac App Store: wersja 1.3.2 lub nowsza.
• Bezpośrednie pobranie na Maca (DMG): wersja 1.5.1 lub nowsza z whispernotes.app, z bezpłatną wersją próbną.
O działaniu samego nagrywania spotkań przeczytasz w naszym artykule o transkrypcji spotkań offline.