Which models do what
| Model | Speech in the same pass | Using a specific voice | Extra cost for sound |
|---|---|---|---|
| Kling 4.0 | Yes, stereo always on | Create a voice, then pass its id | None |
| Seedance 2.5 | Yes; write dialogue in double quotes | Attach a clean recording, 1.8 to 30.2 s on fal | None |
| Wan 3.0 | Yes | Attach up to 15 s of reference audio on fal | None |
| Veo 3.1 | Yes; Google says short speech is still improving | No route we have tested | $0.40 a second with audio against $0.20 without, on fal |
Without a voice sample, every model invents a voice, so that voice will not match across separate shots. That matters as soon as a character speaks in more than one generation.
What happened when we tried
The dollhouse scene had two speaking characters and short lines. Google Flow’s first take gave both lines to the giant, before anything was thrown, and its second lost “Sorry” altogether. Wan 3.0 delivered both lines to the right characters, and added a few notes of music the prompt had ruled out. On MiniMax H3 turbo a large talking face showed clear artefacts. It needs the full model.
Wan 3.0, two lines of generated dialogue, with sound.
One Prompt Studio has a presenter speaking throughout. Wan 3.0 generated the speech and lip sync across 30 seconds. We then replaced the voice with a custom one using ElevenLabs speech-to-speech, which kept the word timing, so the mouth still matched. The script ran to 49 words in 30 seconds, above the roughly 40 that one Seedance prompt builder treats as safe. Longer lines are where you should expect slurring.
Four routes, and when to use each
| Route | Best for | Trade-off | Our result |
|---|---|---|---|
| Dialogue in the generation | Generated characters | Each run invents the voice unless you give it one | Wan 3.0, 30 s at 1080p, $6.00 |
| Speech-to-speech over a take | Your own voice on a generated character | Timing must stay the same | Word timing kept in One Prompt Studio |
| Avatar from a photo | New piece to camera from one photo | Invented gestures, sometimes smoothed skin | Kling AI Avatar v2 Pro, 5.55 s: $0.83 and 7 minutes. OmniHuman 1.5: $0.89 and 3 minutes |
| Lip-sync pass on real footage | A new line on a real take | Mouth slightly softer than the skin around it | sync lipsync-2-pro on fal: 2.87 s for about $0.24 |
When the speaker is a real person
Keep the real recording whenever you can. In our talking-head test, Seedance 2.5 Video Edit changed the room and outfit while the blinks, mouth shapes and gestures stayed in place. Its 5.00-second input came back as 4.71 seconds, so we stretched it back and laid the original voice on top. The voice was never reconstructed, and the gestures lined up within two frames.
For a lip-sync pass, pick a source take whose speech length matches the new line. Our one good result used a take with 2.17 seconds of speech for a 2.15-second line. The head movement stays from the source, so if the rhythm differs, it reads as dubbed. Look for lip texture smearing as the mouth closes after the line.
Only clone or animate someone with their consent. On fal, Seedance 2.5 refused a video of a real person outright in our test, so you may need another platform for this.
How to write dialogue that survives
- Name the speaker of each line, in the order they speak.
- Write one short sentence per few seconds. Leave a gap for action.
- Put spoken words in double quotes, and state the language.
- Describe the voice, or attach one. Say what should be silent, such as “no music”, and check it anyway.
- Keep the face large enough in the frame, and on a full model rather than a draft one.
- Check with sound on, at full size, before you pay for the higher resolution.
Voice, picture and edit together
I am building easyai.video to hold the voice, takes and captions with the picture, from the first reference to the export. It is in final development.
Join the waitlist ↗