A voice-enabled chat application with ElevenLabs TTS integration.
- 🎙️ Voice Input - Speech-to-text using Web Speech API
- 🔊 Voice Output - High-quality TTS via ElevenLabs
- 💬 AI Chat - Powered by OpenClaw/Ollama
- 🌐 Web Interface - Clean, responsive UI
pip install -r requirements.txtThe app works with a default API key, but you can use your own:
- Get your API key from elevenlabs.io
- Set it as an environment variable:
export ELEVENLABS_API_KEY="your-api-key"
python voice-server.pyNavigate to: http://localhost:8080
| Voice ID | Name | Description |
|---|---|---|
EXAVITQu4vr4xnSDxMaL |
Sarah | Warm, professional (default) |
XB0fDUnXU5powFXDhCwa |
Charlotte | Calm, gentle |
MF3mGyEYCl7XYWbV9V6O |
Elli | Energetic, friendly |
TxGEqnHWrfWFTfGW9XjX |
Josh | Deep, authoritative |
VR6AewLTigWG4xSOukaG |
Adam | Natural, versatile |
To use a different voice, modify DEFAULT_VOICE in voice-server.py.
├── voice-server.py # Main server with ElevenLabs TTS
├── voice-chat.html # Main chat interface
├── voice-simple.html # Minimal version
├── voice-debug.html # Debug utilities
├── voice-app/ # Alternative Flask/WebSocket server
│ ├── server.py
│ └── static/
└── requirements.txt # Python dependencies
GET /- Serve chat interfaceGET /health- Health checkPOST /v1/tts- Text-to-speech (returns audio/mp3)POST /v1/chat- Chat completion
| Variable | Description | Default |
|---|---|---|
ELEVENLABS_API_KEY |
ElevenLabs API key | Built-in key |
DEFAULT_VOICE |
Default voice ID | Sarah |
PORT |
Server port | 8080 |
MIT