본 프로젝트는 GPT-SoVITS를 활용하여 캐릭터 음성을 학습하고, 텍스트를 해당 캐릭터 음성으로 추론하는 음성 합성 시스템입니다.
캐릭터 종류 : 짱구, 케로로, 코난
GPT-SoVITS/
├── GPT_SoVITS/
│ ├── pretrained_models/ # 사전학습 모델 위치
│ ├── inference_cli.py # 추론 CLI
│ └── download.py # 기타 리소스 다운로드
├── webui.py # WebUI 실행 파일
├── requirements.txt # 의존 패키지 목록
└── logs/ # 학습 로그
- 데이터 유형 : 직접 수집한 음성 조각 파일
- 수집 대상 : 캐릭터별 음성 (케로로, 코난, 짱구)
- 파일 구성 : 3~10초 분량의 짧은 클립으로 구성
- 총 분량 : 캐릭터당 약 45분
-
SoVITS
- 배치 사이즈 : 1
- epochs : 10
- LoRA Rank : 32
-
GPT
- batch size : 7
- total epochs : 30
- Enable DPO training
입력 텍스트
저는 케롱별에서 온 케로로 중사라고 합니다. 전 퍼렁별 침략을 위해서 왔죠.
keroro_v4.mp4
- reference X
keroro_v2ProPlus_noReference.mp4
- reference O
keroro_v2ProPlus_Reference.mp4
입력 텍스트
안녕하세요. 제 이름은 코난, 탐정이죠. 오늘은 또 무슨 일이 벌어질까 궁금하네요.
conan_v4.mp4
- reference X
conan_v2ProPlus_noReference.mp4
- reference O
conan_v2ProPlus_Reference.mp4
입력 텍스트
안녕, 나는 짱구! 너도 액션가면 좋아해? 그럼 우리 흰둥이 산책 시키고 같이 액션가면 볼래?
jjanggu_v4.mp4
- reference X
jjanggu_v2ProPlus_noReference.mp4
- reference O
jjanggu_v2ProPlus_Reference.mp4
성능 순위
GPT-SoVITS V2ProPlus < GPT-SoVITS V4
-> GPT-SoVITS V4가 loss 수렴, 진동 폭, 음질에서 가장 우수한 성능을 보임
mkdir -p output
PYTHONPATH=/content/GPT-SoVITS \
python /content/GPT-SoVITS/GPT_SoVITS/inference_cli.py \
--gpt_model conan_v4-e30.ckpt \
--sovits_model conan_v4_e5_s3205_l32.pth \
--ref_audio conan1.wav \
--ref_text 1.txt \
--ref_language "韩英混合" \
--target_text target.txt \
--target_language "韩英混合" \
--output_path output
韩英混合는 한국어-영어 혼합을 의미하며, 필요 시inference_cli.py에 직접 지정해줘야 합니다.