GPT-SoVITS-WebUI
-パワフルなFew-Shot音声変換・音声合成 WebUI。
+パワフルなFew-Shot音声変換・音声合成 WebUI.
[](https://github.com/RVC-Boss/GPT-SoVITS)
@@ -20,13 +20,13 @@
## 機能:
-1. **Zero-Shot TTS:** たった 5 秒間の音声サンプルで、即座にテキストからその音声に変換できます。
+1. **Zero-Shot TTS:** たった 5 秒間の音声サンプルで、即座にテキストからその音声に変換できます.
-2. **Few-Shot TTS:** わずか 1 分間のトレーニングデータでモデルを微調整し、音声のクオリティを向上。
+2. **Few-Shot TTS:** わずか 1 分間のトレーニングデータでモデルを微調整し、音声のクオリティを向上.
-3. **多言語サポート:** 現在、英語、日本語、韓国語、広東語、中国語をサポートしています。
+3. **多言語サポート:** 現在、英語、日本語、韓国語、広東語、中国語をサポートしています.
-4. **WebUI ツール:** 統合されたツールは、音声と伴奏(BGM 等)の分離、トレーニングセットの自動セグメンテーション、ASR(中国語のみ)、テキストラベリング等を含むため、初心者の方でもトレーニングデータセットの作成や GPT/SoVITS モデルのトレーニング等を非常に簡単に行えます。
+4. **WebUI ツール:** 統合されたツールは、音声と伴奏 (BGM 等) の分離、トレーニングセットの自動セグメンテーション、ASR (中国語のみ)、テキストラベリング等を含むため、初心者の方でもトレーニングデータセットの作成や GPT/SoVITS モデルのトレーニング等を非常に簡単に行えます.
**[デモ動画](https://www.bilibili.com/video/BV12g4y1m7Uw)をチェック!**
@@ -40,47 +40,58 @@ https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-
### テスト済みの環境
-- Python 3.9, PyTorch 2.0.1, CUDA 11
-- Python 3.10.13, PyTorch 2.1.2, CUDA 12.3
-- Python 3.9, PyTorch 2.2.2, macOS 14.4.1 (Apple silicon)
-- Python 3.9, PyTorch 2.2.2, CPU デバイス
-
-_注記: numba==0.56.4 は py<3.11 が必要です_
+| 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 ユーザー:(Windows 10 以降でテスト済み)、[統合パッケージをダウンロード](https://huggingface.co/lj1995/GPT-SoVITS-windows-package/resolve/main/GPT-SoVITS-v3lora-20250228.7z?download=true)し、解凍後に _go-webui.bat_ をダブルクリックすると、GPT-SoVITS-WebUI が起動します。
+Windows ユーザー: (Windows 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.9
+conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
-bash install.sh
+bash install.sh --device
--source [--download-uvr5]
```
### macOS
-**注:Mac で GPU を使用して訓練されたモデルは、他のデバイスで訓練されたモデルと比較して著しく品質が低下するため、当面は CPU を使用して訓練することを強く推奨します。**
+**注: Mac で GPU を使用して訓練されたモデルは、他のデバイスで訓練されたモデルと比較して著しく品質が低下するため、当面は CPU を使用して訓練することを強く推奨します.**
-1. `xcode-select --install` を実行して、Xcode コマンドラインツールをインストールします。
-2. `brew install ffmpeg` を実行して FFmpeg をインストールします。
-3. 上記の手順を完了した後、以下のコマンドを実行してこのプロジェクトをインストールします。
+以下のコマンドを実行してこのプロジェクトをインストールします:
```bash
-conda create -n GPTSoVits python=3.9
+conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
-pip install -r extra-req.txt --no-deps
-pip install -r requirements.txt
+bash install.sh --device --source [--download-uvr5]
```
### 手動インストール
-#### FFmpeg をインストールします。
+#### 依存関係をインストールします
+
+```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
```
@@ -89,12 +100,13 @@ conda install ffmpeg
```bash
sudo apt install ffmpeg
sudo apt install libsox-dev
-conda install -c conda-forge 'ffmpeg<7'
```
##### 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 のルートフォルダに置きます。
+[ffmpeg.exe](https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe) と [ffprobe.exe](https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe) をダウンロードし、GPT-SoVITS のルートフォルダに置きます
+
+[Visual Studio 2017](https://aka.ms/vs/17/release/vc_redist.x86.exe) 環境をインストールしてください
##### MacOS ユーザー
@@ -102,55 +114,72 @@ conda install -c conda-forge 'ffmpeg<7'
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` ファイルには次の 2 種類のサービスが定義されています:
+
+- `GPT-SoVITS-CU126` および `GPT-SoVITS-CU128`:すべての機能を含むフルバージョン
+- `GPT-SoVITS-CU126-Lite` および `GPT-SoVITS-CU128-Lite`:依存関係を削減した軽量バージョン
+
+特定のサービスを Docker Compose で実行するには、以下のコマンドを使用します:
```bash
-pip install -r extra-req.txt --no-deps
-pip install -r requirementx.txt
+docker compose run --service-ports
```
-### Docker の使用
+#### Docker イメージのローカルビルド
-#### docker-compose.yaml の設定
+自分でイメージをビルドするには、以下のコマンドを使ってください:
-0. イメージのタグについて:コードベースの更新が速い割に、イメージのパッケージングとテストが遅いため、[Docker Hub](https://hub.docker.com/r/breakstring/gpt-sovits) で現在パッケージされている最新のイメージをご覧になり、ご自身の状況に応じて選択するか、またはご自身のニーズに応じて Dockerfile を使用してローカルでビルドしてください。
-1. 環境変数:
-
- - `is_half`:半精度/倍精度の制御。"SSL 抽出"ステップ中に`4-cnhubert/5-wav32k`ディレクトリ内の内容が正しく生成されない場合、通常これが原因です。実際の状況に応じて True または False に調整してください。
-
-2. ボリューム設定:コンテナ内のアプリケーションのルートディレクトリは`/workspace`に設定されます。デフォルトの`docker-compose.yaml`には、アップロード/ダウンロードの内容の実例がいくつか記載されています。
-3. `shm_size`:Windows の Docker Desktop のデフォルトの利用可能メモリは小さすぎるため、うまく動作しない可能性があります。状況に応じて適宜設定してください。
-4. `deploy`セクションの GPU に関連する内容は、システムと実際の状況に応じて慎重に設定してください。
-
-#### docker compose で実行する
-
-```markdown
-docker compose -f "docker-compose.yaml" up -d
+```bash
+bash docker_build.sh --cuda <12.6|12.8> [--lite]
```
-#### docker コマンドで実行する
+#### 実行中のコンテナへアクセス (Bash Shell)
-上記と同様に、実際の状況に基づいて対応するパラメータを変更し、次のコマンドを実行します:
+コンテナがバックグラウンドで実行されている場合、以下のコマンドでシェルにアクセスできます:
-```markdown
-docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9880:9880 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx
+```bash
+docker exec -it bash
```
## 事前訓練済みモデル
-1. [GPT-SoVITS Models](https://huggingface.co/lj1995/GPT-SoVITS) から事前訓練済みモデルをダウンロードし、`GPT_SoVITS/pretrained_models` ディレクトリに配置してください。
+**`install.sh`が正常に実行された場合、No.1,2,3 はスキップしてかまいません.**
-2. [G2PWModel_1.1.zip](https://paddlespeech.cdn.bcebos.com/Parakeet/released_models/g2p/G2PWModel_1.1.zip) からモデルをダウンロードし、解凍して `G2PWModel` にリネームし、`GPT_SoVITS/text` ディレクトリに配置してください。(中国語 TTS のみ)
+1. [GPT-SoVITS Models](https://huggingface.co/lj1995/GPT-SoVITS) から事前訓練済みモデルをダウンロードし、`GPT_SoVITS/pretrained_models` ディレクトリに配置してください.
-3. UVR5(ボーカル/伴奏(BGM 等)分離 & リバーブ除去の追加機能)の場合は、[UVR5 Weights](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights) からモデルをダウンロードし、`tools/uvr5/uvr5_weights` ディレクトリに配置してください。
+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 のみ)
- - UVR5 で bs_roformer または mel_band_roformer モデルを使用する場合、モデルと対応する設定ファイルを手動でダウンロードし、`tools/UVR5/UVR5_weights`フォルダに配置することができます。**モデルファイルと設定ファイルの名前は、拡張子を除いて同じであることを確認してください**。さらに、モデルと設定ファイルの名前には**「roformer」が含まれている必要があります**。これにより、roformer クラスのモデルとして認識されます。
+3. UVR5 (ボーカル/伴奏 (BGM 等) 分離 & リバーブ除去の追加機能) の場合は、[UVR5 Weights](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights) からモデルをダウンロードし、`tools/uvr5/uvr5_weights` ディレクトリに配置してください.
- - モデル名と設定ファイル名には、**直接モデルタイプを指定することをお勧めします**。例: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`もペアです。
+ - UVR5 で bs_roformer または mel_band_roformer モデルを使用する場合、モデルと対応する設定ファイルを手動でダウンロードし、`tools/UVR5/UVR5_weights`フォルダに配置することができます.**モデルファイルと設定ファイルの名前は、拡張子を除いて同じであることを確認してください**.さらに、モデルと設定ファイルの名前には**「roformer」が含まれている必要があります**.これにより、roformer クラスのモデルとして認識されます.
-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` ディレクトリに配置してください。
+ - モデル名と設定ファイル名には、**直接モデルタイプを指定することをお勧めします**.例: 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`もペアです.
-5. 英語または日本語の ASR(追加機能)を使用する場合は、[Faster Whisper Large V3](https://huggingface.co/Systran/faster-whisper-large-v3) からモデルをダウンロードし、`tools/asr/models` ディレクトリに配置してください。また、[他のモデル](https://huggingface.co/Systran) は、より小さいサイズで高クオリティな可能性があります。
+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) は、より小さいサイズで高クオリティな可能性があります.
## データセット形式
@@ -178,8 +207,8 @@ D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.
#### 統合パッケージ利用者
-`go-webui.bat`をダブルクリックするか、`go-webui.ps1`を使用します。
-V1 に切り替えたい場合は、`go-webui-v1.bat`をダブルクリックするか、`go-webui-v1.ps1`を使用してください。
+`go-webui.bat`をダブルクリックするか、`go-webui.ps1`を使用します.
+V1 に切り替えたい場合は、`go-webui-v1.bat`をダブルクリックするか、`go-webui-v1.ps1`を使用してください.
#### その他
@@ -193,24 +222,24 @@ V1 に切り替えたい場合は
python webui.py v1 <言語(オプション)>
```
-または WebUI で手動でバージョンを切り替えてください。
+または WebUI で手動でバージョンを切り替えてください.
### 微調整
#### パス自動補完のサポート
- 1. 音声パスを入力する
- 2. 音声を小さなチャンクに分割する
- 3. ノイズ除去(オプション)
- 4. ASR
- 5. ASR転写を校正する
- 6. 次のタブに移動し、モデルを微調整する
+1. 音声パスを入力する
+2. 音声を小さなチャンクに分割する
+3. ノイズ除去 (オプション)
+4. ASR
+5. ASR 転写を校正する
+6. 次のタブに移動し、モデルを微調整する
### 推論 WebUI を開く
#### 統合パッケージ利用者
-`go-webui-v2.bat`をダブルクリックするか、`go-webui-v2.ps1`を使用して、`1-GPT-SoVITS-TTS/1C-inference`で推論 webui を開きます。
+`go-webui-v2.bat`をダブルクリックするか、`go-webui-v2.ps1`を使用して、`1-GPT-SoVITS-TTS/1C-inference`で推論 webui を開きます.
#### その他
@@ -224,7 +253,7 @@ python GPT_SoVITS/inference_webui.py <言語(オプション)>
python webui.py
```
-その後、`1-GPT-SoVITS-TTS/1C-inference`で推論 webui を開きます。
+その後、`1-GPT-SoVITS-TTS/1C-inference`で推論 webui を開きます.
## V2 リリースノート
@@ -246,66 +275,66 @@ V1 環境から V2 を使用するには:
2. 最新のコードを github からクローン
-3. [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main/gsv-v2final-pretrained)から V2 の事前学習モデルをダウンロードし、それらを`GPT_SoVITS\pretrained_models\gsv-v2final-pretrained`に配置
+3. [huggingface](https://huggingface.co/lj1995/GPT-SoVITS/tree/main/gsv-v2final-pretrained)から V2 の事前学習モデルをダウンロードし、それらを`GPT_SoVITS/pretrained_models/gsv-v2final-pretrained`に配置
- 中国語 V2 追加: [G2PWModel_1.1.zip](https://paddlespeech.cdn.bcebos.com/Parakeet/released_models/g2p/G2PWModel_1.1.zip)(G2PW モデルをダウンロードし、解凍して`G2PWModel`にリネームし、`GPT_SoVITS/text`に配置します)
+ 中国語 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. 音色の類似性が向上し、ターゲットスピーカーを近似するために必要な学習データが少なくなりました(音色の類似性は、ファインチューニングなしでベースモデルを直接使用することで顕著に改善されます)。
+1. 音色の類似性が向上し、ターゲットスピーカーを近似するために必要な学習データが少なくなりました (音色の類似性は、ファインチューニングなしでベースモデルを直接使用することで顕著に改善されます).
-2. GPT モデルがより安定し、繰り返しや省略が減少し、より豊かな感情表現を持つ音声の生成が容易になりました。
+2. GPT モデルがより安定し、繰り返しや省略が減少し、より豊かな感情表現を持つ音声の生成が容易になりました.
[詳細情報はこちら]()
v2 環境から v3 を使用する方法:
-1. `pip install -r requirements.txt` を実行して、いくつかのパッケージを更新します。
+1. `pip install -r requirements.txt` を実行して、いくつかのパッケージを更新します.
-2. GitHub から最新のコードをクローンします。
+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 フォルダに配置します。
+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)を参照してください。
+ 追加: 音声超解像モデルについては、[ダウンロード方法](../../tools/AP_BWE_main/24kto48k/readme.txt)を参照してください.
## Todo リスト
- [x] **優先度 高:**
- - [x] 日本語と英語でのローカライズ。
- - [x] ユーザーガイド。
- - [x] 日本語データセットと英語データセットのファインチューニングトレーニング。
+ - [x] 日本語と英語でのローカライズ.
+ - [x] ユーザーガイド.
+ - [x] 日本語データセットと英語データセットのファインチューニングトレーニング.
- [ ] **機能:**
- - [x] ゼロショット音声変換(5 秒)/数ショット音声変換(1 分)。
- - [x] TTS スピーキングスピードコントロール。
- - [ ] ~~TTS の感情コントロールの強化。~~
- - [ ] SoVITS トークン入力を語彙の確率分布に変更する実験。
- - [x] 英語と日本語のテキストフロントエンドを改善。
- - [ ] 小型と大型の TTS モデルを開発する。
- - [x] Colab のスクリプト。
- - [ ] トレーニングデータセットを拡張する(2k→10k)。
- - [x] より良い sovits ベースモデル(音質向上)
+ - [x] ゼロショット音声変換 (5 秒) /数ショット音声変換 (1 分).
+ - [x] TTS スピーキングスピードコントロール.
+ - [ ] ~~TTS の感情コントロールの強化.~~
+ - [ ] SoVITS トークン入力を語彙の確率分布に変更する実験.
+ - [x] 英語と日本語のテキストフロントエンドを改善.
+ - [ ] 小型と大型の TTS モデルを開発する.
+ - [x] Colab のスクリプト.
+ - [ ] トレーニングデータセットを拡張する (2k→10k).
+ - [x] より良い sovits ベースモデル (音質向上)
- [ ] モデルミックス
## (追加の) コマンドラインから実行する方法
コマンド ラインを使用して UVR5 の WebUI を開きます
-```
+```bash
python tools/uvr5/webui.py ""
```
-
-コマンド ラインを使用してデータセットのオーディオ セグメンテーションを行う方法は次のとおりです。
+コマンド ラインを使用してデータセットのオーディオ セグメンテーションを行う方法は次のとおりです.
-```
+```bash
python audio_slicer.py \
--input_path "" \
--output_root "" \
@@ -317,15 +346,15 @@ python audio_slicer.py \
コマンドラインを使用してデータセット ASR 処理を行う方法です (中国語のみ)
-```
+```bash
python tools/asr/funasr_asr.py -i -o