# KittenTTS - 25MB 이하의 SOTA 음성 합성(TTS) 모델

> Clean Markdown view of GeekNews topic #27680. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27680](https://news.hada.io/topic?id=27680)
- GeekNews Markdown: [https://news.hada.io/topic/27680.md](https://news.hada.io/topic/27680.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-20T16:33:09+09:00
- Updated: 2026-03-20T16:33:09+09:00
- Original source: [github.com/KittenML](https://github.com/KittenML/KittenTTS)
- Points: 5
- Comments: 1

## Summary

CPU만으로 고품질 음성 합성을 수행하는 **경량 ONNX 기반 TTS 라이브러리**로, 모델 크기가 25MB 수준이라 엣지 디바이스나 서버리스 환경에서도 실용적입니다. Python API로 바로 통합할 수 있어, 별도 GPU 인프라 없이도 빠르게 **자연스러운 음성 출력**을 구현할 수 있습니다. 8가지 내장 음성과 속도 조절, 텍스트 전처리 기능을 지원해 프로토타이핑부터 상용 배포까지 유연하게 활용할 수 있습니다.

## Topic Body

- ONNX 기반의 `State-of-the-art` **경량 텍스트-음성 변환(TTS)** 라이브러리로, CPU만으로 고품질 음성 합성을 수행  
- 모델 크기는 **15M~80M 파라미터(25~80MB)** 범위로, GPU 없이도 효율적 실행 가능  
- **8가지 내장 음성**과 **속도 조절**, **텍스트 전처리 파이프라인**, **24kHz 오디오 출력** 기능 제공  
- Hugging Face에서 바로 사용 가능하며, **Python API**로 간단히 통합 가능  
- **엣지 디바이스 배포와 상용 통합 지원**을 목표로 한 오픈소스 TTS 솔루션  
  
---  
  
### Kitten TTS 개요  
- Kitten TTS는 **ONNX 기반 오픈소스 TTS 라이브러리**로, GPU 없이 CPU에서 고품질 음성 합성을 수행  
  - 모델 크기는 15M~80M 파라미터이며, 디스크 기준 25~80MB  
  - 버전 0.8에서는 15M, 40M, 80M 모델이 제공됨  
- 현재 **개발자 프리뷰 단계**로, API는 향후 변경될 수 있음  
- **상용 지원**(통합 지원, 커스텀 음성, 엔터프라이즈 라이선스) 제공  
  
### 주요 기능  
- **초경량 구조**: int8 기준 25MB부터 시작해 엣지 환경 배포에 적합  
- **CPU 최적화**: GPU 없이도 효율적인 ONNX 추론 수행  
- **8가지 내장 음성**: Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo  
- **속도 조절 기능**: `speed` 파라미터로 발화 속도 제어  
- **텍스트 전처리 파이프라인**: 숫자, 통화, 단위 등을 자동 처리  
- **24kHz 출력**: 표준 샘플레이트의 고품질 오디오 생성  
  
### 제공 모델  
- 네 가지 모델이 제공됨  
  - kitten-tts-mini (80M, 80MB)  
  - kitten-tts-micro (40M, 41MB)  
  - kitten-tts-nano (15M, 56MB)  
  - kitten-tts-nano (int8, 15M, 25MB)  
- 일부 사용자는 `kitten-tts-nano-0.8-int8` 모델에서 문제를 보고했으며, 이슈 등록을 권장  
  
### 데모 및 사용법  
- **Hugging Face Spaces**에서 브라우저로 직접 체험 가능  
- **Python 3.8 이상**과 pip만으로 설치 가능  
  - 설치 명령:  
    `pip install https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whl`  
- 기본 사용 예시:  
  - `from kittentts import KittenTTS`  
  - `model = KittenTTS("KittenML/kitten-tts-mini-0.8")`  
  - `audio = model.generate("텍스트", voice="Jasper")`  
- 고급 기능: 속도 조절(`speed`), 파일 저장(`generate_to_file`), 사용 가능한 음성 목록 조회  
  
### API 구조  
- `KittenTTS(model_name, cache_dir=None)`  
  - Hugging Face Hub에서 모델 로드  
- `model.generate(text, voice, speed, clean_text)`  
  - 텍스트를 24kHz 오디오로 변환  
- `model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)`  
  - 합성된 음성을 파일로 직접 저장  
- `model.available_voices`  
  - 사용 가능한 음성 리스트 반환  
  
### 시스템 요구사항  
- **운영체제**: Linux, macOS, Windows  
- **Python**: 3.8 이상  
- **하드웨어**: CPU만 필요, GPU 불필요  
- **디스크 공간**: 모델에 따라 25~80MB  
- 가상환경(venv, conda 등) 사용 권장  
  
### 로드맵  
- **추론 엔진 최적화**, **모바일 SDK**, **고품질 모델**, **다국어 TTS**, **KittenASR** 출시 예정  
- **Apache License 2.0**

## Comments



### Comment 53449

- Author: neo
- Created: 2026-03-20T16:33:09+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47441546) 
- Kitten TTS용 CLI 래퍼인 [purr](https://github.com/newptcai/purr)을 만들었음  
  kitten 패키지는 **kittentts → misaki[en] → spacy-curated-transformers**로 이어지는 의존 체인을 가짐  
  그래서 `uv`로 직접 설치하면 torch와 NVIDIA CUDA 패키지(수 GB)를 끌어오는데, 실제 실행에는 필요하지 않음
  - 설치 스크립트가 잘 작동했음  
    처음 실행 시 “OSError: PortAudio library not found” 오류가 났는데, `apt install libportaudio2`로 해결했음
  - 정말 고마움. 의존성 체인이 깨져서 설치가 계속 실패했는데, 이걸로 해결됨  
    그런데 **불필요한 의존성**을 제거하면서 기능 손실이 있는지 궁금함

- 정말 멋진 프로젝트임  
  곧 직접 써볼 예정임  
  다만 궁금한 점이 있음 — 왜 **명령줄 실행 파일** 형태로 배포하지 않았는지?  
  API도 거의 manpage 스타일이라 금방 만들 수 있을 것 같음. 단순한 호기심임
  - 좋은 아이디어임. 그렇게도 할 예정임  
    우선 onnx 버전으로 피드백을 받고, 이후 명령줄 실행 파일을 포함해 실행 과정을 단순화할 계획임

- OpenClaw가 마음에 드는 이유는, Discord에서 GitHub URL만 보내도 바로 **음성 메시지**를 생성해줬기 때문임  
  몇 분 만에 벤치마크와 샘플 오디오도 받았음  
  품질이 크기에 비해 인상적임. 목소리는 완벽하진 않지만 나쁘지 않음  
  Intel 9700 CPU에서 80M 모델 기준 약 1.5배 실시간 속도였고, 3080 GPU에서도 더 빠르진 않았음
  - 더 **전문적인 음성**과 DIY 커스텀 보이스를 추가할 예정임  
    지금은 표현력을 보여주기 위해 애니메이션풍 목소리를 넣었음  
    GPU에서 느린 이유를 GitHub issue나 Discord로 공유해주면 좋겠음. 예시 코드도 추가할 예정임
  - 좋은 사용 사례임. 이메일 같은 **보안 취약 연결** 없이 샌드박스로 테스트하고 배포할 수 있는 구조가 흥미로웠음
  - 부럽다는 말밖에 없음. 나는 실행까지 훨씬 오래 걸렸음  
    Python 버전 충돌을 피하려고 고생했고, Docker로도 시도했지만 결국 직접 세팅해야 했음  
    겨우 실행은 됐지만 Python은 정말 싫음

- 지금은 **미국식 음성**만 지원하는 듯함  
  개인적으로는 아일랜드, 영국, 웨일스 억양에만 관심이 있음. 미국식은 별로임

- 기기 내에서 동작하는 TTS는 **접근성 도구**로 정말 훌륭함  
  대부분의 기기가 온라인 서비스에 의존하는데, 이런 로컬 방식이 훨씬 좋음
  - 피드백 고마움. 곧 다양한 용도의 **소형 모델**을 더 출시할 예정임

- 예전 모델보다 훨씬 명확한 **개선**이 느껴짐  
  정말 인상적임. 공유해줘서 고마움
  - 고마움. 이번 모델들은 이전보다 훨씬 나아졌음  
    현재 15M 모델이 예전 80M 모델보다 좋고, 이런 개선 속도를 계속 유지할 예정임

- 앞으로 **일본어 전용 모델**도 보고 싶음  
  Qwen3-tts가 일본어를 지원하긴 하지만, 가끔 중국어가 섞여서 쓸 수가 없음
  - 전처리 단계에서 **히라가나 변환**을 시도해볼 수도 있음  
    다만 그렇게 하면 음높이(예: 飴 vs 雨) 정보가 손실될 수 있음
  - 다음 모델(약 3주 후 예정)에서 일본어를 지원할 예정임  
    사용 사례를 알려주면 품질 개선에 반영하고 싶음

- 모델 크기에 비해 성능이 인상적이었음  
  다만 숫자 발음에 문제가 있었음  
  “Startup finished in 135 ms.”를 시도했는데 숫자가 **잡음처럼** 들렸음  
  “one hundred and thirty five seconds”로 바꾸니 그나마 괜찮았음
  - 이 문제는 모델 수준에서도 수정 중임  
    그동안은 **텍스트 전처리**를 추가하면 해결 가능함  
    대부분의 TTS 모델이 숫자와 단위를 문자열로 변환하는 방식으로 처리함
  - 피드백 고마움. 커스텀 전처리로 95%의 경우를 해결할 수 있음  
    다음 릴리스에서 모델 차원에서도 수정될 예정임
  - 참고로, 단어는 “pronounce” 혹은 “pronouncing”이 맞음. “pronounciating”은 오타임

- 네 가지 모델을 비교한 **샘플 오디오**를 함께 보여주면 좋겠음  
  같은 문장을 각 모델로 읽은 예시가 있으면 이해가 쉬울 듯함
  - 좋은 제안임. 바로 추가하겠음  
    그동안은 [Hugging Face 데모](https://huggingface.co/spaces/KittenML/KittenTTS-Demo)에서 직접 모델을 시도해볼 수 있음

- 이게 **오픈소스**인지, 아니면 **오픈 웨이트** 모델인지 궁금함
  - 맞음. 오픈소스임  
    이번 주말까지 MIT 라이선스의 **phonemizer**도 추가할 예정이라 자유롭게 사용할 수 있을 것임
