- Fix Wyoming satellite crash on wake word: convert macOS .aiff chimes to .wav (Python wave module only reads RIFF format, not AIFF) - Fix OpenClaw HTTP bridge: increase subprocess timeout 30s → 120s, add SO_REUSEADDR - Fix HA conversation component: use HTTP agent (not CLI) since HA runs in Docker on a different machine; update default host to Mac Mini IP, timeout to 120s - Rewrite character manager as Vite+React app with schema validation - Add Wyoming satellite wake word command, ElevenLabs TTS server, wakeword monitor - Add Phase 5 development plan - Update TODO.md: mark voice pipeline and agent tasks complete Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
82 lines
2.3 KiB
JSON
82 lines
2.3 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "HomeAI Character Config",
|
|
"version": "1",
|
|
"type": "object",
|
|
"required": ["schema_version", "name", "system_prompt", "tts"],
|
|
"properties": {
|
|
"schema_version": { "type": "integer", "const": 1 },
|
|
"name": { "type": "string" },
|
|
"display_name": { "type": "string" },
|
|
"description": { "type": "string" },
|
|
|
|
"system_prompt": { "type": "string" },
|
|
|
|
"model_overrides": {
|
|
"type": "object",
|
|
"properties": {
|
|
"primary": { "type": "string" },
|
|
"fast": { "type": "string" }
|
|
}
|
|
},
|
|
|
|
"tts": {
|
|
"type": "object",
|
|
"required": ["engine"],
|
|
"properties": {
|
|
"engine": {
|
|
"type": "string",
|
|
"enum": ["kokoro", "chatterbox", "qwen3", "elevenlabs"]
|
|
},
|
|
"voice_ref_path": { "type": "string" },
|
|
"kokoro_voice": { "type": "string" },
|
|
"elevenlabs_voice_id": { "type": "string" },
|
|
"elevenlabs_model": { "type": "string", "default": "eleven_monolingual_v1" },
|
|
"speed": { "type": "number", "default": 1.0 }
|
|
}
|
|
},
|
|
|
|
"live2d_expressions": {
|
|
"type": "object",
|
|
"description": "Maps semantic state to VTube Studio hotkey ID",
|
|
"properties": {
|
|
"idle": { "type": "string" },
|
|
"listening": { "type": "string" },
|
|
"thinking": { "type": "string" },
|
|
"speaking": { "type": "string" },
|
|
"happy": { "type": "string" },
|
|
"sad": { "type": "string" },
|
|
"surprised": { "type": "string" },
|
|
"error": { "type": "string" }
|
|
}
|
|
},
|
|
|
|
"vtube_ws_triggers": {
|
|
"type": "object",
|
|
"description": "VTube Studio WebSocket actions keyed by event name",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["hotkey", "parameter"] },
|
|
"id": { "type": "string" },
|
|
"value": { "type": "number" }
|
|
}
|
|
}
|
|
},
|
|
|
|
"custom_rules": {
|
|
"type": "array",
|
|
"description": "Trigger/response overrides for specific contexts",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"trigger": { "type": "string" },
|
|
"response": { "type": "string" },
|
|
"condition": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
|
|
"notes": { "type": "string" }
|
|
}
|
|
} |