I need a lightweight voice assistant that runs 100 % offline on a Raspberry Pi. The project centres on three pillars: Wake-word: openWakeWord must be the engine that listens continuously and triggers the assistant with minimal latency. Speech: once activated, the assistant has to convert speech to text and back locally—no cloud calls. I am happy to rely on compact open-source libraries such as Vosk / Whisper-cpp for STT and Piper / eSpeak NG for TTS as long as response time is snappy on a Pi. Core skills: after transcription the assistant should handle a small but useful command set—simple device-control GPIO calls, system queries like “What’s the CPU temperature?”, a quick maths solver, and a fallback offline web-search summary if I have a local index. Extending the intent set later via JSON/YAML files or a plug-in folder would be ideal. Long-term memory: when I say “remember,” the system should pin a note, a fact, or the recent conversation context. These entries must be timestamped and purged automatically after a configurable time or when a size limit is hit. Retrieval is by natural language, e.g. “What did I ask you to remember about the meeting?” Deliverables • Fully commented source (Python, Rust or C++) • Step-by-step install script for a fresh Raspberry Pi OS image • README covering how to add new intents, tweak wake-word, and adjust memory limits • Demo video or GIF that proves wake-word speed, offline STT/TTS, note storage and recall Acceptance criteria 1. Wake-word latency under 200 ms on a Raspberry Pi 4. 2. End-to-end response (voice-to-voice) under 2 s for a five-word query. 3. “Remember” and “What did I ask you to remember …” must work after a reboot. 4. No internet traffic while operating (I will verify with tcpdump). If you have already combined openWakeWord with local STT/TTS on ARM, I’m eager to see it in action.