내 목소리 AI 만들기 - nae mogsoli AI mandeulgi

📗 문서 주소가 https://sce-tts.github.io/ 으로 변경되었습니다.

SCE-TTS와 관련한 최신 정보는 위 주소를 참고해주세요!

아래의 내용은 이전 문서 내용입니다.


⚠️ SCE-TTS 프로젝트는 현재 PoC 단계로, 아직 완전히 내용이 정리되지 않았습니다.

SCE-TTS의 핵심 기능은 모두 구현되었고 정상적으로 동작하지만, 아직 상업적으로 사용할만큼 다듬어지지는 않은 상태이니 참고해주세요.


SCE-TTS 프로젝트는 자신의 목소리로 문장을 읽어주는 TTS(Text-To-Speach, 텍스트 음성 변환)를 만드는 프로젝트입니다.
이 문서에서는 SCE-TTS를 직접 사용하여 누구나 자신만의 TTS를 만들어보는 방법에 대한 가이드를 제공합니다.
최대한 컴퓨터에 대한 전문 지식 없이도 따라해볼 수 있도록 상세하게 작성하여 누구나 자신만의 TTS를 만들 수 있도록 돕는 것이 목표입니다.

아래 링크로 접속하고 문서의 최하단으로 스크롤을 내려 몇 가지 예시 문장을 합성한 음성 결과물을 들어보실 수 있습니다.
(오디오 플레이어가 보이지 않으신다면, 구글 계정으로 로그인하신 후 다시 접속해주세요.)

  • SCE-TTS: 음성합성 데모 Colab

1. 들어가며

개인이 자신의 목소리로 문장을 읽어주는 TTS를 만든다는건 참 어려운 일입니다.

  • 머신 러닝을 통해 TTS를 만들기 위해서는 수시간 분량의 음성 데이터가 필요하고, 이를 모두 혼자 녹음하는 것은 매우 고된 일입니다.
  • 머신 러닝 모델을 학습시키기 위한 컴퓨터를 구하는 과정과 실제 학습 진행에 투자해야 하는 시간도 많이 필요합니다.
  • 뿐만 아니라, 실제 머신 러닝 기술을 활용하고자 하더라도 컴퓨터와 머신 러닝 관련 지식이 부족한 사람에게는 TTS를 만들기 위한 기술의 진입 장벽이 높습니다.
  • 게다가 대부분의 관련 문서는 영어로 제공되고, 한국어 TTS 관련 문서는 찾기 어렵습니다.

저또한 제 목소리로 문장을 읽어주는 TTS를 만들기 위해 꽤 많은 시간을 투자해야 했습니다.

사실 저도 머신 러닝에 대해서는 문외한인지라, 정확히 어떻게 해야 TTS를 만들 수 있는지조차 확신하지 못하는 상황에서 SCE-TTS를 시작했습니다.

그리고 다행히도 고생 끝에 제 나름대로 만족스러운 TTS를 만들 수 있었고, 그 결과물을 SCE-TTS 프로젝트를 통해 공유하고자 합니다.

이 문서에서는 제가 실제로 사용한 데이터와 코드를 공개하고, 다른 분들도 이를 쉽게 따라하여 자신만의 TTS를 만들어보실 수 있도록 가이드를 제공합니다.

이 문서가 저처럼 자신의 목소리로 TTS를 만들어 사용하시고자 하는 분들에게 도움이 되면 좋겠습니다.

그리고, 이 문서에서는 머신 러닝 및 프로그래밍과 관련된 세부 사항에 대해서는 설명하지 않습니다.
이 문서를 읽으실 대다수의 분들이 흥미로워하지 않을 주제이기 때문입니다.

그래도 문서에 잘못된 부분이 있거나, 더 개선할 수 있는 점이 있으면 저에게 알려주시면 좋겠습니다 :)

2. 필요한 것

SCE-TTS 프로젝트에서는 자신이 직접 여러 문장을 읽으면서 목소리를 녹음하고, 녹음된 목소리를 머신 러닝으로 학습시켜 TTS를 만들게 됩니다.

위에서도 이야기했지만, 개인이 TTS를 제작할 때 가장 준비하기 어려운 것이 다음 세 가지입니다.

  • 음성 데이터 수집
  • 학습을 진행할 컴퓨터 확보
  • 잘 동작하는 한국어 TTS 머신 러닝 관련 코드

저는 TTS를 학습시키기 위해 약 3시간 가량의 음성 데이터를 녹음하여 학습을 진행했습니다.
(경험상 3시간 미만의 데이터로는 결과물이 만족스럽지 못했습니다.)

그러나 3시간 분량의 데이터를 녹음하기 위해 필요한 시간은 6시간 이상이라고 생각하셔야 합니다.
게다가 음성 데이터를 확보한다고 하더라도, 처음 부터 음성 데이터를 학습시킬 경우 학습이 완료될 때 까지 필요한 시간이 꽤 오래 필요합니다.

그래서 제가 머신 러닝에 사용한 약 세 시간 분량의 음성 데이터와, 학습된 TTS 모델을 누구나 자유롭게 이용하실 수 있도록 공개하기로 했습니다.
(데이터 공개와 관련한 세부 사항은 글 하단 라이선스를 참조해주세요.)
이 데이터를 바탕으로 학습을 진행하면, 필요한 음성 데이터 양과 학습 시간을 꽤 줄일 수 있을 겁니다.

또, 머신 러닝을 진행할 컴퓨터 확보 역시 큰 문제입니다.
기본적으로 머신 러닝은 Nvidia의 고성능 GPU를 사용하는데, 이 가격이 만만치 않기 때문입니다.

다행히도, 구글 코랩을 사용하면 고성능 GPU를 무료로 사용할 수 있습니다.
이 문서에서는 TTS에 필요한 머신 러닝 과정을 모두 구글 코랩을 사용하여 진행하는 방법을 소개합니다.

마지막으로 잘 동작하는 한국어 TTS 머신 러닝 관련 코드는 제가 실제 학습에 사용한 코드를 사용하실 수 있도록 해 두었습니다.

이제 TTS를 제작하기 위한 진입 장벽이 많이 낮아졌습니다!
정말로 다음 과정을 따라 직접 TTS를 제작하기 위해 필요한 준비물은 다음과 같습니다.

  • Windows 10와 마이크가 설치된 PC
  • Google 계정
  • Google 크롬 브라우저
  • 파일 압축 프로그램(반디집 추천!)

3. 음성 녹음

다음의 내용을 따라할 때, 아래 이미지를 클릭하여 튜토리얼 유튜브 영상을 참고하시면 더 좋습니다.

자신의 목소리로 TTS를 만들기 위해서는 먼저 자신의 목소리를 잘 녹음해야 합니다.
특히 이 가이드에서는 머신 러닝에 바로 사용할 수 있는 데이터로 바로 녹음할 수 있도록, Mimic Recording Studio라는 프로그램을 사용하여 녹음을 진행합니다.

그러나 Mimic Recording Studio의 원본 프로젝트는 한국어를 위해 개발되어 있지 않으므로, 바로 녹음을 진행할 수 있도록 수정한 버전을 사용할 것입니다.

또, Mimic Recording Studio는 일반적인 프로그램과 같이 exe 파일로 배포되지 않으므로, 실행 및 설치가 바로 되지 않고 '도커'라는 다른 프로그램이 필요합니다.

3.1. 도커 설치

도커는 도커 데스크탑 다운로드 페이지에서 다운로드 받으실 수 있습니다.
Windows (stable)을 받아서 기본 설정대로 설치를 진행하시면 됩니다.

만약 사용하고 계신 운영체제가 Windows 10 Home일 경우, 설치 과정에서 WSL2 관련 경고나 오류가 나올 수 있는데, 오류 설명을 잘 읽어보시고 설명 그대로 진행하시면 큰 문제 없이 설치하실 수 있을 겁니다.
(잘 모르겠으면 위 동영상을 참고해주세요.)

만약 사용하고 계신 운영체제가 Windows 10 Pro, Enterprise, Education일 경우, 윈도우의 가상화 기능과 Hyper-V 기능이 활성화되어 있어야 합니다.
이 경우 Windows에서 Docker 사용하기의 설명을 참고해주세요.

도커의 처음 설치 및 실행 과정은 약 10분 정도 소요됩니다.

3.2. Mimic Recording Studio 설치 및 실행

앞으로 진행할 내용에 맞게 수정된 Mimic Recording Studio는 아래 링크에서 내려받으실 수 있습니다.

https://github.com/sce-tts/mimic-recording-studio/archive/master.zip

내려받은 파일을 압축을 해제한 상태에서 start-windows.bat 파일을 실행하면 명령 프롬프트가 실행되고, Mimic Recording Studio을 자동으로 설치하고 실행하게 됩니다.
(처음 설치 과정에서는 약 15분가량 소요될 수 있으며, 다음 실행부터는 약 5분 내로 실행할 수 있습니다.)

명령 프롬프트 중간에 You can now view mimic-recording-studio in the browser.라는 메시지가 출력되면, http://localhost:3000/에 접속하여 mimic-recording-studio를 사용할 수 있습니다.

이 때, Mimic Recording Studio 접속은 반드시 Google 크롬 브라우저로 접속하셔야 합니다.
다른 브라우저에서는 약간 버그가 있는 것 같습니다.

3.3. Mimic Recording Studio 사용방법

Mimic Recording Studio의 첫 접속시에는 사용자 계정을 생성하게 되는데, 사용자 이름은 큰 의미가 없으므로 아무렇게나 입력하고 넘어가시면 됩니다.

단, Mimic Recording Studio는 계정 정보를 브라우저에 저장하므로, 한 번 녹음을 시작했다면, 다른 브라우저에서는 녹음을 이어서 할 수 없습니다.
반드시 처음 접속하여 녹음한 브라우저로 계속하여 녹음을 진행하셔야 합니다.

녹음 페이지에 처음 접속하면 브라우저가 마이크 사용 권한을 요청하게 됩니다.
이때, 사용하실 마이크를 선택하여 권한을 허용해주세요.

녹음 화면 정 중앙에는주황색으로 읽어야 할 문장이 표시됩니다. 문장 녹음은 대략 다음과 같은 순서로 진행됩니다.

  1. 스페이스바를 누르고 녹음을 시작하고, 화면에 표시된 문장을 읽습니다.
  2. ESC를 눌러 녹음을 정지합니다.
  3. R 키를 눌러 녹음이 정상적으로 잘 되었는지 확인합니다.
  4. 녹음이 마음에 들지 않으면, ESC를 한번 더 눌러 녹음된 내용을 제거한 후, 다시 1번부터 시작합니다.
  5. 녹음이 마음에 들면, 오른쪽 방향키를 눌러 녹음 내용을 저장하고 다음 문장으로 넘어갑니다.

녹음 과정이 조금 익숙해진다면, 4번 과정(녹음 확인)은 생략할 수 있습니다.

3.4. 음성 데이터셋 변환

Mimic Recording Studio로 음성 녹음을 충분히 수행했다면, 실제 머신 러닝에서 사용할 수 있는 파일 형식으로 녹음된 데이터를 변환해야 합니다.

녹음된 데이터를 변환하는 과정은 다음과 같습니다.

  1. 파일 탐색기로 Mimic Recording Studio의 start-windows.bat 파일이 있는 폴더를 엽니다.
  2. 폴더 내의 빈 공간을 키보드 시프트 키를 누른 상태로 우클릭합니다.
  3. 나타난 메뉴에서 여기에 PowerShell 창 열기 또는 여기에서 명령 프롬프트 창 열기를 선택합니다.
  4. 열린 PowerShell 창 또는 명령 프롬프트 창은 잠시 그대로 두고, 파일 탐색기에서 backend/audio_files 폴더를 엽니다.
  5. audio_files 폴더 내부에 존재하는 폴더 이름을 복사해둡니다.
    (예시: 110d3ec5-4a5a-0f63-a8a1-13345418c85b)
  6. 열린 PowerShell 창 또는 명령 프롬프트 창에 docker-compose run --rm backend generate_ljs_audio_text.py <복사한 폴더 이름>을 입력합니다.
    (예시: docker-compose run --rm backend generate_ljs_audio_text.py 110d3ec5-4a5a-0f63-a8a1-13345418c85b)
  7. 실행이 완료될 때까지 기다립니다.
  8. 위 과정을 완료하면, backend 폴더 내부에 filelists 폴더가 생성됩니다.

여기까지 완료하면 음성 데이터셋 변환 과정은 모두 완료가 됩니다.
이후 머신 러닝을 구글 코랩을 통해 진행하기 위해서 해당 파일을 구글 드라이브에 업로드하는 과정이 필요합니다.

참고로, 개인용 구글 드라이브는 약 15GB의 용량을 무료로 제공합니다.
일반적인 목적으로 사용하기에는 충분한 공간이기는 하지만, 실제 머신 러닝을 수행하고 그 결과물을 저장하기 위해서는 15GB의 용량은 조금 아슬아슬할 수 있습니다.
따라서, 가능하면 TTS 학습용 구글 계정을 따로 만들어서 사용하시는 것을 추천드립니다.

구글 드라이브에 해당 파일을 업로드하는 방법은 다음과 같습니다.

  1. filelists 폴더를 파일 압축 프로그램을 이용하여 filelists.zip 파일로 압축합니다.
  2. 구글 드라이브에 구글 크롬으로 접속합니다.
  3. 새로 만들기 -> 폴더 버튼을 눌러 드라이브 경로 최상단에 Colab Notebooks 폴더를 만듭니다.
  4. Colab Notebooks 폴더를 더블 클릭하여 폴더 내부로 이동합니다.
  5. 새로 만들기 -> 폴더 버튼을 눌러 Colab Notebooks 폴더 안에 data 폴더를 만듭니다.
  6. data 폴더를 더블 클릭하여 폴더 내부로 이동합니다.
  7. 압축한 filelists.zip 파일을 구글 크롬으로 드래그 앤 드랍하여 파일을 업로드합니다.
  8. 업로드가 정상적으로 완료될 때까지 기다립니다.

위 과정을 모두 완료하면 머신 러닝을 진행하기 위한 준비가 완료된 것입니다.

3.5. 녹음시 주의사항

  1. Mimic Recording Studio는 한번 저장한 녹음 내용을 삭제할 수 있는 기능을 제공하지 않습니다.
    따라서 잘못 녹음된 내용을 제거하시려면, 직접 녹음 파일을 찾아 삭제해야 합니다.
    파일 삭제는 Mimic Recording Studio가 설치된 폴더 내의 backend/audio_files/ 폴더에서 직접 WAV 파일을 찾아 지우시면 됩니다.
    (최근 생성된 파일 순으로 정렬하시면 찾기 더 쉽습니다.)
  2. SleepingCE Speech Dataset을 기반으로 학습을 진행하실 경우 약 1시간, 처음부터 학습을 진행하실 경우 최소 3시간의 음성 데이터가 필요합니다.
    음성 데이터의 총 길이는 Mimic Recording Studio 녹음 화면 좌상단에서 확인하실 수 있습니다.
  3. 문장을 읽을 때, 최대한 일정한 속도로 읽습니다.
    어느 문장만 길게 늘여서 읽고, 또 어느 문장은 아주 천천히 읽는다면 학습이 잘 되지 않을 수 있습니다.
  4. 문장부호인 물음표, 느낌표, 마침표는 분명히 구분해서 읽습니다.
  5. 전체 녹음 과정에서 입과 마이크의 간격을 일정하게 유지하고, 동일한 성량으로 읽습니다.
  6. 숨소리, 키보드소리, 에어컨소리 등 잡음이 최대한 들어가지 않도록 주의합니다.
    마이크는 우리에 귀로 들을 수 있는 소리를 모두 녹음한다고 생각하셔야 합니다.
    따라서 아주 작은 소음이라도 녹음 중간에 들어갔다면, 해당 녹음은 다시 진행하시는 편이 좋습니다.
  7. 여러 날에 걸쳐 녹음할 때에는, 다른 날에 녹음한 파일을 들어보며 최대한 비슷하게 읽습니다.
    특히 위 주의사항 중 3, 5번 항목을 신경써주세요.
  8. Mimic Recording Studio는 약간 버그가 있어서, 5문장 정도 녹음하면 정상적으로 동작하지 않습니다.
    따라서, 1~2문장을 녹음한 후에는 크롬을 새로고침해주시는 것이 좋습니다.
    이외에도 화면이 느려진다거나, 녹음이 자꾸 멈춘다거나 하는 문제가 있을 때마다 새로고침을 해주세요.

4. 머신 러닝 수행

다음의 내용을 따라할 때, 아래 이미지를 클릭하여 튜토리얼 유튜브 영상을 참고하시면 더 좋습니다.

내 목소리 AI 만들기 - nae mogsoli AI mandeulgi

일반적으로 TTS는 크게 두 가지 단계로 나뉘어 수행됩니다.

  1. 텍스트 문장을 Mel spectrogram으로 변환
  2. Mel spectrogram을 오디오 데이터로 변환

Mel spectrogram이란, 아무튼 대충 오디오의 주파수 데이터를 이쁘게 표현한 무언가? 라고만 생각하시면 될 것 같습니다.
(우리가 TTS를 만들기 위해 당장 이해할 필요는 없습니다!)

어쨌든, 앞으로 우리는 머신 러닝을 통해 위 두가지 과정을 수행하도록 학습을 진행할 것입니다.
1번 과정은 Glow-TTS로, 2번 과정은 Multi-band MelGAN으로 진행할 것입니다.

실제 진행 순서도 위와 동일하게 Glow-TTS의 학습을 먼저 진행하고, 그 다음 Multi-band MelGAN 학습을 진행합니다.
이러한 순서로 진행을 하는 이유는, Multi-band MelGAN의 경우 제 목소리로 미리 학습해 둔 결과물을 바로 사용해도 어느 정도는 다른 사람의 목소리에도 적용이 가능하기 때문입니다.
따라서, Glow-TTS만 먼저 학습을 진행해도, 제 목소리로 학습된 Multi-band MelGAN을 통하여 테스트를 수행할 수 있습니다.

그리고 Glow-TTS의 학습을 어느 정도 만족스러울 때까지 진행한 이후에 Multi-band MelGAN 학습으로 넘어가면, 더 완벽한 TTS 결과물을 얻으실 수 있을 겁니다.

4.1 Glow-TTS 학습

Glow-TTS 학습과 관련된 내용은 아래 링크의 내용을 참조하세요.

  • SCE-TTS: Glow-TTS 학습 Colab

4.2. Multi-band MelGAN 학습

Multi-band MelGAN 학습과 관련된 내용은 아래 링크의 내용을 참조하세요.

  • SCE-TTS: Multi-band MelGAN 학습 Colab

5. 음성 합성 테스트

다음의 내용을 따라할 때, 아래 이미지를 클릭하여 튜토리얼 유튜브 영상을 참고하시면 더 좋습니다.

학습된 결과를 통한 음성 합성 테스트는 아래 링크의 내용을 참조하세요.

  • SCE-TTS: 음성합성 데모 Colab

6. TTS 활용하기

다음의 내용을 따라할 때, 아래 이미지를 클릭하여 튜토리얼 유튜브 영상을 참고하시면 더 좋습니다.

성공적으로 학습이 완료됬다면, 이제 만들어진 TTS를 사용할 시간입니다!

SCE-TTS에서는 아래의 두가지 기능을 제공하는 TTS 서버를 제공합니다.

  • 텍스트를 입력하면 내 목소리로 읽어주는 웹 페이지
  • Twip 도네이션 메시지 기본 TTS를 내 목소리로 바꾸기

6.1. TTS 서버 설치 및 설정

SCE-TTS에서 제공하는 TTS 서버를 사용하기 위해서는 도커가 필요합니다.
(만약 설치가 되어있지 않다면 3.1. 도커설치를 참고하여 설치해주세요.)

TTS 서버는 아래 주소에서 내려받으실 수 있습니다.

https://github.com/sce-tts/tts-server/archive/master.zip

내려받은 파일을 압축을 해제하시고 update-server.bat 파일을 실행하면 명령 프롬프트가 실행되고, 서버를 실행하기 위한 파일들을 자동으로 설치합니다.

설치가 완료되면, 학습한 모델을 복사하여 다운받은 서버 폴더 내부의 data\models 폴더에 적절하게 배치합니다.

배치한 모델의 구조는 다음과 같아야합니다.

  • tts-server/
    • data/
      • models/
        • glow-tts/
          • config.json
          • G_3511.pth
        • mb-melgan/
          • checkpoints/
            • generator-667775.h5
          • config.yml
          • stats.npy
    • docker-compose.yml
    • Dockerfile
    • ...

(위 파일명의 숫자는 예시이므로, 자신이 학습한 체크포인트 번호를 그대로 쓰시면 됩니다.)

모델 파일 복사를 완료한 후, 메모장으로 docker-compose.yml 파일을 열고 TTS_GLOW_TTSTTS_MULTIBAND_MELGAN 부분의 숫자를 복사한 파일명의 숫자로 적절히 바꿔줍니다.

예를 들어, glow-tts의 G_6234.pth 파일과 mb-melgan의 generator-800000.h5 파일을 사용하시려면 다음과 같이 수정하신 후 저장해주세요.

- "TTS_GLOW_TTS=6234"
# - "TTS_FASTSPEECH2=600000"
- "TTS_MULTIBAND_MELGAN=800000"

6.2. TTS 서버 실행

다운받은 서버 폴더에서 start-server.bat 파일을 실행하면 명령 프롬프트를 통해 TTS 서버를 실행합니다.

명령 프롬프트에 INFO:werkzeug: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)라는 메시지가 출력되면, TTS 서버를 통해 음성 합성 기능을 사용할 수 있습니다.

만약 서버를 종료하시려면 실행된 명령 프롬프트에서 Ctrl+C 키를 눌러 종료할 수 있습니다.

정상적인 방법으로 서버가 종료되지 않을 때에는 kill-server.bat 파일을 실행하여 강제로 서버를 종료할 수 있습니다.

6.3. 입력한 텍스트를 음성으로 듣기

TTS 서버가 실행된 컴퓨터에서 웹 브라우저로 http://localhost:5000/에 접속하면 입력한 텍스트를 음성으로 들을 수 있는 페이지가 표시됩니다.

페이지 상단 입력 칸에 음성으로 듣고자 하는 내용을 입력하고, "Infernce" 버튼을 클릭하면 음성이 재생됩니다.
(컴퓨터 성능에 따라 첫 음성 재생까지 2~5초 정도 걸립니다.)

이 페이지에서 제공하는 기능은 다음과 같습니다.

  • 여러 줄의 문장을 입력하면 자동으로 이어서 합성하여 재생
  • 음성 재생을 중단하려면 "Stop" 버튼을 클릭
  • infer on Enter 항목을 ON으로 조정하면, 입력 창에서 엔터 키를 누르면 즉시 음성 재생후 텍스트 삭제(채팅하듯이 음성 합성 가능)
  • infer on Enter 항목 우측 숫자를 키워 볼륨 배율 조절 가능(2 일 경우 2배 크기로 재생)

6.4. Twip 도네이션 메시지 TTS 대체

Twip은 트위치 스트리머를 위한 오버레이 도구로, 주로 방송 후원 등의 기능을 위해 주로 사용되며, 특히 방송 후원 메시지를 TTS로 읽어주는 기능이 매우 인상적입니다.

이러한 Twip의 TTS 기능은 여러 목소리로 사용할 수 있지만, 기본적으로는 구글의 Speech API를 사용하고 있습니다.

SCE-TTS의 TTS 서버는 Twip에서 사용하는 구글 Speech API 음성을 내 목소리로 변경해주는 기능을 제공합니다.

이 기능을 사용하시려면, 방송 송출용 프로그램(OBS, Xsplit 등)을 실행하는 컴퓨터에서 TTS 서버를 실행하고, Twip의 Alert Box URL을 다음 예시와 같이 바꿔서 사용해주시면 됩니다.

Original - https://twip.kr/widgets/alertbox/53cr37c0d3
           ^^^^^^^^^^^^^^^
Changed  - http://localhost:5000/widgets/alertbox/53cr37c0d3
           ^^^^^^^^^^^^^^^^^^^^^

(httpshttp로 바꾸는 것을 잊지 마세요!)

변경된 주소가 정상적으로 동작하는지 확인하시려면, Twip 대시보드의 알람 테스트 기능을 사용하실 수 있습니다.

해당 주소를 변경하여 사용하시면, TTS 서버가 실행중이지 않을 때에는 Twip 알람이 표시되지 않을 수 있으니 주의해주세요.
기존 주소 역시 그대로 사용하실 수 있으니, TTS 서버를 사용하지 않으실 때에는 기존 주소를 사용해주시면 됩니다.

7. 마치며

축하합니다!

여기까지 문서의 내용을 잘 따라하셨다면, 여러분들은 자신만의 TTS를 완성하고 사용하실 수 있을 것입니다.

그러나 아마 위의 모든 과정이 순탄하게 잘 되지는 않으셨을 겁니다. 만약 괜찮으시다면, 이 문서에서 어려웠던 부분과 해결했던 방법을 댓글로 남겨주세요.

만약 따라하시는 과정에서 문제가 생기셨다면, 이 문서 아래에 댓글을 남겨주세요. 다른 사람들이 여러분의 문제를 도와줄 수 있고, 또 다른 사람이 동일한 문제를 겪고 있을 때 참고할 수도 있을겁니다.

제 딴에는 최대한 알기 쉽게 설명하려고 노력했습니다만, 사실 위 내용을 보고 한번에 따라하는 것이 어렵다는 사실을 저도 잘 알고 있습니다.

그래서 저는 위의 모든 과정에 대해 추가로 동영상 가이드를 제작할 계획을 세우고 있습니다.
만약 위 내용을 보고 따라하시다가 포기하신 분들이 계시더라도, 동영상 가이드를 통해 다시 시작하실 수 있으면 좋겠습니다.


라이선스

SCE-TTS 프로젝트는 많은 다른 분들이 고생하여 연구하신 내용과 코드를 바탕으로 진행되었습니다.
사실 제가 직접 작성한 코드는 전체 코드 내용중 극히 일부로, 대부분은 훌륭한 연구자들의 결과물입니다.

한국어 음성 데이터를 녹음하기 위해 사용한 문장 데이터는 한국정보화진흥원의 AI Hub에서 제공하는 텍스트 데이터를 이용하여 구성했으며, 약 3시간 정도의 제 음성만으로는 Multi-band MelGAN을 만족스럽게 학습시킬 수 없었으므로, Mozilla Common Voice의 데이터를 추가적으로 사용했습니다.

SCE-TTS 프로젝트에서 제공하는 데이터는 상업적인 목적을 포함한 모든 목적으로 누구나 자유롭게 이용 가능합니다.
(의무 사항은 아니지만, 데이터의 출처를 남겨주시면 더 좋습니다!)

SCE-TTS 프로젝트에서 공개적으로 제공하는 데이터는 다음과 같습니다.

  • 음성 데이터 구축을 위한 한국어 코퍼스
  • SleepingCE Speech Dataset
  • SleepingCE Speech Dataset 사전 학습 모델

SCE-TTS 프로젝트에서 제공하는 데이터는 다음과 같은 데이터를 활용하여 만들어졌으므로, 다음 데이터들의 라이선스를 확인하고 준수하시기 바랍니다.

  • 한국정보화진흥원 AI Hub
    • 한국어 대화 텍스트 데이터
    • 한국어-영어 번역(병렬) 말뭉치 텍스트 데이터
    • (세부 라이선스는 각 데이터의 다운로드 페이지에서 확인 가능)
  • Mozilla Common Voice
    • 영어 데이터 셋
    • (CC0로 배포됨)

이 문서에서 사용한 코드의 원 출처는 다음과 같습니다.

  • g2pK: g2p module for Korean
  • Glow-TTS: A Generative Flow for Text-to-Speech via Monotonic Alignment Search
  • Mimic Recording Studio
  • TensorflowTTS: Real-Time State-of-the-art Speech Synthesis for Tensorflow 2

또, 이 문서에서 직접적으로 사용한 모든 코드는 다음 링크에서 확인하실 수 있습니다.

  • SCE-TTS repo
  • SCE-TTS: Glow-TTS 학습 Colab
  • SCE-TTS: Multi-band MelGAN 학습 Colab
  • SCE-TTS: 음성합성 데모 Colab