Spaces:
Runtime error
Runtime error
<div align="center"> | |
<h1>GPT-SoVITS-WebUI</h1> | |
์๋์ ๋ฐ์ดํฐ๋ก ์์ฑ ๋ณํ ๋ฐ ์์ฑ ํฉ์ฑ์ ์ง์ํ๋ ๊ฐ๋ ฅํ WebUI.<br><br> | |
[](https://github.com/RVC-Boss/GPT-SoVITS) | |
<img src="https://counter.seku.su/cmoe?name=gptsovits&theme=r34" /><br> | |
[](https://colab.research.google.com/github/RVC-Boss/GPT-SoVITS/blob/main/colab_webui.ipynb) | |
[](https://github.com/RVC-Boss/GPT-SoVITS/blob/main/LICENSE) | |
[](https://huggingface.co/spaces/lj1995/GPT-SoVITS-v2) | |
[](https://discord.gg/dnrgs5GHfG) | |
[**English**](../../README.md) | [**ไธญๆ็ฎไฝ**](../cn/README.md) | [**ๆฅๆฌ่ช**](../ja/README.md) | **ํ๊ตญ์ด** | [**Tรผrkรงe**](../tr/README.md) | |
</div> | |
--- | |
## ๊ธฐ๋ฅ: | |
1. **์ ๋ก์ท ํ ์คํธ ์์ฑ ๋ณํ (TTS):** 5์ด์ ์์ฑ ์ํ์ ์ ๋ ฅํ๋ฉด ์ฆ์ ํ ์คํธ๋ฅผ ์์ฑ์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค. | |
2. **์๋์ ๋ฐ์ดํฐ TTS:** 1๋ถ์ ํ๋ จ ๋ฐ์ดํฐ๋ง์ผ๋ก ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ์ฌ ์์ฑ ์ ์ฌ๋์ ์ค์ ๊ฐ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. | |
3. **๋ค๊ตญ์ด ์ง์:** ํ๋ จ ๋ฐ์ดํฐ์ ๊ณผ ๋ค๋ฅธ ์ธ์ด์ ์ถ๋ก ์ ์ง์ํ๋ฉฐ, ํ์ฌ ์์ด, ์ผ๋ณธ์ด, ์ค๊ตญ์ด, ๊ด๋ฅ์ด, ํ๊ตญ์ด๋ฅผ ์ง์ํฉ๋๋ค. | |
4. **WebUI ๋๊ตฌ:** ์์ฑ ๋ฐ์ฃผ ๋ถ๋ฆฌ, ์๋ ํ๋ จ ๋ฐ์ดํฐ์ ๋ถํ , ์ค๊ตญ์ด ์๋ ์์ฑ ์ธ์(ASR) ๋ฐ ํ ์คํธ ์ฃผ์ ๋ฑ์ ๋๊ตฌ๋ฅผ ํตํฉํ์ฌ ์ด๋ณด์๊ฐ ํ๋ จ ๋ฐ์ดํฐ์ ๊ณผ GPT/SoVITS ๋ชจ๋ธ์ ์์ฑํ๋ ๋ฐ ๋์์ ์ค๋๋ค. | |
**๋ฐ๋ชจ ๋น๋์ค๋ฅผ ํ์ธํ์ธ์! [demo video](https://www.bilibili.com/video/BV12g4y1m7Uw)** | |
๋ณด์ง ๋ชปํ ๋ฐํ์์ ํจ์ท(few-shot) ํ์ธํ๋ ๋ฐ๋ชจ: | |
https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb | |
**์ฌ์ฉ์ ์ค๋ช ์: [็ฎไฝไธญๆ](https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e) | [English](https://rentry.co/GPT-SoVITS-guide#/)** | |
## ์ค์น | |
### ํ ์คํธ ํต๊ณผ ํ๊ฒฝ | |
| 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 | |
Windows ์ฌ์ฉ์๋ผ๋ฉด (win>=10์์ ํ ์คํธ๋จ), [ํตํฉ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋](https://huggingface.co/lj1995/GPT-SoVITS-windows-package/resolve/main/GPT-SoVITS-v3lora-20250228.7z?download=true)ํ ํ ์์ถ์ ํ๊ณ _go-webui.bat_ ํ์ผ์ ๋๋ธ ํด๋ฆญํ๋ฉด GPT-SoVITS-WebUI๋ฅผ ์์ํ ์ ์์ต๋๋ค. | |
### Linux | |
```bash | |
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 | |
**์ฃผ์: Mac์์ GPU๋ก ํ๋ จ๋ ๋ชจ๋ธ์ ๋ค๋ฅธ OS์์ ํ๋ จ๋ ๋ชจ๋ธ์ ๋นํด ํ์ง์ด ๋ฎ์ต๋๋ค. ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ ๊น์ง MacOS์์ CPU๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ จ์ ์งํํฉ๋๋ค.** | |
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ด ํ๋ก์ ํธ๋ฅผ ์ค์นํ์ธ์ | |
```bash | |
conda create -n GPTSoVits python=3.10 | |
conda activate GPTSoVits | |
bash install.sh --device <MPS|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5] | |
``` | |
### ์๋ ์ค์น | |
#### ์์กด์ฑ ์ค์น | |
```bash | |
conda create -n GPTSoVits python=3.10 | |
conda activate GPTSoVits | |
pip install -r extra-req.txt --no-deps | |
pip install -r requirements.txt | |
``` | |
#### FFmpeg ์ค์น | |
##### Conda ์ฌ์ฉ์ | |
```bash | |
conda activate GPTSoVits | |
conda install ffmpeg | |
``` | |
##### Ubuntu/Debian ์ฌ์ฉ์ | |
```bash | |
sudo apt install ffmpeg | |
sudo apt install libsox-dev | |
``` | |
##### Windows ์ฌ์ฉ์ | |
[ffmpeg.exe](https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe)์ [ffprobe.exe](https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe)๋ฅผ GPT-SoVITS root ๋๋ ํ ๋ฆฌ์ ๋ฃ์ต๋๋ค | |
[Visual Studio 2017](https://aka.ms/vs/17/release/vc_redist.x86.exe) ์ค์น | |
##### MacOS ์ฌ์ฉ์ | |
```bash | |
brew install ffmpeg | |
``` | |
### GPT-SoVITS ์คํํ๊ธฐ (Docker ์ฌ์ฉ) | |
#### Docker ์ด๋ฏธ์ง ์ ํ | |
์ฝ๋๋ฒ ์ด์ค๊ฐ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๋๋ ๋ฐ๋ฉด Docker ์ด๋ฏธ์ง ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ค์์ ์ฐธ๊ณ ํ์ธ์: | |
- [Docker Hub](https://hub.docker.com/r/xxxxrt666/gpt-sovits)์์ ์ต์ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ํ์ธํ์ธ์ | |
- ํ๊ฒฝ์ ๋ง๋ ์ ์ ํ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ ํํ์ธ์ | |
- `Lite` ๋ Docker ์ด๋ฏธ์ง์ ASR ๋ชจ๋ธ๊ณผ UVR5 ๋ชจ๋ธ์ด ํฌํจ๋์ด ์์ง ์์์ ์๋ฏธํฉ๋๋ค. UVR5 ๋ชจ๋ธ์ ์ฌ์ฉ์๊ฐ ์ง์ ๋ค์ด๋ก๋ํด์ผ ํ๋ฉฐ, ASR ๋ชจ๋ธ์ ํ์ ์ ํ๋ก๊ทธ๋จ์ด ์๋์ผ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค | |
- Docker Compose ์คํ ์, ํด๋น ์ํคํ ์ฒ์ ๋ง๋ ์ด๋ฏธ์ง(amd64 ๋๋ arm64)๊ฐ ์๋์ผ๋ก ๋ค์ด๋ก๋๋ฉ๋๋ค | |
- ์ ํ ์ฌํญ: ์ต์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํ๋ ค๋ฉด ์ ๊ณต๋ Dockerfile์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ์ง์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค | |
#### ํ๊ฒฝ ๋ณ์ | |
- `is_half`: ๋ฐ์ ๋ฐ๋(fp16) ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค. GPU๊ฐ ์ง์ํ๋ ๊ฒฝ์ฐ `true`๋ก ์ค์ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ผ ์ ์์ต๋๋ค | |
#### ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ค์ | |
Windows(Docker Desktop)์์๋ ๊ธฐ๋ณธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ์์ ์๊ธฐ์น ์์ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์์คํ ๋ฉ๋ชจ๋ฆฌ ์ํฉ์ ๋ฐ๋ผ Docker Compose ํ์ผ์์ `shm_size`๋ฅผ (์: `16g`)๋ก ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ์ข์ต๋๋ค | |
#### ์๋น์ค ์ ํ | |
`docker-compose.yaml` ํ์ผ์๋ ๋ ๊ฐ์ง ์๋น์ค ์ ํ์ด ์ ์๋์ด ์์ต๋๋ค: | |
- `GPT-SoVITS-CU126` ๋ฐ `GPT-SoVITS-CU128`: ์ ์ฒด ๊ธฐ๋ฅ์ ํฌํจํ ํ ๋ฒ์ | |
- `GPT-SoVITS-CU126-Lite` ๋ฐ `GPT-SoVITS-CU128-Lite`: ์์กด์ฑ์ด ์ค์ด๋ ๊ฒฝ๋ ๋ฒ์ | |
ํน์ ์๋น์ค๋ฅผ Docker Compose๋ก ์คํํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ธ์: | |
```bash | |
docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> | |
``` | |
#### Docker ์ด๋ฏธ์ง ์ง์ ๋น๋ํ๊ธฐ | |
์ง์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์: | |
```bash | |
bash docker_build.sh --cuda <12.6|12.8> [--lite] | |
``` | |
#### ์คํ ์ค์ธ ์ปจํ ์ด๋ ์ ์ํ๊ธฐ (Bash Shell) | |
์ปจํ ์ด๋๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ ์ค์ผ ๋ ๋ค์ ๋ช ๋ น์ด๋ก ์ ธ์ ์ ์ํ ์ ์์ต๋๋ค: | |
```bash | |
docker exec -it <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> bash | |
``` | |
## ์ฌ์ ํ์ต๋ ๋ชจ๋ธ | |
**`install.sh`๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ฉด No.1,2,3 ์ ๊ฑด๋๋ฐ์ด๋ ๋ฉ๋๋ค.** | |
1. [GPT-SoVITS Models](https://huggingface.co/lj1995/GPT-SoVITS) ์์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ , `GPT_SoVITS/pretrained_models` ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. | |
2. [G2PWModel.zip(HF)](https://huggingface.co/XXXXRT/GPT-SoVITS-Pretrained/resolve/main/G2PWModel.zip)| [G2PWModel.zip(ModelScope)](https://www.modelscope.cn/models/XXXXRT/GPT-SoVITS-Pretrained/resolve/master/G2PWModel.zip) ์์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ ์์ถ์ ํ์ด `G2PWModel`๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ ํ, `GPT_SoVITS/text` ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. (์ค๊ตญ์ด TTS ์ ์ฉ) | |
3. UVR5 (๋ณด์ปฌ/๋ฐ์ฃผ ๋ถ๋ฆฌ & ์ํฅ ์ ๊ฑฐ ์ถ๊ฐ ๊ธฐ๋ฅ)์ ๊ฒฝ์ฐ, [UVR5 Weights](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights) ์์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ `tools/uvr5/uvr5_weights` ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. | |
- UVR5์์ bs_roformer ๋๋ mel_band_roformer ๋ชจ๋ธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ชจ๋ธ๊ณผ ํด๋น ์ค์ ํ์ผ์ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ์ฌ `tools/UVR5/UVR5_weights` ํด๋์ ์ ์ฅํ ์ ์์ต๋๋ค. **๋ชจ๋ธ ํ์ผ๊ณผ ์ค์ ํ์ผ์ ์ด๋ฆ์ ํ์ฅ์๋ฅผ ์ ์ธํ๊ณ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง๋๋ก ํด์ผ ํฉ๋๋ค**. ๋ํ, ๋ชจ๋ธ๊ณผ ์ค์ ํ์ผ ์ด๋ฆ์๋ **"roformer"**๊ฐ ํฌํจ๋์ด์ผ roformer ํด๋์ค์ ๋ชจ๋ธ๋ก ์ธ์๋ฉ๋๋ค. | |
- ๋ชจ๋ธ ์ด๋ฆ๊ณผ ์ค์ ํ์ผ ์ด๋ฆ์ **๋ชจ๋ธ ์ ํ์ ์ง์ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค**. ์: mel_mand_roformer, bs_roformer. ์ง์ ํ์ง ์์ผ๋ฉด ์ค์ ํ์ผ์ ๊ธฐ์ค์ผ๋ก ํน์ฑ์ ๋น๊ตํ์ฌ ์ด๋ค ์ ํ์ ๋ชจ๋ธ์ธ์ง๋ฅผ ํ๋จํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ๋ธ `bs_roformer_ep_368_sdr_12.9628.ckpt`์ ํด๋น ์ค์ ํ์ผ `bs_roformer_ep_368_sdr_12.9628.yaml`์ ํ ์์ ๋๋ค. `kim_mel_band_roformer.ckpt`์ `kim_mel_band_roformer.yaml`๋ ํ ์์ ๋๋ค. | |
4. ์ค๊ตญ์ด ASR (์ถ๊ฐ ๊ธฐ๋ฅ)์ ๊ฒฝ์ฐ, [Damo ASR Model](https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/files), [Damo VAD Model](https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/files) ๋ฐ [Damo Punc Model](https://modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/files) ์์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ , `tools/asr/models` ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. | |
5. ์์ด ๋๋ ์ผ๋ณธ์ด ASR (์ถ๊ฐ ๊ธฐ๋ฅ)์ ๊ฒฝ์ฐ, [Faster Whisper Large V3](https://huggingface.co/Systran/faster-whisper-large-v3) ์์ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ๊ณ , `tools/asr/models` ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์นํ์ธ์. ๋ํ, [๋ค๋ฅธ ๋ชจ๋ธ](https://huggingface.co/Systran) ์ ๋ ์ ์ ๋์คํฌ ์ฉ๋์ผ๋ก ๋น์ทํ ํจ๊ณผ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. | |
## ๋ฐ์ดํฐ์ ํ์ | |
ํ ์คํธ ์์ฑ ํฉ์ฑ(TTS) ์ฃผ์ .list ํ์ผ ํ์: | |
``` | |
vocal_path|speaker_name|language|text | |
``` | |
์ธ์ด ์ฌ์ : | |
- 'zh': ์ค๊ตญ์ด | |
- 'ja': ์ผ๋ณธ์ด | |
- 'en': ์์ด | |
์์: | |
``` | |
D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin. | |
``` | |
## ๋ฏธ์ธ ์กฐ์ ๋ฐ ์ถ๋ก | |
### WebUI ์ด๊ธฐ | |
#### ํตํฉ ํจํค์ง ์ฌ์ฉ์ | |
`go-webui.bat`์ ๋๋ธ ํด๋ฆญํ๊ฑฐ๋ `go-webui.ps1`๋ฅผ ์ฌ์ฉํ์ญ์์ค. | |
V1์ผ๋ก ์ ํํ๋ ค๋ฉด, `go-webui-v1.bat`์ ๋๋ธ ํด๋ฆญํ๊ฑฐ๋ `go-webui-v1.ps1`๋ฅผ ์ฌ์ฉํ์ญ์์ค. | |
#### ๊ธฐํ | |
```bash | |
python webui.py <์ธ์ด(์ต์ )> | |
``` | |
V1์ผ๋ก ์ ํํ๋ ค๋ฉด, | |
```bash | |
python webui.py v1 <์ธ์ด(์ต์ )> | |
``` | |
๋๋ WebUI์์ ์๋์ผ๋ก ๋ฒ์ ์ ์ ํํ์ญ์์ค. | |
### ๋ฏธ์ธ ์กฐ์ | |
#### ๊ฒฝ๋ก ์๋ ์ฑ์ฐ๊ธฐ๊ฐ ์ง์๋ฉ๋๋ค | |
1. ์ค๋์ค ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ์ญ์์ค. | |
2. ์ค๋์ค๋ฅผ ์์ ์ฒญํฌ๋ก ๋ถํ ํ์ญ์์ค. | |
3. ๋ ธ์ด์ฆ ์ ๊ฑฐ(์ต์ ) | |
4. ASR ์ํ | |
5. ASR ์ ์ฌ๋ฅผ ๊ต์ ํ์ญ์์ค. | |
6. ๋ค์ ํญ์ผ๋ก ์ด๋ํ์ฌ ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ์ญ์์ค. | |
### ์ถ๋ก WebUI ์ด๊ธฐ | |
#### ํตํฉ ํจํค์ง ์ฌ์ฉ์ | |
`go-webui-v2.bat`์ ๋๋ธ ํด๋ฆญํ๊ฑฐ๋ `go-webui-v2.ps1`๋ฅผ ์ฌ์ฉํ ๋ค์ `1-GPT-SoVITS-TTS/1C-inference`์์ ์ถ๋ก webui๋ฅผ ์ฝ๋๋ค. | |
#### ๊ธฐํ | |
```bash | |
python GPT_SoVITS/inference_webui.py <์ธ์ด(์ต์ )> | |
``` | |
๋๋ | |
```bash | |
python webui.py | |
``` | |
๊ทธ๋ฐ ๋ค์ `1-GPT-SoVITS-TTS/1C-inference`์์ ์ถ๋ก webui๋ฅผ ์ฝ๋๋ค. | |
## V2 ๋ฆด๋ฆฌ์ค ๋ ธํธ | |
์๋ก์ด ๊ธฐ๋ฅ: | |
1. ํ๊ตญ์ด ๋ฐ ๊ด๋ฅ์ด ์ง์ | |
2. ์ต์ ํ๋ ํ ์คํธ ํ๋ก ํธ์๋ | |
3. ์ฌ์ ํ์ต ๋ชจ๋ธ์ด 2์ฒ ์๊ฐ์์ 5์ฒ ์๊ฐ์ผ๋ก ํ์ฅ | |
4. ์ ํ์ง ์ฐธ์กฐ ์ค๋์ค์ ๋ํ ํฉ์ฑ ํ์ง ํฅ์ | |
[์์ธํ ๋ด์ฉ](<https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90v2%E2%80%90features-(%E6%96%B0%E7%89%B9%E6%80%A7)>) | |
V1 ํ๊ฒฝ์์ V2๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด: | |
1. `pip install -r requirements.txt`๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ถ ํจํค์ง ์ ๋ฐ์ดํธ | |
2. github์์ ์ต์ ์ฝ๋๋ฅผ ํด๋ก ํ์ญ์์ค. | |
3. [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main/gsv-v2final-pretrained)์์ V2 ์ฌ์ ํ์ต ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ์ฌ `GPT_SoVITS/pretrained_models/gsv-v2final-pretrained`์ ๋ฃ์ผ์ญ์์ค. | |
์ค๊ตญ์ด V2 ์ถ๊ฐ: [G2PWModel.zip(HF)](https://huggingface.co/XXXXRT/GPT-SoVITS-Pretrained/resolve/main/G2PWModel.zip)| [G2PWModel.zip(ModelScope)](https://www.modelscope.cn/models/XXXXRT/GPT-SoVITS-Pretrained/resolve/master/G2PWModel.zip) (G2PW ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ์ฌ ์์ถ์ ํ๊ณ `G2PWModel`๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ ๋ค์ `GPT_SoVITS/text`์ ๋ฐฐ์นํฉ๋๋ค.) | |
## V3 ๋ฆด๋ฆฌ์ค ๋ ธํธ | |
์๋ก์ด ๊ธฐ๋ฅ: | |
1. ์์ ์ ์ฌ์ฑ์ด ๋ ๋์์ ธ ๋ชฉํ ์์ฑ์ ๋ํ ํ์ต ๋ฐ์ดํฐ๊ฐ ์ ๊ฒ ํ์ํฉ๋๋ค. (๊ธฐ๋ณธ ๋ชจ๋ธ์ ์ง์ ์ฌ์ฉํ์ฌ ๋ฏธ์ธ ์กฐ์ ์์ด ์์ ์ ์ฌ์ฑ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.) | |
2. GPT ๋ชจ๋ธ์ด ๋ ์์ ์ ์ด๋ฉฐ ๋ฐ๋ณต ๋ฐ ์๋ต์ด ์ ๊ณ , ๋ ํ๋ถํ ๊ฐ์ ํํ์ ๊ฐ์ง ์์ฑ์ ์์ฑํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค. | |
[์์ธํ ๋ด์ฉ](<https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90v3%E2%80%90features-(%E6%96%B0%E7%89%B9%E6%80%A7)>) | |
v2 ํ๊ฒฝ์์ v3 ์ฌ์ฉํ๊ธฐ: | |
1. `pip install -r requirements.txt`๋ก ์ผ๋ถ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. | |
2. ์ต์ ์ฝ๋๋ฅผ github ์์ ํด๋ก ํฉ๋๋ค. | |
3. v3 ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ(s1v3.ckpt, s2Gv3.pth, ๊ทธ๋ฆฌ๊ณ models--nvidia--bigvgan_v2_24khz_100band_256x ํด๋)์ [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main)์์ ๋ค์ด๋ก๋ํ์ฌ `GPT_SoVITS/pretrained_models` ํด๋์ ๋ฃ์ต๋๋ค. | |
์ถ๊ฐ: ์ค๋์ค ์ํผ ํด์๋ ๋ชจ๋ธ์ ๋ํด์๋ [๋ค์ด๋ก๋ ๋ฐฉ๋ฒ](../../tools/AP_BWE_main/24kto48k/readme.txt)์ ์ฐธ๊ณ ํ์ธ์. | |
## V4 ๋ฆด๋ฆฌ์ค ๋ ธํธ | |
์ ๊ท ๊ธฐ๋ฅ: | |
1. **V4๋ V3์์ ๋ฐ์ํ๋ ๋น์ ์ ๋ฐฐ์จ ์ ์ํ๋ง์ผ๋ก ์ธํ ๊ธ์์ฑ ์ก์ ๋ฌธ์ ๋ฅผ ์์ ํ์ผ๋ฉฐ, ์๋ฆฌ๊ฐ ๋จน๋จนํด์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก 48kHz ์ค๋์ค๋ฅผ ์ถ๋ ฅํฉ๋๋ค (V3๋ ๊ธฐ๋ณธ์ ์ผ๋ก 24kHz๋ง ์ง์)**. ๊ฐ๋ฐ์๋ V4๋ฅผ V3์ ์ง์ ์ ์ธ ๋์ฒด ๋ฒ์ ์ผ๋ก ๋ณด๊ณ ์์ง๋ง ์ถ๊ฐ ํ ์คํธ๊ฐ ํ์ํฉ๋๋ค. | |
[์์ธํ ๋ณด๊ธฐ](<https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90v3v4%E2%80%90features-(%E6%96%B0%E7%89%B9%E6%80%A7)>) | |
V1/V2/V3 ํ๊ฒฝ์์ V4๋ก ์ ํ ๋ฐฉ๋ฒ: | |
1. ์ผ๋ถ ์์กด ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด `pip install -r requirements.txt` ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์. | |
2. GitHub์์ ์ต์ ์ฝ๋๋ฅผ ํด๋ก ํ์ธ์. | |
3. [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main)์์ V4 ์ฌ์ ํ์ต ๋ชจ๋ธ(`gsv-v4-pretrained/s2v4.ckpt` ๋ฐ `gsv-v4-pretrained/vocoder.pth`)์ ๋ค์ด๋ก๋ํ๊ณ `GPT_SoVITS/pretrained_models` ๋๋ ํ ๋ฆฌ์ ๋ฃ์ผ์ธ์. | |
## V2Pro ๋ฆด๋ฆฌ์ค ๋ ธํธ | |
์ ๊ท ๊ธฐ๋ฅ: | |
1. **V2๋ณด๋ค ์ฝ๊ฐ ๋์ VRAM ์ฌ์ฉ๋์ด์ง๋ง ์ฑ๋ฅ์ V4๋ณด๋ค ์ฐ์ํ๋ฉฐ, V2 ์์ค์ ํ๋์จ์ด ๋น์ฉ๊ณผ ์๋๋ฅผ ์ ์งํฉ๋๋ค**. | |
[์์ธํ ๋ณด๊ธฐ](https://github.com/RVC-Boss/GPT-SoVITS/wiki/GPT%E2%80%90SoVITS%E2%80%90features-(%E5%90%84%E7%89%88%E6%9C%AC%E7%89%B9%E6%80%A7)) | |
2. V1/V2์ V2Pro ์๋ฆฌ์ฆ๋ ์ ์ฌํ ํน์ง์ ๊ฐ์ง๋ฉฐ, V3/V4๋ ๋น์ทํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ๊ท ์์ง์ด ๋ฎ์ ํ์ต ๋ฐ์ดํฐ์ ์์๋ V1/V2/V2Pro๊ฐ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ง๋ง V3/V4๋ ๊ทธ๋ ์ง ๋ชปํฉ๋๋ค. ๋ํ V3/V4์ ํฉ์ฑ ์์์ ์ ์ฒด ํ์ต ๋ฐ์ดํฐ์ ๋ณด๋ค๋ ์ฐธ๊ณ ์์ฑ์ ๋ ๊ฐ๊น์ต๋๋ค. | |
V1/V2/V3/V4 ํ๊ฒฝ์์ V2Pro๋ก ์ ํ ๋ฐฉ๋ฒ: | |
1. ์ผ๋ถ ์์กด ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด `pip install -r requirements.txt` ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์. | |
2. GitHub์์ ์ต์ ์ฝ๋๋ฅผ ํด๋ก ํ์ธ์. | |
3. [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main)์์ V2Pro ์ฌ์ ํ์ต ๋ชจ๋ธ(`v2Pro/s2Dv2Pro.pth`, `v2Pro/s2Gv2Pro.pth`, `v2Pro/s2Dv2ProPlus.pth`, `v2Pro/s2Gv2ProPlus.pth`, ๋ฐ `sv/pretrained_eres2netv2w24s4ep4.ckpt`)์ ๋ค์ด๋ก๋ํ๊ณ `GPT_SoVITS/pretrained_models` ๋๋ ํ ๋ฆฌ์ ๋ฃ์ผ์ธ์. | |
## ํ ์ผ ๋ชฉ๋ก | |
- [x] **์ต์ฐ์ ์์:** | |
- [x] ์ผ๋ณธ์ด ๋ฐ ์์ด ์ง์ญํ. | |
- [x] ์ฌ์ฉ์ ๊ฐ์ด๋. | |
- [x] ์ผ๋ณธ์ด ๋ฐ ์์ด ๋ฐ์ดํฐ์ ๋ฏธ์ธ ์กฐ์ ํ๋ จ. | |
- [ ] **๊ธฐ๋ฅ:** | |
- [x] ์ ๋ก์ท ์์ฑ ๋ณํ (5์ด) / ์๋์ ์์ฑ ๋ณํ (1๋ถ). | |
- [x] TTS ์๋ ์ ์ด. | |
- [ ] ~~ํฅ์๋ TTS ๊ฐ์ ์ ์ด.~~ | |
- [ ] SoVITS ํ ํฐ ์ ๋ ฅ์ ๋จ์ด ํ๋ฅ ๋ถํฌ๋ก ๋ณ๊ฒฝํด ๋ณด์ธ์. | |
- [x] ์์ด ๋ฐ ์ผ๋ณธ์ด ํ ์คํธ ํ๋ก ํธ ์๋ ๊ฐ์ . | |
- [ ] ์์ ํฌ๊ธฐ์ ํฐ ํฌ๊ธฐ์ TTS ๋ชจ๋ธ ๊ฐ๋ฐ. | |
- [x] Colab ์คํฌ๋ฆฝํธ. | |
- [ ] ํ๋ จ ๋ฐ์ดํฐ์ ํ์ฅ (2k ์๊ฐ์์ 10k ์๊ฐ). | |
- [x] ๋ ๋์ sovits ๊ธฐ๋ณธ ๋ชจ๋ธ (ํฅ์๋ ์ค๋์ค ํ์ง). | |
- [ ] ๋ชจ๋ธ ๋ธ๋ ๋ฉ. | |
## (์ถ๊ฐ์ ์ธ) ๋ช ๋ น์ค์์ ์คํํ๋ ๋ฐฉ๋ฒ | |
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ UVR5์ฉ WebUI ์ด๊ธฐ | |
```bash | |
python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5> | |
``` | |
<!-- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด ์ ์๋ ๊ฒฝ์ฐ UVR ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ ํ์์ ๋ฐ๋ฅด์ญ์์ค. ์ด๋ ์ค๋์ค ์ฒ๋ฆฌ๋ฅผ ์ํด mdxnet์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. | |
``` | |
python mdxnet.py --model --input_root --output_vocal --output_ins --agg_level --format --device --is_half_precision | |
``` --> | |
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ธํธ์ ์ค๋์ค ๋ถํ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. | |
```bash | |
python audio_slicer.py \ | |
--input_path "<path_to_original_audio_file_or_directory>" \ | |
--output_root "<directory_where_subdivided_audio_clips_will_be_saved>" \ | |
--threshold <volume_threshold> \ | |
--min_length <minimum_duration_of_each_subclip> \ | |
--min_interval <shortest_time_gap_between_adjacent_subclips> | |
--hop_size <step_size_for_computing_volume_curve> | |
``` | |
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ธํธ ASR ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค(์ค๊ตญ์ด๋ง ํด๋น). | |
```bash | |
python tools/asr/funasr_asr.py -i <input> -o <output> | |
``` | |
ASR ์ฒ๋ฆฌ๋ Faster_Whisper(์ค๊ตญ์ด๋ฅผ ์ ์ธํ ASR ๋งํน)๋ฅผ ํตํด ์ํ๋ฉ๋๋ค. | |
(์งํ๋ฅ ํ์์ค ์์, GPU ์ฑ๋ฅ์ผ๋ก ์ธํด ์๊ฐ ์ง์ฐ์ด ๋ฐ์ํ ์ ์์) | |
```bash | |
python ./tools/asr/fasterwhisper_asr.py -i <input> -o <output> -l <language> -p <precision> | |
``` | |
์ฌ์ฉ์ ์ ์ ๋ชฉ๋ก ์ ์ฅ ๊ฒฝ๋ก๊ฐ ํ์ฑํ๋์์ต๋๋ค. | |
## ๊ฐ์ฌ์ ๋ง | |
๋ค์ ํ๋ก์ ํธ์ ๊ธฐ์ฌ์๋ค์๊ฒ ํน๋ณํ ๊ฐ์ฌ๋๋ฆฝ๋๋ค: | |
### ์ด๋ก ์ฐ๊ตฌ | |
- [ar-vits](https://github.com/innnky/ar-vits) | |
- [SoundStorm](https://github.com/yangdongchao/SoundStorm/tree/master/soundstorm/s1/AR) | |
- [vits](https://github.com/jaywalnut310/vits) | |
- [TransferTTS](https://github.com/hcy71o/TransferTTS/blob/master/models.py#L556) | |
- [contentvec](https://github.com/auspicious3000/contentvec/) | |
- [hifi-gan](https://github.com/jik876/hifi-gan) | |
- [fish-speech](https://github.com/fishaudio/fish-speech/blob/main/tools/llama/generate.py#L41) | |
- [f5-TTS](https://github.com/SWivid/F5-TTS/blob/main/src/f5_tts/model/backbones/dit.py) | |
- [shortcut flow matching](https://github.com/kvfrans/shortcut-models/blob/main/targets_shortcut.py) | |
### ์ฌ์ ํ์ต ๋ชจ๋ธ | |
- [Chinese Speech Pretrain](https://github.com/TencentGameMate/chinese_speech_pretrain) | |
- [Chinese-Roberta-WWM-Ext-Large](https://huggingface.co/hfl/chinese-roberta-wwm-ext-large) | |
- [BigVGAN](https://github.com/NVIDIA/BigVGAN) | |
- [eresnetv2](https://modelscope.cn/models/iic/speech_eres2netv2w24s4ep4_sv_zh-cn_16k-common) | |
### ์ถ๋ก ์ฉ ํ ์คํธ ํ๋ก ํธ์๋ | |
- [paddlespeech zh_normalization](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/paddlespeech/t2s/frontend/zh_normalization) | |
- [split-lang](https://github.com/DoodleBears/split-lang) | |
- [g2pW](https://github.com/GitYCC/g2pW) | |
- [pypinyin-g2pW](https://github.com/mozillazg/pypinyin-g2pW) | |
- [paddlespeech g2pw](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/paddlespeech/t2s/frontend/g2pw) | |
### WebUI ๋๊ตฌ | |
- [ultimatevocalremovergui](https://github.com/Anjok07/ultimatevocalremovergui) | |
- [audio-slicer](https://github.com/openvpi/audio-slicer) | |
- [SubFix](https://github.com/cronrpc/SubFix) | |
- [FFmpeg](https://github.com/FFmpeg/FFmpeg) | |
- [gradio](https://github.com/gradio-app/gradio) | |
- [faster-whisper](https://github.com/SYSTRAN/faster-whisper) | |
- [FunASR](https://github.com/alibaba-damo-academy/FunASR) | |
- [AP-BWE](https://github.com/yxlu-0102/AP-BWE) | |
@Naozumi520 ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ด๋ฅ์ด ํ์ต ์๋ฃ๋ฅผ ์ ๊ณตํด ์ฃผ์๊ณ , ๊ด๋ฅ์ด ๊ด๋ จ ์ง์์ ์ง๋ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. | |
## ๋ชจ๋ ๊ธฐ์ฌ์๋ค์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค ;) | |
<a href="https://github.com/RVC-Boss/GPT-SoVITS/graphs/contributors" target="_blank"> | |
<img src="https://contrib.rocks/image?repo=RVC-Boss/GPT-SoVITS" /> | |
</a> | |