whisper-small-mn-v24

Fine-tune of openai/whisper-small for Mongolian (mn) automatic speech recognition, trained on Blgn94/mongolian-stt-dataset-v24.

This is the v24 iteration and improves substantially over the previous release Blgn94/whisper-small-mn.

Results

Metric v24 (this model) Previous whisper-small-mn
WER 15.16% 22.1%
CER 6.60% 10.3%

That is a ~31% relative WER reduction and ~36% relative CER reduction over the previous model.

Note on measurement: these numbers are from a fixed 200-sample subset of the validation split, evaluated with predict_with_generate during training (the same protocol used for the previous model, so the comparison is apples-to-apples). A full 2,297-row validation evaluation has not yet been run; the full-set figures may differ slightly.

Usage

from transformers import pipeline

asr = pipeline("automatic-speech-recognition", model="Blgn94/whisper-small-mn-v24")
result = asr("audio.mp3", generate_kwargs={"language": "mongolian", "task": "transcribe"})
print(result["text"])

Or with the model/processor directly:

import torch, librosa
from transformers import WhisperProcessor, WhisperForConditionalGeneration

processor = WhisperProcessor.from_pretrained("Blgn94/whisper-small-mn-v24", language="mongolian", task="transcribe")
model = WhisperForConditionalGeneration.from_pretrained("Blgn94/whisper-small-mn-v24")

audio, _ = librosa.load("audio.mp3", sr=16000)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
ids = model.generate(inputs.input_features, language="mongolian", task="transcribe")
print(processor.batch_decode(ids, skip_special_tokens=True)[0])

Audio is expected at 16 kHz mono. Keep clips within Whisper's 30 s window.

Training data

Blgn94/mongolian-stt-dataset-v24 โ€” a combined Mongolian read-speech and subtitle corpus (~77 h of audio, 16 kHz).

Source Train clips Validation clips
Common Voice 87,988 1,869
FLEURS 3,770 215
MBSpeech 3,670 176
YouTube (manual subtitles) 559 39
Total 95,987 2,299

Preprocessing: rows whose tokenized transcript exceeded 440 tokens (near Whisper's 448-token decoder limit) were dropped โ€” 41 from train and 2 from validation โ€” leaving 95,946 train / 2,297 validation clips.

Training procedure

Fine-tuned from openai/whisper-small (244M params).

Hyperparameter Value
Epochs 3
Effective batch size 8 (per-device 2 ร— grad-accum 4)
Learning rate 1e-5
Warmup steps 500
Precision fp16
Total steps 35,982
Optimizer AdamW (Transformers default)
Gradient checkpointing enabled

Hardware: single NVIDIA RTX 5060 (8 GB). Full run took ~6.5 h.

The model, task, and language tokens were set for Mongolian transcription (language="mongolian", task="transcribe"); forced_decoder_ids was cleared so decoding follows the fine-tuned distribution.

Limitations

  • The training data is ~92% Common Voice (read speech), so accuracy is strongest on clear, read-style Mongolian and weaker on spontaneous, conversational, noisy, or telephony audio.
  • Cyrillic Mongolian only.
  • Inherits Whisper's tendency to hallucinate on silence or non-speech segments.

Base model & license

Derived from openai/whisper-small; released under Apache-2.0.

Downloads last month
31
Safetensors
Model size
0.2B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Blgn94/whisper-small-mn-v2

Finetuned
(3667)
this model

Evaluation results