Logo Lanfrica

GhanaNLP/ghana-voice-builder

Domain:

natural language processing

Record type:

software
Creator:
Gha
Host:
Finetune a multilingual Ghanaian-language TTS base model on a small dataset — 42 languages, clone-and-run. # Ghana Voice Builder Finetune a strong multilingual **base TTS model** on a *small* amount of your own Ghanaian-language speech and get a great-sounding voice — for **any of the 42 supported languages**, one or many at a time. Clone, point it at your data (a HuggingFace dataset **or** a local folder with a `metadata.csv`), run a couple of commands, and synthesize. Built on Matcha-TTS (flow-matching acoustic model), with a shared phonemizer + per-language conditioning so a single base model covers all languages. The model code is **vendored** in this repo — no external model dependency to install. --- ## Why finetune instead of train from scratch? The base model has already learned Ghanaian phonetics, prosody, and 42 language identities from hundreds of hours of speech. Finetuning adapts it to *your* speaker/dialect/recording conditions with about ~5 hours of audio per language (recommended minimum) — far less data and compute than training from zero. ## Supported languages 42 languages (Akuapem/Asante Twi, Fante, Ewe, Dagbani, Hausa, Nzema, Gonja, Kasem, Kusaal, ...). Run `ghanavoice languages` for the full list. Each has a fixed id used for conditioning. --- ## Quickstart ```bash git clone github.com cd ghana-voice-builder pip install -e . # installs deps + builds the alignment extension # 1. Prepare your data (local folder OR HuggingFace dataset) ghanavoice prepare --input ./my_data --out ./prepped # or: ghanavoice prepare --hf-dataset myorg/my-twi-speech --out ./prepped # 2. Finetune the base model on it ghanavoice train --data ./prepped --out ./my_voice # 3. Synthesize ghanavoice synthesize --model ./my_voice/best.ckpt \ --language "Asante Twi" --text "Akwaaba!" --out hello.wav ``` Multiple languages: just include rows for each language in your data — the base model handles them jointly, and you pick the language at synthesis time with `--language`. --- ## Data format **Local folder:** ``` my_dat …