mccanne@horse.ee.lbl.gov (Steven McCanne) (10/23/90)
I'm interested in experimenting with packetized audio over computer networks. I'd like to get a simple prototype running on our Sparcstations to explore compression techniques and filtering. Currently, we have simple "walkie talkie" program that does nothing more than ship raw digitized audio over a UDP socket. An obvious problem is the echo caused by the receiver's mic picking up and sending back its speaker's output. For a first cut, I'd like to implement some sort of adaptive echo cancellation, which brings me to my request. Can anyone point me to references or implementations (i.e., code) of echo cancellation, or for that matter, anything at all related to packetized speech/audio? Thanks. Steve
doug@eris.berkeley.edu (Doug Merritt) (11/05/90)
In article <7706@dog.ee.lbl.gov> mccanne@horse.ee.lbl.gov (Steven McCanne) writes: > >problem is the echo caused by the receiver's mic picking up and sending >back its speaker's output. > >For a first cut, I'd like to implement some sort of adaptive echo >cancellation, which brings me to my request. Can anyone point me to >references or implementations (i.e., code) of echo cancellation, or for As a first approximation, echo can be modelled as a sum of several finite impulses, which, when convolved with the original source, produces echoes (one per impulse). I would think that you could determine the echo characteristic in your setup by sending a single impulse (approximation of an infinite impulse) to the speaker. Whatever you pick up on the microphone following that is a good approximation of the response of the system, including the echoes (assuming you're still sending input to output). From this produce a filter which deconvolves the signal with that characteristic response. Assuming a fixed acoustic environment, this will not only suppress the echoes, but may also remove other forms of distortion to some extent. Of course, that extent is limited by various physical limits of the output system, and by the fact that the distortion being modeled (output distortion plus input distortion) is different than the echoless ideal (simple output distortion). BTW cepstral analysis in the quefrency domain is extensively used to model echoing. Disclaimer: this is all just theory, and my own probably imperfect understanding of it at that. But it should get you started. Doug Doug Merritt doug@eris.berkeley.edu (ucbvax!eris!doug) or uunet.uu.net!crossck!dougm