|
| 1 | +--- |
| 2 | +slug: echokit-30-days-day-17-elevenlabs |
| 3 | +title: "Day 17: Giving EchoKit a Voice — Using ElevenLabs TTS | The First 30 Days with EchoKit" |
| 4 | +tags: [echokit30days] |
| 5 | +--- |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +Over the past three weeks, we’ve covered almost every core piece of a voice AI agent: |
| 10 | + |
| 11 | +* **ASR**: turning human speech into text |
| 12 | +* **LLMs**: reasoning, chatting, and tool calling |
| 13 | +* **System prompts**: shaping personality and behavior |
| 14 | +* **MCP tools**: letting EchoKit take real actions |
| 15 | + |
| 16 | +Today, we complete the loop. |
| 17 | + |
| 18 | +It’s time to talk about **TTS — Text to Speech**. |
| 19 | + |
| 20 | +Without TTS, your agent can think, plan, and decide — but it can’t *speak back*. |
| 21 | +And for a voice-first device like EchoKit, that’s a deal breaker. |
| 22 | + |
| 23 | +In Day 17, we’ll start with one of the most popular choices: |
| 24 | +**ElevenLabs TTS**. |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +## Why ElevenLabs? |
| 29 | + |
| 30 | +ElevenLabs is widely used because it offers: |
| 31 | + |
| 32 | +* Very natural-sounding voices |
| 33 | +* Low latency for real-time conversations |
| 34 | +* Multiple languages and accents |
| 35 | +* Voice cloning support (we’ll get to that later 😉) |
| 36 | + |
| 37 | +For builders, it’s also simple to integrate and well-documented — which makes it a great first TTS provider for EchoKit. |
| 38 | + |
| 39 | + |
| 40 | +## What EchoKit Needs for ElevenLabs TTS |
| 41 | + |
| 42 | +EchoKit’s ElevenLabs configuration lives in the EchoKit server’s `config.toml` file. |
| 43 | + |
| 44 | +```toml |
| 45 | +[tts] |
| 46 | +platform = "Elevenlabs" |
| 47 | +token = "" |
| 48 | +voice = "yj30vwTGJxSHezdAGsv" # The voice I choose here is Jessa |
| 49 | +``` |
| 50 | + |
| 51 | +* **platform**: set to `"Elevenlabs"` |
| 52 | +* **token**: your ElevenLabs API key. You can generate one from the |
| 53 | + [ElevenLabs Developer Dashboard](https://elevenlabs.io/app/developers/api-keys) |
| 54 | +* **voice**: the voice ID you want EchoKit to speak with |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | +> ⚠️ **Important:** |
| 59 | +> If you pick a voice in ElevenLabs, you **must add it to “My Voices”**. |
| 60 | +> Otherwise, your API key may not be able to call it, even if the voice plays fine in the UI. |
| 61 | +
|
| 62 | + |
| 63 | +That’s it. |
| 64 | +`model_id` is optional in EchoKit’s config and not required for basic TTS. |
| 65 | + |
| 66 | + |
| 67 | +## Restart and Reconnect the Server |
| 68 | + |
| 69 | +After updating the config, restart the EchoKit server, then reconnect the EchoKit device. |
| 70 | + |
| 71 | +When you chat with the device again, you should hear EchoKit speak back — |
| 72 | +using the voice you selected. |
| 73 | + |
| 74 | +With TTS working, EchoKit finally feels complete as a voice AI companion. |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | +Want to get your own EchoKit device and make it unique? |
| 79 | + |
| 80 | +* [EchoKit Box](https://echokit.dev/echokit_box.html) |
| 81 | +* [EchoKit DIY](https://echokit.dev/echokit_diy.html) |
| 82 | + |
| 83 | +Join the [EchoKit Discord](https://discord.gg/Fwe3zsT5g3) to share your welcome voices and see how others are personalizing their voice AI agents! |
0 commit comments