Improved robustness and recovery speed in AEC3 during echo path changes
This CL adds robustness in terms of echo removal and faster recovery
in order to regain echo canceller transparency after echo path changes.
The CL does:
-Improve the adaptation rate of the linear filter.
-Increase the look-window used before the linear filter has adapted.
-Decrease the effects of missed detection of residual echo.
-Increase the safety margin before allowing the suppressor gain to
increase.
Bug: chromium:804873,webrtc:8788
Change-Id: I28eedc4c8d0a4f0bc7b79c02d6d59bf00fddd566
Reviewed-on: https://webrtc-review.googlesource.com/48721
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21917}
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 2f4cdb5..4ea4221 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -1189,11 +1189,11 @@
float noise_gate;
};
- MainConfiguration main = {12, 0.005f, 0.05f, 0.001f, 20075344.f};
- ShadowConfiguration shadow = {12, 0.1f, 20075344.f};
+ MainConfiguration main = {12, 0.005f, 0.1f, 0.001f, 20075344.f};
+ ShadowConfiguration shadow = {12, 0.7f, 20075344.f};
- MainConfiguration main_initial = {12, 0.01f, 0.1f, 0.001f, 20075344.f};
- ShadowConfiguration shadow_initial = {12, 0.7f, 20075344.f};
+ MainConfiguration main_initial = {12, 0.05f, 5.f, 0.001f, 20075344.f};
+ ShadowConfiguration shadow_initial = {12, 0.9f, 20075344.f};
} filter;
struct Erle {
@@ -1216,7 +1216,7 @@
float m2 = 0.0001f;
float m3 = 0.01f;
float m4 = 0.1f;
- float m5 = 0.3f;
+ float m5 = 0.1f;
float m6 = 0.0001f;
float m7 = 0.01f;
float m8 = 0.0001f;
@@ -1243,13 +1243,13 @@
float min_dec;
};
- GainChanges low_noise = {3.f, 3.f, 1.5f, 1.5f, 1.5f, 1.5f};
+ GainChanges low_noise = {2.f, 2.f, 1.4f, 1.4f, 1.1f, 1.1f};
GainChanges initial = {2.f, 2.f, 1.5f, 1.5f, 1.2f, 1.2f};
GainChanges normal = {2.f, 2.f, 1.5f, 1.5f, 1.2f, 1.2f};
GainChanges saturation = {1.2f, 1.2f, 1.5f, 1.5f, 1.f, 1.f};
GainChanges nonlinear = {1.5f, 1.5f, 1.2f, 1.2f, 1.1f, 1.1f};
- float floor_first_increase = 0.0001f;
+ float floor_first_increase = 0.00001f;
} gain_updates;
};