SSML is used only while the orange SSML mode is active. Plain text remains the default. Melo can switch loaded language models and speakers between dialogue turns.
<speak>
<voice name="EN-Newest">Good morning.</voice>
<break time="250ms"/>
<voice name="ES">
<prosody speed="0.9" pitch="-1st">Buenos dias.</prosody>
</voice>
</speak>
<voice name="EN-Newest">...</voice>Switch to any speaker currently shown by the Voices endpoint. The speaker selects its native language model unless a language is explicitly nested.
<lang xml:lang="es-ES">...</lang>Switch language models while retaining the current speaker. The speaker must exist in that model; use voice for reliable multilingual dialogue.
<prosody speed="0.9" pitch="+2st" tempo="1.05" volume="0.9">...</prosody>Style one segment. Omitted or blank values inherit unchanged.
<break time="500ms"/>Set the complete pause at this boundary, up to 10 seconds. Use 0ms for no gap; adjacent turns use 100ms.
<sub alias="spoken text">label</sub>Speak the alias instead of the visible label.
<say-as interpret-as="characters">API</say-as>Read characters separately.
<say-as interpret-as="number">42</say-as>Read a numeric value normally.
<say-as interpret-as="ordinal">3</say-as>Read an English ordinal. This is limited to English models.
Prosody ranges are speed and tempo 0.5-2, pitch -12st to +12st, and volume 0-2. Nested values compose with request controls and must remain in range. Complete-file normalization remains request-wide. One speak root is required. Documents are limited to 50,000 characters, 256 elements, and eight nesting levels. Breaks are limited to 10 seconds each and 30 seconds total. Unsupported markup, unsafe XML, and direct phoneme input are rejected.
Optional online download
Enable language pack
The first download requires an internet connection. Model files are stored under /app/persistent; mount the documented Docker volume to keep them across container and image upgrades.
Review upstream model terms
Cancel
Accept, download, and enable