so-vits-svc - VITS と softvc に基づく歌声色変換モデル

(基于vits与softvc的歌声音色转换模型)

Created at: 2022-09-19 07:59:25
Language: Python
License: MIT

ソフトVC VITS 歌声変換

英語ドキュメント

こちらをチェック

最新情報

4.0モデルとコラボスクリプトが更新されました:4.0ブランチ 統一サンプリングレートは44100Hzを使用し(ただし、推論メモリは3.0では32kHz未満を占有します)、特徴抽出はcontentvecに置き換えられ、安定性は広範囲にテストされていません

不完全な統計によると、より多くのスピーカーは悪化した音色の漏れにつながるようであり、5人以上のモデルを訓練することは推奨されません、現在の推奨事項は、ターゲット音色のように洗練したい場合は、可能な限り単一のスピーカーを洗練することですスタ
ッカートの問題が解決され、音質が大幅に改善されました バージョン
2.0はsovits_2.0ブランチ
に移動されました バージョン3.0はFreeVCのコード構造を使用していますが、これは古いバージョンには一般的ではありません DiffSVCと比較して
、diffsvcはトレーニングデータの品質が非常に高い場合にパフォーマンスが高く、このリポジトリは低品質のデータセットに対してパフォーマンスが向上する可能性があり、さらに、このリポジトリは推論においてdiffsvcよりもはるかに高速です

モデルの紹介

歌声の色変換モデルは、SoftVC コンテンツ エンコーダーを介してソース オーディオ音声の特徴を抽出し、元のテキスト入力を F0 入力 VITS に置き換えて、歌声変換の効果を実現します。 同時に、ボコーダーを交換して、NSF HiFiGANのスタッカート問題を解決します

手記

  • 現在のブランチは32kHzバージョンのブランチであり、32kHzモデルの推論はより速く、メモリ占有が大幅に削減され、データセットが占有するハードディスク容量も大幅に削減されるため、このバージョンのモデルをトレーニングすることをお勧めします
  • 48kHzモデルをトレーニングする場合は、メインブランチに切り替えます

事前にダウンロードされたモデルファイル

  • ソフトVCヒューバート:hubert-soft-0d54a1f4.pt
    • ディレクトリの下に置く
      hubert
  • 事前トレーニング済みのベース モールド ファイル G_0.pth および D_0.pth
    • ディレクトリの下に置く
      logs/32k
    • ゼロからのトレーニングはテストに応じて非収束の確率があり、下部モデルもトレーニング速度を高速化できるため、ベースモデルの事前トレーニングが必要です
    • 事前トレーニング済みのベースモデルトレーニングデータセットには、ユンハオ、つまりフロスト、ホイユシン、AIパイモン、アヤディニンニンが含まれており、男の子と女の子の両方の共通の声域をカバーしており、比較的一般的なベースモデルと見なすことができます
    • ベースモールドは、推論ではなくトレーニングの初期化にのみ使用できる等独立の重みを削除します
      optimizer speaker_embedding
    • このベースモールドは48kHzボトムモールドに共通です
# 一键下载
# hubert
wget -P hubert/ https://github.com/bshall/hubert/releases/download/v0.1/hubert-soft-0d54a1f4.pt
# G与D预训练模型
wget -P logs/32k/ https://huggingface.co/innnky/sovits_pretrained/resolve/main/G_0.pth
wget -P logs/32k/ https://huggingface.co/innnky/sovits_pretrained/resolve/main/D_0.pth

Colab のワンクリックデータセット作成およびトレーニングスクリプト

ワンクリックコラボ

データセットの準備

データセットを次のファイル構造のdataset_rawディレクトリに配置するだけで済みます。

dataset_raw
├───speaker0
│   ├───xxx1-xxx1.wav
│   ├───...
│   └───Lxx-0xx8.wav
└───speaker1
    ├───xx2-0xxx2.wav
    ├───...
    └───xxx7-xxx007.wav

データの前処理

  1. 32kHzにリサンプリング
python resample.py
  1. トレーニングセット、検証セット、テストセットを自動的に分割し、構成ファイルを自動的に生成します
python preprocess_flist_config.py
# 注意
# 自动生成的配置文件中,说话人数量n_speakers会自动按照数据集中的人数而定
# 为了给之后添加说话人留下一定空间,n_speakers自动设置为 当前数据集人数乘2
# 如果想多留一些空位可以在此步骤后 自行修改生成的config.json中n_speakers数量
# 一旦模型开始训练后此项不可再更改
  1. ヒューバートと f0 の生成
python preprocess_hubert_f0.py

上記の手順を実行すると、データセットディレクトリが前処理されたデータになり、dataset_rawフォルダーを削除できます

訓練

python train.py -c configs/config.json -m 32k

イレーション

inference_main.pyを使用する

  • 自分でトレーニングした最新のモデル記録ポイントに変更する
    model_path
  • 変換するオーディオをフォルダの下に配置します
    raw
  • clean_names
    変換するオーディオの名前を書きます
  • trans
    発音区別符号クロマトの数を入力します
  • spk_list
    コンポジションのスピーカー名を入力します

オンエックスエクスポート

重要なことは、Onnxをエクスポートするときに、リポジトリ全体のクローンを再作成することです!!! Onnxをエクスポートする場合は、リポジトリ全体を再クローンします!!! Onnxをエクスポートする場合は、リポジトリ全体を再クローンします!!!

onnx_export.pyを使用する

  • 新しいフォルダ:そして開く
    checkpoints
  • フォルダ内に新しいフォルダをプロジェクトフォルダとして作成し、フォルダ名はプロジェクト名です。
    checkpoints
    aziplayer
  • モデルの名前を変更し、構成ファイルの名前を変更して、作成したフォルダーに配置します
    model.pth
    config.json
    aziplayer
  • in onnx_export.pyをプロジェクト名に変更します。
    path = "NyaruTaffy"
    "NyaruTaffy"
    path = "aziplayer"
  • 実行onnx_export.py
  • 実行が完了するのを待つと、エクスポートされたモデルであるプロジェクトフォルダーの下に1つが生成されます
    model.onnx
  • 注: 48K モデルをエクスポートするには、次の手順に従ってファイルを変更するか、直接使用します。
    model_onnx_48k.py
    • model_onnx.pyを開き、最後のクラスのHPS 32000を48000に変更してください
      SynthesizerTrn
      sampling_rate
    • nvSTFTを開き、これらの32000をすべて48000に変更してください

    Onnx モデルでサポートされている UI

  • これらのものを削除することによってのみ、Onnxを使用していることがわかると思うので、1行ではなく、すべてのトレーニング関数とすべての複雑な転置を削除しました。

グラディオ(ウェブUI)

sovits_gradio.pyを使用する

  • 新しいフォルダ:チェックポイントと開く
  • チェックポイントフォルダに新しいフォルダをプロジェクトフォルダとして作成し、フォルダ名はプロジェクト名です
  • モデル model.pth と構成ファイルの名前を config.json に変更し、作成したフォルダーに配置します。
  • 実行sovits_gradio.py