Lowering the threshold for delay change detection in AEC3
This CL lowers the threshold for delay change detection in AEC3.
This makes the delay decisions more stable.
TBR=gustaf@webrtc.org
Bug: chromium:778396,webrtc:8451
Change-Id: I8b015455399d696172b7c0beb033caf508f426e9
Reviewed-on: https://webrtc-review.googlesource.com/15541
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20433}
diff --git a/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc b/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
index 2c7b9a5..9ff45cd 100644
--- a/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
+++ b/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
@@ -62,7 +62,7 @@
EchoPathDelayEstimator estimator(&data_dumper, EchoCanceller3Config());
rtc::Optional<size_t> estimated_delay_samples;
- for (size_t k = 0; k < (100 + delay_samples / kBlockSize); ++k) {
+ for (size_t k = 0; k < (150 + delay_samples / kBlockSize); ++k) {
RandomizeSampleVector(&random_generator, render[0]);
signal_delay_buffer.Delay(render[0], capture);
render_delay_buffer->Insert(render);
diff --git a/modules/audio_processing/aec3/matched_filter.cc b/modules/audio_processing/aec3/matched_filter.cc
index c70e1a9..901281f 100644
--- a/modules/audio_processing/aec3/matched_filter.cc
+++ b/modules/audio_processing/aec3/matched_filter.cc
@@ -368,7 +368,7 @@
[](float a, float b) -> bool { return a * a < b * b; }));
// Update the lag estimates for the matched filter.
- const float kMatchingFilterThreshold = 0.1f;
+ const float kMatchingFilterThreshold = 0.05f;
lag_estimates_[n] = LagEstimate(
error_sum_anchor - error_sum,
(lag_estimate > 2 && lag_estimate < (filters_[n].size() - 10) &&
diff --git a/modules/audio_processing/aec3/matched_filter_unittest.cc b/modules/audio_processing/aec3/matched_filter_unittest.cc
index d06f010..deaad11 100644
--- a/modules/audio_processing/aec3/matched_filter_unittest.cc
+++ b/modules/audio_processing/aec3/matched_filter_unittest.cc
@@ -142,7 +142,7 @@
RenderDelayBuffer::Create(3));
// Analyze the correlation between render and capture.
- for (size_t k = 0; k < (100 + delay_samples / kSubBlockSize); ++k) {
+ for (size_t k = 0; k < (150 + delay_samples / kSubBlockSize); ++k) {
RandomizeSampleVector(&random_generator, render[0]);
signal_delay_buffer.Delay(render[0], capture);
render_delay_buffer->Insert(render);