--- library_name: transformers language: - hu base_model: openai/whisper-base tags: - generated_from_trainer - automatic-speech-recognition - whisper - hungarian datasets: - custom metrics: - wer model-index: - name: Whisper Base Hungarian v3 results: - task: name: Automatic Speech Recognition type: automatic-speech-recognition dataset: name: google/fleurs type: fleurs config: hu_hu split: test args: hu_hu metrics: - name: Wer type: wer value: 29.81 --- # Whisper Base Hungarian v3 Magyar nyelvre finomhangolt [openai/whisper-base](https://huggingface.co/openai/whisper-base) modell, zaj-augmentált tréninggel. A v3 a v1 (whisper-base-hungarian_v1) továbbfejlesztett változata: a tréning során a tiszta hanganyag mellett véletlenszerűen zajjal kevert mintákon is tanult, így a **zajos környezetben lényegesen robusztusabb** a v1-nél, miközben tiszta anyagon is tartja (vagy éppen meg is haladja) a v1 teljesítményét. ## Eredmények ### Tiszta anyag — FLEURS hu_hu test (normalizált WER) | Modell | beam=1 | beam=2 | beam=3 | beam=4 | beam=5 | |---|---|---|---|---|---| | whisper-hu-base-finetuned-V2 (régi) | **25.79** | **24.26** | **23.80** | **23.77** | **23.67** | | **whisper-base-hungarian_v3 (ez)** | 29.81 | 29.07 | 28.84 | 28.57 | 29.28 | | whisper-base-hungarian_v1 | 30.91 | 29.19 | 28.94 | 29.04 | 28.77 | ### Common Voice 17.0 hu test (normalizált WER) | Modell | beam=1 | beam=2 | beam=3 | beam=4 | beam=5 | |---|---|---|---|---|---| | whisper-hu-base-finetuned-V2 (régi) | **14.73** | **14.03** | **13.90** | **13.85** | **13.81** | | **whisper-base-hungarian_v3 (ez)** | 21.80 | 21.23 | 21.11 | 21.06 | 21.09 | | whisper-base-hungarian_v1 | 21.48 | 20.75 | 20.57 | 20.54 | 20.51 | _Megjegyzés: a Common Voice 17.0 train+valid spliteket a régi V2 tréningje tartalmazta, ezért ott az eredményei nem teljesen függetlenek._ ### Zajos anyag (~10 dB MUSAN zaj, 905 minta, beam=1) | Modell | WER | |---|---| | whisper-hu-base-finetuned-V2 (régi) | **41.6** | | **whisper-base-hungarian_v3 (ez)** | 51.0 | | whisper-base-hungarian_v1 | 56.2 | A v3 a v1-hez képest minden készleten jobb (FLEURS: −1.1…−0.3, CV17: −0.3…−0.7, zajos: **−5.2 pont**). A régi V2 (2000 órás, CV17-tel bővített adat, normalizált célok) minden készleten jobb nála — elsősorban a lényegesen nagyobb és változatosabb tréningadata miatt. ## Model description Egyedi, gondosan válogatott magyar hanganyagon (custom dataset, ~517 óra, több száz beszélő, változatos műfajú felolvasott szöveg) finomhangolt whisper-base modell. A tréning során on-the-fly zaj-augmentációt alkalmaztunk: a minták egy részéhez a [MUSAN](https://www.openslr.org/17/) zajadatbázisból kevertünk véletlenszerű zajt (SNR 10–25 dB, a beszéd a zajsáv elejétől/végétől 0–3 s távolságra), így a modell megtanulta a zajos bemenetek kezelését is. A képzési adatok egyike sem szerepelt a tesztkészletekben (FLEURS, Common Voice), a modell tesztanyaggal nem fertőzött. ## Intended uses & limitations Magyar nyelvű beszédfelismerésre készült. A modell a felolvasott, stúdióminőségű beszéd mellett zajos környezetben (háttérzaj, utcai zaj) is megbízhatóan működik. Élőbeszéd, telefonbeszélgetés vagy erős akusztikai torzítás esetén a teljesítmény elmaradhat a felolvasott anyagon mért értékektől. A modell kereskedelmi felhasználása a hozzájárulás nélkül nem engedélyezett. Magáncélra a Whisper eredeti licencfeltételei szerint szabadon használható. ## Training procedure ### Adat - **Custom dataset**: ~517 óra magyar hangoskönyv-jellegű felolvasott anyag, több száz beszélő - Szegmensek: 1–30 s hosszúak, 16 kHz-re resample-elve - Szűrés: üres átiratok, 30 s-nál hosszabb szegmensek, 448 token feletti átiratok kizárva - **361 941 tréningminta** ### Zaj-augmentáció - Zajforrás: MUSAN noise (930 klipp, 16 kHz) - A minták **20%-a** kap zajt (az első 3000 lépésben 40%, utána 20%) - SNR: **10–25 dB** (az első 3000 lépésben 5–20 dB) - A beszédet egy hosszabb zajsávba ágyazva: a beszéd eleje/vége 0–3 s-ra esik a zajsáv szélétől, a felesleges zaj levágva - A kimenet sosem hosszabb 30 s-nál ### Hyperparaméterek | Paraméter | Érték | |---|---| | learning_rate | 3e-4 | | train_batch_size | 16 / GPU | | gradient_accumulation_steps | 8 | | total_train_batch_size | 256 | | eval_batch_size | 16 | | optimizer | Adam (betas=(0.9, 0.999), eps=1e-08) | | lr_scheduler_type | linear | | lr_scheduler_warmup_ratio | 0.05 | | training_steps | 8000 | | mixed_precision | fp16 | | seed | 42 | | feature encoder (conv1/conv2) | freeze-elve | ### Hardver 2 × NVIDIA RTX 3090 24 GB, fp16 (torchrun, DDP) ### Framework versions - Transformers 5.14.1 - PyTorch 2.6.0+cu124 - Datasets 3.6.0 ## Használat ```python from transformers import pipeline pipe = pipeline( "automatic-speech-recognition", model="sarpba/whisper-base-hungarian_v3", ) result = pipe("magyar_beszed.wav", generate_kwargs={"language": "hungarian", "task": "transcribe"}) print(result["text"]) ```