Skip to main content
OpenClaw uses ElevenLabs for text-to-speech, batch speech-to-text with Scribe v2, and streaming STT with Scribe v2 Realtime. The plugin is bundled and enabled by default; no plugins install step is needed.

Authentication

Set ELEVENLABS_API_KEY in the environment. XI_API_KEY is also accepted for compatibility with existing ElevenLabs tooling.

Text-to-speech

Set modelId to eleven_v3 to use ElevenLabs v3 TTS. OpenClaw keeps eleven_multilingual_v2 as the default for existing installs. Discord voice channels use ElevenLabs’ streaming TTS endpoint when ElevenLabs is the selected voice.tts/messages.tts provider: playback starts from the returned audio stream instead of waiting for OpenClaw to download the whole audio file first. latencyTier maps to ElevenLabs’ optimize_streaming_latency query parameter for models that accept it; OpenClaw omits that parameter for eleven_v3, which rejects it.

Speech-to-text

Use Scribe v2 for inbound audio attachments and short recorded voice segments:
OpenClaw sends multipart audio to ElevenLabs /v1/speech-to-text with model_id: "scribe_v2". Language hints map to language_code when present.

Streaming STT

The bundled elevenlabs plugin registers Scribe v2 Realtime for Voice Call and Google Meet agent-mode streaming transcription.
Voice Call receives Twilio media as 8 kHz G.711 u-law. The ElevenLabs realtime provider defaults to ulaw_8000, so telephony frames can be forwarded without transcoding.
For Google Meet agent mode, set plugins.entries.google-meet.config.realtime.transcriptionProvider to "elevenlabs" and configure the same provider block under plugins.entries.google-meet.config.realtime.providers.elevenlabs.