Kitten-TTS 2: New Open-source SOTA 1.58 bit TTS (CPU-only with voice cloning, multilingual, emotion control)
Kitten-TTS 2 공개: CPU에서 실행하는 음성 복제·다국어 TTS 모델
KittenML이 17억 파라미터 TTS 모델 Kitten-TTS 2와 15M~80M 규모의 경량 모델을 공개했습니다. 음성 복제와 감정 제어, 20개 언어를 지원하며 CPU 실행을 내세우지만, 품질과 속도에 관한 비교 기준은 본문에서 제한적으로만 제시합니다.
- 주제
에디터 노트
CPU 실행과 음성 복제를 한 패키지에서 제공하고 경량 ONNX 모델까지 같은 인터페이스로 다루는 구성이 이 저장소의 실용적인 장점입니다. 다만 SOTA라는 제목의 품질 주장을 판단할 타 모델 비교는 없고, 제시한 화자 유사도 수치도 평가 조건과 데이터 규모가 공개되지 않아 성능 우위를 확인하기 어렵습니다. 실행 속도 역시 A100에서 긴 입력을 처리한 사례만 구체적으로 나옵니다. CPU 실시간 실행 주장은 하드웨어별 수치가 없으므로 환경에 따라 어느 정도 속도가 나오는지 본문만으로는 알 수 없습니다. 또 코드의 Apache 2.0과 모델의 Community License가 다르므로 상용 적용 여부는 모델별 조건을 따로 확인해야 합니다.
AI 요약
KittenML이 텍스트 음성 변환(Text-to-Speech, TTS) 모델 Kitten-TTS 2를 공개했습니다. 저장소는 17억 파라미터 모델이 CPU에서도 실시간으로 동작한다고 설명하며, 음성 복제와 감정 표현 제어, 20개 언어를 지원한다고 밝혔습니다. 다만 저장소에 적힌 SOTA 품질 주장을 뒷받침하는 타 모델 비교 결과는 본문에 제시하지 않습니다.
모델 구성과 실행
Kitten-TTS 2는 음성 언어 모델로, 기본 가중치 크기는 947 MiB이며 토큰 임베딩을 양자화한 emb4 옵션은 506 MiB입니다. emb4는 다운로드 크기를 줄이는 대신 품질이 조금 낮아진다고 설명합니다. 별도로 제공하는 KittenTTS 0.8 경량 모델은 ONNX 기반이며 15M~80M 파라미터 규모입니다. 기본 설치는 pip install kittenml이며 Python 3.9 이상을 요구합니다. 저장소 안내에 따르면 CPU 실행에는 약 6GB RAM, CUDA GPU 실행에는 여유 메모리 약 8GB가 필요합니다.
CPU 추론용으로 프로젝트의 llama.cpp 포크를 기반으로 한 C++ 구현을 제공하며, Apple Silicon에서는 MLX 백엔드, 지원되는 NVIDIA GPU에서는 vLLM 백엔드를 선택할 수 있습니다. vLLM 예시는 W4A16 양자화를 사용합니다. C++ 구현은 베타 단계입니다. 저장소는 CPU와 소비자용 GPU에서 실시간 실행을 주장하지만, 본문에 구체적인 CPU 모델별 처리 속도나 비교 벤치마크는 싣지 않았습니다.
음성 생성 기능
내장 음성은 47개이며, 5~30초 분량의 단일 화자 음성을 참조해 추가 학습 없이 복제할 수 있습니다. 참조 음성의 전사문을 직접 주지 않으면 Whisper가 전사한다고 안내합니다. 음성 참조는 화자 임베딩과 음성 코덱 토큰이라는 두 경로로 모델에 전달됩니다. 저장소가 제시한 화자 유사도 점수는 내장 음성 생성 결과와 해당 참조 음성 비교에서 0.49~0.72, 다른 37개 음성과의 비교에서 0.01~0.18입니다. 미등록 참조 음성을 복제한 결과는 참조 음성과 0.81 점수를 기록했다고 설명하지만, 본문에는 점수 산출 방식이나 평가 데이터 규모가 나오지 않습니다.
영어, 한국어, 일본어, 중국어 등을 포함한 20개 언어를 지원합니다. [joyful] 같은 감정 태그와 <laugh> 같은 발성 이벤트 태그, (((강조))) 표기로 표현을 조절합니다. 감정 제어는 베타 기능이며 원하는 표현을 보장하지 않고 음성이나 문장에 따라 효과가 달라진다고 밝힙니다. 안정성과 표현력 사이의 선택을 위한 디코딩 프리셋도 제공합니다.
긴 입력은 문장 단위로 나눠 생성한 뒤 무음 구간을 다듬고 짧은 페이드를 넣어 이어 붙입니다. 한 번에 긴 대본을 입력하면 잘리거나 반복이 생길 수 있다고 안내합니다. 스트리밍은 문장 조각 단위로 결과를 내보내며 토큰 단위 스트리밍은 아닙니다. A100에서 936자 입력의 첫 21초 분량을 받기까지 17초, 54초 분량 전체 생성까지 42초가 걸렸다는 측정값을 제시합니다. 한 조각에 들어가는 짧은 입력은 한 번에 생성되므로 스트리밍 이점이 없고, 스트리밍 결과를 바로 이어 붙이면 일반 생성보다 연결부가 거칠 수 있습니다.
라이선스와 적용 조건
코드는 Apache License 2.0으로 배포하지만 Kitten-TTS 2 모델은 별도의 Stellon Labs Community License를 적용합니다. 저장소는 모델별 저장소의 라이선스를 확인하라고 안내합니다. 따라서 코드 라이선스만으로 모델 가중치의 사용 조건을 판단할 수 없습니다. 기업용 통합 지원과 사용자 지정 음성, 엔터프라이즈 라이선스도 별도로 제공합니다.
원문: GitHub / 번역·요약: Trawling