본문 바로가기

개발일지/디스코드 봇

디스코드 봇 개발 일지 2023-07-03 - TTS 봇 - 목소리 데이터 모으기 (1)

 

 

 

※ 작성자가 작성한 내용이 일부 틀릴 수도 있음 주의

 

※ 이 글에서 사용하는 프로그램 모두 오픈 소스를 이용했기 때문에 직접 코드를 올리지 않음

 

※ 직접 하면서 알게된 것을 모두 써서 사족이 많음

 

 

일단은 목소리를 학습을 시켜보자

 

일단은 학습된 모델이 있어야 소리를 낼 수 있기 때문에

 

그것부터 만들어보자.

 

사실 학습 모델(RVC 등)과 그것에 의해 학습된 모델(그거로 생성된거)이라는 명칭을 쓰는 것이 맞는지는 모르겠는데

 

일단은 그렇게 서술을 하겠다.

 

항상 공부하면서 그렇지만 정말 용어가 제일 헷갈린다.

 

 

 

 

SCE-TTS

 

내 목소리를 이용해서 TTS를 만드는 방법을 검색해서 찾아낸 깃허브 프로젝트다.

 

링크는 아래에 있다.

 

https://gist.github.com/yunho0130/a97db3296314cd7076d8436238fa113a

 

SCE-TTS: 내 목소리로 TTS 만들기

SCE-TTS: 내 목소리로 TTS 만들기. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

이 깃허브 프로젝트의 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

 

GitHub - sce-tts/mimic-recording-studio

Contribute to sce-tts/mimic-recording-studio development by creating an account on GitHub.

github.com

 

 

근데 이게 문제가 있다.

 

윈도우에서는 사실 뭐 라이브러리같은 거 추가적인 설치 없이 batch 파일을 실행하면

 

알아서 돌아가도록 되어있다.

 

근데 대충 문제를 보면, "docker-compose" 명령어가 없다고 난리치는데,

 

포함된 파일 중에 내에 이에 해당하는 파일이 있는데도 안되는 것이다.

 

그니까 결국 안되는 프로그램이다.

 

 

사실 알고 보면, SCE-TTS와 Mimic recording studio 모두 마지막 업데이트 이후

 

꽤나 많은 시간이 흘렀다. 오래되지 않은 commit도 있는 것처럼 보이지만,

 

사실상 메인으로 돌아가는 부분은 오래되었다는 것을 볼 수 있다.

 

 

하지만 인터넷에는 어쨌든 해결되어있는 경우가 있다.

 

 

 

 

잘 돌아가는 Mimic recording studio 수정 버전

 

https://lemongreen.tistory.com/13

 

SCE-TTS 버그 수정판과 TTS 제작 경험

https://sce-tts.github.io/#/v2/index SCE-TTS: 내 목소리로 TTS 만들기 문서를 불러오고 있습니다... sce-tts.github.io 심심해서 SCE-TTS를 만져보고 있었는데, 여러가지 버그가 많았습니다. 근데 프로젝트 개발도

lemongreen.tistory.com

 

이 티스토리 블로그 글은 해당 문제가 해결된 studio 수정 버전을 가지고 있다.

 

이 블로그 주인 분께서 직접 수정하셨기 때문에, 관련해서 필요한 것은

 

블로그 글에 직접 들어가 확인 부탁드린다.

 

 

요약해서 말하자면 링크를 타고 들어가서

 

"다운로드: (뭐시기뭐시기)" 써저있는 거 눌러서 다운 받아서

 

run.zip 풀고 run-server.bat을 실행하고,

 

크롬 켜서 localhost:5000으로 들어가고

 

크롬에 마이크 권한 없으면 권한 주고, 마이크를 잘 지정해주면 세팅은 다 끝났다.

 

소스 자체도 공유해주셨기 때문에, 분석해봐도 될 듯하다.

 

 

 

 

Mimic Recording Studio 사용법

 

 

이미 설정을 해서 이렇게 나온다.

 

실행하기 전에 간단하게 닉네임 설정이라던지 간단한 세팅을 요구한다.

 

RECORDER에 닉네임(아무거나 써도 됨) 넣어주고 아래의 주황색 "CONTINUE" 버튼으로 눌러주면 된다.

 

어쨌든 세팅이 끝났으면, 녹음을 해주면 되는데,

 

사용법은 아예 자체에서 간단하게 보여주기 때문에 보면서 하면 된다.

 

간단히 위 그림에 나와있는 것만 기억하면 된다.

 

 

UI는 대충 이렇다.

 

그리고 한 3000개가 넘는 문장이 있는데

 

간단하게 테스트로 100개 정도만 녹음했는 데도

 

학습이 생각보다 괜찮게 된다.

 

일단은 몇 시간동안 녹음하지 말고

 

한 20분만 써서 녹음해주자.

 

녹음 해준 것은 'audio_files' 폴더에 있는 이상한 이름의 폴더 안에 wav로 다 저장이 되어있지만

 

메타데이터도 또한 따로 저장이 되는데, 이제 여기서 어떤 걸 사용하려고 하냐에 따라

 

방법이 좀 달라질 것이기 때문이다.

 

 

참고로 녹음할 문장을 바꾸려면

 

메인 폴더 이름이 'run'일 때, run/prompts/korean_corpus.csv 파일을 수정해주면 된다.

 

그냥 엑셀로 열면 인코딩 문제인가 꽰?뚫 같이 나오는데,

 

인코딩 방식을 바꿔도 되고,

 

메모장으로 해도 된다.

 

"문장 (Tab 1개) (낱말 개수 : 공백, 문장부호 포함)" 형식이다.

 

형식은 '문장 (탭 1번) (낱말 개수)' 형태로 수정해주면 된다.

 

참고로 낱말 개수는 공백, 문장 부호를 포함한다.

 

근데 굳이 안 바꿔줘도 될듯? 외곬길이 뭔지는 모르겠지만

 

곬곬곬곬

 

 

 

 

일단은 여기까지

 

모은 데이터로 학습하는 것과, 내 목소리 말고 남의 목소리를 가지고 데이터를 모으는 것은

 

이후의 글에 추가적으로 작성하고자 한다.

 

이거를 다 쓰면 글이 너무 길어져서 되게 애매해질 것 같다.

 

SCE-TTS 프로젝트는 사실상 약 2년 전에 업데이트가 끊겼는데,

 

GPT 이후 수많은 AI 학습 모델이 등장했고, 그 중에 한 3개월? 정도의 최근에

 

'RVC(Retrieval-based Voice Conversion)' 가 있다.

 

논문이 따로 있다면 더 이전일 수도 있는데, 어쨌든 한 3개월 전 쯤부터 글이 많이 나왔다.

 

그것이 더 좋을 것 같다는 판단하에 선택했고, 이용해보고자 했다.

728x90