A voice is the hardest part of a config to get right, because for most providers it is not checked when you save the project. The API knows each provider’s fields, not its whole catalogue: a voice that does not exist, or does not speak the language, is found out only when a file is processed. Then the file fails, or sounds wrong. What is checked on save: a Deepdub voice must be auto, and a MultiVoice dub needs a language that has MultiVoice voices; anything else answers 422. For Amazon Polly, Azure and Google, GET /voices lists known voices for a language.

Start here

Each of these ran end to end on build 0.9.0-alpha1-2026-09-28T12-19Z-118f0e, in the language shown: Sarvam ({"@type": "Sarvam"}) clones voices for Indian languages and takes no voice.
With several speakers, cloning (Deepdub, Sarvam) gives each speaker a voice of their own. A catalogue voice gives everyone the same one, which suits narration and single presenters. {"@type": "MultiVoice"} gives each speaker a different catalogue voice, chosen for you from SyncWords’ voices for the language: see Dubbing.

Known voices

GET /voices lists the Amazon Polly, Azure and Google voices SyncWords knows for a language, in every dialect of it (es gives Spain’s, Mexico’s and the others’), plus the Azure voices that speak many languages:
Put voice in provider.voice, and for Amazon one of engines in provider.engine. A voice with multilingual: true speaks many languages; the provider’s list says which.
The list is not each provider’s whole catalogue, and it is not a check: a voice missing from it is still accepted. Google’s newer voices (Chirp, Studio) are not in it, nor is every Standard voice: es-ES-Standard-A from the table above works and is not listed. For those, use the provider’s own list below.

Finding other voices

The voice must speak the translation’s language: an Azure, Google or Polly name carries its locale (es-ES-…), and a multilingual voice speaks many. For Polly, not every voice has every engine: check the list’s engine columns.

Try a voice before a whole season

  1. Create a project with the voice and options.autoStart: false.
  2. Upload one short clip: a minute is enough, and the sample video works.
  3. Start the project, wait for the file, and listen.
  4. A failed file with a voice you just changed usually means the voice is wrong: a file with lines the voice could not say fails.
  5. Once it sounds right, upload the rest, or PATCH the same config into the real project.

Pronunciation

For names and brands a voice says wrongly, ttsOptions.dictionary maps a word to how it is spoken ({"Newsmax": "news max"}), and ttsOptions.locale picks the accent of the language (es-XL, Latin American Spanish). See Dubbing.