Popi do not buy more hardware, at least until you are happy with your current RasPi 4 and RasPi Zero 2 working as you want.
OK, base + satellite install.
This is a pretty classic client-server configuration. The satellite (client) devices detect the audio, and coordinate the processing, calling the appropriate modules (services) on the local or base machine to perform particular tasks. The satellite machine is in charge of the overall process.
base machine
On the base machine you already have Home Assistant and the Rhasspy add-on.
- If you don’t already you should install HA’s MQTT add-on to allow multiple machines and apps to talk to each other (the Internal MQTT option only allows the rhasspy modules on that machine to interact).
- If you are like me you have probably tried fiddling with all the different settings; but there is actually not much required. My base machine’s Rhasspy settings are:
{
"dialogue": {
"satellite_site_ids": "sat-0, sat-1, sat-2, sat-3B, muscle",
"system": "rhasspy"
},
"intent": {
"fsticuffs": {
"fuzzy": false
},
"satellite_site_ids": "sat-0,sat-1,sat-2,sat-3B, muscle",
"system": "fsticuffs"
},
"mqtt": {
"enabled": "true",
"host": "192.168.1.98",
"password": "redacted",
"site_id": "base",
"username": "rhasspy"
},
"speech_to_text": {
"kaldi": {
"min_confidence": "0"
},
"satellite_site_ids": "sat-0,sat-1,sat-2,sat-3B, muscle",
"system": "kaldi"
},
"text_to_speech": {
"satellite_site_ids": "sat-0,sat-1,sat-2,sat-3B, muscle, announce",
"system": "larynx"
}
}
- Note that only some of the sections are used, and mostly with default settings. Other sections are disabled.
- satellite_site_ids are very important, as this tells the base station which satellite machines it should provide that service for. I called mine “base”, “sat-1”, “sat-2” because I have no imagination, and I was unsure which room I will end up putting them.
- I have chosen to use IP addresses, and have created a separate user in HA for the MQTT service to use … probably not necessary.
satellite machine
On a satellite you only need the minimum to run Rhasspy.
For my RasPi Zero I installed Raspberry Pi OS lite version, then a Debian Rhasspy install - without Docker because honestly I didn’t want to tackle that learning curve yet; and the satellite will only be running the one task so minimal complexity.
On your regular PC simply browse to the satellite machine’s web interface on port 12101 (eg http://192.168.1.92:12101/) to see Rhasspy’s interface.
It’s the same user interface as the base, which can be confusing, but you can plug in your audio device, configure the Audio input and output.
You could use the base for listening for the wake word - but that will send all the sound over the network - so local wake word detection is probably better.
Note that I have not used Intent Handling - which is because I am using node-RED add-on in Home Assistant to listen for the messages and action them. You will want to set Intent Handling to your machine running Home Assistant
Wow, that’s probably enough for now. Time for me to locate that tutorial I wrote way back, to see what else I did (particularly when I used Intents).