Views
No views yet
⚠️ Experimental research model — trained for only ~1 epoch. A full fine-tune of VoxCPM2 for Yoruba and Yoruba–English code-switched speech, trained on ~1,039 hours pooled from four sources, but stopped at 28,000 steps — only ~1.06 passes over the full dataset, and well before validation loss plateaued (see Training below). Promising and a clear step up from our first release, but this model has seen each training example only about once; expect it to keep improving substantially with further training.
| Source | Hours | Notes |
|---|---|---|
| DSN African Voices | 309.0 h | spontaneous, multi-speaker |
| NaijaVoices | 614.0 h | read + spontaneous, multi-speaker |
| YECS (LyngualLabs) | 107.5 h | Yoruba-English code-switching, 140 speakers |
WAXAL (yor_tts) | 8.1 h | spontaneous |
| Total | 1,038.7 h |
val/loss/diff) was still
trending down with noise at the final checkpoint (0.730, a new low for the run) —
not yet at a plateau. More training would likely improve this further.1# pip install git+https://github.com/OpenBMB/VoxCPM.git
2from huggingface_hub import snapshot_download
3from voxcpm import VoxCPM
4import soundfile as sf
5
6model_dir = snapshot_download("LyngualLabs/YorubaEnglish-CodeSwitching-TTS")
7model = VoxCPM.from_pretrained(model_dir, load_denoiser=False)
8
9# --- voice cloning: a reference clip + its exact transcript ---
10wav = model.generate(
11 text="Mo fẹ́ learn how to code, ṣùgbọ́n mi ò mọ programming language wo ló make sense.",
12 prompt_wav_path="reference.wav",
13 prompt_text="Ìròyìn ti sọ pé the government will ensure electricity tariff goes down ní January.",
14 cfg_value=2.0,
15 inference_timesteps=22,
16)
17sf.write("output.wav", wav, model.tts_model.sample_rate)
18
19# --- or voice-design (no reference): prepend a voice description in parentheses ---
20# NOTE: on this checkpoint voice-design is unreliable (low volume, weak gender/energy
21# control) -- full fine-tuning on cloning-style data didn't reinforce this base-model
22# skill. For controllable voices, prefer cloning (above) from a short reference clip.
23wav = model.generate(
24 text="(A young Nigerian woman, clear voice) Ẹ kú àárọ̀, ẹ jọ̀ọ́ ẹ jẹ́ ká bẹ̀rẹ̀ ìpàdé.",
25 cfg_value=2.0,
26 inference_timesteps=22,
27)
28sf.write("voice_design.wav", wav, model.tts_model.sample_rate)inference_timesteps (20–25) for smoother audio; cfg_value higher sticks
closer to the reference.1@misc{datasciencenigeria_african_voices_2025,
2 title = {African Voices: Multilingual Speech Dataset for Low-Resource African Languages},
3 author = {DataScience Nigeria},
4 year = {2025},
5 howpublished = {\url{https://www.africanvoices.io}}
6}
7
8@article{emezue2025naijavoices,
9 title = {The NaijaVoices Dataset: Cultivating Large-Scale, High-Quality, Culturally-Rich Speech Data for African Languages},
10 author = {Emezue, Chris and Community, NaijaVoices and Awobade, Busayo and Owodunni, Abraham and Emezue, Handel and Emezue, Gloria Monica Tobechukwu and Emezue, Nefertiti Nneoma and Ogun, Sewade and Akinremi, Bunmi and Adelani, David Ifeoluwa and others},
11 journal = {arXiv preprint arXiv:2505.20564},
12 year = {2025}
13}
14
15@misc{lynguallabs_yecs_2026,
16 title = {{YECS}: A 120-Hour Community-Curated Yoruba-English Code-Switching Corpus},
17 author = {{LyngualLabs}},
18 year = {2026},
19 howpublished = {\url{https://lynguallabs.org/yecs}}
20}
21
22@article{waxal2026,
23 title = {WAXAL: A Large-Scale Multilingual African Language Speech Corpus},
24 author = {Anonymous},
25 journal = {arXiv preprint arXiv:2602.02734},
26 year = {2026}
27}
28
29@article{waxalnet2026,
30 title = {The WAXAL ASR Benchmark: Fine-Tuned Edge Models Across 19 African Languages},
31 author = {Olufemi, Victor Tolulope and Babatunde, Oreoluwa and Njema, Ramsey and
32 Gbotemi, Bolarinwa and Yen, Wanchi Lucia and Uzodinma, John and
33 Ajayi, Sunday and Williams, Oluwademilade and Moshood, Kausar and
34 Anyaele, Innocent Elendu and Arefaine, Akebert Tesfahunegn and
35 Hunzwi, Candace and Daniel, Wongel Dawit and Namuganga, Emmilly Immaculate and
36 Kadima, Cleophas and Bahizire, Athanase Biluge and Ranaivoson, Onitsiky and
37 Aaron, Emmanuel and Ladislaus, Nicholaus Dismas and Muhammed, Idris and
38 Simenya, Jonathan Enoch and Koome, Martin and Endaylalu, Matewos Tegete and
39 Adeyemo, Peter Ifeoluwa and Birindwa, Hondi Prisca and Eze-Mbey, Ukachi Agnes and
40 Oduro-Yeboah, Yacoba and Aremu, Toluwani and Adjovi, Pericles and
41 Ngueajio, Mikel K and Mitra, Prasenjit},
42 year = {2026},
43 note = {arXiv preprint arXiv:2606.02375}
44}