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 36M parameter, single speaker Assamese text-to-speech model that turns written Assamese into a natural, expressive female voice. Built on the VITS architecture, a conditional variational autoencoder trained with adversarial learning, it synthesises speech end to end, mapping text directly to a 16 kHz waveform. It is designed to easily run on any consumer grade CPU.
Model details
| Architecture | VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) |
| Dataset | ananddey/assamese-single-fem-dataset (~11.3 k utterances, single female speaker) |
| 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 |
Demo samples
| 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 the script 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 |
| Checkpoint | Final epoch (80) |
The discriminator weights used during training were removed from the final checkpoint so it loads cleanly with VitsModel for inference.
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.
Citation
If you use this model, please cite the dataset:
@dataset{dey2025assamesesinglefem,
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
- -