ghana-vc
Voice conversion for Ghanaian languages. Converts any spoken audio into a single consistent Ghanaian voice.
The checkpoint was fine-tuned on a Twi (Akan) voice, but the conversion is cross-lingual β the source speech does not have to be Twi. Voice conversion works on speaker timbre rather than on words, so the target voice carries across languages the model never saw in training.
The checkpoint is not a ceiling: it was fine-tuned for 2,500 steps, and training further should improve it.
Hear it: ghana-vc demo β samples across 40+ Ghanaian and West African languages, original beside converted.
Architecture: seed-uvit-whisper-small-wavenet
(22.05 kHz, Whisper-small content encoder, BigVGAN vocoder).
Quick start
The companion library converts a whole Hugging Face audio dataset into this voice and pushes the result back to the Hub:
pip install git+https://github.com/GhanaNLP/ghana-vc
export HF_TOKEN=hf_...
ghana-vc convert \
--dataset <org>/<audio-dataset> \
--output <org>/<result> \
--num-samples 100
The converted audio is added as an audio_zephyr column and pushed back to the
Hub. Full documentation:
GhanaNLP/ghana-vc.
Direct use with Seed-VC
python inference.py \
--source <your-speech.wav> \
--target ref_zephyr.wav \
--output out/ \
--diffusion-steps 50 \
--length-adjust 1.0 \
--inference-cfg-rate 0.7 \
--checkpoint ft_model.pth \
--config config_dit_mel_seed_uvit_whisper_small_wavenet.yml
Diffusion steps
--diffusion-steps 50 is the recommended default. Listening tests on this
checkpoint found 25 steps (the Seed-VC default) noticeably more robotic, and 50
clearly smoother. 100 is available if you want to trade speed for a little more
quality, but the returns are small.
| Steps | Character |
|---|---|
| 25 | Fastest, audibly robotic on this checkpoint |
| 50 | Recommended β smooth, good speed |
| 100 | Marginally smoother, roughly 2x slower than 50 |
Files
| File | Description |
|---|---|
ft_model.pth |
Fine-tuned checkpoint (DiT + BigVGAN), 412 MB |
config_dit_mel_seed_uvit_whisper_small_wavenet.yml |
Model / training config |
ref_zephyr.wav |
Reference utterance of the target speaker |
LICENSE |
Upstream Seed-VC GPL-3.0 text, retained for attribution |
Training
- Dataset:
ghananlpcommunity/ghana-twi-synthesized-speech(Twi, speaker Zephyr), ~10.5k clips - Steps: 2500, batch size 2, checkpoint saved every 1250 steps
- Base:
seed-uvit-whisper-small-wavenet(zero-shot)
Licensing β please read
This model card declares CC-BY-NC-4.0, reflecting the training data terms. Three layers apply, and all three matter before you use this model:
- Training data β the source dataset is CC-BY-NC-4.0, so use of this model is non-commercial.
- Upstream weights β the checkpoint was fine-tuned from Seed-VC's
pretrained weights, which are GPL-3.0. GPL-3.0 is copyleft and this
model is a derivative work of them. The upstream
LICENSEfile is retained here for that reason. The CC-BY-NC-4.0 declaration above does not by itself discharge that obligation. - Inference dependencies β CAM++ and OpenVoice weights are auto-downloaded by the Seed-VC inference stack under their own licenses.
For anything beyond research or personal experimentation, resolve the GPL-3.0 question with the Seed-VC authors first.
Credits
- Seed-VC by Plachtaa β architecture and pretrained weights
- Training data: Ghana NLP Community