타코트론을 기반으로 한 코드 전환 음성 합성 엔드 투 엔드 생성 TTS 모델 인 CS-Tacotron의 Pytorch 구현. 타코트론의 일반 버전은이 리포지어를 참조하십시오.
최근의 기계 학습 텍스트-음성 (TTS) 모델의 광범위한 성공으로 현실적인 음성 합성에 대한 유망한 결과는 기계의 인간과 같은 목소리를 합성 할 수있는 능력을 입증했습니다. 그러나 중국어-영어 코드 스위치 텍스트 음성 합성 합성 영역에서는 거의 진전이 없었으며, 여기서 기계는 다국어 방식으로 입력과 출력을 모두 처리하는 법을 배워야합니다. 코드 전환은 스피커가 둘 이상의 언어를 번갈아 가며 오늘날 사람들은 일상 생활에서 코드 전환 언어로 의사 소통 할 때 발생하므로 TTS와 같은 음성 기술은 다국어 입력 및 출력을 처리하기 위해 개발되어야합니다.
이 작업에서, 우리는 최신 엔드 투 엔드-엔드-스피치 생성 모델 Tacotron (Wang et al., 2017)을 기반으로 구축 된 코드 전환 타코트론을 제시합니다. CS-Tacotron은 원시 CS 텍스트에 조절 된 코드 전환 음성을 합성 할 수 있습니다. CS 텍스트와 오디오 쌍이 주어지면, 우리의 모델은 적절한 데이터 사전 처리로 엔드 투 엔드 교육을받을 수 있습니다. FURTHURMORE, 우리는 NTU (National Taiwan University)에서 제공되는 코스 디지털 신호 처리 (DSP)에서 유래 한 중국어-영어 코드 전환 강의 강의 기반 데이터 세트 인 LecturedSP 데이터 세트에 대한 모델을 훈련시킵니다. 우리는 타코트론 모델 이이 도전적인 다국어 언어 생성 작업에서 잘 수행하도록하기위한 몇 가지 주요 구현 기술을 제시합니다. CS-Tacotron은 CS 텍스트에서 CS 스피치를 생성 할 수있는 기능을 보유하고 있으며 LecturedSp의 스피커 스타일과 생생하게 말합니다.
이 작업에 대한 자세한 내용은 report.pdf를 참조하십시오.
풀 요청을 환영합니다!
CS-Tacotron의 오디오 샘플. 아래의 모든 문구는 훈련 중에 보이지 않습니다.
파이썬 3을 설치하십시오.
플랫폼에 따라 최신 버전의 Pytorch를 설치하십시오. 더 나은 성능을 보려면 GPU 지원 (CUDA)으로 실행 가능한 경우 설치하십시오. 이 코드는 Pytorch 1.0 이상에서 작동합니다.
(선택 사항) 플랫폼에 따라 최신 버전의 TensorFlow를 설치하십시오. 이것은 선택 사항 일 수 있지만 현재는 음성 처리에 필요합니다.
요구 사항 설치 :
pip3 install -r requirements.txt
경고 : 플랫폼에 따라 토치 및 텐서 플로 / 텐서 플로우 GPU를 설치해야합니다. 여기에 우리는이 프로젝트를 구축 할 때 사용하는 Pytorch 및 Tensorflow 버전을 나열합니다.
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
참고 : 우리는 자체 데이터 세트에서 모델을 교육했습니다 : lecturedsp. 현재이 데이터 세트는 공개 출시에 사용할 수 없으며 실험실에서 개인 컬렉션으로 남아 있습니다. 이 데이터 세트에 대한 자세한 내용은 'report.pdf'를 참조하십시오.
선택한 코드 스위치 데이터 세트를 다운로드하십시오.
데이터 세트를 ~/data/text 및 ~/data/audio 로 포장합니다.
포장을 풀고 나면 데이터 트리가 기본 경로가 작동하려면 다음과 같아야합니다.
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
참고 : 다음 섹션에서는 데이터 세트의 파일 이름에 따라 경로를 설정하면 일부 샘플 데이터를 보여주는 것입니다. 데이터 세트의 형식은이 코드가 작동하는 제공된 샘플 데이터와 일치해야합니다.
src/preprocess.py를 사용하여 텍스트 데이터를 전처리합니다.
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
src/preprocess.py를 사용하여 오디오 데이터를 전처리하십시오.
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
오디오 전 처리 차이의 시각화 :
src/preprocess.py를 사용하여 텍스트 및 오디오에서 모델 지원 메타 파일을 만듭니다.
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
src/train.py를 사용하여 모델을 훈련시킵니다
python3 train.py
조정 가능한 하이퍼 파라미터는 SRC/Config.py에서 발견됩니다. 파일을 편집 하여이 매개 변수를 조정하고 설정할 수 있습니다. LecturedSp 및 기타 중국어 영어 코드 전환 데이터에는 기본 하이퍼 파라미터가 권장됩니다.
Tensorboardx로 모니터링 (선택 사항)
tensorboard --logdir 'path to log dir'
트레이너는 기본적으로 2000 단계마다 오디오 및 정렬을 덤프합니다. CS-tacotron/ckpt 에서 찾을 수 있습니다.
우리는 타코트론의 훌륭한 파이터 구현 인 Ryuichi Yamamoto의 작업에 대한 신용을주고 싶습니다.
우리는 모델 테스트 단계의 정렬 플롯을 보여줍니다. 첫 번째는 단일 언어 중국 입력의 정렬을 보여주고, 두 번째는 각각 중국-영어 코드 전환 입력이며, 세 번째는 각각 단일 언어 영어 입력입니다.