TTS voice-language mismatch warning: confirm, then retry

Sume's TTS warns when a voice's language differs from `language`. No job or charge exists yet; after the user agrees, retry with `confirm_language_mismatch`.

4 min readSume
All posts

The warning means the voice you chose has a different primary language from the language you requested, so the speech may sound unnatural. Nothing has been created yet: Sume's text says no job or charge exists. If the user confirms, send the same request and the same idempotency key again with confirm_language_mismatch set to true.

Do not switch the voice, translate the transcript, or confirm on the user's behalf. That is the instruction in the warning's own next steps.

Why does this matter more now?

Cartesia's multilingual voices guide (read 2026-09-30) says one voice can speak several languages and accents, and that you can read a voice's accents list through its Get Voice call to see which. So a voice that is multilingual on the vendor side is a normal thing to pair with another language. Sume's check compares the voice's primary language, so a pairing can still raise the warning; the warning asks for a human decision, it does not say the result will be wrong.

What does the warning contain?

Warning fields from Sume's voice-language check, read 2026-09-30.
FieldMeaning
codetts_voice_language_mismatch, severity warning
voice_idThe voice you asked for
voice_languageThe voice's primary language
request_languageThe language you sent
messageA double-check ending with "Would you like to proceed with this voice?"

How do I confirm and retry?

Show the message to the person who owns the request and wait. The request schema describes confirm_language_mismatch as set true only after the user confirms the warning, to be omitted on the first request, and says confirmation does not change the voice or language. Reuse the same idempotency key so the retry is the same request. MCP callers see the warning as tts_voice_language_warning and retry with payload.confirm_language_mismatch=true.

curl -X POST https://api.sume.com/v1/tts-1.0/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: mismatch-demo-001" \
  -d '{
    "transcript": "Aapka order confirm ho gaya hai.",
    "avatar_handle": "acme",
    "language": "hi",
    "confirm_language_mismatch": true
  }'

When should I not just confirm?

If the mismatch is a mistake, fix the request instead: pick a voice that speaks the language, or correct language. Confirm only when the user knowingly wants that voice for that text, for example a deliberate accent. For general spelling and word fixes, see Text to speech pronunciation; for why a retry must reuse its key, see idempotency keys for AI video APIs.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume