Free local tool · voice-agent readiness
SSML editor & validator
Catch malformed XML and common provider mismatches before a call pilot. Compare the same script across Google Cloud TTS, Amazon Polly Neural and Azure Speech Neural, with fixtures for callback numbers, reference codes, prices and pronunciation.
SSML controls a text-to-speech step when your voice stack accepts and passes through that markup. Verify this integration first. A native speech-to-speech model or a plain-text-only interface may need a different approach; this editor does not test your agent platform.
Loading a fixture replaces the editor. Check every digit, grouping and pauses using the exact locale you plan to deploy. Fixtures use synthetic details; replace them before deployment. Azure examples use an illustrative voice name.
0 / 50,000 characters checked. This editor limit is not a provider API limit or a billed-character count.
Escape text and build a safe snippet
Treat this input as plain text. Existing entity spellings are escaped again because they are literal text here. Insert replaces the current editor selection; place the cursor inside your speech tags first.
This free editor runs in your browser. Script text is never submitted to a server, AI model or speech provider, and is not saved to browser storage. Reloading clears it. External audio and entities are never fetched. There is no speech preview; listen using the exact provider and voice in your own pilot.
What the checks cover
The browser’s XML parser checks matching tags, quoted attributes, namespaces and built-in or numeric entities. The local linter then checks a documented subset, including the root, empty breaks, required pronunciation attributes and common provider differences. DOCTYPE and custom entity declarations are rejected before parsing. Scripts above 50,000 characters, 2,000 elements or 200 nesting levels need to be split.
- Polly Neural: emphasis and prosody pitch are unsupported. Character spelling can switch a sentence to the related Standard voice.
- Azure: the root needs version, language and synthesis namespace, with speech inside a named voice. Pronunciation, say-as and sub elements accept text only.
- Google: prosody and emphasis work best around complete sentences. Actual phoneme support depends on the language and alphabet.
Unknown tags, extensions and attributes are flagged for review rather than declared unsupported. The tool is not a complete SSML schema validator. It does not verify every attribute value, current voice availability, service quotas, synthesis cost, pronunciation quality or audio duration. A successful check cannot guarantee an API accepts the script. Exported XML stays exactly as entered; there is no silent provider conversion.
Use fixtures as a call-pilot checklist
Listen for leading zeros, currency ambiguity, locale-specific number grouping and names. Test the selected voice over your actual telephone codec, including interruptions and handoff timing. These synthetic fixtures prepare reproducible tests; the editor does not generate audio or perform a call transfer.
Keep the expected spoken wording beside each test case. Changing provider or engine can change the result even when the XML is unchanged. The comparison panel shows differences in the checked rules so you can choose what to test next.
Documentation behind the rules
Checked October 3, 2026. Provider implementations differ from the W3C SSML specification. Review current provider documentation and the chosen voice family before deployment.