DIY Voice Assistant based on the GLaDOS character from Portal video game series.
- Designed for Raspberry Pi
- Written mostly in Python
- Work in progress
- Local Trigger word detection using PocketSphinx
- Speech to text processing using Google's API (for now)
- GLaDOS Text-to-Speech generation using https://glados.c-net.org/
- Storing of generated audio samples locally for instant answers in the future
- Animatronic eye control using servos
- Round LCD for an eye to display display textures
Tight integration with Home Assistant's local API:
- Send commands to Home Assistant
- Can read and speak sensor data
- Notification API, so Home Assistant can speak notifications aloud
- Clock
- Control lights and devices
- Weather and forecast
- Add things to shopping list
- Read sensor information
- Random magic 8-ball answers
- Tell jokes
- Judge you and be mean
- Advanced fat-shaming
- Log stuff and gather training data locally
Note: The code is provided as reference only.
You can add glados.py to your crontab file or run it manually.
crontab -e
@reboot python3 /home/username/GLaDOS-Voice-Assistant/glados.py
Additionally you can configure the ReSpeaker at startup by adding following lines to root's crontab:
sudo su
crontab -e
@reboot bash /home/username/GLaDOS-Voice-Assistant/hardware/ReSpeaker/ReSpeaker_Startup_Config.sh
@reboot python3 /home/username/GLaDOS-Voice-Assistant/hardware/ReSpeaker/ReSpeaker_Turn_off_Pixelring.py
List of reference hardware what nerdaxic is developing on, models might not need to be exact. Not a full bill of materials.
| Item | Description |
|---|---|
| Main board | Raspberry Pi 4 Model B 8GB |
| Power supply for Digital + Audio | Raspberry Pi 15W USB-C Power supply |
| Memory card | Class 10 64 GB microSDXC U3 |
| Microcontroller | Teensy 4, to control the eye LCD and NeoPixels |
| Eye lights | Adafruit NeoPixel Diffused 5mm Through-Hole for the "REC" light |
| Eye lights | Adafruit 16 x 5050 NeoPixel Ring |
| Eye LCD | 1.28 Inch TFT LCD Display Module Round, GC9A01 Driver SPI Interface 240 x 240 |
Audio amp is powered from Raspberry GPIO 5V line and ReSpeaker board from USB to avoid ground loops and noise issues.
| Item | Description |
|---|---|
| Audio amplifier | Adafruit Stereo 3.7W Class D Audio Amplifier |
| Speakers | Visaton FRS 7 |
| Microphone & Audio interface | ReSpeaker Mic Array V2.0 |
Mechanics are powered from their own power supply to allow more power for the servos and prevent brown-outs.
| Item | Description |
|---|---|
| Power supply | MeanWell LRS-50-5 5V |
| Servo controller | Pololu Micro Maestro |
| Servo: Eye movement | 35 kg DS3235 (Control Angle 180) |
| Servo: Eyelids | 25 kg DS3225 (Control Angle 180) |
| Screws | Various M3 and M4 screws |
| Jumper wires | 0.32 mm²/22 AWG assortment |