SSML markup generator
Wrap plain text in valid SSML tags for text-to-speech: pauses, emphasis, pronunciation and pacing.
SSML markup generator
Paste plain text and this tool wraps it in Speech Synthesis Markup Language (SSML) — the XML dialect that Amazon Polly, Google Cloud Text-to-Speech and Azure Speech all use to control how synthesized voices read a script. Paragraphs become <p> elements, sentences become <s> elements, and the tool inserts <break> tags between them so pacing is explicit instead of left to the engine's guesswork.
The options panel controls how much markup gets added. Set the pause length between sentences and between paragraphs in milliseconds, and pick a speaking rate and pitch — non-default values wrap the whole output in a <prosody> tag. Turn on emphasis to convert *starred* words into <emphasis level="moderate">, and turn on acronym spelling to wrap ALLCAPS runs like "NASA" in <say-as interpret-as="characters"> so they get read letter by letter instead of as a made-up word. A custom pronunciation dictionary lets you map specific words to a replacement, rendered as either a <sub alias="…"> substitution or a <phoneme alphabet="ipa" ph="…"> — useful for names, brand terms or words the default voice mispronounces.
The target platform setting adjusts the root <speak> element: Azure needs a version, namespace and xml:lang attribute that Amazon Polly and Google Cloud TTS don't require, so switching platforms changes just that wrapper. Sentence splitting is a plain heuristic based on ./!/? — it doesn't recognize abbreviations like "Dr." as non-terminators, so check the output on text with a lot of abbreviations. The "check XML validity" option verifies the generated markup is structurally well-formed (every tag closes correctly) before you copy it.
Everything runs locally in your browser — your script is never uploaded anywhere. When the markup looks right, copy it, download it as a .txt file, or send the output to another tool's input to keep editing.