Skip to main content
KugelAudio provides a variety of premade voices and supports custom voice cloning. This guide covers how to work with voices in your application.

List Available Voices

# List all available voices
voices = client.voices.list()

for voice in voices:
    print(f"{voice.id}: {voice.name}")
    print(f"  Category: {voice.category}")
    print(f"  Languages: {', '.join(voice.supported_languages)}")

Filter Voices

# Filter by language
german_voices = client.voices.list(language="de")

# Get only public voices
public_voices = client.voices.list(include_public=True)

# Limit results
first_10 = client.voices.list(limit=10)

# Get only cloned voices
cloned = client.voices.list(category="cloned")

Get Voice Details

voice = client.voices.get(voice_id=123)
print(f"Voice: {voice.name}")
print(f"Description: {voice.description}")
print(f"Sample text: {voice.sample_text}")

Use a Specific Voice

Pass the voice_id (Python) or voiceId (JavaScript) parameter when generating speech:
audio = client.tts.generate(
    text="Hello with a specific voice!",
    model_id="kugel-1-turbo",
    voice_id=123,
)
Voices work with all generation methods - basic generation, streaming, and streaming sessions:
# With streaming
for chunk in client.tts.stream(
    text="Streaming with a specific voice.",
    model_id="kugel-1-turbo",
    voice_id=123,
):
    if hasattr(chunk, 'audio'):
        play_audio(chunk.audio)

# With streaming sessions (for LLM integration)
async with client.tts.streaming_session(
    voice_id=123,
    cfg_scale=2.0,
) as session:
    async for chunk in session.send("Hello!"):
        play_audio(chunk.audio)

Voice Properties

Each voice includes the following information:
PropertyTypeDescription
idintUnique voice ID
namestringHuman-readable name
descriptionstringVoice description
categorystringpremade, cloned, or generated
sexstringmale, female, or neutral
agestringyoung, middle_aged, or old
supported_languageslistISO 639-1 language codes
sample_textstringSample text for preview
sample_urlstringSample audio URL
is_publicboolWhether the voice is publicly available
verifiedboolWhether the voice has been verified

Next Steps