KittenTTS ships with 8 built-in voices. Each voice has a friendly name (e.g.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.
"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 name | Internal ID | Gender |
|---|---|---|
Bella | expr-voice-2-f | Female |
Jasper | expr-voice-2-m | Male |
Luna | expr-voice-3-f | Female |
Bruno | expr-voice-3-m | Male |
Rosie | expr-voice-4-f | Female |
Hugo | expr-voice-4-m | Male |
Kiki | expr-voice-5-f | Female |
Leo | expr-voice-5-m | Male |
Listing voices at runtime
Usemodel.available_voices to get the list of friendly voice names at runtime:
Using voices
Pass a voice name to thevoice parameter of generate() or generate_to_file():
"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: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.