No filming:An AI avatar or clone yourself
    Guides

    Add multi-speaker dialogue as audio

    Generate one conversation with a voice per alias, then attach it. Two solo reads stitched still sound like two monologues.

    Versely Team••6 min read

    Generate one conversation with a voice per alias, then attach it. Add multi-speaker dialogue to a video is generate_multi_speaker_speech plus attach_audio_to_video. Multi-speaker dialogue is one speech generation, distinct voice per speaker alias, so a conversation is a single take instead of several stitched reads. Two monologues still sound like two monologues.

    This is the audio cast. It is not lipsync per person, and it is not a native-audio T2V that invented two talkers.

    One conversation file, not two monologues

    Chaining generate_speech per role means you own the gaps, the overlaps, and the stitch. This call does not. The script carries aliases — Host, Guest — and the speakers list assigns a voice to each alias. One file comes back in line order.

    Use it when two or more distinct voices are the point: podcast clip, scripted interview, two-character explainer, a panel. Use single-voice generate_speech when one narrator is the point. Gemini 3.1 Flash TTS is 4 credits and can do multi-speaker dialogue in its own family; Cartesia Sonic 3.5 is 5 credits for a stock single voice. Pick the tool that matches the cast, not the one you used last week.

    Procedure:

    1. Write the conversation as it should be heard. Include overlap only if you want it. The model will not invent cross-talk you did not script.
    2. Attribute every line to an alias that also appears in speakers. An unmatched name is an ambiguous assignment.
    3. Assign a distinct voice per alias. Same voice twice is a radio play with one actor.
    4. Set language and style_prompt for pacing, formality, energy — overall, not per line, unless the model you picked documents inline tags.
    5. estimate_cost on a long conversation. Billing follows script length and speaker count.
    6. Generate. Listen once without picture. If Host and Guest collapsed into one timbre, fix voices before you attach.

    Do not generate each role as a solo read “to have more control.” Timing was the reason for one call.

    Native-audio video rows that happen to contain two people talking are a different object: baked, uneditable, visemes included. Veo 3.1 at 40 credits will invent a two-shot and a chat if you prompt one. You cannot recast Guest. This page is for when the picture is already locked (B-roll, a silent two-shot, a slideshow) and the conversation is a bed you author.

    Aliases have to match the speakers list

    The failure mode is a typo. Host: in the script and host in speakers can be two people or an error, depending on how strict the call is. Make them identical. Do not add a third alias “Announcer” in line 40 if you did not cast it.

    Casting:

    • Stock voices from the catalog the tool exposes.
    • Cloned voices you have the right to use. Consent is the gate. A scraped podcast guest is not a voice_id.
    • Voice design as a prior step if you need invented timbres, then assign those ids to aliases. Design is casting. This generate is the conversation.

    Language: one language for the file unless the tool you picked documents code-switching. A Host in English and a Guest in Spanish is a different brief; do not assume this call will mix.

    Tone: a debate needs two energies. If style_prompt is global, write the difference into the lines (interruptions, short Guest answers) rather than hoping the model will act.

    NY GBL § 396-b (in force 9 June 2026) covers synthetic performers that appear as a human not recognizable as an identifiable natural person, in ads, with actual knowledge, conspicuous disclosure. Audio-only ads are exempt; this attach-to-video path is not audio-only once it is on picture. A clone of an identifiable person is a publicity problem, not that statute. Get the release. Article 50 (2 August 2026) still wants a deployer label at first exposure when the picture would pass as real.

    Attach the bed; lipsync is later

    attach_audio_to_video: mode replace if the plate is silent or the original talk is wrong; mode mix if you are laying conversation under room tone you want to keep. A silent row plus this wav is replace. Native-audio two-shot plus this wav is usually replace — otherwise you have four people.

    The wav starts at the beginning of the attach. It is not auto-spotted to a Guest’s mouth at 0:04 unless you built silence into the script. Write beats that match picture:

    • 0–2s: Host hook while we see Host (or a title still).
    • 2–8s: Guest proof while we see the pack.

    If the picture is one B-roll bed, the conversation can float. If the picture is two faces, you will notice when Guest speaks over Host’s closed mouth. That is a spotting problem. Fix the script length, or cut picture to the voice with keep-ranges, or lipsync later.

    Lipsync is a later step, not part of this generate. Pairing each speaker with on-screen visemes means a mouth pass per face, or a dub engine that retargets, or living with a VO over B-roll. Do not expect generate_multi_speaker_speech to animate anyone.

    Duration: time the conversation out loud. A 40-second dialogue on a 12-second pack video overflows. Shorten the script or extend / assemble more picture. Do not 1.5× the video to fit two talkers; visemes and product verbs die.

    Add voiceover to a video is the single-narrator sibling. If you only have Host, use that.

    Caption a mix of two voices carefully

    ASR on a two-voice mix will miss overlaps and mis-attribute. After attach:

    1. Add captions to a video in the spoken language. 165 codes, BASIC 1×, DYNAMIC 2×.
    2. Spot-check who is speaking. Speaker IDs in a caption track (JORDAN:) are a transcript convention when the face is off screen. They are not a lower third.
    3. If ASR collapses two voices, shorten overlaps or caption from a script you timed — that is closer to timed overlays plus honesty, or a cleaned transcript you burn.
    4. Place in safe area. Two-speaker captions get long. They will eat the pack.

    Burned-in captions are still the mute object. A podcast clip without a burn is a voice in a muted feed.

    Do not caption before attach. The silent plate has nothing to transcribe.

    YouTube inauthentic-content buckets (Mashable, 21 July 2026) include synthetic personas presenting as human authorities on healthcare, finance, law, politics. Two generated voices giving medical advice on generated faces is that bucket. A branded pack conversation about a flavour is not. Know which you are making.

    Generate the conversation in Versely as one multi-speaker file, then attach it. Do not stitch two solo reads and call it dialogue.

    FAQ

    Do I generate each voice separately?

    No. One call, aliases in the script, voices in speakers, one file in line order.

    How do I get this onto the video?

    attach_audio_to_video, replace or mix, same as a single voiceover. Lipsync per speaker is a later job.

    Can I lipsync both faces in this step?

    No. This generate is audio. Picture pairing is attach, cut, or a mouth pass you run after you have a wav and a face.