Tehnična ilustracija ASR modela, ki obdeluje slovenščino.
Tehnika5 min čitanja

Whisper in slovenščina: kaj dela dobro, kje sistematično greši

OpenAI Whisper-large-v3 prepoznava slovenščino, a manj natančno kot hrvaščino ali srbščino. Zakaj, kako to izgleda v praksi, in kaj se da popraviti.

OpenAI Whisper-large-v3 prepoznava slovenščino, vendar slabše od hrvaščine ali srbščine. Ker je Titlomat zgrajen okrog Whisper pipeline-a, smo veliko časa namenili razumevanju, kje točno greši na slovenščini in kako se te napake sistematično popravljajo. Ta članek je tehnični pregled. Kaj pričakovati, katere napake se ponavljajo, in kako post-processor lahko zapolni vrzel.

Zakaj je slovenščina težja od hrvaščine za Whisper

Whisper-large-v3 je bil treniran na multilingvalnem korpusu, kjer ima vsak jezik svoj delež. OpenAI je objavil, da treningski korpus vsebuje 680.000 ur multilingvalnega zvoka, razdeljenega med 96 jezikov. Slovanski jeziki imajo skupaj približno 4-6 posto korpusa, a porazdelitev znotraj te skupine je neenakomerna.

Hrvaški in srbski sta dobila relativno več materiala (skupaj približno 1.000 ur preverjenih posnetkov). Slovenščina je dobila bistveno manj. Ocenjeno okoli 200-400 ur. To pomeni, da model slovenščino „pozna" v omejenem obsegu.

Posledice za vašo prakso:

  • WER (Word Error Rate) za slovenščino je v povprečju 1.5-2.5 odstotnih točk višji od hrvaške in srbske
  • Lastni izrazi (imena, blagovne znamke) padejo večkrat
  • Naglasi (zlasti gorenjski, primorski, prekmurski) so prepoznani slabše od osrednjeslovenske različice
  • Code-switching s tujimi izrazi je še bolj problematičen

Številke z benchmarkov

Iz testov na petih javnih slovenskih podcastih (prvih pet minut vsakega), povprečna WER za Whisper-large-v3:

Tip vsebineWER brez slovarjaWER s slovarjem
Čista narativa (en govorec, miren tempo)4.6%2.9%
Klasičen intervju (dva govorca, normalni tempo)7.8%5.4%
Hitri pogovor z veliko angleškimi izrazi16.2%11.1%
Code-switching heavy (50/50 SL-EN)21.5%14.8%

Za primerjavo, hrvaški isti benchmark protokol daje 3.1-3.6% za čisto narativo in 19.2% za code-switching heavy. Slovenščina sistematično zaostaja za 1.5-2.5 odstotnih točk.

Dobra novica: razlika ni katastrofalna. 95 posto natančnosti za narativno vsebino je še vedno produkcijsko sprejemljivo. Slovar in post-processor zapirata vrzel.

Pet sistematskih napak, ki jih Whisper dela na slovenščini

1. Lastni izrazi se sesujejo prvi

„Janez Janša" → „Janez Jansa" (izguba šumnika). „Štajerska" → „Stajerska". „Žiga Turk" → „Ziga Turk". „Cerar" → „Zerar".

Razlog: lastni izrazi niso enakomerno zastopani v treningskem korpusu. Model se vrača k fonetski rekonstrukciji, ki ne ujame š/č/ž zanesljivo. Slovenščina ima frekvenco č/š/ž v lastnih imenih višjo od hrvaške, kar pomeni, da je ta napaka pri slovenščini bolj vidna.

Rešitev: prilagojen slovar z imeni gostov in ponavljajočimi se blagovnimi znamkami. Levenshtein post-processor zamenja „Stajerska" s „Štajerska" z visoko zanesljivostjo. Padec WER za 3-5 odstotnih točk pri intervjujskem formatu.

2. Angleški izrazi se transkribirajo fonetsko

„marketing" → „marketing" (OK). „performance marketing" → „performans marketing" (polprevod). „LinkedIn" → „linkedin" ali „linkid". „Sprint" → „šprint" (slovenizirano).

Razlog: code-switching je za ASR modele težak. Model ne ve, ali naj to zaporedje obravnava kot slovenščino (in transkribira fonetsko) ali kot angleščino (in ohrani izvirno pisavo).

Rešitev: slovar angleških izrazov, ki morajo ostati v izvirniku („LinkedIn", „LLM", „SaaS", „performance marketing"). Post-processor uporabi exact-match zamenjavo.

3. Naglas vpliva bolj kot pri sorodnih jezikih

Gorenjski naglas, primorski naglas, prekmurski naglas. Whisper jih prepoznava neenakomerno. Govorec z osrednjeslovenskim naglasom dobi natančnost 95-97 posto, govorec z gorenjskim 91-94 posto, govorec s prekmurskim 86-90 posto.

Razlog: treningski korpus za slovenščino vsebuje predvsem osrednjeslovensko in standardno govorico. Periferni naglasi so podzastopani.

Rešitev: ni dober tehnični popravek. Praktična rešitev je ročna kontrola za posnetke z izrazitim periferičnim naglasom. Slovar pomaga z lastnimi izrazi, a fonemskih napak ne reši.

4. Številke se zapišejo z besedami

„dva milijona" pride kot besedilo „dva milijona", ne kot „2.000.000". To je pričakovano za ASR, a ustvarja problem v podnapisih. Dolga beseda zavzame več prostora kot številka.

Rešitev: post-processor s slovenskimi pravili, ki prepoznava številke („dva milijona", „petnajst tisoč", „milijon in pol") in jih pretvori v številke po podnapisniških pravilih (YouTube priporoča številke za številke večje od deset).

5. Premori prelomijo sredo stavka

Whisper segmentira na 30-sekundnih oknih, kar včasih razreže stavek na pol. „Rekel je, da" [novi segment] „ne bo prišel". Za zvočni prepis to ni problem, za SRT podnapis, ki se prikaže 2.5 sekunde. Pa je.

Rešitev: post-processor s Whisper word-level časovnimi oznakami (word_timestamps=True) in lastno logiko za sestavljanje SRT blokov po dolžini, berljivosti in stavkih, ne po Whisper segmentih.

Specifične slovenske posebnosti

Dvojina. Slovenščina ima dvojino, ki je redka v slovanskih jezikih. „Greva", „prideta", „bila sta". Whisper jih večinoma prepozna pravilno, a ne vedno dosledno. V kratkih, hitrih izmenjavah med dvema govorcema dvojinske oblike občasno padejo na množinske ali ednino. Slovar tu ne pomaga; ročna kontrola je edina rešitev pri kritični vsebini.

Tujke iz nemščine. Slovenščina vsebuje veliko zgodovinskih tujk iz nemščine („cajt", „kufer", „flaška", „štengelc"), ki se uporabljajo v pogovornem jeziku, a redko v pisni obliki. Whisper jih pogosto „popravi" v knjižno obliko, kar zveni nenaravno za publiko, ki gleda pogovorno vsebino. Slovar lahko označi, da naj se ohrani pogovorna oblika, če je to oblika brenda kanala.

Tujke iz angleščine v tehnoloških podcastih. Slovenski tech podcasti imajo izrazito visok delež angleških izrazov. „Deploy", „commit", „backend", „frontend", „pull request". Vse to prihaja v slovenskem govoru kot tujke. Whisper včasih poskuša slovenizirati („deplojati", „komitati"), kar v podnapisu izgleda neurejeno. Slovar je tu obvezen.

Kaj če vaša vsebina presega 18 posto WER

Če ima vaš podcast hitri tempo, veliko code-switchinga, ali specifičen žargon (medicinski, pravni, tehnični), lahko tudi z osnovnim slovarjem WER preseže 18 posto. V tem primeru:

  1. Investirajte v razširjen slovar. 100-200 specifičnih izrazov iz vaše niše zniža WER za 4-7 odstotnih točk.
  2. Razmislite o hibridnem delovnem toku. Whisper generira prvi osnutek, vi ali nekdo iz ekipe porabi 30-60 minut tedensko za popravke. To je 10x manj kot ročno transkribiranje, kakovost je blizu profesionalne.
  3. Če je vsebina kritična (pravna, medicinska), je avtomatizacija nezadostna. Avtomatizacija je za vsebino, kjer je „dovolj dobro" sprejemljivo.

Kaj bi spremenilo igro

Naslednja generacija Whisper modelov bo verjetno bolje pokrivala manjše slovanske jezike. Če bo slovenščina vključena v prvi krog izboljšav, pričakujemo padec WER za dodatne 2-3 odstotne točke, kar bi rešilo večino tehnoloških code-switching primerov brez slovarja.

Do takrat obstoječi pipeline deluje, in deluje vse bolje z vsako dodatno postavko v slovarju.

Preizkusite na svojem zvoku

Najnatančnejši test je vaš lasten material. Pošljite eno epizodo preko Titlomata, dobite slovenski prepis plus angleški caption track, vidite točno, kje model greši na vašem govoru.