🐔

SO-VITS-SVC 4.0 と 4.1 のインテル/Apple Silicon Mac でのローカル推論

2024/05/30に公開

はじめに

SO-VITS-SVC プロジェクトは、歌声変換向けに特別に設計された声の合成と変換分野で最先端のイニシアチブを表しています。変分推論と敵対的学習(VITS)モデルの能力を活用して、このプロジェクトは、ユーザーが話し言葉または歌声を異なるキャラクターや人物の声に変換できるプラットフォームを提供しています。

主に深層学習と音声合成に興味を持つ愛好家、声の操作やアニメキャラクターの声生成に興味を持つ研究者や愛好家を対象として、SO-VITS-SVC は、深層学習の理論的知識を実世界のシナリオに適用するための実用的ツールとして機能します。このプロジェクトは、ユーザーが音声変換のさまざまな側面(音色、ピッチ、リズムの変更を含む)を実験できるようにします。

このチュートリアルでは、Mac プラットフォームの CPU を使用してこのプロジェクトを実行する方法について説明します。

参考動画とドキュメント:

  • So-VITS-SVC 4.1統合パッケージ完全ガイド、bilibili@羽毛布団によって作成されました。非常に良いガイドです。

  • English Version

  • Macでのトレーニングはまだ考えないでください。前処理と推論ができれば十分です。LLMの実行は可能かもしれませんが、MPSでMac上でトレーニングに成功した方がいれば教えてください。

  • このチュートリアルでは、主にモデルをトレーニングしてローカルマシンにダウンロードした後の推論プロセスについて説明します。私がテストしたところ、すべて正常に動作しました。

  • トレーニングに関する情報は上記の参考動画に非常に詳細に記載されています。データセットが鍵であり、トレーニングには忍耐が必要です。

  • プロジェクトリンク: https://github.com/svc-develop-team/so-vits-svc


このチュートリアルはコミュニケーションおよび学習目的のみです。違法、不道徳、または非倫理的な目的で使用しないでください。

データセットに関する認可問題は自己責任で対処してください。認可されていないデータセットをトレーニングに使用したことによる問題やその結果については、全責任を負うものとします。リポジトリおよびそのメンテナーであるsvc develop teamは、結果に対する一切の責任を否認します。

政治関連の目的で使用することは厳禁です。

ソフトウェア要件:

  1. Homebrew https://brew.sh/
  2. VScode(オプション)
  3. Python3


SO-VITS-SVC 4.0のために、パッケージ不足によるエラーを防ぐためにSo-Vits-SVC-Forkをインストールします:

brew install python-tk@3.11

SO-VITS-SVC 4.1のために、WebUI使用時にPython 3.11との互換性の問題を防ぐために以下をインストールします:

brew install python3.10

必要なバージョンのモデルを選択してください。両方のバージョンをインストールする必要はありません。

SO-VITS-SVC 4.0 推論

1. 仮想環境の作成

仮想環境を作成します。

python3 -m venv myenv # 'myenv'を別の名前に変更

2. 仮想環境に入る

cd myenv
source bin/activate

3. パッケージのインストール

python -m pip install -U pip setuptools wheel

pip3 install torch torchvision torchaudio

pip install -U so-vits-svc-fork

4. サービスの開始

svcg
  • "Use GPU"をオフにします。
  • "infer"をクリックして推論を開始します。
  • "F0 predict"を試してみます。
  • 4.1モデルはここでは正常にテストされなかったため、webuiを使用します。

e7210520dc3be23ac200f1cf276f8702238256624.png@1256w_780h_!web-article-pic.png

SO-VITS-SVC 4.1 推論

公式リポジトリのWebUIを使用します: https://github.com/svc-develop-team/so-vits-svc

1. 仮想環境の作成

仮想環境を作成します。

python3.10 -m venv myenv # 'myvenv'を別の名前に変更しても良いです。python3.9でも可能です。

2. 仮想環境に入る

cd myenv
source bin/activate

3. リポジトリをクローン

git clone https://github.com/svc-develop-team/so-vits-svc.git

4. ディレクトリに入る

cd so-vits-svc

5. パッケージのインストール

pip install -r requirements.txt

6. WebUIの起動

(WebUIに入った後、モデルが読み込まれないのは通常のことです)

python webUI.py

WebUI関連のエラーが発生した場合は、依存関係のバージョンを制限します: fastapi==0.84.0, gradio==3.41.2, pydantic==1.10.12。以下のコマンドを使用してパッケージを更新します。

pip install --upgrade fastapi==0.84.0  
pip install --upgrade gradio==3.41.2  
pip install --upgrade pydantic==1.10.12

7. 不足しているファイルをダウンロード

(モデルによっては異なるファイルが不足する可能性があります)

主な不足ファイルはpretrainフォルダーにあります。コマンドラインエラーに従ってファイルを追加します。必要なファイルはクラウドトレーニングサーバーからダウンロードするか、提供されたリンクからダウンロードできます。

現在使用している構成:

# デフォルトでは、ボリューム埋め込みを使用して768を使用
!python preprocess_flist_config.py --speech_encoder vec768l12 --vol_aug  
!rsync -v pre_trained_model/768l12/vol_emb/* logs/44k  
# デフォルトでは、浅い拡散を用いてrmvpeを使用
!python preprocess_hubert_f0.py --f0_predictor rmvpe --use_diff  
%cp pre_trained_model/diffusion/768l12/* logs/44k/diffusion  
##### 浅い拡散モデルをトレーニング
!python train_diff.py -c configs/diffusion.yaml   
##### メインモデルをトレーニング
!python train.py -c configs/config.json -m 44k

出典: kiss丿冷鸟鸟

56f7b12fd3ca84754f095cf04aa4f5a8238256624.png@1256w_164h_!web-article-pic.png

主な不足ファイルはpretrainフォルダーにあります。コマンドラインエラーに従ってファイルを追加します。

meta.pyファイルの構造の例:

.  
├── checkpoint_best_legacy_500.pt  
├── chinese-hubert-large-fairseq-ckpt.pt  
├── fcpe.pt  
├── hubert-soft-0d54a1f4.pt  
├── __init__.py  
├── medium.pt  
├── meta.py  
├── nsf_hifigan  
│   ├── config.json  
│   ├── model  
│   ├── NOTICE.txt  
│   ├── NOTICE.zh-CN.txt  
│   └── put_nsf_hifigan_ckpt_here  
├── put_hubert_ckpt_here  
└── rmvpe.pt

ff2d049c0d81a40a8f57ce2a6d7b2d0c238256624.png@1256w_762h_!web-article-pic.png

まとめ

  • MacではまだMPSに関する問題があるため、現在はCPUで動作していますが、少なくとも動作しています。限られたスキルのため、これが現状の限界です。WindowsとNvidiaカードを持つ方は、より快適な体験ができるでしょう。

  • モデル: トレーニング結果は非常に良好です。長時間のトレーニングは必要ありません。サーバーで数時間(データセットによります)。トレーニングに使用されたすべてのデータセットはElevenlabから生成された合成データで、品質はかなり良いです(テキスト推論用)。TTSの場合、Fish-SpeechとBert-Vits2がお勧めです。

ご覧いただきありがとうございます。このチュートリアルに関する問題やより良い方法があれば、ぜひお知らせください。

バージョン: 1.0

バナー: OPPO Reno 11 Pro Wallpaper

Discussion