generate_multi_speaker_speech is one conversation, not stacked solos
Multi-speaker TTS is one named audio job. Chaining generate_speech and calling it a podcast wastes takes and still sounds like two monologues.
generate_multi_speaker_speech is one conversation. It is not a stack of solo voiceovers you will align in an editor. It is not a talking-head video. Write one speaker and you have used the wrong tool. Write two speakers, generate them separately, and you have paid twice for timing the model was built to own.
Create a multi-voice dialogue or podcast clip is the named agent job. The tagline is the spec: write both sides, get two voices back. You attribute each line to a speaker alias. Each alias gets a distinct voice. The tool speaks them in the order the lines appear, in one call, into one audio file.
Required inputs are the text and the speaker list. Optional language and style sit on top of that. The output is a clip of the full exchange, not a zip of stems.
What the job is
Scripted conversation. Interview. Podcast intro. Two hosts, or a host and a guest. The point of Gemini multi-speaker TTS here is turn-taking: overlaps and gaps stay inside the model instead of becoming your night with a timeline.
A single narrator reading both parts in different "character voices" is not this job. That is still one speaker pretending. If you need one voice, write and generate a voiceover is generate_speech. If you need a mouth on camera, that is lipsync after you have audio — a later job.
The AI voice cloning surface is how you pick and clone voices for other speech tools. This capability is the dialogue pass, not the clone pass.
Priced per generation, shown before you confirm. The unit is the conversation.
What it is not
- Chained
generate_speechcalls. Each line performed in isolation never quite sits like talk. You will spend credits on N reads, then more time cutting silence. The multi-speaker tool exists because that pile is a false economy. - A talking avatar. Make a talking avatar video needs a face image plus audio. Dialogue audio can feed it later. Generating lipsync first, hoping two faces emerge from one photo, is a different waste.
- A dubbed video. Dub a video clones performance into another language off a hosted file. It is not "write a two-hander from scratch."
- Lyrics, music, or SFX. Those are music-family tools. A "podcast about a song" still wants spoken aliases, not
generate_music.
Using this row as a stand-in for a solo VO, a dub, or a presenter clip spends a conversation credit on a file you will throw away.
The test
Can you paste a script where two named people take turns, and the thing you will ship is that audio (or that audio under pictures you already have)?
Yes: this job. Alias the speakers. Generate once.
If there is only one person, or the person has to be seen speaking, or the source is already a video in another language, pick the other named job. Do not "just try multi-speaker" to see. The confirm dialog is the last cheap moment.
FAQ
Can I generate each character with generate_speech and stitch them?
You can. You will hand-edit gaps, and it will sound like two audiobooks in a trench coat. Multi-speaker is the job when the overlap is the product.
Does this create a reusable voice_id I can use later?
No. Aliases in this call are for this clip. A reusable cloned voice is clone my voice from a recording. Dialogue and cloning are not the same save.
Will this return a video of two hosts?
Audio only. Pictures, slideshows, or lipsync are downstream jobs. Do not prompt this tool as if it were a studio.
Why not design each voice from a paragraph first?
Voice design is a different TTS path: describe a voice, speak one text. It does not give you two people in one take. If the artifact is a conversation, start on this capability.