
많은 시도를 했다.
우선 첫번째로
Coqui.ai의 XTTS 라이브러리를 활용하여 Putty로 연결해 Vast.ai에서 GPU를 임대하여 활용하려고 했다.


그러나 파일위치의 오류가 있어서 안된다고 하는데 도대쳉 이유를 알수 없어 포기.
혹여나 싶어 개인컴의 3060을 믿고 진행을 하였으나.

--> /root/coqui_xtts_env/run/training/GPT_XTTS_v2.0_freiren_FT-August-14-2024_07+08AM-0000000
> Filtering invalid eval samples!!
> Total eval samples after filtering: 0
! Run is removed from /root/coqui_xtts_env/run/training/GPT_XTTS_v2.0_freiren_FT-August-14-2024_07+08AM-0000000
Traceback (most recent call last):
File "/root/coqui_xtts_env/lib/python3.10/site-packages/trainer/trainer.py", line 1833, in fit
self._fit()
File "/root/coqui_xtts_env/lib/python3.10/site-packages/trainer/trainer.py", line 1787, in _fit
self.eval_epoch()
File "/root/coqui_xtts_env/lib/python3.10/site-packages/trainer/trainer.py", line 1628, in eval_epoch
self.get_eval_dataloader(
File "/root/coqui_xtts_env/lib/python3.10/site-packages/trainer/trainer.py", line 990, in get_eval_dataloader
return self._get_loader(
File "/root/coqui_xtts_env/lib/python3.10/site-packages/trainer/trainer.py", line 914, in _get_loader
len(loader) > 0
AssertionError: __ len(DataLoader) returns 0. Make sure your dataset is not empty or len(dataset) > 0.
진짜 데이터셋 있는데 왜이러는건지 알 수가 없어서 이방법 포기
두번째.
VITS 이용.
https://joonnotes.tistory.com/47
처음엔 이 사이트가 공유해준대로 진행을 하였으나, 또 파일의 위치를 알 수가 없다고 나와서 포기.
그러나

https://github.com/litagin02/Style-Bert-VITS2
이러한 VITS2 기반의 Webui를 장착하고 있는 StyleBertVITS2 발견.
진행을 해보았다.
진짜 일본어 하나도 몰라서

https://www.youtube.com/watch?v=aTUSzgDl1iY&t=897s
이 영상 보면서 진행.

텍스트와 파일 위치가매치가 안돼서
대충 맞춰주고

학습 전처리 진행.


그 후 학습을 진행하였으나
이상하게 7퍼센트에서 멈춤

그래서 이방법도 포기.
마지막 방법
어쩌다 보니 알아낸 Tortoise TTS

https://www.youtube.com/watch?v=6sTsqSQYIzs&list=PLknlHTKYxuNv4DCfs-MtrL-XQCdfjZqyu
그동안 봐온 글이나 영상중에서 이분이 역대급으로 친절하시다.
설치부터 다알려주심
git clone을 해주고 cuda와 python세팅을 해주자.

그후 venv를 통해 가상환경을 세팅하고 로컬로 웹페이지를 열면 시작이 된다.

자세한건 영상을 참고하자.
그후 파일을 넣고 전처리 진행.

그런다음 본격적으로 학습을 시킨다.


정말 쭉쭉 잘 올라가는 모습이다.

학습이 완료된 모습.

이제 Voice 모델을 Frieren으로 해주고 생성을 눌러주면
아래와 같은 음성 결과물을 얻게된다.
검색을 해보자니 Tortoise TTS는 영어에 최적화되있어서 다른언어는 어색하다고한다.
필자는 만족스러운 결과물이 아니라는 생각에

이분이 어떻게 훈련시켰는지 보고 최대한 비슷하게 해볼 생각이다.
아직 Pytorch가 뭔지 모르고, 모델이라는 뜻이 정확하게 뭘 의미하는지 모르는 상태이지만,
(심지어 epoch? 이런게 뭔지 제대로 모름)
대가리깨져가며 배우는것도 하나의 즐거움 아닐까? 단순히 남들이 올려놓은 것들을 가져다 쓰는것이지만
거기서 생겨나는 오류를 해결하는것이 진짜 힘이라고 생각한다.
여러분들도 이러한 고통을 겪으며 해보는게 좋지 않을까 ?