ChatterBox Bangla

A fine-tuned version of ResembleAI/chatterbox for Bengali (Bangla) text-to-speech synthesis.

Zerohot TTS Output

Original Output Text
এই শোন শোন, আজকে স্কুলে কী হয়েছে জানিস? — না তুই জানিস না, তুই তো ছিলিসই না! তো দীপু স্যারের ক্লাসে — আরে দীপু স্যার মানে অঙ্কের স্যার, চেনিস না? যার নাক দিয়ে শোঁ শোঁ শব্দ হয়! তো স্যার বোর্ডে লিখছেন, আর পিছন থেকে রাহুল
আচ্ছা আমি তোকে একটা জিনিস বলব — আরে থাম থাম, আগে ফোনটা রাখ! হ্যাঁ তো, তো সেদিন আমি বাজার থেকে ফিরছিলাম — না না, এটা সেই বাজার না, ওই যে নতুন যেটা খুলেছে
শোন, Morty ফুচকার মধ্যে যে আলু থাকে, সেই আলু একসময় মাটির নিচে অন্ধকারে বড় হয়েছে। কোনো আশা নেই, কোনো স্বপ্ন নেই, শুধু মাটি আর অন্ধকার। আর তারপরেও সে টিকে থেকেছে। তুই সেই আলুর চেয়েও কম resilient, এইটা বুঝলি?
আমরা কেউ মাষ্টার হতে চেয়েছিলাম, কেউ ডাক্তার, কেউ উকিল। অমলকান্তি সে-সব কিছু হতে চায়নি। সে রোদ্দুর হতে চেয়েছিল! ক্ষান্তবর্ষণ কাক-ডাকা বিকেলের সেই লাজুক রোদ্দুর, জাম আর জামরুলের পাতায় যা নাকি অল্প-একটু হাসির মতন লেগে থাকে।
শুরু থেকেই ঝড়ো ব্যাটিং উপহার দেন ভারতের ক্রিকেটারেরা। ওপেনার অভিষেক শর্মা এবং ইশান কিশান দুজনেই আলাদা ধাঁচের দুটি অর্ধশতক করেন, আর তাদের রান করার গতি ছিল অত্যন্ত fast.
শুরু থেকেই ঝড়ো ব্যাটিং উপহার দেন ভারতের ক্রিকেটারেরা। ওপেনার অভিষেক শর্মা এবং ইশান কিশান দুজনেই আলাদা ধাঁচের দুটি অর্ধশতক করেন, আর তাদের রান করার গতি ছিল অত্যন্ত fast.
আমরা কেউ মাষ্টার হতে চেয়েছিলাম, কেউ ডাক্তার, কেউ উকিল। অমলকান্তি সে-সব কিছু হতে চায়নি। সে রোদ্দুর হতে চেয়েছিল! ক্ষান্তবর্ষণ কাক-ডাকা বিকেলের সেই লাজুক রোদ্দুর, জাম আর জামরুলের পাতায় যা নাকি অল্প-একটু হাসির মতন লেগে থাকে।

Model Details

  • Base model: ResembleAI/chatterbox — multilingual ChatterBox (supports 23 languages)
  • Fine-tuned on: Bengali speech corpus (~99 hours, 58,820 samples)
    • ai4bharat/Shrutilipi (Bengali split) — 17,882 samples, ~28h
    • ai4bharat/Rasa (Bengali split) — 28,088 samples, ~51h
    • SPRINGLab/IndicTTS_Bengali — 12,852 samples, ~20h
  • Training steps: 20,000
  • Epochs: ~10.6
  • Architecture: T3 (Text-to-Token Transformer) + HiFT-GAN vocoder
  • Vocabulary: Extended from 704 → 2,530 tokens to cover Bengali characters

Requirements

git clone https://github.com/gokhaneraslan/chatterbox-finetuning
cd chatterbox-finetuning
pip install -r requirements.txt

One-time patch (upstream vocab resize fix)

The upstream chatterbox-finetuning repo initialises T3 with a hard-coded 704-token vocabulary, which causes a size mismatch when loading this model (vocab=2530). Apply this one-line fix before running inference:

# Run from inside the cloned chatterbox-finetuning directory
python - <<'EOF'
import pathlib
f = pathlib.Path("src/chatterbox_/tts.py")
txt = f.read_text()
old = "        t3 = T3()\n        t3_state = load_file(ckpt_dir / \"t3_cfg.safetensors\")"
new = (
    "        t3_state = load_file(ckpt_dir / \"t3_cfg.safetensors\")\n"
    "        from .models.t3.modules.t3_config import T3Config\n"
    "        t3 = T3(hp=T3Config(text_tokens_dict_size=t3_state[\"text_emb.weight\"].shape[0]))"
)
f.write_text(txt.replace(old, new))
print("Patched tts.py")
EOF

Usage

import sys
sys.path.insert(0, "/path/to/chatterbox-finetuning")

from huggingface_hub import snapshot_download
from src.chatterbox_.tts import ChatterboxTTS
import torchaudio

model_dir = snapshot_download("BosonLab/chatterbox-bangla")
model = ChatterboxTTS.from_local(model_dir, device="cuda")

text = "আমি বাংলায় কথা বলতে পারি। এটি একটি পরীক্ষামূলক বাক্য।"
wav = model.generate(text)

torchaudio.save("output.wav", wav, model.sr)

With Voice Cloning

wav = model.generate(text, audio_prompt_path="reference.wav")

Files

File Description
t3_cfg.safetensors Fine-tuned T3 text-to-token transformer (Bengali, vocab=2530)
s3gen.safetensors Speech codec decoder (unchanged from base)
ve.safetensors Voice encoder (unchanged from base)
conds.pt Conditioning embeddings (unchanged from base)
tokenizer.json Tokenizer extended with Bengali characters

Training Data

All audio resampled to 16kHz. Text cleaned and normalized. Datasets sourced from AI4Bharat and SPRINGLab public datasets.

Limitations

  • Optimized for Bengali; other languages may degrade
  • Best results with clear, well-punctuated Bengali text
  • Emotion control inherited from base ChatterBox multilingual model
  • Requires chatterbox-finetuning kit due to extended Bengali vocabulary
Downloads last month
158
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for BosonLab/chatterbox-bangla

Finetuned
(42)
this model

Datasets used to train BosonLab/chatterbox-bangla

Space using BosonLab/chatterbox-bangla 1