ACL 2024 論文「Can We Achieve High-quality Direct Speech-to-Speech Translation without Parallel Speech Data?」的代號。
聆聽 ComSpeech 的演講翻譯
ComSpeech 是一種通用的複合 S2ST 模型架構,可將任何預先訓練的 S2TT 和 TTS 模型無縫整合到直接的 S2ST 模型中。
ComSpeech在翻譯品質和解碼速度上都超越了先前的兩遍模型,如 UnitY 和 Translatotron 2。
透過我們提出的訓練策略ComSpeech-ZS ,我們在不使用任何平行語音資料的情況下實現了與監督訓練相當的效能。
我們還有一些您可能感興趣的其他語音轉語音翻譯專案:
StreamSpeech (ACL 2024) :一種用於離線和同步語音辨識、語音翻譯和語音合成的「一體化」無縫模型。
NAST-S2x (ACL 2024) :快速的端對端同步語音到文字/語音翻譯模型。
DASpeech (NeurIPS 2023) :非自回歸兩遍直接語音到語音翻譯模型,具有高品質翻譯和快速解碼速度。
CTC-S2UT(ACL 2024 年調查結果) :一種非自回歸無文字語音到語音翻譯模型,解碼速度高達 26.81 倍。
python==3.8,火炬==2.1.2
安裝 fairseq:
光碟公平序列 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-根資料/cvss-c/ --covost-資料-根資料/covost2/ --output-root data/cvss-c/${src_lang}-en/src --src-lang $src_langdone
提取目標語音的梅爾頻譜圖、持續時間、音調和能量資訊。
對於 ar ca cy de es et fa frid 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 資料集上的範例。對於德英和英英方向,您只需更改腳本中的來源語言即可。
預訓練 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模型。然後,我們使用這兩部分資料分兩個階段對整個模型進行微調。
預訓練 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}, }