Some beginner questions

Hi everybody!
Let me first start with that I am absolute beginner to home automation and I have some experience in simple coding and basic common computer knowledge - very basic. Recently home automation sparked my interest and I started reading on the topic.
The ultimate goal for my home automation project is to automate a small house with total of 7 different rooms. I want to use home assistant for the basic automation and for the voice controls I want to use Rhasspy but there are some very basic things that I do not understand and if someone is willing to explain them it will be much appreciated.
Currently for the test purposes I have installed Home Assistant on docker on an old laptop running Ubuntu. Since the end goal it to be able to control it from 7 different points I assume that I will need 7 different microphones. This is where I get lost. From what I read Rhasspy works using server/client communication. If I want to use it over Wi-Fi will this mean that I will need 7 microphones with a raspberry pi for each of them? What is the best recommended option in this case. Also I would like to ask what happens if two of the microphones pick up words at the same time? Does anyone have experience with building similar environment?

Thank you!

That’s correct. I am running Home Assistant on a server where the main Rhasspy server instance is configured, then I have 3 different Pi Zero W’s in different rooms all configured as Rhasspy sattelites. I’d suggest the Respeaker 2mic Pi hat for each of them. If cost is less of an issue, look into the more expensive Respeaker options and consider the Pi 3. Performance is not horrible at all on the Pi Zero, but is definitely noticeably faster with a Pi 3 or above.

Have fun!

For me the higher end USB respeaker Mics are out of whack with Pi price and $70 is too much.
Pi4b±2gb=$35
Pi3a+=$25
Pi0w=$15 but finding them is hard work.
Pi0=$5 and you can use a wifi dongle.

So a $10 2 mic re-speaker is pretty hard to beat and for me sits well with the Pi3A+ as at least you can find where to buy them if you want a ‘w’.

If have just purchased the most ridiculous looking thing from Scan for £4.79 but they did charge me almost £5 P+P.
Its got a pretty damn amazing VIA VT1620A audio chip in it but charting unknown waters.

https://www.scan.co.uk/products/enermax-ap001e-dreambass-usb-soundcard-plus-earphones-genie-with-integrated-80-hz-plus6-db-bass-boos

Its this that matters but will USB EC work well…?


Its quite hard to find stereo ADC’s.

Have to say though Pi4b±2gb is quite awesome for price but it does need a good cooling solution. (£10)
I hate the driver and forced kernel that the Respeaker 2mic forces though.

Yeah just ran the pi zero with software EC extremely surprised it did this well but not much good.

Thank you both for the answers. One of my concerns is what happens if two of the mics pick up the phrase if they happen to be in proximity?I am asking because one of the rooms is with open space concept and I don’t think that I will be able to use only one mic if i want coverage in the entire room.
I looked into the Respeaker 2mic Pi hat and it is reasonably priced. How does it perform when you speak from a distance? I read that its field of operation is about 3 meters. Actually I am using USB stereo sound card for my laptop because I broke its stereo jack and it performs pretty well.

P.S. Please excuse my poor word choices but English is not my native language.

On a single card the mics are are summed AEC is apllied and its returned as a mono stream.
The auto leveling of the WM8960 doesn’t seem to work which is a shame.
I haven’t tried distance but its semsitivity vs noise also seems much better than previous sound cards and webcams that used probably electret microphone but the mems on the 2mic seem really good.
I haven’t tested distance but likely quite good.

It doesn’t seem as clear as my linear 4 mic for Pi but I haven’t played with software AGC yet.
I haven’t looked at the Master/Satelite setup of Rhasspy but was toying with the idea of using VAD level to choose microphone.
It all starts to get much easier when you have an authoritive server other it just boils to the physics of mics and enclosure on range, directional position and orientation.

You might find yourself better off with your USB stereo card and some mic modules.
If you are buying a few at the same time Microphone boards are really cheap as much is P+P.
You can actually get I2S mics that supposedly work on all pi’s apart from the Pi4 for some reason.

Or with a Mems analogue output such as to go to your USB sound card but it will prob be a mono mic.

Or even go electric with auto gain controlled by gpio.

I can not tell you anything apart from that is what I will be playing with.

Your English is great mate as mine is crap but it is my native language :slight_smile:

Adafruit did a tutorial on I2S

There is also RockPiS which for $15 is approx Pi3 speed no GPU but built in sound codec.
Its sort of zero size but square as you can see it next to a Pi4 with a Zero hat on top.

I did a whetstone bench and yeah its approx Pi3 Level

##############################################

Whetstone Single Precision C Benchmark  vfpv4 32 Bit, Tue Apr 28 19:02:46 2020


Loop content                   Result              MFLOPS      MOPS   Seconds

N1 floating point      -1.12475013732910156       282.214               0.062
N2 floating point      -1.12274742126464844       296.081               0.417
N3 if then else         1.00000000000000000               132837800.000     0.000
N4 fixed point         12.00000000000000000                1256.192     0.230
N5 sin,cos etc.         0.49911010265350342                  19.118     3.995
N6 floating point       0.99999982118606567       241.286               2.052
N7 assignments          3.00000000000000000                 603.154     0.281
N8 exp,sqrt etc.        0.75110864639282227                  11.552     2.956

MWIPS                                             918.560               9.994

SYSTEM INFORMATION

From File /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 1
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 2
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 3
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

Serial          : 2f2aeacee81f7ce9


From File /proc/version
Linux version 4.4.143-47-rockchip-g495ff574976c (root@91e15308a281) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120aaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Tue Apr 21 01:38:40 UTC 2020


Additional information -


##############################################

Whetstone Single Precision C Benchmark  vfpv4 32 Bit, Tue Apr 28 19:03:30 2020


Loop content                   Result              MFLOPS      MOPS   Seconds

N1 floating point      -1.12475013732910156       282.161               0.063
N2 floating point      -1.12274742126464844       296.037               0.417
N3 if then else         1.00000000000000000               398947488.000     0.000
N4 fixed point         12.00000000000000000                1256.238     0.230
N5 sin,cos etc.         0.49911010265350342                  19.120     3.999
N6 floating point       0.99999982118606567       241.298               2.054
N7 assignments          3.00000000000000000                 603.168     0.282
N8 exp,sqrt etc.        0.75110864639282227                  11.588     2.950

MWIPS                                             919.447               9.995

SYSTEM INFORMATION

From File /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 1
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 2
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 3
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

Serial          : 2f2aeacee81f7ce9


From File /proc/version
Linux version 4.4.143-47-rockchip-g495ff574976c (root@91e15308a281) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120aaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Tue Apr 21 01:38:40 UTC 2020


Additional information - RockPiS-Debian64


##############################################

Whetstone Single Precision C Benchmark  vfpv4 32 Bit, Tue Apr 28 19:37:51 2020


Loop content                   Result              MFLOPS      MOPS   Seconds

N1 floating point      -1.12475013732910156       282.238               0.063
N2 floating point      -1.12274742126464844       296.100               0.417
N3 if then else         1.00000000000000000               99736872.000     0.000
N4 fixed point         12.00000000000000000                1256.765     0.230
N5 sin,cos etc.         0.49911010265350342                  19.124     3.998
N6 floating point       0.99999982118606567       241.346               2.054
N7 assignments          3.00000000000000000                 603.216     0.282
N8 exp,sqrt etc.        0.75110864639282227                  11.588     2.950

MWIPS                                             919.558               9.994

SYSTEM INFORMATION

From File /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 1
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 2
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

processor       : 3
BogoMIPS        : 48.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd04
CPU revision    : 2

Serial          : 2f2aeacee81f7ce9


From File /proc/version
Linux version 4.4.143-47-rockchip-g495ff574976c (root@91e15308a281) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120aaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Tue Apr 21 01:38:40 UTC 2020


Additional information - RockPiS-Debian64-whetstonePi64
rock@rockpis:~/Raspberry_Pi_Benchmarks/Source Code$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: rockchiprk3308a [rockchip,rk3308-acodec], device 0: dailink-multicodecs rk3308-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
rock@rockpis:~/Raspberry_Pi_Benchmarks/Source Code$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: rockchiprk3308a [rockchip,rk3308-acodec], device 0: dailink-multicodecs rk3308-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Thinking these could be amazingly cost effective if the very fresh image and current low user can create a solid working version.

I get pretty decent range with my Respeaker 2mic - up to about 4 meters and even a bit more if I raise the gain in alsamixer. I get a bit less range with a PS3 Eye mic on another satellite I have in another room - still, better than expected though.

Yeah I am prob same as you can tell on playback that the record signal is stronger than PS3eye.

@hawkeye217

 pcm.agc {
 type speex
 slave.pcm "capture"
 agc 1
 denoise no
 dereverb no
}
pcm.capture {
 type plug
 slave {
   pcm "array"
   channels 2
   }
 route_policy sum
}

The speex alsa-plugins can come in really handy for AGC as the hardware version doesn’t seem to work.
I can’t remember if AGC is speex or speexdsp alsa-plugins expects a newer version than Raspbian supplies so you have to download recompile the newer speexdsp/speex and then recompile alsa-plugins (1.8.1 current version) and magically they will arrive.
The AGC can help much with range and after the compile hassle its relatively easy to add to an asound.conf
Also summing the mics via route can also help.
I was originally recommended a PS3eye and now think of it as an urban myth that its any good, for a few reasons.