รหัสสำหรับรายงาน ACL 2024 "เราสามารถบรรลุการแปลคำพูดเป็นคำพูดโดยตรงคุณภาพสูงโดยไม่มีข้อมูลคำพูดแบบขนานได้หรือไม่"
ฟังคำพูดที่แปลของ ComSpeech
ComSpeech เป็นสถาปัตยกรรมโมเดล S2ST แบบรวมทั่วไป ซึ่งสามารถ ผสานรวมโมเดล S2TT และ TTS ที่ได้รับการฝึกล่วงหน้าเข้ากับโมเดล S2ST โดยตรงได้อย่างราบรื่น
ComSpeech เหนือกว่ารุ่นสองผ่านก่อนหน้านี้ เช่น UnitY และ Translatotron 2 ทั้งในด้านคุณภาพการแปลและความเร็วในการถอดรหัส
ด้วยกลยุทธ์การฝึกอบรม ComSpeech-ZS ที่เรานำเสนอ เรา บรรลุประสิทธิภาพที่เทียบได้กับการฝึกอบรมภายใต้การดูแลโดยไม่ต้องใช้ข้อมูลคำพูดแบบขนานใดๆ
เรายังมีโครงการอื่นๆ เกี่ยวกับ การแปลคำพูดเป็นคำพูด ที่คุณอาจสนใจ:
StreamSpeech (ACL 2024) : โมเดลไร้รอยต่อ "All in One" สำหรับการรู้จำคำพูด การแปลคำพูด และการสังเคราะห์คำพูดแบบออฟไลน์และพร้อมกัน
NAST-S2x (ACL 2024) : โมเดลการแปลคำพูดเป็นข้อความ/คำพูดพร้อมกันที่รวดเร็วและจากต้นทางถึงปลายทาง
DASpeech (NeurIPS 2023) : โมเดลการแปลคำพูดเป็นคำพูดโดยตรงแบบสองรอบแบบไม่ถอยอัตโนมัติ พร้อมการแปลคุณภาพสูงและความเร็วในการถอดรหัสที่รวดเร็ว
CTC-S2UT (ผลการวิจัยของ ACL 2024) : โมเดลการแปลคำพูดเป็นคำพูดแบบไม่ต้องใช้ข้อความแบบไม่ถอยอัตโนมัติ พร้อมความเร็วในการถอดรหัสสูงสุด 26.81×
หลาม==3.8, คบเพลิง==2.1.2
ติดตั้งแฟร์เซค:
ซีดีแฟร์เซค pip ติดตั้ง -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 สำหรับคำพูดของแหล่งที่มา
สำหรับ src_lang ใน fr de es; dopython ComSpeech/data_preparation/extract_src_features.py --cvss-data-ข้อมูลราก/cvss-c/ --covost-data-root ข้อมูล / covost2 / --output-root data/cvss-c/${src_lang}-en/src --src-lang $src_langdone
แยกข้อมูลเมลสเปกโตรแกรม ระยะเวลา ระดับเสียง และพลังงานสำหรับคำพูดเป้าหมาย
สำหรับ src_lang ใน ar ca cy de es et fa fr id มัน 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 ข้อมูล/cvss-c/${src_lang}-en/mfa_align/ หลาม 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/
หลาม ComSpeech/data_preparation/fill_data.py
บันทึก
สคริปต์ต่อไปนี้ใช้ GPU RTX 3090 4 ตัวเป็นค่าเริ่มต้น คุณสามารถปรับ --update-freq
, --max-tokens-st
, --max-tokens
และ --batch-size-tts
ขึ้นอยู่กับ GPU ที่คุณมีอยู่
ในสถานการณ์ การเรียนรู้แบบมีผู้สอน ขั้นแรกเราใช้ข้อมูล S2TT และข้อมูล TTS เพื่อฝึกโมเดล S2TT และ TTS ล่วงหน้าตามลำดับ จากนั้นปรับแต่งโมเดลทั้งหมดโดยใช้ข้อมูล S2ST สคริปต์ต่อไปนี้เป็นตัวอย่างบนชุดข้อมูล CVSS Fr-En สำหรับคำแนะนำ De-En และ Es-En คุณจะต้องเปลี่ยนภาษาต้นฉบับในสคริปต์เท่านั้น
ฝึกโมเดล S2TT ล่วงหน้า และจุดตรวจสอบที่ดีที่สุดจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
ทุบตี ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
ฝึกโมเดล TTS ล่วงหน้า และจุดตรวจสอบที่ดีที่สุดจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/tts.fastspeech2.cvss-fr-en/checkpoint_best.pt
ทุบตี ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-fr-en.sh
ปรับแต่งโมเดลทั้งหมดโดยใช้ข้อมูล S2ST และจุดตรวจสอบจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/s2st.fr-en.comspeech
ทุบตี ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech.sh
เฉลี่ยจุดตรวจที่ดีที่สุด 5 จุด และทดสอบผลลัพธ์ในชุด test
ทุบตี ComSpeech/test_scripts/generate.fr-en.comspeech.sh
บันทึก
หากต้องการเรียกใช้การอนุมาน คุณต้องดาวน์โหลดโวโคเดอร์ HiFi-GAN ที่ได้รับการฝึกล่วงหน้าจากลิงก์นี้ และวางลงในไดเร็กทอรี hifi-gan/
ในสถานการณ์ การเรียนรู้แบบ Zero-shot ขั้นแรกเราจะฝึกโมเดล S2TT ล่วงหน้าโดยใช้ข้อมูล CVSS Fr/De/Es-En S2TT และฝึกโมเดล TTS ล่วงหน้าโดยใช้ข้อมูล CVSS X-En TTS (X∉{Fr,De,Es}) จากนั้น เราจะปรับแต่งโมเดลทั้งหมดเป็นสองขั้นตอนโดยใช้ข้อมูลสองส่วนนี้
ฝึกโมเดล S2TT ล่วงหน้า และจุดตรวจสอบที่ดีที่สุดจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/st.cvss.fr-en/checkpoint_best.pt
ทุบตี ComSpeech/train_scripts/st/train.st.cvss.fr-en.sh
ฝึกโมเดล TTS ล่วงหน้า และจุดตรวจสอบที่ดีที่สุดจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/tts.fastspeech2.cvss-x-en/checkpoint_best.pt
(หมายเหตุ: จุดตรวจสอบนี้ใช้สำหรับการทดลองกับคู่ภาษาทั้งหมดในสถานการณ์การเรียนรู้แบบ Zero-Shot ).
ทุบตี ComSpeech/train_scripts/tts/train.tts.fastspeech2.cvss-x-en.sh
ปรับแต่งโมเดล S2TT และอะแดปเตอร์คำศัพท์โดยใช้ข้อมูล S2TT (ระยะที่ 1) และจุดตรวจสอบที่ดีที่สุดจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/st.cvss.fr-en.ctc/checkpoint_best.pt
ทุบตี ComSpeech/train_scripts/st/train.st.cvss.fr-en.ctc.sh
ปรับแต่งโมเดลทั้งหมดโดยใช้ทั้งข้อมูล S2TT และ TTS (ระยะที่ 2) และจุดตรวจสอบจะถูกบันทึกไว้ที่ ComSpeech/checkpoints/s2st.fr-en.comspeech-zs
ทุบตี ComSpeech/train_scripts/s2st/train.s2st.fr-en.comspeech-zs.sh
เฉลี่ยจุดตรวจที่ดีที่สุด 5 จุด และทดสอบผลลัพธ์ในชุด test
ทุบตี ComSpeech/test_scripts/generate.fr-en.comspeech-zs.sh
เราได้ออกจุดตรวจสำหรับแต่ละขั้นตอนข้างต้นแล้ว คุณสามารถดาวน์โหลดได้จาก ?HuggingFace
ทิศทาง | S2TT พรีเทรน | TTS พรีเทรน | คอมสปีช |
---|---|---|---|
F-En | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
เดอ-เอ็น | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
เอส-เอ็น | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
ทิศทาง | S2TT พรีเทรน | TTS พรีเทรน | ปรับละเอียด 1 ขั้น | การปรับแต่งแบบ 2 ขั้นตอน |
---|---|---|---|---|
F-En | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
เดอ-เอ็น | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
เอส-เอ็น | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] | [ดาวน์โหลด] |
หากคุณมีคำถามใด ๆ โปรดส่งปัญหาหรือติดต่อ [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}, }