google/fleurs
Viewer • Updated • 768k • 106k • 461
How to use BuzzASR/urdu with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="BuzzASR/urdu") # Load model directly
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
processor = AutoProcessor.from_pretrained("BuzzASR/urdu")
model = AutoModelForSpeechSeq2Seq.from_pretrained("BuzzASR/urdu", device_map="auto")A monolingual automatic speech recognition model for Urdu, fine-tuned from openai/whisper-large-v3. Part of BuzzASR, a suite of 102 language-specialized ASR models (Findings of EMNLP 2026).
This model uses simple fine-tuning (Whisper's tokenizer, ASR fine-tuning only).
| Test set | CER | WER | Whisper-large-v3 (zero-shot) CER |
|---|---|---|---|
| FLEURS | 7.5 | 21.8 | 8.08 |
| Combined | 9.24 | 26.77 | 8.08 |
~0.9x CER reduction over Whisper zero-shot on the combined test set.
import torch, torchaudio
from transformers import WhisperForConditionalGeneration, WhisperProcessor
model = WhisperForConditionalGeneration.from_pretrained("BuzzASR/urdu", torch_dtype=torch.float16).to("cuda").eval()
proc = WhisperProcessor.from_pretrained("BuzzASR/urdu")
wav, sr = torchaudio.load("audio.wav") # 16 kHz mono
feats = proc(wav[0], sampling_rate=16000, return_tensors="pt").input_features.to("cuda").half()
ids = model.generate(feats, num_beams=1, no_repeat_ngram_size=3, repetition_penalty=1.2)
print(proc.batch_decode(ids, skip_special_tokens=True)[0])
The language/task prompt is baked into the generation config, so no language= argument is needed.
FLEURS, capped per the paper. Text-only data from the Goldfish corpus (Chang et al., 2026).
Monolingual (Urdu only). Evaluated on FLEURS / Common Voice test splits; other domains or dialects may differ.
Project page: https://lemn-lab.github.io/buzzasr-docs/
Base model
openai/whisper-large-v3