/SMART-Long_Sentence_TTS

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

SMART-Long_Sentence_TTS

SMART-Long_Sentence_TTS 모델은 10초 이하의 짧은 훈련 데이터만으로 60초 이상의 음성을 합성할 수 있는 document-level의 한국어 음성합성 모델입니다. 공개된 코드는 2020년도 과학기술통신부의 재원으로 정보통신기획평가원(IITP)의 지원을 받아 수행한 "소량 데이터만을 이용한 고품질 종단형 기반의 딥러닝 다화자 운율 및 감정 복제 기술 개발" 과제의 일환으로 공개된 코드입니다.

학습 단계에서는 curriculum learning을 이용하여 짧은 문장부터 학습되며 epoch이 늘어날 때마다 합습되는 음성의 길이를 늘려 긴 문장을 학습하는 것을 가능하게 합니다.

합성 단계에서는 attention masking을 통해 현재 time step에서 필요한 부분의 context만 사용하여 합성의 효율을 높이고 attention error를 줄였습니다.

추가적으로 decoder의 output을 더 robust하게 예측하기 위해 fastspeech의 duration predictor를 사용하고 본 연구에서는 현재 time step의 mel spectrogram을 생성하는데 참조해야 하는 alignment의 위치를 결정하기 위해 사용합니다.

Done

  • curriculum learning 적용
  • target length predictor 적용
  • attention masking 적용
  • attention masking의 window size 조절
  • MelGAN vocoder를 이용한 고품질 합성음

To do

  • curriculum learning 추가 실험
  • attention masking 방법 변경
  • 감정 및 운율 임베딩 추가

Requirements

  • pytorch 3.6
  • pytorch 1.5.0
  • inflect 0.2.5
  • jamo 0.4.1
  • matplotlib 2.1.0
  • nltk 3.5
  • numba 0.48.0
  • numpy 1.16.4
  • Pillow 7.2.0
  • librosa 0.6.0
  • tensorboardX 1.8
  • tensorflow 1.15.0

Training

To train the model(s), run this command:


python train.py

Evaluation

To evaluate, run:


python inference.py  >> log.log

Results

Synthesized audio samples can be found in ./samples

Reference code

[1] Tacotron2 : https://github.com/NVIDIA/tacotron2

[2] FastSpeech : https://github.com/xcmyz/FastSpeech

[3] MelGAN : https://github.com/seungwonpark/melgan