Multilingual text to speech API: one request per language

Make speech in several languages by sending one TTS request per language, each with the translated script and its language code. How Sume handles it.

5 min readSume
All posts

To get speech in several languages from a text to speech API, translate the script first, then send one request per language with the translated text and that language's code. On Sume, POST /v1/tts-1.0/generate takes one language per request and defaults to English when you leave it out, so a voiceover in five languages is five requests, each billed on its own characters.

The fields come from the TTS schema in the Sume API reference, the OpenAPI document behind the API reference docs, and the Timeline audio docs, read on 2026-09-27. Behavior described as current is read from Sume's code, and the price from the code behind API pricing.

How do I tell the API which language to speak?

Send language as a BCP-47 / ISO-639 code, such as ko, ja, or en. The schema describes it as the language the voice speaks the transcript in and says to set it for every non-English transcript. TTS speaks the transcript as written, so translation is a separate step: your own tool, or a Sume agent run as in Translate a video's voiceover by API.

How the language is chosen, from the TTS request schema in the Sume API reference and Sume's current code, read 2026-09-27.
RequestLanguage used
language sentThat language.
Omitted, Hangul-only transcriptko, inferred as a fallback.
Omitted, kana-only transcriptja, inferred as a fallback.
Omitted, text in another script, such as Latin lettersEnglish, the provider's default.
Omitted, mixed scriptsko or ja only when Hangul or kana outnumbers Latin letters (current code); otherwise English.

Which languages can Sume's TTS speak?

The schema gives ko, ja, and en as examples of the code and publishes no list of supported languages; language is a free-form code of 2 to 16 characters. The only languages Sume infers on its own are Korean and Japanese. Before you commit a full script in a new language, synthesize one short line in it and listen.

Can one voice speak several languages?

The voice and the language are separate fields, so you can send the same avatar (avatar_id or avatar_handle) or voice.id with each language's code. In the current code, a voice whose primary language on record differs from the request stops the submit with 409 tts_voice_language_mismatch, before any job or charge, until you resend with confirm_language_mismatch: true. Translate a video's voiceover by API walks through that double-check.

What about a script that mixes languages?

One request carries one language, so split a mixed script into runs by language, synthesize each run with its own code and the same voice, then join the clips in order. Timeline audio concat joins 1 to 20 parts of your workspace's media.sume.com audio, in order, with no silence added at the seams, and every part must share one channel layout. Text to speech with multiple voices walks through the join.

How long will each language version run?

Each version has its own length, so measure it rather than reuse the first language's timings. With timestamps: { "words": true }, the current code adds duration_seconds and words[] to the result; read them before you cut visuals or captions to a version. generation_config.speed, a multiplier from 0.6 to 1.5, changes the pace when a version has to fit a fixed slot.

What does multilingual text to speech cost?

Every language version is its own request, billed per transcript character at $0.0475 per 1,000 characters, spaces and punctuation included, plus a 5.5% agent fee by default. A request takes up to 20,000 characters, and synthesized audio longer than 1,200 seconds fails with tts_duration_exceeded and captures no credits.

Sources

Related posts

More in Models

All Models posts

Written by Sume