speed request parameter adjusts playback rate using pitch-preserving
time-stretching (WSOLA), so the voice stays natural at any rate. It applies
uniformly to all audio in the request — except inside
<prosody rate> spans, which override it.
Values outside
0.8–1.2 are rejected (400 on REST or a validation
error frame on WebSocket). Choose a value inside the range.
Per-span speed with <prosody rate>
To change speed for part of a request, wrap that text in an
SSML-style <prosody rate="..."> tag:
speed.
Rules:
- Inside a span,
rateoverrides the globalspeed; outside,speedapplies. Numeric span rates outside0.8–1.2are clamped to the nearest endpoint; unlike span rates, an out-of-range globalspeedis rejected. - Spans can cover anything from a few words to multiple sentences, and
<break>tags keep working inside them. - Spans cannot be nested, and
rateis the only supported attribute (pitch/volumeare rejected). - Malformed tags fail loudly — an unclosed
<prosody>, an unknown rate, or a stray</prosody>returns a400(REST) or an error frame (WebSocket) instead of being silently ignored. - On the streaming endpoints, a span must open and close within a single message.