layers.tts is not specified, Tavus will default to the tavus-auto engine, which will automatically select the best TTS engine and model for each conversation.
If you use
tavus-auto (recommended) you do not need to specify any parameters within the tts layer.tavus-auto reflects our current best-judgment selection, and is recommended for most use cases. The underlying provider and model may change as we benchmark new options or onboard new vendors. If you need deterministic behavior pinned to a specific voice or output style, override tavus-auto and explicitly select a provider/model combination.
Set layers.tts when you Create PAL or update a PAL. For how a PAL fits together, see PAL overview. For languages and locale-oriented setup, see Language support.
Configuring the TTS Layer
Define the TTS layer under thelayers.tts object. The snippets below show only the tts object for readability; in a full PAL payload it is nested under layers (see Example configuration).
Below are the parameters available:
1. tts_engine
Specifies the supported third-party TTS engine.
- Options:
tavus-auto(default),cartesia,elevenlabs,azure.
2. api_key
Authenticates requests to your selected third-party TTS provider. You can obtain an API key from one of the following:
- Cartesia
- ElevenLabs - if using pronunciation dictionaries, the key must have the
pronunciation_dictionaries_writescope (or full account access). See ElevenLabs API key scopes.
3. external_voice_id
Specifies which voice to use with the selected TTS engine. To find supported voice IDs, refer to the provider’s documentation:
- Cartesia
- ElevenLabs
- Azure (e.g.
en-US-JennyNeural)
For Azure, if you create a conversation in a specific language and the PAL isn’t responding, verify that the selected voice ID supports that language.
You can use any publicly accessible custom voice from ElevenLabs or Cartesia without the provider’s API key. If the custom voice is private, you still need to use the provider’s API key.
4. tts_model_name
Model name used by the TTS engine. Refer to:
5. tts_emotion_control
If set to true, enables emotion control in speech. Defaults to true.
6. voice_settings
Optional object for controlling speed, volume, and similar effects. Which approach you use depends on your TTS engine and model:
ElevenLabs (all models): Set parameters in the
voice_settings object:
See ElevenLabs Voice Settings for details.
voice_settings object (e.g. speed, emotion). SSML tags are not used for sonic-2.
Cartesia sonic-3: You can use either of these, but not both:
voice_settings- We accept speed/volume params for sonic-3. They apply globally, set once per conversation. Use this when you want a single default speed and volume for the entire conversation. Usingvoice_settingsprevents dynamic SSML control.- SSML in LLM output - Omit
voice_settingsfor speed/volume and instead add instructions to yoursystem_promptso the LLM outputs Cartesia SSML tags in its responses. This gives you dynamic, per-phrase control. See Cartesia volume, speed, and emotion.
voice_settings for sonic-3, add instructions like this to your system_prompt so the LLM outputs Cartesia SSML tags:
Example Configuration
Below is an example PAL with a fully configured TTS layer:Refer to Create PAL for a complete list of supported fields.

