Skip to main content

Timed pauses and expressive audio cues in voice prompts

Your prompt tells a voice agent what to say. Performance cues, written inline in the same text, tell it how to say it. Two cue families work in agent prompts and voice-broadcast scripts: timed pauses ([pause:1.5s]) that render as real silence, and expressive tags ([sigh], [laughs]) that color the delivery. This guide covers the syntax, how each voice family renders each cue, and the preview loop to hear the result before callers do.

Why cues exist

Digit and code spacing. “Your code is 4 8 1 9 2 7” read in one breath is hard to write down. Callers chunk digits in groups of three or four; a beat between groups gives them time to keep up. Timed pauses let you author that spacing instead of hoping the model inserts it. Empathetic beats in support scripts. A short silence before difficult news reads as care rather than delay, and a lighter delivery on good news reads as warmth. Support, collections, and reminder scripts use cues to place those beats exactly where the conversation needs them, the same way a human agent would.

Timed pauses: [pause:Xs] and [pause:Xms]

A timed pause is an inline marker with a duration in seconds or milliseconds:
The caller hears one second of silence between the two digit groups, on every call, every time. Decimals are allowed ([pause:1.5s], [pause:300ms], [pause:.5s]), and casing and spacing inside the brackets are tolerated ([ PAUSE : 2 S ] works). Durations are clamped to keep calls sane: A marker without a valid number and unit ([pause:2], [pause:s]) is not a pause at all. It is sent to the voice as ordinary text, so always pair the number with s or ms. Timed pauses render as exact, platform-guaranteed silence on Cartesia voices: the speech around each marker is synthesized separately and real silence is spliced between the parts. On other voice families the marker is handed to the model as part of the text (see the matrix below), so if your script demands exact spacing, for example one second between OTP digit groups, use a Cartesia voice. See voice clones for choosing and creating voices.

Expressive tags: [sigh], [laughs], [whispers], and friends

Expressive tags are bracketed cues the tag-aware ElevenLabs v3 model interprets as delivery: [excited], [whispers], [laughs], [sighs], [gasps], [long pause], and similar vocal cues. Write them where the beat belongs:
Three things can happen to a bracketed cue, depending on the voice that reads it:
  1. Tag-aware model (ElevenLabs v3 with the agent’s expressive audio tags setting on). The cue reaches the model unchanged and colors the delivery: a whisper, a laugh, a sigh, an excited opener.
  2. Latency-tier model (ElevenLabs Flash / turbo v2.x, and Cartesia). Recognized cues are silently removed before synthesis. The caller hears “I am sorry, that room is no longer available.” with the wording intact and no bracketed text read aloud, so a script authored for v3 degrades gracefully on a faster voice.
  3. Arbitrary brackets, on every voice. Text that is not a recognized cue, such as [FirstName], [1], or [account id], is never stripped and passes through exactly as written. Your own placeholder or literal bracket syntax is safe; only curated performance cues are treated specially.
Strip matching is forgiving on the cue itself (casing and inner whitespace are tolerated, so [WHISPERS] and [long pause] still match) but the brackets must be closed and the cue must be one the voice recognizes.

Provider matrix

Read the matrix as an authoring rule of thumb: Cartesia voices give you exact timed pauses and safely swallow expressive tags; ElevenLabs v3 gives you the full expressive range with model-paced pauses; the latency tier is the safe fallback that never reads a recognized cue aloud but also never renders one.

Audition the render before you go live

Cues are interpreted at synthesis time, so always listen to the rendered audio with the same voice your callers will get:
  • AI voice agents: place a Test by voice call from the agent’s studio and listen on your own phone. The call runs your live prompt, voice, and settings end to end, exactly as a caller experiences them.
  • Voice broadcasts: use Generate preview on the broadcast before you launch it. The preview renders the script with the campaign’s voice so you can hear every pause and digit group before a single contact is dialed.
Pay attention to the cells your script depends on: the digit-group spacing, the beat before the key sentence, and (on v3) the delivery the tags produce.

Pitfalls

  • Unclosed or misspelled cues. [sigh without a closing bracket, or a cue outside the recognized set, matches nothing and is spoken literally on every voice. If you hear brackets on a call, check the cue’s spelling and closing bracket first.
  • Long pauses early in the greeting. Silence before your first word delays the moment the caller hears anything, and a caller who hears nothing may hang up or say “hello?” over your agent. Keep the opening sentence pause-free and place beats after it.
  • Tags read verbatim on the wrong model. A script full of expressive tags only renders them on a tag-aware voice. On the latency tier the recognized cues are stripped (usually what you want), but unclosed or unrecognized brackets still get read. Audition with the voice the agent or broadcast actually uses, not the one you tested with.
  • Exact timing on model-paced voices. ElevenLabs v3 interprets pause cues in its own way and does not guarantee a duration. When the script demands a precise gap, use a Cartesia voice and the timed syntax.