# voice-assistant β€” Jervis Voice Assistant A fully-local, private voice assistant. Say **"Hey Jervis"** and make a request; it answers, controls your house, manages your shopping list, and speaks back through your speakers β€” driven by a single LLM "brain" that calls tools. ## System map ![Interactive map](https://maps.lab.audasmedia.com.au/homeassistant/docs/voice-assistant-map.html) ```mermaid flowchart LR ESP32[ESP32-S3
wake word] -->|audio| WHISPER[Whisper STT] WHISPER -->|text| AGENT[Jervis Agent
:8501] AGENT --> HA[Home Assistant
control Β· todo Β· timers] AGENT --> OMNI[OmniRoute
LLM gateway] AGENT --> MOPIDY[Mopidy / Spotify
music] AGENT --> APPRISE[Apprise
notifications] AGENT --> TTS[Piper TTS] TTS --> SNAP[Snapcast
multi-room] SNAP --> SPK[House Speakers] style AGENT fill:#bbf,stroke:#333,stroke-width:2px ``` > πŸ—ΊοΈ **Interactive version** (pan/zoom/search, dark/light, export): [voice-assistant-map.html](https://maps.lab.audasmedia.com.au/homeassistant/docs/voice-assistant-map.html) β€” hosted on `maps.lab.audasmedia.com.au`. Mermaid source: [`docs/voice-assistant.mmd`](docs/voice-assistant.mmd). ## Docs - **[`docs/overview.md`](docs/overview.md)** β€” the whole architecture in one page (diagram, hosts/IPs/ports, component map). - **[`docs/agent-api.md`](docs/agent-api.md)** β€” the command contract: send text, get a spoken reply. Use from any AI model, script, N8N, ESP32, or web app. - **[`docs/clients.md`](docs/clients.md)** β€” type-it, web page, and Android gateways. ## Quick use ```bash # speak a command (reply is spoken through speakers too) curl -X POST http://192.168.20.13:8501/voice \ -H "Content-Type: application/json" \ -d '{"text":"add chicken to the shopping list"}' ``` ## Related repos - `sam/voice_assistant` β€” ESP32 firmware (wake word, mic) - `sam/voice_bridge` β€” STT bridge + whisper - `sam/speech_piper` β€” TTS β†’ Snapcast - `sam/voice-assistant` β€” **this** overview + API + clients > Secrets live in `.env` (gitignored) β€” never commit them.