https://github.com/ownerofglory/raspi-agent
DIY on-device voice assistant for Raspberry Pi: wake word, speech-to-text, LLM reasoning, and text-to-speech streaming via Bluetooth audio
https://github.com/ownerofglory/raspi-agent
agent ai diy go home-automation openai porcupine portaudio rag raspberry-pi self-hosted streaming voice-assistant
Last synced: about 2 months ago
JSON representation
DIY on-device voice assistant for Raspberry Pi: wake word, speech-to-text, LLM reasoning, and text-to-speech streaming via Bluetooth audio
- Host: GitHub
- URL: https://github.com/ownerofglory/raspi-agent
- Owner: ownerofglory
- License: mit
- Created: 2025-10-06T19:56:40.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-11-15T21:15:43.000Z (8 months ago)
- Last Synced: 2025-11-15T23:21:58.543Z (8 months ago)
- Topics: agent, ai, diy, go, home-automation, openai, porcupine, portaudio, rag, raspberry-pi, self-hosted, streaming, voice-assistant
- Language: Go
- Homepage:
- Size: 994 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Raspi agent (DIY voice assistance)
**Raspi-Agent** is a modular streaming voice assistant for Raspberry Pi with built-in wake-word detection, streaming audio, and LLM back-end support (on-device or off-device)

[](https://sonarcloud.io/summary/new_code?id=ownerofglory_raspi-agent)
### *Currently, in development ...*
## Planned Features
- [x] Wake word detection
- [x] Streaming audio playback
- [x] Natural conversation via OpenAI APIs
- [x] Device registration and certificate enrollment
- [ ] Device-to-backend communication over mTLS
- [ ] RAG integration
- [ ] Agent memory
- [ ] Web dashboard

---
## Features
- **Wake Word Detection** — powered by [Porcupine](https://picovoice.ai/platform/porcupine/)
- **Streaming Audio Playback** — real-time PCM or MP3 output via PortAudio
- **Natural Conversation** — integrates with OpenAI (STT, LLM, TTS)
- **Dual Architecture** — choose between:
- **Onboard mode** — runs all AI calls directly from the Pi
- **Offboard mode** — sends recordings to a backend for processing
## Architecture Overview
> Wake Word → Recorder → Voice Assistant → Player → User
Two orchestrator implementations:
| Mode | Description | Example |
|------|--------------|---------------------------------|
| **Onboard** | Runs everything locally via OpenAI APIs (STT, LLM, TTS) | `cmd/raspi-agent-onboard-local` |
| **Offboard** | Streams recorded audio to a backend that processes it | `cmd/raspi-agent-onboard` |
---