kazalbrur/Bangla-asr-fastconformer-116m-dialects
Srotoswini — স্রোতস্বিনী
Bangla Regional Dialects ASR (116M) · Bangla-asr-fastconformer-116m-dialects
A fine-tuned FastConformer-CTC model for Bangladeshi regional Bangla speech recognition. It's the throughput specialist in a two-model family: roughly 2× the batch speed of its accuracy-focused sibling (Bhatiyali), at nearly identical single-stream latency.
স্রোতস্বিনী (Srotoswini) — "she who flows with a current," the poet's word for a river. Swift, unbroken, carrying everything downstream. This model runs with that same current, turning hours of Bangladeshi regional speech into text as fast as the audio flows in.
It transcribes standard Bangla and the country's major regional dialects — Barishal, Chittagong, Noakhali, Rangpur, Sylhet — using greedy single-pass decoding, with no external language model.
At a glance
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 ~46.1 (zero-shot) to 30.74 — a 15-point gain concentrated on the dialect sets (e.g. dialect5 improved from 74.0 to 44.0).
Usage
pip install nemo_toolkit[asr]import nemo.collections.asr as nemo_asr
model = nemo_asr.models.ASRModel.restore_from(
"bangla-stt-fastconformer-116m-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 — pair with a downstream punctuation-restoration / normalization pass for human-facing text.
Qualitative examples
Exact reference-vs-prediction matches from the validation sets, spanning broadcast, read, and spontaneous speech:
On deep regional dialect, the model faithfully transcribes dialect forms (e.g. মুই for আমি, আমনে for আপনি, লগে for সাথে) rather than normalizing to standard Bangla. This is accurate to what was spoken, though standard-text references score these as substitutions — see Limitations below.
How it compares — our own systems
This table covers our three in-house systems only, on the project's internal 9-condition suite. For a comparison against the public field on contamination-audited slices, see Independent benchmark — BanglaBench-v1 below.
Srotoswini-Fast trades ~3–5 WER points for 2.2× the GPU batch throughput of Bhatiyali-Pro — its 8× subsampling processes long audio far faster — at essentially identical single-stream latency. It still beats the 580M language-model system on every set in this suite once that model's LM is removed, at about one-fifth the size, running greedy decoding with no LM. A 1,000-hour archive transcribes in roughly 1.8 GPU-hours.
Independent benchmark — BanglaBench-v1
Scored against 19 other open-weight Bangla ASR models on 11 slices, 4,042 clips, 8.29 h, contamination-audited. The headline macro deliberately excludes the tier drawn from our own training corpora.
The fine-tuning here is transformative, not merely a domain adaptation: −66.8 WER on the neutral tier (95% CI [−71.7, −61.6]) and −21.9 on the public-favouring tier. Much of that gap reflects the base checkpoint being genuinely broken under noise — it degenerates to 172.86 WER on SVQ traffic noise, above 100% from runaway insertions — which this model fixes outright.
It's also the throughput pick: ~13× the real-time factor of Whisper large-v3 (190 vs 15 RTFx as measured here), at a quarter of its word error rate.
For maximum accuracy on dialect instead, use Bhatiyali-Pro (headline 14.43, dialect5 40.64) for roughly 2× the compute.
Intended use & limitations
Intended use:
- High-volume / batch transcription of Bangladeshi regional Bangla (retail records, call archives)
- Long-form audio where throughput matters
- CPU-only real-time fleets (~52× real-time single-stream)
Limitations:
- Noakhali dialect is the hard wall (~50+ WER) — the most acoustically divergent BD region.
- Less robust than Bhatiyali-Pro under telephone channel conditions (dialect degradation +6.2 WER vs +2.3); choose Bhatiyali-Pro when accuracy on dialect, noise, or phone audio is paramount.
- Trained on punctuation-stripped text, so it emits no punctuation or numeral normalization.
- Optimized for Bangladeshi regional Bangla; performance on other languages will be poor.
- Not a streaming model as shipped: trained with full-context attention (
att_context_size [-1, -1]), not cache-aware limited context. The NeMo streaming API is inherited but produces degraded output; real-time cache-aware use would require dedicated cache-aware fine-tuning.
Citation
@misc{Bangla-asr-fastconformer-116m-dialects,
author = {kazalbrur},
title = {Srotoswini: Bangla Regional Dialects ASR (116M, FastConformer)},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/kazalbrur/Bangla-asr-fastconformer-116m-dialects}
}The pair
Bhatiyali (ভাটিয়ালি, the song) listens deepest; Srotoswini (স্রোতস্বিনী, the river) runs fastest. Same 970-hour regional training, same greedy decoding, same ~120M-parameter 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).
