The script is the instrument, not the slider
The interfaces of read-aloud models are full of sliders: speed, stability, similarity, style. They count for something. But the result is decided far more by how the text is written.
There is a simple reason for that: the model infers the delivery from the text. It will read a long paragraph full of subordinate clauses monotonously, because that is how such things sounded in the training data. And it will read a text of short sentences broken up by punctuation with energy — for exactly the same reason. You do not set the emphasis, you write it.
There is no common markup language — the one thing to know
If a guide tells you to write a <break> tag for a pause, that is model-specific advice. Reality is messier than that, and this is the point where most of the time goes.
- At one large provider, on its newest model, square-bracket audio tags work — for a whisper or a laugh, say — while the pause tag that counts as the industry standard does not.
- At the same provider, on the previous model, it is the other way round: the standard pause tag works (with a ceiling of a few seconds) and so does pronunciation markup, but the audio tags do not.
- At another large vendor there is a proprietary square-bracket notation for the length of pauses.
- At a third there is no markup language at all: you describe in a plain sentence how it should sound.
The practical consequence: choose the model first, then learn its notation. The other way round does not work, and in most places a wrong tag does not raise an error — the model reads it out loud.
What works on every model
Fortunately there are four moves that improve things everywhere, with no markup at all.
- Short sentences. This is the single strongest tool. Where you put a full stop, you get a breath.
- Deliberate punctuation. A comma is a short pause, a full stop a longer one, a dash a break. An ellipsis adds hesitation — but it is easy to overdo.
- Numbers and abbreviations spelled out. "2026" becomes "twenty twenty-six", "approx." becomes "approximately". This is what models get wrong most often, and even more so outside English.
- Split into paragraphs. Do not feed the whole thing in as one block. Generating paragraph by paragraph keeps the pacing even, and you can redo a bad section on its own.
The emotion you cannot ask for
The obvious idea is to write it into the prompt: "read this enthusiastically". According to a 2026 measurement that improves practically nothing on read-aloud models. Emotion does not come from an instruction; it comes from the text and from the voice you picked.
What you can do instead: choose the voice to match the mood of the material, and write the text so that the emotion is already in it. An enthusiastic sentence is short, concrete and active. If the model does have emotional markup, use it — but know that the text itself is a stronger instrument than any tag.
Writing for your language
Two things deserve a separate check. The first is technical: verify that the specific model speaks your language. Not the provider — the individual model. Two models from the same company can have substantially different language lists, and the one advertised as "multilingual" is not necessarily the widest. This is the most common trap in this area.
The second is what the language itself does. If that language is English, the peculiarity is this: word order is largely fixed, so you cannot move a word to the front to stress it. Meaning is carried by sentence stress and intonation, and the model has to guess both from the text alone. That leaves you two levers: shorten the sentence, and put the key word where the stress falls naturally — at the end of a short clause, or straight after a dash. Spelling out numbers and abbreviations is still the strongest single fix here too, because a model that stumbles over "1,250" or "e.g." loses the rhythm of the whole sentence.
One rewrite, before and after
BEFORE (this will sound like a machine):
Under Art. 50 of the EU AI Act, providers must ensure by approx. 02/08/2026
that generated content is marked up in a machine-readable format,
which in practice means that...
AFTER:
Article fifty of the EU AI Act asks for one thing.
The provider has to mark generated content — in a machine-readable way.
The deadline is the second of August, twenty twenty-six.
In practice, this is what that means:
The difference is not in the content but in the structure: short sentences, numbers spelled out, a colon before the list, and no abbreviations at all. Same model, same voice, audibly different result.
Common misconceptions
- "The pause tag is universal." It is not. It differs from model to model, and in most places the model reads a wrong tag out loud.
- "If I ask for enthusiasm, I get enthusiasm." The measurements say the instruction barely helps. The text and the choice of voice are what count.
- "Long text should go in as one piece." Paragraph by paragraph is better: steadier pacing, and a bad section can be redone on its own.
- "My language works everywhere, only the quality changes." There are models that simply do not have it on the language list.
What to take away
Rewrite the text for reading aloud before you touch a single setting. Short sentences, numbers spelled out, deliberate punctuation — that is worth four times what the sliders are. Then choose a model, and only then learn its notation, because the notation differs from model to model. And check the language list on the specific model. If the narration is going into video, Native Audio in AI Video tells you what to leave to the video model, and on cloning your own voice there is Voice Cloning and Consent, which covers the rules.