Skip to navigation

Speech Synthesis Markup Language (SSML)

Control speech synthesis with markup language

SSML is an XML-based markup language for controlling how text is spoken. On the current models, simba-3.5, simba-3.2 and simba-3.0, it sets pauses, speaking rate, pitch, volume and pronunciation. Wrap your content in a <speak> tag:

<speak>Your content to be synthesized here</speak>

Escaping Characters

Transforming text into SSML requires escaping certain characters to ensure correct interpretation:

CharacterEscaped Form
&&amp;
>&gt;
<&lt;
"&quot;
'&apos;
<!-- Original: Some "text" with 5 < 6 & 4 > 8 in it -->
<speak>Some &quot;text&quot; with 5 &lt; 6 &amp; 4 &gt; 8 in it</speak>

An attribute name or value we do not recognise is ignored, not refused. <prosody ptich="high"> (misspelled name) and <prosody pitch="hihg"> (misspelled value) both synthesize as ordinary speech and return 200. Malformed XML is different: unbalanced tags or undeclared entities return 400. If a tag seems to have had no effect, check the spelling of both the attribute name and its value.

What each model applies

Tagsimba-3.5, simba-3.2, simba-3.0Simba 1.6 (simba-english, simba-multilingual) until 2026-11-21
<break>AppliedApplied
<prosody rate>AppliedApplied
<sub alias>AppliedApplied
<prosody pitch>, <prosody volume>AppliedApplied
<emphasis>Accepted, not appliedApplied
<speechify:style emotion>Accepted, not appliedApplied

Accepted, not applied means the request still returns 200 and the text inside the tag is spoken, without the change the tag describes. Simba 1.6 is retired for new workspaces. From 2026-11-21 both of its ids are served by the current models, so they apply only the tags in the current-model column. See Migrating off Simba 1.6.

Supported SSML Tags

The prosody tag changes how a span is spoken. Every model applies rate, pitch and volume, with the same values. Nested prosody tags multiply: rate="slow" inside rate="slow" is 0.75 times 0.75 of the normal rate.

A prosody around a whole block of text costs nothing extra. One that changes part of a sentence has that part synthesized on its own, so the sentence’s intonation can break where the value changes.

<speak>
This is a normal speech pattern.
<prosody rate="fast">
I'm speaking faster than usual!
</prosody>
Back to normal speech pattern.
</speak>

Parameters

rate
string

Alters speech speed.

Values:

  • x-slow, slow, medium (also default), fast, x-fast
  • Percentage adjustments: -50% to +9900% (e.g., +20%, -30%)
pitch
string

Adjusts the pitch of speech delivery, without changing its speed.

Values:

  • x-low, low, medium (also default), high, x-high
  • Percentage adjustments: -83% to +100% (e.g., +20%, -30%)
volume
string

Controls speech loudness. A gain that would clip is held under a limiter.

Values:

  • silent, x-soft, soft, medium (also default), loud, x-loud
  • Decibel adjustments: Number with dB suffix, -60dB to +20dB (e.g., -6dB)
  • Percentage adjustments, relative to the voice’s own loudness: -100% to +900% (e.g., +20%, -30%). 100% doubles the gain; it does not mean unchanged. Omit volume, or use medium, for no change.

The break tag controls pausing between words, following W3 specifications.

<speak>
Sometimes it can be useful to add a longer pause at the end of the sentence.
<break strength="medium" />
Or <break time="100ms" /> sometimes in the <break time="1s" /> middle.
</speak>

Parameters

strength
string

Specifies pause strength.

Values:

  • none: 0ms
  • x-weak: 250ms
  • weak: 500ms
  • medium: 750ms
  • strong: 1000ms
  • x-strong: 1250ms
time
string

Specifies pause duration (0-10 seconds). A single break is capped at 10 seconds, and the total silence one document may insert is capped at 30 seconds - past that, further pauses are dropped rather than rejected.

Values:

  • Milliseconds: ms suffix (e.g., 100ms)
  • Seconds: s suffix (e.g., 1s)

The emphasis tag adds or removes emphasis from text, modifying speech similarly to prosody but without setting individual attributes. Simba 1.6 only: simba-3.5, simba-3.2 and simba-3.0 accept it and speak the text without emphasis.

<speak>
I already told you I <emphasis level="strong">really like</emphasis> that person.
</speak>

Parameters

level
string

Specifies emphasis level.

Values:

  • reduced
  • moderate
  • strong

The sub tag replaces pronunciation for contained text, following W3 specifications.

<speak>
For detailed information, please read the <sub alias="Frequently Asked Questions">FAQ</sub> section.
</speak>

Parameters

alias
stringRequired

Specifies text to be spoken instead of enclosed text.

The speechify:style tag sets an emotion style. Simba 1.6 only: simba-3.5, simba-3.2 and simba-3.0 accept it and speak the text without the style. See Emotion styles.

<speak>
<speechify:style emotion="cheerful">Great news! Your order shipped!</speechify:style>
</speak>

Parameters

emotion
string

Sets the voice emotion on Simba 1.6. Values: angry, cheerful, sad, terrified, relaxed, fearful, surprised, calm, assertive, energetic, warm, direct, bright.

Examples

<speak>Welcome to SpeechifyAI Build.</speak>