TSELM の正式な実装: 離散トークンと言語モデルを使用したターゲット話者の抽出。
モデルクラスを参照するには、exp/tselm/model.py を直接確認してください。トレーニングのために、混合オーディオは長さ 48080 (3.05sx 16khz) にクリップされ、参照音声は長さ 64080 (4.05sx 16khz) にそれぞれクリップされることに注意してください。
私たちは、離散トークンと言語モデルを活用する新しいターゲット話者抽出ネットワークである TSELM を提案します。 TSELM は、WavLM からの複数の離散化レイヤーを入力トークンとして利用し、ターゲット話者情報を統合するクロスアテンション メカニズムを組み込みます。言語モデルを使用してシーケンスの依存関係をキャプチャし、スケーラブルな HiFi-GAN を使用してトークンからオーディオを再構築します。クロスエントロピー損失を適用することにより、TSELM は出力トークンの確率分布をモデル化し、オーディオ生成の複雑な回帰問題を分類タスクに変換します。実験結果は、TSELM が音声品質において優れた結果を達成し、音声明瞭度においても同等の結果を達成することを示しています。
requirements.txt
からインストールします。実験を実行する前に、次の凍結済みの事前トレーニング済みモデルをダウンロードする必要があります。
名前 | リンク | 結果 |
---|---|---|
WavLM 大 | https://huggingface.co/microsoft/wavlm-large/tree/main | wavlm-大 |
クメアン人 | Kmeans チェックポイントをダウンロード | kmeans_ckpt |
スケーラブルな HiFiGAN | HiFiGAN チェックポイントをダウンロード | hifigan-wavlm-l1-3-7-18-23-k1000-LibriTTS |
WavLM Large の出力については、リポジトリ全体を複製するか、ディレクトリ全体をダウンロードすることをお勧めします。 Kmeans と Scalable HiFiGAN の場合は、ダウンロード後に抽出する必要があります。
トレーニング構成は、基本的にリフレクションであるhyperpyyaml
パッケージを使用して指定されます。
TSELM-L
トレーニングするための構成は、config/tselm_l.yaml にあります。トレーニングの前に、フリーズされた事前トレーニング モデルの構成とその他のトレーニングの詳細を指定する必要があります。詳細については、config/tselm_l.yaml および config/README.md を参照してください。
構成後、実行できます
# # Train the model using the config
python train.py --config_path ./config/tselm_l.yaml --log ./log --ckpt_path ./ckpt/tselm_l
--config_path
構成ファイルへのパスを指定します。--log
ログ出力ディレクトリを指定します。すべてのログがここに置かれます。--ckpt_path
チェックポイント ディレクトリを指定します。同じチェックポイント パスを使用してトレーニングを再開できます。トレーニング後、最適なモデルは
にあります。
たとえば、libri2mix テストセットでモデルを推論するには、次のコマンドを実行できます。
# # Generate output audio on libri2mix testset
python inference.py -scp < path_to_libri2mix_test_scp_folder >
-config ./config/tselm_l.yaml
-ckpt < path_to_ckpt >
--output < path_to_output_folder >
-gpus cuda:0 cuda:1 cuda:2 cuda:3
-proc 8
-scp
aux_s1.scp
、 s1.scp
、およびmix_clean.scp
を含む libri2mix テストセット フォルダーへのパスを指定します。-config
構成を指定します。この設定にはmodel
フィールドが必要です。-ckpt
モデルのチェックポイントを指定します。--output
出力ディレクトリを指定します。出力音声はこのフォルダーに出力されます。それらの名前は、.scp ファイル内の名前と同じになります。-gpus
推論を実行するために使用可能な GPU を指定します。-proc
推論を並行して実行するプロセスの総数を指定します。提供された GPU を使用し、各デバイスでプロセスを均等に分割します。データは各プロセスに均等に分割されます。 TSELM-L チェックポイントはここからダウンロードできます。
-ckpt
チェックポイントへのパスに置き換えることで、libri2mix テストセットを推論できます。
事前トレーニング済みモデルをダウンロードし、対応するチェックポイント フォルダーを config/tselm_l.yaml に追加する必要があることに注意してください。