رمز لورقة ACL 2024 "هل يمكننا تحقيق ترجمة مباشرة عالية الجودة لتحويل الكلام إلى كلام دون بيانات الكلام المتوازية؟".
استمع إلى خطاب 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×.
بيثون==3.8، الشعلة==2.1.2
تثبيت فيرسق:
cd fairseq تثبيت النقطة -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-بيانات-جذر البيانات/cvss-c/ --covost-بيانات-جذر البيانات/covost2/ --output-root data/cvss-c/${src_lang}-en/src --src-lang $src_langdone
قم باستخراج معلومات الطيف الطيفي والمدة ودرجة الصوت والطاقة للخطاب المستهدف.
for src_lang in 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 القطران -xzvf data/cvss-c/${src_lang}-en/mfa.tar.gz -C data/cvss-c/${src_lang}-en/mfa_align/ بايثون ComSpeech/data_preparation/extract_tgt_features.py --بيانات الصوت-البيان الجذر/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
ملحوظة
تستخدم البرامج النصية التالية 4 وحدات معالجة رسوميات RTX 3090 بشكل افتراضي. يمكنك ضبط --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
.
باش 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/
.
في سيناريو التعلم الصفري ، نقوم أولاً بالتدريب المسبق لنموذج 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
(ملاحظة: يتم استخدام نقطة التحقق هذه للتجارب على جميع أزواج اللغات في سيناريو التعلم الصفري ).
باش 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 المسبق | comSpeech |
---|---|---|---|
الأب-إن | [تحميل] | [تحميل] | [تحميل] |
دي إن | [تحميل] | [تحميل] | [تحميل] |
Es-En | [تحميل] | [تحميل] | [تحميل] |
الاتجاهات | التدريب المسبق S2TT | قطار TTS المسبق | 1-مرحلة فينيتون | 2-مرحلة فينيتون |
---|---|---|---|---|
الأب-إن | [تحميل] | [تحميل] | [تحميل] | [تحميل] |
دي إن | [تحميل] | [تحميل] | [تحميل] | [تحميل] |
Es-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}, }