A is speech recorded apart from the picture and laid over it. In a generated film it carries the words, while the shots carry the place and the mood, and keeping the two apart means you can change a line without rendering the clip again. ElevenLabs is a company that makes speech models. You type a line, choose a voice and get back an audio file. There are two ways in. The web app lets you paste text, press generate and download the result, and the API does the same from a script, which is how you make thirty lines at the same settings and keep a record of every one.
Write the script for the ear and for the cut. Each line should belong to one shot, so an 8-second Veo clip gets one short sentence with room around it, and the voice should start about half a second into the shot and finish before the cut. Say it aloud with a stopwatch before you generate anything. Spoken sentences run shorter than written ones, and a line that needs a comma to make sense on paper is often better as two lines. A 24-second product film might carry three lines, such as 'Made in one small mill.', 'Washed twelve times before it reaches you.' and 'Forty pounds, and it lasts.' Each one becomes its own audio file, named after the shot it sits under.
ElevenLabs' model page sorts its text-to-speech models by what each is for, and two of them suit a voiceover. eleven_v3 is the expressive one, reads more than 70 languages and takes up to 5,000 characters a request, while eleven_multilingual_v2 covers 29 languages, takes 10,000 characters and is the one the docs call most stable on long-form work. The Flash models are built for speed. Name the model every time, because the API reference defaults to eleven_multilingual_v2 when you leave it out and the quickstart's own sample asks for eleven_v3.
A request sends the text, a , a and any voice settings, and the audio comes back in pieces that your code writes to a file as they arrive. The key travels in a header called xi-api-key, and the Python SDK reads it from ELEVENLABS_API_KEY. Five settings shape the read. starts at 0.5, similarity_boost at 0.75, style at 0 and speed at 1.0, which the best-practice guide lets you move between 0.7 and 1.2, and use_speaker_boost is on. Eleven v3 behaves differently, since the app offers its stability as three named positions rather than a number, with Creative the loosest and Natural the closest to the original recording, and it takes stage directions in square brackets such as [whispers] or [sighs].
The API bills by the character. ElevenLabs' API pricing page puts eleven_v3 and Multilingual v2 at $0.10 per 1,000 characters and Flash at $0.05, so three short lines of voiceover, 100 characters in all, cost one cent. Plans start at $6 a month for Starter, then $22 for Creator (the first month is $11) and $99 for Pro. The app counts credits instead, one per character on Multilingual v2, and its pricing page gives Starter 30,000 credits where the API page gives the same plan 60,000 characters of v3, so check which meter a plan feeds before you budget. Free accounts may only use the audio for non-commercial work.
Check every take before it goes under a picture. Listen once on headphones and once on a phone speaker, and listen hardest for names, numbers and the final word. When a name comes out wrong, ElevenLabs' own guide says to try spelling it the way it sounds, and for the API it offers pronunciation dictionaries with alias tags, where its example tells the model to read Claughton as Cloffton. Numbers need the same care. The guide notes that Multilingual v2 reads $1,000,000 as one million dollars while Flash v2.5, a much smaller model, reads it as one thousand thousand dollars, which is why the scripts in this module spell prices out.

Worked example
One line of voiceover, script to clip
- 01Choose a voice in the Voice Library, and read its notice period and rate before you commit.A shared voice can be withdrawn after a notice period of up to two years, and some cost more through a credit multiplier. Audio made before a withdrawal stays usable.
- 02Write one line per request, with numbers, prices and dates spelt out as words.Short requests are cheap to redo, and ElevenLabs' own guide shows Flash v2.5 reading $1,000,000 as 'one thousand thousand dollars'.
- 03Name the model on every request, eleven_multilingual_v2 for steady narration or eleven_v3 when the line needs acting.Leave it out and the API uses Multilingual v2, while the quickstart's own sample asks for v3.
- 04Start at stability 0.5, similarity 0.75 and speed 0.95, and move one setting at a time.Lower stability reads livelier and less predictable, and speed stays between 0.7 and 1.2.
- 05Send the lines either side as previous_text and next_text.They keep the delivery flowing when the separate files are cut together.
- 06Save one file per line, vo_01.mp3, vo_02.mp3 and on.At $0.10 per 1,000 characters a 40-character line costs $0.004, so a bad take is almost free to redo.
- 07Lay each file under its clip half a second in, with Veo's own sound turned down to about a quarter.The room tone stays under the voice. Keep speaking faces off camera, or take the pair to the lip-sync lesson.
The words, in plain language
- Voiceover
- Speech recorded apart from the picture and laid over it, so a line can change without a new render.
- Model ID
- The exact name the API takes, such as eleven_multilingual_v2 or eleven_v3.
- Voice ID
- The string that names one voice. George, the voice in ElevenLabs' own examples, is JBFqnCBsd6RMkjVDRZzb.
- Stability
- The setting that matters most. Lower reads livelier and less predictable, higher reads flatter.
- Instant voice clone
- A copy of a voice made from a minute or two of clean audio, on Starter plans and above.
- Voice Library
- ElevenLabs' shelf of voices shared by their owners, some with a notice period and some at a higher rate.
- Pronunciation dictionary
- A file of words and how to say them, which the API applies wherever those words appear.
Why it matters
Start with the . Its voices are Professional Voice Clones that their owners chose to share, some with a notice period of up to two years and some with a credit multiplier that raises the price, and ElevenLabs' Voice Library Addendum says audio made before a voice is withdrawn stays usable afterwards. Free accounts cannot reach the library through the API at all. An instant clone needs a paid plan and a minute or two of clean audio, and the app asks you to confirm you have the right and consent to clone the voice; a Professional clone can only be of your own voice, even with someone else's consent, according to the help centre. So a client's founder makes and verifies the clone in their own account and shares it with you, and the prohibited use policy bans replicating anyone's voice without consent or legal right.
Veo can speak the line itself, which is often enough for a draft. Google's Veo docs ask for dialogue in quotation marks, call English the only fully evaluated language and warn that a voice cannot be extended well unless it is heard in the last second of the clip, and the API has no setting that chooses the voice, so nothing holds it steady between takes. A separate voiceover costs less than a cent a line and stays one voice across thirty shots. The price is sync. A voice laid over a face that was generated silent will not match the mouth, so keep speaking faces away from camera while the voiceover runs, or send the pair through the lip-sync lesson.
Small habits save takes. Eleven v3 ignores SSML break tags, so pauses come from punctuation, ellipses and audio tags, and words such as 'she said warmly' are read aloud unless you cut them afterwards. Output is nondeterministic, and ElevenLabs says plainly that the seed setting makes a repeat more likely without guaranteeing it. Generate one line per request. Short requests are cheap to redo. The previous_text and next_text settings keep the delivery flowing across the joins, and ElevenLabs gives two free regenerations of an identical request when a take comes back distorted.
The rest of the module finishes the film around the voice. It starts with music, and the licences that decide whether a track can run in a paid ad, then turns to lip sync for the shots where a face has to say the line, comparing hosted services with open models. After that comes the picture itself. You upscale a generated clip, and make smooth slow motion by drawing new frames between the ones Veo made. The last part is the edit. You join clips with cuts and crossfades in ffmpeg, set the loudness each platform expects, and export one master as upright, square and wide versions without cropping away what the shot was about.
Elsewhere
Reading
- ModelsElevenLabselevenlabs.io
- Create speech (API reference)ElevenLabselevenlabs.io
- ElevenAPI quickstartElevenLabselevenlabs.io
- Text to speech best practicesElevenLabselevenlabs.io
- Voice cloningElevenLabselevenlabs.io
- Voice Library AddendumElevenLabselevenlabs.io
- Prohibited Use PolicyElevenLabselevenlabs.io
- API pricingElevenLabselevenlabs.io
- Generate videos with Veo 3.1 in Gemini APIGoogleai.google.dev
- Type
- technique
- Period
- ongoing