Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/KittenML/KittenTTS/llms.txt

Use this file to discover all available pages before exploring further.

KittenTTS ships with 8 built-in voices. Each voice has a friendly name (e.g. "Bella") that maps to an internal style embedding ID. You can pass either form to the voice parameter.
Voice names are case-sensitive. "Bella" works; "bella" does not.

Available voices

Friendly nameInternal IDGender
Bellaexpr-voice-2-fFemale
Jasperexpr-voice-2-mMale
Lunaexpr-voice-3-fFemale
Brunoexpr-voice-3-mMale
Rosieexpr-voice-4-fFemale
Hugoexpr-voice-4-mMale
Kikiexpr-voice-5-fFemale
Leoexpr-voice-5-mMale
Friendly names and internal IDs are interchangeable:
# These are equivalent
audio = model.generate("Hello.", voice="Bella")
audio = model.generate("Hello.", voice="expr-voice-2-f")

Listing voices at runtime

Use model.available_voices to get the list of friendly voice names at runtime:
from kittentts import KittenTTS

model = KittenTTS("KittenML/kitten-tts-mini-0.8")

print(model.available_voices)
# ['Bella', 'Jasper', 'Luna', 'Bruno', 'Rosie', 'Hugo', 'Kiki', 'Leo']

Using voices

Pass a voice name to the voice parameter of generate() or generate_to_file():
from kittentts import KittenTTS

model = KittenTTS("KittenML/kitten-tts-mini-0.8")

audio = model.generate("Welcome to KittenTTS.", voice="Luna")
The default voice is "expr-voice-5-m" (Leo) when no voice argument is supplied.

Rendering all voices

The following example generates a sample for every voice and writes each to a WAV file:
from kittentts import KittenTTS
import soundfile as sf

model = KittenTTS("KittenML/kitten-tts-mini-0.8")

for voice in model.available_voices:
    audio = model.generate("Hello, my name is an AI voice.", voice=voice)
    sf.write(f"{voice}.wav", audio, 24000)
This produces eight WAV files, one per voice, all at 24 kHz.

Voice selection tips

Iterate over friendly names

Use model.all_voice_names if you want to work with readable labels rather than internal IDs.

Use internal IDs for stability

Internal IDs like expr-voice-2-f are more stable across model updates than friendly names.

Adjust speed per voice

Some voices sound more natural at slightly different speeds. Use the speed parameter to tune.

Combine with text preprocessing

Set clean_text=True alongside any voice to handle numbers, symbols, and abbreviations automatically.

Build docs developers (and LLMs) love