[faster-qwen3-tts] CustomVoice/VoiceDesign 지원, CLI, PyPI 배포, 스트리밍 UX 개선
PR 링크: andimarafioti/faster-qwen3-tts#13 상태: Merged | 변경: +1016 / -37
들어가며
이 PR은 faster-qwen3-tts의 가장 큰 기능 확장이다. 기존에는 voice cloning(참조 오디오 기반)만 지원했지만, Qwen3-TTS의 세 가지 모드를 모두 지원하도록 확장한다: CustomVoice(사전 정의 화자 ID), VoiceDesign(텍스트 지시 기반), 그리고 완전한 CLI 도구를 추가한다.
핵심 코드 분석
CLI 서브커맨드 구조
# faster_qwen3_tts/cli.py (새 파일, 370줄)
def main():
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
# Voice cloning (참조 오디오)
clone_parser = subparsers.add_parser("clone")
clone_parser.add_argument("--ref-audio", required=True)
# CustomVoice (사전 정의 화자)
custom_parser = subparsers.add_parser("custom")
custom_parser.add_argument("--speaker", type=str)
custom_parser.add_argument("--list-speakers", action="store_true")
# VoiceDesign (텍스트 지시)
design_parser = subparsers.add_parser("design")
design_parser.add_argument("--instruct", required=True)
# Server 모드 (모델 상주)
serve_parser = subparsers.add_parser("serve")
CustomVoice 벤치마크 추가
# benchmarks/custom_voice.py (새 파일)
MODEL_ID = f'Qwen/Qwen3-TTS-12Hz-{MODEL_SIZE}-CustomVoice'
speakers = model.model.get_supported_speakers()
speaker = speakers[0]
# TTFA + throughput 측정
for chunk_size in [4, 8, 12]:
gen = model.generate_custom_voice_streaming(
text=text, speaker=speaker, language=language,
chunk_size=chunk_size, max_new_tokens=512,
)
결과: 0.6B CustomVoice RTF=5.53, TTFA=154ms (RTX 4090)
flash-attn 경고 억제
import warnings
warnings.filterwarnings("ignore", message=".*flash.*attn.*")
왜 이게 좋은가
- 완전한 모드 커버리지: Qwen3-TTS의 3가지 모드를 모두 CUDA graph 가속으로 지원한다.
- 프로덕션 CLI:
faster-qwen3-tts clone/custom/design/serve4가지 서브커맨드로 즉시 사용 가능하다. - PyPI 배포:
pip install faster-qwen3-tts로 설치 가능하여 dependency로 활용할 수 있다.
정리
1016줄 추가라는 대규모 PR이지만 CLI, 3가지 모드 지원, 벤치마크까지 일관된 방향의 기능 확장이다. PyPI 배포로 라이브러리로서의 활용도를 크게 높였다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석과 해석에서 오류가 있을 수 있으니, 정확한 내용은 원본 PR을 참고해주세요.
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] AMD TensorDescType의 Shared Memory 크기 계산 수정
- 현재글 : [faster-qwen3-tts] CustomVoice/VoiceDesign 지원, CLI, PyPI 배포, 스트리밍 UX 개선
- 다음글 [faster-qwen3-tts] README 비스트리밍 RTF 수치 업데이트
댓글