Black technology based on the three giants of artificial intelligence:
OpenAI's whisper, 680,000 hours in multiple languages
Nvidia's bigvgan, anti-aliasing for speech generation
Microsoft's adapter, high-efficiency for fine-tuning
Loraはこのプロジェクトでは完全に実装されていませんが、ここで見つけることができます:Lora TTS&Paper
プレインモデルを使用して微調整します
必要な前処理:
次に、次のファイル構造に従ってデータセットをdata_rawディレクトリに入れます
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1ソフトウェア依存関係
PIPインストール-R要件。txt
2 Timbreエンコーダーをダウンロード: @Mueller91のスピーカーエンコーダー、 best_model.pth.tarをspeaker_pretrain/
3ささやきモデルのダウンロード複数の言語メディアモデル、必ずmedium.ptをダウンロードしてくださいwhisper_pretrain/
ヒント:ささやきが組み込まれている、さらにインストールしないでください、競合してエラーを報告します
4プレインモデルmaxgan_pretrain_32k.pthをダウンロードし、テストを行います
python svc_inference.py - config configs/maxgan.yaml - model maxgan_pretrain_32k.pth - spk ./configs/singers/singer0001.npy -wave test.wav
これを自動化する場合は、このコマンドを使用します。
python3 prepare/easyprocess.py
または、次のように段階的に:
1、再サンプリング
16000Hzのサンプリングレートでオーディオを生成します
python prepare/preprocess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
32000Hzのサンプリングレートでオーディオを生成します
python prepare/preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2、16Kオーディオを使用してピッチを抽出します
python prepare/preprocess_f0.py -w data_svc/waves -16k/-p data_svc/pitch
3、16Kオーディオを使用してPPGを抽出します
python prepare/preprocess_ppg.py -w data_svc/waves -16k/-p data_svc/whisper
4、16Kオーディオを使用して音色コードを抽出します
python prepare/preprocess_speaker.py data_svc/waves-16k/data_svc/speaker
5、推論のために歌手コードを抽出します
python prepare/preprocess_speaker_ave.py data_svc/speaker/data_svc/singer
6、32Kオーディオを使用してトレーニングインデックスを生成します
python prepare/preprocess_train.py
7、トレーニングファイルのデバッグ
python prepare/preprocess_zzz.py -c configs/maxgan.yaml
data_svc/
└── waves-16k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── waves-32k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── pitch
│ └── speaker0
│ │ ├── 000001.pit.npy
│ │ └── 000xxx.pit.npy
│ └── speaker1
│ ├── 000001.pit.npy
│ └── 000xxx.pit.npy
└── whisper
│ └── speaker0
│ │ ├── 000001.ppg.npy
│ │ └── 000xxx.ppg.npy
│ └── speaker1
│ ├── 000001.ppg.npy
│ └── 000xxx.ppg.npy
└── speaker
│ └── speaker0
│ │ ├── 000001.spk.npy
│ │ └── 000xxx.spk.npy
│ └── speaker1
│ ├── 000001.spk.npy
│ └── 000xxx.spk.npy
└── singer
├── speaker0.spk.npy
└── speaker1.spk.npy0、事前に訓練されたモデルに基づいて微調整する場合、事前に訓練されたモデルをダウンロードする必要があります:maxgan_pretrain_32k.pth
プレタレインを設定: "./maxgan_pretrain_32k.pth" in Configs/maxgan.yaml、そして学習率を適切に調整します。たとえば1e-5
1、トレーニングを開始します
python svc_trainer.py -c configs/maxgan.yaml -n svc
2、履歴書トレーニング
python svc_trainer.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***。pth
3、ログを表示します
テンソルボード - ログディルログ/

以下のすべてのコマンドを実行するGUIが必要な場合は、このコマンドを使用します。
python3 svc_gui.py
または、次のように段階的に:
1、エクスポート推論モデル
python svc_export.py -config configs/maxgan.yaml -checkpoint_path chkpt/svc/***。pt
2、GPUメモリの使用量を減らすために、ワンクリックの推論を使用せずに、ワンクリックの推論を使用せずに、ささやきを使用してエンコードを抽出します
python whisper/inference.py -w test.wav -p test.ppg.npy
3、F0パラメーターをCSVテキスト形式に抽出します
python pitch/inference.py -w test.wav -p test.csv
4、パラメーターを指定し、推測します
python svc_inference.py - config configs/maxgan.yaml - model maxgan_g.pth -spk ./data_svc/singers/your_singer.npy -wave test.wav -ppg test.ppg.npy - pit test.csv
-ppgが指定されている場合、同じオーディオが複数回推論される場合、オーディオコンテンツコードの繰り返し抽出を避けることができます。指定されていない場合、自動的に抽出されます。
-pitが指定されると、手動で調整されたF0パラメーターをロードできます。指定されていない場合、自動的に抽出されます。
現在のディレクトリでファイルを生成:svc_out.wav
| args | -config | - モデル | - spk | - 波 | -ppg | - ピット | - シフト |
|---|---|---|---|---|---|---|---|
| 名前 | 構成パス | モデルパス | スピーカー | ウェーブ入力 | Wave PPG | ウェーブピッチ | ピッチシフト |
5、Vadによる投稿
python svc_inference_post.py - ref test.wav - svc svc_out.wav - out svc_post.wav
新しいスピーカー用のマルチスピーカーテキストからスピーチモデルのアダプターベースの拡張
Adaspeech:カスタム音声のスピーチへの適応テキスト
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/mindslab-ai/univnet [Paper]
https://github.com/openai/whisper/ [Paper]
https://github.com/nvidia/bigvgan [Paper]