New: Kitten TTS v0.8 is out -- 15M, 40M, and 80M parameter models now available.
Kitten TTS is an open-source, lightweight text-to-speech library built on ONNX. With models ranging from 15M to 80M parameters (25-80 MB on disk), it delivers high-quality voice synthesis on CPU without requiring a GPU.
Status: Developer preview -- APIs may change between releases.
Commercial support is available. For integration assistance, custom voices, or enterprise licensing, contact us.
1from kittentts import KittenTTS
23model = KittenTTS("KittenML/kitten-tts-mini-0.8")4audio = model.generate("This high-quality TTS model runs without a GPU.", voice="Jasper")56import soundfile as sf
7sf.write("output.wav", audio,24000)
Advanced Usage
python
1# Adjust speech speed (default: 1.0)2audio = model.generate("Hello, world.", voice="Luna", speed=1.2)34# Save directly to a file5model.generate_to_file("Hello, world.","output.wav", voice="Bruno", speed=0.9)67# List available voices8print(model.available_voices)9# ['Bella', 'Jasper', 'Luna', 'Bruno', 'Rosie', 'Hugo', 'Kiki', 'Leo']
Using with GPU
pip install -r requirements_gpu.txt
m = KittenTTS("KittenML/kitten-tts-mini-0.8", backend="cuda")
Check out example_cuda.py
API Reference
KittenTTS(model_name, cache_dir=None)
Load a model from Hugging Face Hub.
Parameter
Type
Default
Description
model_name
str
"KittenML/kitten-tts-nano-0.8"
Hugging Face repository ID
cache_dir
str
None
Local directory for caching downloaded model files
model.generate(text, voice, speed, clean_text)
Synthesize speech from text, returning a NumPy array of audio samples at 24 kHz.
Parameter
Type
Default
Description
text
str
--
Input text to synthesize
voice
str
"expr-voice-5-m"
Voice name (see available voices)
speed
float
1.0
Speech speed multiplier
clean_text
bool
False
Preprocess text (expand numbers, currencies, etc.)
1from kittentts import normalize_text
23normalized = normalize_text("Dr. Rivera paid $12.50 at 3:05 p.m.")4# "Doctor Rivera paid twelve dollars and fifty cents at three oh five p m."56result = normalize_text("Fig. 2", return_spans=True)7print(result.text)8print(result.spans)
When return_spans=True, the result includes original-to-normalized character spans for changed segments such as abbreviations, dates, times, numbers, currency, URLs, and punctuation.
model.available_voices
Returns a list of available voice names: ['Bella', 'Jasper', 'Luna', 'Bruno', 'Rosie', 'Hugo', 'Kiki', 'Leo']
System Requirements
Operating system: Linux, macOS, or Windows
Python: 3.8 or later
Hardware: Runs on CPU; no GPU required
Disk space: 25-80 MB depending on model variant
A virtual environment (conda, venv, or similar) is recommended to avoid dependency conflicts.
We offer commercial support for teams integrating Kitten TTS into their products. This includes integration assistance, custom voice development, and enterprise licensing.