ACL 2024 논문 "병렬 음성 데이터 없이 고품질의 직접 음성 대 음성 번역을 달성할 수 있습니까?"의 코드입니다.
ComSpeech의 번역된 연설 듣기
ComSpeech는 사전 학습된 S2TT 및 TTS 모델을 직접 S2ST 모델에 원활하게 통합 할 수 있는 일반 복합 S2ST 모델 아키텍처입니다.
ComSpeech는 번역 품질과 디코딩 속도 모두에서 UnitY 및 Translatotron 2와 같은 이전 2단계 모델을 능가합니다.
제안된 훈련 전략인 ComSpeech-ZS를 사용하면 병렬 음성 데이터를 사용하지 않고도 지도 훈련과 비슷한 성능을 얻을 수 있습니다 .
또한 귀하가 관심을 가질 만한 음성-음성 번역 에 관한 다른 프로젝트도 있습니다.
StreamSpeech(ACL 2024) : 오프라인 및 동시 음성 인식, 음성 번역 및 음성 합성을 위한 "올인원" 원활한 모델입니다.
NAST-S2x(ACL 2024) : 빠르고 종단 간 동시 음성-텍스트/음성 번역 모델입니다.
DASpeech(NeurIPS 2023) : 고품질 번역과 빠른 디코딩 속도를 갖춘 비자동회귀 2패스 직접 음성-음성 번역 모델입니다.
CTC-S2UT(ACL 2024 조사 결과) : 최대 26.81배의 디코딩 속도 향상을 제공하는 비자동회귀 텍스트 없는 음성-음성 변환 모델입니다.
파이썬==3.8, 토치==2.1.2
fairseq를 설치합니다.
CD 박람회 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 기능을 추출합니다.
fr de es의 src_lang에 대해; 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
대상 음성에 대한 멜 스펙트로그램, 지속 시간, 피치, 에너지 정보를 추출합니다.
ar ca cy de es et fa fr id 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 data/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
메모
다음 스크립트는 기본적으로 4개의 RTX 3090 GPU를 사용합니다. 사용 가능한 GPU에 따라 --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
에 저장됩니다.
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 데이터(1단계)를 사용하여 S2TT 모델과 어휘 어댑터를 미세 조정하면 최상의 체크포인트가 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}, }