On-device TTS for 10 African languages (NeuTTS-Nano finetune, GGUF q4/q8)
# Afri-10 TTS — run on your PC (GGUF)
On-device text-to-speech for **10 African languages** — Malagasy, Kabuverdianu, Shona,
Kabiye, Twi, Bassa (Cameroon), Mauritian Creole, Nyaneka, Gun, and Swahili — using
`neutts-nano` finetuned on
`AfriSpeech/afri10` and quantized to
**GGUF** for fast CPU inference.
Models (downloaded automatically from the Hub on first run):
- `AfriSpeech/neutts-nano-afri10-q4-gguf` — smallest / fastest
- `AfriSpeech/neutts-nano-afri10-q8-gguf` — higher quality
A browser demo (full-precision) lives at
huggingface.co
## Install
```bash
git clone
github.com
cd afri10-tts-local
# system dependency: eSpeak NG (phonemizer backend)
# Ubuntu/Debian: sudo apt-get install espeak-ng
# macOS: brew install espeak-ng
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
```
## Usage
```bash
# Default voice (no reference) — matches how the model was trained
python run.py --text "Akwaaba, wo ho te sen?" --quant q4
# Voice cloning: provide a 3–15s reference clip IN THE TARGET LANGUAGE + its transcript
python run.py \
--text "Your sentence here." \
--quant q8 \
--ref_audio path/to/reference.wav \
--ref_text path/to/reference.txt \
--output out.wav
```
Flags: `--quant {q4,q8}`, `--device {cpu,gpu}`, `--ref_audio`, `--ref_text`, `--output`.
## Notes
- Phonemization uses eSpeak **lfn** (Lingua Franca Nova) as a universal approximation
across these languages; **tone is not modelled**, so tonal languages (Twi, Gun, Shona)
may sound tone-flat.
- For cloning, use a reference clip in the language you want to hear.
- Outputs are watermarked (Perth) by default.
## License
Model weights derive from `neutts-nano` (NeuTTS Open License 1.0) and AfriSpeech data —
review those terms before redistribution or commercial use.