New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 852257 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

AEC3: Echo leakage in moderately reverberant environments

Project Member Reported by peah@chromium.org, Jun 13 2018

Issue description

For moderately reverberant environments, AEC3 has been shown to leak echoes due to the default length of the linear filter being too short.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/075cb2b2f7a69213a7733db0582a0410d2aeb098

commit 075cb2b2f7a69213a7733db0582a0410d2aeb098
Author: Jesús de Vicente Peña <devicentepena@webrtc.org>
Date: Wed Jun 13 14:54:04 2018

AEC3: Changes to how the reverberation decay is applied.

In this work we introduce some changes on how the reverberation model for AEC3 is applied. Currently, the exponential modelling of the tails is applied over the linear echo estimates. That might result  in an overestimation of the reverberation tails under certain conditions. In this work, the reverberation model is instead applied over an estimate of the energies at the tails of the linear estimate.

Additionally, the stationary estimator is changed so it does not disable the aec immediately after a burst of activity.

Bug:  webrtc:9384 , webrtc:9400 , chromium:852257 
Change-Id: Ia486694ed326cfe231fc688877c0b9b6e2c450ff
Reviewed-on: https://webrtc-review.googlesource.com/82161
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23599}
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/api/audio/echo_canceller3_config.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/BUILD.gn
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/aec_state.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/aec_state.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/echo_audibility.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/echo_audibility.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/echo_canceller3.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/echo_remover.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/filter_analyzer.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/filter_analyzer.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/residual_echo_estimator.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/residual_echo_estimator.h
[add] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/reverb_model.cc
[add] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/reverb_model.h
[add] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/reverb_model_fallback.cc
[add] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/reverb_model_fallback.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/stationarity_estimator.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/stationarity_estimator.h
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/aec3/suppression_gain.cc
[modify] https://crrev.com/075cb2b2f7a69213a7733db0582a0410d2aeb098/modules/audio_processing/test/audio_processing_simulator.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b29b52eedf21ad5a0c717806e9928dfa935ef0fd

commit b29b52eedf21ad5a0c717806e9928dfa935ef0fd
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Thu Jun 14 00:00:21 2018

Roll src/third_party/webrtc 789221f1101a..aeb0a6475bcc (7 commits)

https://webrtc.googlesource.com/src.git/+log/789221f1101a..aeb0a6475bcc


git log 789221f1101a..aeb0a6475bcc --date=short --no-merges --format='%ad %ae %s'
2018-06-13 peah@webrtc.org AEC3: Increase the range of reported echo path delay metrics
2018-06-13 magjed@webrtc.org Android: Fix VideoTrack behavior for adding/removing VideoSinks
2018-06-13 nisse@webrtc.org Replace all use of rtc::Pathname in generator_unittest.cc.
2018-06-13 danilchap@webrtc.org Introduce list of fields to put into codec agnostic descriptor
2018-06-13 devicentepena@webrtc.org AEC3: Changes to how the reverberation decay is applied.
2018-06-13 jonasolsson@webrtc.org Remove "webrtc_rtp" traces.
2018-06-13 yura.yaroshevich@gmail.com Add ow2_asm license


Created with:
  gclient setdep -r src/third_party/webrtc@aeb0a6475bcc

The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng

BUG= chromium:850538 , chromium:852257 
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: I96d3ed7b7c4bd9a705edda10c15a74623ce6505c
Reviewed-on: https://chromium-review.googlesource.com/1099915
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#567052}
[modify] https://crrev.com/b29b52eedf21ad5a0c717806e9928dfa935ef0fd/DEPS

Comment 3 by peah@chromium.org, Jun 14 2018

Status: Fixed (was: Assigned)

Comment 4 by gustaf@chromium.org, Jun 18 2018

Cc: hlundin@chromium.org
Labels: M-69 Merge-Request-68
We would like to merge this improvement to AEC3 (Acoustic Echo Canceller 3). The code is part of Canary since 2018-06-14 and can be remotely deactivated if something goes wrong.

The CL to merge:
https://webrtc-review.googlesource.com/82161
Project Member

Comment 5 by sheriffbot@chromium.org, Jun 18 2018

Labels: -Merge-Request-68 Hotlist-Merge-Review Merge-Review-68
This bug requires manual review: DEPS changes referenced in bugdroid comments.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by cmasso@google.com, Jun 18 2018

This CL is very large to merge into M68 at this point. However, if it can be completely disabled/fully on the server side if something goes wrong, then we can approve it. Please confirm again.

Comment 7 by gustaf@chromium.org, Jun 19 2018

Yes, the change can easily be completely disabled from the server side.
The change fixes issues found during beta testing.
As gustaf@ said, the fix can easily be disabled using kill-switches. In addition, the change only affects the new AEC3, which is in itself behind a flag and default disabled.

We're currently putting a lot of effort into improving echo cancellation for all users in Chrome, and are tracking an aggressive plan. Your continued support for our effort is highly appreciated.

Thanks!
Labels: -Merge-Review-68 Merge-Approved-68
Approving merge to M68, as it's confirmed this can be disabled server side. Branch:3440
Project Member

Comment 10 by sheriffbot@chromium.org, Jun 25 2018

Cc: abdulsyed@google.com
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
The change has been merged to M68:
https://webrtc-review.googlesource.com/c/src/+/84582
Project Member

Comment 12 by sheriffbot@chromium.org, Jun 28 2018

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Approved-68 Merge-Merged

Sign in to add a comment