애니메이션 캐릭터의 목소리로 내가 원하는 문장을 말하게 하거나 명대사를 듣거나 다양한 목소리로 대화를 해보고 싶다는 생각 해보시지 않으셨나요?
TTS(Text to Speech)는 문자를 음성으로 변환해 주는 기술을 의미합니다. 텍스트를 음성으로 변환하여 다양한 용도로 사용자에게 제공됩니다.
최근에는 인터넷방송의 후원시스템인 투네이션에서 다양한 스트리머들의 음성을 활용한 TTS후원을 할 수 있기 때문에 인터넷방송을 즐겨보시는 분들이라면 TTS에 대해 한번쯤 들어본 적이 있으실 겁니다.
무료 TTS체험해보기😅
구글의 번역기에서 TTS서비스를 사용해 볼 수 있습니다.(구글번역 링크)
하지만 TTS서비스를 위한게 아니다 보니 음성의 종류가 한 가지로 정해져 있고 단순한 느낌이 듭니다.
TTS를 제공하는 다른 서비스들도 있습니다. (무료 tts사이트 링크)
조금 더 다양한 음성을 들어 볼 수 있지만 역시나 선택할 수 있는 음성의 종류가 정해져 있습니다.
좋아하는 캐릭터 TTS를 만들려면
결과물 미리 듣기
위 음성은 아래 소개하는 도구를 사용하여 음성 모델을 활용하여 TTS를 생성한 결과물입니다.
TTS서비스들을 사용해 보면서 내가 좋아하는 애니캐릭터나 특정 인물의 음성을 TTS로 사용할 수 없을까? 고민을 많이 해봤는데 RVC(Retrieval-based Voice Conversion) 음성 변환 기술을 사용하여 특정 음성을 TTS로 만들어 볼 수 있었습니다.
RVC는 기존의 음성데이터를 이용해 음성을 변조하는 방식입니다.
RVC를 사용한 TTS에는 장점도 있지만 몇 가지 단점도 존재합니다.
- RVC모델을 학습시켜야 한다.
- 모델 학습의 입문장벽이 높다.
- TTS음성 정보가 공개될 수 있다.
RVC를 통해 TTS를 사용하기 위해서는 원하는 음성의 데이터 모델이 필요합니다.
예를 들어 특정 버튜버의 음성을 얻고 싶으면 버튜버의 방송 중 깨끗한 음성이 담긴 오디오 부분을 추출하여 오디오를 통하여 따로 학습을 해야 음성 데이터모델을 얻을 수 있습니다.
또한 학습 시에는 시스템의 요구사항이 높아야 하며 저가형 PC에서는 음성 데이터모델을 학습조차 하기 어려운 상황에 처할 수 있습니다.
ai음성 모델 학습방법
학습을 위한 Nvidia GPU를 탑재한 PC를 준비합니다.
1. 데이터 세트 만들기(가이드 링크)
- 원하는 캐릭터의 오디오를 검색하여 WAV 또는 FLAC형식으로 오디오를 추출합니다.
- 악기나 다른 음성이랑 목소리가 겹치지 않도록 음성을 분리합니다.
- 오디오 편집프로그램으로 무음구간이나 노이즈가 심한 부분을 삭제합니다.
2. 데이터 세트 훈련하기(가이드 링크)
- 데이터세트 준비하기
- 데이터세트 처리
- 특징 추출 및 모델 훈련
직접 모델을 훈련하면 사용자맞춤형 및 기존 모델에 부족한 부분이 있다면 더 높은 퀄리티로도 제작할 수 있지만 처음 경험하는 사용자들이 따라 하기에는 기본적으로 사양이 받쳐주는 PC가 필요할뿐더러 생각보다 시간이 오래 걸리고 어려운 작업이라고 생각하였습니다.
이 영상에서는 컴퓨터의 사양과 상관없이 구글의 colab을 사용한 온라인환경에서 음성을 학습하는 방법에 대해서 설명하고 있습니다. pc사양에 대한 부담을 덜어주기 때문에 실제 원하는 음성 모델을 학습하고 싶다면 해당 영상을 참고해 보는 것도 좋습니다.
하지만 꼭 처음부터 음성모델을 학습시킬 필요는 없습니다. 기존에 학습된 음성모델을 활용하면 새로운 음성모델을 생성하지 않고도 바로 TTS를 사용해 볼 수 있습니다.
복잡한 학습 과정 없이도 TTS를 사용할 수 있다
나는 원하는 캐릭터 TTS를 만들고 싶은데 음성파일도 구하고 학습도해야 하고 이 과정이 어렵고 번거롭다고 생각한다면 이미 만들어진 음성모델을 사용하는 방법이 있습니다. 세계 각국의 다양한 사람들이 이미 유명한 캐릭터나 인물의 음성 모델을 학습하여 공유하고 있습니다.
이렇게 하면 위에서 설명한 단점을 보완하여 TTS를 사용할 수 있습니다. 로컬환경에서 작동하기 때문에 외부로 데이터 유출을 걱정할 필요가 없고 기존의 음성모델을 사용하여 복잡하고 높은 사양이 요구되는 음성모델 학습과정을 생략할 수 있습니다.
학습과정을 거쳐서 개인 맞춤형 데이터 모델을 얻을 수 도 있지만 진짜 웬만한 캐릭터나 유명 모델들의 음성은 이미 학습된 데이터가 많이 있기 때문에 바로 사용해 볼 수 있다는 장점이 있습니다.
내가 원하는 음성모델 찾는 방법
음성 모델 사이트
음성 모델 파일 구성
음성모델은 다운로드하여 보면 PTH파일 유형과 INDEX파일 유형이 압축되어 있는 압축파일로 구성되어 있습니다.
이번에는 압축파일을 직접 받을 필요 없이 TTS도구에 다운로드 링크를 입력하여 TTS도구에 직접 음성모델을 추가할 예정입니다.
음성 모델 찾기 ai hub
저는 음성 모델을 찾을 때 ai hub를 자주 사용합니다.
다른 모델은 웹 사이트로 구성되어 있는데 ai hub는 discord의 채널로 구성되어 있습니다. 디스코드 채널에 가입한 뒤 'voice-models'채널에 들어갑니다.
이곳에서 원하는 캐릭터나 인물의 음성모델을 찾을 수 있습니다.
정말 많은 음성모델들이 존재하는데 특정인물을 검색하고 싶다면 상단의 검색창을 활용할 수 있습니다.
예를 들어 홀로라이브의 마린 음성모델을 찾고 싶다면 상단에 marin을 검색한 뒤 해당 캐릭터의 썸네일 클릭해 주세요.
썸네일을 클릭하면 메시지창이 열리게 되는데 해당 모델의 huggingface 다운로드 주소가 링크형태로 나타나게 됩니다. 링크를 클릭하여 직접 음성모델을 다운로드할 수도 있지만 이따가 TTS를 사용할 때는 링크를 통하여 직접 다운로드할 예정이기 때문에 원하는 모델의 링크를 복사해 두겠습니다.
음성복제도구 설치하기
음성모델이 준비되었다면 음성복제를 도와줄 Applio라는 도구를 설치해야 합니다.
Applio음성복제 도구는 다국어 지원 TTS 음성을 이용하여 RVC모델로 기존의 TTS음성을 지정모델의 음성으로 변환하여 사용자에게 TTS음성을 제공하고 있습니다.
꾸준한 업데이트를 진행 중이기 때문에 앞으로도 다양한 기능이 추가될 것으로 예상하며, 윈도우와 리눅스 환경에서 설치할 수 있게 설치 가이드를 제공하고 있습니다.
GitHub 릴리즈 페이지에 들어가서 최신버전의 Source code(zip) 설치파일을 다운로드합니다.(다운로드링크)
다운을 받은 뒤 압축을 해제하면 사진에 표시된 두 개의 bat파일이 있습니다.
run-install.bat를 실행하여 설치 작업을 모두 마친 뒤 run-applio.bat를 실행시켜 applio 도구를 실행할 수 있습니다.
bat파일 실행 시에 관리자권한 실행금지
Applio 개인 TTS 만들기
인터페이스 언어 및 테마 변경방법
Applio를 처음 실행하면 사용자 시스템언어에 따라서 자동으로 한국어가 나오지만 다른 언어를 설정하고 싶다거나 언어가 한국어로 잡히지 않을 경우에는 "설정"탭에서 변경할 수 있습니다.
설정페이지의 Language settings에서 기본적으로 시스템언어를 감지하도록 설정되어 있으며 목록상자를 클릭하여 다른 국가의 언어로 변경할 수 있습니다.
그리고 바로 위에 Theme에서는 다양한 gradio테마를 선택하여 변경할 수 있습니다. 테마나 언어를 변경한 뒤에는 Applio를 재시작하여야 적용됩니다.
RVC음성 모델 적용하기
applio인터페이스에서 다운로드 탭으로 이동한 뒤 모델링크 부분에 Aihub에서 찾았던 음성모델의 다운로드 링크를 붙여 넣습니다. 이후 모델 다운로드 버튼을 클릭하여 모델을 다운받아주세요.
진행상황은 bat파일에서 확인할 수 있습니다.
다운로드가 완료되면 '출력 정보'에 다운로드가 완료되었다는 텍스트가 나옵니다.
TTS사용해 보기
TTS탭으로 이동한 뒤 새로고침을 먼저 눌러주세요.
(새로고침전 바로 음성모델을 고르려고 하면 다운로드한 음성 모델이 나타나지 않을 수 있습니다.)
음성모델과 인덱스파일을 클릭하여 다운로드한 모델이름을 클릭하여 선택합니다.
TTS보이스는 사용할 언어의 국가를 선택하면 됩니다. 한글 TTS를 사용할 때 한국어가 아닌 다른 국가를 선택해도 음성은 생성되지만 이상한 음성이 나오거나 발음이 이상할 수 있습니다.
한국어 TTS보이스는 2종류 밖에 없는데 위에는 남자, 밑은 여자 음성보이스입니다.
합성할 텍스트에 테스트용 텍스트를 입력합니다.
하단에 고급설정에 5가지의 고급설정이 있는데 결과물을 들어보면서 조정하는걸 권해드립니다.
제일 하단에 변환 버튼을 클릭하면 결과물이 나오게 됩니다.
오디오 재생버튼을 클릭하여 생성된 음성을 미리 들어볼 수 있으며 음성의 결과가 마음에 들면 우측에 다운로드 아이콘을 통해서 저장할 수 있습니다.
번외)기존 음성을 다른 음성으로 변환
추론탭에서는 기존의 오디오파일을 가져온 뒤 음성모델을 선택하면 기존의 음성을 모델을 음성으로 합성할 수 있습니다.
TTS와 유사하게 음성모델과 인덱스파일을 선택한 뒤 TTS텍스트를 입력하는 대신에 음성파일을 가져온 뒤 변환 버튼을 클릭하면 됩니다.
TTS가 아닌 기존의 음성을 변환하면 흉내내기 어려운 감정이 포함된 음성을 다른 목소리로 바꿀 수 있기 때문에 조금 더 리얼한 목소리를 만들어 낼 수 있습니다.