Instructions to use Aditya109/whisper-small-bhojpuri-merged with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Aditya109/whisper-small-bhojpuri-merged with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="Aditya109/whisper-small-bhojpuri-merged")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("Aditya109/whisper-small-bhojpuri-merged") model = AutoModelForSpeechSeq2Seq.from_pretrained("Aditya109/whisper-small-bhojpuri-merged", device_map="auto") - Notebooks
- Google Colab
- Kaggle
language:
- bho
- hi
license: cc-by-4.0
library_name: transformers
base_model: openai/whisper-small
pipeline_tag: automatic-speech-recognition
tags:
- whisper
- automatic-speech-recognition
- bhojpuri
- indic
- low-resource
datasets:
- ARTPARK-IISc/Vaani-transcription-part
metrics:
- wer
- cer
model-index:
- name: whisper-small-bhojpuri-merged
results:
- task:
type: automatic-speech-recognition
name: Automatic Speech Recognition
dataset:
name: Vaani (Bhojpuri)
type: ARTPARK-IISc/Vaani-transcription-part
config: Bhojpuri
split: test
metrics:
- type: wer
value: 36.41
name: WER
- type: cer
value: 17.05
name: CER
Whisper-small Bhojpuri (merged)
openai/whisper-small with a Bhojpuri LoRA adapter already merged in. Standalone
weights — no PEFT dependency, no adapter loading step.
The LoRA adapter, full training details, evaluation methodology, and the leakage audit live in the adapter repo: Aditya109/whisper-small-bhojpuri-lora. Read that one if you want to know how these numbers were produced.
Results
Official Vaani Bhojpuri test split, n = 1,426. Every row measured on the same utterances, with the same normalizer and the same metric implementation.
| Model | Params | WER ↓ | CER ↓ |
|---|---|---|---|
openai/whisper-small (untrained) |
244M | 122.07 | 78.75 |
openai/whisper-large-v3 (untrained) |
1.55B | 65.93 | 37.68 |
ARTPARK-IISc/SraVaani |
430M | 34.80 | 20.29 |
| This model | 244M | 36.41 | 17.05 |
Against SraVaani — the model trained by the dataset's own authors — this is a split decision, and both halves are statistically significant under a paired bootstrap: SraVaani is better on WER by 1.61 (95% CI [+0.83, +2.44]), this model is better on CER by 3.24 (95% CI [−3.87, −2.53]).
Usage
import torch
from transformers import WhisperForConditionalGeneration, WhisperProcessor
REPO = "Aditya109/whisper-small-bhojpuri-merged"
processor = WhisperProcessor.from_pretrained(REPO, language="hi", task="transcribe")
model = WhisperForConditionalGeneration.from_pretrained(
REPO, torch_dtype=torch.bfloat16, attn_implementation="sdpa").to("cuda").eval()
feats = processor.feature_extractor(
audio_16k, sampling_rate=16_000, return_tensors="pt"
).input_features.to("cuda", dtype=torch.bfloat16)
ids = model.generate(feats, max_new_tokens=200, num_beams=1)
print(processor.batch_decode(ids, skip_special_tokens=True)[0])
Weights are stored in float32 so you can cast to whatever your hardware wants.
Notes
- Audio must be 16 kHz mono.
- The language token is
hi. Whisper has no Bhojpuri token; Hindi is the nearest proxy, and the dialect knowledge is in the fine-tuned weights. The decoding defaults are baked intogeneration_config, so it transcribes Bhojpuri out of the box rather than language-detecting into Hindi. - Being a plain Whisper checkpoint, this converts for faster-whisper, whisper.cpp and WhisperX. That portability is the main argument for it over a NeMo Conformer.
- Evaluated with greedy decoding on utterance-level clips. Long-form audio and beam search are untested.
Data and limitations
Trained on ARTPARK-IISc/Vaani-transcription-part (config Bhojpuri),
~24 hours of spontaneous image-description speech, using the dataset's official
splits unmodified.
Vaani has no speaker ID column, so speaker-disjointness is trusted from the official splits, not verified — by me or by anyone else working from the public dataset. Text-level leakage was audited and ruled out; details and the audit script are in the adapter repo.
Other limitations: no standard-Hindi regression check was run, so the model may have degraded on standard Hindi; domain coverage is limited to one collection protocol; and some of the residual error is annotation noise in the references rather than model error.
Licensing
- Base model
openai/whisper-smallis MIT. - Training data (Vaani) is CC-BY-4.0, which requires attribution, so this model is released under CC-BY-4.0. No Vaani audio or transcripts are redistributed here.
Attribution for the dataset, as requested on its dataset page:
@misc{pulikodan2026vaanicapturinglanguagelandscape,
title={VAANI: Capturing the language landscape for an inclusive digital India},
author={Sujith Pulikodan and Abhayjeet Singh and Agneedh Basu and Nihar Desai and Pavan Kumar J and Pranav D Bhat and Raghu Dharmaraju and Ritika Gupta and Sathvik Udupa and Saurabh Kumar and Sumit Sharma and Vaibhav Vishwakarma and Visruth Sanka and Dinesh Tewari and Harsh Dhand and Amrita Kamat and Sukhwinder Singh and Shikhar Vashishth and Partha Talukdar and Raj Acharya and Prasanta Kumar Ghosh},
year={2026},
eprint={2603.28714},
archivePrefix={arXiv},
primaryClass={eess.AS},
url={https://arxiv.org/abs/2603.28714}
}