GPT-SoVITS-WebUI
A Powerful Few-shot Voice Conversion and Text-to-Speech WebUI.Features
-
Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.
-
Few-shot TTS: Fine-tune the model with just 1 minute of training data for improved voice similarity and realism.
-
Cross-lingual Support: Inference in languages different from the training dataset, currently supporting English, Japanese, Korean, Cantonese and Chinese.
-
WebUI Tools: Integrated tools include voice accompaniment separation, automatic training set segmentation, Chinese ASR, and text labeling, assisting beginners in creating training datasets and GPT/SoVITS models.
Check out our demo video here!
Unseen speakers few-shot fine-tuning demo:
https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb
RTF(inference speed) of GPT-SoVITS v2 ProPlus: 0.028 tested in 4060Ti, 0.014 tested in 4090 (1400words~=4min, inference time is 3.36s), 0.526 in M4 CPU. You can test our huggingface demo (half H200) to experience high-speed inference .
Installation
For users in China, you can Click Here to use AutoDL Cloud Docker to experience the full functionality online.
Tested Environments
| Python Version | PyTorch Version | Device |
|---|---|---|
| Python 3.10 | PyTorch 2.8.0 | CUDA 12.6 |
| Python 3.11 | PyTorch 2.9.0 | CUDA 12.6 |
| Python 3.11 | PyTorch 2.7.0 | CUDA 12.8 |
| Python 3.11 | PyTorch 2.10.0 | CUDA 12.8 |
| Python 3.10 | PyTorch 2.8.0 | Apple silicon |
| Python 3.11 | PyTorch 2.9.0 | Apple silicon |
| Python 3.12 | PyTorch 2.10.0 | Apple silicon |
| Python 3.10 | PyTorch 2.9.0 | CPU |
Windows
If you are a Windows user (tested with win>=10), you can download the integrated package and double-click on go-webui.bat to start GPT-SoVITS-WebUI.
Users in China can download the package here.
Install the program by running the following commands:
conda create -n GPTSoVITS python=3.11
conda activate GPTSoVITS
pwsh -F install.ps1 --help
Linux
Install the program by running the following commands:
conda create -n GPTSoVITS python=3.11
conda activate GPTSoVITS
bash install.sh --help
macOS
Note: The models trained with GPUs on Macs result in significantly lower quality compared to those trained on other devices, so we are temporarily using CPUs instead.
Install the program by running the following commands:
conda create -n GPTSoVITS python=3.11
conda activate GPTSoVITS
bash install.sh --help
Install Manually
Install the program by running the following commands:
conda create -n GPTSoVITS python=3.11
conda activate GPTSoVITS
conda install uv ffmpeg -c conda-forge
uv export --extra main -o pylock.toml -q --extra [mlx|cu126|cu128|rocm|cpu]
uv pip sync pylock.toml --no-break-system-packages --preview-features pylock
uv pip install ".[flash-attn]"
Pretrained Models
If install.sh runs successfully, you may skip No.1,2,3
Users in China can download all these models here.
-
Download pretrained models from GPT-SoVITS Models and place them in
GPT_SoVITS/pretrained_models. -
Download G2PW models from G2PWModel.zip (HF)| G2PWModel.zip (ModelScope), unzip and rename to
G2PWModel, and then place them inGPT_SoVITS/text. (Chinese TTS Only) -
For UVR5 (Vocals/Accompaniment Separation & Reverberation Removal, additionally), download models from UVR5 Weights and place them in
gsv_tools/uvr5/uvr5_weights.-
If you want to use
bs_roformerormel_band_roformermodels for UVR5, you can manually download the model and corresponding configuration file, and put them ingsv_tools/uvr5/uvr5_weights. Rename the model file and configuration file, ensure that the model and configuration files have the same and corresponding names except for the suffix. In addition, the model and configuration file names must includeroformerin order to be recognized as models of the roformer class. -
The suggestion is to directly specify the model type in the model name and configuration file name, such as
mel_mand_roformer,bs_roformer. If not specified, the features will be compared from the configuration file to determine which type of model it is. For example, the modelbs_roformer_ep_368_sdr_12.9628.ckptand its corresponding configuration filebs_roformer_ep_368_sdr_12.9628.yamlare a pair,kim_mel_band_roformer.ckptandkim_mel_band_roformer.yamlare also a pair.
-
-
For Chinese ASR (additionally), download models from Damo ASR Model, Damo VAD Model, and Damo Punc Model and place them in
gsv_tools/asr/models. -
For English or Japanese ASR (additionally), download models from Faster Whisper Large V3 and place them in
gsv_tools/asr/models. Also, other models may have the similar effect with smaller disk footprint.
Running GPT-SoVITS with Docker
Docker Image Selection
Due to rapid development in the codebase and a slower Docker image release cycle, please:
- Check Docker Hub for the latest available image tags
- Choose an appropriate image tag for your environment
Litemeans the Docker image does not include ASR models and UVR5 models. You can manually download the UVR5 models, while the program will automatically download the ASR models as needed- The appropriate architecture image (amd64/arm64) will be automatically pulled during Docker Compose
- Docker Compose will mount all files in the current directory. Please switch to the project root directory and pull the latest code before using the Docker image
- Optionally, build the image locally using the provided Dockerfile for the most up-to-date changes
Environment Variables
is_half: Controls whether half-precision (fp16) is enabled. Set totrueif your GPU supports it to reduce memory usage.
Shared Memory Configuration
On Windows (Docker Desktop), the default shared memory size is small and may cause unexpected behavior. Increase shm_size (e.g., to 16g) in your Docker Compose file based on your available system memory.
Choosing a Service
The docker-compose.yaml defines two services:
GPT-SoVITS-CU126&GPT-SoVITS-CU128: Full version with all features.GPT-SoVITS-CU126-Lite&GPT-SoVITS-CU128-Lite: Lightweight version with reduced dependencies and functionality.
To run a specific service with Docker Compose, use:
docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128>
Building the Docker Image Locally
If you want to build the image yourself, use:
bash docker_build.sh --cuda <12.6|12.8> [--lite]
Accessing the Running Container (Bash Shell)
Once the container is running in the background, you can access it using:
docker exec -it <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> bash
Dataset Format
The TTS annotation .list file format:
vocal_path|speaker_name|language|text
Language dictionary:
- 'zh': Chinese
- 'ja': Japanese
- 'en': English
- 'ko': Korean
- 'yue': Cantonese
Example:
D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.
Finetune and inference
Open WebUI
Integrated Package Users
Double-click go-webui.bator use go-webui.ps1
Others
python webui.py <language(optional)>
Finetune
Path Auto-filling is now supported
- Fill in the audio path
- Slice the audio into small chunks
- Denoise (optinal)
- ASR
- Proofreading ASR transcriptions
- Go to the next Tab, then finetune the model
Open Inference WebUI
Integrated Package Users
Double-click go-webui.bat or use go-webui.ps1 ,then open the inference webui at 1-GPT-SoVITS-TTS/1C-inference
Others
python GPT_SoVITS/inference_webui.py <language(optional)>
OR
python webui.py
then open the inference webui at 1-GPT-SoVITS-TTS/1C-inference
V2 Release Notes
New Features:
-
Support Korean and Cantonese
-
An optimized text frontend
-
Pre-trained model extended from 2k hours to 5k hours
-
Improved synthesis quality for low-quality reference audio
V3 Release Notes
New Features:
-
The timbre similarity is higher, requiring less training data to approximate the target speaker (the timbre similarity is significantly improved using the base model directly without fine-tuning).
-
GPT model is more stable, with fewer repetitions and omissions, and it is easier to generate speech with richer emotional expression.
V4 Release Notes
New Features:
- Version 4 fixes the issue of metallic artifacts in Version 3 caused by non-integer multiple upsampling, and natively outputs 48k audio to prevent muffled sound (whereas Version 3 only natively outputs 24k audio). The author considers Version 4 a direct replacement for Version 3, though further testing is still needed. more details
V2Pro Release Notes
New Features:
-
Slightly higher VRAM usage than v2, surpassing v4's performance, with v2's hardware cost and speed. more details
-
v1/v2 and the v2Pro series share the same characteristics, while v3/v4 have similar features. For training sets with average audio quality, v1/v2/v2Pro can deliver decent results, but v3/v4 cannot. Additionally, the synthesized tone and timebre of v3/v4 lean more toward the reference audio rather than the overall training set.
Todo List
-
High Priority:
- Localization in Japanese and English
- User guide
- Japanese and English dataset fine tune training
-
Features:
- Zero-shot voice conversion (5s) / few-shot voice conversion (1min)
- TTS speaking speed control
Enhanced TTS emotion controlMaybe use pretrained finetuned preset GPT models for better emotion- Experiment with changing SoVITS token inputs to probability distribution of GPT vocabs (transformer latent)
- Improve English and Japanese text frontend
- Develop tiny and larger-sized TTS models
- Colab scripts
- Try expand training dataset (2k hours -> 10k hours)
- better sovits base model (enhanced audio quality)
- model mix
Credits
Special thanks to the following projects and contributors:
Theoretical Research
Pretrained Models
Text Frontend for Inference
WebUI Tools
Thankful to @Naozumi520 for providing the Cantonese training set and for the guidance on Cantonese-related knowledge.