AEC3 tunings to increase transparency
This CL fine-tunes the internal AEC3 parameters to increase the
transparency of the nearend signal.
Bug: webrtc:8322
Change-Id: I2e35165082d88b8f2b1e8367d8ed0e29bd67b4e5
Reviewed-on: https://webrtc-review.googlesource.com/5365
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20082}
diff --git a/modules/audio_processing/aec3/suppression_gain.cc b/modules/audio_processing/aec3/suppression_gain.cc
index 83ae63c..9183e91 100644
--- a/modules/audio_processing/aec3/suppression_gain.cc
+++ b/modules/audio_processing/aec3/suppression_gain.cc
@@ -176,7 +176,7 @@
const std::array<float, kFftLengthBy2Plus1>& one_by_echo,
std::array<float, kFftLengthBy2Plus1>* gain) {
const float nearend_masking_margin =
- low_noise_render ? 0.1f
+ low_noise_render ? 0.3f
: (saturated_echo ? config.param.gain_mask.m2
: config.param.gain_mask.m3);
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 6baa691..21d6018 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -279,21 +279,21 @@
} erle;
struct EpStrength {
- float lf = 100.f;
- float mf = 1000.f;
- float hf = 5000.f;
+ float lf = 10.f;
+ float mf = 100.f;
+ float hf = 200.f;
float default_len = 0.f;
} ep_strength;
struct Mask {
float m1 = 0.01f;
float m2 = 0.001f;
- float m3 = 0.01f;
- float m4 = 0.1f;
+ float m3 = 0.02f; // Do not change.
+ float m4 = 0.3f;
} gain_mask;
struct EchoAudibility {
- float low_render_limit = 192.f;
+ float low_render_limit = 4 * 64.f;
float normal_render_limit = 64.f;
float active_render_limit = 100.f;
} echo_audibility;
@@ -313,8 +313,8 @@
float min_dec;
};
- GainChanges low_noise = {8.f, 8.f, 2.f, 2.f, 4.f, 4.f};
- GainChanges normal = {4.f, 4.f, 2.f, 2.f, 1.2f, 2.f};
+ GainChanges low_noise = {8.f, 10.f, 2.f, 4.f, 4.f, 4.f};
+ GainChanges normal = {4.f, 10.f, 1.5f, 4.f, 2.f, 4.f};
GainChanges saturation = {1.2f, 1.2f, 1.5f, 1.5f, 1.f, 1.f};
float floor_first_increase = 0.001f;