앞에서의 작업을 통해
약 1시간 분량의 데이터셋을 만들었다. 이제 학습을 할 차례이다.
학습에 사용할 코드는 hccho2님의 tacotron2 구현체를 사용했다.
https://github.com/hccho2/Tacotron2-Wavenet-Korean-TTS
환경은 아나콘다 가상환경을 사용했고 python버전은 3.6이다.
환경 세팅 순서를 말하자면
- conda(python==3.6.)으로 가상 환경 설정
- rr.txt에 있는 거 전부 다운 (conda 안되면 pip)
- numpy==1.16, h5py(버전x)로 설치
- 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 - numba==0.48 설치
- 만약 gpu메모리 관련 오류가 뜨거나 batch size 오류가 뜨거나 하면 batch size를 낮춘다. (내경우는 32를 16으로)
- 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까지 진행했다.
다음 글에서는 결과 분석을 한번 해보자.
(스포)
'프로젝트 > 음성합성(tts)' 카테고리의 다른 글
캐릭터 보이스 만들기#7-중간 결과 (0) | 2022.07.13 |
---|---|
음성 합성 데이터 셋 제작 툴 (0) | 2022.05.19 |
캐릭터 보이스 만들기#5-데이터 셋 제작(3-2) (0) | 2022.05.02 |
캐릭터 보이스 만들기#5-데이터 셋 제작(3-1) (0) | 2022.04.21 |
캐릭터 보이스 만들기#5-데이터 셋 제작(2) (0) | 2022.04.11 |