Pre-trained weights for the Taiwanese (Hokkien / Pe̍h-ōe-jī) fork of
GPT-SoVITS. The S1 is
trilingual (TW + ZH + weak EN) thanks to embedding transplant; the S2
is a v2ProTw vocoder finetuned on Taiwanese audio.
1git clone https://github.com/KaedeTai/GPT-SoVITS.git
2cd GPT-SoVITS
3python3.11 -m venv .venv && source .venv/bin/activate
4pip install --upgrade pip
5pip install -r requirements.txt
6./download_pretrained.sh # upstream base pretraineds (BERT, hubert, etc.)
7
8# Pull these weights
9hf download KaedeTai/gpt-sovits-tw s1_trilingual.ckpt --local-dir ./models
10hf download KaedeTai/gpt-sovits-tw s2_r4_e15.pth --local-dir ./models
11
12# One-line synthesis (POJ-with-diacritics in, mp3 out)
13python -m tw_inference.tts_cli "Lí hó, sè-kài!" -o hello.mp3
Total: roughly 15-25 hours of paired audio + POJ.
Reported quality is from human listening; ASR-based CER was used for
ablations but flattens out at the top of the quality curve.
Per-sentence breakdown for the 5-sentence set is in
tw_samples/eval_summary.json
in the GitHub repo. Demo mp3s are in
tw_samples/demo_*.mp3.
The long version with lessons learned and what we'd do differently is
in
TAIWANESE.md.
Short version:
If you find this useful in academic work, please cite the upstream
GPT-SoVITS and this fork:
1@misc{gpt-sovits-tw-2026,
2 title = {GPT-SoVITS Taiwanese (Hokkien) trilingual fork},
3 author = {KaedeTai},
4 year = {2026},
5 howpublished = {\url{https://huggingface.co/KaedeTai/gpt-sovits-tw}}
6}