Mandarin Chinese text to speech API: MAI-Voice-2.1 zh-CN vs Sume zh
MAI-Voice-2.1 lists Chinese (Simplified) as zh-CN; Sume tags zh and bills by character. Audition Mandarin ad copy for 1 cent and know what to check.

For Mandarin ad copy in simplified characters, both MAI-Voice-2.1 (zh-CN) and Sume (zh voice tag) are in scope. Traditional characters and Cantonese are not on Microsoft's list. A one-cent Sume audition tells you whether a voice reads your copy the way you want.
What Microsoft lists
Microsoft's model page lists Chinese (Simplified), and the OpenRouter Flash page shows a single zh-CN code. There is no Traditional Chinese or Cantonese entry in what I read.
| Locale code | Listed on | Note |
|---|---|---|
| zh-CN | MAI-Voice-2.1 and Flash | Chinese (Simplified); the only Chinese entry |
| zh-TW, yue | Not listed | Traditional Chinese and Cantonese are not on either list |
| zh | Sume voice tag | One Chinese tag |
What Sume ships
Sume tags a single zh language. Send simplified text with language: "zh". The documentation does not promise Cantonese or a Taiwan-specific read, so test those separately and do not infer support from the tag.
Sume's TTS Router (POST /v1/tts-router/generate) takes a required model (sonic-3.6, sonic-3.5, sonic-3, sonic-latest or sonic-preview), one of transcript or transcript_source, a voice selector and a language string of 2 to 16 characters. It is character-metered at $0.0475 per 1,000 characters, rounded up to whole cents per job, with a 20,000-character cap per request.
A one-cent audition
Write one line of about 200 characters that contains your hardest words: a price, a date, a brand name and a number. Save it as line.txt, then submit it and read the job. A line of 210 characters or fewer is the minimum one-cent job. Set language to the code you will use in production; if the chosen voice is tagged for a different language you get the 409 guard rather than a charge.
JOB=$(curl -sS -X POST https://api.sume.com/v1/tts-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: audition-zh-001" \
-d "$(jq -n --rawfile t line.txt '{model:"sonic-3.6",transcript:$t,avatar_handle:"product_host",language:"zh"}')" \
| jq -r '.data.request_id')
curl -sS https://api.sume.com/v1/jobs/$JOB/status -H "Authorization: Bearer $SUME_API_KEY"
curl -sS https://api.sume.com/v1/jobs/$JOB/result -H "Authorization: Bearer $SUME_API_KEY"What to listen for
- Arabic numerals and units: 5kg, 30%, 12:30 and Latin product codes are classic traps; put each in the test line.
- Latin brand names: check whether the voice reads them as English words or as letters.
- Full-width versus half-width punctuation: pick one in the script so pauses fall predictably.
- Polyphonic characters: a place name read with the wrong tone is the failure to listen for.
- Length: one Chinese character is one character for billing, so a Chinese script is shorter in characters than the same script in English.
What it costs
At $0.0475 per 1,000 characters, a 300-character Chinese read is 2 cents; a 1,000-character narration is 5 cents.
| Test | Characters per line | Jobs | Sume cost |
|---|---|---|---|
| One line | 210 or fewer | 1 | $0.01 |
| 8 lines (one per hard case) | 210 or fewer | 8 | $0.08 |
| One 1,000-character script | 1,000 | 1 | $0.05 |
Where this stops
Sume's TTS is asynchronous: you submit, poll GET /v1/jobs/:id/status, then read /result. It does not stream audio and it has no SSML field, so pauses and emphasis come from your punctuation and the generation_config controls (speed 0.6 to 1.5, volume 0.5 to 2, a short emotion guide). Microsoft's Flash model is the one built for live conversation; for a rendered ad or a narrated video, a finished file is the thing you need.
Sources
Related posts
More in Models
- Which Foundry models add C2PA and a watermark: GPT Image, FLUX.2, MAI
Microsoft's Foundry page lists the image, audio and voice models that get C2PA credentials and watermarks. What that does and does not tell you about Sume.
- MiniMax H3 API: the cheapest Sume job is 5 s at 480p, $0.3125
On Sume the minimax-h3 model takes 5 to 15 seconds at native 480p or 768p, with 2K and 4K upscales billed on request. Price table by length inside.
- MiniMax H3 Max: five free fal runs a day, then the Sume cost per clip
fal's page offers five free H3 Max generations a day of up to 15 seconds. Use them to test a prompt, then price the paid clip on Sume at 480p, 768p or 1080p.
- MiniMax H3 open weights: what is released and what stays hosted
MiniMax released H3-Base, FL2VA and Ref2VA checkpoints at 768p. Context-IR and the 2K regeneration module stay hosted. What that means for a Sume API user.
Written by Sume