[alsa-devel] echo-cancellation plugin advice?
Well, asym wouldn't be the answer. Basically you'll need to open two slave PCMs in one plugin. So, it's no simple filter-type plugin. It's doable, but not easy as it sounds, I guess.
Takashi, can you please further explain why asym is not the solution and what you see as a problem? I am also trying to figure out if it would be possible to create such a plugin for ALSA? I am still searching for some good starting points on how to write an ALSA plugin...
Jean-Marc Valin (http://lists.linuxaudio.org/pipermail/linux-audio-dev/2005-June/012454.html) already released his work as part of speex but as far I know there is no plugin that has been made out of it?
Thanks for any hint!
At Mon, 07 May 2012 16:15:06 +0200, Max Klein wrote:
Well, asym wouldn't be the answer. Basically you'll need to open two slave PCMs in one plugin. So, it's no simple filter-type plugin. It's doable, but not easy as it sounds, I guess.
Takashi, can you please further explain why asym is not the solution and what you see as a problem?
Well... Do you understand what asym plugin is supposed to do?
I am also trying to figure out if it would be possible to create such a plugin for ALSA? I am still searching for some good starting points on how to write an ALSA plugin...
Jean-Marc Valin (http://lists.linuxaudio.org/pipermail/linux-audio-dev/2005-June/012454.html) already released his work as part of speex but as far I know there is no plugin that has been made out of it?
For a good echo cancellation, you'll need both input and output streams, i.e. the recording source and the playback stream you are sending out. A normal plugin works just like a filter. Get one stream, process it, and output. But, now you need two streams in different directions in a single plugin instance.
asym doesn't do that. asym is just to pass through a slave PCM. The only job of asym plugin is to provide the different pass-thru slave PCM for each direction (input/output). Nothing more than that.
Takashi
Hi Everyone
I arrived at this thread because I need to implement an acoustic echo canceller based on the Speex library. I think that the Speex plugin available under 'alsa-plugins' repository would be the best starting point, but I need to provide as input both the streams (input and output). For what I understand the current implementation provides just one input (the audio stream coming from the MIC) and so it can't remove the echo of the playback audio. It works as a filter as explained before. Right? Please can you suggest some hints provide both the recording source and the playback stream as one input to an ALSA plugin? Is it doable anyhow?
Thanks in advance for your help
Fabio Antonini
participants (3)
-
f.antonini@tiesse.com
-
Max Klein
-
Takashi Iwai