Transkript govori što je rečeno. Kod intervjua, sastanaka i podcasta druga je polovica posla znati tko je to rekao — problem koji se u istraživanju govora naziva dijarizacija govornika. Od verzija iPhone 1.8.5, Mac App Store 1.3.2 i Mac za izravno preuzimanje 1.5.1, Whisper Notes dijarizaciju izvodi u potpunosti na uređaju.
U ovom članku objašnjavamo kako radi, objavljujemo rezultate benchmarka u odnosu na referencu izrađenu u oblaku te opisujemo jedini način na koji sustav griješi, a koji nismo uspjeli ukloniti inženjerskim zahvatima — i što smo učinili umjesto toga.
Što značajka radi
Otvorite bilješku — snimku, uvezenu audio ili video datoteku ili snimku sastanka — i dodirnite gumb za govornike. Nekoliko sekundi poslije svaki odlomak dobiva oznaku govornika i vremensku oznaku.
Oznake govornika na Macu i iPhoneu. Dodirnite rečenicu kako bi reprodukcija prešla na taj trenutak.
Oznake u početku glase Govornik 1 i Govornik 2. Kad jednu preimenujete, ažurira se cijeli transkript. Dodirnite bilo koju rečenicu kako bi reprodukcija zvuka prešla na točan trenutak; tako je jednostavno provjeriti citat prema izvornom glasu.
Preimenovanje govornika ažurira svaki odlomak u bilješci.
Kod snimaka sastanaka prepoznavanje govornika pokreće se automatski kad poziv završi; to se može isključiti u Postavkama. Oznake ostaju pri izvozu: Kopiraj transkript s govornicima prenosi ih u međuspremnik, a SRT i VTT datoteke u titlove.
Dijarizacija obrađuje glasove, a ne riječi. Zato jednako radi na više od 100 jezika koje aplikacija transkribira.
Model od 19 MB na Neural Engineu
Dijarizacija odgovara na pitanje „tko je govorio kada?” u tri koraka. Najprije dijeli zvuk na segmente s govorom. Zatim svaki segment pretvara u glasovni otisak — kompaktan vektor koji opisuje sam glas, a ne riječi. Na kraju grupira glasovne otiske: segmenti u istoj skupini dobivaju istu oznaku.
Whisper Notes koristi pyannoteov pipeline community-1, pretvoren u Core ML kako bi se obje faze izvodile na Neural Engineu. Jednokratno preuzimanje ima 19 MB, a razgovor od 5.7 minuta na Macu serije M obrađuje se za 2 do 4 sekunde.
Zvuk → segmenti s govorom → glasovni otisci → skupine → oznake
Svaki se korak izvodi na uređaju.
To je za dijarizaciju važnije nego za transkripciju. Glasovni je otisak biometrijski podatak: osobu prepoznaje poput otiska prsta. Kad pipeline radi lokalno, glasovni otisci vas, vaših kolega i osoba koje intervjuirate izračunavaju se, grupiraju i odbacuju na uređaju. Nikamo se ne šalju.
Što smo mjerili
Za dijarizaciju održavamo stalan benchmark s dvije datoteke. Referenca dolazi iz usluge u oblaku za ASR i dijarizaciju (ElevenLabs), a ručno je provjerena. Bodovanje svakih 10 ms govora pripisuje govorniku i uzima najbolje preslikavanje između rezultata i reference. Dvije su datoteke malen uzorak, pa brojke smatramo pokazateljima, a ne konačnim zaključkom.
Prva datoteka predstavlja uobičajen slučaj: petominutni podcast na engleskom s dva jasno različita glasa. Tako izgleda većina intervjua, podcasta i sastanaka udvoje.
| Podcast na engleskom s dva govornika (5 min) | Rezultat |
|---|---|
| Pripisivanje na razini okvira (razlučivost 10 ms) | 96.7% |
| Točnost po rečenici (ono što čitate) | 99.1% |
| Vrijeme obrade, Neural Engine serije M | 2–4 s |
Preostalih 0.9% čine tri pomaka na granicama rečenica, ukupno 3.4 sekunde — unutar razlučivosti same reference. Na takvom materijalu rezultat na uređaju odgovara usluzi u oblaku koja je izradila našu referencu.
Težak slučaj
Druga je datoteka namjerno teška: dva slična muška glasa u prostoriji s odjekom i voditelj koji upada u riječ 19 puta, u prosjeku po 2.3 sekunde. Gost govori 272 sekunde, a voditelj 43. Upravo taj akustički profil ruši dijarizaciju na bilo kojem jeziku: slični glasovi izmjenjuju kratke replike.
Automatsko grupiranje ovdje se urušava. Dva su glasovna otiska toliko blizu da ih algoritam spaja i gotovo cijeli razgovor pripisuje jednoj oznaci. Snimka je slučajno kineska emisija s intervjuom, što nam je omogućilo testirati očitu pretpostavku — bi li model specijaliziran za jezik bio bolji. U CPU pipelineu pokrenuli smo dva modela govornika posebno trenirana na kineskom govoru:
| Model | Podcast na engleskom | Težak slučaj* | Vrijeme (5.7 min zvuka) |
|---|---|---|---|
| pyannote community-1 (naš model, Neural Engine) | 96.7% | 81–82% | 2–4 s |
| CAM++ (treniran na kineskom, CPU) | 93.9% | 81.2% | 36–103 s |
| ERes2NetV2 (treniran na kineskom, CPU) | — | 80.5% | 220–290 s |
* Pripisivanje na razini okvira na teškoj datoteci uz zadan broj govornika. Bez tog podatka svi se modeli urušavaju prema jednom govorniku.
Oba se modela urušavaju na isti način uz 10 do 100 puta više računanja. Teškoća je akustička, a ne jezična — ograničenje je ono što današnji vektorski prikazi glasa mogu razlikovati na bilo kojem jeziku.
Time je otpalo očito rješenje i pojavilo se drugo: pipelineu dati činjenicu koju ne može zaključiti — broj ljudi u prostoriji. Sa zadanim brojem (opcija izbornika od 2 do 6) teška datoteka prelazi s potpunog urušavanja na 89% točnosti po rečenici. Automatsko prepoznavanje ostaje zadano jer je točno na uobičajenom materijalu.
Ponovno prepoznavanje s točnim brojem govornika. Isti izbornik izvozi SRT i VTT datoteke s oznakama govornika.
Ispravljanje kratkih upadica
Uz zadan broj približno polovica preostalih pogrešaka bila je u upadicama kraćima od tri sekunde. Isječak od dvije sekunde daje modelu za vektorski prikaz glasa vrlo malo signala; pri brzim izmjenama njegov glasovni otisak upija i dio susjednog govornika.
Zato nakon grupiranja pipeline ponovno provjerava svaku rečenicu kraću od 3.5 sekunde. Glasovni otisak ponovno računa s maskom koja pokriva točno okvire te rečenice, uspoređuje ga sa sidrom svakog govornika — prosjekom njegovih najduljih dionica govora — i mijenja oznaku samo kad je razlika odlučujuća. Ponovno upotrebljava postojeći model; nema dodatnog preuzimanja.
| Ukupna točnost po rečenici | Prije ispravljanja | Poslije |
|---|---|---|
| Težak slučaj (zadan broj govornika) | 89.0% | 94.8% |
| Podcast na engleskom (automatski) | 98.5% | 99.1% |
Prag je namjerno oprezan: na obje je datoteke ispravljač promijenio 21 oznaku bez uvođenja novih pogrešaka.
Ograničenja
• Oznake se pojavljuju nakon završetka snimanja, ne tijekom poziva. Ako vam tijekom sastanka trebaju titlovi uživo s imenima govornika, prikladnija je usluga u oblaku poput Otter ili Notta.
• Kada ljudi govore istodobno, svaka rečenica dobiva samo jednu oznaku.
• Slični glasovi i dalje su teški. Rezultat od 94.8% na našoj teškoj datoteci trenutačna je gornja granica uz zadan broj govornika, a ne riješen problem.
Dostupnost
Prepoznavanje govornika uključeno je u jednokratnu kupnju od $6.99, uz tri modela za transkripciju — Parakeet V3, Whisper Large V3 Turbo i SenseVoice — te lokalno AI uređivanje. Nema zasebne razine ni računa.
• iPhone: App Store, verzija 1.8.5 ili novija.
• Mac App Store: verzija 1.3.2 ili novija.
• Izravno preuzimanje za Mac (DMG): verzija 1.5.1 ili novija na whispernotes.app, uz besplatno probno razdoblje.
Kako funkcionira samo snimanje sastanaka, pročitajte u našem članku o offline transkripciji sastanaka.