Tehnička ilustracija ASR modela koji obrađuje srpski jezik.
Tehnika5 min čitanja

Whisper i srpski jezik: latinica, ćirilica, i gde grešku pravi sistematski

OpenAI Whisper prepoznaje srpski dobro, ali pravi reproducibilne greške. Šta greši, zašto, i kada koji skript birati za izlaz.

OpenAI Whisper-large-v3 prepoznaje srpski sa pristojnom tačnošću, ali ne savršeno. Pošto je Titlomat napravljen oko Whisper pipeline-a, proveli smo dosta vremena gledajući gde tačno greši na srpskom, i kako se te greške mogu sistematski ispravljati. Ovaj tekst je tehnički pregled. Šta očekivati, koje greške se ponavljaju, i kada birati latinicu, a kada ćirilicu kao izlaz.

Brojke za početak

Iz benchmark testova na pet javnih srpskih podkasta (prvih pet minuta svakog), prosečna WER (Word Error Rate) za Whisper-large-v3 na srpskom:

Tip sadržajaWER bez rečnikaWER sa rečnikom
Čista naracija (jedan govornik, miran tempo)3.1%1.8%
Klasičan intervju (dva govornika, normalni tempo)6.4%4.2%
Brzi razgovor sa puno engleskih termina13.8%9.1%
Code-switching heavy (50/50 srpski-engleski)19.2%12.6%

Reference: hrvatski isti benchmark protokol daje praktično iste brojke (variraju 0.2–0.5 procentnih poena u oba smera). Modelu jezičke razlike između srpskog i hrvatskog u praksi ne smetaju mnogo. Razlika je u rečniku, ne u zvuku.

Latinica ili ćirilica? Whisper iznosi obadve

Whisper-large-v3 može izaći u oba skripta. Default ponašanje zavisi od jezičkog koda:

  • language="sr" → izlazi u ćirilici po default-u
  • language="hr" → izlazi u latinici, čak i kada audio jeste srpski sa specifično srpskim rečnikom

Ovo poslednje je trik koji koristimo u Titlomatu po default-u kada korisnik ne specifikuje skript. language="hr" daje latinicu, model svejedno prepoznaje srpski rečnik bez ozbiljne degradacije tačnosti (manje od 0.5 procentnih poena u našim testovima).

Kada birati ćirilicu kao izlaz:

  • Auditorijum je primarno u Srbiji i preferira ćirilicu
  • Brend kanala je vezan za ćirilicu (kulturni, istorijski, lingvistički sadržaj)
  • Titlovi će biti čitani offline, gde nije važna univerzalna kompatibilnost sa svim platformama

Kada birati latinicu kao izlaz:

  • Multi-platform distribucija (Instagram, TikTok, LinkedIn često bolje renderuju latinicu)
  • Auditorijum uključuje BiH, Hrvatsku, Crnu Goru, dijasporu. Gde je latinica dominantna
  • Sadržaj ima puno engleskih termina, brendova, kratica. Gde mešanje skripta deluje neuredno

YouTube prikazuje oba skripta uredno, ali kraći blokovi u titlu izgledaju vizuelno čistiji u latinici.

Pet sistematskih grešaka koje Whisper pravi na srpskom

1. Vlastita imena padaju prva

„Jovan Marković" → „Jovan Markovic" (gubi se akcenat na ć). „Đorđe" → „Djordje" ili „Gjorgje". „Šahabusinguje" → „Šahabu singuje" (segmentacija pukne).

Razlog: vlastita imena nisu ravnomerno zastupljena u trening korpusu. Model fall-back-uje na fonetsku rekonstrukciju, koja ne hvata ć/đ/š/ž pouzdano.

Rešenje: custom rečnik sa imenima gostiju i ponavljajućim brendovima. Levenshtein post-processor zameni „Markovic" sa „Marković" sa visokom pouzdanošću. WER pad od ~3.5 procentnih poena u našim testovima na intervju formatu.

2. Engleski termini bez akcenta

„marketing" → „marketing" (OK). „performance marketing" → „performans marketing" (poluprevod). „LinkedIn" → „linkedin" ili „linkid". „Conversion rate" → „konverzion rejt".

Razlog: code-switching je teško za ASR modele. Model ne zna treba li tretirati ovu sekvencu kao srpski (i transkripovati fonetski) ili kao engleski (i sačuvati original spelling).

Rešenje: rečnik engleskih termina koji treba sačuvati u originalu („LinkedIn", „LLM", „SaaS", „performance marketing"). Post-processor primenjuje exact-match zamenu.

3. Brojevi se izgovaraju u reči

„dva miliona" stiže kao tekst „dva miliona", a ne „2.000.000". To je očekivano za ASR, ali stvara problem u titlovima. Duga reč zauzima više prostora od cifre.

Rešenje: post-processor sa srpskim rules-om koji prepoznaje brojeve („dva miliona", „petnaest hiljada", „milion i po") i konvertuje ih u cifre po pravilima titlovanja (YouTube preporučuje cifre za brojeve veće od deset).

4. Skraćenice se ispisuju fonetski

„AI" → „a-i" ili „ej-aj". „API" → „a-pe-i". „CEO" → „si-i-o".

Rešenje: rečnik kratica sa fonetskim i ortografskim mapiranjem. „si-i-o" → „CEO", „ej-aj" → „AI". Ovaj korak često unese više grešaka nego koristi ako nije pažljivo postavljen, pa ide u user-facing rečnik za napredne korisnike.

5. Pauze pukne u sredini rečenice

Whisper segmentira na 30-sekundne prozore, što ponekad seče rečenicu na pola. „On je rekao da" [novi segment] „neće doći". Za audio transkript to nije problem, za SRT titl koji se prikazuje 2.5 sekunde. Jeste.

Rešenje: post-processor sa Whisper word-level vremenskim oznakama (word_timestamps=True) i sopstvenom logikom za pravljenje SRT blokova po dužini, čitljivosti i rečenicama, ne po Whisper segmentima.

Specifičnost srpskog naspram hrvatskog

Iako su Whisper brojke skoro identične, postoje tri praktične razlike u post-processingu:

Ekavica vs ijekavica. Srpski (ekavica) koristi „lepo", „mleko", „mesec". Hrvatski (ijekavica). „Lijepo", „mlijeko", „mjesec". Whisper transkribuje ono što čuje, ali u sumnjivim slučajevima (akcent, brza naracija) može da fall-back-uje na pogrešan oblik. Naš rečnik to detektuje i normalizuje na ekavicu kada je lang=sr.

Specifični termini. „Saobraćaj" (sr) vs „promet" (hr), „pozorište" (sr) vs „kazalište" (hr), „voz" (sr) vs „vlak" (hr). Whisper ovo dobija pravilno većinu vremena, ali rečnik dodaje sigurnosnu mrežu.

Tursizmi i lokalizmi. Srpski koristi „komšija", „avlija", „čaršav". Turske pozajmice koje su deo svakodnevnog govora. Whisper ih često tačno prepoznaje, ali ponekad pokušava „čistiji" srpski oblik („sused" umesto „komšija") što gledatelju zvuči neprirodno.

Šta ako vaš sadržaj prelazi 15 posto WER

Ako vaš podkast ima brz tempo, puno code-switchinga, ili specifičan žargon (medicinski, pravni, tehnički), čak i sa rečnikom WER može preći 15 posto. U tom slučaju:

  1. Investirajte u rečnik. 50–100 specifičnih termina iz vaše niše smanjuju WER za 3–6 procentnih poena.
  2. Razmislite o hibridnom workflow-u. Whisper generiše prvi nacrt, vi ili neko iz tima provede 30–60 minuta nedeljno na ispravkama. To je 10x manje od ručnog transkribovanja, a kvalitet je blizu profesionalnog.
  3. Ako je sadržaj kritičan (pravni, medicinski): ne automatizujte u potpunosti. Automatizacija je za sadržaj gde je „dovoljno dobro" prihvatljivo.

Šta bi promenilo igru

OpenAI je najavio da rade na sledećoj generaciji Whispera, sa boljom podrškom za nedovoljno zastupljene jezike. Ako srpski uđe u prvi krug poboljšanja, očekujemo pad WER-a od dodatnih 1.5–2.5 procentnih poena, što bi izazvalo brojne male probleme u našem post-processingu (manji rečnik, manje pravila).

Do tada, postojeći pipeline radi, i radi sve bolje sa svakim dodatkom u rečniku.

Probajte na svom audiju

Najtačnija provera je vaš sadržaj. Pošaljite jedan video preko Titlomata, dobijete srpski transkript (latinica ili ćirilica po izboru) plus engleski caption track, vidite tačno gde model greši na vašem govoru.