Odia and Urdu text to speech API: the language codes

Cartesia's Sonic 3.6 adds Odia (`or`) and Urdu (`ur`). On Sume, send the code in `language`, pin `sonic-3.6`, and check the voice before you pay.

4 min readSume
All posts

The language codes are or for Odia and ur for Urdu. Cartesia added both in Sonic 3.6, and on Sume you send the code in the TTS request's language field with model set to sonic-3.6 on the TTS Router. Sume's docs do not list which languages each router model accepts, so check the audio for your own text.

Which codes did Sonic 3.6 add?

Cartesia's Sonic 3.6 page (read 2026-09-30) lists two new languages, Odia and Urdu, in its table of 44 languages with base codes. You can pass a base code or a regional locale code on Cartesia's API.

New Sonic 3.6 languages and how they map to a Sume request, read 2026-09-30.
LanguageCodeSume fieldRouter model to pin
Odiaorlanguagesonic-3.6
Urduurlanguagesonic-3.6

How do I send the code on Sume?

Sume's language is a 2 to 16 character string, described as BCP-47 or ISO-639. The schema says to set it for every non-English transcript, since an omitted value defaults to English at the provider. Write the transcript in the script of that language and do not translate it.

curl -X POST https://api.sume.com/v1/tts-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: urdu-demo-001" \
  -d '{
    "model": "sonic-3.6",
    "transcript": "آپ کا آرڈر کل روانہ ہوگا۔",
    "avatar_handle": "acme",
    "language": "ur"
  }'

Why pin sonic-3.6 and not an alias?

The Odia and Urdu additions are a Sonic 3.6 claim. The Router model field is a required pass-through catalog id, and sonic-latest or sonic-preview are separate ids that can differ from sonic-3.6. Pinning keeps the request tied to the model the vendor page describes. See Cartesia Sonic 3.6 API model ids.

What if the voice does not speak that language?

Sume compares the voice's primary language with the requested one. On a mismatch it returns a warning that says "Pronunciation may sound unnatural." and states that no job or charge has been created yet. Retry only after the user confirms, with confirm_language_mismatch set to true. The full loop is in the mismatch warning post.

For the other 42 languages and how the field behaves, read Sonic 3.6 languages and the language field.

Sources

Related posts

More in Models

All Models posts

Written by Sume