Build a physical, always-on voice assistant device instead of relying on a phone app.
Control real hardware, such as RGB room lighting, through spoken AI commands.
Learn how to stream microphone audio from a microcontroller to a server in real time.
Experiment with letting a user interrupt an AI while it is speaking, known as barge-in.
| madebyparth/nova-ai | 2arons/llm-cli | abe238/claude-video-plus | |
|---|---|---|---|
| Stars | 11 | 11 | 11 |
| Language | Python | Python | Python |
| Setup difficulty | hard | easy | easy |
| Complexity | 4/5 | 2/5 | 3/5 |
| Audience | vibe coder | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires assembling and wiring physical ESP32 hardware, not just installing software.
NovaAI is a personal project that builds a physical AI voice assistant using a small computer chip called an ESP32, instead of keeping the assistant inside a phone app or website. It uses Google's Gemini Live service to hold real time spoken conversations, and it can also control physical hardware in the room, like an RGB light, based on what it hears. A microphone connected to the ESP32 picks up your voice and streams the raw audio over the local Wi-Fi network to a Python server built with FastAPI. That server forwards the audio to Gemini Live, gets back a spoken response, and streams that audio back to the ESP32, which plays it through a small speaker. A ring of LED lights on the device changes color to show its current state, such as listening, thinking, or speaking, and you can interrupt Nova while it is still talking. Gemini can also trigger real actions, such as turning an infrared LED into a remote control signal for RGB room lighting. The project's author describes the interesting part not as calling an AI API, which is simple, but as everything around it: capturing clean audio on a small chip with limited power, sending it over a local network without noticeable delay, letting a person interrupt playback naturally, and turning an AI's decisions into real electrical signals. Setting it up means installing a few Python packages for the server, and separately programming the ESP32 chip with the included firmware using the Arduino development tools, along with a handful of Arduino libraries for the LEDs, infrared signals, and networking. The wiring diagram lists exact connections for the microphone, amplifier, speaker, LED ring, and infrared LED. Right now some settings like the Wi-Fi password and server address are written directly into the firmware code rather than kept in a separate configuration file, which the documentation says should change before wider use. The project is released under the MIT license, which allows free use, modification, and commercial use as long as the license and copyright notice are kept.
An open source project that builds a physical AI voice assistant on an ESP32 chip, using Gemini Live for real time spoken conversation and hardware control.
Mainly Python. The stack also includes Python, FastAPI, ESP32.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.