본문으로 건너뛰기

[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.*")

왜 이게 좋은가

  1. 완전한 모드 커버리지: Qwen3-TTS의 3가지 모드를 모두 CUDA graph 가속으로 지원한다.
  2. 프로덕션 CLI: faster-qwen3-tts clone/custom/design/serve 4가지 서브커맨드로 즉시 사용 가능하다.
  3. PyPI 배포: pip install faster-qwen3-tts로 설치 가능하여 dependency로 활용할 수 있다.

정리

1016줄 추가라는 대규모 PR이지만 CLI, 3가지 모드 지원, 벤치마크까지 일관된 방향의 기능 확장이다. PyPI 배포로 라이브러리로서의 활용도를 크게 높였다.

참고 자료


이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석과 해석에서 오류가 있을 수 있으니, 정확한 내용은 원본 PR을 참고해주세요.

댓글

관련 포스트

PR Analysis 의 다른글