Powered by KokoroTTS mascot

Inference startingWaiting for inference service
UI v1.0
Text
0 characters
Token details
Experimental

SSML input

SSML is used only when the orange SSML mode is active. Plain text remains the default. Language segments keep the current voice; voice segments create characters and multilingual dialogue.

<speak>
  <voice name="af_heart">Good morning, Michael.</voice>
  <break time="250ms"/>
  <voice name="am_michael">
    <prosody speed="0.9" pitch="-1st">Good morning. Coffee first?</prosody>
  </voice>
</speak>
<voice name="af_heart">...</voice>Switch voices between dialogue turns. The voice selects its native language unless a nested language is explicit.
<lang xml:lang="en-US">...</lang>Use another language frontend while preserving the current voice and its character.
<prosody speed="0.9" pitch="+2st" tempo="1.05" volume="0.9">...</prosody>Style one segment. Every attribute is optional; 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 without a break use 100ms.
<sub alias="spoken text">label</sub>Speak the alias instead of the label.
<say-as interpret-as="characters">SQL</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. Experimental English voices only.
<phoneme alphabet="ipa" ph="wˈɜːld">world</phoneme>Use Kokoro/eSpeak-compatible IPA directly.

Prosody ranges are speed and tempo 0.5-2, pitch -12st to +12st, and volume 0-2. Nested values compose with request-level controls and must remain in range; speed changes model delivery, while pitch, tempo, and volume are post-effects. Loudness normalization remains request-wide for complete files. One speak root is required. Voice names must be enabled by the deployment. Language tags accept served Kokoro codes and common BCP-47 forms such as en-US, zh-CN, and de-DE. Documents are limited to 50,000 characters, 256 elements, and eight nesting levels; direct phonemes to 510 characters and ordinals to 18 digits. Unsupported markup, unsafe XML, breaks over 10 seconds, and more than 30 seconds of total silence are rejected.