※ 작성자가 작성한 내용이 일부 틀릴 수도 있음 주의
※ 이 글에서 사용하는 프로그램 모두 오픈 소스를 이용했기 때문에 직접 코드를 올리지 않음
※ 직접 하면서 알게된 것을 모두 써서 사족이 많음
일단은 목소리를 학습을 시켜보자
일단은 학습된 모델이 있어야 소리를 낼 수 있기 때문에
그것부터 만들어보자.
사실 학습 모델(RVC 등)과 그것에 의해 학습된 모델(그거로 생성된거)이라는 명칭을 쓰는 것이 맞는지는 모르겠는데
일단은 그렇게 서술을 하겠다.
항상 공부하면서 그렇지만 정말 용어가 제일 헷갈린다.
SCE-TTS
내 목소리를 이용해서 TTS를 만드는 방법을 검색해서 찾아낸 깃허브 프로젝트다.
링크는 아래에 있다.
https://gist.github.com/yunho0130/a97db3296314cd7076d8436238fa113a
이 깃허브 프로젝트의 documentation이 있는데, 그것은 깃허브 readme에 있으니
그것을 참고해서 확인하기를 바란다.
일단은 그 documentation에 나온 내용을 기반으로 접근해보기로 했다.
Mimic recording studio
이 SCE-TTS는 Mimic recording studio를 통해 음성 데이터를 얻고
이 데이터를 바탕으로 학습, TTS화 시키는 식으로 진행된다. 그래서 이 스튜디오는
학습 모델은 아니고, 그냥 음성 데이터를 모으기 편하게 하기 위한
뭐 대충 그런 거라고 생각하면 된다.
일단은 아래는 그것의 한국어 버전이다. (문제점 및 주의사항 후술, 원본은 링크 참고)
https://github.com/sce-tts/mimic-recording-studio/tree/master#windows-self-hosted-quick-start
근데 이게 문제가 있다.
윈도우에서는 사실 뭐 라이브러리같은 거 추가적인 설치 없이 batch 파일을 실행하면
알아서 돌아가도록 되어있다.
근데 대충 문제를 보면, "docker-compose" 명령어가 없다고 난리치는데,
포함된 파일 중에 내에 이에 해당하는 파일이 있는데도 안되는 것이다.
그니까 결국 안되는 프로그램이다.
사실 알고 보면, SCE-TTS와 Mimic recording studio 모두 마지막 업데이트 이후
꽤나 많은 시간이 흘렀다. 오래되지 않은 commit도 있는 것처럼 보이지만,
사실상 메인으로 돌아가는 부분은 오래되었다는 것을 볼 수 있다.
하지만 인터넷에는 어쨌든 해결되어있는 경우가 있다.
잘 돌아가는 Mimic recording studio 수정 버전
https://lemongreen.tistory.com/13
이 티스토리 블로그 글은 해당 문제가 해결된 studio 수정 버전을 가지고 있다.
이 블로그 주인 분께서 직접 수정하셨기 때문에, 관련해서 필요한 것은
블로그 글에 직접 들어가 확인 부탁드린다.
요약해서 말하자면 링크를 타고 들어가서
"다운로드: (뭐시기뭐시기)" 써저있는 거 눌러서 다운 받아서
run.zip 풀고 run-server.bat을 실행하고,
크롬 켜서 localhost:5000으로 들어가고
크롬에 마이크 권한 없으면 권한 주고, 마이크를 잘 지정해주면 세팅은 다 끝났다.
소스 자체도 공유해주셨기 때문에, 분석해봐도 될 듯하다.
Mimic Recording Studio 사용법
실행하기 전에 간단하게 닉네임 설정이라던지 간단한 세팅을 요구한다.
어쨌든 세팅이 끝났으면, 녹음을 해주면 되는데,
사용법은 아예 자체에서 간단하게 보여주기 때문에 보면서 하면 된다.
간단히 위 그림에 나와있는 것만 기억하면 된다.
그리고 한 3000개가 넘는 문장이 있는데
간단하게 테스트로 100개 정도만 녹음했는 데도
학습이 생각보다 괜찮게 된다.
일단은 몇 시간동안 녹음하지 말고
한 20분만 써서 녹음해주자.
녹음 해준 것은 'audio_files' 폴더에 있는 이상한 이름의 폴더 안에 wav로 다 저장이 되어있지만
메타데이터도 또한 따로 저장이 되는데, 이제 여기서 어떤 걸 사용하려고 하냐에 따라
방법이 좀 달라질 것이기 때문이다.
참고로 녹음할 문장을 바꾸려면
메인 폴더 이름이 'run'일 때, run/prompts/korean_corpus.csv 파일을 수정해주면 된다.
그냥 엑셀로 열면 인코딩 문제인가 꽰?뚫 같이 나오는데,
인코딩 방식을 바꿔도 되고,
메모장으로 해도 된다.
형식은 '문장 (탭 1번) (낱말 개수)' 형태로 수정해주면 된다.
참고로 낱말 개수는 공백, 문장 부호를 포함한다.
근데 굳이 안 바꿔줘도 될듯? 외곬길이 뭔지는 모르겠지만
곬곬곬곬
일단은 여기까지
모은 데이터로 학습하는 것과, 내 목소리 말고 남의 목소리를 가지고 데이터를 모으는 것은
이후의 글에 추가적으로 작성하고자 한다.
이거를 다 쓰면 글이 너무 길어져서 되게 애매해질 것 같다.
SCE-TTS 프로젝트는 사실상 약 2년 전에 업데이트가 끊겼는데,
GPT 이후 수많은 AI 학습 모델이 등장했고, 그 중에 한 3개월? 정도의 최근에
'RVC(Retrieval-based Voice Conversion)' 가 있다.
논문이 따로 있다면 더 이전일 수도 있는데, 어쨌든 한 3개월 전 쯤부터 글이 많이 나왔다.
그것이 더 좋을 것 같다는 판단하에 선택했고, 이용해보고자 했다.
'개발일지 > 디스코드 봇' 카테고리의 다른 글
디스코드 봇 개발 일지 2023-07-12 - TTS 봇 - 갑자기 깨달음 (계획 변경) (0) | 2023.07.12 |
---|---|
디스코드 봇 개발 일지 2023-07-10 - TTS 봇 - RVC로 목소리 학습시키기 (0) | 2023.07.10 |
디스코드 봇 개발 일지 2023-06-26 - TTS (Text to Speech) 봇 (1) - 아이디어 구상 (0) | 2023.06.26 |
디스코드 봇 개발 일지 2023-03-03 - OpenAI 업데이트 및 모델(GPT3.5-turbo) 교체 (16) | 2023.03.04 |
디스코드 봇 개발 일지 2023-02-21 - youtube_dl uploader_id 문제 (12) | 2023.02.22 |