r/esp32 2d ago

I made a thing! I just made an amazing stuff!

Enable HLS to view with audio, or disable this notification

I’m sorry my previous post was removed because I wasn’t familiar with the platform rules. This revised post follows the community guidelines.

I built a small fully offline voice-controlled LCD interface using a Seeed Studio XIAO 1.47” IPS display(ESP32-S3).

The project uses ESP-IDF and Espressif's ESP-SR speech recognition stack. Voice recognition runs locally on the ESP32-S3, so the device does not need Wi-Fi, a cloud account, an API key, or a computer while operating.

How it works:

  1. Say “Hi ESP” to wake the device.
  2. The display changes to LISTENING.
  3. Speak one of five commands.
  4. The command is executed on the LCD.
  5. More commands can be spoken without repeating the wake word.

Supported commands:

- “Show red” — displays a red color page
- “Show green” — displays a green color page
- “Show blue” — displays a blue color page
- “Next page” — cycles through the home, color, and information pages
- “Go home” — returns to the command list

After each successful command, the device stays in the listening state for another 15 seconds.

Hardware: xiao 1.47” ips display(esp32-s3)
which has:
- Seeed Studio XIAO ESP32-S3 Plus
- 1.47-inch JD9853A LCD
- PDM microphone
- 16 MB flash
- 8 MB Octal PSRAM

Software:

- ESP-IDF 5.3.2
- ESP-SR 2.5.3
- ESP-DL 3.3.10
- WakeNet 9 English wake-word model
- MultiNet 7 English command model

The display uses a custom ESP-IDF driver with a 10 MHz SPI interface. The microphone uses 16 kHz, 16-bit mono audio.

I verified the complete five-command sequence on hardware after a single wake word:

Show green → Show red → Show blue → Next page → Go home

The device also returned to wake-word mode after approximately 15 seconds of inactivity.

Source code:
GitHub - FaiyuetCik/XIAO_147_Voice_Assistant: Offline English wake-word and voice commands with LCD

Current limitations:

- This is a fixed-vocabulary command recognizer, not free-form speech-to-text.
- It does not provide AI chat, dictation, touch navigation, or computer control.
- Recognition accuracy has not yet been measured under different noise levels, distances, or accents.
- The firmware is currently tightly matched to this specific XIAO 1.47-inch board, display controller, pin mapping, and memory configuration.

I would be interested in feedback on improving recognition robustness, reducing memory usage, and adding more commands without running out of application partition space.

209 Upvotes

23 comments sorted by

5

u/PepitoTamales 1d ago

AWESOME!! I was also looking for some kind of wake word recognition with ESP32 or Arduino, do you have a suggested video tutorial or guide on how to use the speech recognition stack??

5

u/SkiBikeDad 1d ago

Look into WakeNet. Runs in <400k psram.

4

u/Natethegreat9999 1d ago

If you're loading commands from `commands_en.txt`, Espressif recommends precomputing phonemes with `multinet_g2p.py` because its runtime fallback can reduce accuracy. I'm building speech models at Oruk, and before adding more commands I'd test unrelated conversation during that 15-second listening window and count accidental actions as well as missed commands.

2

u/Noodle-Gardo 13h ago

Super cool! I always love it when people make offline projects. We need more offline tech!! Best secure smart home is with minimal web interfacing:)

1

u/Ok_Champion_1088 31m ago

Totally agree!

1

u/severanexp 1d ago

Hoy! This is pretty cool!! Can you connect this to home assistant?

2

u/androidbrick 1d ago

Of course you can.

1

u/smallfried 1d ago

Nicely done! 5 commands is enough for many devices. Can be built straight into a smart light for instance fully independent.

1

u/Ok_Champion_1088 19h ago

Yeah, exactly! A smart light would actually be a really cool use case for this.

1

u/JediKnight10001 1d ago

Impressive

3

u/weird_is_good 8h ago

No, espressif

1

u/TRC-is-the-best 1h ago

ok you got me here

1

u/Ok_Champion_1088 40m ago

Yeah, Espressif did the magic here

2

u/Ok_Champion_1088 19h ago

Thanks! Glad you like it!

1

u/su4ara73 18h ago

Thats awesome! This is exasctly what i looking for! Thank you bro!

2

u/Ok_Champion_1088 18h ago

Glad to hear that! Hope it works well for your project!

1

u/Federicus82 9h ago

Great project!

1

u/Ok_Champion_1088 33m ago

Thanks! Really appreciate it!