- Tacotron2 오픈 소스와 pytorch 기본 내장 transformer를 활용하여 Transformer-TTS를 간단 구현하고 한국어 데이터셋(KSS)을 사용해 빠르게 학습합니다.
- 본 레포지토리에서 Tacotron2에서 제안하는 BCE loss를 그대로 사용하면 stop token이 제대로 예측되지 않기 때문에 Transformer-TTS 논문에서 제안하는 coefficient를 사용하여 Stop Token Layer를 학습합니다.
- conda 환경으로 진행해도 무방하지만 본 레포지토리에서는 docker 환경만 제공합니다. 기본적으로 ubuntu에 docker, nvidia-docker가 설치되었다고 가정합니다.
- GPU, CUDA 종류에 따라 Dockerfile 상단 torch image 수정이 필요할 수도 있습니다.
- 별도의 pre-processing 과정은 필요하지 않습니다.
- Batch Size 32 기준, 약 3만 step 정도에서 모델이 말을 할 수 있을 정도가 됩니다.
- download dataset - https://www.kaggle.com/datasets/bryanpark/korean-single-speaker-speech-dataset
unzip /path/to/the/kss.zip -d /path/to/the/kss
mkdir /path/to/the/Transformer-tts/data/dataset
mv /path/to/the/kss.zip /path/to/the/Transformer-tts/data/dataset
cd /path/to/the/Transformer-tts
docker build --tag Transformer-tts:latest .
nvidia-docker run -it --name 'Transformer-tts' -v /path/to/Transformer-tts:/home/work/Transformer-tts --ipc=host --privileged Transformer-tts:latest
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
cd /home/work/Transformer-tts
ln -s /home/work/Transformer-tts/data/dataset/kss
python train.py -g 0 -o data -l kss_v1 -d ./kss -c
python train.py -g 0 -o data -l kss_v1 -d ./kss -c ./data/kss_v1/model_state/checkpoint_<step>
- arguments
- -g : gpu number
- -o : output directory
- -i : log directory
- -d : data directory
- -c : checkpoint path with step number
- (OPTIONAL)
tensorboard --logdir=outdir/logdir