Skip to main content
ElevenLabs Documentation Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Voice Design quickstart

This guide shows you how to design a voice via a text prompt using the Voice Design API.

This guide will show you how to design a voice via a prompt using the Voice Design API.

  1. Make the API request

    Designing a voice via a prompt has two steps:

    1. Generate previews based on a prompt.
    2. Select the best preview and use it to create a new voice.

    We’ll start by generating previews based on a prompt.

    Create a new file named example.py or example.mts, depending on your language of choice and add the following code:

    Python
    # example.py
    from dotenv import load_dotenv
    from elevenlabs.client import ElevenLabs
    from elevenlabs.play import play
    import base64
    
    load_dotenv()
    
    elevenlabs = ElevenLabs(
      api_key=os.getenv("ELEVENLABS_API_KEY"),
    )
    
    voices = elevenlabs.text_to_voice.design(
        model_id="eleven_multilingual_ttv_v2",
        voice_description="A massive evil ogre speaking at a quick pace. He has a silly and resonant tone.",
        text="Your weapons are but toothpicks to me. Surrender now and I may grant you a swift end. I've toppled kingdoms and devoured armies. What hope do you have against me?",
    )
    
    for preview in voices.previews:
        # Convert base64 to audio buffer
        audio_buffer = base64.b64decode(preview.audio_base_64)
    
        print(f"Playing preview: {preview.generated_voice_id}")
    
        play(audio_buffer)
  2. Execute the code

    Python
    python example.py

    You should hear the generated voice previews playing through your speakers, one at a time.

  3. Add generated voice to your library

    Once you’ve generated the previews and picked your favorite, you can add it to your voice library via the generated voice ID so it can be used with other APIs.

    Python
    voice = elevenlabs.text_to_voice.create(
        voice_name="Jolly giant",
        voice_description="A huge giant, at least as tall as a building. A deep booming voice, loud and jolly.",
        # The generated voice ID of the preview you want to use,
        # using the first in the list for this example
        generated_voice_id=voices.previews[0].generated_voice_id
    )
    
    print(voice.voice_id)
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu