YAML chimes section maps event names to arbitrary file paths.
Falls back to chimes/<name>.wav or .ogg if not listed.
Allows custom locations and formats without renaming files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
POST /chime {name} plays chimes/<name>.wav or .ogg via pacat.
Goes through the same queue as speak so playback stays ordered.
chimes/ directory holds the audio files (not committed).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
A single transient noise no longer resets the silence timer.
Only sustained audio energy counts as speech.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
on_audio was resetting the timer on every chunk including silence,
so the timeout never fired. Now passes the raw chunk and checks RMS;
only resets if energy is above 0.02 (speech, not ambient silence).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
STT (Silero VAD + Whisper via sherpa-onnx), Chatterbox TTS HTTP server,
query completeness classifier (Ollama), multi-voice demo scripts, and
planning docs. Kept as reference; clean rewrite planned in separate repos.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>