Murivo-TTS 21M Igbo (48 kHz Flow-Matching DiT)
Lightweight Text-to-Speech Engine for Igbo
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_ig.pt(~41.9 MB, FP16) - Sampling Rate: 48,000 Hz (VoxCPM2 AudioVAE)
- Architecture: Flow-Matching Diffusion Transformer (Euler ODE Solver)
- Language: Igbo (Southeastern Nigeria)
- Checkpoint Status: Stage 2 Conversational (Step 1,800)
🔬 Training Pipeline & Alignment Methodology
Murivo-TTS Igbo 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 Igbo 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 (Igbo). 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: Ọdịnihu anyị chọrọ na-amalite site na mkpebi anyị na-eme taa na mbọ anyị na-agba n'ọrụ anyị. English: "The future we want begins with the decisions we make today and the effort we put into our work." Note: Tests sub-dot vowels ('Ọdịnihu', 'chọrọ'), nasal 'mbọ', and tone stability. |
|
| Sample 2 | Native: Asụsụ na omenala anyị bụ akụkụ dị mkpa nke njirimara anyị, anyị ga-echekwakwa ha maka ọgbọ ndị na-abịa n'ọdịnihu. English: "Our languages and cultures are important parts of who we are, and we must preserve them for future generations." Note: Tests aspiration and rapid compounding ('ga-echekwakwa'). |
|
| Sample 3 | Native: Ezi ọganihu na-abịa mgbe anyị ji ihe ọmụma na ikike anyị eme ka ndụ dịrị ndị ọzọ mma. English: "True progress comes when we use our knowledge and abilities to make life better for others." Note: Tests vowel harmony in 'ọganihu' and tone step-downs. |
📊 Training Curriculum & Progression
- Dataset: multilingual-tts/open-bible & benjaminogbonna/nigerian_common_voice_dataset
- Curriculum Summary: Multi-stage curriculum: Stage 1 trained for 5,000 steps on OpenBible Igbo to anchor sub-dot vowels and nasal combinations. Stage 2 fine-tuned for 1,800 steps on Nigerian Common Voice Igbo, refining authentic Igbo rhythm and stress patterns.
Convergence & Loss Progression
| Training Stage | Steps | Dataset | Focus | Final Loss |
|---|---|---|---|---|
| Stage 1 (Studio) | 5,000 | OpenBible Igbo | Vowel harmony & subdots (ị, ọ, ụ) | 0.9410 (Flow: 0.8872) |
| Stage 2 (Conversational) | 1,800 | Common Voice Igbo | Conversational prosody & Igbo cadence | Duration: 0.2708 |
⚡ 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 igbo --text "Ọdịnihu anyị chọrọ na-amalite site na mkpebi anyị na-eme taa na mbọ anyị na-agba n'ọrụ anyị." --out output_igbo.wav
3. Python API
from infer import MurivoTTS
# Initialize engine (automatically manages model and vocoder)
tts = MurivoTTS(lang="igbo", device="cuda") # or device="cpu"
# Synthesize 48 kHz audio waveform
waveform = tts.synthesize(
text="Ọdịnihu anyị chọrọ na-amalite site na mkpebi anyị na-eme taa na mbọ anyị na-agba n'ọrụ anyị.",
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-igbo}}
}
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.