앞에서의 작업을 통해 

약 1시간 분량의 데이터셋을 만들었다. 이제 학습을 할 차례이다.

 

 

학습에 사용할 코드는 hccho2님의 tacotron2 구현체를 사용했다.

https://github.com/hccho2/Tacotron2-Wavenet-Korean-TTS

 

GitHub - hccho2/Tacotron2-Wavenet-Korean-TTS: Korean TTS, Tacotron2, Wavenet

Korean TTS, Tacotron2, Wavenet. Contribute to hccho2/Tacotron2-Wavenet-Korean-TTS development by creating an account on GitHub.

github.com

 

환경은 아나콘다 가상환경을 사용했고 python버전은 3.6이다.

환경 세팅 순서를 말하자면

 

 

  1. conda(python==3.6.)으로 가상 환경 설정
  2. rr.txt에 있는 거 전부 다운 (conda 안되면 pip)
  3. numpy==1.16, h5py(버전x)로 설치
  4. conda install -c anancoda tensorflow==1.13.1 (이거하면 밑에 거는 자동으로 깔림 혹시 안 깔리면)
    conda install -c anancoda cudatoolkit
    conda install -c anancoda cudnn
    만약 안되면 conda install cudatoolkit=10.0 -c tensorflow
  5. numba==0.48 설치
  6. 만약 gpu메모리 관련 오류가 뜨거나 batch size 오류가 뜨거나 하면 batch size를 낮춘다. (내경우는 32를 16으로)
  7. from tensorflow.python.client import device_lib
    device_lib.list_local_devices() 을 콘솔에 실행하여 gpu 돌아가는지 확인 

 

# rr.txt

numpy==1.16
jamo==0.4.1
tqdm==4.19.2
unidecode==1.0.22
inflect==0.2.5
matplotlib==2.1.0
librosa==0.6.2
markdown==2.6.9

 

 

 

 

환경설정에서 시간이 엄청 걸렸다. 뭐하면 충돌에 오류가 나버려서 힘들었다.

위의 방법은 내가 찾은 환경 세팅 순서다. 혹시 환경 세팅을 잘 못하겠거나 오류가 나면 참고하면 되겠다.

참고로 cuda는 컴퓨터의 gpu도 상관이 있으니 명심하길 바란다.

 

 

single speaker와 multi speaker를 지원하는데, 내가 듣고 싶어 하는 목소리의 데이터의 분량이 적어 single로 하면

결과가 잘 안 나올게 뻔했다. 그래서 multi speaker를 선택했고, 추가로 공식 한국어 dataset인 kss데이터를 사용했다.

(multi speaker는 다수의 화자를 동시에 학습하는 것이다. 이렇게 하면, 데이터가 적은 화자가 데이터가 많은 화자의 학습에 영향을 받아 좀 더 좋은 퀄리티의 결과물을 기대할 수 있다.)

 

 

데이터는 직접 추출한 데이터 1시간 + kss데이터 12시간을 사용하였다.

 

 

tacotron2 학습을 해보고 결과에 따라서 align이 잘 잡히거나 품질이 좋다면 vocoder학습도 추가로 시킬 계획이다.

 

 

데이터셋 위치, 실행 방법 및 순서는 readme에 상세하게 설명되어 있으니 참고 바란다.

 

 

학습에 사용한 시간은 약 36시간, step은 100k까지 진행했다.

 

 

다음 글에서는 결과 분석을 한번 해보자.

 

 

 

 

 

 

 

 

 

 

(스포)