Instructions to use analist/spark-tts-ewe-conv with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use analist/spark-tts-ewe-conv with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-to-speech", model="analist/spark-tts-ewe-conv")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("analist/spark-tts-ewe-conv", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Spark-TTS 0.5B for Eʋegbe (Ewe) — mixed-register
A text-to-speech model for Ewe (Eʋegbe), a tonal Gbe language spoken by roughly five million people in southeastern Ghana and southern Togo.
This is the mixed-register variant. It was adapted in a second stage on non-scriptural speech, to move the voice away from the slow, declamatory delivery that training on Bible readings alone produces.
For the scriptural-register version, see analist/spark-tts-ewe-cotia.
A research baseline, not a production voice. Read the limitations before using it for anything.
Status
| Stage 1 data | ~69 h single-speaker scriptural read speech |
| Stage 2 data | WAXAL Ewe (google/WaxalNLP) |
| Eval loss | 3.31 (stage 1 finished at 3.427) |
| Formal evaluation | none — no MOS, no intelligibility study |
Caveat on that loss figure: the evaluation split is drawn from the mixture, so it is still majority scriptural and does not directly measure whether the register shifted. The register claim rests on listening, not on the number.
Audio samples
No audio samples are published with this release yet.
Usage
The text normaliser is not optional. Ewe is routinely typed with
confusable codepoints — Greek ε for ɛ, γ for ɣ, ϕ for ƒ — which a byte-level
tokenizer treats as unrelated symbols. This model was trained on canonicalised
text, so text that skips normalisation is mispronounced with no obvious sign
of what went wrong. ewe_text.py is included for exactly this reason.
from ewe_text import normalize_ewe
text = normalize_ewe("Ŋdi na mi. Èfɔa?", digit_policy="verbalize")
See inference_example.py for a full script. You also need the Spark-TTS
source:
git clone https://github.com/SparkAudio/Spark-TTS
pip install omegaconf einx soundfile librosa soxr
Temperature 0.5–0.6. Pass <|im_end|> and <|end_semantic_token|> as
stop tokens or generation runs past the end of the utterance.
Training
Two stages. The first teaches the language; the second only shifts register, which is a far smaller adjustment and needs a much lower learning rate.
| Stage 1 | Stage 2 | |
|---|---|---|
| Data | BibleTTS Ewe | mixture, 35% new register |
| Epochs | 4 | 2 |
| Learning rate | 3e-5 | 8e-6 |
| Init from | Spark-TTS 0.5B | stage-1 weights |
Stage 2 deliberately retains a majority of the stage-1 data. A pure second-register run on a few thousand clips overfits quickly and can undo the phonetics learned in stage 1 — the model stops seeing scriptural vocabulary and forgets how to pronounce it.
Text pipeline in both stages: Unicode NFC, confusable-codepoint repair, digits
dropped from training text, over-length sequences dropped rather than
truncated (truncation removes the trailing <|im_end|> and teaches the model
never to stop).
Limitations
- Register is shifted, not solved. Stage 2 data is still largely read speech. Spontaneous conversational prosody remains out of domain.
- Tone is implicit. Ewe is tonal; there is no tone-aware front end. Tone is learned from acoustics and is not reliable on minimal pairs.
- No formal evaluation. No MOS, no intelligibility testing, no native speaker panel.
- Alignment unverified in the stage-1 corpus.
Intended use
Research on low-resource and African-language TTS; a checkpoint for further fine-tuning; prototyping where output is checked by a speaker. Not for unsupervised production use.
Attribution
Stage 1 speech data from BibleTTS (Meyer et al., Interspeech 2022;
OpenSLR 129), CC BY-SA 4.0.
Stage 2 speech data from WAXAL (Google Research and the Gates Foundation,
2026; google/WaxalNLP), Ewe portions collected by the University of
Ghana, CC BY-4.0.
Base model Spark-TTS by SparkAudio. Fine-tuning with Unsloth.
Licensing note: WAXAL's Ewe data is CC BY-4.0, which is permissive, but ShareAlike propagates from BibleTTS — so this model is released under CC BY-SA 4.0. Credit both corpora.
Contributions welcome
The binding constraint is still data: genuinely spontaneous, multi-speaker Ewe speech would do more for this model than any change to architecture or compute.
- Downloads last month
- 13