Model reference · open weights
Simba-TTS-lin is an open-weight audio or speech model from UBC-NLP. Simba-TTS-lin (FP32) weighs 73 MB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the UBC-NLP/Simba-TTS-lin model card, 2026-10-01
What it is
| Released by | UBC-NLP |
|---|---|
| Released | 2025-05-08 |
| Parameters | 36M |
| VRAM | 73 MB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Voice of a Continent is a comprehensive open-source ecosystem designed to bring African languages to the forefront of artificial intelligence. By providing a unified suite of benchmarking tools and state-of-the-art models, we ensure that the future of speech technology is inclusive, representative, and accessible to over a billion people.
Introduced in our EMNLP 2025 paper Voice of a Continent, the Simba Series represents the current state-of-the-art for African speech AI.
The Simba family consists of state-of-the-art models fine-tuned using SimbaBench. These models achieve superior performance by leveraging dataset quality, domain diversity, and language family relationships.
Text-to-Speech — Natural Voice Synthesis.
🌍 Language Coverage (7 African languages)Afrikaans (
afr), Asante Twi (asanti), Akuapem Twi (akuapem), Lingala (lin), Southern Sotho (sot), Tswana (tsn), Xhosa (xho)
| TTS Model | Architecture | Hugging Face Card | Status |
|---|---|---|---|
| Simba-TTS-afr 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-afr | ✅ Released |
| Simba-TTS-twi-asanti 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-twi-asanti | ✅ Released |
| Simba-TTS-twi-akuapem 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-twi-akuapem | ✅ Released |
| Simba-TTS-lin 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-lin | ✅ Released |
| Simba-TTS-sot 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-sot | ✅ Released |
| Simba-TTS-tsn 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-tsn | ✅ Released |
| Simba-TTS-xho 🔊 | MMS-TTS | 🤗 https://huggingface.co/UBC-NLP/Simba-TTS-xho | ✅ Released |
🧩 Usage Example
You can easily run inference using the Hugging Face transformers library.
from transformers import VitsModel, AutoTokenizer
import torch
model_name="Simba-TTS-afr" ## Simba-TTS-twi-asanti, Simba-TTS-twi-akuapem, Simba-TTS-lin, Simba-TTS-sot, Simba-TTS-tsn, Simba-TTS-xho
model = VitsModel.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "Ons noem hierdie deeltjies sub-atomiese deeltjies" #example of Afrikaans (afr) language
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
output = model(**inputs).waveform
The resulting waveform can be saved as a .wav file:
scipy.io.wavfile.write("outputfile.wav", rate=model.config.sampling_rate, data=output.float().numpy())
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.