From 18515e2793fbcfce358a1c650da6cb552ca59ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85hgren?= Date: Wed, 30 Sep 2020 15:23:05 +0200 Subject: [PATCH] Reland "Reduce the amount of howling reduction in AEC3" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a reland of 2978abb88c49362e296bdce3cb662f6255b17083 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} Bug: b/150764764 Change-Id: I277f24eb3288ad0307e7463bad9aea6436cfe879 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186263 Reviewed-by: Per Åhgren Reviewed-by: Gustaf Ullberg Commit-Queue: Per Åhgren Cr-Commit-Position: refs/heads/master@{#32274} --- api/audio/echo_canceller3_config.h | 4 ++-- modules/audio_processing/aec3/echo_canceller3.cc | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/api/audio/echo_canceller3_config.h b/api/audio/echo_canceller3_config.h index a505625538..3fdf1feedd 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 = 25.f; - float anti_howling_gain = 0.01f; + float anti_howling_activation_threshold = 400.f; + float anti_howling_gain = 1.f; } 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 d96abc979f..4b67df0eee 100644 --- a/modules/audio_processing/aec3/echo_canceller3.cc +++ b/modules/audio_processing/aec3/echo_canceller3.cc @@ -213,6 +213,12 @@ 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; }