SSML-compatible, Hangry Labs extended

Define the cast.
Generate the conversation.

SSML-H adds request-scoped voice design to standard SSML. One document can create distinct characters, direct each turn, add pauses, and return one finished audio file without preparing voice profiles first.

OmniVoiceTTS mascot
What the extension adds

Portable characters on top of SSML

<h:voice-definition>

Describe gender, age, pitch, accent, style, seed, and lifetime. OmniVoiceTTS creates the voice before speaking the dialogue.

scope="request"

Keep generated characters private to one synthesis request. Use profile scope only when a reusable voice should be published after successful generation.

Standard SSML remains valid

Use voice turns, prosody, breaks, language changes, substitutions, and supported pronunciation controls alongside SSML-H metadata.

Native API

Generate your own cast

curl -X POST "http://localhost:7861/tts/generate" \
  -H "Content-Type: application/json" \
  -d '{"input_type":"ssml-h","text":"<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\" scope=\"request\" seed=\"4242\"/></h:extensions></metadata><voice name=\"Bob\">Hello from SSML-H.</voice></speak>","seed":24680,"randomize_seed":false,"output_format":"mp3"}' \
  -o dialogue.mp3