feat: character dashboard with TTS voice preview, fix Wyoming API compat

- Add HomeAI dashboard: service status monitor, character profile manager, character editor
- Add TTS voice preview in character editor (Kokoro via OpenClaw bridge → Wyoming)
  - Custom preview text, loading/playing states, stop control, speed via playbackRate
- Fix Wyoming API breaking changes: remove `version` from TtsVoice/TtsProgram,
  use SynthesizeVoice object instead of bare string in Synthesize calls
- Vite dev server proxies /api/tts and /api/health to avoid CORS issues

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Aodhan Collins
2026-03-11 20:40:11 +00:00
parent 6db8ae4492
commit 1bfd7fbd08
13 changed files with 1192 additions and 170 deletions

View File

@@ -33,7 +33,7 @@ from pathlib import Path
import wave
import io
from wyoming.client import AsyncTcpClient
from wyoming.tts import Synthesize
from wyoming.tts import Synthesize, SynthesizeVoice
from wyoming.audio import AudioStart, AudioChunk, AudioStop
from wyoming.info import Info
@@ -135,7 +135,7 @@ class OpenClawBridgeHandler(BaseHTTPRequestHandler):
await client.read_event()
# Send Synthesize event
await client.write_event(Synthesize(text=text, voice=voice).event())
await client.write_event(Synthesize(text=text, voice=SynthesizeVoice(name=voice)).event())
audio_data = bytearray()
rate = 24000