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.
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 Xcode command-line tools by running xcode-select --install.
Install FFmpeg by running brew install ffmpeg.
Install the program by running the following commands:
Regarding image tags: Due to rapid updates in the codebase and the slow process of packaging and testing images, please check Docker Hub for the currently packaged latest images and select as per your situation, or alternatively, build locally using a Dockerfile according to your own needs.
Environment Variables:
is_half: Controls half-precision/double-precision. This is typically the cause if the content under the directories 4-cnhubert/5-wav32k is not generated correctly during the "SSL extracting" step. Adjust to True or False based on your actual situation.
Volumes Configuration,The application's root directory inside the container is set to /workspace. The default docker-compose.yaml lists some practical examples for uploading/downloading content.
shm_size: The default available memory for Docker Desktop on Windows is too small, which can cause abnormal operations. Adjust according to your own situation.
Under the deploy section, GPU-related settings should be adjusted cautiously according to your system and actual circumstances.
Running with docker compose
docker compose -f "docker-compose.yaml" up -d
Running with docker command
As above, modify the corresponding parameters based on your actual situation, then run the following command:
Download pretrained models from GPT-SoVITS Models and place them in GPT_SoVITS/pretrained_models.
Download G2PW models from G2PWModel_1.1.zip, unzip and rename to G2PWModel, and then place them in GPT_SoVITS/text.(Chinese TTS Only)
For UVR5 (Vocals/Accompaniment Separation & Reverberation Removal, additionally), download models from UVR5 Weights and place them in tools/uvr5/uvr5_weights.
If you want to use bs_roformer or mel_band_roformer models for UVR5, you can manually download the model and corresponding configuration file, and put them in 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 include roformer in 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 model bs_roformer_ep_368_sdr_12.9628.ckpt and its corresponding configuration file bs_roformer_ep_368_sdr_12.9628.yaml are a pair, kim_mel_band_roformer.ckpt and kim_mel_band_roformer.yaml are also a pair.
For English or Japanese ASR (additionally), download models from Faster Whisper Large V3 and place them in tools/asr/models. Also, other models may have the similar effect with smaller disk footprint.
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
if you want to switch to V1,then double-clickgo-webui-v1.bat or use go-webui-v1.ps1
Others
python webui.py <language(optional)>
if you want to switch to V1,then
python webui.py v1 <language(optional)>
Or maunally switch version in WebUI
Finetune
Path Auto-filling is now supported
1. Fill in the audio path
2. Slice the audio into small chunks
3. Denoise(optinal)
4. ASR
5. Proofreading ASR transcriptions
6. Go to the next Tab, then finetune the model
Open Inference WebUI
Integrated Package Users
Double-click go-webui-v2.bat or use go-webui-v2.ps1 ,then open the inference webui at 1-GPT-SoVITS-TTS/1C-inference
pip install -r requirements.txt to update some packages
Clone the latest codes from github.
Download v2 pretrained models from huggingface and put them into GPT_SoVITS\pretrained_models\gsv-v2final-pretrained.
Chinese v2 additional: G2PWModel_1.1.zip(Download G2PW models, unzip and rename to G2PWModel, and then place them in GPT_SoVITS/text.
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.
pip install -r requirements.txt to update some packages
Clone the latest codes from github.
Download v3 pretrained models (s1v3.ckpt, s2Gv3.pth and models--nvidia--bigvgan_v2_24khz_100band_256x folder) from huggingface and put them into GPT_SoVITS\pretrained_models.
additional: for Audio Super Resolution model, you can read how to download