SSML Support Across Commercial TTS Streaming APIs
Provider support for SSML tags varies sharply, forcing developers to test before choosing.

SSML puts developers in direct command of how a text-to-speech system shapes its output, getting around the guessing neural models would otherwise handle by themselves. Support for the W3C's XML-based standard varies sharply between providers. Across providers, which tags are supported, how neural voice models handle them, and which gaps proprietary extensions fill (or create) vary enough to make picking a provider without review a real business problem. The terrain below walks through each provider so the pick fits real needs, not marketing, and the stance here is blunt: don't optimize for full SSML compliance in anything conversational.
Most of the heavy lifting comes down to a handful of tags. A set time or level of silence is what <break> inserts. <prosody> adjusts pitch, rate, and volume, either through named presets or absolute and relative values. With <say-as>, ambiguous digits get a specific treatment, as a phone number instead of a cardinal number. <phoneme> takes the place of the engine's grapheme-to-phoneme work by setting an IPA or X-SAMPA spelling, a fix most needed for company labels, nouns, and clinical words a language model has yet to hear spoken. <sub> swaps in a plain-text alias for any abbreviation or acronym, making the output sound like normal speech. <emphasis> applies emphasis to single terms or longer expressions, though support is not universally consistent, as discussed below.
Before synthesis runs, the system parses the XML and follows its instructions across normalization (<say-as>, <sub>), phonemization via <phoneme>, plus prosody control through <break>, <emphasis>, and <prosody>. The markup never becomes audio; it's all consumed during parsing. Without SSML, systems work out pauses, formats for amounts, and syllable emphasis from nearby text, but that guesswork can fail and often changes each time. SSML is there to eliminate that variance.
Even the baseline varies. The most basic document has to open with <speak>, but some providers insist on xmlns namespace attributes, and the rest are fine with plain tags. It’s a tiny thing, but it shows a larger truth: a provider flips no simple switch for SSML support. It sits on a range, and each provider ends up in a different spot, so head-to-head comparisons earn their place.
Where SSML creates friction in real-time streaming architectures
Streaming TTS sends audio in chunks while it’s being made. Anything conversational has to work that way: a voice agent or phone tool has to begin speaking before the full reply is in place. Since SSML is XML, a parser can't work until it has a finished, well-formed document. When a pipeline gets tokens live from a language model, buffering is required: wait for the document closes tag, parse it, and synthesize.
Parsing barely registers against what a neural model spends during inference, so the issue is structural. A parser won't know a <speak> section has finished until it reaches the end tag, and tokens have no way into an unfinished document as they show up. It has to hold off. Engines using inline pronunciation notation rather than full SSML get past it, because no document needs closing.
Research notes set a specific benchmark: speech output must hit sub-300ms TTFB to avoid the satellite-phone vibe and sound like an actual back-and-forth. That figure alone splits providers into ones that work and ones that don't for real-time use, faster than any checklist could. It also splits providers into separate paths that rarely cross because they do different work. Speed decides whether instant chatbots work. Batch jobs and longer pieces, like audiobooks, online course narration, and phone prompts made once and used many times, can give up speed for better sound and more control. A provider strong on one front is usually weak on the other, so a buyer in this space has to figure out where their own application sits before looking at even one capability.
The three major cloud providers: Amazon Polly, Google Cloud TTS, and Microsoft Azure
According to Picovoice's guide, Amazon Polly, Microsoft Azure Speech Service, and Google Cloud TTS all back the complete core tag set: <break>, <prosody>, <say-as>, <phoneme>, <sub>, plus <emphasis>. Beyond that baseline, each provider takes its own path, adding proprietary extensions in some places while restricting tags on its latest neural voices in different areas.
The SSML writeup from Typecast.ai says Polly works with almost every standard SSML element and includes its own additions. Its prosody supports a range of speeds and volumes, with presets like x-slow and x-loud explicitly shown for developers. Polly includes x-amazon-pinyin, its own phonetic alphabet for Mandarin that fits inside the <phoneme> tag, and lets custom lexicons be loaded, which beats pasting in the same <phoneme> tags over and over throughout a document. Picovoice found that Polly's neural voices don't support <emphasis>, which is a real problem when migrating from Polly's standard voices to the newer ones. Testing has shown Polly's output to be consistent, though some find the voice quality less expressive. and that's the core trade-off: strong tag handling alongside a voice that still carries the feel of a TTS system from a few generations back. AssemblyAI's 2026 comparison names Polly with Azure for best enterprise-grade SSML control.
Google Cloud TTS offers over 300 voices and supports 50+ languages and dialects, including voice types like Standard, WaveNet, Neural2, and Studio. built on Google's WaveNet and Neural2 architectures. The core SSML tag set is covered, with speech speed and pitch control included, and it handles real-time streaming plus asynchronous work for big documents. Picovoice's study states that Studio voices and Chirp voices limit <prosody pitch>: the most lifelike voices also hand developers less control. Polly makes the same deal, only with different voices involved. Speechmatics says the best neural voices cost as much as $16 for every million characters at volume. In its 2026 guide, AssemblyAI names Google the best choice for apps in many languages and developers already using Google Cloud.
Picovoice's review puts Azure Speech Service ahead of the others for broadest SSML support. It supports over 140 voices and 70+ languages and dialects, and gives regulated sectors an option for local deployment when they can't route audio through an outside API. What makes it stand out is its set of proprietary extensions covering emotion and delivery, which developers find particularly useful for service applications. This truly sets it apart, not mere hype: service apps typically require tone set explicitly instead of guessed by a model picking up on clues, while Azure's tags provide developers a lever the others lack. Like Polly, Azure supports custom lexicons too. Pricing runs by voice type, and Custom Neural Voice needs its own price, see azure.microsoft.com. AssemblyAI's 2026 comparison puts Azure jointly with Polly on SSML control for enterprise, but it never proves the widest-language-coverage boast from Azure's marketing.
Each provider restricts its most expressive SSML tags on the neural voices developers prefer for better audio. Every vendor has this flaw: a structural tension between the way neural TTS models learn and what rule-based markup expects to steer. Neural TTS models train one way, rule-based markup tries to steer them another, and that gap shows up in slightly different ways with every major cloud provider. People picking a provider from a list, before testing <emphasis> with the specific voice, learn this through live problems later.
IBM Watson TTS: enterprise SSML with an on-premises option
Watson handles core SSML tags and custom lexicons, though its documentation does not highlight proprietary extensions beyond lexicon support. It offers WebSocket interfaces and REST, has real-time audio streaming, with outputs to OGG, FLAC, and MP3. WAV isn't on its list of output types, so check what's actually required before building a pipeline around it.
Deployment choices make Watson stand out, not any tag or voice-quality pitch. Watson runs locally and can be bundled in, offering self-hosting alongside Azure's approach. For compliance-heavy fields like medical records, banking, and public-sector deals where audio must stay inside a managed space no matter what, choosing the local-install route is the whole point of going with Watson over a standard cloud API. People don't choose Watson for the largest voice library or the best latency, and it won't come out ahead on those counts.
IBM charges based on usage, so get today's numbers confirmed by them instead of relying on past figures. Language support covers roughly a dozen languages plus dialects, with several voices for each, but is narrower than Azure, Google, or Polly. Watson sits in the mid-tier for latency and voice. Watson delivers solid SSML for enterprise use when keeping tight control over deployment matters more to oversight than having the biggest voice catalog.
ElevenLabs v3 and the decision to replace SSML with Audio Tags
ElevenLabs took a deliberate architectural call for v3: the model can't support SSML pause tags or the wider SSML set of tags, like their own article about v3 Audio Tags says. That comes down to how the model is built. ElevenLabs learns end-to-end from real speech rather than pushing text through a rule-based phoneme pipeline, so there's no XML parser sitting in the inference path for markup instructions.
ElevenLabs built Audio Tags: markup made on purpose to handle whispers, sighs, chuckles, and related cues that a phoneme-level tool wasn't built to express. Punctuation and wording shape the prosodic layer that <prosody> tags would normally cover, letting developers fine-tune how phrases land without parsing a full XML document. offlinetts.com, a third-party site, says ElevenLabs supports some of the subset of standard SSML tags like <prosody> and <break>, but that goes against what ElevenLabs says about v3. The article leaves that discrepancy open; it may depend on which model each side was testing.
ElevenLabs does fine on plain sound delivery, and Inworld's tests gave it 81.97% for pronunciation with 64.57% for prosody, topping OpenAI's TTS on both in that test. Latency shows the trade-off between how fast a model runs and its expressiveness. Gladia testing and a Deepgram guide both find Flash v2.5 delivers 75ms latency, quick enough for agents running in real time, whereas the expressive Eleven v3 model with Audio Tags runs at one or two seconds. The model built is for non-real-time and offline tasks, not a phone call, and making a latency-sensitive voice agent use drop-in v3 will fail once someone hears silence. ElevenLabs offers more than 10,000 voice options, and v3 covers 70+ languages. ElevenLabs v3 works well for audiobooks, voice cloning, or expressive narration. it won't suit shops whose enterprise pipelines rely on tag-level determinism that SSML was originally built to offer.
OpenAI TTS: natural-language style instructions instead of markup
OpenAI's TTS, the gpt-4o-mini-tts, goes another way: it uses plain-English directions to control how a voice comes across, no SSML needed. Ask for a steady, fast, or bedtime voice; the model infers fitting prosody from that guidance and nearby words.
This method gives up the precise control dedicated TTS services provide. LemonFox's analysis notes that OpenAI's system lacks the precise tag-level controls found elsewhere in this space, leaning instead on the model's own judgment about what "calm" or "urgent" should sound like moment to moment. Audio streams through chunked encoding, so playback begins while the full audio is still being made, letting it work for live tools without SSML. AssemblyAI verified OpenAI includes 11 voices built in, all with multilingual support. Inworld.ai lists tts-1 at $15 for every million characters, while tts-1-hd costs $30.
OpenAI customers already shipping on the stack who need spoken output can skip learning a new markup language and managing another vendor on top of their existing setup. Natural-language instructions are fast to scan and type, yet non-deterministic since one command can yield slightly different prosody between runs. For a chatbot's voice, this works. It's a real liability for regulated financial disclosures, medical instructions, or anything a compliance policy requires to be read aloud the same way every single time, and no amount of clever prompting fixes that.
Fish Audio S2, Cartesia, Rime, and Deepgram Aura-2: the streaming-first middle ground
A fresh crop of companies has claimed the space between complete SSML support and OpenAI's plain-language method, and that's where the market's energy is today. They focus heavily on streaming performance and create their own proprietary tag approach for expressiveness, skipping W3C compliance because most developers making conversational products will give up markup accuracy for low latency without blinking.
Fish Audio S2's emotion tag controls enable mid-sentence shifts in tone without restructuring the source script. Gladia's write-up from May 2026 says it's combining parameter-based simplicity with control that almost reaches SSML-level accuracy. In that same Gladia piece, its stated 200ms first-audio delay is the lowest listed. None of the sources checked confirm every SSML element gets handled, so the emotion controls look like their own closed path, not a wider take on W3C standard guidance.
Cartesia runs using its Sonic model group, Sonic 3.6 shipping as a test version in August 2026 before its public release. AssemblyAI's 2026 comparison singles out Cartesia for its sub-200ms streaming performance, while Speechmatics cites latency figures spanning 40 to 90ms. It handles 44 languages and covers emotions, laughing included. The materials checked here don't say if individual SSML tags work. Pricing runs by input size with volume discounts, see cartesia’s site. Cartesia targets latency-critical agents and on-device deployment, where 50 milliseconds is a constraint developers must respect.
AssemblyAI's chart includes Rime models: Mist v2, Coda, and Arcana, and Rime sits with Cartesia on sub-200ms streaming, while Speechmatics puts the sub-100ms figure with an on-premises deployment option. It gets expressiveness from real conversational speech, not tag manipulation, making it a very different choice than those markup-driven providers. The sources reviewed here also show no confirmed tag-level SSML support. Across these providers, SSML compliance is a non-priority rather than an oversight.
Together, these providers offer the actual path through this market, and most conversational products would be smart to start here instead of the SSML giants or OpenAI's prompt-only setup. They don't guarantee the exact control of Polly or Azure, and they don't make coders type out plain-English instructions like OpenAI does. Their view is that developers increasingly prize proprietary expressiveness controls and sub-200ms streaming above adherence to a decades-old markup standard. With real-time conversational agents replacing pre-rendered narration across most of the field, that wager pays off, and providers still committing fully to SSML compliance are going after a shrinking slice of demand.

Sources
- Top text-to-speech APIs in 2026
- SSML for Text-to-Speech: Complete Guide for Production TTS in 2026
- Best TTS APIs in 2026: ElevenLabs, Google, AWS & 9 More Compared
- Gladia - Best Text-to-Speech APIs for Developers in 2026
- 8 Best Text-to-Speech APIs for Developers (2026 Comparison)
- typecast.ai
- elevenlabs.io


