I ran some further tests on mdf and here are the results: 1. reduced tail length to 100ms, aligned mic and speaker signals to within 10ms - almost no echo attenuation 2. aligned mic and speaker signals to within 5 samples - still almost no echo attenuation 3. ran testecho using the same file for mic and speaker - very good echo cancellation (of course this is expected, but I needed to do a sanity check) 4. ran the same file for mic and speaker, but had the mic signal delayed by 10ms - OK echo cancellation, but noticeably degraded over previous test 5. same file for mic and speaker, but mic signal delayed by 40ms - noticeable echo attenuation, but still a large echo. So far my testing is only showing good echo cancellation when the exact same file is being used and is pretty closely aligned. -Jason --- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> wrote:> This kind of behaviour is odd. One of the reason > could be the fact that > you're using a really long impulse response. Try > syncing your signals > and making the tail length more in the order of 100 > ms to 300 ms. > > Jean-Marc > > Le dimanche 06 novembre 2005 ? 21:25 -0800, Jason > Harper a ?crit : > > Thanks for alerting me to the new changes. I just > > tried the latest code from SVN, but unfortunately > I > > still have just about the same results. The > estimated > > echo that gets subtracted from the actual echo is > such > > a small signal that it doesn't really result in > any > > noticeable echo attenuation. > > I currently have my filter size set to 2 seconds > even > > though the echo in my microphone file is only > about > > 180ms delayed from the signal in my speaker file. > I > > also double checked that the endianess of my is > > correct, and that I am providing the files to > testecho > > in the correct order. > > Do you think that there could be some > characteristics > > to my echo that make it not work with the mdf > > algorithm? How much echo attenuation should I > expect > > from the mdf algorithm before the preprocess? Are > > there any test speaker and mic files that I could > run > > against testecho to see how it handles other > acoustic > > echos? > > > > -Jason > > > > --- Jean-Marc Valin > <Jean-Marc.Valin@USherbrooke.ca> > > wrote: > > > > > I've recently made changes to the AEC. Please > try > > > the code in SVN and > > > see if it works better. > > > > > > Jean-Marc > > > > > > Le jeudi 03 novembre 2005 ? 22:36 -0800, Jason > > > Harper a ?crit : > > > > I've tried some further debugging to see what > mdf > > > is > > > > actually doing. Instead of sending: > > > > tmp_out = (float)ref[i] - > st->y[i+st->frame_size] > > > > to the output, I just sent > > > > st->y[i+st->frame_size] > > > > to see what was being subtracted from the > > > microphone > > > > input. When I open this in Audacity, I see a > very > > > > small signal at about -40dBm. The actual echo > in > > > my > > > > sample has a power closer to -20dBm. So, when > the > > > > -40dBm estimated echo is removed from the > -20dBm > > > > actual echo there is almost no perceived > > > difference in > > > > the echo power. > > > > I'm sure that there are others on the list > that > > > have > > > > had good success with the echo cancellation > > > module. > > > > Could anyone point me to reference test files > that > > > are > > > > known to work well in testecho. > > > > I'd like to figure out if there is some > > > characteristic > > > > of my echo that makes it incompatible with > this > > > echo > > > > cancellation algorithm, or whether there is > just > > > some > > > > configuration problem in my implementation. > > > > Thanks for your time; advice is greatly > > > appreciated. > > > > > > > > -Jason > > > > > > > > --- > > > > > I have incorporated the speex echo > cancellation > > > into > > > > > my softphone project, but wasn't getting > great > > > > > results. I decided to simplify the problem, > by > > > > > recording speaker and mic files and running > > > > > testecho. > > > > > I've been pretty happy with the preprocess > > > module > > > > > and > > > > > I wanted to focus on the mdf, so I commented > out > > > the > > > > > call to preprocess in testecho. > > > > > When I run testecho my output file looks > almost > > > > > identicle to my mic file. I don't see any > > > reduction > > > > > in the power level of the echo. I've looked > > > through > > > > > some of the previous posts to this group and > > > have > > > > > tried the obvious, such as increasing my > filter > > > > > length > > > > > and reversing the order of the files passed > into > > > the > > > > > application. > > > > > Looking at the files in Audacity, the echo > lags > > > by > > > > > about 180ms. I have experimented with > filter > > > > > lengths > > > > > up to 2 seconds. > > > > > I'm open to suggestions. > > > > > > > > > _______________________________________________ > > > > Speex-dev mailing list > > > > Speex-dev@xiph.org > > > > > http://lists.xiph.org/mailman/listinfo/speex-dev > > > > > > > > > > > >
Are you sure you're not just inverting the two inputs? Jean-Marc On Wed, 2005-11-09 at 22:16 -0800, Jason Harper wrote:> I ran some further tests on mdf and here are the > results: > 1. reduced tail length to 100ms, aligned mic and > speaker signals to within 10ms - almost no echo > attenuation > 2. aligned mic and speaker signals to within 5 samples > - still almost no echo attenuation > 3. ran testecho using the same file for mic and > speaker - very good echo cancellation (of course this > is expected, but I needed to do a sanity check) > 4. ran the same file for mic and speaker, but had the > mic signal delayed by 10ms - OK echo cancellation, but > noticeably degraded over previous test > 5. same file for mic and speaker, but mic signal > delayed by 40ms - noticeable echo attenuation, but > still a large echo. > > So far my testing is only showing good echo > cancellation when the exact same file is being used > and is pretty closely aligned. > > -Jason > > --- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> > wrote: > > > This kind of behaviour is odd. One of the reason > > could be the fact that > > you're using a really long impulse response. Try > > syncing your signals > > and making the tail length more in the order of 100 > > ms to 300 ms. > > > > Jean-Marc > > > > Le dimanche 06 novembre 2005 ? 21:25 -0800, Jason > > Harper a ?crit : > > > Thanks for alerting me to the new changes. I just > > > tried the latest code from SVN, but unfortunately > > I > > > still have just about the same results. The > > estimated > > > echo that gets subtracted from the actual echo is > > such > > > a small signal that it doesn't really result in > > any > > > noticeable echo attenuation. > > > I currently have my filter size set to 2 seconds > > even > > > though the echo in my microphone file is only > > about > > > 180ms delayed from the signal in my speaker file. > > I > > > also double checked that the endianess of my is > > > correct, and that I am providing the files to > > testecho > > > in the correct order. > > > Do you think that there could be some > > characteristics > > > to my echo that make it not work with the mdf > > > algorithm? How much echo attenuation should I > > expect > > > from the mdf algorithm before the preprocess? Are > > > there any test speaker and mic files that I could > > run > > > against testecho to see how it handles other > > acoustic > > > echos? > > > > > > -Jason > > > > > > --- Jean-Marc Valin > > <Jean-Marc.Valin@USherbrooke.ca> > > > wrote: > > > > > > > I've recently made changes to the AEC. Please > > try > > > > the code in SVN and > > > > see if it works better. > > > > > > > > Jean-Marc > > > > > > > > Le jeudi 03 novembre 2005 ? 22:36 -0800, Jason > > > > Harper a ?crit : > > > > > I've tried some further debugging to see what > > mdf > > > > is > > > > > actually doing. Instead of sending: > > > > > tmp_out = (float)ref[i] - > > st->y[i+st->frame_size] > > > > > to the output, I just sent > > > > > st->y[i+st->frame_size] > > > > > to see what was being subtracted from the > > > > microphone > > > > > input. When I open this in Audacity, I see a > > very > > > > > small signal at about -40dBm. The actual echo > > in > > > > my > > > > > sample has a power closer to -20dBm. So, when > > the > > > > > -40dBm estimated echo is removed from the > > -20dBm > > > > > actual echo there is almost no perceived > > > > difference in > > > > > the echo power. > > > > > I'm sure that there are others on the list > > that > > > > have > > > > > had good success with the echo cancellation > > > > module. > > > > > Could anyone point me to reference test files > > that > > > > are > > > > > known to work well in testecho. > > > > > I'd like to figure out if there is some > > > > characteristic > > > > > of my echo that makes it incompatible with > > this > > > > echo > > > > > cancellation algorithm, or whether there is > > just > > > > some > > > > > configuration problem in my implementation. > > > > > Thanks for your time; advice is greatly > > > > appreciated. > > > > > > > > > > -Jason > > > > > > > > > > --- > > > > > > I have incorporated the speex echo > > cancellation > > > > into > > > > > > my softphone project, but wasn't getting > > great > > > > > > results. I decided to simplify the problem, > > by > > > > > > recording speaker and mic files and running > > > > > > testecho. > > > > > > I've been pretty happy with the preprocess > > > > module > > > > > > and > > > > > > I wanted to focus on the mdf, so I commented > > out > > > > the > > > > > > call to preprocess in testecho. > > > > > > When I run testecho my output file looks > > almost > > > > > > identicle to my mic file. I don't see any > > > > reduction > > > > > > in the power level of the echo. I've looked > > > > through > > > > > > some of the previous posts to this group and > > > > have > > > > > > tried the obvious, such as increasing my > > filter > > > > > > length > > > > > > and reversing the order of the files passed > > into > > > > the > > > > > > application. > > > > > > Looking at the files in Audacity, the echo > > lags > > > > by > > > > > > about 180ms. I have experimented with > > filter > > > > > > lengths > > > > > > up to 2 seconds. > > > > > > I'm open to suggestions. > > > > > > > > > > > > _______________________________________________ > > > > > Speex-dev mailing list > > > > > Speex-dev@xiph.org > > > > > > > http://lists.xiph.org/mailman/listinfo/speex-dev > > > > > > > > > > > > > > > > > > >
I'm pretty much sure of it. When I test inverting the inputs, my output is pretty much the same as my speaker signal. Whereas the way that I normally test the output is my mic signal with very little attenuation. If you are interested I can send my test files; they are about 94KB each. -Jason --- Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> wrote:> Are you sure you're not just inverting the two > inputs? > > Jean-Marc > > On Wed, 2005-11-09 at 22:16 -0800, Jason Harper > wrote: > > I ran some further tests on mdf and here are the > > results: > > 1. reduced tail length to 100ms, aligned mic and > > speaker signals to within 10ms - almost no echo > > attenuation > > 2. aligned mic and speaker signals to within 5 > samples > > - still almost no echo attenuation > > 3. ran testecho using the same file for mic and > > speaker - very good echo cancellation (of course > this > > is expected, but I needed to do a sanity check) > > 4. ran the same file for mic and speaker, but had > the > > mic signal delayed by 10ms - OK echo cancellation, > but > > noticeably degraded over previous test > > 5. same file for mic and speaker, but mic signal > > delayed by 40ms - noticeable echo attenuation, but > > still a large echo. > > > > So far my testing is only showing good echo > > cancellation when the exact same file is being > used > > and is pretty closely aligned. > > > > -Jason > > > > --- Jean-Marc Valin > <Jean-Marc.Valin@USherbrooke.ca> > > wrote: > > > > > This kind of behaviour is odd. One of the reason > > > could be the fact that > > > you're using a really long impulse response. Try > > > syncing your signals > > > and making the tail length more in the order of > 100 > > > ms to 300 ms. > > > > > > Jean-Marc > > > > > > Le dimanche 06 novembre 2005 ? 21:25 -0800, > Jason > > > Harper a ?crit : > > > > Thanks for alerting me to the new changes. I > just > > > > tried the latest code from SVN, but > unfortunately > > > I > > > > still have just about the same results. The > > > estimated > > > > echo that gets subtracted from the actual echo > is > > > such > > > > a small signal that it doesn't really result > in > > > any > > > > noticeable echo attenuation. > > > > I currently have my filter size set to 2 > seconds > > > even > > > > though the echo in my microphone file is only > > > about > > > > 180ms delayed from the signal in my speaker > file. > > > I > > > > also double checked that the endianess of my > is > > > > correct, and that I am providing the files to > > > testecho > > > > in the correct order. > > > > Do you think that there could be some > > > characteristics > > > > to my echo that make it not work with the mdf > > > > algorithm? How much echo attenuation should I > > > expect > > > > from the mdf algorithm before the preprocess? > Are > > > > there any test speaker and mic files that I > could > > > run > > > > against testecho to see how it handles other > > > acoustic > > > > echos? > > > > > > > > -Jason > > > > > > > > --- Jean-Marc Valin > > > <Jean-Marc.Valin@USherbrooke.ca> > > > > wrote: > > > > > > > > > I've recently made changes to the AEC. > Please > > > try > > > > > the code in SVN and > > > > > see if it works better. > > > > > > > > > > Jean-Marc > > > > > > > > > > Le jeudi 03 novembre 2005 ? 22:36 -0800, > Jason > > > > > Harper a ?crit : > > > > > > I've tried some further debugging to see > what > > > mdf > > > > > is > > > > > > actually doing. Instead of sending: > > > > > > tmp_out = (float)ref[i] - > > > st->y[i+st->frame_size] > > > > > > to the output, I just sent > > > > > > st->y[i+st->frame_size] > > > > > > to see what was being subtracted from the > > > > > microphone > > > > > > input. When I open this in Audacity, I > see a > > > very > > > > > > small signal at about -40dBm. The actual > echo > > > in > > > > > my > > > > > > sample has a power closer to -20dBm. So, > when > > > the > > > > > > -40dBm estimated echo is removed from the > > > -20dBm > > > > > > actual echo there is almost no perceived > > > > > difference in > > > > > > the echo power. > > > > > > I'm sure that there are others on the list > > > that > > > > > have > > > > > > had good success with the echo > cancellation > > > > > module. > > > > > > Could anyone point me to reference test > files > > > that > > > > > are > > > > > > known to work well in testecho. > > > > > > I'd like to figure out if there is some > > > > > characteristic > > > > > > of my echo that makes it incompatible with > > > this > > > > > echo > > > > > > cancellation algorithm, or whether there > is > > > just > > > > > some > > > > > > configuration problem in my > implementation. > > > > > > Thanks for your time; advice is greatly > > > > > appreciated. > > > > > > > > > > > > -Jason > > > > > > > > > > > > --- > > > > > > > I have incorporated the speex echo > > > cancellation > > > > > into > > > > > > > my softphone project, but wasn't getting > > > great > > > > > > > results. I decided to simplify the > problem, > > > by > > > > > > > recording speaker and mic files and > running > > > > > > > testecho. > > > > > > > I've been pretty happy with the > preprocess > > > > > module > > > > > > > and > > > > > > > I wanted to focus on the mdf, so I > commented > > > out > > > > > the > > > > > > > call to preprocess in testecho. > > > > > > > When I run testecho my output file looks > > > almost > > > > > > > identicle to my mic file. I don't see > any > > > > > reduction > > > > > > > in the power level of the echo. I've > looked > > > > > through > > > > > > > some of the previous posts to this group > and > > > > > have > > > > > > > tried the obvious, such as increasing my > > > filter > > > > > > > length > > > > > > > and reversing the order of the files > passed > > > into >=== message truncated ===