AEC3: Changes to initial behavior and handling of saturated echo
This CL introduces two related changes
1) It changes the way that the AEC3 determines whether the linear
filter is sufficiently good for its output to be used. The new scheme
achieves this much earlier than what was done in the legacy scheme.
2) It changes the way that saturated echo is and handled so that the
impact of the nearend speech is lower.
Bug: webrtc:9835,webrtc:9843,chromium:895435,chromium:895431
Change-Id: I0b493676886e2134205e9992bbe4badac7e414cc
Reviewed-on: https://webrtc-review.googlesource.com/c/104380
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25208}
diff --git a/modules/audio_processing/aec3/subtractor_output.h b/modules/audio_processing/aec3/subtractor_output.h
index 89727e9..5f6fd3e 100644
--- a/modules/audio_processing/aec3/subtractor_output.h
+++ b/modules/audio_processing/aec3/subtractor_output.h
@@ -36,12 +36,14 @@
float e2_main = 0.f;
float e2_shadow = 0.f;
float y2 = 0.f;
+ float s_main_max_abs = 0.f;
+ float s_shadow_max_abs = 0.f;
// Reset the struct content.
void Reset();
// Updates the powers of the signals.
- void UpdatePowers(rtc::ArrayView<const float> y);
+ void ComputeMetrics(rtc::ArrayView<const float> y);
};
} // namespace webrtc