Instructions to use ananddey/torongo-tts-as with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ananddey/torongo-tts-as with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-to-speech", model="ananddey/torongo-tts-as")# Load model directly from transformers import AutoTokenizer, AutoModelForTextToWaveform tokenizer = AutoTokenizer.from_pretrained("ananddey/torongo-tts-as") model = AutoModelForTextToWaveform.from_pretrained("ananddey/torongo-tts-as") - Notebooks
- Google Colab
- Kaggle
Torongo-TTS-AS
Torongo-TTS-AS is a single-speaker Assamese (as) text-to-speech (TTS) model that synthesises written Assamese into a natural, expressive female voice.
The model is based on the VITS architecture and is lightweight (~36M parameters), running comfortably on a consumer grade CPU and mobile device. It performs end to end synthesis, mapping input text directly to a 16 kHz waveform, and ships with a built in Assamese text normaliser that speaks numbers, dates, English words, and symbols the way a person naturally would.
Torongo-TTS-AS is available in the 🤗 Transformers library and can be loaded directly with VitsModel.
👉 Try it live: Interactive demo on Hugging Face Spaces
Model architecture details
VITS (Variational Inference with adversarial learning for end to end Text-to-Speech) is an end to end speech synthesis model that predicts a speech waveform conditional on an input text sequence. It is a conditional variational autoencoder (VAE) comprised of a posterior encoder, a decoder, and a conditional prior. A stochastic duration predictor allows the model to synthesise speech with different rhythms from the same input text, making generation non deterministic.
| Architecture | VITS |
| Training dataset | ananddey/assamese-single-fem-dataset |
| Parameters | ~36 M |
| Sampling rate | 16 000 Hz |
| Language | Assamese (asm) |
| Tokenizer | VitsTokenizer |
| Speaking rate | 1.0 (adjustable at inference time) |
| Framework | 🤗 Transformers ≥ 4.36.2, PyTorch |
Generated samples
Listen to the samples below, or try your own text in the live demo.
| Sample | Text | Audio |
|---|---|---|
| Greeting | আদৰণি জনাইছোঁ। তৰংগৰ জগতখনলৈ আপোনাক স্বাগতম। | |
| Numbers & date | আজি ২০২৬ চনৰ ৫ জুলাই। বতৰটো আজি বৰ ধুনীয়া হৈছে। | |
| Poetic | বতাহত ভাঁহি আহে পুৱাৰ কোমল গান, দূৰ আকাশত জ্বলি উঠে সোনালী অভিমান। | |
| Informative | অসম ভাৰতৰ উত্তৰ-পূৱ অঞ্চলত অৱস্থিত এখন ৰাজ্য। ইয়াৰ ৰাজধানী দিছপুৰ। | |
| Everyday | আজি বহুত দিনৰ মূৰত ঘৰলৈ আহি মাৰ হাতৰ ৰন্ধা খাই বৰ ভাল লাগিল। |
Quick start
Python API
Step 1 — Create a project folder
mkdir torongo-tts && cd torongo-tts
Step 2 — Install dependencies
pip install "transformers>=4.36.2" huggingface_hub torch numpy scipy
Step 3 — Download the text normaliser
assamese_normalizer.py is not part of the model weights, so download it once:
huggingface-cli download ananddey/torongo-tts-as assamese_normalizer.py --local-dir .
Step 4 — Generate speech
Run from the folder containing assamese_normalizer.py:
import numpy as np
import scipy.io.wavfile
from transformers import pipeline
from assamese_normalizer import normalize_assamese_text
pipe = pipeline("text-to-speech", model="ananddey/torongo-tts-as")
text = normalize_assamese_text("আজি ২০২৬ চনৰ ৫ জুলাই।")
speech = pipe(text)
int16 = np.clip(speech["audio"].squeeze() * 32767.0, -32768.0, 32767.0).astype(np.int16)
scipy.io.wavfile.write("output.wav", rate=speech["sampling_rate"], data=int16)
Or use VitsModel :
import numpy as np
import scipy.io.wavfile
import torch
from transformers import AutoTokenizer, VitsModel
from assamese_normalizer import normalize_assamese_text
model = VitsModel.from_pretrained("ananddey/torongo-tts-as")
tokenizer = AutoTokenizer.from_pretrained("ananddey/torongo-tts-as")
model.eval()
model.config.speaking_rate = 0.9 # optional speaking rate: < 1.0 = slower
text = normalize_assamese_text("নমস্কাৰ, আপোনাৰ দিনটো শুভ হওক।")
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
waveform = outputs.waveform.squeeze().numpy()
int16 = np.clip(waveform * 32767.0, -32768.0, 32767.0).astype(np.int16)
scipy.io.wavfile.write("output.wav", rate=model.config.sampling_rate, data=int16)
CLI: inference.py
A command line alternative option for audio generation.
Step 1 — Create a project folder
mkdir torongo-tts && cd torongo-tts
Step 2 — Install dependencies
pip install "transformers>=4.36.2" huggingface_hub torch numpy scipy
Step 3 — Download the scripts
huggingface-cli download ananddey/torongo-tts-as inference.py assamese_normalizer.py --local-dir .
Step 4 — Run
python inference.py --text "নমস্কাৰ, আপোনাৰ দিনটো শুভ হওক।" --out output.wav
Flags: --speed 0.9 (slower), --no-norm (skip normalisation).
Training
The model was trained on the ananddey/assamese-single-fem-dataset.
| Setting | Value |
|---|---|
| Training samples | ~10 049 (re-split from the 11.3 k dataset) |
| Validation samples | 1 500 |
| Batch size | 32 |
| Epochs | 80 |
| Learning rate | 2e-5 |
| LR schedule | ExponentialLR |
| Mixed precision | bf16 |
| Mel loss weight | 35 |
| Discriminator loss weight | 3 |
| Duration loss weight | 1 |
| KL loss weight | 1.5 |
The discriminator weights used during training were removed from the final checkpoint so it loads cleanly with VitsModel for inference.
Training curves
Validation mel loss steadily decreased over training, and the train/validation curves track closely, indicating stable convergence without overfitting.
Limitations
- Single speaker: The model produces only one female voice. It cannot generate male voices or switch between speakers.
- 16 kHz only: The model was trained and runs at 16 000 Hz. It does not support higher sample rates.
- Assamese only: Trained exclusively on Assamese text. Other languages will produce unintelligible output.
- Short utterances: Works best on sentence-length text.
- No emotional control: The model always produces a neutral reading style. There is no mechanism to control prosody, emotion or emphasis.
License
This model is released under CC BY-NC 4.0.
Model card author
Developed by Anand Dey (@ananddey, ananddey.nic@gmail.com).
Citation
If you use this model, please cite the dataset:
@dataset{dey2026assamesesinglefem,
title = {Assamese Single Female TTS Dataset},
author = {Anand Dey},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/ananddey/assamese-single-fem-dataset},
}
- Downloads last month
- -

