리눅스 환경에서 Qwen3-TTS-12Hz-1.7B-Base 모델 배포하기

개요

이 문서는 리눅스 시스템에서 고성능 음성 합성 모델인 Qwen3-TTS-12Hz-1.7B-Base를 빠르게 설치하고 실행하는 방법을 안내합니다. 이 모델은 단 3초의 샘플 음성을 기반으로 목소리를 복제할 수 있으며, 다양한 텍스트 입력에 대해 자연스러운 음성을 생성해줍니다.

특히 Ubuntu 기반의 리눅스 사용자를 중심으로 설명하며, 시스템 준비부터 의존성 설치, 모델 다운로드 및 서비스 구동까지 전 과정을 단계별로 소개합니다. GPU 메모리 부족 시 대처 방법도 함께 제공합니다.

시스템 요구사항

  • 운영체제: Ubuntu 18.04 이상 (또는 다른 Linux 배포판)
  • GPU: 최소 8GB VRAM 권장 (RTX 3070 이상 추천)
  • RAM: 최소 16GB 이상
  • 저장 공간: 최소 20GB 이상 여유 공간 필요

먼저 시스템 패키지를 업데이트합니다:

sudo apt update && sudo apt upgrade -y

필수 도구 설치:

sudo apt install -y wget curl git python3 python3-pip python3-venv

파이썬 가상환경 설정 및 의존성 설치

프로젝트용 가상 환경을 생성하고 활성화합니다:

python3 -m venv tts-env
source tts-env/bin/activate

CUDA 버전에 맞는 PyTorch 설치:

# CUDA 11.8용
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 또는 CUDA 12.1용
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

필요한 라이브러리 설치:

pip install qwen3-tts transformers accelerate soundfile

(선택 사항) 더 빠른 처리를 위한 FlashAttention 설치:

pip install -U flash-attn --no-build-isolation

모델 파일 다운로드

Hugging Face CLI를 통해 모델 다운로드:

pip install huggingface_hub
huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir ./tts_model

혹은 Git LFS 사용:

sudo apt install -y git-lfs
git lfs install
git clone https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-Base ./tts_model

완료 후 다음 파일들이 포함되어 있는지 확인하세요:

  • config.json
  • pytorch_model.bin 혹은 .safetensors
  • tokenizer 관련 설정 파일들

서비스 시작 및 테스트

웹 인터페이스 실행:

qwen-tts-demo ./tts_model --ip 0.0.0.0 --port 8000

브라우저에서 http://localhost:8000 으로 접속하면 UI를 사용할 수 있습니다.

직접 코드로 테스트하려면 아래 스크립트를 참고하세요:

import torch
from qwen_tts import Qwen3TTSModel
import soundfile as sf

# 모델 로드
model = Qwen3TTSModel.from_pretrained(
    "./tts_model",
    device_map="auto",
    torch_dtype=torch.float16,
)

# 샘플 오디오 경로와 텍스트 지정
ref_audio_path = "your_sample_audio.wav"
reference_text = "샘플 오디오의 원본 텍스트입니다."

# 음성 생성
input_text = "안녕하세요! 이것은 테스트 음성입니다."
audio_data, sr = model.generate_voice_clone(
    text=input_text,
    language="Korean",
    ref_audio=ref_audio_path,
    ref_text=reference_text,
)

# 결과 저장
sf.write("generated_output.wav", audio_data[0], sr)
print("음성이 성공적으로 생성되었습니다.")

VRAM 부족 문제 해결

VRAM이 충분하지 않은 경우 아래와 같은 방법들을 적용할 수 있습니다.

1. FP16 정밀도 사용

model = Qwen3TTSModel.from_pretrained(
    "./tts_model",
    device_map="auto",
    torch_dtype=torch.float16,
)

2. CPU 오프로딩 설정

model = Qwen3TTSModel.from_pretrained(
    "./tts_model",
    device_map="auto",
    offload_folder="./cpu_offload_cache",
)

3. 배치 크기 조절

audio_data, sr = model.generate_voice_clone(
    text=input_text,
    language="Korean",
    ref_audio=ref_audio_path,
    ref_text=reference_text,
    batch_size=1,
)

4. CPU 전용 실행

model = Qwen3TTSModel.from_pretrained(
    "./tts_model",
    device_map="cpu",
)

자주 발생하는 문제 및 해결법

문제해결 방법
CUDA 버전 불일치설치된 PyTorch와 CUDA 호환성 확인
VRAM 부족FP16 사용 또는 오프로딩 적용
모델 다운로드 실패wget 또는 aria2c로 재시도
라이브러리 충돌가상환경 초기화 및 최신 패키지 설치

태그: linux Qwen3-TTS text-to-speech voice-cloning PyTorch

6월 23일 02:55에 게시됨