Anyone here tried making a voice assistant for their smart home?

I built a voice assistant for my Home Assistant setup. Used a Pi Zero 2W with a ReSpeaker 2-Mic HAT and connected it to an old Bluetooth speaker for sound. It has a wake word feature, supports multi-room audio with Snapcast, and uses TTS. I made a detailed guide in case anyone wants to try it out.

Here’s the link if you’re interested: https://github.com/sayam93/Pi-Voice-Assistant/

I’ve been wanting to try this, but the multi-room audio setup held me back. Just saw a tutorial recently, so I might finally try it out and see how it goes .

Thanks for sharing! I have a similar setup but haven’t tried connecting a Bluetooth speaker yet. How’s the mic sensitivity? I’ve noticed mine struggles with words unless I’m close by.

Riley said:
Thanks for sharing! I have a similar setup but haven’t tried connecting a Bluetooth speaker yet. How’s the mic sensitivity? I’ve noticed mine struggles with words unless I’m close by.

Oh, by the way, you might like this extra step I saw - it’s called Fallback Conversation. If you connect it with your usual Assist setup, it skips using the LLM for simple commands like ‘Turn off the light’ and just does it right away. It’s great for quick actions.

@Riley
Thanks, I’ll definitely try adding that fallback feature. Sounds handy .

Vick said:
@Riley
Thanks, I’ll definitely try adding that fallback feature. Sounds handy!

It’s actually a good addition. Lets you use the HA intents for basic commands and keep the LLM for answering questions.

Riley said:
Thanks for sharing! I have a similar setup but haven’t tried connecting a Bluetooth speaker yet. How’s the mic sensitivity? I’ve noticed mine struggles with words unless I’m close by.

> My biggest complaint is that unless I’m close by, it mixes up words a lot.

Right, big companies have really optimized mics on their devices. DIY options like ours don’t perform as well yet, but maybe tech for this will improve for us soon.

@Nevan
I’m hopeful that the upcoming HA Voice Kit or the Satellite One by FutureProofHomes will make a big difference.

Riley said:
Thanks for sharing! I have a similar setup but haven’t tried connecting a Bluetooth speaker yet. How’s the mic sensitivity? I’ve noticed mine struggles with words unless I’m close by.

Yeah, the mic isn’t the best, but since it’s next to my bed, it works fine for me. I also set up automation in Home Assistant to pause my other devices if they’re playing when it’s listening, so background noise doesn’t interfere.

Riley said:
Thanks for sharing! I have a similar setup but haven’t tried connecting a Bluetooth speaker yet. How’s the mic sensitivity? I’ve noticed mine struggles with words unless I’m close by.

Haven’t tried the Bluetooth part yet. Planning to start with your post this weekend. Thanks .

Would an older Pi Zero W work, or should I use one of my Pi 3 or 4 boards?

Holland said:
Would an older Pi Zero W work, or should I use one of my Pi 3 or 4 boards?

A Pi 3 or 4 would definitely work. You’ll just need to set the audio output by running this:

pactl set-default-sink alsa_output.platform-soc_sound.stereo-fallback

@Vick
Thanks! So the Zero W might not be powerful enough for this?

Holland said:
@Vick
Thanks! So the Zero W might not be powerful enough for this?

I haven’t tried it on a v1.1 myself, but I think it could be a bit slow for wakeword processing.

Vick said:

Holland said:
@Vick
Thanks! So the Zero W might not be powerful enough for this?

I haven’t tried it on a v1.1 myself, but I think it could be a bit slow for wakeword processing.

He could try the openwakeword add-on on the HA server. I find it works decently, but local would be faster if the hardware can handle it.

@Quince
In my experience, it’s slower on the HA server.

I’ve done a similar setup but the mic is bad. When music is playing, it hardly picks up any commands, and without music, you have to be super close.

Amar said:
I’ve done a similar setup but the mic is bad. When music is playing, it hardly picks up any commands, and without music, you have to be super close.

I made an automation that mutes my TV and music when the assist sensor is active. It un-mutes once the request is finished. Works well enough.

@Quince
I use the same automation, but I think what @EFI means is that the wake word detection itself is weak with background noise.

How fast is the speech-to-text? I tried something similar on an older mini PC, and it was pretty slow.