Text to Dialogue: Multi-Speaker Conversations
- Describe what the Text to Dialogue endpoint produces and what it is used for
- Structure a valid dialogue input with multiple speakers and audio tags
- Identify the audio_effects parameter and what it adds to rendered dialogue
What Text to Dialogue Does
Standard TTS generates a single voice reading a block of text. Text to Dialogue generates a conversation — multiple speakers, each with their own voice, taking turns in a scripted exchange. The output is a single audio file that sounds like two (or more) people having a real conversation.
The use cases are specific: pre-rendered game dialogue, scripted podcast intros, audiobook scenes with multiple characters, training simulations, and interactive narrative content. This is not a tool for real-time use — it renders a conversation ahead of time, not in the moment.
How It Works
The dialogue endpoint takes an array of turns. Each turn has two fields: the text spoken, and the voice_id of the speaker. At generation time, ElevenLabs renders each turn with the specified voice and joins them into a single continuous audio file with natural transitions between speakers.
A minimal dialogue input looks like this:
[
{ "text": "Did you see the news this morning?", "voice_id": "voice_a" },
{ "text": "I did. Hard to believe.", "voice_id": "voice_b" },
{ "text": "Right? I have so many questions.", "voice_id": "voice_a" }
]
There is no fixed limit on the number of speakers — you can use multiple voice IDs across as many turns as your script requires. Keep requests to roughly 2,000 characters of total text; chunk longer dialogues and concatenate the results.
Audio Tags in Dialogue
The same audio tags available in standard TTS work inside dialogue turns. Place them in square brackets before the text they affect:
[giggling]— Adds laughter texture before the line[whispering]— Lowers the delivery to a whispered tone[sigh]— Inserts a brief exhale before the text[applause]— Generates crowd applause (useful for announcement scenes)[auctioneer]— Rapid, rhythmic delivery
Tags make scripted dialogue feel natural. A line like [sigh] I guess that's just how it goes. lands very differently from the same line without the tag.
The audio_effects Parameter
Text to Dialogue supports an audio_effects parameter that applies a scene-wide acoustic treatment to the entire rendered conversation. Settings include environments like "phone call," "outdoor," or "cafe" that add appropriate room tone and frequency shaping. This is useful when you want dialogue to feel grounded in a specific location without doing post-production yourself.
When to Use It vs. Standard TTS
Try This
Write a five-turn dialogue between two people with different personalities — one optimistic, one sceptical — discussing a technology topic you know well. Pick two voices from the Voice Library that feel appropriate for each character. Use the Text to Dialogue endpoint (or the Studio interface that exposes it) to generate the conversation. Then add one audio tag to each speaker's most emotionally charged line and regenerate. Notice how much the tags shift the emotional texture of the scene.
- Text to Dialogue renders pre-scripted multi-speaker conversations as a single audio file — it is not for real-time use
- Each turn in the dialogue array specifies text and a voice_id; keep total text under ~2,000 characters per request
- Audio tags like [giggling] and [whispering] work inside dialogue turns; the audio_effects param adds scene-level acoustic treatments