[pulseaudio-discuss] Characterizing webrtc aec with pre-recorded files

Arun Raghavan arun at arunraghavan.net
Mon Oct 31 08:36:44 UTC 2016

On Fri, 28 Oct 2016, at 06:29 PM, Tanu Kaskinen wrote:
> On Fri, 2016-10-28 at 02:13 -0700, N G wrote:
> > Hello,
> > I'm trying to do a comparison of various noise suppressing methods and I'd
> > like to run some noisy audio through the module-echo-cancel using the
> > webrtc method. Is there a straightforward way to do this?
> I'm not an expert on the echo-cancel stuff, but just load the module
> and play something to the sink it creates? Here's the basic way to load
> the module:
> pactl load-module module-echo-cancel sink_name=foo sink_master=master
> aec_method=webrtc
> "foo" is the name of the new sink, and "master" is the name of the sink
> where the filtered audio will be forwarded. Use "pactl list sinks" to
> find the correct name for the master sink name, or leave the
> sink_master argument out to use the default sink.
> If you only want to test noise suppression, you might want to disable
> some of the filtering that is enabled by default. For this, pass the
> aec_args argument to the module. The contents of aec_args are a string
> with space-separated key=value values, like this:
>     aec_args="arg1=val1 arg2=val2"
> The supported arguments aren't currently properly documented, but maybe
> you can figure them out from the code:
> https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/echo-cancel/webrtc.cc
> The "valid_modargs" array defines the supported keys (line 61), and to
> figure out what is enabled by default, see the constants defined from
> line 43 onwards.

To add to what Tanu said, there is echo-cancel-test that takes raw audio
and runs the canceller offline. It takes the same set of modargs.

Depending on your input/output formats, you might need to tweak that
test code a little (it's in the same file as the core code,

-- Arun

More information about the pulseaudio-discuss mailing list