mirror of
https://github.com/RVC-Boss/GPT-SoVITS.git
synced 2025-09-29 00:30:15 +08:00
4.7 KiB
4.7 KiB
GPT-SoVITS only_tts
한국어/영어 전용 GPT-SoVITS TTS 라이브러리입니다. API 서버 없이 단순한 함수 호출만으로 TTS 기능을 사용할 수 있습니다.
지원 기능
- 언어: 한국어, 영어
- 모델: V4, V2Pro, V2ProPlus
- 출력: 고품질 음성 합성
- 의존성: 최소한의 패키지 (20개)
설치
1. 의존성 설치
pip install -r requirements.txt
2. 모델 다운로드
# 모든 모델 다운로드
python download_models.py --all
# V4 모델만 다운로드
python download_models.py --v4
# V2Pro 모델만 다운로드
python download_models.py --v2pro
# 기본 모델만 다운로드 (HuBERT, RoBERTa)
python download_models.py --base-models
# 사용 가능한 모델 정보 확인
python download_models.py --info
사용법
기본 사용 예시
from tts_simple import TTSEngine
# TTS 엔진 초기화
tts = TTSEngine(model="v4", device="cuda")
# 음성 생성
audio_data = tts.generate_speech(
text="안녕하세요, 테스트입니다.",
text_lang="ko",
prompt_text="안녕",
prompt_lang="ko",
ref_audio_path="reference.wav"
)
# 파일로 저장
tts.save_audio(audio_data, "output.wav")
영어 예시
# 영어 TTS
audio_data = tts.generate_speech(
text="Hello, this is a test.",
text_lang="en",
prompt_text="Hello",
prompt_lang="en",
ref_audio_path="reference_en.wav"
)
tts.save_audio(audio_data, "output_en.wav")
고급 설정
# 더 많은 옵션 사용
audio_data = tts.generate_speech(
text="긴 텍스트를 여러 부분으로 나누어 처리합니다.",
text_lang="ko",
prompt_text="긴 텍스트",
prompt_lang="ko",
ref_audio_path="reference.wav",
top_k=5,
top_p=1.0,
temperature=1.0,
speed_factor=1.0
)
API 참조
TTSEngine
__init__(model, device, is_half)
model
: 사용할 모델 ("v4", "v2pro", "v2proplus")device
: 디바이스 ("cuda", "cpu")is_half
: 반정밀도 사용 여부 (기본값: False)
generate_speech(text, text_lang, prompt_text, prompt_lang, ref_audio_path, **kwargs)
음성을 생성합니다.
필수 파라미터:
text
: 합성할 텍스트text_lang
: 텍스트 언어 ("ko", "en")prompt_text
: 참조 텍스트prompt_lang
: 참조 텍스트 언어ref_audio_path
: 참조 오디오 파일 경로
선택적 파라미터:
top_k
: Top-K 샘플링 (기본값: 5)top_p
: Top-P 샘플링 (기본값: 1.0)temperature
: 샘플링 온도 (기본값: 1.0)speed_factor
: 속도 조절 (기본값: 1.0)
save_audio(audio_data, output_path)
생성된 오디오를 파일로 저장합니다.
모델 정보
기본 모델 (필수)
- chinese-hubert-base: 다국어 음성 특징 추출 모델
- chinese-roberta-wwm-ext-large: 다국어 텍스트 특징 추출 모델
V4 모델
- s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt: V4 GPT 모델
- s2Gv4.pth: V4 SoVITS 모델
- vocoder.pth: V4 보코더 모델
V2Pro 모델
- s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt: V2Pro GPT 모델
- s2Gv2Pro.pth: V2Pro SoVITS 모델
- s2Gv2ProPlus.pth: V2ProPlus SoVITS 모델
- pretrained_eres2netv2w24s4ep4.ckpt: 화자 검증 모델
디렉토리 구조
only_tts/
├── README.md
├── requirements.txt
├── download_models.py
├── tts_simple.py
├── config_examples.py
├── configs/
├── pretrained_models/ # 다운로드된 모델들
│ ├── chinese-hubert-base/
│ ├── chinese-roberta-wwm-ext-large/
│ ├── gsv-v4-pretrained/
│ └── v2Pro/
└── src/
├── TTS_infer_pack/
├── text/
├── module/
├── feature_extractor/
└── AR/
주의사항
- 모델 이름: "chinese"가 포함된 모델명이지만, 실제로는 다국어 모델입니다.
- 참조 오디오: 고품질의 3-10초 길이 참조 오디오를 사용하세요.
- GPU 메모리: CUDA 사용 시 충분한 GPU 메모리가 필요합니다.
- 언어 혼합: 한 문장에 한국어와 영어를 혼합해서 사용할 수 있습니다.
문제 해결
일반적인 오류
- 모델을 찾을 수 없음:
python download_models.py --all
실행 - CUDA 메모리 부족:
device="cpu"
사용 또는is_half=True
설정 - 참조 오디오 오류: 3-10초 길이의 깔끔한 오디오 사용
성능 최적화
- GPU 사용:
device="cuda"
- 반정밀도:
is_half=True
(GPU에서만) - 배치 처리: 긴 텍스트는 자동으로 분할 처리됨
라이선스
GPT-SoVITS 프로젝트의 라이선스를 따릅니다.