ChatTTS

Text-to-SpeechCLIPython

★ 39,829주당 +33조회 5

무엇인가

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

유사 도구