Mandarin Chinese TTS API for batch content pipelines — Audra

Mandarin narration fails in batch pipelines for one reason: reading selection. Audra ships eight zh Essential presets that read simplified-Han input naturally — the pipeline work is picking the slug and spot-checking polyphones, not wiring a new vendor.

Mandarin voice slugs on Essential

Mandarin-specific pitfalls

Example request in Mandarin (zh-CN)

curl
curl https://audratalks.com/v2/speech \
  -H "Authorization: Bearer sk-live-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"audra-essential","text":"\u6b22\u8fce\u6765\u5230\u7b2c\u4e09\u8bfe:\u672c\u7ae0\u4ecb\u7ecd\u6e32\u67d3\u961f\u5217\u7684\u5de5\u4f5c\u65b9\u5f0f\u4e0e\u5e38\u89c1\u95ee\u9898\u3002","voice":"xiao","language":"zh-CN","format":"mp3"}' \
  --output out.mp3
Python
import requests

r = requests.post(
    "https://audratalks.com/v2/speech",
    headers={"Authorization": "Bearer sk-live-YOUR_KEY"},
    json={
        "model": "audra-essential",
        "text": '欢迎来到第三课:本章介绍渲染队列的工作方式与常见问题。',
        "voice": "xiao",
        "language": "zh-CN",
        "format": "mp3",
    },
    timeout=120,
)
r.raise_for_status()
open("out.mp3", "wb").write(r.content)
JavaScript
import { writeFile } from "node:fs/promises";

const res = await fetch("https://audratalks.com/v2/speech", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk-live-YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "audra-essential",
    text: '欢迎来到第三课:本章介绍渲染队列的工作方式与常见问题。',
    voice: "xiao",
    language: "zh-CN",
    format: "mp3",
  }),
});

if (!res.ok) throw new Error(await res.text());
await writeFile("out.mp3", Buffer.from(await res.arrayBuffer()));

Test xiao on your real lesson script — API key at /dashboard, 25k free characters.

FAQ

Simplified or Traditional input?

Essential zh presets target Simplified (zh-CN). Preview Traditional input on /voices before committing it to a batch.

How do I fix a misread polyphone?

Rephrase around it, or add an account lexicon entry (/docs) that pins the reading for that term.

Same pricing as English?

Yes — zh is one of the ten Essential languages at $25/1M characters before multipliers.

Voice catalogue: /voices. Batch strategy for long Chinese docs: jobs API, one chapter per request.