[pulseaudio-discuss] [PATCH v4 00/23] webrtc echo canceller update

Arun Raghavan arun at accosted.net
Thu Feb 25 04:07:19 UTC 2016


On Fri, 2016-02-19 at 16:14 +0200, Ahmed S. Darwish wrote:
> Hello,
> 
> On Wed, Feb 17, 2016 at 07:46:52PM +0530, arun at accosted.net wrote:
> > Hi folks,
> > Here's another update.
> > 
> 
> Could the cover letter be more descriptive?
> 
> That would help people who'd like to start getting involved in
> reading and testing the posted patches :-)

I tried to give a broad summary in the cover letter, and tried (though
based on Tanu's review, possibly not very successfully ;)) to make sure
each change explains itself clearly. I'll try to describe the changes
as a whole more the next time, but for this one it's basically

> 
> > from v1:
> > Patch 1-3: Update code for the changed API and use some new features

After updating the webrtc AudioProcessing code (http://arunraghavan.net
/2015/10/psa-breaking-webrtc-audio-processing-api/), this makes sure
we're using the API correctly, and then exposes a couple of new
features (an extended filter where you are willing to sacrifice some
latency/processing for accuracy, and an intelligibility enhancer which
is disabled till we can fix our infrastructure to support it).

> > Patch 4-7: Add support for multi-channel AEC

This part of the set allows us to perform AEC in more flexible ways --
we don't required playback and capture specs to be the same, and we add
a mode to just use the device spec to whatever extent is possible.

> > Patch 8,9: Misc. changes, hook up some tracing support

Nothing much here.

> > Patch 10,11: Fix up AGC after the update

Since all this API is kind of webrtc-internal, the AGC API "broke" with
regards to the range it supports. This is a fixup for that and for the
fact that the new AGC is not as sensitive as the previous one.

> > in v2:
> > Patch 12: Bug fix on the previous series
> > Patch 13-17: Make more stuff tunable as modargs

We expose as many of the parameters from the canceller via modargs so
users can tune for their platform.

> > Patch 18-20: Minor fixes

Most of this got squashed.

> > Patch 21-24: Add beamforing support

This adds the ability to use webrtc's beamformer, which can take
multichannel capture (and a description of the mic geometry), and use
that to "focus" the mic in a given direction, reducing (in software)
noise from either side.

For example, my laptop has two mics to either side of the webcam, and
this could be useful there (for this to actually work generically, we
would need to expose a way for users to tell us what their mic geometry
looks like for each device -- which will hopefully one day be possible
via our configuration API).

I hope this is helpful. Please do ask questions if something is unclear
or needs more explanation (I'll try to write up a more detailed summary
for general consumption as well).

Regards,
Arun

> > Patch 25: Trivial header update
> > 
> > in v3:
> > Squashed a couple of fixes related that could be, removed pa_prefix from
> > private functions
> > 
> > in v4:
> > Fixed up based on a bunch of comments from Tanu.
> > Fixed a crasher due to setting volume based on rec_ss rather than out_ss.
> > Reordered to add beamforming last.
> > Fix using -std=c11 in AM_CXXFLAGS.
> > 


More information about the pulseaudio-discuss mailing list