Qwen3-TTS-1.7B-Base의 핵심 장점: 소형 모델의 실용적 음성 생성
기존 TTS 솔루션은 고비용 외주, 전문 녹음 필요, 기계적 음질 등으로 인해 사용이 제한적이었습니다. Qwen3-TTS-1.7B-Base는 4.3GB 크기의 경량 모델로 중급 GPU에서 원활하게 작동하며, 3초 내에 참조 음성 업로드 후 즉시 목소리 변환을 지원합니다. 97ms 미만의 지연 시간으로 자연스러운 음성 생성이 가능하며, 10개 언어(중·영·일·한·독·불·러·포·스·이)를 지원합니다. 이 가이드에서는 실제 구현에 집중하여 오늘부터 사용 가능한 방법을 단계별로 안내합니다.
환경 설정: 5분 내 완료
모델 배포에 복잡한 CUDA 컴파일이나 PyTorch 버전 조정이 필요하지 않습니다. 다음 단계를 따라 Ubuntu 22.04 환경을 준비하세요.
2.1 하드웨어 및 시스템 확인
다음 조건을 확인하세요:
- GPU: NVIDIA RTX 3060 이상 (VRAM ≥ 8GB)
- OS: Ubuntu 22.04 LTS
- CUDA: 12.1 버전 설치 (기본 지원 버전)
다음 명령어로 확인:
nvidia-smi
python3 --version # 3.11.x 버전 확인
2.2 필수 라이브러리 설치
다음 명령어로 라이브러리 설치:
pip install torch==2.3.1+cu121 torchvision==0.18.1+cu121 torchaudio==2.3.1+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
pip install gradio==4.41.0 numpy==1.26.4 librosa==0.10.2 ffmpeg-python==0.2.0
sudo apt install -y ffmpeg
2.3 모델 파일 다운로드
모델 파일을 다음 경로에 저장:
mkdir -p /opt/ai-models/Qwen/
cd /opt/ai-models/Qwen/
wget https://model-repo.example.com/qwen3-tts-1.7b-base.tar.gz
tar -xzf qwen3-tts-1.7b-base.tar.gz
wget https://model-repo.example.com/qwen3-tokenizer.tar.gz
tar -xzf qwen3-tokenizer.tar.gz
서비스 시작: 두 가지 접근 방식
3.1 웹 인터페이스 사용법
다음 명령어로 서비스 시작:
cd /opt/Qwen3-TTS-1.7B-Base
bash run_webui.sh
브라우저에서 http://로 접속 후 다음과 같은 작업을 수행합니다:
- 참조 음성 업로드 (WAV 16kHz, 3-10초)
- 참조 텍스트 입력 (음성 대응 텍스트)
- 목표 텍스트 입력 (생성할 문장)
- 언어 선택 및 생성 모드 설정
3.2 Python API 통합 예시
다음 코드로 간단한 API 호출 구현:
import httpx
import base64
def generate_voice(ref_path, target_text, lang="zh"):
with open(ref_path, "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode()
payload = {
"audio_data": f"data:audio/wav;base64,{audio_base64}",
"input_text": target_text,
"lang": lang,
"streaming": False
}
response = httpx.post(
f"http://{server_ip}:7860/synthesize",
json=payload,
timeout=30
)
if response.status_code == 200:
with open("output.wav", "wb") as f:
f.write(base64.b64decode(response.json()["audio"]))
return True
return False
# 사용 예시
generate_voice("/home/user/ref.wav", "오늘 날씨가 좋아요.", "zh")
실제 사례: 목소리 클론 생성
4.1 참조 음성 준비
3초 내외의 청결한 음성 샘플(16kHz WAV)을 준비합니다. 다음 조건을 준수하세요:
- 배경 소음 최소화
- 단일 채널, PCM 16비트
- 인간의 발화로 자연스러운 억양
4.2 웹 인터페이스를 통한 생성
- 참조 음성 업로드
- 참조 텍스트: "이것은 내 목소리 샘플입니다."
- 목표 텍스트: "Qwen TTS를 사용해 보세요. 매우 자연스럽습니다."
- "생성" 버튼 클릭
4-6초 후 생성된 음성이 재생됩니다.
4.3 배치 처리 예시
다중 사용자에게 맞춤형 메시지를 생성하는 스크립트:
names = ["홍길동", "이순신", "유관순"]
for name in names:
generate_voice(
"/opt/ai-models/ref_sample.wav",
f"안녕하세요, {name}님. Qwen TTS 서비스에 오신 것을 환영합니다.",
"zh"
)
주요 문제 해결
5.1 첫 실행 지연
모델 로딩 시 1-2분 소요는 정상입니다. 이후 재시작 시 10-15초 내 완료됩니다.
5.2 오류 발생 시 확인 사항
- 오디오 형식:
ffmpeg -i input.mp3 -ac 1 -ar 16000 -f wav output.wav로 변환 - 텍스트 길이: 200자 이내 권장 (초과 시 OOM 발생 가능성)
- GPU 메모리:
config.yaml에서batch_size를 1로 설정
5.3 서비스 안정화
systemd를 사용해 자동 재시작 설정:
[Unit]
Description=Qwen TTS Service
[Service]
ExecStart=/bin/bash -c 'cd /opt/Qwen3-TTS-1.7B-Base && ./run_webui.sh'
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target