본 프로젝트 관련 글을 2달만에 쓰는 것 같다.

노트북 고장으로 3주 정도 프로젝트 진행이 막힌 이유도 있지만, 중간 결과물이 마음에 들지 않아 

사용할 모델이나 오픈소스들을 새로 찾아보고 적용하는데 시간을 보내느라 블로그 포스팅은 생각도 안하고 있었다.

(물론 노트북 고장난 3주 동안은 음성합성용 데이터 제작 툴을 만드는데 시간을 보냈지만)

 

 

 

#6에서 중간 결과물을 얻었다는 말을 하고 끝냈었다.

우선 중간 결과물부터 들어보자.

 

 

 

 

이게 10만번 정도 학습을 시킨 결과다.

 

 

정말.... 못써먹을 정도로 알아듣기 힘들다. 데이터셋에 있던 텍스트로 합성을 하면 어느정도 알아들을 수는 있지만, 의미가

없고 데이터셋에 없는 텍스트는 위와 같이 발음이 심하게 뭉게지고 끝부분은 웅얼거리며 끝나는 경우가 많다.

 

 

한마디로 말하면 대실패다.

 

 

내가 그동안 고생해서 얻는 결과가 이러니 멘탈이 조금 금이갔다.

하지만 멘탈을 잡고 원인을 분석해봤는데, 데이터셋의 양이 적은게 원인인 것 같다. 

multi-speaker tacotron을 만드신 김태훈님도 15시간, 5시간, 2시간 정도의 데이터를 사용하여 sample을 만드셨고,

프로젝트 진행에 참고하고 있는 블로그의 주인도 학습에 12시간, 4시간 정도의 데이터를 사용했다.

 

 

https://carpedm20.github.io/tacotron/

 

Multi-Speaker Tacotron

Samples (Training data = Son: 15+ hours, Park: 5+ hours, Moon: 2+ hours) Click if you can't hear any sound 제너러티브 어드벌서리얼 네트워크와 베리에셔널 오토 인코더가 핫하다. Seo Son Park 오스트랄로피테쿠스 아파렌

carpedm20.github.io

 

 

하지만 나는 12시간(KSS) + 1시간(캐릭터) 분량의 데이터로 학습을 진행했다. 목표 음성 화자의 데이터셋이 2시간, 4시간

인 것에 비해 내 데이터는 1시간이므로 차이가 많이 난다. 이게 가장 큰 원인인 것이라고 생각한다.

 

 

문제는 이것을 해결 할 수 없다는 것이다. 우선 저 데이터 1시간 만드는데 거의 3~4주가 걸렸고, 데이터 추출 작업이 엄청 귀찮고 손이 많이가기 때문에 다시 하고싶지가 않다. 그리고 가장 중요한 문제가 있는데, 더이상 추출할 영상이 없다.

아마 극한으로 다 끌어모아 와도 30분이 안될거다. 따라서 다른 해결법을 찾아야 한다.

 

 

데이터 양을 늘릴 수는 없다. 데이터 품질도 여기서 더 끌어올릴 수는 없다.

애초에 kss데이터는 품질이 최상인 데이터고, 캐릭터 데이터는 배경음악 제거작업을 했고, 내가 직접 하나씩 다 들어보고 품질이 낮은 데이터는 폐기를 했으므로 더이상 품질을 올리기는 힘들다.

 

 

그래서 내린 결론은, 음성합성에 사용할 모델을 바꾸기로 결정했다.

더 적은 데이터로 더 좋은 품질의 결과물을 내놓는, 그런 모델을 찾기로 정했다.

(참고로 tacotron, tacotron2는 좋은 품질의 mel-spectrogram을 만들지만, 다른 모델에 비해 많은 시간과 데이터가 요구된다고 함)