An Azure service that integrates speech processing into apps and services.
Hello @Fernandes, Alexander (CIHR/IRSC)
Thanks for the detailed question — and I'm glad the Dragon voices are working well for your learning content. What you're running into is real, and it comes down to how these voices are built, so let me explain it and then give you what you can do about it today.
Why this happens
Dragon HD voices are LLM-based. Instead of applying fixed phonetic rules, they infer pronunciation and prosody from the meaning of your text, and they're non-deterministic by default (the temperature parameter defaults to 1.0). That's where those odd renderings come from — sounds that aren't in the word you typed.
The same design is why the editing controls are greyed out in Speech Studio. mstts:silence, <prosody>, and <emphasis> are unsupported on every Dragon HD variant. <phoneme> and <break> are supported on DragonHD (but not on Dragon HD Omni), and <lexicon> works on both — for alias entries only.
What you can do right now
- Drop temperature to 0.3. The 1.0 default is the biggest single contributor to unpredictable output. <voice name='en-US-Ava:DragonHDLatestNeural' parameters='temperature=0.3'> Synthesize the same sentence five times and confirm the renders now match each other.
- Turn on enhancePronunciation. It's off by default and adds linguistic processing aimed at proper nouns, acronyms, mixed-case text, and context-ambiguous words — basically the profile of instructional vocabulary. Re-synthesize one of your known-bad terms with it on and A/B it against the original. It complements SSML pronunciation tags rather than replacing them.
- Confirm you're on DragonHD, not Omni, then use <phoneme> and <break>. Check that your voice string ends in :DragonHDLatestNeural. Omni trades away <phoneme> and <break> for style control and word boundary events, so for pronunciation-critical narration DragonHD is the right base model. Wrap the problem word in <phoneme alphabet="ipa" ph="…">…</phoneme>, and use <break time="800ms"/> wherever you'd have reached for silence — then confirm the pause shows up in the exported waveform.
- Build an alias-based custom lexicon for your recurring course terms. This is the only mechanism applied consistently across every request, so it's the highest-leverage fix for a content library. A few details worth knowing up front: author entries as respellings, not IPA (Dragon honors alias only); 100 KB max per file — requests fail above that, so split into multiple lexicons; one locale per lexicon; lexeme entries are case-sensitive; alias takes priority over phoneme for the same grapheme; and the file is cached by URI for up to 15 minutes, so edits aren't instant. Validate with the Custom Lexicon Validation tool, wait 15 minutes, then re-synthesize.
- For the few segments that truly need an unsupported tag — a workaround, not a fix. Synthesize just that segment with the non-HD counterpart of the same persona (e.g. en-US-AvaNeural), which supports the full SSML set, and splice it into the Dragon narration. HD voices keep a consistent persona with their non-HD counterparts, so the seam shouldn't be audible. Render one paragraph both ways and listen at the splice point to satisfy yourself.
On your roadmap question — straight answer
I couldn't find any published Microsoft roadmap commitment or announcement stating that <prosody>, mstts:silence, <emphasis>, or full lexicon-phoneme support will be enabled for Dragon voices, and I'd rather tell you that plainly than speculate.
What I can point to is that the Dragon family is clearly gaining editing capability: Dragon HD Omni shipped mstts:express-as style control with 60+ styles and 6 paralinguistic tags, multilingual auto-detection, and word boundary events, and enhancePronunciation was added specifically to improve pronunciation accuracy on HD voices. Worth knowing too: styles work on Dragon voices via inline markers in plain text — e.g. [reassuring] Let's review what we covered. — which may give you some of the expressive control you're after without SSML at all.
For your two specific asks (silence and pronunciation controls on Dragon voices), the product feedback channel in Speech Studio / Microsoft Foundry is the route that reaches the product group directly. It's genuinely read, and requests from customers using these voices at scale in production carry weight.
References
- High-definition voices — supported/unsupported SSML matrix: https://learn.microsoft.com/azure/ai-services/speech-service/high-definition-voices#supported-and-unsupported-ssml-elements-for-azure-speech-hd-voices
- enhancePronunciation parameter: https://learn.microsoft.com/azure/ai-services/speech-service/high-definition-voices#parameter-enhancepronunciation
- Dragon HD Omni advanced features and parameter tuning: https://learn.microsoft.com/azure/ai-services/speech-service/high-definition-voices#dragon-hd-omni-advanced-features
- Custom lexicon (size limit, cache behavior, alias/phoneme priority): https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-pronunciation#custom-lexicon
- Custom Lexicon Validation tool: https://github.com/Azure-Samples/Cognitive-Speech-TTS/tree/master/CustomLexiconValidation
- Styles and paralinguistics in HD voices: https://learn.microsoft.com/azure/ai-services/speech-service/speech-synthesis-markup-voice#styles-and-paralinguistic-in-hd-voices
Thanks,
Manish.