Audio echo suppression circuits for intercom systems
Talla Brian Monde wrote 06/09/2020 at 20:23 • 0 pointshello please am designing an intercom system and i have serious audio feedback from the loud speaker to the microphone in hand free mode. Any suggestion circuit to solve this problem will highly be appreciated thanks.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
A simple method consists of having one more microphone besides the main one and substracting their signals. This was used in the 80's to remove Larsen feedback effect. Both micros got the surrounding noises but the main one got the voice as well, substraction leaves only the voice.
Are you sure? yes | no
hello your concept is not very clare please is there any link or pdf ? thanks
Are you sure? yes | no
First, this is an analog solution, old but efficient. Two micros where one is closer to the mouth speaking, they both got all surround noises, when you put their signals in phase opposition, only the voice remains. But I guess you're searching a digital solution, don't you ?. Sorry english isn't my native langage.
Are you sure? yes | no
i need a working solution if it solves my problem am ok
it the circuit using opamp ? thanks
Are you sure? yes | no
It does. It can be made with a quad opamp, two as followers with unity gain but lowering impedances, one as substractor and the fourth to adapt impedance again. It theorically works but needs simulation, as you said you need a working solution and I think you don't have time to dig deeper. As I wrote, this was used in the 70s to cancel Larsen, we've made significant progress in sound treatment since.
Working digitally permits much more manipulations on sound, very small delays can be used to cancel the feedback by comparing in real time both signals.
Are you sure? yes | no
There is also a process called "ringing out" that is used to increase "gain before feedback". I have only preformed this on a mixing desk using the parametric equalization section. Basically you bring up the slider (gain) of the microphone until it starts to feed back, you back the slider down and try to find the sweet spot where only one pure tone is sustained. You then use the parametric EQ to find the frequency and reduce the gain of that one frequency. You repeat this process finding more and more frequencies until you have the gain you want to until a voice in the to mic started to sound too muddy.
https://en.wikipedia.org/wiki/Ringing_out
https://www.worshipfacilities.com/gear/steps-ringing-out-microphone
Other things then can reduce feedback are highly directional microphones such as a super cardioid microphone, getting the announcer to hold the mic close to their mouth, and have them use a louder voice.
https://en.wikipedia.org/wiki/Microphone#Polar_patterns
My last idea, if the announcements don't need to be real time you could have the announcer hold down a button that records their voice. Once they release the button the announcement is then played over the speakers. There would be zero feedback because it isn't live.
Are you sure? yes | no
thanks for your idea but that is a public sound system here the problem was emplementing an intercom unit which is more complicated because the mic and speaker are all enclossed in one small cassing.
Are you sure? yes | no
Oh, sorry, I saw "intercom" and though about what you hear in a store. Yeah, it's a little more complicated than that :)
Are you sure? yes | no
The NXP TEA1094AT implements a switched duplex strategy. See the data sheet. This IC is several decades old but illustrates how hands free was implemented before digital signal processors took over.
Are you sure? yes | no
thanks i will check it out
Are you sure? yes | no
am using websocket and streaming to a browser so i have it on my laptop i used webRTC in javascript to do that so my esp actually stream audio data to the browser. I will try to emplement your idea and see thanks .
Are you sure? yes | no
Shift the signal from your microphone by 5Hz, send that to the rest of the system. Here's a quick read for you: https://sound-au.com/articles/acoustic-feedback.htm
Are you sure? yes | no
I am so greatful for your concern i will go through it and get back to you thanks.
Are you sure? yes | no
Well, it's not a simple problem and solving it requires digital signal processing.
https://en.wikipedia.org/wiki/Echo_suppression_and_cancellation
A basic filter type used here is a least mean square filter:
https://en.wikipedia.org/wiki/Least_mean_squares_filter
I have never tried implementing echo cancellation but used this type of filter for other purposes. Maybe there are ready made libraries for echo cancellation out there?
Oh, look at this:
https://www.microchip.com/SWLibraryWeb/product.aspx?product=dsPIC%20DSC%20Acoustic%20Echo%20Cancel
http://www.andreadrian.de/intercom/index.html
https://www.speex.org/
In any case, all of this looks quite involved. Sorry for not being help beyond this...
Are you sure? yes | no
i greatly appreciate your effort thanks very much .
Are you sure? yes | no
This is probably a less helpful answer. Learn to speak duck - as docks quacks don't echo. Other more useful answers require some more systems info.
Are you sure? yes | no
Interesting. I had to google it, but it turns out it is not true.
https://www.theguardian.com/science/2003/sep/08/sciencenews.theguardianlifesupplement
Are you sure? yes | no
I guess you could call it a quack theory, hahaha. 😁
Are you sure? yes | no
Found out about the magic sound of ducks from MythBusters. Alas there is no magic.
For dealing with echo, I've only attempted passive solutions. Either pointing microphones away from speakers, using anechoic foam, noise gates or just careful setup of gain. However, feedback is sometimes cool - wait till everyone is out and turn up the guitar amp :O)
A light combination of the above should be handy in most situations with a DSP taking up the slack.
Are you sure? yes | no
How did you get on with all the advice you asked for at https://hackaday.io/page/7136-esp8266-adc-read-nonblocking ? Are you using the ESP8266 for this intercom system too? People wanting to help would probably find it useful if they knew a bit more about the way in which you are currently implementing the intercom system.
Are you sure? yes | no
yes i am using the esp8266 because its cheap and draw lesser current than the esp32. I finally used the esp32 and it works fine but cant go hand free because the echo.
Are you sure? yes | no
Can you disconnect/stop reading the microphone when the speaker is in use?
Are you sure? yes | no
yeah that works fine but it will be halve douplex ( PTT ) which is not very good for my application a door bell intercom
Are you sure? yes | no
Are you using any wireless parts of the esp32? If it's all hard wired can you measure microphone readings and disable speakers dynamically? Also, how are you transmitting the data? Is it analogue or digital? Can you read the signal to the speaker and do some ADC differencing with the microphone reading?
Are you sure? yes | no