AEC3: adding a config option for applying a more conservative initial phase.

Change-Id: If0f93aa6abcb3b8e99ca40dde86b15a4b1487883
Bug: webrtc:8671
Reviewed-on: https://webrtc-review.googlesource.com/94505
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24363}
This commit is contained in:
Jesús de Vicente Peña
2018-08-21 16:09:49 +02:00
committed by Commit Bot
parent 4d95f1eb9b
commit 8459b17c75
3 changed files with 13 additions and 4 deletions

View File

@ -54,6 +54,7 @@ struct EchoCanceller3Config {
size_t config_change_duration_blocks = 250;
float initial_state_seconds = 2.5f;
bool conservative_initial_phase = false;
} filter;
struct Erle {

View File

@ -130,10 +130,16 @@ AecState::AecState(const EchoCanceller3Config& config)
enforce_delay_after_realignment_(EnableEnforcingDelayAfterRealignment()),
allow_linear_mode_with_diverged_filter_(
EnableLinearModeWithDivergedFilter()),
early_filter_usage_activated_(EnableEarlyFilterUsage()),
use_short_initial_state_(EnableShortInitialState()),
convergence_trigger_linear_mode_(EnableConvergenceTriggeredLinearMode()),
no_alignment_required_for_linear_mode_(EnableNoWaitForAlignment()),
early_filter_usage_activated_(EnableEarlyFilterUsage() &&
!config.filter.conservative_initial_phase),
use_short_initial_state_(EnableShortInitialState() &&
!config.filter.conservative_initial_phase),
convergence_trigger_linear_mode_(
EnableConvergenceTriggeredLinearMode() &&
!config.filter.conservative_initial_phase),
no_alignment_required_for_linear_mode_(
EnableNoWaitForAlignment() &&
!config.filter.conservative_initial_phase),
use_uncertainty_until_sufficiently_adapted_(
EnableUncertaintyUntilSufficientAdapted()),
transparent_mode_enforces_nonlinear_mode_(

View File

@ -214,6 +214,8 @@ EchoCanceller3Config ParseAec3Parameters(const std::string& filename) {
&cfg.filter.config_change_duration_blocks);
ReadParam(section, "initial_state_seconds",
&cfg.filter.initial_state_seconds);
ReadParam(section, "conservative_initial_phase",
&cfg.filter.conservative_initial_phase);
}
if (rtc::GetValueFromJsonObject(root, "erle", &section)) {