From aa3d3b47935fa5d189ac2ff0d493b548c41ef497 Mon Sep 17 00:00:00 2001 From: Mirko Bonadei Date: Wed, 30 Sep 2020 18:53:52 +0000 Subject: [PATCH] Revert "Reduce the amount of howling reduction in AEC3" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2978abb88c49362e296bdce3cb662f6255b17083. Reason for revert: Breaks ApmTest.Process. After trying to enable AVX2, we increased the amount of error we tolerate (kFloatNear) and this CL introduced a regression which makes the test fail after we reverted the enabling of AVX2 (restoring the old tolerance). With this CL: ../../modules/audio_processing/audio_processing_unittest.cc:1779: Failure The difference between test->rms_dbfs_average() and rms_dbfs_average is 0.00142669677734375, which exceeds kFloatNear, where test->rms_dbfs_average() evaluates to 52.907142639160156, rms_dbfs_average evaluates to 52.905715942382812, and kFloatNear evaluates to 0.00050000000000000001. [ FAILED ] ApmTest.Process (5347 ms) [----------] 1 test from ApmTest (5348 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (5350 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] ApmTest.Process After reverting it: [ OK ] ApmTest.Process (5345 ms) [----------] 1 test from ApmTest (5347 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (5350 ms total) [ PASSED ] 1 test. Original change's description: > Reduce the amount of howling reduction in AEC3 > > This CL backs off the howling protection functionality in AEC3. > The effect is increased transparency in some cases. No negative effects > have been identified in the hands-on testing. > > > A kill-switch is added that can be used to turn off the functionality. > > Bug: b/150764764 > Change-Id: I604c569c76f911799556a60bc8fd2fb43bbfe196 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186082 > Reviewed-by: Gustaf Ullberg > Commit-Queue: Per Åhgren > Cr-Commit-Position: refs/heads/master@{#32258} TBR=gustaf@webrtc.org,peah@webrtc.org Change-Id: I4723c5cd66e3046851089157ec586afab55c5ce8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b/150764764 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186122 Reviewed-by: Mirko Bonadei Commit-Queue: Per Åhgren Cr-Commit-Position: refs/heads/master@{#32261} --- api/audio/echo_canceller3_config.h | 4 ++-- modules/audio_processing/aec3/echo_canceller3.cc | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/api/audio/echo_canceller3_config.h b/api/audio/echo_canceller3_config.h index 3fdf1feedd..a505625538 100644 --- a/api/audio/echo_canceller3_config.h +++ b/api/audio/echo_canceller3_config.h @@ -215,8 +215,8 @@ struct RTC_EXPORT EchoCanceller3Config { struct HighBandsSuppression { float enr_threshold = 1.f; float max_gain_during_echo = 1.f; - float anti_howling_activation_threshold = 400.f; - float anti_howling_gain = 1.f; + float anti_howling_activation_threshold = 25.f; + float anti_howling_gain = 0.01f; } high_bands_suppression; float floor_first_increase = 0.00001f; diff --git a/modules/audio_processing/aec3/echo_canceller3.cc b/modules/audio_processing/aec3/echo_canceller3.cc index 4b67df0eee..d96abc979f 100644 --- a/modules/audio_processing/aec3/echo_canceller3.cc +++ b/modules/audio_processing/aec3/echo_canceller3.cc @@ -213,12 +213,6 @@ void CopyBufferIntoFrame(const AudioBuffer& buffer, EchoCanceller3Config AdjustConfig(const EchoCanceller3Config& config) { EchoCanceller3Config adjusted_cfg = config; - if (field_trial::IsEnabled("WebRTC-Aec3AntiHowlingMinimizationKillSwitch")) { - adjusted_cfg.suppressor.high_bands_suppression - .anti_howling_activation_threshold = 25.f; - adjusted_cfg.suppressor.high_bands_suppression.anti_howling_gain = 0.01f; - } - if (field_trial::IsEnabled("WebRTC-Aec3UseShortConfigChangeDuration")) { adjusted_cfg.filter.config_change_duration_blocks = 10; }