대화 시나리오를 위해 특별히 설계된 생성형 음성 모델로, 중국어와 영어가 혼합된 입력과 다중 화자 기능을 지원합니다.
ChatTTS - 전문 대화 시나리오 텍스트 음성 변환 모델
프로젝트 개요
ChatTTS는 2noise 팀에서 개발한 대화 시나리오에 특화된 생성형 텍스트 음성 변환(TTS) 모델입니다. 이 프로젝트는 GitHub에서 35,000개 이상의 별을 획득했으며, 현재 가장 인기 있는 오픈 소스 TTS 프로젝트 중 하나입니다.
프로젝트 주소: https://github.com/2noise/ChatTTS
개발팀: 2noise
오픈 소스 라이선스: AGPLv3+ (코드) / CC BY-NC 4.0 (모델)
주요 지원 언어: 중국어, 영어
ChatTTS의 설계 목표는 LLM 어시스턴트와 같은 대화 애플리케이션에 자연스럽고 유창한 음성 상호 작용 경험을 제공하는 것입니다. 기존 TTS 모델에 비해 대화 시나리오에서 더욱 뛰어난 성능을 보입니다.
핵심 기능 및 특징
🎯 대화 최적화 설계
- 대화 시나리오에 최적화: 챗봇, LLM 어시스턴트 등 대화 애플리케이션을 위해 특별히 최적화되었습니다.
- 자연스러운 대화 경험: 생성된 음성이 더욱 자연스럽고 유창하여 사람과 기계 간의 대화 시나리오에 적합합니다.
- 상호 작용형 대화: 다중 턴 대화에서 음성의 일관성을 지원합니다.
🎭 다중 화자 지원
- 다중 화자 능력: 여러 화자 간의 전환을 지원하여 다중 역할 대화를 구현합니다.
- 화자 샘플링: 가우시안 분포에서 임의로 화자 특징을 샘플링할 수 있습니다.
- 음색 제어: 특정 음색을 사용자 정의하고 고정하여 역할 일관성을 유지할 수 있습니다.
🎵 정교한 운율 제어
- 웃음 제어: 다양한 정도의 웃음 효과를 추가할 수 있습니다.
[laugh]
,[laugh_0-2]
- 멈춤 제어: 음성에서 멈춤과 간격을 정확하게 제어합니다.
[uv_break]
,[lbreak]
,[break_0-7]
- 어조 제어: 구어체 정도를 조절할 수 있습니다.
[oral_0-9]
- 감정 표현: 어조 변화를 포함한 세분화된 운율 특징을 예측하고 제어할 수 있습니다.
🌐 다국어 지원
- 중국어-영어 혼용: 중국어와 영어 혼용 입력을 기본적으로 지원하며, 언어 태그가 필요하지 않습니다.
- 언어 적응: 다양한 언어의 텍스트 내용을 자동으로 식별하고 처리합니다.
- 향후 확장: 더 많은 언어를 지원할 계획입니다.
⚡ 기술적 장점
- 첨단 아키텍처: Bark, Valle 등 첨단 기술을 참고하여 자가 회귀 모델 아키텍처를 기반으로 합니다.
- 운율 우위: 운율 표현 측면에서 대부분의 오픈 소스 TTS 모델을 능가합니다.
- 고품질 사전 훈련: 주 모델은 10만 시간 이상의 중국어 및 영어 오디오 데이터로 훈련되었습니다.
- 오픈 소스 친화적: 연구용으로 40,000시간의 사전 훈련된 기본 모델을 제공합니다.
모델 사양 및 성능
훈련 데이터
- 주 모델: 10만 시간 이상의 중국어 및 영어 오디오 데이터로 훈련
- 오픈 소스 버전: 4만 시간 사전 훈련 모델 (SFT 미적용)
- 데이터 출처: 공개적으로 사용 가능한 오디오 데이터 소스
성능 지표
- GPU 요구 사항: 30초 오디오 생성에 최소 4GB GPU 메모리 필요
- 생성 속도: 4090 GPU에서 초당 약 7개의 의미 토큰 생성
- 실시간 팩터(RTF): 약 0.3
- 오디오 품질: 24kHz 샘플링 레이트 출력
하드웨어 요구 사항
- 최소 사양: 4GB+ GPU 메모리
- 권장 사양: RTX 3090/4090 등 고급 그래픽 카드
- CPU: 멀티 코어 프로세서 가속 지원
- 메모리: 16GB+ 시스템 메모리 권장
설치 및 사용
빠른 설치
# 프로젝트 복제
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
# 의존성 설치
pip install --upgrade -r requirements.txt
# 또는 conda 환경 사용
conda create -n chattts python=3.11
conda activate chattts
pip install -r requirements.txt
기본 사용 예시
import ChatTTS
import torch
import torchaudio
# 모델 초기화
chat = ChatTTS.Chat()
chat.load(compile=False) # True로 설정하면 더 나은 성능을 얻을 수 있습니다.
# 텍스트 음성 변환
texts = ["안녕하세요, ChatTTS입니다.", "Hello, I am ChatTTS"]
wavs = chat.infer(texts)
# 오디오 파일 저장
for i, wav in enumerate(wavs):
torchaudio.save(f"output_{i}.wav", torch.from_numpy(wav).unsqueeze(0), 24000)
고급 제어 기능
# 임의 화자 샘플링
rand_spk = chat.sample_random_speaker()
# 추론 매개변수 설정
params_infer_code = ChatTTS.Chat.InferCodeParams(
spk_emb=rand_spk, # 화자 임베딩
temperature=0.3, # 온도 매개변수
top_P=0.7, # top-P 샘플링
top_K=20, # top-K 샘플링
)
# 텍스트 개선 매개변수 설정
params_refine_text = ChatTTS.Chat.RefineTextParams(
prompt='[oral_2][laugh_0][break_6]', # 운율 제어 추가
)
# 음성 생성
wavs = chat.infer(
texts,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code,
)
활용 시나리오
🤖 AI 어시스턴트 및 챗봇
- LLM 대화 시스템의 음성 출력
- 스마트 고객 서비스 시스템
- 가상 어시스턴트 애플리케이션
📚 교육 및 훈련
- 온라인 교육 플랫폼
- 언어 학습 애플리케이션
- 오디오북 제작
🎬 콘텐츠 제작
- 팟캐스트 제작
- 비디오 더빙
- 오디오 콘텐츠 생성
🏢 기업 애플리케이션
- 회의 요약 브리핑
- 공지 사항 음성화
- 접근성 지원 기능
기술 아키텍처
핵심 구성 요소
- 텍스트 인코더: 입력 텍스트의 의미 이해 처리
- 운율 예측기: 음성의 운율 특징 예측 및 제어
- 보코더: 특징을 고품질 오디오 파형으로 변환
- 화자 인코더: 다중 화자 특징 임베딩 처리
모델 특징
- 자가 회귀 아키텍처: Transformer 기반의 자가 회귀 생성 모델
- 엔드 투 엔드 훈련: 통합된 엔드 투 엔드 훈련 프레임워크
- 다중 모달 융합: 텍스트, 운율, 화자 정보의 효과적인 융합
주의 사항 및 제한 사항
사용 제한
- 학술 용도: 게시된 모델은 학술 연구용으로만 사용 가능
- 상업적 제한: 상업적 또는 불법적인 용도로 사용할 수 없음
- 윤리적 고려: 악의적인 사용을 방지하기 위해 고주파 노이즈 추가
기술적 제한
- 오디오 길이: 긴 오디오에서 품질 저하가 발생할 수 있음
- 계산 요구 사항: 높은 GPU 계산 리소스 필요
- 언어 지원: 현재 주로 중국어 및 영어 지원
자주 묻는 질문
- 생성 속도: 하드웨어 구성 및 매개변수 조정을 통해 개선 가능
- 오디오 품질: MP3 압축 형식이 최종 품질에 영향을 미칠 수 있음
- 안정성: 자가 회귀 모델에서 불안정한 출력이 발생할 수 있음
결론
ChatTTS는 대화 시나리오에 특화된 TTS 모델로서 다음과 같은 측면에서 뛰어난 성능을 보입니다.
🎯 전문성: 대화 시나리오에 특화되어 챗봇, AI 어시스턴트 등 애플리케이션에서 뛰어난 성능을 발휘합니다.
🚀 기술적 첨단성: 최신 딥러닝 기술을 채택하여 운율 제어 및 다중 화자 지원 측면에서 선도적입니다.
🌟 오픈 소스 가치: 완전한 오픈 소스 솔루션을 제공하여 고품질 TTS 기술의 사용 장벽을 낮춥니다.
🤝 커뮤니티 활성화: 활발한 개발자 커뮤니티와 풍부한 생태계 리소스를 보유하고 있습니다.
⚡ 실용성: 기본 사용부터 고급 제어까지 완벽한 기능을 제공하여 다양한 수준의 요구 사항을 충족합니다.
ChatTTS의 출현은 대화 시나리오 전용 TTS 모델의 공백을 메우고 더욱 자연스러운 사람과 기계 간의 음성 상호 작용 경험을 구축하는 데 강력한 기술 지원을 제공합니다. 기술의 지속적인 발전과 커뮤니티의 지속적인 기여에 따라 ChatTTS는 음성 합성 분야에서 점점 더 중요한 역할을 수행할 것이라고 믿습니다.