Select and tune an ElevenLabs TTS voice, including curated voice list, custom/cloned voices via API key, and tuning parameters
assistant skills install elevenlabs-voiceElevenLabs provides text-to-speech voices for both in-app TTS and phone calls. The config key services.tts.providers.elevenlabs.voiceId controls the voice across all channels. Use the voice_config_update tool to change the voice - it writes to the config file and pushes to the macOS app via SSE in one call.
Pick a voice that matches the your identity and the user's preferences. Offer to show the full list if they want to choose themselves.
| Voice | Style | Voice ID |
|---|---|---|
| Amelia | Expressive, enthusiastic, British | ZF6FPAbjXT4488VcRRnw |
| Sarah | Soft, young, approachable | EXAVITQu4vr4xnSDxMaL |
| Charlotte | Warm, Swedish-accented | XB0fDUnXU5powFXDhCwa |
| Alice | Confident, British | Xb7hH8MSUJpSbSDYk0k2 |
| Matilda | Warm, friendly, young | XrExE9yKIg1WjnnlVkGX |
| Lily | Warm, British | pFZP5JQG7iQjIQuC4Bku |
| Voice | Style | Voice ID |
|---|---|---|
| Antoni | Warm, well-rounded | ErXwobaYiN019PkySvjV |
| Josh | Deep, young, clear | TxGEqnHWrfWFTfGW9XjX |
| Arnold | Crisp, narrative | VR6AewLTigWG4xSOukaG |
| Adam | Deep, middle-aged, professional | pNInz6obpgDQGcFmaJgB |
| Bill | Trustworthy, American | pqHfZKP75CvOlQylNhV4 |
| George | Warm, British, distinguished | JBFqnCBsd6RMkjVDRZzb |
| Daniel | Authoritative, British | onwK4e9ZLuTAKqWW03F9 |
| Charlie | Casual, Australian | IKne3meq5aSn9XLyUdCD |
| Liam | Young, articulate | TX3LPaxmHKxFdv7VOQHJ |
To set the chosen voice, use voice_config_update. This writes to the config file (services.tts.providers.elevenlabs.voiceId) for phone calls and pushes to the macOS app via SSE (ttsVoiceId) for in-app TTS in one call:
voice_config_update setting="tts_voice_id" value="<selected-voice-id>"
Verify it worked:
assistant config get services.tts.providers.elevenlabs.voiceId
Tell the user what voice you chose and why, but also offer to show all available voices so they can choose for themselves.
For advanced voice selection (browsing the full library, custom/cloned voices), the user needs an ElevenLabs API key. A free tier is available at https://elevenlabs.io.
To collect the API key securely:
credential_store action="prompt" service="elevenlabs" field="api_key"
Users with an ElevenLabs API key can go beyond the curated list above.
assistant credentials inspect --service elevenlabs --field api_key --json
curl -s "https://api.elevenlabs.io/v2/voices?category=premade&page_size=50" \
-H "xi-api-key: $(assistant credentials reveal --service elevenlabs --field api_key)" | python3 -m json.tool
curl -s "https://api.elevenlabs.io/v2/voices?search=warm+female&page_size=10" \
-H "xi-api-key: $(assistant credentials reveal --service elevenlabs --field api_key)" | python3 -m json.tool
If the user has created a custom voice or voice clone in their ElevenLabs account, they can use its voice ID directly. These voices work in both in-app TTS and Twilio ConversationRelay.
Each voice in the API response includes a preview_url with an audio sample the user can listen to before deciding.
After the user picks a voice from the library:
voice_config_update setting="tts_voice_id" value="<selected-voice-id>"
Fine-tune how the selected voice sounds. These parameters apply to all ElevenLabs modes (in-app TTS and phone calls):
# Playback speed (0.7 = slower, 1.0 = normal, 1.2 = faster)
assistant config set services.tts.providers.elevenlabs.speed 1.0
# Stability (0.0 = more expressive/variable, 1.0 = more consistent/monotone)
assistant config set services.tts.providers.elevenlabs.stability 0.5
# Similarity boost (0.0 = more creative, 1.0 = closer to original voice)
assistant config set services.tts.providers.elevenlabs.similarityBoost 0.75
Lower stability makes the voice more expressive but less predictable - good for conversational calls. Higher stability is better for scripted or formal contexts.
By default, the system sends a bare voiceId to Twilio ConversationRelay (no model/tuning suffix). This is the safest default across voice IDs.
To optionally force Twilio's extended voice spec, set a model ID:
assistant config set services.tts.providers.elevenlabs.voiceModelId "flash_v2_5"
When voiceModelId is set, the emitted voice string becomes: voiceId-model-speed_stability_similarity.
To clear and revert to the bare voiceId default:
assistant config set services.tts.providers.elevenlabs.voiceModelId ""