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.
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.
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.
| 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 |
| 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 |
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.
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.
# 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.shBelle_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
Test recordings of Belle working (wake word, conversations, reminders, games, fall detection) are available in this Drive folder.
Martina García González — Universidad Alfonso X el Sabio (UAX)
- Email: martinagg@myuax.com
- LinkedIn: linkedin.com/in/martinagarciagonzalez



