GPT-SoVITS를 이용한 AI로 TTS 생성(전처리부터 파인튜닝 및 추론까지) 가이드

현재 노트: KR-P-120 c
상위 분류: KR-P-120

#취미 #TTS #Audio
프로젝트 링크: https://github.com/RVC-Boss/GPT-SoVITS

GPT-SoVITS v4를 기준으로 데이터전처리부터 추론까지의 과정을 직접 겪고, 트러블 슈팅한 기록입니다.

파인튜닝한 모델 기준으로 다음의 절차를 거치게됩니다.

초기환경 구축(라이브러리, exe파일, 모델파일 등)

  1. 데이터셋 구하기(.wav.mp3 등)
  2. 데이터셋 전처리(.list파일)
  3. 데이터셋 형식화(logs 폴더 및에 숫자 붙은 여러 파일및 폴더)
  4. 모델 훈련(ckptpth파일 생성)
  5. 추론으로 TTS 음성 생성

파인튜닝 하지않는경우 Part5 추론파트부터 확인하시면 됩니다.

GPT-SoVITS 일본어 음성 복제(Fine-tuning) 가이드: 설치부터 데이터 준비까지

이 가이드는 GPT-SoVITS WebUI를 사용하여 일본어 음성 복제 모델을 훈련하기 위한 기본적인 환경 설정과 데이터 전처리 과정을 설명합니다.

목표: 딥러닝 모델 훈련에 필요한 고품질의 음성-텍스트 쌍 데이터셋을 준비하는 것.


Part 1: 초기 환경 설정 및 모델 파일 준비

이 섹션에서는 Python 가상 환경(venv) 활성화 후 필요한 라이브러리 및 모델 파일을 설치하고 배치하는 방법을 안내합니다.

1. 필수 전제 조건

2. PyTorch (GPU 버전) 설치

가장 중요하고 까다로운 부분입니다. 일반적인 pip install torch는 CPU 버전을 설치하므로 주의하세요!

  1. CUDA Toolkit 버전 확인:
    • 터미널에서 nvcc --version 명령어를 입력하여 현재 시스템에 설치된 NVIDIA CUDA Toolkit 버전을 확인합니다. (예: release 12.4 또는 release 12.8)
  2. 기존 PyTorch 제거 (CPU 버전이 설치되어 있다면):
    • 터미널에서 pip uninstall torch torchvision torchaudio --yes 명령어를 실행합니다.
  3. PyTorch 공식 설치 (CUDA 버전에 맞춰):
    • PyTorch 공식 웹사이트에 접속합니다.
    • "Install PyTorch" 섹션에서 다음을 선택합니다:
      • PyTorch Build: Stable (최신 안정 버전)
      • Your OS: Windows
      • Package: Pip
      • Language: Python
      • Compute Platform: nvcc --version에서 확인한 CUDA 버전에 해당하는 것을 선택합니다 (예: CUDA 12.4 또는 CUDA 12.8).
    • 웹사이트에서 제공하는 pip install torch torchvision torchaudio ... --index-url ... 명령어를 복사하여 터미널에 붙여넣고 실행합니다.
      • 팁: 만약 PyTorch 2.7.0과 CUDA 12.8 조합에서 설치 오류가 발생하면, README.md에서 테스트된 PyTorch 2.5.1CUDA 12.4 조합을 시도하거나, 시스템의 CUDA Toolkit을 12.8로 업그레이드하는 것을 고려해 보세요.
  4. 시스템 재시작: 새로운 CUDA Toolkit을 설치했거나 드라이버를 업데이트했다면, 시스템을 반드시 재시작해야 변경 사항이 완전히 적용됩니다.
  5. PyTorch 설치 확인:
    • 터미널에서 python을 입력하여 Python 인터프리터를 실행합니다.
    • import torch
    • print(f"PyTorch Version: {torch.__version__}") (예: 2.7.0+cu128처럼 +cu가 붙어야 GPU 버전임)
    • print(f"CUDA available: {torch.cuda.is_available()}") (결과가 True여야 함)
    • exit()를 입력하여 종료합니다.

3. 기타 Python 패키지 설치

4. FFmpeg 실행 파일 배치

5. GPT-SoVITS 관련 모델 파일 다운로드 및 배치

Git LFS를 사용한 git clone이 가장 권장되는 방법입니다. 일일이 수동 다운로드는 비효율적입니다.

  1. Hugging Face 저장소 클론 (권장):

    • GPT-SoVITS 프로젝트의 상위 폴더로 이동합니다.
    • 터미널에서 다음 명령어를 실행합니다:
      git clone https://huggingface.co/lj1995/GPT-SoVITS
      
    • 이 명령어로 GPT-SoVITS 폴더가 생성되고, 그 안에 모든 코드 및 필수 모델 파일들이 GPT_SoVITS/pretrained_models와 같은 올바른 하위 경로에 자동으로 다운로드됩니다.
    • 주의: 만약 이전에 GPT_SoVITS/pretrained_models 폴더 안에서 git clone을 잘못 실행했다면, 중첩된 GPT-SoVITS 폴더를 삭제하고 올바른 상위 폴더에서 다시 클론하거나, 이미 다운로드된 파일들을 ...\GPT-SoVITS\GPT_SoVITS\pretrained_models 경로로 잘라내기-붙여넣기로 옮겨야 합니다.
  2. G2PW 모델 다운로드 및 배치 (중국어 TTS만 해당하지만, WebUI 시작 시 필수):

    • Hugging Face (추천) 또는 ModelScope에서 G2PWModel.zip 파일을 다운로드합니다.
    • 압축을 해제한 후 나오는 G2PWModel 폴더 전체를 GPT-SoVITS/GPT_SoVITS/text 경로에 배치합니다.
    • 팁: WebUI 실행 시 Downloading g2pw model... 메시지가 뜨면서 멈추면, 이 단계를 수동으로 진행합니다.
  3. Faster Whisper ASR 모델 다운로드 및 배치 (영어/일본어 ASR 사용 시):

    • Systran/faster-whisper-large-v3 페이지에서 다음 파일들을 다운로드합니다: config.json, model.bin, preprocessor_config.json, tokenizer.json, vocabulary.json.
    • 이 5개 파일을 GPT-SoVITS/tools/asr/models 폴더 안에 faster-whisper-large-v3라는 새 폴더를 만들고 그 안에 배치합니다. (예: tools/asr/models/faster-whisper-large-v3/model.bin)
    • ModuleNotFoundError: No module named 'faster_whisper' 또는 재다운로드 시도 시:
      • pip install faster-whisper로 라이브러리를 설치합니다.
      • 모델 파일의 폴더 구조를 위와 같이 tools/asr/models/faster-whisper-large-v3/로 변경했는지 확인합니다.
  4. UVR5 모델 다운로드 및 배치 (선택 사항, 음성/반주 분리 필요 시):

    • UVR5 Weights 페이지에서 모든 .pth 파일과 onnx_dereverb_By_FoxJoy 폴더를 다운로드합니다.
    • 이 모든 파일을 GPT-SoVITS/tools/uvr5/uvr5_weights 폴더에 배치합니다. (onnx_dereverb_By_FoxJoy 폴더는 통째로 넣습니다.)
    • 팁: 다른 Git 클론으로 lj1995/VoiceConversionWebUI 저장소를 통째로 받은 후, 그 안의 uvr5_weights 폴더만 잘라내어 붙여넣는 것이 편리합니다.

Part 2: 원본 오디오 데이터 준비 및 정제 (WebUI: "0-전처리 데이터셋 획득 도구" 탭)

이 섹션은 파인튜닝할 원본 오디오 파일(예: 17분짜리 MP3)을 모델 훈련에 적합한 '깨끗하고', '정확하게 텍스트와 매칭된', '적절한 길이'의 데이터셋으로 만드는 과정입니다. 이 단계의 품질이 최종 모델 성능에 결정적인 영향을 미칩니다. 최종적으로 각 클립의 대사가 적힌 .list파일과 각 클립의 .wav파일들을 얻게됩니다.

1. GPT-SoVITS WebUI 실행

2. 파인튜닝 대상 원본 오디오 준비

(선택 사항) UVR5 보컬 및 반주 분리 도구 (0a-UVR5 Vocal Separation Tool)

3. 음성 분할 도구 (0b-Speech Slicing Tool)

4. 음성 잡음 제거 도구 (0bb-Speech Denoising Tool)

5. 음성 인식 도구 (0c-Speech Recognition Tool - ASR)

6. 음성 텍스트 교정 및 주석 도구 (0d-Speech-to-Text Proofreading Tool) - 가장 중요!


Part 3: 데이터셋 형식화 및 특징 추출 (WebUI: "1-GPT-SoVITS-TTS" 탭 -> "1A-훈련 데이터셋 포맷팅 도구" 서브탭)

목적: 교정된 .list 파일과 오디오 클립들을 기반으로, GPT 및 SoVITS 모델 훈련에 필요한 다양한 특징(BERT, SSL, 시맨틱 토큰)들을 추출하고 형식화합니다.

1. WebUI 이동 및 설정

2. 데이터 형식화 실행

3. 트러블슈팅: KeyError: '' 발생 시 (재현될 경우)


Part 4: 모델 미세 조정 훈련 (WebUI: "1-GPT-SoVITS-TTS" 탭 -> "1B-Fine-Tuning" 서브탭)

목적: 준비된 형식화 데이터셋을 사용하여 SoVITS 모델과 GPT 모델을 훈련시킵니다. 여기서 최종 모델 파일(.pth, .ckpt)이 생성됩니다.

1. WebUI 이동 및 설정

2. SoVITS 모델 훈련

3. GPT 모델 훈련

4. 트러블슈팅: GPT 훈련이 너무 빠르게 종료될 경우 (예: 2분만에 끝남)


Part 5: 음성 추론 (Inference) (WebUI: "1-GPT-SoVITS-TTS" 탭 -> "1C-Inference" 서브탭)

목적: 훈련된 GPT 및 SoVITS 모델을 사용하여 새로운 일본어 텍스트를 입력하고, 참고 음성을 제공하여 특정 화자의 음성으로 새로운 음성을 합성합니다. 파인튜닝을 하던, 기본모델을 쓰던 음성샘플 3~10초의 음성파일은 필수이며 해당 샘플의 텍스트는 선택입니다. 기본 GPTSoVits모델을 사용시에는 훈련된 내용에서 샘플과 최대한 유사한 보이스가 생성되며, 파인튜닝의 경우 파인튜닝 데이터(강세, 숨소리, 어투 등)가 더 반영된 샘플기반의 보이스가 생성됩니다.
그래서 A라는 캐릭터를 파인튜닝한 경우

1. WebUI 이동 및 모델 선택

2. 참고 정보 및 합성할 텍스트 입력

3. 추론 설정 및 실행

4. 결과 확인 및 다운로드


추가 중요 주의사항: