Murivo-TTS 21M Hausa (48 kHz Flow-Matching DiT)
Lightweight Text-to-Speech Engine for Hausa
Murivo-TTS is an ultra-lightweight, 100% offline text-to-speech engine. It combines a ~20.9M parameter Flow-Matching Diffusion Transformer (DiT) acoustic backbone with the VoxCPM2 48 kHz Causal AudioVAE neural vocoder to synthesize 48,000 Hz audio natively.
- Model File:
murivo_21m_ha.pt(~41.9 MB, FP16) - Sampling Rate: 48,000 Hz (VoxCPM2 AudioVAE)
- Architecture: Flow-Matching Diffusion Transformer (Euler ODE Solver)
- Language: Hausa (Northern Nigeria & Sahel)
- Checkpoint Status: Stage 2 Conversational (Step 1,800)
🔬 Training Pipeline & Alignment Methodology
Murivo-TTS Hausa was trained across two stages using the lightweight Rápido DiT flow-matching architecture:
- Alignment Targets: Character-level duration targets were extracted using Meta's MMS forced aligner (
facebook/mms-1b-all) to map tones, sub-dots, and orthography to acoustic frames. - Stage 1 (Foundation): Trained on OpenBible Hausa narration. Early warmup froze the DiT backbone to anchor text alignment and duration modeling before unfreezing for joint training.
- Stage 2 (Conversational): Fine-tuned on Nigerian Common Voice (Hausa). The DiT backbone was kept frozen to prevent microphone noise and room acoustics from degrading voice quality, updating only the duration predictor and text encoder for natural conversational pacing.
🎧 Audio Showcase & Evaluation
Listen to native 48 kHz master synthesis samples generated directly by this checkpoint:
| Sample | Audio Player | Transcript & English Translation |
|---|---|---|
| Sample 1 | Native: Da haƙuri da jajircewa, za mu iya shawo kan matsaloli kuma mu cim ma manufofin da muka sanya wa kanmu. English: "With patience and determination, we can overcome challenges and achieve the goals we have set for ourselves." Note: Tests implosives and ejectives ('haƙuri', 'jajircewa') and long vowel balance. |
|
| Sample 2 | Native: Fasaha tana sauya yadda muke rayuwa, sadarwa, da magance matsaloli a cikin al'ummominmu. English: "Technology is changing the way we live, communicate, and solve problems in our communities." Note: Tests glottal stop and diphthong transitions ('al'ummominmu'). |
|
| Sample 3 | Native: Ana gina al'umma ta gari bisa girmamawa, fahimtar juna, da son taimakon juna. English: "A good community is built on respect, understanding, and the willingness to help one another." Note: Tests reciprocal phrasing and rhythmic clause pace. |
📊 Training Curriculum & Progression
- Dataset: multilingual-tts/open-bible & benjaminogbonna/nigerian_common_voice_dataset
- Curriculum Summary: Multi-stage curriculum: Stage 1 established clean phonetic alignment over 5,000 steps on OpenBible Hausa. Stage 2 fine-tuned over 1,800 steps on Nigerian Common Voice Hausa to master hooked consonants (ɓ, ɗ, ƙ, ƴ) and natural conversational flow.
Convergence & Loss Progression
| Training Stage | Steps | Dataset | Focus | Final Loss |
|---|---|---|---|---|
| Stage 1 (Studio) | 5,000 | OpenBible Hausa | Boko orthography & hooked letters | 0.8996 (Flow: 0.8415) |
| Stage 2 (Conversational) | 1,800 | Common Voice Hausa | Natural speech rhythm & tempo | Duration: 0.1661 |
⚡ Quickstart Guide
1. Requirements
Install the minimal dependencies (standard Python, no C-libraries or system espeak-ng required):
pip install torch soundfile numpy
2. Command-Line Inference (CLI)
Download this repository or infer.py and run:
python infer.py --lang hausa --text "Da haƙuri da jajircewa, za mu iya shawo kan matsaloli kuma mu cim ma manufofin da muka sanya wa kanmu." --out output_hausa.wav
3. Python API
from infer import MurivoTTS
# Initialize engine (automatically manages model and vocoder)
tts = MurivoTTS(lang="hausa", device="cuda") # or device="cpu"
# Synthesize 48 kHz audio waveform
waveform = tts.synthesize(
text="Da haƙuri da jajircewa, za mu iya shawo kan matsaloli kuma mu cim ma manufofin da muka sanya wa kanmu.",
guidance=1.8,
speed=1.0,
steps=20
)
# Save to disk
tts.save_wav(waveform, "output.wav", sample_rate=48000)
Note on Vocoder: The engine decodes speech using the VoxCPM2 48 kHz causal AudioVAE. On first run,
infer.pywill automatically cacheaudiovae.pthfrom Hugging Face (openbmb/VoxCPM2) if it is not already in your directory.
📜 Attributions & Acknowledgments
- Trained & Created by: Samuel Olubukun
- Acoustic Architecture Lineage: Special thanks to Anurag Kanade and the creators of Rápido TTS for their pioneering lightweight DiT flow-matching speech synthesis architecture. Check out Rápido TTS on Hugging Face and GitHub.
- Neural Vocoder: Built upon the 48 kHz causal VoxCPM2 AudioVAE developed by the OpenBMB Team.
- Dataset Communities:
- Special thanks to the OpenBible Multilingual TTS initiative.
- Special thanks to Benjamin Ogbonna's Nigerian Common Voice dataset .
📖 Citations
Citing Murivo-TTS
If you use Murivo-TTS in your research or applications, please cite:
@misc{murivo2026,
title = {Murivo-TTS: High-Fidelity 48 kHz Flow-Matching Text-to-Speech for English, Yorùbá, Hausa & Igbo},
author = {Olubukun, Samuel},
year = {2026},
howpublished = {\url{https://huggingface.co/samuelolubukun/murivo-tts-21m-hausa}}
}
Architectural Lineage (Rápido TTS)
Murivo's acoustic backbone builds upon the open-source Rápido DiT architecture by Anurag Kanade:
@misc{rapido2026,
title = {Rápido: Tiny, Fast Brazilian Portuguese Text-to-Speech},
author = {Kanade, Anurag},
year = {2026},
howpublished = {\url{https://github.com/anurag12-webster/rapido-tts}}
}
📄 License
This model and its accompanying code are released under the Apache 2.0 License.