ChatTTS
무엇인가
ChatTTS는 일상 대화용 음성을 합성하는 생성형 텍스트-투-스피치 모델이다. LLM 어시스턴트의 음성 출력 계층에 들어가는 것을 전제로 설계됐다. 저장소에는 알고리즘 인프라와 예제 코드가 들어 있고, 확장 사용자 제품은 커뮤니티가 관리하는 Awesome-ChatTTS 색인 저장소로 분리돼 있다. 학습 데이터는 중국어와 영어 오디오 10만 시간 이상이다.
어떻게 동작하나
처리 흐름은 텍스트에서 의미 토큰을 거쳐 오디오 토큰으로 가는 자기회귀 생성이다. 공개된 DVAE 인코더가 오디오를 토큰으로 바꾸고, vocos를 사전학습 보코더로 사용해 토큰을 파형으로 복원한다. 화자 통계는 spk_stats 파일로 배포되며 제로샷 추론 코드가 함께 공개돼 있다. 생성은 스트리밍 방식으로 이뤄지고, 커맨드라인 추론 결과는 ./output_audio_n.mp3로 저장된다.
무엇과 다른가
자기회귀 방식으로 TTS를 구성한다는 점에서 bark, XTTSv2, VALL-E와 같은 계열이다. 차이는 목표 장면에 있다. 이들 모델이 일반적인 음성 합성을 다루는 반면, ChatTTS는 대화체 운율과 다중 화자 상호작용에 맞춰져 있다. HuggingFace에 배포된 공개 버전은 SFT를 거치지 않은 4만 시간 사전학습 모델이다.
어떻게 쓰나
설치 경로는 PyPI 안정 버전, GitHub 최신 버전, 로컬 개발 모드 세 가지다. 설치 후 프로젝트 루트에서 WebUI를 실행하거나 커맨드라인으로 추론할 수 있다. Linux에서는 vLLM을 선택적으로 설치할 수 있다. TransformerEngine과 FlashAttention-2는 개발 목적 외에는 설치가 권장되지 않는다.
전제와 한계
지원 언어는 영어와 중국어이며 나머지는 예정 단계다. 30초 오디오 클립 생성에 최소 4GB GPU 메모리가 필요하고, 4090에서 초당 약 7개 의미 토큰을 생성하며 실시간 계수는 0.3 수준이다. 토큰 단위 제어는 [laugh], [uv_break], [lbreak] 세 가지로 제한된다. 코드는 AGPLv3+, 모델은 CC BY-NC 4.0 라이선스로 학술·연구 용도에 한정된다. 4만 시간 모델 학습 시 고주파 노이즈를 소량 섞고 MP3로 음질을 압축해 악용을 억제했다.
관련 논문 1
유사 도구
- fish-speech80개 이상 언어, 1천만 시간 오디오로 학습한 다국어 TTS 모델이다. Dual-AR 구조와 RL 정렬로 자연어 태그 기반 운율·감정 제어를 지원한다.
- VoxCPM토크나이저 없이 연속 음성 표현을 직접 생성하는 2B 파라미터 다국어 TTS 모델이다. 30개 언어와 음성 디자인, 48kHz 출력을 지원한다.
- sherpa-onnx음성 인식·합성·화자 분리·VAD·음원 분리를 ONNX Runtime 위에서 인터넷 없이 실행하는 C++ 추론 엔진이다. 12개 언어 바인딩과 NPU 백엔드를 포함한다.
- MoneyPrinterTurbo주제나 키워드 하나를 입력하면 LLM 대본 작성, TTS 음성, 스톡 영상 매칭, 자막·BGM 합성까지 자동으로 처리해 HD 숏폼 영상을 만드는 Python 도구다.
- openai-edge-ttsOpenAI TTS 엔드포인트를 흉내 내는 로컬 음성 합성 API 서버다. edge-tts를 백엔드로 써서 무료로 mp3·opus 등 오디오를 생성한다.