My ESP32 based voice assistant with wake word

Here’s my entry - it’s an ESP32 Lyrat based voice assistant. It’s designed to be relatively easy for others to create. I’m not sure if this is allowed so if not, I’ll remove the link. Here’s a link to my blog where I outline the process of building one.

Here’s a video of a prototype in action → https://youtu.be/5DkJgo8wSRs

This looks great. would it be possible to add a NFC reader to it? Does that board supports local wake word? Any chance you can add a bit more detail to the tutorial so it is more beginner friendly. I’m not sure how to set the board in a mode that allows me to install esphome.

2 Likes

Hey @ignacio82

It should be possible to add an nfc reader to this board but it might not be easy because a lot of the GPIO pins are already in use.

The devs say microWakeWord requires an esp32-c3 with 2mb of PSRAM so the lyrat board will not work out of the box. It has 4mb of PSRAM but I need to do further research to see what differs between the ESP32-WROOM (which the Lyrat uses) and the ESP32-C3.

Thanks for the feedback, I will update the article to explain the flashing process better. You don’t need to put the ESP32 into any specific mode (like the ESP8266’s) to flash it with ESPHome. I connected it to power and data and used the ESPHome web flasher in Chrome to install ESPHome.

1 Like

Thanks! Awesome build! I’ve printed the enclosure and I’m waiting on the LyraT board & then I’ll put it together…

Just one thing about the 3D build. The slot you have for the LED strip is 10.8 mm wide. That probably works for the Neopixel strip, but I’ve got a ton of 144 LED/m ws2812b strips, and they’re a mm wider (and 8 LED’s are just a titch longer than the neopixel).

I never like being the guy who says “could you change your print this way”, because I really appreciate the 3D printed enclosure. But if you could redo the LED slot for a mm (even better, maybe 1.5mm) wider and a mm or so longer, it would fit most 144/m LED strips.

Never mind. I think I’ve got it edited, I’ll print it out and see how it works.

1 Like

Great design! Just got this mostly working. Audio was terrible and I was close to giving up, but found a post where others had a similar problem that was cleared up by disabling esp32_touch, which cleared it up for me as well! Not sure what that’s all about yet.
Only other question I have: where are you soldering the Vcc for the LEDs? If its listed somewhere I may be missing it, but couldn’t quite make it out in the photo.

If someone else builds this, could you share a video showing the wiring process? I have never done this and a video would make things much easier.

It’s interesting to hear so many stories about esp32_touch causing issues with audio. I wonder if they’re sharing a bus or something like that?

VCC is pulled from one side of a diode (?) between the two USB ports. I wish the board manufacturer had included VCC on one of the headers…

Screenshot 2024-03-10 114227

1 Like

Awesome, thanks again! Here’s a couple of images of my progress, one of which is testing the sketchy solder-points before completing assembly. VCC from the USB-C connector and the LEDs are branching off of, what I’m pretty sure is the Zener D3. I borrowed the ground from the mini-b…idk seemed like a good idea at the time… So far its working pretty well :+1: (even though its a gross filament color)


1 Like

Could you share a couple more pictures showing how to do the wiring for the USB c? I have never done this before. Where does the red cable goes? The black? Where did you put the port in the case?

Same problem. After disabling the esp32_touch tts is good. However, I cannot get music assistant to play on this. @D_C are you able to play music with it? If so, would you mind sharing how?

Could someone share some pictures, or even better a video for how to wire the led? I have never done any soldering in my life, I have no clue if this is so bad that it will not even work:

The results of the contest are out!
They may be of interest to you :wink:
Have a look!

3 Likes

For your soldering, I think this will cause issues in the long run. you’ve got loose ends that can easily fold over and short out to the terminal next to them. That loose wire from the soldered chunk to the insulation on the ground wire is a worry.

Strip your wire ends and twist the loose bit tightly in one direction.

You want to ‘tin’ both your wire, and the pad it’s going onto separately. This is just a little blob on the pads and just enough on the wire that it covers the copper. Use flux cored solder to help it stick well.

Then cut your leads short enough they they are just long enough to cover the pad, doing this with sharp wire cutters after tinning gives you a nice flat end.

Then you only need to place the wire on top of the pad and lightly press down with the iron so they melt together, this should only take 3 seconds. You should get a nice shiny blob once it’s cooled. If you were wiggling it as it cooled you’ll get a week joint with a white appearance. if that happens hit it again with the iron

2 Likes

It’s intermittent, but I can play from within home assistant by going to the device, then playing media. However, by watching the logs and then randomly guessing, I’ve discovered that if you first disable ‘use wake word’ it’ll respond to playing media much more reliably.