ElevenLabs

Updated

Integrate ElevenLabs TTS into Conversational AI Engine.

ElevenLabs provides highly realistic AI voices with advanced prosody and natural speech patterns, delivering lifelike audio synthesis with emotional nuance and conversational flow.

Paid plan required

You need a paid ElevenLabs plan for reliable TTS integration.

ElevenLabs may restrict or disable free-tier accounts due to abuse-detection mechanisms, even if free credits are available. To avoid missing audio responses during testing and production, ensure you use a paid plan.

Sample configuration

The following examples show how to configure ElevenLabs TTS when starting a conversational AI agent.

from agora_agent import Agent
from agora_agent.agentkit.vendors import ElevenLabsTTS

# client is your configured Agora client
agent = (
    Agent(client)
    .with_stt(...)  # configure your STT vendor
    .with_llm(...)  # configure your LLM vendor
    .with_tts(ElevenLabsTTS(
        key='your-elevenlabs-key',
        model_id='eleven_flash_v2_5',
        voice_id='pNInz6obpgDQGcFmaJgB',
        base_url='wss://api.elevenlabs.io/v1',
    ))
)
import { Agent, ElevenLabsTTS } from 'agora-agents';

// client is your configured Agora client
const agent = new Agent({ client })
  .withStt(/* configure your STT vendor */)
  .withLlm(/* configure your LLM vendor */)
  .withTts(new ElevenLabsTTS({
    key: 'your-elevenlabs-key',
    modelId: 'eleven_flash_v2_5',
    voiceId: 'pNInz6obpgDQGcFmaJgB',
    baseUrl: 'wss://api.elevenlabs.io/v1',
  }));
import "github.com/AgoraIO/agora-agents-go/v2/agentkit/vendors"

// client is your configured Agora client
agent := agentkit.NewAgent(client).WithStt(/* configure your STT vendor */).
  WithLlm(/* configure your LLM vendor */).
  WithTts(
    vendors.NewElevenLabsTTS(vendors.ElevenLabsTTSOptions{
        Key:     "your-elevenlabs-key",
        ModelID: "eleven_flash_v2_5",
        VoiceID: "pNInz6obpgDQGcFmaJgB",
        BaseURL: "wss://api.elevenlabs.io/v1",
    }),
)

Use the following tts configuration in your request:

"tts": {
  "vendor": "elevenlabs",
  "params": {
    "base_url": "wss://api.elevenlabs.io/v1",
    "key": "<your_elevenlabs_key>",
    "model_id": "eleven_flash_v2_5",
    "voice_id": "pNInz6obpgDQGcFmaJgB",
    "sample_rate": 24000
  }
}

Caution

The parameters listed on this page are validated for use with Conversational AI Engine. Required parameters must be provided as documented. Any additional parameters are passed through directly to the underlying vendor without validation. For advanced configuration options, voice cloning, and detailed parameter descriptions, see the ElevenLabs TTS documentation.

Key parameters

paramsrequired
base_urlstring
required

The endpoint URL for the ElevenLabs TTS service. See Data residency.

keystring
required

The API key used for authentication. Get your API key from the ElevenLabs Console.

model_idstring
required

Identifier of the model to be used. Popular options include eleven_flash_v2_5 for speed or eleven_multilingual_v2 for quality.

voice_idstring
required

The identifier for the selected voice for speech synthesis. Browse available voices in the Voice Library.

sample_ratenumber
optional
Default value
24000

Audio sampling rate in Hz. Common values: 16000, 22050, 24000, 44100.

speednumber
optional
Default value
1.0

Speed up or slow down the speed of the generated speech. Range 0.7 to 1.2 inclusive.

stabilitynumber
optional

Controls voice stability. Higher values (0.8-1.0) produce more consistent speech, lower values (0.0-0.5) add more variation.

similarity_boostnumber
optional

Enhances similarity to the original voice. Range: 0.0-1.0. Higher values stick closer to the training voice.

stylenumber
optional

Controls speaking style and expressiveness. Higher values increase emotional range and variation.

use_speaker_boostboolean
optional

Improves voice quality and similarity when enabled. Recommended for most use cases.