AEC3: Remove parameters for the legacy filter naming
Bug: webrtc:8671 Change-Id: Ia5f8e33b9646e2b922428a72364cbbca47091579 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173092 Reviewed-by: Sam Zackrisson <saza@webrtc.org> Commit-Queue: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31030}
This commit is contained in:
@ -118,25 +118,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
|
||||
res = res & Limit(&c->delay.delay_selection_thresholds.initial, 1, 250);
|
||||
res = res & Limit(&c->delay.delay_selection_thresholds.converged, 1, 250);
|
||||
|
||||
res = res & FloorLimit(&c->filter.main.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.main.leakage_converged, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main.leakage_diverged, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main.error_floor, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main.error_ceil, 0.f, 100000000.f);
|
||||
res = res & Limit(&c->filter.main.noise_gate, 0.f, 100000000.f);
|
||||
|
||||
res = res & FloorLimit(&c->filter.main_initial.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.main_initial.leakage_converged, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main_initial.leakage_diverged, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main_initial.error_floor, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.main_initial.error_ceil, 0.f, 100000000.f);
|
||||
res = res & Limit(&c->filter.main_initial.noise_gate, 0.f, 100000000.f);
|
||||
|
||||
if (c->filter.main.length_blocks < c->filter.main_initial.length_blocks) {
|
||||
c->filter.main_initial.length_blocks = c->filter.main.length_blocks;
|
||||
res = false;
|
||||
}
|
||||
|
||||
res = res & FloorLimit(&c->filter.refined.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.refined.leakage_converged, 0.f, 1000.f);
|
||||
res = res & Limit(&c->filter.refined.leakage_diverged, 0.f, 1000.f);
|
||||
@ -157,19 +138,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
|
||||
res = false;
|
||||
}
|
||||
|
||||
res = res & FloorLimit(&c->filter.shadow.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.shadow.rate, 0.f, 1.f);
|
||||
res = res & Limit(&c->filter.shadow.noise_gate, 0.f, 100000000.f);
|
||||
|
||||
res = res & FloorLimit(&c->filter.shadow_initial.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.shadow_initial.rate, 0.f, 1.f);
|
||||
res = res & Limit(&c->filter.shadow_initial.noise_gate, 0.f, 100000000.f);
|
||||
|
||||
if (c->filter.shadow.length_blocks < c->filter.shadow_initial.length_blocks) {
|
||||
c->filter.shadow_initial.length_blocks = c->filter.shadow.length_blocks;
|
||||
res = false;
|
||||
}
|
||||
|
||||
res = res & FloorLimit(&c->filter.coarse.length_blocks, 1);
|
||||
res = res & Limit(&c->filter.coarse.rate, 0.f, 1.f);
|
||||
res = res & Limit(&c->filter.coarse.noise_gate, 0.f, 100000000.f);
|
||||
@ -193,7 +161,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
|
||||
c->erle.min = std::min(c->erle.max_l, c->erle.max_h);
|
||||
res = false;
|
||||
}
|
||||
res = res & Limit(&c->erle.num_sections, 1, c->filter.main.length_blocks);
|
||||
res = res & Limit(&c->erle.num_sections, 1, c->filter.refined.length_blocks);
|
||||
|
||||
res = res & Limit(&c->ep_strength.default_gain, 0.f, 1000000.f);
|
||||
|
@ -76,15 +76,10 @@ struct RTC_EXPORT EchoCanceller3Config {
|
||||
float noise_gate;
|
||||
};
|
||||
|
||||
RefinedConfiguration main = {13, 0.00005f, 0.05f, 0.001f, 2.f, 20075344.f};
|
||||
CoarseConfiguration shadow = {13, 0.7f, 20075344.f};
|
||||
RefinedConfiguration refined = {13, 0.00005f, 0.05f,
|
||||
0.001f, 2.f, 20075344.f};
|
||||
CoarseConfiguration coarse = {13, 0.7f, 20075344.f};
|
||||
|
||||
RefinedConfiguration main_initial = {12, 0.005f, 0.5f,
|
||||
0.001f, 2.f, 20075344.f};
|
||||
CoarseConfiguration shadow_initial = {12, 0.9f, 20075344.f};
|
||||
RefinedConfiguration refined_initial = {12, 0.005f, 0.5f,
|
||||
0.001f, 2.f, 20075344.f};
|
||||
CoarseConfiguration coarse_initial = {12, 0.9f, 20075344.f};
|
||||
@ -92,13 +87,12 @@ struct RTC_EXPORT EchoCanceller3Config {
|
||||
size_t config_change_duration_blocks = 250;
|
||||
float initial_state_seconds = 2.5f;
|
||||
bool conservative_initial_phase = false;
|
||||
bool enable_shadow_filter_output_usage = true;
|
||||
bool enable_coarse_filter_output_usage = true;
|
||||
bool use_linear_filter = true;
|
||||
bool export_linear_aec_output = false;
|
||||
// Uses the filter configurations named main and shadow rather than those
|
||||
// named refined and coarse.
|
||||
bool use_legacy_filter_naming = true;
|
||||
// Deprecated.
|
||||
// TODO(peah): Remove.
|
||||
bool use_legacy_filter_naming = false;
|
||||
} filter;
|
||||
|
||||
struct Erle {
|
||||
|
@ -215,13 +215,9 @@ void Aec3ConfigFromJsonString(absl::string_view json_string,
|
||||
}
|
||||
|
||||
if (rtc::GetValueFromJsonObject(aec3_root, "filter", §ion)) {
|
||||
ReadParam(section, "main", &cfg.filter.main);
|
||||
ReadParam(section, "refined", &cfg.filter.refined);
|
||||
ReadParam(section, "shadow", &cfg.filter.shadow);
|
||||
ReadParam(section, "coarse", &cfg.filter.coarse);
|
||||
ReadParam(section, "main_initial", &cfg.filter.main_initial);
|
||||
ReadParam(section, "refined_initial", &cfg.filter.refined_initial);
|
||||
ReadParam(section, "shadow_initial", &cfg.filter.shadow_initial);
|
||||
ReadParam(section, "coarse_initial", &cfg.filter.coarse_initial);
|
||||
ReadParam(section, "config_change_duration_blocks",
|
||||
&cfg.filter.config_change_duration_blocks);
|
||||
@ -229,8 +225,6 @@ void Aec3ConfigFromJsonString(absl::string_view json_string,
|
||||
&cfg.filter.initial_state_seconds);
|
||||
ReadParam(section, "conservative_initial_phase",
|
||||
&cfg.filter.conservative_initial_phase);
|
||||
ReadParam(section, "enable_shadow_filter_output_usage",
|
||||
&cfg.filter.enable_shadow_filter_output_usage);
|
||||
ReadParam(section, "enable_coarse_filter_output_usage",
|
||||
&cfg.filter.enable_coarse_filter_output_usage);
|
||||
ReadParam(section, "use_linear_filter", &cfg.filter.use_linear_filter);
|
||||
@ -471,14 +465,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
|
||||
ost << "},";
|
||||
|
||||
ost << "\"filter\": {";
|
||||
ost << "\"main\": [";
|
||||
ost << config.filter.main.length_blocks << ",";
|
||||
ost << config.filter.main.leakage_converged << ",";
|
||||
ost << config.filter.main.leakage_diverged << ",";
|
||||
ost << config.filter.main.error_floor << ",";
|
||||
ost << config.filter.main.error_ceil << ",";
|
||||
ost << config.filter.main.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"refined\": [";
|
||||
ost << config.filter.refined.length_blocks << ",";
|
||||
@ -489,27 +475,12 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
|
||||
ost << config.filter.refined.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"shadow\": [";
|
||||
ost << config.filter.shadow.length_blocks << ",";
|
||||
ost << config.filter.shadow.rate << ",";
|
||||
ost << config.filter.shadow.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"coarse\": [";
|
||||
ost << config.filter.coarse.length_blocks << ",";
|
||||
ost << config.filter.coarse.rate << ",";
|
||||
ost << config.filter.coarse.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"main_initial\": [";
|
||||
ost << config.filter.main_initial.length_blocks << ",";
|
||||
ost << config.filter.main_initial.leakage_converged << ",";
|
||||
ost << config.filter.main_initial.leakage_diverged << ",";
|
||||
ost << config.filter.main_initial.error_floor << ",";
|
||||
ost << config.filter.main_initial.error_ceil << ",";
|
||||
ost << config.filter.main_initial.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"refined_initial\": [";
|
||||
ost << config.filter.refined_initial.length_blocks << ",";
|
||||
ost << config.filter.refined_initial.leakage_converged << ",";
|
||||
@ -519,12 +490,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
|
||||
ost << config.filter.refined_initial.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"shadow_initial\": [";
|
||||
ost << config.filter.shadow_initial.length_blocks << ",";
|
||||
ost << config.filter.shadow_initial.rate << ",";
|
||||
ost << config.filter.shadow_initial.noise_gate;
|
||||
ost << "],";
|
||||
|
||||
ost << "\"coarse_initial\": [";
|
||||
ost << config.filter.coarse_initial.length_blocks << ",";
|
||||
ost << config.filter.coarse_initial.rate << ",";
|
||||
@ -537,9 +502,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
|
||||
<< ",";
|
||||
ost << "\"conservative_initial_phase\": "
|
||||
<< (config.filter.conservative_initial_phase ? "true" : "false") << ",";
|
||||
ost << "\"enable_shadow_filter_output_usage\": "
|
||||
<< (config.filter.enable_shadow_filter_output_usage ? "true" : "false")
|
||||
<< ",";
|
||||
ost << "\"enable_coarse_filter_output_usage\": "
|
||||
<< (config.filter.enable_coarse_filter_output_usage ? "true" : "false")
|
||||
<< ",";
|
||||
|
@ -19,9 +19,7 @@ TEST(EchoCanceller3JsonHelpers, ToStringAndParseJson) {
|
||||
EchoCanceller3Config cfg;
|
||||
cfg.delay.down_sampling_factor = 1u;
|
||||
cfg.delay.log_warning_on_delay_changes = true;
|
||||
cfg.filter.main.error_floor = 1.f;
|
||||
cfg.filter.refined.error_floor = 2.f;
|
||||
cfg.filter.shadow_initial.length_blocks = 7u;
|
||||
cfg.filter.coarse_initial.length_blocks = 3u;
|
||||
cfg.comfort_noise.noise_floor_dbfs = 100.f;
|
||||
cfg.suppressor.normal_tuning.mask_hf.enr_suppress = .5f;
|
||||
@ -46,10 +44,6 @@ TEST(EchoCanceller3JsonHelpers, ToStringAndParseJson) {
|
||||
cfg_transformed.delay.log_warning_on_delay_changes);
|
||||
EXPECT_EQ(cfg.filter.coarse_initial.length_blocks,
|
||||
cfg_transformed.filter.coarse_initial.length_blocks);
|
||||
EXPECT_EQ(cfg.filter.shadow_initial.length_blocks,
|
||||
cfg_transformed.filter.shadow_initial.length_blocks);
|
||||
EXPECT_EQ(cfg.filter.main.error_floor,
|
||||
cfg_transformed.filter.main.error_floor);
|
||||
EXPECT_EQ(cfg.filter.refined.error_floor,
|
||||
cfg_transformed.filter.refined.error_floor);
|
||||
EXPECT_EQ(cfg.comfort_noise.noise_floor_dbfs,
|
||||
|
@ -213,15 +213,6 @@ void CopyBufferIntoFrame(const AudioBuffer& buffer,
|
||||
EchoCanceller3Config AdjustConfig(const EchoCanceller3Config& config) {
|
||||
EchoCanceller3Config adjusted_cfg = config;
|
||||
|
||||
if (adjusted_cfg.filter.use_legacy_filter_naming) {
|
||||
adjusted_cfg.filter.refined = adjusted_cfg.filter.main;
|
||||
adjusted_cfg.filter.refined_initial = adjusted_cfg.filter.main_initial;
|
||||
adjusted_cfg.filter.coarse = adjusted_cfg.filter.shadow;
|
||||
adjusted_cfg.filter.coarse_initial = adjusted_cfg.filter.shadow_initial;
|
||||
adjusted_cfg.filter.enable_coarse_filter_output_usage =
|
||||
adjusted_cfg.filter.enable_shadow_filter_output_usage;
|
||||
}
|
||||
|
||||
if (field_trial::IsEnabled("WebRTC-Aec3UseShortConfigChangeDuration")) {
|
||||
adjusted_cfg.filter.config_change_duration_blocks = 10;
|
||||
}
|
||||
|
Reference in New Issue
Block a user