AEC3: Change adaptation speed of the matched filter after a delay is found
This change enables the use of two different adaptation speeds of the matched filter of the delay estimator of AEC3. One speed is used when no delay has been found, and one is used after a reliable delay has been found. The purpose is to use a slower adaptation speed to reduce the risk of divergence during double-talk without slowing down the search for the initial delay. The CL prepares for experimentation by adding field trials for controlling the two adaptation speeds. Bug: webrtc:12775 Change-Id: I817a1ab5ded0f78d20de45edcf04c708290173fc Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219083 Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org> Reviewed-by: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34055}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
402ceffff1
commit
aeb8ce882f
@ -43,6 +43,7 @@ struct RTC_EXPORT EchoCanceller3Config {
|
||||
size_t hysteresis_limit_blocks = 1;
|
||||
size_t fixed_capture_delay_samples = 0;
|
||||
float delay_estimate_smoothing = 0.7f;
|
||||
float delay_estimate_smoothing_delay_found = 0.7f;
|
||||
float delay_candidate_detection_threshold = 0.2f;
|
||||
struct DelaySelectionThresholds {
|
||||
int initial;
|
||||
|
||||
@ -191,6 +191,8 @@ void Aec3ConfigFromJsonString(absl::string_view json_string,
|
||||
&cfg.delay.fixed_capture_delay_samples);
|
||||
ReadParam(section, "delay_estimate_smoothing",
|
||||
&cfg.delay.delay_estimate_smoothing);
|
||||
ReadParam(section, "delay_estimate_smoothing_delay_found",
|
||||
&cfg.delay.delay_estimate_smoothing_delay_found);
|
||||
ReadParam(section, "delay_candidate_detection_threshold",
|
||||
&cfg.delay.delay_candidate_detection_threshold);
|
||||
|
||||
@ -425,6 +427,8 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
|
||||
<< config.delay.fixed_capture_delay_samples << ",";
|
||||
ost << "\"delay_estimate_smoothing\": "
|
||||
<< config.delay.delay_estimate_smoothing << ",";
|
||||
ost << "\"delay_estimate_smoothing_delay_found\": "
|
||||
<< config.delay.delay_estimate_smoothing_delay_found << ",";
|
||||
ost << "\"delay_candidate_detection_threshold\": "
|
||||
<< config.delay.delay_candidate_detection_threshold << ",";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user