Kode untuk makalah ACL 2024 "Bisakah Kita Mencapai Terjemahan Ucapan-ke-Ucapan Langsung Berkualitas Tinggi tanpa Data Ucapan Paralel?".
Dengarkan pidato terjemahan ComSpeech
ComSpeech adalah arsitektur model S2ST komposit umum, yang dapat dengan mulus mengintegrasikan model S2TT dan TTS yang telah dilatih sebelumnya ke dalam model S2ST langsung .
ComSpeech melampaui model dua jalur sebelumnya seperti UnitY dan Translatotron 2 dalam kualitas terjemahan dan kecepatan decoding .
Dengan strategi pelatihan ComSpeech-ZS yang kami usulkan, kami mencapai kinerja yang sebanding dengan pelatihan yang diawasi tanpa menggunakan data ucapan paralel apa pun .
Kami juga memiliki beberapa proyek terjemahan ucapan-ke-ucapan lain yang mungkin Anda minati:
StreamSpeech (ACL 2024) : Model mulus "All in One" untuk pengenalan ucapan offline dan simultan, terjemahan ucapan, dan sintesis ucapan.
NAST-S2x (ACL 2024) : Model terjemahan ucapan-ke-teks/ucapan yang cepat dan simultan dari ujung ke ujung.
DASpeech (NeurIPS 2023) : Model terjemahan ucapan-ke-ucapan langsung dua jalur non-autoregresif dengan terjemahan berkualitas tinggi dan kecepatan decoding yang cepat.
CTC-S2UT (Temuan ACL 2024) : Model terjemahan ucapan-ke-ucapan non-autoregresif tanpa teks dengan kecepatan decoding hingga 26,81×.
python==3.8, obor==2.1.2
Instal fairseq:
cd fairseq instalasi pip -e .
Unduh kumpulan data CoVoST 2 Fr/De/Es-En dan CVSS-C X-En (total 21 bahasa) dan letakkan di direktori data/
.
Unduh manifes data kami yang dirilis dari ?Huggingface, dan letakkan juga di direktori data/
. Direktorinya harus seperti berikut:
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
Ekstrak fitur fbank untuk sumber pidato.
untuk src_lang di fr de es; dopython ComSpeech/data_preparation/extract_src_features.py --cvss-data-root data/cvss-c/ --covost-data-root data/covost2/ --output-root data/cvss-c/${src_lang}-en/src --src-lang $src_langselesai
Ekstrak informasi mel-spektogram, durasi, nada, dan energi untuk pidato target.
untuk src_lang di ar ca cy de es et fa fr id it ja lv mn nl pt ru sl sv-SE ta tr zh-CN; domkdir -p data/cvss-c/${src_lang}-en/mfa_align tar -xzvf data/cvss-c/${src_lang}-en/mfa.tar.gz -C data/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/selesai
Ganti jalur dalam file di direktori data/comspeech/
.
python ComSpeech/data_preparation/fill_data.py
Catatan
Skrip berikut menggunakan 4 GPU RTX 3090 secara default. Anda dapat menyesuaikan --update-freq
, --max-tokens-st
, --max-tokens
, dan --batch-size-tts
bergantung pada GPU yang tersedia.
Dalam skenario pembelajaran terawasi , pertama-tama kami menggunakan data S2TT dan data TTS untuk melakukan pra-latihan masing-masing model S2TT dan TTS, lalu menyempurnakan seluruh model menggunakan data S2ST. Script berikut adalah contoh pada dataset CVSS Fr-En. Untuk arah De-En dan Es-En, Anda hanya perlu mengubah bahasa sumber pada skrip.
Latih terlebih dahulu model S2TT, dan pos pemeriksaan terbaik akan disimpan di ComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
.
pesta ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
Latih terlebih dahulu model TTS, dan pos pemeriksaan terbaik akan disimpan di ComSpeech/checkpoints/tts.fastspeech2.cvss-fr-en/checkpoint_best.pt
.
bash ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-fr-en.sh
Sempurnakan seluruh model menggunakan data S2ST, dan titik pemeriksaan akan disimpan di ComSpeech/checkpoints/s2st.fr-en.comspeech
.
bash ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech.sh
Rata-ratakan 5 pos pemeriksaan terbaik dan uji hasilnya pada set test
.
pesta ComSpeech/test_scripts/generate.fr-en.comspeech.sh
Catatan
Untuk menjalankan inferensi, Anda perlu mengunduh vocoder HiFi-GAN yang telah dilatih sebelumnya dari tautan ini dan menempatkannya di direktori hifi-gan/
.
Dalam skenario pembelajaran zero-shot , pertama-tama kita melakukan pra-latihan model S2TT menggunakan data CVSS Fr/De/Es-En S2TT, dan melakukan pra-latihan model TTS menggunakan data CVSS X-En TTS (X∉{Fr,De,Es}). Kemudian, kami menyempurnakan seluruh model dalam dua tahap menggunakan dua bagian data tersebut.
Latih terlebih dahulu model S2TT, dan pos pemeriksaan terbaik akan disimpan di ComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
.
pesta ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
Latih terlebih dahulu model TTS, dan pos pemeriksaan terbaik akan disimpan di ComSpeech/checkpoints/tts.fastspeech2.cvss-x-en/checkpoint_best.pt
(catatan: pos pemeriksaan ini digunakan untuk eksperimen pada semua pasangan bahasa dalam skenario pembelajaran zero-shot ).
bash ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-x-en.sh
Sempurnakan model S2TT dan adaptor kosakata menggunakan data S2TT (tahap 1), dan pos pemeriksaan terbaik akan disimpan di ComSpeech/checkpoints/st.cvss.fr-en.ctc/checkpoint_best.pt
.
bash ComSpeech/train_scripts/st/train.st.cvss.fr-en.ctc.sh
Sempurnakan seluruh model menggunakan data S2TT dan TTS (tahap 2), dan pos pemeriksaan akan disimpan di ComSpeech/checkpoints/s2st.fr-en.comspeech-zs
.
bash ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech-zs.sh
Rata-ratakan 5 pos pemeriksaan terbaik dan uji hasilnya pada set test
.
pesta ComSpeech/test_scripts/generate.fr-en.comspeech-zs.sh
Kami telah melepaskan pos pemeriksaan untuk setiap langkah di atas. Anda dapat mengunduhnya dari ?HuggingFace.
Petunjuk arah | Pralatihan S2TT | Pralatihan TTS | Pidato Com |
---|---|---|---|
Fr-En | [unduh] | [unduh] | [unduh] |
De-En | [unduh] | [unduh] | [unduh] |
Es-En | [unduh] | [unduh] | [unduh] |
Petunjuk arah | Pralatihan S2TT | Pralatihan TTS | Penyempurnaan 1 tahap | Penyempurnaan 2 tahap |
---|---|---|---|---|
Fr-En | [unduh] | [unduh] | [unduh] | [unduh] |
De-En | [unduh] | [unduh] | [unduh] | [unduh] |
Es-En | [unduh] | [unduh] | [unduh] | [unduh] |
Jika Anda memiliki pertanyaan, silakan kirimkan masalah atau hubungi [email protected]
.
Jika karya kami bermanfaat bagi Anda, silakan kutip sebagai:
@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}, }