Код для документа 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
Установите fairseq:
компакт-диск 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 во французском языке; dopython ComSpeech/data_preparation/extract_src_features.py --cvss-data-корневые данные/cvss-c/ --covost-data-root data/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 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/done
Замените путь к файлам в каталоге data/comspeech/
.
Python 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. Для направлений Де-Эн и Эс-Эн необходимо лишь изменить исходный язык в скриптах.
Предварительно обучите модель 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/
.
В сценарии нулевого обучения мы сначала предварительно обучаем модель 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
.
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 | ComSpeech |
---|---|---|---|
Пт-Ан | [скачать] | [скачать] | [скачать] |
Де-Эн | [скачать] | [скачать] | [скачать] |
Эс-Эн | [скачать] | [скачать] | [скачать] |
Направления | Предварительная подготовка 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}, }