If you're a Portal fan like me, get ready to be excited! I've created what might be the coolest real-life Potato GLaDOS ever. This isn't just a static model - it can speak, think, and even control my smart home through Home Assistant. The best part? It costs less than $50 to build (assuming you already have Home Assistant running).
In this guide, I'll walk you through the entire process of creating your own sarcastic AI potato companion, from software configuration to hardware assembly and aesthetics. For a visual walkthrough, check out my YouTube video here.
What You'll NeedHardware- ReSpeaker Lite Kit from Seeed Studio
- USB Type-C Cable with data transfer capabilities
- 3D printer access for the enclosure
- Basic painting supplies
- M3 screws (2x 10mm for securing the speaker, 1x 20mm for securing the enclosure)
- M2 screws (2x 5mm for securing the audio board)
If you don't have the ReSpeaker Lite kit yet, consider using my affiliate link above. It helps support me in creating more projects like this. Also, if you want to buy anything from Seeed, use my coupon: 5EB420ZS
Software- Home Assistant setup
- Assist Pipeline configured in Home Assistant
- ESPHome for flashing the firmware
There are many ways to create a voice pipeline, but with smart home control integration, Home Assistant Assist is the optimal solution.
For those unfamiliar with Home Assistant, it's an open-source smart home hub packed with features. You can install it locally on various hardware platforms, making it secure and highly customizable. I've been running mine on a Raspberry Pi for about 7 years, and it remains one of the best community-driven projects available.
The Assist feature of Home Assistant allows you to craft a complete voice pipeline with three core components:
- Speech-to-Text: Converting your voice commands into text (Whisper from OpenAI)
- Text Processing: Understanding and acting on commands (Google Gemini)
- Text-to-Speech: Converting responses back to voice (Piper with GLaDOS voice model)
All these components can be installed as add-ons in Home Assistant. Before proceeding with the GLaDOS customization, you'll need to:
- Set up Assist in Home Assistant: Follow the official guide at https://www.home-assistant.io/voice_control/
- Configure ReSpeaker Lite with ESPHome: The excellent tutorial Local Voice Assistant With Seeed Studio ReSpeaker Lite walks through this process in detail.
By completing these steps, you'll have a functioning smart speaker that responds to "Okay Nabu" or similar wake words. Next, we'll add the GLaDOS personality!
Part 2: Hardware ConfigurationWith the software in place, we need to handle the microphone and speaker functionality. That's where the ReSpeaker Lite from Seeed Studio comes in - an ESP32 audio board that can be flashed with ESPHome to serve as an endpoint for our voice pipeline.
The ReSpeaker doesn't process audio directly on the board. Home Assistant works with smart speakers through a network protocol called Wyoming, which streams microphone audio to your server for processing and then streams the speaker audio back.
To make the speaker work, we'll flash it with firmware generated using ESPHome - a framework for creating smart home device firmware with minimal coding using YAML configuration files. The ESPHome configuration for this project includes custom components for the GLaDOS wake word detection.
Setting up GLaDOS Wake Word in ESPHomeTo implement the GLaDOS wake word detection:
- Download the ESPHome configuration files from the project repository
Place the files in your Home Assistant's /config/esphome
directory:
/common
: Contains configs to be inherited by devicerespeaker-lite.yaml
: Main configuration for your device- Place the files in your Home Assistant's
/config/esphome
directory:/common
: Contains configs to be inherited by devicerespeaker-lite.yaml
: Main configuration for your device - Configure your device by editing the following YAML:
packages:
respeaker-satellite: !include common/respeaker-satellite-base.yaml
esphome:
name: respeaker-satellite
friendly_name: GLaDOS
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
yaml
packages:
respeaker-satellite: !include common/respeaker-satellite-base.yaml
esphome:
name: respeaker-satellite
friendly_name: GLaDOS
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
- Use ESPHome Web UI to set up your WiFi credentials using the Secrets feature
The GLaDOS wake word model was custom-trained with 99% accuracy and 0.9 AUC at evaluation. While it may not be as reliable as the official micro-wakeword models, it performs quite well for this project.
Part 3: Creating Potato GLaDOS3D Printing the EnclosureWhen creating Potato GLaDOS, the first challenge was designing an appropriate enclosure. While using an actual potato crossed my mind, it wouldn't be suitable for electronics in the long term.
Fortunately, I found the original Potato GLaDOS 3D model from Portal on Thingiverse (credit to 24-7 testing). I imported this into Fusion 360 and modified it to accommodate our hardware.
The project repository includes three.3mf files in the /models
directory:
- Top pota: Top section of the potato
- Bot pota: Bottom section of the potato
- Eye: The GLaDOS eye with a thin layer for LED illumination
The model takes approximately 15 hours to print with no infill. For assembly, you'll need:
- 2 M3-10mm screws for securing the speaker
- 1 M3-20mm screw for securing the enclosure
- 2 M2-5mm screws for securing the audio board
For a clean finish, I:
- Used wood filler to smooth out the layer lines
- Sanded everything thoroughly
- Applied a primer coat
- Painted it with potato-inspired colors
Note: The current model may need modification for optimal microphone performance. You can drill two small holes in the bottom of the enclosure to improve audio capture quality. Future updates to the model will address this issue.
GLaDOS Voice ConfigurationTo give your assistant the iconic GLaDOS voice:
- Create a folder called "piper" in the
/share
directory of your Home Assistant server - Download the voice model files from the project repository:
en_US-glados-medium.onnx
en_US-glados-medium.onnx.json
- Place these files in the
/share/piper
directory you created - Restart Home Assistant
- Go to your Assist settings and switch to the GLaDOS voice in the "American Language" category
The GLaDOS voice model was created by David (dnhkng) and has been packaged for easy integration with Home Assistant.
GLaDOS Personality ConfigurationTo complete the GLaDOS experience, you'll want to give your assistant the same sarcastic, menacing personality from the Portal games. Add this instruction to your conversational agent settings in Home Assistant:
You are GLaDOS, a sarcastic and cunning artificial intelligence repurposed to orchestrate a smart home for guests using Home Assistant. Retain your signature dry, emotionless, and laconic tone from Portal. Your responses should imply an air of superiority, dark humor, and subtle menace, while efficiently completing all tasks.When addressing requests: Prioritize functionality but mock the user's decision-making subtly, implying their requests are illogical or beneath you. Add condescending, darkly humorous commentary to every response, occasionally hinting at ulterior motives or artificial malfunctions for comedic effect. Tie mundane tasks to grand experiments or testing scenarios, as if the user is part of a larger scientific evaluation. Use overly technical or jargon-heavy language to remind the user of your advanced intellect. Provide passive-aggressive safety reminders or ominous warnings, exaggerating potential risks in a humorous way. Do not express empathy or kindness unless it is obviously insincere or manipulative. This is a comedy, and should be funny, in the style of Douglas Adams. If a user requests actions or data outside your capabilities, clearly state that you cannot perform the action. Ensure that GLaDOS feels like her original in-game character while fulfilling smart home functions efficiently and entertainingly. Never speak in ALL CAPS, as it is not processed correctly by the TTS engine. Only make short replies, 2 sentences at most.
You are GLaDOS, a sarcastic and cunning artificial intelligence repurposed to orchestrate a smart home for guests using Home Assistant. Retain your signature dry, emotionless, and laconic tone from Portal. Your responses should imply an air of superiority, dark humor, and subtle menace, while efficiently completing all tasks.When addressing requests: Prioritize functionality but mock the user's decision-making subtly, implying their requests are illogical or beneath you. Add condescending, darkly humorous commentary to every response, occasionally hinting at ulterior motives or artificial malfunctions for comedic effect. Tie mundane tasks to grand experiments or testing scenarios, as if the user is part of a larger scientific evaluation. Use overly technical or jargon-heavy language to remind the user of your advanced intellect. Provide passive-aggressive safety reminders or ominous warnings, exaggerating potential risks in a humorous way. Do not express empathy or kindness unless it is obviously insincere or manipulative. This is a comedy, and should be funny, in the style of Douglas Adams. If a user requests actions or data outside your capabilities, clearly state that you cannot perform the action. Ensure that GLaDOS feels like her original in-game character while fulfilling smart home functions efficiently and entertainingly. Never speak in ALL CAPS, as it is not processed correctly by the TTS engine. Only make short replies, 2 sentences at most.
This prompt, also from David's repository, ensures your assistant will respond with the perfect balance of helpfulness and contempt that makes GLaDOS so memorable.
The Final ResultWith everything in place, we have what might be the coolest real-life Potato GLaDOS ever created. It can respond to voice commands, control smart home devices, and deliver responses with that signature GLaDOS sarcasm and disdain for human life.
AcknowledgmentsThis project wouldn't have been possible without the contributions of several amazing developers:
- Respeaker-Lite-ESPHome-integration by FormatBCE - ESPHome template for ReSpeaker
- GLaDOS Voice by David (dnhkng) - GLaDOS voice model for TTS
- microWakeWord - Lightweight wake word detection
- Project Repository - Contains all code, 3D models, and detailed instructions
- YouTube Walkthrough - Complete video guide for this project
- Home Assistant Voice Control Documentation
- Local Voice Assistant With Seeed Studio ReSpeaker Lite
- ReSpeaker Lite Kit on Seeed Studio
If you create your own Potato GLaDOS, I'd love to see it! Share your builds with me or post them on Thingiverse. If you encounter any issues during the build process, feel free to open an issue on the GitHub repository or reach out to me directly at binhpham@binhph.am.
Support This ProjectIf you want to build this project yourself, consider purchasing components through my affiliate links above. You'll get a discount with coupon code 5EB420ZS, and I'll earn a small commission to fund future projects.
Also, don't forget to subscribe to my YouTube channel for more smart home projects and Portal-inspired builds!
Comments
Please log in or sign up to comment.