ACL 2024 論文「並列音声データなしで高品質の直接音声変換を実現できますか?」のコード。
ComSpeech の翻訳された音声を聞く
ComSpeech は一般的な複合 S2ST モデル アーキテクチャであり、事前トレーニングされた S2TT および TTS モデルを直接 S2ST モデルにシームレスに統合できます。
ComSpeech は、翻訳品質とデコード速度の両方において、 UnitY や Translatotron 2 などの以前の 2 パス モデルを上回っています。
私たちが提案するトレーニング戦略ComSpeech-ZS を使用すると、並列音声データを使用せずに教師ありトレーニングに匹敵するパフォーマンスを達成できます。
他にも音声翻訳に関するプロジェクトがいくつかありますので、興味があるかもしれません:
StreamSpeech (ACL 2024) : オフラインおよび同時の音声認識、音声翻訳、および音声合成のための「オールインワン」シームレス モデル。
NAST-S2x (ACL 2024) : 高速かつエンドツーエンドの同時音声テキスト/音声翻訳モデル。
DASpeech (NeurIPS 2023) : 高品質の翻訳と高速なデコード速度を備えた、非自己回帰 2 パス直接音声対音声翻訳モデル。
CTC-S2UT (ACL 2024 調査結果) : 最大 26.81 倍のデコード速度向上を実現する、非自己回帰のテキストレス音声認識翻訳モデル。
Python==3.8、トーチ==2.1.2
Faireq をインストールします。
CD フェアセク pip install -e 。
CoVoST 2 Fr/De/Es-En および CVSS-C X-En (合計 21 言語) データセットをダウンロードし、 data/
ディレクトリに配置します。
リリースされたデータ マニフェストを ?Huggingface からダウンロードし、 data/
ディレクトリに配置します。ディレクトリは次のようになります。
data ├── comspeech │ ├── cvss_de_en │ ├── cvss_es_en │ ├── cvss_fr_en │ └── cvss_x_en ├── covost2 │ └── fr │ ├── clips │ ├── dev.tsv │ ├── invalidated.tsv │ ├── other.tsv │ ├── test.tsv │ ├── train.tsv │ └── validated.tsv └── cvss-c └── fr-en └── mfa.tar.gz
ソース音声の fbank 特徴を抽出します。
fr de es の src_lang の場合; dopython ComSpeech/data_preparation/extract_src_features.py --cvss-data-root データ/cvss-c/ --covost-data-root データ/covost2/ --output-root data/cvss-c/${src_lang}-en/src --src-lang $src_langdone
ターゲット音声のメルスペクトログラム、継続時間、ピッチ、およびエネルギー情報を抽出します。
ar ca cy de es et fa fr id it ja lv mn nl pt ru sl sv-SE ta tr zh-CN の src_lang の場合。 domkdir -p data/cvss-c/${src_lang}-en/mfa_align tar -xzvf データ/cvss-c/${src_lang}-en/mfa.tar.gz -C データ/cvss-c/${src_lang}-en/mfa_align/ python ComSpeech/data_preparation/extract_tgt_features.py --audio-manifest-root data/cvss-c/${src_lang}-en/ --output-root data/cvss-c/${src_lang}-en/tts --textgrid-dir data/cvss-c/${src_lang}-en/mfa_align/speaker/done
data/comspeech/
ディレクトリ内のファイルのパスを置き換えます。
python ComSpeech/data_preparation/fill_data.py
注記
次のスクリプトは、デフォルトで 4 つの RTX 3090 GPU を使用します。使用可能な GPU に応じて、 --update-freq
、 --max-tokens-st
、 --max-tokens
、および--batch-size-tts
を調整できます。
教師あり学習シナリオでは、まず S2TT データと TTS データを使用して S2TT モデルと TTS モデルをそれぞれ事前トレーニングし、次に S2ST データを使用してモデル全体を微調整します。次のスクリプトは、CVSS Fr-En データセットの例です。 De-En および Es-En 方向の場合は、スクリプト内のソース言語を変更するだけで済みます。
S2TT モデルを事前トレーニングすると、最適なチェックポイントがComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
に保存されます。
bash ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
TTS モデルを事前トレーニングすると、最適なチェックポイントがComSpeech/checkpoints/tts.fastspeech2.cvss-fr-en/checkpoint_best.pt
に保存されます。
bash ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-fr-en.sh
S2ST データを使用してモデル全体を微調整すると、チェックポイントがComSpeech/checkpoints/s2st.fr-en.comspeech
に保存されます。
bash ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech.sh
5 つの最良のチェックポイントを平均し、 test
セットで結果をテストします。
bash ComSpeech/test_scripts/generate.fr-en.comspeech.sh
注記
推論を実行するには、このリンクから事前トレーニングされた HiFi-GAN ボコーダーをダウンロードし、 hifi-gan/
ディレクトリに配置する必要があります。
ゼロショット学習シナリオでは、まず CVSS Fr/De/Es-En S2TT データを使用して S2TT モデルを事前トレーニングし、次に CVSS X-En TTS (X∉{Fr,De,Es}) データを使用して TTS モデルを事前トレーニングします。次に、データのこれら 2 つの部分を使用して 2 段階でモデル全体を微調整します。
S2TT モデルを事前トレーニングすると、最適なチェックポイントがComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
に保存されます。
bash ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
TTS モデルを事前トレーニングすると、最適なチェックポイントがComSpeech/checkpoints/tts.fastspeech2.cvss-x-en/checkpoint_best.pt
に保存されます (注: このチェックポイントは、ゼロショット学習シナリオのすべての言語ペアの実験に使用されます) )。
bash ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-x-en.sh
S2TT データを使用して S2TT モデルと語彙アダプターを微調整すると (ステージ 1)、最適なチェックポイントがComSpeech/checkpoints/st.cvss.fr-en.ctc/checkpoint_best.pt
に保存されます。
bash ComSpeech/train_scripts/st/train.st.cvss.fr-en.ctc.sh
S2TT と TTS データの両方を使用してモデル全体を微調整します (ステージ 2)。チェックポイントはComSpeech/checkpoints/s2st.fr-en.comspeech-zs
に保存されます。
bash ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech-zs.sh
5 つの最良のチェックポイントを平均し、 test
セットで結果をテストします。
bash ComSpeech/test_scripts/generate.fr-en.comspeech-zs.sh
上記の各ステップのチェックポイントを公開しました。 ?HuggingFace からダウンロードできます。
方向 | S2TT 事前トレーニング | TTS 事前トレーニング | コムスピーチ |
---|---|---|---|
フランス英語 | [ダウンロード] | [ダウンロード] | [ダウンロード] |
デ・エン | [ダウンロード] | [ダウンロード] | [ダウンロード] |
エスエン | [ダウンロード] | [ダウンロード] | [ダウンロード] |
方向 | S2TT 事前トレーニング | TTS 事前トレーニング | 1段階ファインチューン | 2段階のファインチューン |
---|---|---|---|---|
フランス英語 | [ダウンロード] | [ダウンロード] | [ダウンロード] | [ダウンロード] |
デ・エン | [ダウンロード] | [ダウンロード] | [ダウンロード] | [ダウンロード] |
エスエン | [ダウンロード] | [ダウンロード] | [ダウンロード] | [ダウンロード] |
ご質問がございましたら、お気軽に問題を送信するか、 [email protected]
までご連絡ください。
私たちの仕事があなたにとって役立つ場合は、次のように引用してください。
@inproceedings{fang-etal-2024-can, title = {Can We Achieve High-quality Direct Speech-to-Speech Translation without Parallel Speech Data?}, author = {Fang, Qingkai and Zhang, Shaolei and Ma, Zhengrui and Zhang, Min and Feng, Yang}, booktitle = {Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics}, year = {2024}, }