Guide
How to make an AI voice-over: a hands-on ElevenLabs guide
How we narrated hundreds of minutes of video with an AI voice: preparing the script, picking and tuning the voice, generating sentence by sentence without stitched intonation, captions from character timings and what it costs, measured on our recordings.
Published October 31, 2026
For our YouTube channel TellMeWhy we have had an AI voice read 3,449 sentences, about 395 minutes of speech across videos on 94 different topics. All of it was made with ElevenLabs. This is the workflow that has worked for us: how to prepare the script, pick and tune a voice, generate in pieces so the speech flows, and what it costs, measured on our own recordings.
1. Write the script for the ear
The voice reads exactly what you type, so most of the work is in writing for listening:
- Short sentences. A long sentence full of asides gets read, but the listener gets lost in it.
- Numbers, abbreviations and names the way they should sound. Multilingual v2 does not support phoneme tags, so if a word comes out wrong, spell it differently (phonetically, for example). Words that keep coming back can be fixed once in a pronunciation dictionary.
- Pauses with punctuation. Commas, full stops, dashes and ellipses make short pauses. The
<break time="1.0s" />tag is more precise, up to 3 seconds. It works with Multilingual v2; the newer Eleven v3 and v4 models do not support it. Don't overdo it: with many tags the voice may start to speed up or add artifacts.
One Multilingual v2 request takes up to 10,000 characters, about 11 minutes of speech at our pace. We generate one sentence at a time instead. A sentence that comes out wrong can then be redone on its own without paying for the whole script again.
2. Pick the voice with the same sentence
The voice library has hundreds of voices, and their own samples always sound good. What matters is how they read your text. So we had every candidate read the same sentence from our script and chose by listening to them side by side.
Two rules that paid off:
- One voice per project. The promo videos of our site Outcomo use a different voice from TellMeWhy, so nobody mixes them up.
- Don't switch voices midway. When we changed the channel's voice, we kept the older videos pinned to the original one. Fixing a single sentence would otherwise drop a stranger's voice into the video.
3. Voice settings
The same sliders are in the app and in the API. This is how we have ours:
| Setting | Default | Our first voice | Voice Will |
|---|---|---|---|
| Stability (stability) | 0.5 | 0.45 | 0.4 |
| Similarity (similarity_boost) | 0.75 | 0.75 | 0.75 |
| Style (style) | 0 | 0.15 | 0.2 |
| Speaker boost (use_speaker_boost) | on | on | on |
| Speed (speed) | 1 | 1 | 1.05 |
- Stability sets how much the delivery varies. Lower gives more emotion, higher a calmer and eventually monotonous voice. Ours are 0.45 and 0.4, below the default of 0.5, so the narration doesn't go flat.
- Similarity is how closely the voice sticks to the original. We leave the default.
- Style exaggerates the original speaker's delivery but slows generation down. A small value is enough for us.
- Speaker boost increases the similarity to the original voice. We keep it on.
- Speed of 1 is normal pace. Will speaks at 1.05.
4. Generate sentence by sentence, and keep the intonation
When sentences are generated separately, each may start with a different intonation and the result sounds stitched together. The API has two parameters for this: previous_text and next_text, the text before and after the current sentence. We send the neighbouring sentences with every request, and the joins sound continuous.
If a sentence doesn't come out right, generate it again: every take sounds a little different. Save credits, though: we regenerate only the sentences whose text, voice or settings changed. Everything else stays as it is.
5. Captions come for free
Besides the audio, ElevenLabs can return the time of every character (the with-timestamps request). We build word-by-word captions from it, so they match the speech exactly. The speaking rate below comes from the same timings.
What it costs
With Multilingual v2, every character of text costs 1 credit. Spaces, punctuation and pause tags count too. The ElevenLabs pricing page turns credits into minutes as if a minute had 1,000 characters. Ours came to 874 characters a minute (between 794 and 921 for most videos), so the same credits go a little further.
| Plan | Credits a month | Minutes of our speech |
|---|---|---|
| Free | 10,000 | 11 |
| Starter | 30,000 | 34 |
| Creator | 121,000 | 138 |
| Pro | 600,000 | 686 |
The free plan gives 10,000 credits a month, about 11 minutes for us. That is enough to try voices out. The pricing page lists the commercial license, needed for videos that earn money, from the paid Starter plan up.
In short
- Write for the ear: short sentences, numbers and names the way they are said.
- Pick the voice with the same sentence from your script, then stick with it.
- Lower the stability below the default if the voice sounds flat.
- Generate sentence by sentence and send the neighbouring text so the speech flows.
- Regenerate only what changed, and remember that spaces are paid for too.
Curious what happens inside an AI? Draw a digit or a letter and watch a neural network recognise it.
Try this too
How a neural network recognises digits and letters
Related articles
- Guide
How a neural network recognises a digit, step by step
We follow a handwritten digit through a real neural network: what it sees, how a neuron adds up, how the network learned its weights and which digits it mixes up most.
- Guide
How to write a good prompt: what worked for us building a website with AI
How to write instructions for AI that get the result you want: context and reasons, specific instructions, examples, sources instead of guesses, checking with tests, step-by-step plans, lasting instructions and skills. Based on the official guides and on how we build this site with Claude.
Data sources
- ElevenLabs, Pricing (credits a month by plan)
- ElevenLabs, How is character length calculated?
- ElevenLabs documentation, Models
- ElevenLabs API reference, Voice settings
- ElevenLabs documentation, Prompting controls (pronunciation and pauses)
- ElevenLabs API reference, Create speech (previous_text, next_text)
- ElevenLabs API reference, Create speech with timing
This guide is based on our own experience. Prices, products and features may change; see the maker’s or the service’s website for the current terms.