Skip to content

Repository files navigation

Belle Assistant

Voice assistant robot for elderly care, built on a Raspberry Pi 5. Belle listens, talks, reminds, plays games, answers health questions and keeps the family connected.

Python Raspberry Pi FastAPI Firebase SQLite Groq ElevenLabs Gemini OpenCV YOLO Telegram

Belle robot

Table of Contents

About

Belle is a voice-first assistant designed for elderly people living alone. After hearing its wake word, it understands natural language and can answer health questions over the person's own medical reports, manage reminders and medication, play cognitive games, stream radio and news, detect falls with its camera and alert the family through Telegram and a companion web app.

Developed as a Bachelor's Thesis (TFG) in Computer Engineering.

Hardware

Belle runs on a Raspberry Pi 5 mounted on a Yahboom Raspbot V2 chassis. The expansion board drives the LED ring and the pan/tilt servos over I2C, while the screen, camera, speaker and microphone connect directly to the Pi.

Connection schematic
Peripherals

Components

Component Purpose Where to buy
Raspberry Pi 5 (8 GB) Main computer raspberrypi.com
DSI touchscreen Belle's face and kiosk UI Banggood
2MP PTZ camera Vision and fall detection Alibaba
USB-C speaker Belle's voice Amazon
USB microphone Voice capture Amazon

Software

APIs

API Used for
Groq Speech-to-text (Whisper) and intent classification + conversation (LLaMA 3.3 70B)
ElevenLabs Text-to-speech, Belle's voice
Google Gemini Image description and fall confirmation
Telegram Bot API Family alerts and messaging
WeatherAPI Weather forecasts

Cloud

The family web app is built on Firebase: Firestore keeps the elder profile, reminders, medications and alerts in real-time sync with the robot's local SQLite database, Cloud Storage holds photos and medical documents, and Cloud Run with Vertex AI powers the web RAG agent.

Cloud architecture

Belle architecture

On the robot, the main loop orchestrates the voice pipeline and routes every request through Groq to the right tool. Health questions are answered locally with a RAG pipeline: the medical PDFs are chunked, anonymized and indexed with FAISS using local embeddings, so personal data never leaves the device.

Belle architecture

Getting Started

# 1. Clone
git clone https://github.com/martinagg7/Belle_Assistant.git
cd Belle_Assistant

# 2. Main environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 3. Camera environment (OpenCV + YOLO)
python -m venv venv_camera
venv_camera/bin/pip install -r requirements-camera.txt

# 4. Configuration
cp .env.example .env        # fill in your API keys
# add your belle-service-account.json (Firebase Admin)

# 5. Database and RAG index
python data/create_db.py
python -m rag.build_index

# 6. Run everything
./start.sh

Repository Structure

Belle_Assistant/
├── main.py            # entry point, voice loop
├── config.py          # central configuration
├── core/              # router, LLM client, tool executor, workers
├── voice/             # wake word, STT, TTS
├── tools/             # reminders, health, games, radio, emergency...
├── rag/               # health RAG pipeline (FAISS + embeddings)
├── services/          # FastAPI server, cloud sync, Telegram bot
├── camera/            # camera server and fall detection
├── hardware/          # LED ring and servo control
├── app/               # kiosk web app (Belle's face)
├── data/              # SQLite schema
└── prompts/           # LLM prompts

Demo Videos

Test recordings of Belle working (wake word, conversations, reminders, games, fall detection) are available in this Drive folder.

Contact

Martina García González — Universidad Alfonso X el Sabio (UAX)

About

Voice assistant robot for elderly care on Raspberry Pi

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages