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 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.
- MiniMax says H3 is 2K: what Sume lists, 768p to 1080p
MiniMax's own page puts H3 at 2K and 15 s. Sume lists native 768p for H3 and H3 Max, 1080p refinement on Max, and priced 2K/4K upscale SKUs on H3. Prices.
Written by Sume