* Update Install.sh * Format Code * Delete dev null * Update README, Support Dark Mode in CSS/JS
機能:
-
Zero-Shot TTS: たった 5 秒間の音声サンプルで、即座にテキストからその音声に変換できます.
-
Few-Shot TTS: わずか 1 分間のトレーニングデータでモデルを微調整し、音声のクオリティを向上.
-
多言語サポート: 現在、英語、日本語、韓国語、広東語、中国語をサポートしています.
-
WebUI ツール: 統合されたツールは、音声と伴奏 (BGM 等) の分離、トレーニングセットの自動セグメンテーション、ASR (中国語のみ)、テキストラベリング等を含むため、初心者の方でもトレーニングデータセットの作成や GPT/SoVITS モデルのトレーニング等を非常に簡単に行えます.
デモ動画をチェック!
声の事前学習無しかつ Few-Shot でトレーニングされたモデルのデモ:
https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb
インストール
テスト済みの環境
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 以降でテスト済み)、統合パッケージをダウンロードし、解凍後に go-webui.bat をダブルクリックすると、GPT-SoVITS-WebUI が起動します.
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
注: Mac で GPU を使用して訓練されたモデルは、他のデバイスで訓練されたモデルと比較して著しく品質が低下するため、当面は CPU を使用して訓練することを強く推奨します.
以下のコマンドを実行してこのプロジェクトをインストールします:
conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
bash install.sh --device <MPS|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5]
手動インストール
依存関係をインストールします
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 ユーザー
conda activate GPTSoVits
conda install ffmpeg
Ubuntu/Debian ユーザー
sudo apt install ffmpeg
sudo apt install libsox-dev
Windows ユーザー
ffmpeg.exe と ffprobe.exe をダウンロードし、GPT-SoVITS のルートフォルダに置きます
Visual Studio 2017 環境をインストールしてください
MacOS ユーザー
brew install ffmpeg
GPT-SoVITS の実行 (Docker 使用)
Docker イメージの選択
コードベースの更新が頻繁である一方、Docker イメージのリリースは比較的遅いため、以下を確認してください:
- Docker Hub で最新のイメージタグを確認してください
- 環境に合った適切なイメージタグを選択してください
Lite
とは、Docker イメージに ASR モデルおよび UVR5 モデルが含まれていないことを意味します. UVR5 モデルは手動でダウンロードし、ASR モデルは必要に応じてプログラムが自動的にダウンロードします- Docker Compose 実行時に、対応するアーキテクチャ (amd64 または arm64) のイメージが自動的に取得されます
- Docker Compose は現在のディレクトリ内のすべてのファイルをマウントします. Docker イメージを使用する前に、プロジェクトのルートディレクトリに移動し、コードを最新の状態に更新してください
- オプション:最新の変更を反映させるため、提供されている 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 で実行するには、以下のコマンドを使用します:
docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128>
Docker イメージのローカルビルド
自分でイメージをビルドするには、以下のコマンドを使ってください:
bash docker_build.sh --cuda <12.6|12.8> [--lite]
実行中のコンテナへアクセス (Bash Shell)
コンテナがバックグラウンドで実行されている場合、以下のコマンドでシェルにアクセスできます:
docker exec -it <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128> bash
事前訓練済みモデル
install.sh
が正常に実行された場合、No.1,2,3 はスキップしてかまいません.
-
GPT-SoVITS Models から事前訓練済みモデルをダウンロードし、
GPT_SoVITS/pretrained_models
ディレクトリに配置してください. -
G2PWModel.zip(HF)| G2PWModel.zip(ModelScope) からモデルをダウンロードし、解凍して
G2PWModel
にリネームし、GPT_SoVITS/text
ディレクトリに配置してください. (中国語 TTS のみ) -
UVR5 (ボーカル/伴奏 (BGM 等) 分離 & リバーブ除去の追加機能) の場合は、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
もペアです.
-
-
中国語 ASR (追加機能) の場合は、Damo ASR Model、Damo VAD Model、および Damo Punc Model からモデルをダウンロードし、
tools/asr/models
ディレクトリに配置してください. -
英語または日本語の ASR (追加機能) を使用する場合は、Faster Whisper Large V3 からモデルをダウンロードし、
tools/asr/models
ディレクトリに配置してください.また、他のモデル は、より小さいサイズで高クオリティな可能性があります.
データセット形式
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
を使用してください.
その他
python webui.py <言語(オプション)>
V1 に切り替えたい場合は
python webui.py v1 <言語(オプション)>
または WebUI で手動でバージョンを切り替えてください.
微調整
パス自動補完のサポート
- 音声パスを入力する
- 音声を小さなチャンクに分割する
- ノイズ除去 (オプション)
- ASR
- ASR 転写を校正する
- 次のタブに移動し、モデルを微調整する
推論 WebUI を開く
統合パッケージ利用者
go-webui-v2.bat
をダブルクリックするか、go-webui-v2.ps1
を使用して、1-GPT-SoVITS-TTS/1C-inference
で推論 webui を開きます.
その他
python GPT_SoVITS/inference_webui.py <言語(オプション)>
または
python webui.py
その後、1-GPT-SoVITS-TTS/1C-inference
で推論 webui を開きます.
V2 リリースノート
新機能:
-
韓国語と広東語をサポート
-
最適化されたテキストフロントエンド
-
事前学習済みモデルが 2 千時間から 5 千時間に拡張
-
低品質の参照音声に対する合成品質の向上
V1 環境から V2 を使用するには:
-
pip install -r requirements.txt
を使用していくつかのパッケージを更新 -
最新のコードを github からクローン
-
huggingfaceから V2 の事前学習モデルをダウンロードし、それらを
GPT_SoVITS/pretrained_models/gsv-v2final-pretrained
に配置中国語 V2 追加: G2PWModel.zip(HF)| G2PWModel.zip(ModelScope) (G2PW モデルをダウンロードし、解凍して
G2PWModel
にリネームし、GPT_SoVITS/text
に配置します)
V3 リリースノート
新機能:
-
音色の類似性が向上し、ターゲットスピーカーを近似するために必要な学習データが少なくなりました (音色の類似性は、ファインチューニングなしでベースモデルを直接使用することで顕著に改善されます).
-
GPT モデルがより安定し、繰り返しや省略が減少し、より豊かな感情表現を持つ音声の生成が容易になりました.
v2 環境から v3 を使用する方法:
-
pip install -r requirements.txt
を実行して、いくつかのパッケージを更新します. -
GitHub から最新のコードをクローンします.
-
v3 の事前学習済みモデル (s1v3.ckpt、s2Gv3.pth、models--nvidia--bigvgan_v2_24khz_100band_256x フォルダ) をHuggingface からダウンロードし、GPT_SoVITS/pretrained_models フォルダに配置します.
追加: 音声超解像モデルについては、ダウンロード方法を参照してください.
V4 リリースノート
新機能:
- V4 は、V3 で発生していた非整数倍アップサンプリングによる金属音の問題を修正し、音声がこもる問題を防ぐためにネイティブに 48kHz 音声を出力します(V3 はネイティブに 24kHz 音声のみ出力). 作者は V4 を V3 の直接的な置き換えとして推奨していますが、さらなるテストが必要です. 詳細はこちら
V1/V2/V3 環境から V4 への移行方法:
-
pip install -r requirements.txt
を実行して一部の依存パッケージを更新してください. -
GitHub から最新のコードをクローンします.
-
huggingface から V4 の事前学習済みモデル (
gsv-v4-pretrained/s2v4.ckpt
およびgsv-v4-pretrained/vocoder.pth
) をダウンロードし、GPT_SoVITS/pretrained_models
ディレクトリへ配置してください.
V2Pro リリースノート
新機能:
-
**V2 と比較してやや高いメモリ使用量ですが、ハードウェアコストと推論速度は維持しつつ、V4 よりも高い性能と音質を実現します. ** 詳細はこちら
-
V1/V2 と V2Pro シリーズは類似した特徴を持ち、V3/V4 も同様の機能を持っています. 平均音質が低いトレーニングセットの場合、V1/V2/V2Pro は良好な結果を出すことができますが、V3/V4 では対応できません. また、V3/V4 の合成音声はトレーニング全体ではなく、より参考音声に寄った音質になります.
V1/V2/V3/V4 環境から V2Pro への移行方法:
-
pip install -r requirements.txt
を実行して一部の依存パッケージを更新してください. -
GitHub から最新のコードをクローンします.
-
huggingface から V2Pro の事前学習済みモデル (
v2Pro/s2Dv2Pro.pth
,v2Pro/s2Gv2Pro.pth
,v2Pro/s2Dv2ProPlus.pth
,v2Pro/s2Gv2ProPlus.pth
, およびsv/pretrained_eres2netv2w24s4ep4.ckpt
) をダウンロードし、GPT_SoVITS/pretrained_models
ディレクトリへ配置してください.
Todo リスト
-
優先度 高:
- 日本語と英語でのローカライズ.
- ユーザーガイド.
- 日本語データセットと英語データセットのファインチューニングトレーニング.
-
機能:
- ゼロショット音声変換 (5 秒) /数ショット音声変換 (1 分).
- TTS スピーキングスピードコントロール.
TTS の感情コントロールの強化.- SoVITS トークン入力を語彙の確率分布に変更する実験.
- 英語と日本語のテキストフロントエンドを改善.
- 小型と大型の TTS モデルを開発する.
- Colab のスクリプト.
- トレーニングデータセットを拡張する (2k→10k).
- より良い sovits ベースモデル (音質向上)
- モデルミックス
(追加の) コマンドラインから実行する方法
コマンド ラインを使用して UVR5 の WebUI を開きます
python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5>
コマンド ラインを使用してデータセットのオーディオ セグメンテーションを行う方法は次のとおりです.
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 処理を行う方法です (中国語のみ)
python tools/asr/funasr_asr.py -i <input> -o <output>
ASR 処理は Faster_Whisper を通じて実行されます(中国語を除く ASR マーキング)
(進行状況バーは表示されません.GPU のパフォーマンスにより時間遅延が発生する可能性があります)
python ./tools/asr/fasterwhisper_asr.py -i <input> -o <output> -l <language> -p <precision>
カスタムリストの保存パスが有効になっています
クレジット
特に以下のプロジェクトと貢献者に感謝します:
理論研究
事前学習モデル
推論用テキストフロントエンド
WebUI ツール
@Naozumi520 さん、広東語のトレーニングセットの提供と、広東語に関する知識のご指導をいただき、感謝申し上げます.