esp32.diy

Dsn AI Voice Assistant v2: ESP32-C3 Build Guide

Oct 13, 2026 · 5 min read

Intermediate 11 stars 3 forks C++ GPL-3.0 Updated 2025-11-22

The finished Dsn AI Voice Assistant v2 in its 3D-printed enclosure.

TL;DR The Dsn AI Voice Assistant v2 turns an ESP32-C3 into a cloud-connected AI gadget that captures your voice, sends it to a Hugging Face model, and streams the spoken reply back through a small speaker — all in a 3D-printed shell. It is a significant step up from v1: WAV streaming replaces slow MP3 downloads, and a compact OLED keeps you informed without taxing the limited GPIO of the C3.
What you need
  • ESP32-C3
  • INMP441 I2S MEMS microphone
  • MAX98357A I2S audio amplifier
  • SSD1306 OLED display (I²C)
BoardESP32-C3
LanguageC++
AI BackendHugging Face (cloud)
AudioWAV streaming, no file delay
LicenseGPL-3.0
DifficultyIntermediate

What You Will Build

This project gives you a palm-sized AI voice assistant built around the ESP32-C3. Press a button, speak a question, and the device records your voice with an INMP441 I2S MEMS microphone, ships the audio to a Hugging Face model over Wi-Fi, then streams the AI's spoken reply back through a MAX98357A I2S amplifier — all without writing audio to flash storage first. A small SSD1306 OLED display shows status information, and a compact 3D-printed shell (designed in Fusion 360) keeps everything tidy and portable.

The jump from v1 matters: the first version downloaded MP3 files to SPIFFS before playing them, which introduced noticeable lag. Version 2 streams WAV audio directly, so the response feels nearly instant. The trade-off is a permanent Wi-Fi dependency, but for a desk or pocket gadget that is usually acceptable.

Wiring schematic showing INMP441, MAX98357A, SSD1306, and ESP32-C3 connections.\2
Wiring schematic showing INMP441, MAX98357A, SSD1306, and ESP32-C3 connections.

What You Need

Hardware

Component Role
ESP32-C3 dev board Main controller
INMP441 I2S MEMS microphone (voice input)
MAX98357A I2S audio amplifier (speaker output)
SSD1306 OLED I²C display, 2-pin data connection
Small speaker Connected to MAX98357A output
Push button Press-to-talk activation

The README notes that the ESP32-C3 has fewer GPIO pins and less SRAM than a standard ESP32, so pin sharing is intentional: the INMP441 and MAX98357A share the same I2S clock and word-select lines; only their data lines (DIN and DOUT) are separate. The MAX98357A's SD (shutdown) pin is wired to 3.3 V to keep the amplifier always on.

Optional enclosure

The author published STL files on Cults3D (Dsn AI Assistant Shell), designed in Fusion 360 for compactness.

Software and accounts

Typical use cases

Portable AI Companion

Carry the 3D-printed assistant in a pocket or bag for quick voice queries wherever you have Wi-Fi.

Low-Latency Voice Replies

WAV streaming removes the file-download delay of older designs, giving near-instant spoken responses.

Hugging Face Model Experiments

Swap the backend endpoint to test different open-source speech and language models hosted on Hugging Face.

ESP32 I2S Audio Learning

Study a working example of sharing I2S pins between a MEMS microphone and an amplifier on a pin-limited ESP32-C3.

How It Works

The firmware running on the ESP32-C3 follows a straightforward pipeline:

  1. Capture — When the button is pressed, the INMP441 microphone feeds raw audio into the ESP32-C3 over I2S.
  2. Transmit — The recorded audio is sent over Wi-Fi to the server, which forwards it to a Hugging Face hosted AI model (speech-to-text, language model, text-to-speech chain).
  3. Stream back — The server returns WAV audio. The ESP32-C3 streams it directly to the MAX98357A amplifier without saving the file to flash, eliminating the SPIFFS write/read delay that v1 suffered from.
  4. Display — The SSD1306 OLED shows status information throughout the cycle, using only the two I²C data pins to keep GPIO usage low.

Because the I2S microphone and amplifier share clock and word-select pins, the design squeezes two audio peripherals onto the pin-limited C3. The always-on amplifier (SD tied high) trades a small idle current draw for simpler firmware logic.

Build and Flash Steps

1. Wire the hardware

Follow the schematic provided in the repository (images/schematic.jpg). Key wiring rules from the README:

2. Set up the server

The full server setup, installation, and configuration is covered in the v1 YouTube video linked in the repository. Complete that before flashing the ESP32-C3, because the firmware needs a reachable server endpoint to send audio to and stream responses from.

3. Configure and flash the firmware

Clone the repository, open the project in your IDE, and update the Wi-Fi credentials and server address in the configuration. The README does not list specific build commands, so follow the instructions in the repository directly. Flash the ESP32-C3 using your normal IDE upload workflow.

4. Test

Tip from the README: Keep a stable Wi-Fi connection for the best experience. Packet loss on a weak signal will interrupt WAV streaming and break responses.

Ideas to Extend It and Limitations

Planned features (from the README roadmap)

Ideas you can explore

Limitations to keep in mind

Verdict

The Dsn AI Voice Assistant v2 is a well-focused project that demonstrates how much AI capability you can pack into a tiny ESP32-C3 board when you offload the heavy lifting to a cloud model. The shift to WAV streaming is a real practical improvement, and the published 3D enclosure makes this feel like a finished gadget rather than a breadboard experiment. The main dependency is a reliable Wi-Fi connection and a separately configured server, so makers comfortable with both will get the most out of it.

Sources

github.comderdacavga/pocket-size-Ai-assistant — repository & README

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.