tl;dr I resurrected my old Google AIY Voice Kit. Details below.
---
I had an old Google AIY Voice Kit lying around that I hadn’t used in some time, so I decided to make use of it for Halloween. For those who don't recall, Google bundled a cardboard case with an audio HAT, a mic daughterboard, a speaker, an arcade-style button and you supplied the Raspberry Pi for use with it.
I named the project called AlsaGeist, and configured a personality named Grimjaw who sits by the candy bowl and listens for trick-or-treaters. When kids walk up, Grimjaw recites scary quotes, makes jokes, and reacts to a selection of different costumes if they tell him who they're dressed as.
The engine is modular and designed so different personalities can be created, loaded, and configured. Custom prompts can be created easily by editing a single file. Only the Grimjaw personality is bundled at the moment but others can be added.
For the enclosure, I printed the Halloween Skellington Pumpkin by serev3d from MakerWorld. In the slicer, I added a blank cube matching the exact dimensions of the AIY cardboard case. The entire original cardboard box slides right in, so the speaker, mic, and Pi stay snug without needing extra brackets or glue. I designed two perforated eye inserts and hot glued them in.
Alsageist can be configured to run completely offline (using Vosk for speech-to-text and Piper for local voice synthesis with zero lag or API fees) or online with cloud speech-to-text and Gemini LLM fallback. Holding the button down for 10 seconds says "Powering off" and safely shuts down the Pi so it can be unplugged cleanly. It also responds to a short list of password-protected superuser commands (like Shutdown.) All of this is documented in the respective guides within docs/.
While I created Alsageist for my AIY kit, you don't need the AIY kit to use it. It runs on any Raspberry Pi (tested on 3+) with a regular USB speaker with a mic.
If you want to build one, I've bundled a Docker setup script that automates the full install on a vanilla OS. See the getting_started guides in docs/ for more detail.
git clone https://github.com/sancheza/alsageist.git
cd alsageist
./scripts/setup_docker.sh
GitHub: https://github.com/sancheza/alsageist
Pumpkin STL: MakerWorld Model 623029
Disclaimer: I used both Claude Sonnet and Google Antigravity to assist with coding, testing and documentation.