Anyone tried Adafruit Voice Bonnet?

Has anybody tried Adafruit Voice Bonnet for Raspberry Pi -Two Speakers + Two Mics ?

I saw this, but was swayed by repeated mention of the ReSpeaker in Rhasspy’s documentation, so went to get a ReSpeaker 2-Mike … only to find that seeed NO LONGER SUPPORT it :frowning_face:

I note the Adafruit product also uses the seeed driver, so maybe both should be avoided for new inexperienced users ?

Its basically a adafruit branded respeaker 2mic that are cheaper and the clones even more so.

The raspberry.org equivalent is https://www.raspberrypi.org/products/iqaudio-codec-zero/ which has a single onboard mems omni as onboard arrays without dsp are a whole lot of pointless.
It also has an analogie in and stereo aux in and stereo aux out and supports a wider array of hardware sample rates but is $20 rather than < $10 of some of the WM8960 clones.

Unfortunately true, no support, seeed ignored and ignores a lot of unresolved issues

But according to this issue the two mic card should work with the drivers updated by HinTak

My Respeaker (square) 4 mic array is successfully working with the latest Raspberry Pi OS using the updated drivers :slightly_smiling_face:

They all do work and adafruit https://learn.adafruit.com/adafruit-voice-bonnet/audio-setup point you to the Hintak repo as the driver to use.

Multi omni directionals on all without dsp are actually pointless as you mixing out of phase by the distance between each mic and depending on orientation creating highpass filters where its often better to use a single channel.

There is an urban myth that a mic array is somehow better and in most cases without dsp the opposite is true as with alexa & google home or even the psp3 it was the high speed dsp algs that made those arrays work well.

Respeaker are atrocious with support the clones are cheap and would be only reason I would buy but a usb soundcard is cheaper and after such faff with drivers my preference.

I did get one of the above codec zero’s and the ALC & Noise gate look really good but its been sat on my desk until I can be bothered working out the myriad of alsa amixer settings.

Mems have tighter build tolerances than electrets even though electrets now are far from what the used to be, but in arrays and dsp where your calculating difference the tighter the tolerances the better.
So mems omnidirectional are prefect for dsp arrays but actually on there own a unidirectional electret has an element of directionality and noise rejection from the rear and likely a better choice if you don’t have a dsp alg to do that for you.

There is a lot of product that really poses as something more than it really is as the square 4mic has a nice pixel ring and no other further advantage and also doesn’t have audio out.
I got one and so did many but when you really analyse what you got much of it is pointless.

USB, respeaker, 4 mic and above unless you have found beamforming abd blindsource speration algs that run well on a pi take your pick, but I will argue that an electret unidirectional garnering an element of beamforming and noise reduction for one of the lowest cost is likely best currently.

I have managed to install the HinTak driver and got my ReSpeaker 4-Mic demonstrated working under raspberry Pi OS. So at least I know the hardware is working, sort of.

But what I actually want is voice commands with Rhasspy and Home Assistant.

I have noticed other posts of yours discussing the pros and cons of lots of options (often requiring electronics assembly and programming) - but no clear hardware and software product recommendation that a noob like myself can buy, plug in, and feel confident it will run.

I bought the ReSpeaker because it was mentioned extensively in Rhasspy documentation; but support now relies on one non-seeed-employee … which does not inspire confidence :frowning: Hence wondering if I should return the ReSpeaker and purchase some other currently supported alternative.

I am not sure really as the Iqaudio products are supposedly official Raspberry products but currently don’t seem to have the same level of Raspberry support but still the IQaudio codec doesn’t have drivers its just a line change in /boot/config.txt

I mention about soldering because the electret mic circuit is just about the simplest and cheapest circuit you can make whilst most modules with built in are omnidirectional and I just have preference for unidirectional.

If you want a really good mic that if all goes the way of the pear (pear shape) then a Boya-BY-MM1 mic is a pretty good start, as that will work with any soundcard, your phone or PC (TRS & TRRS cable supplied)
Cardioid mics (unidirectional) that can be got for £10 - £20

They mount onto a hotshoe or minitripod and if all goes wrong make really good camera / pc mics and even come with free dead cat.

As many are ‘making’ a much more customisable version is to solder 2 leads to an electret and place on a high quality mic module.
I guess you might find some prebuilt cables but its so easy and much cheaper just to solder a 3.5mm jack or get a terminal connection one and Pi jumper wires.
Or bypass that and straight to soundcard input with simple circuits of just a resistor and capacitor as above or here
If you get a stereo mic soundcard things get even simpler as no resistor is required.
You just need electret(s) and a 3.5mm TRS jack fly lead but try the simple circuit of just electret first and if not then you need the resistor and cap of above.

The Iqaudio has no drivers and a single omni-electret onboard but I did have to download https://github.com/iqaudio/Pi-Codec and sudo alsactl restore -f filename.state as with the myriad of controls in alsamixer I couldn’t work out the settings which is unusual for raspberry.
But once you know examples are in that repo it plainsailing from there.
It also has a 3.5mm jack plug so you could plug in a Boya like mic or if you solder the headers you can use the stereo aux in & out.

But you could just get a el cheapo usb soundcard and not even need a repo and with a little bit of soldering have a unidirectional for less than $5 its choice but if $20 for a soundcard is not a factor then Iqaudio raspberry approved product and a $10 - 20 cardioid 3.5mm jack mic or use onboard.

Wow, Roylan. I’m sure you are trying to be helpful by suggesting 6 generic microphone projects … but my expertise and objective are very different from yours.

I am retired. I don’t have your interest in electronics, have very limited budget, my soldering is shit, and my objective is working Voice control for Home Assistant.

Your enthusiasm reminds me of telling my mom about computers when I was at uni … until I learnt to recognize her eyes glazing as it all went over her head. :wink:

I think you might struggle as did say just get a microphone and plug it into a soundcard, but there are other choices being the Iqaudio from raspberry as it has a bit of everything and is a hat you just sit on top of the 40 pin but the cheapest and prob best way is to solder up an electret and the choice is yours.

FWIW, I have now purchased one of these Adafruit Voice Bonnets to use with RasPi Zero as a second satellite.

I chose this as it uses the HinTak driver (same as reSpeaker which is mentioned often in Rhasspy examples) but hopefully Adafruit will step in and support when necesssary. I considered the IQaudio board from Raspberry Pi, but IQaudio seem focussed on stereo output … and voice input may not get the same level of support.

My first comment is that the button on the Voice Bonnet is squeezed between the left LED and Left mic, which may be awkward when making a case for the unit.

Second comment is that … some boards suffer from a high-pitched whine.

This was reported to Adafruit’s forum in March and after ruling out power supply, it was suggested that it may be caused by other software running on the machine. I have again installed on a fresh SDcard according to Adafruits instructions, and at the “Microphone Test” step the whine is heard with arecord | aplay – before Rhasspy or any other software is installed.

Combined with the really unfortunate board layout (message #9 above) I have decided to return it to Adafruit.