An open API service indexing awesome lists of open source software.

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

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://github.com/ownerofglory/raspi-agent/actions/workflows/build.yaml/badge.svg)

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ownerofglory_raspi-agent&metric=alert_status)](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` |

---