I’m using the spaced-dash format from the docs to slow the agent down when it reads an email or phone number back for confirmation.
The transcript confirms the model is generating it correctly — e.g. j - o - h - n - - at - - g - m - a - i - l - - dot - - c - o - m — so this isn’t a prompting issue. But the audio output ignores the pauses completely and reads it at full conversational speed, which makes it hard for callers to follow or catch a mistake.
Questions:
Do all voices honour the spaced-dash pacing format, or is it provider-specific? (
Is there a recommended voice for read-back use cases like phone numbers and emails?
Is there any way to slow speech for just part of a node, rather than using the node-level Voice Speed override which affects the whole node?
Agent is a conversation flow agent, LLM is GPT 5.4.
Quick update — I figured out part of it. ElevenLabs voices ignore the spaced-dash pauses completely (they show in the transcript but do nothing in the audio). Platform voices do honour them.
The problem now is it doesn’t sound natural at all. If you listen to the last few seconds of that call, it’s an even, robotic gap after every character rather than how a person would actually spell something out.
What’s the best way to get this sounding like a real person reading an email or phone number back? Is there a way to vary the pause lengths or group digits naturally, rather than a uniform pause after every character?
Hello @donellbernard01 Good catch on the ElevenLabs vs platform-voice split — that matches how our preprocessor works: it rewrites our own spaced-dash syntax into a pause only when the call is routed through the platform pipeline; for ElevenLabs it’s passed through and the ElevenLabs normalizer largely ignores it.
Why the platform-voice readback sounds robotic: every - gets compiled into the same short pause, so per-character dashes give you a metronome of identical gaps. A human doesn’t spell like that — they chunk into 3-4 characters at a time, take a longer breath between chunks, and speak the “at”/“dot” words naturally instead of as isolated tokens.
The fix is to shape the cadence, not just the pause length. On a platform voice you can freely mix separators:
**Commas** produce a natural ~300–500 ms prosodic beat.
**Spaced dash -** produces a shorter hard break (~200 ms).
**Two spaced dashes - -** produce a longer pause.
**A period** produces the longest natural pause (sentence boundary).
Recommended patterns for bonalbernard01@gmail.com:
Grouped spellback: b o n a l, b e r n a r d, zero one, at gmail dot com — letters within each chunk are spoken as one word-ish burst, commas give a real breath between chunks, and the domain is spoken naturally instead of letter-by-letter.
Slightly more emphatic: b o n a l - - b e r n a r d - - zero one - - at gmail dot com (double-dash between chunks on a platform voice for a longer, more deliberate pause).
If you want the very first mention slower for confirmation, prepend a lead-in: That's b o n a l, b e r n a r d, zero one — at gmail dot com. Is that right? The natural sentence prosody breaks the metronome feel entirely.
For NANP phone numbers (415) 555-1234:
four one five, five five five, one two three four — commas give the standard 3-3-4 human grouping without any dashes. This is the most natural pattern on every provider we tested.
If a caller mishears, follow up with a more paced version: four - one - five - - five - five - five - - one - two - three - four (per-digit dashes with double-dashes at the group boundaries) on a platform voice.
Two things to know:
Vary the separator by position rather than using one separator uniformly — that’s what breaks the robotic pattern.
This only works on platform-routed voices (as you noticed). ElevenLabs flash_v2/turbo_v2 will still ignore dashes; if you want the same technique on an ElevenLabs voice, switch to eleven_v3 which honors SSML and use <break time="400ms"/> at the chunk boundaries instead.