MAI-Voice-2.1 emotion control vs Sonic's six emotions on Sume

Microsoft lists granular emotion control for MAI-Voice-2.1. On Sume, Sonic 3 rows take six named emotions in generation_config.emotion; Eleven rows have none.

5 min readSume
All posts

Sume's Sonic 3 rows take one of six emotions: neutral, content, excited, sad, angry or scared, set in generation_config.emotion, alongside speed (0.6 to 1.5) and volume (0.5 to 2). Microsoft says both MAI-Voice-2.1 variants have granular emotion control, and its page does not publish a fixed emotion list. Sume does not list MAI-Voice-2.1, so on Sume the six-emotion list is what you get.

Microsoft facts from its model page, read 2026-10-13; Sume settings from packages/api-contract/src/tts-router-models.ts on origin/main b28f3b0.

Delivery controls compared (read 2026-10-13)
ControlMAI-Voice-2.1 (Microsoft page)Sume Sonic 3 rowsSume Eleven rows
EmotionGranular emotion controlSix named emotionsNo emotion field in the catalog
SpeedNot stated on the page0.6 to 1.5, step 0.05Multilingual v2 and Turbo v2.5: 0.7 to 1.2
VolumeNot stated on the page0.5 to 2, step 0.05Not in the catalog
Voice from a short clipInstant voice matching, no fine-tuningVoice from the Sume Voices library (voice_id)Eleven voice ids

How do I use an emotion on Sume?

Pick a Sonic 3 row, send the emotion in generation_config, and keep the same voice and script across takes so you hear only the emotion change. The catalog field names are the source of truth; ask GET /v1/tts-router/models/sonic-3.6 for the exact settings object before you build a form around it.

What if the line needs a feeling the six do not cover?

Write it into the text and test a few takes. Delivery cues in the script are model-dependent, so run the same sentence on two rows and compare. Keep the take whose captions still match the words: script_text on video-captions burns your approved spelling, whatever the voice did.

Sources

Related posts

More in Models

All Models posts

Written by Sume