# SSML Editor - Complete Guide

> Edit and preview Speech Synthesis Markup Language. Create natural-sounding text-to-speech with precise control.

Source: https://edesy.in/docs/tools/voice-ai-tools/ssml-editor

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

```xml
<speak>
    Your content goes here.
</speak>
```

### Common Tags

| 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)

```xml
<!-- 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

```xml
<emphasis level="reduced">less important</emphasis>
<emphasis level="moderate">somewhat important</emphasis>
<emphasis level="strong">very important</emphasis>
```

### Prosody (Voice Control)

```xml
<!-- 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)

```xml
<!-- 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)

```xml
<phoneme alphabet="ipa" ph="təˈmeɪtoʊ">tomato</phoneme>
<phoneme alphabet="x-sampa" ph="t@&quot;meItoU">tomato</phoneme>
```

### Sub (Substitution)

```xml
<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="kilometers">km</sub>
```

## Practical Examples

### IVR Menu

```xml
<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

```xml
<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

```xml
<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 `&amp;` `&lt;` `&gt;` |
| Missing closing tags | Always close all tags |
| Wrong attribute syntax | Use `name="value"` format |

## Related Tools

- [Text-to-Speech Demo](https://edesy.in/tools/text-to-speech-demo) - Preview voices
- [Voice Latency Tester](https://edesy.in/tools/voice-latency-tester) - Test API latency
- [IVR Script Generator](https://edesy.in/tools/ivr-script-generator) - Create IVR scripts
