MCPcopy
hub / github.com/RVC-Boss/GPT-SoVITS

github.com/RVC-Boss/GPT-SoVITS @main sqlite

repository ↗ · DeepWiki ↗ · compare 2 versions
1,975 symbols 5,710 edges 181 files 184 documented · 9%
README

GPT-SoVITS-WebUI

A Powerful Few-shot Voice Conversion and Text-to-Speech WebUI.

madewithlove

RVC-Boss%2FGPT-SoVITS | Trendshift

Python GitHub release

Train In Colab Huggingface Image Size

简体中文 English Change Log License

English | 中文简体 | 日本語 | 한국어 | Türkçe


Features:

  1. Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.

  2. Few-shot TTS: Fine-tune the model with just 1 minute of training data for improved voice similarity and realism.

  3. Cross-lingual Support: Inference in languages different from the training dataset, currently supporting English, Japanese, Korean, Cantonese and Chinese.

  4. 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 .

请不要尬黑GPT-SoVITS推理速度慢,谢谢!

CPU-Optimized Inference Version:https://github.com/baicai-1145/GPT-SoVITS-CPUFast

User guide: 简体中文 | English

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.5.1 CUDA 12.4
Python 3.11 PyTorch 2.5.1 CUDA 12.4
Python 3.11 PyTorch 2.7.0 CUDA 12.8
Python 3.9 PyTorch 2.8.0dev CUDA 12.8
Python 3.9 PyTorch 2.5.1 Apple silicon
Python 3.11 PyTorch 2.7.0 Apple silicon
Python 3.9 PyTorch 2.2.2 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.10
conda activate GPTSoVits
pwsh -F install.ps1 --Device <CU126|CU128|CPU> --Source <HF|HF-Mirror|ModelScope> [--DownloadUVR5]

Linux

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <CU126|CU128|ROCM|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

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.10
conda activate GPTSoVits
bash install.sh --device <MPS|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]

Install Manually

Install Dependences

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits

pip install -r extra-req.txt --no-deps
pip install -r requirements.txt

Install FFmpeg

Conda Users
conda activate GPTSoVits
conda install ffmpeg
Ubuntu/Debian Users
sudo apt install ffmpeg
sudo apt install libsox-dev
Windows Users

Download and place ffmpeg.exe and ffprobe.exe in the GPT-SoVITS root

Install Visual Studio 2017

MacOS Users
brew install ffmpeg

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
  • Lite means 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 to true if 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

Pretrained Models

If install.sh runs successfully, you may skip No.1,2,3

Users in China can download all these models here.

  1. Download pretrained models from GPT-SoVITS Models and place them in GPT_SoVITS/pretrained_models.

  2. Download G2PW models from G2PWModel.zip(HF)| G2PWModel.zip(ModelScope), unzip and rename to G2PWModel, and then place them in GPT_SoVITS/text.(Chinese TTS Only)

  3. For UVR5 (Vocals/Accompaniment Separation & Reverberation Removal, additionally), download models from UVR5 Weights and place them in tools/uvr5/uvr5_weights.

  4. 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.

  5. 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.

  6. For Chinese ASR (additionally), download models from Damo ASR Model, Damo VAD Model, and Damo Punc Model and place them in tools/asr/models.

  7. 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

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:

  1. Support Korean and Cantonese

  2. An optimized text frontend

  3. Pre-trained model extended from 2k hours to 5k hours

  4. Improved synthesis quality for low-quality reference audio

more details

Use v2 from v1 environment:

  1. pip install -r requirements.txt to update some packages

  2. Clone the latest codes from github.

  3. Download v2 pretrained models from huggingface and put them into GPT_SoVITS/pretrained_models/gsv-v2final-pretrained.

Chinese v2 additional: G2PWModel.zip(HF)| G2PWModel.zip(ModelScope)(Download G2PW models, unzip and rename to G2PWModel, and then place them in GPT_SoVITS/text.)

V3 Release Notes

New Features:

  1. 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).

  2. GPT model is more stable, with fewer repetitions and omissions, and it is easier to generate speech with richer emotional expression.

more details

Core symbols most depended-on inside this repo

to
called by 461
tools/audio_sr.py
process_info
called by 80
webui.py
keys
called by 53
GPT_SoVITS/utils.py
update
called by 31
GPT_SoVITS/AR/models/t2s_model_cudagraph.py
stft
called by 29
tools/uvr5/mdxnet.py
items
called by 25
GPT_SoVITS/utils.py
getTexts
called by 25
GPT_SoVITS/text/LangSegmenter/langsegmenter.py
resample
called by 23
GPT_SoVITS/export_torch_script.py

Shape

Method 1,004
Function 609
Class 352
Route 10

Languages

Python100%

Modules by API surface

GPT_SoVITS/module/models.py73 symbols
GPT_SoVITS/module/modules.py71 symbols
GPT_SoVITS/module/models_onnx.py63 symbols
GPT_SoVITS/export_torch_script.py58 symbols
api.py55 symbols
GPT_SoVITS/module/data_utils.py50 symbols
GPT_SoVITS/TTS_infer_pack/TTS.py49 symbols
GPT_SoVITS/f5_tts/model/modules.py46 symbols
GPT_SoVITS/export_torch_script_v3v4.py44 symbols
GPT_SoVITS/module/attentions.py39 symbols
GPT_SoVITS/inference_webui.py38 symbols
tools/AP_BWE_main/models/model.py37 symbols

Dependencies from manifests, versioned

av11 · 1×
ctranslate24.0 · 1×
fast_langdetect0.3.1 · 1×
funasr1.3.7 · 1×
huggingface_hub0.23.4 · 1×
librosa0.10.2 · 1×
pydantic2.10.6 · 1×
pyopenjtalk0.4.1 · 1×
torchmetrics1.5 · 1×
transformers4.43 · 1×

For agents

$ claude mcp add GPT-SoVITS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact