language_code is a stable ISO 639-1-style code that identifies the language
used by a saved voice or a text-to-speech request. Store and send the code, not
a translated language name.
Supported language codes
Breeze TTS 2 Multilingual (breeze-tts-2-multilingual) supports all 51 codes
accepted by the Voice contract. Use this model ID for multilingual generation.
The Developer API accepts breeze-tts-2-preview as a compatibility alias for
breeze-tts-2-multilingual. This applies to synchronous, asynchronous, streaming,
and realtime TTS, as well as voice previews. New generations use the formal
model and its 51-language capabilities; history and usage identify it as
breeze-tts-2-multilingual. Existing history keeps its original model ID.
GET /v1/models lists the formal model only.
The complete language set:
The OpenAPI schema exposes the same enum anywhere Voice Metadata accepts or
returns
language_code. To retrieve the supported codes at runtime, call
Metadata options:
client.voices.metadata_options(). The TypeScript SDK
method is client.voices.metadataOptions(). CLI and agent workflows can use
breeze voice metadata-options --agent.
Voices and accents
A saved voice’slanguage_code describes the language of its reference or
preview audio. Its accent describes the accent of that audio. Use these fields
when saving or editing Voice Metadata, or when
filtering List voices.
English (en) and Chinese (zh) support the accent codes below. Send the exact
code in accent, paired with the matching language_code. The field is optional:
Chinese voices with accent: null are treated as Mandarin, and English voices
with accent: null are treated as American English for display and filtering.
The API preserves the stored value in responses. All other languages require
accent: null, with no inferred accent.
English accents (en)
Chinese accents (zh)
Use accent codes
To find Mandarin voices, uselanguage_code=zh&accent_mode=unmarked.
accent_mode=unmarked matches stored null values and cannot be combined with
accent. Omitting both parameters returns every accent for the selected language.
To find American English voices, use language_code=en&accent=american; this
includes English voices with a null accent.
For example, to find British English voices, pass language_code=en&accent=british
to List voices:
accent_codes_by_language.en contains the English codes and
accent_codes_by_language.zh contains the eight non-null Chinese codes; render
Mandarin as a separate null choice. Other language keys
contain empty arrays.
Changing a saved voice’s language automatically clears an existing accent that
is invalid for the new language when the edit omits accent. Sending an
explicitly incompatible language and accent returns VALIDATION_ERROR.
Text to speech
accent is Voice Metadata, not a text-to-speech request parameter. Choose a
voice with the accent you want, then use its voice_id for synthesis.
For synthesis, language_code selects pronunciation and language handling for
the request. The chosen model must also support that language. Use
List models and inspect each model’s
languages[].language_id values before selecting a
model-language pair.
Write instructions in the same language as the script and language_code.
Breeze sends them to the selected TTS model as authored; it does not translate
instructions before synthesis.
Omission follows the contract of the endpoint you call. HTTP and Realtime TTS
do not inherit the reference voice’s language. See TTS language handling,
Realtime sessions,
and Voice Clone for their distinct
language rules. For automated synthesis, choose an explicit language supported
by the selected model when the target language is known.
