Files
ai-podcast/docs/technical/elevenlabs.md
Rosario Moscato 09f10353dd feat: implement ElevenLabs audio generation for podcast conversations
- Add ElevenLabs SDK integration for text-to-speech conversion
- Implement automatic audio generation after conversation completion
- Add comprehensive audio playback controls (play/pause/restart)
- Include real-time debug panel for monitoring audio generation process
- Add proper error handling for quota exceeded and other API errors
- Integrate audio stream processing and buffer concatenation
- Add volume control and progress tracking for audio playback
- Include responsive UI states for audio generation and playback

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 22:55:02 +02:00

3.3 KiB
Raw Permalink Blame History

title, subtitle
title subtitle
Text to Dialogue quickstart Learn how to generate immersive dialogue from text.

This guide will show you how to generate immersive, natural-sounding dialogue from text using the Text to Dialogue API.

Using the Text to Dialogue API

[Create an API key in the dashboard here](https://elevenlabs.io/app/settings/api-keys), which youll use to securely [access the API](/docs/api-reference/authentication).
    Store the key as a managed secret and pass it to the SDKs either as a environment variable via an `.env` file, or directly in your apps configuration depending on your preference.
    
    ```js title=".env"
    ELEVENLABS_API_KEY=<your_api_key_here>
    ```
    
</Step>
<Step title="Install the SDK">
    We'll also use the `dotenv` library to load our API key from an environment variable.
    
    <CodeBlocks>
        ```python
        pip install elevenlabs
        pip install python-dotenv
        ```
    
        ```typescript
        npm install @elevenlabs/elevenlabs-js
        npm install dotenv
        ```
    
    </CodeBlocks>
    
</Step>
<Step title="Make the API request">
    Create a new file named `example.py` or `example.mts`, depending on your language of choice and add the following code:

    <CodeBlocks>
    ```python maxLines=0
    # example.py
    from dotenv import load_dotenv
    from elevenlabs.client import ElevenLabs
    from elevenlabs.play import play

    load_dotenv()

    elevenlabs = ElevenLabs(
      api_key=os.getenv("ELEVENLABS_API_KEY"),
    )

    audio = elevenlabs.text_to_dialogue.convert(
        inputs=[
            {
                "text": "[cheerfully] Hello, how are you?",
                "voice_id": "9BWtsMINqrJLrRacOk9x",
            },
            {
                "text": "[stuttering] I'm... I'm doing well, thank you",
                "voice_id": "IKne3meq5aSn9XLyUdCD",
            }
        ]
    )

    play(audio)
    ```

    ```typescript maxLines=0
    // example.mts
    import { ElevenLabsClient, play } from "@elevenlabs/elevenlabs-js";
    import "dotenv/config";

    const elevenlabs = new ElevenLabsClient();

    const audio = await elevenlabs.textToDialogue.convert({
        inputs: [
            {
                text: "[cheerfully] Hello, how are you?",
                voiceId: "9BWtsMINqrJLrRacOk9x",
            },
            {
                text: "[stuttering] I'm... I'm doing well, thank you",
                voiceId: "IKne3meq5aSn9XLyUdCD",
            },
        ],
    });

    play(audio);
    ```
    </CodeBlocks>
</Step>
<Step title="Execute the code">
    <CodeBlocks>
        ```python
        python example.py
        ```

        ```typescript
        npx tsx example.mts
        ```
    </CodeBlocks>

    You should hear the dialogue audio play.
</Step>

Next steps

Explore the API reference for more information on the Text to Dialogue API and its options.