Mic modules / preamps for USB sound cards on a Raspberry Pi

Thread Starter


Joined Aug 18, 2020
Hi guys hopefully this will just kickstart a general discussion but first some rationale and aims.

I have been playing with VoiceAi on the Pi3 and above where a mic/speaker satellite concentrating on budget mic satellites where multiple distributed satellites is preferential to all-in-one wonderful highend DSP beamforming.

Its mainly a cost thing (multiples quickly add up) but also with some of the not so cheap array DSP beamformers I have found they are great in distributed noise environs when target audio is predominant, but not so good with singular predominant noise sources as often you get a sort of 'vocoding' noise that is far from great in terms of recognition.

But main consideration is cost as its seems a bit crazy to add a $70 soundcard to a $20 SoC so thats my budget $20 and less is better.

I am posting as my audio and electronics isn't great but I think from experiments my main problem is ground loops of the way the cheap china modules and soundcards are manufactured.

In terms of audio knowledge is the hiss likely due to impedance matching and are there anyways to improve?
But I have quite a few questions and also ideas that would greatly appreciate knowledge much superior to mine.

So some examples of prebuilt china modules.

1st ADMP404 analogue omni mems and setting the Syba SD-AUD20101 @ 0db gain.
2nd Max9814 analogue omni electret same card / settings

The low level noise when it comes to MFCC and recognition drops low order energy bins so probably the slight hiss is no problem.
I am wondering as said are there any tricks and tips on reducing noise, impedance matching and avoiding ground loops in conjunction with a USB soundcard.
I found passive mic and USB soundcards to lack gain so with the addition of a preamp even with increase in noise it helps much with far field.
Hence why I posted the above examples.

I am trying to find prebuilt cheap modules with uni-directional electrets and also when the datasheet gives a example bias voltage and Rload value is really for best results what it should be as that is a lot of fiddling with SMD components to correct?
Also even though my interest is the advantages given by uni-directional and the above are omni does anyone have any pointers to cheap audio quality analogue delays of approx 20-80 msec?
I was looking at https://invensense.tdk.com/wp-content/uploads/2015/02/Low-Noise-Directional-Studio-Microphone-Reference-Design1.pdf

The allpass filters seem to add quite a steep higher frequency drop off and was wondering if a bucket bridge delay would be better?
Also the circuit they have given is +-9v but wondering if similar could be adapted to run from 5V and also be preamp?

I am using a soundcard as SpeexDSP can not cope with clockdrift so source & sink are on the same device for AEC.
The pulseaudio WebTRC AEC implementation doesn't seem to work well on Arm.
Also using a soundcard as they are really cheap.

But any input on preamps for analogue mics, tinkering with that inversense application note in a much simpler 2 mic array.
Maybe even someone can tell why the Mic input and gain settings for passive mics on soundcards seems to be so poor?

I know with ALSA its extremely easy to flip the polarity of a channel and route sum but haven't the foggiest how to add a channel delay in a chain of PCM slaves.
Not really electrical but if anyone knows please chirp in :)

Also even if it is DSP and beamforming if you have any cost effective ideas then I am interested and really up for the idea of an opensource hardware design.