SSML Editor Guide
Master Speech Synthesis Markup Language (SSML) to create natural, expressive text-to-speech audio.
How to Use
Step 1: Enter Text
- Type your content
- Wrap in SSML speak tags
- Add markup as needed
Step 2: Preview Audio
- Click play to hear result
- Adjust and iterate
- Compare variations
Step 3: Export
- Copy SSML code
- Download audio
- Save templates
SSML Basics
Document Structure
<speak>
Your content goes here.
</speak>
| Tag |
Purpose |
Example |
<break> |
Add pause |
<break time="500ms"/> |
<emphasis> |
Stress word |
<emphasis>important</emphasis> |
<prosody> |
Change rate/pitch |
<prosody rate="slow">...</prosody> |
<say-as> |
Interpret as type |
<say-as interpret-as="date"> |
Tag Reference
Break (Pauses)
<!-- Time-based pause -->
<break time="1s"/>
<break time="500ms"/>
<!-- Strength-based pause -->
<break strength="weak"/> <!-- 250ms -->
<break strength="medium"/> <!-- 500ms -->
<break strength="strong"/> <!-- 1s -->
<break strength="x-strong"/> <!-- 2s -->
Emphasis
<emphasis level="reduced">less important</emphasis>
<emphasis level="moderate">somewhat important</emphasis>
<emphasis level="strong">very important</emphasis>
Prosody (Voice Control)
<!-- Rate -->
<prosody rate="x-slow">Very slow speech</prosody>
<prosody rate="slow">Slow speech</prosody>
<prosody rate="medium">Normal speech</prosody>
<prosody rate="fast">Fast speech</prosody>
<prosody rate="x-fast">Very fast speech</prosody>
<prosody rate="80%">Relative rate</prosody>
<!-- Pitch -->
<prosody pitch="x-low">Deep voice</prosody>
<prosody pitch="low">Lower voice</prosody>
<prosody pitch="high">Higher voice</prosody>
<prosody pitch="+20%">Relative pitch</prosody>
<!-- Volume -->
<prosody volume="silent">Silent</prosody>
<prosody volume="soft">Quiet voice</prosody>
<prosody volume="loud">Loud voice</prosody>
<prosody volume="+6dB">Relative volume</prosody>
<!-- Combined -->
<prosody rate="slow" pitch="low" volume="soft">
Combined settings
</prosody>
Say-As (Interpretation)
<!-- Numbers -->
<say-as interpret-as="cardinal">123</say-as> <!-- "one hundred twenty-three" -->
<say-as interpret-as="ordinal">3</say-as> <!-- "third" -->
<say-as interpret-as="digits">123</say-as> <!-- "one two three" -->
<!-- Dates -->
<say-as interpret-as="date" format="mdy">12/25/2024</say-as>
<say-as interpret-as="date" format="dmy">25/12/2024</say-as>
<!-- Time -->
<say-as interpret-as="time" format="hms12">2:30pm</say-as>
<!-- Currency -->
<say-as interpret-as="currency">$99.50</say-as>
<!-- Telephone -->
<say-as interpret-as="telephone">+1-555-123-4567</say-as>
<!-- Characters/Spelling -->
<say-as interpret-as="characters">ABC</say-as> <!-- "A B C" -->
Phoneme (Pronunciation)
<phoneme alphabet="ipa" ph="təˈmeɪtoʊ">tomato</phoneme>
<phoneme alphabet="x-sampa" ph="t@"meItoU">tomato</phoneme>
Sub (Substitution)
<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="kilometers">km</sub>
Practical Examples
<speak>
Thank you for calling Acme Corporation.
<break time="500ms"/>
<prosody rate="95%">
For sales, press 1.
<break time="300ms"/>
For support, press 2.
<break time="300ms"/>
For billing, press 3.
</prosody>
<break time="500ms"/>
To repeat these options, press 9.
</speak>
Order Confirmation
<speak>
Your order
<say-as interpret-as="characters">ABC</say-as>
<say-as interpret-as="digits">12345</say-as>
has been confirmed.
<break time="500ms"/>
The total is <say-as interpret-as="currency">$149.99</say-as>
and will arrive by
<say-as interpret-as="date" format="md">03/15</say-as>.
</speak>
Appointment Reminder
<speak>
<prosody rate="95%">
Hi <break time="200ms"/> Sarah.
This is a reminder about your appointment
<emphasis>tomorrow</emphasis>
at <say-as interpret-as="time" format="hms12">2:30pm</say-as>.
<break time="500ms"/>
Please call
<say-as interpret-as="telephone">555-123-4567</say-as>
if you need to reschedule.
</prosody>
</speak>
Tips and Tricks
Natural Pauses
- Add breaks after commas and periods
- Use medium breaks between sentences
- Add longer breaks for new topics
Pronunciation Fixes
- Use
<sub> for abbreviations
- Use
<phoneme> for unusual words
- Use
<say-as> for numbers and dates
Common Mistakes
| Mistake |
Fix |
No root <speak> tag |
Always wrap in <speak> |
| Unescaped characters |
Use & < > |
| Missing closing tags |
Always close all tags |
| Wrong attribute syntax |
Use name="value" format |