Microphone impedance matching

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
pneumatic
 
Posts: 186
Joined: Sun Jul 26, 2009 3:59 pm

Microphone impedance matching

Post by pneumatic »

I'm building several voice-controlled embedded systems based on a RPi 3B. When complete, it's embedded in an old phone. Details here.

I'm using a generic USB audio dongle to interface to speakers and microphone. When I test using an old computer headset, it performs reasonably well, but when I use the phone handset the speech recognition degrades significantly. I think this is due to the extra noise I'm getting using the phone's original microphone. The headset mic seems to have an impedance of around 500-800 ohms, whereas the old carbon mic in the phone has an impedance of around 5Kohm.

It would seem that I have two options:

A) Build some sort of impedance matching circuit, maybe using a simple transistor circuit. I'm a little out of my depth here.

2) Replace the original microphone with one that has a better impedance match. Would this electret mic or this one be a good candidate?

Thanks for any advice,
-- Mitch
Last edited by pneumatic on Fri Apr 05, 2019 5:54 pm, edited 1 time in total.

User avatar
pneumatic
 
Posts: 186
Joined: Sun Jul 26, 2009 3:59 pm

Re: Microphone impedance matching

Post by pneumatic »

I did a little research, and it seems that with most digital inputs impedance matching isn't really necessary, so I came up with another theory, that the "noise" was coming from the unconnected side of a stereo mic chip. This might actually be what's happening based on a test I just ran. I'm using a pair of these to hook up the handset to the audio dongle, and I'd hooked up the mic across tip and sleeve leaving the ring NC, thinking that would mimic a mono plug. I might have been wrong.

First I tried shorting the ring to the sleeve, and that yielded no audio recorded at all, so then I tried connecting ring to tip, and that seems to have improved speech recognition, though when I play back the recording, there's still a bit of static on the line and recognition still isn't where I'd like it to be. Any other tips on reducing audio noise?

Thanks,
-- Mitch

User avatar
pneumatic
 
Posts: 186
Joined: Sun Jul 26, 2009 3:59 pm

Re: Microphone impedance matching

Post by pneumatic »

On third thought, maybe it was a lousy soldering job that was causing so much noise. Who knows. It's somewhat better know that I've redone one leg of the soldering job.

User avatar
adafruit_support_mike
 
Posts: 67901
Joined: Thu Feb 11, 2010 2:51 pm

Re: Microphone impedance matching

Post by adafruit_support_mike »

If you just need human speech, you can probably eliminate a lot of noise with a simple filter. Human speech usually falls between about 300Hz and 3kHz, which is fairly low in the audio spectrum.

If your mic's output impedance is in the 500-800 Ohm range, connecting a 100nF capacitor between its output and GND should leave most of the voice signal intact while filtering out the sudden changes that make up high fequency noise.

Reducing the frequency range of the input should probably make life easier for the voice recognition software. The FFT components that remain will be better defined.

User avatar
pneumatic
 
Posts: 186
Joined: Sun Jul 26, 2009 3:59 pm

Re: Microphone impedance matching

Post by pneumatic »

The impedance of the mic is 5K, so I guess I should use a 10nF instead, if I remember my capacitive reactance formula correctly.

Thanks for the tip!

User avatar
adafruit_support_mike
 
Posts: 67901
Joined: Thu Feb 11, 2010 2:51 pm

Re: Microphone impedance matching

Post by adafruit_support_mike »

Yep.. F=1/(2piRC), and F can swap places with either R or C if you need to calculate the value of either component.

It's also handy to remember that a 1uF cap and a 1.5k resistor have a corner frequency of about 100Hz. It's fairly easy to scale those up and down on the back of an envelope.

User avatar
pneumatic
 
Posts: 186
Joined: Sun Jul 26, 2009 3:59 pm

Re: Microphone impedance matching

Post by pneumatic »

Well, I tried with 10, 47 and 100 nF caps across the terminals, and the performance was if anything worse than without any caps. Back to the drawing board.

User avatar
adafruit_support_mike
 
Posts: 67901
Joined: Thu Feb 11, 2010 2:51 pm

Re: Microphone impedance matching

Post by adafruit_support_mike »

If you want to replace the mic, the MAX9814 would be a good choice for general voice control:

https://www.adafruit.com/product/1713

It has automatic gain control, and will keep the output to the audio software at a more or less even level.

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”