Lure-TTS 및 Lure-Turbo: 200달러 미만으로 학습시킨 4배 빠른 600M 음성 모델(태그, 방향성, 음성 복제 지원)
Lure-TTS and Lure-Turbo: 600M voice models to run 4x faster than real time, with inline (tags), direction, and voice cloning. Trained for under $200.
핵심 요약
200달러 미만의 비용으로 학습시킨 고효율 음성 합성 모델 Lure-TTS와 Turbo 버전을 공개했습니다.
- 고효율 모델 — 600M 파라미터로 실시간 대비 4배 빠른 속도 구현
- 학습 비용 절감 — 200달러 미만의 예산으로 효율적인 모델 튜닝 성공
- 다양한 기능 — 인라인 태그, 감정 표현, 음성 복제 기능 지원
- 범용 엔진 — CUDA, Mac, CPU 환경에서 모두 작동하는 통합 엔진 제공
huggingface.co
원문 사이트로 이동
RLVR, OPD, multi-teacher OPD 같은 최신 모델 학습 기법들을 써서 Qwen3-TTS를 파인튜닝해 Lure TTS를 만들었다.
목표는 간단했다. 음성 비서로 쓸 때 듣다가 혈압 안 오를 정도로 빠르고 가벼운 TTS 모델을 만드는 거였다. 솔직히 말하면, 뭐 좀 돌릴 때마다 거대한 GPU 꺼내기 귀찮아서 성능 좋고 빠른 모델이 필요했던 게 제일 컸다.
일단 제일 먼저 한 건, YODAS랑 Open Yap 샘플 데이터 싹 다 갈아엎으려고 강도, 이벤트(웃음, 울음, 한숨, 침 삼키는 소리 등), 감정, 방향성을 잡아내는 분류기를 학습시켜서 라벨링 데이터를 정제했다.
그다음엔 Qwen 3 TTS 0.6B 모델이 태그를 그냥 그대로 읽어버리는 문제가 있어서, 새로운 태그를 제대로 학습시키려고 SFT 단계를 거쳤다.
그다음 계획은 multi-teacher OPD였는데, 각 기술(음성 복제, 방향성 이해, 텍스트 태그 등)을 따로따로 학습시킨 다음에 마지막에 on-policy distillation으로 모든 티처 모델을 하나로 합치는 방식이었다.
처음엔 강건성(robustness)이랑 화자 유사도(speaker similarity)를 위해 티처 모델들을 학습시켰는데, 합치는 과정에서 화자 유사도 쪽 모델이 더 마음에 들더라.
그 뒤로는 속도에 미쳐서 12레이어짜리 300M 모델을 만들어봤는데, 소리가 좀 깡통 소리 나고 별로였다. 근데 15패스 코드 예측기를 3패스로 줄여버리면 훨씬 빨라지겠다는 생각이 들더라. 그래서 지금 체크포인트에서 OPD를 써서 Turbo 모델을 학습시켰더니 속도가 훨씬 잘 나왔다.
^ 참고로 이거 RTF가 0.14 나오는데, 5B짜리 Fish S2 Pro가 0.195인 거 생각하면 화자 유사도(ECAPA 0.699)는 그대로 유지하면서 속도는 훨씬 빠른 거다.
학습 비용은 200달러도 안 들었고, RTX PRO 6000보다 좋은 GPU는 쓰지도 않았다. (RTF 테스트할 때만 H100 씀)
지금은 (laugh: big)이나 (whispering) 같은 태그를 긴 문장에서도 잘 먹히게 하고, 감정 전환이나 자유로운 의역까지 가능하게 만들려고 작업 중이다. 태그 모델도 더 좋게 만들어서 전체 과정을 처음부터 다시 돌려볼 생각이다.
아, 그리고 faster-qwen3-tts(CUDA), mlx-audio(Mac), audio.cpp(CPU) 기반으로 만든 엔진(이름도 Lure-TTS)도 공개했다.
같은 4090에서 qwen-tts 레퍼런스 코드 돌리는 거랑 비교해보면, 첫 오디오 출력까지 10.6초 걸리던 게 0.17초로 줄었고, 전체적으로도 5배 정도 빠르다(RTF 0.53 vs 2.54). 0.32초 단위로 스트리밍하고, CUDA 그래프 쓰고, 요청 8개까지 한 번에 배치 처리하니까 가능한 수치다.
이 엔진 하나로 Mac, NVIDIA GPU, CPU 어디서든 Python API, CLI, OpenAI 호환 서버를 통해 Lure, Lure Turbo, 그리고 모든 Qwen3-TTS 12Hz 체크포인트를 돌릴 수 있다.
(이거 만든 이유는 0.6B 모델에서도 음성 방향성 제어가 가능하게 하고, Lure랑 Turbo 모델에 최적화된 설정을 쓰기 위해서다.)
학습 코드: https://github.com/smirki/lure-train
Lure TTS 엔진: https://github.com/smirki/lure-tts
솔직히 이 분야는 아직 배우고 연습하는 단계다. 결과물 평가해주거나 체크포인트 가지고 놀아볼 사람 있으면 연락 줘! (컴퓨팅 자원이나 연구 아이디어 있는 사람도 환영!)
