CoolFace
Modelpublic

kazalbrur/Bangla-asr-fastconformer-116m-dialects

sourceHugging Faceapache-2.0updated 17d agoView on Hugging Face
0likes73downloads
Model Card

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

PropertyValue
ArchitectureFastConformer-CTC (EncDecCTCModelBPE), 8× subsampling
Parameters115.6M
TokenizerSentencePiece BPE, 1024 tokens
Sample rate16 kHz, mono
DecodingGreedy, single pass (no language model)
Training datajoint3 — 400k clips / 970 h, 22 curated Bangla sources
eval_export macro WER / CER30.74 / 15.49
9-set macro (incl. SVQ noise)27.89 / 11.85
FrameworkNVIDIA NeMo

Accuracy

Word / Character Error Rate (%), strict scoring — Unicode-normalized and punctuation-stripped identically on references and hypotheses:

Evaluation setWERCER
banspeech (BD broadcast)20.737.30
dialect5 (15 BD dialects)44.0131.10
indicvoices (spontaneous)14.174.19
macro-valid (clean read)13.823.22
regspeech12 (BD regional)60.9731.65
eval_export macro30.7415.49
9-set macro (incl. 4 SVQ noise conditions)27.8911.85

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.

SettingValue
Steps60,000
Effective batch32 (bs 8 × grad-accum 4)
Learning rate1e-4, cosine decay, 1,000-step warmup
Precisionbf16
Augmentationspeed / white-noise / gain perturbation + SpecAugment
Checkpoint selection3-checkpoint weight average (steps 47.5k + 48.5k + 55k)
HardwareSingle 12 GB GPU (~14 h)

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

bash
pip install nemo_toolkit[asr]
python
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:

Reference (= prediction, exact)Domain
তিনি জি নিউজের একজন সহকারী কার্যনির্বাহী প্রযোজক ছিলেনclean read
তরুণ বয়স থেকে জাস্টিন ট্রুডো লিবারেল পার্টির সমর্থক ছিলেনclean read
মাঝখানের গোলাকৃতি জায়গাটি রিং নামে পরিচিতclean read
সেখান থেকে রাতের অন্ধকারে ফাইল গেল সামাদের বাসায়BD broadcast
রুমি কবে নাগাদ আসবে কিছু বলেছেBD broadcast
সে আসল খবর বলে দেয়BD broadcast

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.

ModelParams9-set macro WER / CERGPU throughputCPU latency
Bhatiyali-Pro (conformer-120m-dialects)121.5M22.31 / 9.26~250×111 ms
Srotoswini-Fast (this model)115.6M27.89 / 11.85~560×110 ms
w2v-BERT + KenLM (retired)580M25.12 / 11.00~25×>1.2 s

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.

[image]

[image]

Srotoswiniits public baseWhisper large-v3
Parameters116M116M1550M
Headline WER (tier B+C)21.7873.5878.67
Headline CER6.4425.2842.68
Tier A — BD dialect + project sets30.7446.0583.46
Dialect5 (Bangladeshi regional)44.0174.03101.18
SVQ traffic noise22.96172.8679.95

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.

[image]

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

bibtex
@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).