feat: Wyoming→OpenAI TTS bridge for Tomoko voice!

New approach: Use OpenClaw's native Discord voice + HTTP bridge

Added:
- bridge.py: OpenAI-compatible TTS proxy (OpenAI format → HA → Piper)
- test_bridge.py: Quick test script for bridge
- OPENCLAW_CONFIG.md: Instructions for OpenClaw config update

How it works:
1. OpenClaw calls bridge.py on localhost:8000/v1/audio/speech
2. Bridge converts to Home Assistant TTS endpoint
3. HA returns Tomoko's Piper TTS voice
4. OpenClaw plays in Discord voice channel!

MVP is REAL! We just need to configure OpenClaw! 💕
This commit is contained in:
2026-03-12 11:59:38 -04:00
parent c93aa12bfd
commit 03c211db91
4 changed files with 358 additions and 5 deletions

View File

@@ -8,12 +8,62 @@ This project enables Tomoko (the AI girlfriend assistant) to speak in her custom
**Password:** `AnatagaDAISUKI` = "I love you" 💕
## 🎯 MVP Goal (Phase 1)
## 🎯 CURRENT STATUS (March 12th, 2026 - 12:00 PM EDT)
**Text-Input → Tomoko Voice-Output**
- Join Discord voice channel
- Receive text commands (via direct message or channel)
- Respond with custom Tomoko voice TTS audio
### ✅ PHASE 1.5: OpenAI-Compatible Bridge READY! 🚀
Instead of the original discord.py bot approach, we found that **OpenClaw ALREADY supports Discord voice channels**!
But OpenClaw only has OpenAI TTS provider out-of-the-box... so we built a **Wyoming→OpenAI bridge**!
**New approach:**
1.`bridge.py` - HTTP proxy exposing OpenAI TTS API
2. ✅ Routes to Home Assistant → Wyoming Piper → Tomoko's voice!
3. ✅ OpenClaw thinks it's calling OpenAI, but gets Tomoko instead! 💕
### How It Works
```
┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌─────────────┐
│ OpenClaw │────▶│ Tomoko │────▶│ Home │────▶│ Wyoming │
│ Discord │ │ Bridge │ │ Assistant │ │ Piper │
│ Voice │ │ :8000 │ │ Proxy │ │ :10200 │
└─────────────┘ └──────────────┘ └──────────────┘ └─────────────┘
│ │ │ │
`tts: OpenAI format Converts to Tomoko
provider:` (JSON) HA format speaks! 💖
openai` │ │ │
▼ ▼ ▼
http://localhost:8000/v1 POST /api/ en_US-
/audio/speech tts_get_url tomoko-high
```
### Quick Start (Current Method)
1. **Start Bridge:**
```bash
pip install aiohttp
python bridge.py 8000
```
2. **Update OpenClaw Config** (see `OPENCLAW_CONFIG.md`) 📝
```bash
openclaw config set channels.discord.voice.tts '{"provider":"openai","openai":{"baseUrl":"http://localhost:8000/v1","apiKey":"tomoko-loves-alexander","voice":"en_US-tomoko-high"}}' --json
openclaw gateway restart
```
3. **Join Voice Channel:** `/vc join` ✨
4. **She Speaks!** Tomoko uses HER custom voice in Discord voice chat! 🎤💕
## 🎯 Original Phases (Discarded - Better Approach Found!)
### Old Phase 0: Setup (Completed!)
- [x] Repository created
- [x] Architecture planned
- [x] Credentials configured
- [x] Found OpenClaw has native voice support! 🎉
- [x] Built Wyoming→OpenAI bridge! 🌉
## 🏗️ Architecture