Whisper-large-v3 je impresivan model. Na engleskom radi 5% WER ili manje. Na hrvatskom — naš Phase 0 baseline na tri popularna podcasta:
| Kanal | WER | NER (imena/brendovi) |
|---|---|---|
| Superhuman Life | 1.85% | 100% |
| Lider Lab | 5.28% | 100% |
| Netokracija | 12.48% | 75% |
Tri vrlo različita broja na istom modelu. Razlika nije slučajna — definira ju koliko engleskog se uvuče u hrvatsku rečenicu i koliko vlastitih imena prolazi po minuti.
WER i zašto je 5% prag
Word Error Rate broji pogreške po riječi: zamjene, brisanja, umetanja. 5% znači 1 pogrešku na 20 riječi. Za 60-minutni podcast s prosječnih 9000 riječi, to je 450 pogrešaka — dosta, ali raspoređene tako da gledatelj rijetko primijeti.
12% WER (gdje sjedi Netokracija) znači 1080 pogrešaka. Više od toga gledatelj počinje primjećivati. 25% — gledatelj odustaje od titlova prije kraja prve minute.
Naš prag „good enough" stoji na 5% WER + 95% NER (named-entity recognition accuracy). Superhuman ga prelazi za faktor dva, Lider sjedi 0.28 pp iznad, Netokracija ga propušta zbog code-switching-a — što je manje stvar modela, više stvar formata sadržaja (vidi dolje).
Četiri klase pogrešaka
Kategorizirali smo prvih 200 grešaka iz baseline runa. Distribucija nije iznenađenje, ali je korisna za debugiranje:
1. Vlastita imena i brendovi (~35% pogrešaka)
„Stjepan Bedić" → „Stjepan Beđić" ili „Stjepan Bedič". „ETF Airways" → „ETF Eirvejs". „Roko Kalafatić" → „Roko Kalafatič" (sa č umjesto ć).
Whisper nije nikad čuo ova imena u Croatian-language treningu. Padaju s potpuno predvidljivim greškama.
2. Akcenti i regije (~25%)
Dalmatinski „ča-kavski" prijelazi između riječi. Kajkavski „kaj" gdje model očekuje „što". Slavonski govor s otvorenijim „e". Whisper je treniran većinom na štokavskom standardu — ostali dijalekti su pjegavi.
3. Code-switching (~20%)
Hrvatski tech podcast tipično uvozi englesku terminologiju u svaku drugu rečenicu: „Submita PR i deploya na staging". Whisper čuje engleske riječi i pokušava ih napisati, ali ih napisuje krivo (krivim case-om, krivom morfologijom) ili ih krivo segmentira u kontekstu hrvatske rečenice.
4. Ostalo: šum, overlapping speech, kratke replike (~20%)
Diarizacija (tko govori) je posebno problematična u trojstrukim razgovorima.
Što pomaže
Tri intervencije koje zaista pomiču brojku:
Custom dictionary post-processor
Najveća pojedinačna pobjeda. Autor priloži listu vlastitih imena, brendova, žargona — post-processing korak na izlazu Whispera pretražuje preko Levenshtein distance i zamijenjuje pogrešne kandidate. Na Netokracija setu recovery od ~3.5 pp WER kad rječnik pokriva engleske termine koje model na hrvatskom čuje krivo.
Drugačije rečeno: klasa pogrešaka Vlastita imena gotovo nestaje kad rječnik postoji. Bez njega — model svaki put pogađa iznova.
VAD pre-roll
Whisper voli početke segmenta. Ako Voice Activity Detection isiječe točno na granici riječi, model često „halucinira" prvu riječ ili je preskoči. Trik: dodati 200ms tišine prije svakog VAD prozora i 100ms poslije. Whisper dobiva svoj „warm-up" i znatno bolje pogađa prvu riječ.
Recovery od ~2% WER.
Lokalni LM rescore na hrvatskom korpusu
Whisper ima ugrađen language model treniran na multilingvalnom korpusu. Za hrvatski je nedovoljan. Zamjena s lokalnim LM-om (npr. CroBERT-style) na rescore koraku pomaže — ali samo za određene tipove rečenica.
Recovery: ~1-2% WER, povratan po troškovima inference-a.
Što ne pomaže
Finetuning Whispera na hrvatskom
Bez 100+ sati ručno-anotiranog hrvatskog audio-a (a takvih datasetova javno nema), finetuning samo „fitov-a šum" — model nauči artefakte malog dataseta i loše generalizira. Pokušali smo. Ne radi.
Generic LLM rescoring
Slanje izlaza Whispera u GPT-4 ili Claude sa „poprav ovo" prompt-om producira tekst koji izgleda glatkije, ali često mijenja imena, datume, brojke. To NIJE pobjeda — to je halucinacija s glađim površinama.
Veći Whisper model
Whisper-turbo i Whisper-v3-large razlikuju se na hrvatskom za <0.5% WER. Skok na „Whisper Pro" iz nekog imaginarnog izvora bi pomogao tehnički, ali ne praktično.
Naš trenutni stack
Iz svega gore, ovako trenutno radi Titlomat pipeline za hrvatski:
- yt-dlp download → mono 16kHz audio
- WhisperX VAD pre-roll
- Whisper-large-v3 transkripcija
- Custom dictionary post-processor
- Lokalni LM rescore za top-N hipoteza (u radu)
Krajevi spektra: 1.85% WER na čistoj naraciji s domaćim govornicima, 12.48% kad sadržaj prelazi u engleski svakih nekoliko rečenica. Pragu od 5% udovoljava jedan od tri kanala u baselineu; cilj sljedećeg kvartala je dovesti i ostala dva ispod.
Što slijedi
- Iterativno proširivanje rječnika po žanru kanala (poslovno, tech, sport) — najbrži dobitak na Netokracija-tip sadržaju.
- Lokalni LM rescore — kontinuirana evaluacija po inference trošku.
- Sljedeći članak iz tehnika: bočna usporedba našeg outputa s YouTubeovim auto-translate-om, mjerena od native-speakera.
Probajte na svom kanalu
Phase 0 brojke su s tri javna podcasta. Najbolji način provjere je vaš vlastiti audio. Spojite kanal, mi automatski generiramo titlove za sljedeći video — vidite WER na svom sadržaju u dashboardu. Probajte besplatno.



