An SSML document without Hangry declarations can be submitted unchanged to an SSML-H processor.
Hangry Labs Standard · Version 1.0
SSML-H
A backward-compatible extension profile for speech systems that need standard SSML controls and local generative capabilities such as on-demand character voices and per-turn direction.
https://hangrylabs.app/ns/ssml-h/1.0
Example prefix
h:
Input mode
ssml-h
01
Standard body, extended metadata
SSML-H preserves the W3C <speak> root and standard synthesis body. Hangry Labs declarations live inside standard <metadata>.
<speak
version="1.1"
xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:h="https://hangrylabs.app/ns/ssml-h/1.0"
xml:lang="en-US">
<metadata>
<h:extensions version="1.0">
<h:voice-definition
name="Bob"
gender="male"
age="elderly"
pitch="low"
style="warm"
languages="en-US"
accent="american"
dialect="midwestern"
scope="profile"
replace="true"
seed="4242">
<h:description>
A seasoned engineer with a warm, grounded voice.
</h:description>
<h:sample xml:lang="en-US">
My name is Bob. I have spent many years solving difficult problems.
</h:sample>
</h:voice-definition>
<h:voice-definition
name="Elisabeth"
gender="female"
age="elderly"
accent="american"
scope="request"
seed="8241">
<h:description>
A calm, precise coordinator with a clear American English voice.
</h:description>
</h:voice-definition>
</h:extensions>
</metadata>
<voice name="Bob" h:direction="Confident and upbeat">
Elisabeth, are we ready for launch?
</voice>
<break time="300ms" />
<voice name="Elisabeth" h:direction="Calm and reassuring">
Yes. <prosody rate="slow">Everything is prepared.</prosody>
</voice>
</speak>
Processors never infer XML from plain text. Clients deliberately select the ssml-h input mode.
A standard processor can ignore extension metadata, but cannot create or resolve a dynamically declared voice.
02
Character voices and directed turns
SSML-H creates bounded local voice references and adds optional natural-language delivery direction to standard <voice> turns.
request for temporary use or profile for atomic persistence.03
Bounded by design
Implementations publish capabilities and reject unsupported behavior before inference.
Parsing
DTD declarations, entities, external references, unknown synthesis namespaces, and unsupported markup are errors.
Resources
Source size, elements, nesting, breaks, definitions, synthesis units, bootstrap text, model tokens, and output duration are bounded.
Streaming
Streaming and complete output share one plan. A disconnect prevents profile publication and removes staged resources.
Capabilities
Processors report their standard elements, voice properties, languages, pronunciation alphabets, persistence policy, and limits.