kazalbrur/bangla-asr-conformer-120m-dialects
Bhatiyali — ভাটিয়ালি
Bangla Regional Dialects ASR (120M) · bangla-asr-conformer-120m-dialects
A fine-tuned Conformer-CTC model for Bangladeshi regional Bangla speech recognition — the accuracy champion of a two-model family, and the most accurate open Bangla ASR model in its weight class on our evaluation. It leads every accuracy metric and every noise condition, and is the default choice for dialect, noisy, and telephone audio.
ভাটিয়ালি (Bhatiyali) — the boatman's song that drifts downstream along every river of Bengal, carrying the voice of each region it passes. Like the song, this model listens to the whole land — Barishal, Chittagong, Noakhali, Rangpur, Sylhet — and writes down what it hears.
Greedy single-pass decoding, no external language model.
Model Details
Accuracy
Word / Character Error Rate (%), strict scoring — Unicode-normalized and punctuation-stripped identically on references and hypotheses:
Training
Fine-tuned in a single stage on the joint3 mixture — 400k clips / 970 hours across 22 curated Bangla sources (~30% Bangladeshi-dialect-adjacent), spanning broadcast, spontaneous, read, and regional-dialect speech.
Fine-tuning on the broad regional mixture cut eval_export macro WER from the base checkpoint's ~38.1 (zero-shot) to 27.45, with the largest gains on the dialect sets (e.g. dialect5 74.0 → 40.6).
Usage
pip install nemo_toolkit[asr]import nemo.collections.asr as nemo_asr
model = nemo_asr.models.ASRModel.restore_from(
"bangla-stt-conformer-120m-dialects.nemo"
)
model.eval()
result = model.transcribe(["audio_16k_mono.wav"])
print(result[0].text)
# e.g. "ডাক্তার পরশু দিনই সকালে রাজশাহী রওনা হয়ে গেছেন"Input: 16 kHz mono audio. Output: lowercase, unpunctuated Bangla graphemes — add a punctuation-restoration / normalization pass downstream for human-facing text.
Qualitative Examples
Exact reference-vs-prediction matches from the validation sets — transcribed word-for-word across read, broadcast, and spontaneous speech:
On deep regional dialect the model faithfully transcribes dialect forms (মুই for আমি, আমনে for আপনি, লগে for সাথে) rather than normalizing to standard Bangla — accurate to what was spoken, though standard-text references score these as substitutions (see Limitations).
How it compares — our own systems
Scope: this table is our three in-house systems only, on the project's internal 9-condition suite (5 read/broadcast/dialect sets + 4 SVQ noise conditions). For a comparison against the public field on contamination-audited slices, see Independent benchmark — BanglaBench-v1 below, where the picture is more qualified.
Among these three, Bhatiyali wins every macro average at every normalization level, sweeps all four noise conditions, and is the most robust under simulated telephone channel (GSM 8 kHz: +2.3 WER on dialect, vs +6.2 for Srotoswini-Fast) — while using ~1/5 the parameters and ~1/22 the compute of the 580M language-model system it replaced. A 1,000-hour archive transcribes in ~4 GPU-hours (~250× real-time, batch 16); ~51× real-time single-stream on 8 CPU threads.
Independent benchmark — BanglaBench-v1
Scored against 19 other open-weight Bangla ASR models on 11 slices, 4,042 clips, 8.29 h, one scoring pipeline, contamination audited.
Slices are grouped by who they favour, and the headline macro deliberately excludes the tier drawn from our own training corpora. Tier A = the corpora we fine-tune on, tier B = neutral (Google SVQ bn_bd, held out for everyone), tier C = FLEURS-bn + CommonVoice-bn, which the public baselines trained on and we did not.
Read this honestly
What the fine-tuning bought is Bangladeshi dialect capability at no cost to general accuracy: −36.1 WER on dialect5 and −8.1 on IndicVoices, with the neutral tier unchanged (−0.17, not significant).
So: choose this model when your audio is Bangladeshi — regional, telephone, or noisy. For generic or Indian-Bengali read speech the public base is equally good and free.
It is nonetheless the strongest model in the field on dialect: no evaluated system does better, and the best public model is 33 WER points behind on dialect5 (Bengali.AI winner, 73.75 vs 40.64).
- Best CER of all 20 models evaluated; wins 6 of the 11 slices
- Beats 15 of the 19 other models on accuracy and throughput simultaneously
- Every dialect slice is same-corpus with our training data — see the benchmark card's contamination matrix before quoting tier A
Intended Use & Limitations
Intended use:
- Accurate transcription of Bangladeshi regional Bangla — dialect, noisy, or telephone audio
- Retail customer records, call transcripts, spoken-query understanding
- Offline / batch pipelines where accuracy is the priority
Limitations:
- Noakhali dialect remains the hard wall (~55 WER) — the most acoustically divergent BD region; reproducible across every eval. Closing it needs Noakhali training data, not decoding.
- Trained on punctuation-stripped text → emits no punctuation or numeral normalization.
- Optimised for Bangladeshi regional Bangla; performance on other languages will be poor.
- WER on dialect sets scored against standard references understates true quality — the model faithfully transcribes dialect forms, which standard references count as errors.
Citation
@misc{bangla-asr-conformer-120m-dialects,
author = {kazalbrur},
title = {Bhatiyali: Bangla Regional Dialects ASR (120M, Conformer)},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/kazalbrur/bangla-asr-conformer-120m-dialects}
}The pair
Bhatiyali (ভাটিয়ালি, the song) listens deepest; Srotoswini (স্রোতস্বিনী, the river) runs fastest. Same 970-hour regional training, same greedy decoding, same ~120M class — two points on one frontier. Run Bhatiyali when every word matters, Srotoswini when every second does; or run both and let a confidence referee pick per utterance (measured oracle ceiling: −2.35 macro WER).
