I have been playing with Rhasspy 2.5 for a couple of weeks and it seems pretty sweet. Currently I am on 2.5.8
.
I setup Rhasspy on a single Pi 4 with a Respeaker 4 mic array. It worked pretty well, however I was finding that the range of the Respeaker wasn’t that great, from more than 2 metres away it was failing to pick up commands unless I screamed them and if there was any sort of background noise from my oven, tv or projector then there was no hope of it working.
Because of this, I bought a couple of pi zero w and a couple of Respeaker 2 mic arrays and Respeaker 6 mic array kits to experiment with different master/satellite setups. My master device was on a Windows 10 pc, the pi 4 with 4 mic array was one satellite and the 2 pi zeros were the other 2 satellites (I tried both the 2 and 6 mic arrays with these). Setup of each device was as per the docs.
The following outlines my experience when using the Master/Satellite setup, where all 3 satellites and master are in a single large room. Note that Master does not have any mic setup attached to it as it is just used for processing power:
-
Command recognition seems much poorer than when using a single device - often when I speak a command, the completely wrong (and not remotely similarly phrased) intent is executed - like I say
turn on tv
and the microwave turns off. -
For some reason it seemed to favour
off
commands - I would sayblah blah on
and instead it would almost always executeblah blah off
. Getting the correspondingon
command to execute was much harder and maybe only happened one in five attempts. -
It never complained about an
unrecognised intent
- instead it just seemed to execute another intent, I guess what it reckoned was the closest match. More often than not it turned off my TV, despite many of the commands I tried not being close toturn off tv
. On my single pi 4 setup (ie not using Master/Satellite) Hermes LED Control flashes red on an unrecognised command (pattern=projectalice
), but it didn’t when using the satellite, instead it always flashed blue (ie successfully recognised the intent) and then executed a comand (but often not the right command). -
The main issue I experienced was that despite there being significant distance between satellites (over 8 metres between 2 of them is the largest distance) when I issued a command, all 3 of the satellites would execute a command - but they would execute different commands and often the further away satellites would take much longer to execute - say 20 - 30 seconds after the first command had executed. This resulted in totally unpredictable behaviour.
As a result of the above testing, I think I will move back to using single instances of Rhasspy, say each instance running on either a pi 3b+ or pi 4 (2 or 4gb).
I was just wondering what peoples’ general experiences were running individual instances of Rhasspy vs Mater/Satellite setup? Are the problems I am experiencing normal? What fixes or work arounds did you implement to overcome them?
I have read a number of posts on here, reddit and even found this https://laurentchervet.wordpress.com/2019/03/ however the solution seemed Snips specific and I didn’t really understand how to implement it.
Questions:
If I switch back to using indiviual instances of Rhasspy then will I still experience the same issue whereby multiple devices execute different commands? (I was hoping not as the range seemed to be more limited and commands seemed better recognised vs using the Master/Satellite setup)
If my issues are caused by using Respeakers, then what mic array would you reccommend instead? I bought Respeakers as they seemed to be used by most people online, however the performance seems really so so (pretty decent for the 4 mic, apart from the previously mentioned range issue, in my experience the 2 and 6 mic array models were awful.)
The performance of the pi zero seems pretty dire - does this have enough power to be an effective satellite?
If anyone has successfully implemented multiple devices in a single room then would you mind discussing it here? What is your setup and what steps did you have to take to prevent any of the issues that I discussed?
Thanks