Offline Raspberry Pi Voice Assistant Development
Budget: $250 – $750 USD
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.
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.
Related categories:
Python
JSON
Raspberry Pi
Audio Processing
Embedded Systems
Open Source
Natural Language Processing