diff options
author | Hsin-Yu Chao <hychao@chromium.org> | 2018-08-22 17:20:26 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-31 15:08:40 -0700 |
commit | 400399da40785d27b86863f81d14d296ebe993dc (patch) | |
tree | 690189882d7b3350d151f4ccd48a3f9647773940 | |
parent | 205aff6cd98f5a33caf24cd450f2d4ecf1b950e5 (diff) | |
download | adhd-400399da40785d27b86863f81d14d296ebe993dc.tar.gz |
CRAS: config - Update aec_config to latest webrtc-apm
Some parameters are added and some removed. A few of them
changed default value.
BUG=chromium:874787
TEST=apply all config files and test on nocturne
CQ-DEPEND=CL:1194561
Change-Id: I0e47e330b0aaf002d8338f064f0052cc87ff261c
Reviewed-on: https://chromium-review.googlesource.com/1196304
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
-rw-r--r-- | cras/src/server/config/aec_config.c | 291 | ||||
-rw-r--r-- | cras/src/server/config/aec_config.h | 256 |
2 files changed, 276 insertions, 271 deletions
diff --git a/cras/src/server/config/aec_config.c b/cras/src/server/config/aec_config.c index 51d77ead..d51d4b83 100644 --- a/cras/src/server/config/aec_config.c +++ b/cras/src/server/config/aec_config.c @@ -58,6 +58,8 @@ struct aec_config *aec_config_get(const char *device_config_dir) AEC_GET_INT(ini, DELAY, HYSTERESIS_LIMIT_2_BLOCKS); config->delay.skew_hysteresis_blocks = AEC_GET_INT(ini, DELAY, SKEW_HYSTERESIS_BLOCKS); + config->delay.fixed_capture_delay_samples = + AEC_GET_INT(ini, DELAY, FIXED_CAPTURE_DELAY_SAMPLES); config->filter.main.length_blocks = AEC_GET_INT(ini, FILTER_MAIN, LENGTH_BLOCKS); @@ -97,6 +99,12 @@ struct aec_config *aec_config_get(const char *device_config_dir) config->filter.config_change_duration_blocks = AEC_GET_INT(ini, FILTER, CONFIG_CHANGE_DURATION_BLOCKS); + config->filter.initial_state_seconds = + AEC_GET_FLOAT(ini, FILTER, INITIAL_STATE_SECONDS); + config->filter.conservative_initial_phase = + AEC_GET_INT(ini, FILTER, CONSERVATIVE_INITIAL_PHASE); + config->filter.enable_shadow_filter_output_usage = + AEC_GET_INT(ini, FILTER, ENABLE_SHADOW_FILTER_OUTPUT_USAGE); config->erle.min = AEC_GET_FLOAT(ini, ERLE, MIN); @@ -104,6 +112,8 @@ struct aec_config *aec_config_get(const char *device_config_dir) AEC_GET_FLOAT(ini, ERLE, MAX_L); config->erle.max_h = AEC_GET_FLOAT(ini, ERLE, MAX_H); + config->erle.onset_detection = + AEC_GET_INT(ini, ERLE, ONSET_DETECTION); config->ep_strength.lf = AEC_GET_FLOAT(ini, EP_STRENGTH, LF); @@ -171,77 +181,6 @@ struct aec_config *aec_config_get(const char *device_config_dir) config->render_levels.poor_excitation_render_limit_ds8 = AEC_GET_FLOAT(ini, RENDER_LEVELS, POOR_EXCITATION_RENDER_LIMIT_DS8); - config->gain_updates.low_noise.max_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, MAX_INC); - config->gain_updates.low_noise.max_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, MAX_DEC); - config->gain_updates.low_noise.rate_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, RATE_INC); - config->gain_updates.low_noise.rate_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, RATE_DEC); - config->gain_updates.low_noise.min_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, MIN_INC); - config->gain_updates.low_noise.min_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_LOW_NOISE, MIN_DEC); - - config->gain_updates.initial.max_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, MAX_INC); - config->gain_updates.initial.max_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, MAX_DEC); - config->gain_updates.initial.rate_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, RATE_INC); - config->gain_updates.initial.rate_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, RATE_DEC); - config->gain_updates.initial.min_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, MIN_INC); - config->gain_updates.initial.min_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_INITIAL, MIN_DEC); - - config->gain_updates.normal.max_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, MAX_INC); - config->gain_updates.normal.max_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, MAX_DEC); - config->gain_updates.normal.rate_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, RATE_INC); - config->gain_updates.normal.rate_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, RATE_DEC); - config->gain_updates.normal.min_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, MIN_INC); - config->gain_updates.normal.min_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NORMAL, MIN_DEC); - - config->gain_updates.saturation.max_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, MAX_INC); - config->gain_updates.saturation.max_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, MAX_DEC); - config->gain_updates.saturation.rate_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, RATE_INC); - config->gain_updates.saturation.rate_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, RATE_DEC); - config->gain_updates.saturation.min_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, MIN_INC); - config->gain_updates.saturation.min_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_SATURATION, MIN_DEC); - - config->gain_updates.nonlinear.max_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, MAX_INC); - config->gain_updates.nonlinear.max_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, MAX_DEC); - config->gain_updates.nonlinear.rate_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, RATE_INC); - config->gain_updates.nonlinear.rate_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, RATE_DEC); - config->gain_updates.nonlinear.min_inc = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, MIN_INC); - config->gain_updates.nonlinear.min_dec = - AEC_GET_FLOAT(ini, GAIN_UPDATES_NONLINEAR, MIN_DEC); - config->gain_updates.max_inc_factor = - AEC_GET_FLOAT(ini, GAIN_UPDATES, MAX_INC_FACTOR); - config->gain_updates.max_dec_factor_lf = - AEC_GET_FLOAT(ini, GAIN_UPDATES, MAX_DEC_FACTOR_LF); - config->gain_updates.floor_first_increase = - AEC_GET_FLOAT(ini, GAIN_UPDATES, FLOOR_FIRST_INCREASE); - config->echo_removal_control.gain_rampup.initial_gain = AEC_GET_FLOAT(ini, ECHO_REMOVAL_CTL, INITIAL_GAIN); config->echo_removal_control.gain_rampup.first_non_zero_gain = @@ -278,22 +217,81 @@ struct aec_config *aec_config_get(const char *device_config_dir) config->echo_model.nonlinear_release = AEC_GET_FLOAT(ini, ECHO_MODEL, NONLINEAR_RELEASE); - config->suppressor.bands_with_reliable_coherence = - AEC_GET_INT(ini, SUPPRESSOR, BANDS_WITH_RELIABLE_COHERENCE); config->suppressor.nearend_average_blocks = AEC_GET_INT(ini, SUPPRESSOR, NEAREND_AVERAGE_BLOCKS); - config->suppressor.mask_lf_enr_transparent = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_LF_ENR_TRANSPARENT); - config->suppressor.mask_lf_enr_suppress = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_LF_ENR_SUPPRESS); - config->suppressor.mask_lf_emr_transparent = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_LF_EMR_TRANSPARENT); - config->suppressor.mask_hf_enr_transparent = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_HF_ENR_TRANSPARENT); - config->suppressor.mask_hf_enr_suppress = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_HF_ENR_SUPPRESS); - config->suppressor.mask_hf_emr_transparent = - AEC_GET_FLOAT(ini, SUPPRESSOR, MASK_HF_EMR_TRANSPARENT); + + config->suppressor.normal_tuning.mask_lf.enr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_LF_ENR_TRANSPARENT); + config->suppressor.normal_tuning.mask_lf.enr_suppress = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_LF_ENR_SUPPRESS); + config->suppressor.normal_tuning.mask_lf.emr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_LF_EMR_TRANSPARENT); + config->suppressor.normal_tuning.mask_hf.enr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_HF_ENR_TRANSPARENT); + config->suppressor.normal_tuning.mask_hf.enr_suppress = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_HF_ENR_SUPPRESS); + config->suppressor.normal_tuning.mask_hf.emr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, + MASK_HF_EMR_TRANSPARENT); + config->suppressor.normal_tuning.max_inc_factor = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, MAX_INC_FACTOR); + config->suppressor.normal_tuning.max_dec_factor_lf = + AEC_GET_FLOAT(ini, SUPPRESSOR_NORMAL_TUNING, MAX_DEC_FACTOR_LF); + + config->suppressor.nearend_tuning.mask_lf.enr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_LF_ENR_TRANSPARENT); + config->suppressor.nearend_tuning.mask_lf.enr_suppress = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_LF_ENR_SUPPRESS); + config->suppressor.nearend_tuning.mask_lf.emr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_LF_EMR_TRANSPARENT); + config->suppressor.nearend_tuning.mask_hf.enr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_HF_ENR_TRANSPARENT); + config->suppressor.nearend_tuning.mask_hf.enr_suppress = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_HF_ENR_SUPPRESS); + config->suppressor.nearend_tuning.mask_hf.emr_transparent = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, + MASK_HF_EMR_TRANSPARENT); + config->suppressor.nearend_tuning.max_inc_factor = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, MAX_INC_FACTOR); + config->suppressor.nearend_tuning.max_dec_factor_lf = + AEC_GET_FLOAT(ini, SUPPRESSOR_NEAREND_TUNING, MAX_DEC_FACTOR_LF); + + config->suppressor.dominant_nearend_detection.enr_threshold = + AEC_GET_FLOAT(ini, SUPPRESSOR_DOMINANT_NEAREND_DETECTION, + ENR_THRESHOLD); + config->suppressor.dominant_nearend_detection.snr_threshold = + AEC_GET_FLOAT(ini, SUPPRESSOR_DOMINANT_NEAREND_DETECTION, + SNR_THRESHOLD); + config->suppressor.dominant_nearend_detection.hold_duration = + AEC_GET_INT(ini, SUPPRESSOR_DOMINANT_NEAREND_DETECTION, + HOLD_DURATION); + config->suppressor.dominant_nearend_detection.trigger_threshold = + AEC_GET_INT(ini, SUPPRESSOR_DOMINANT_NEAREND_DETECTION, + TRIGGER_THRESHOLD); + + config->suppressor.high_bands_suppression.enr_threshold = + AEC_GET_FLOAT(ini, SUPPRESSOR_HIGH_BANDS_SUPPRESSION, + ENR_THRESHOLD); + config->suppressor.high_bands_suppression.max_gain_during_echo = + AEC_GET_FLOAT(ini, SUPPRESSOR_HIGH_BANDS_SUPPRESSION, + MAX_GAIN_DURING_ECHO); + + config->suppressor.floor_first_increase = + AEC_GET_FLOAT(ini, SUPPRESSOR, FLOOR_FIRST_INCREASE); + config->suppressor.enforce_transparent = + AEC_GET_INT(ini, SUPPRESSOR, ENFORCE_TRANSPARENT); + config->suppressor.enforce_empty_higher_bands = + AEC_GET_INT(ini, SUPPRESSOR, ENFORCE_EMPTY_HIGHER_BANDS); return config; } @@ -315,6 +313,8 @@ void aec_config_dump(struct aec_config *config) syslog(LOG_ERR, " hysteresis_limit_2_blocks %zu, skew_hysteresis_blocks %zu", config->delay.hysteresis_limit_2_blocks, config->delay.skew_hysteresis_blocks); + syslog(LOG_ERR, " fixed_capture_delay_samples %zu", + config->delay.fixed_capture_delay_samples); syslog(LOG_ERR, "Filter main configuration:"); syslog(LOG_ERR, " length_blocks %zu, leakage_converged %f, leakage_diverged %f", @@ -344,9 +344,15 @@ void aec_config_dump(struct aec_config *config) config->filter.shadow_initial.noise_gate); syslog(LOG_ERR, "Filter: config_change_duration_blocks %d", config->filter.config_change_duration_blocks); - syslog(LOG_ERR, "Erle: min %f max_l %f max_h %f", + syslog(LOG_ERR, " initial_state_seconds %f", + config->filter.initial_state_seconds); + syslog(LOG_ERR, " conservative_initial_phase %d", + config->filter.conservative_initial_phase); + syslog(LOG_ERR, " enable_shadow_filter_output_usage %d", + config->filter.enable_shadow_filter_output_usage); + syslog(LOG_ERR, "Erle: min %f max_l %f max_h %f onset_detection %d", config->erle.min, config->erle.max_l, - config->erle.max_h); + config->erle.max_h, config->erle.onset_detection); syslog(LOG_ERR, "Ep strength: lf %f mf %f hf %f default_len %f", config->ep_strength.lf, config->ep_strength.mf, @@ -396,62 +402,6 @@ void aec_config_dump(struct aec_config *config) config->render_levels.poor_excitation_render_limit); syslog(LOG_ERR, " poor_excitation_render_limit_ds8 %f", config->render_levels.poor_excitation_render_limit_ds8); - syslog(LOG_ERR, "Gain updates:"); - syslog(LOG_ERR, " low_noise:"); - syslog(LOG_ERR, " max_inc %f max_dec %f", - config->gain_updates.low_noise.max_inc, - config->gain_updates.low_noise.max_dec); - syslog(LOG_ERR, " rate_inc %f rate_dec %f", - config->gain_updates.low_noise.rate_inc, - config->gain_updates.low_noise.rate_dec); - syslog(LOG_ERR, " min_inc %f min_dec %f", - config->gain_updates.low_noise.min_inc, - config->gain_updates.low_noise.min_dec); - syslog(LOG_ERR, " initial:"); - syslog(LOG_ERR, " max_inc %f max_dec %f", - config->gain_updates.initial.max_inc, - config->gain_updates.initial.max_dec); - syslog(LOG_ERR, " rate_inc %f rate_dec %f", - config->gain_updates.initial.rate_inc, - config->gain_updates.initial.rate_dec); - syslog(LOG_ERR, " min_inc %f min_dec %f", - config->gain_updates.initial.min_inc, - config->gain_updates.initial.min_dec); - syslog(LOG_ERR, " normal:"); - syslog(LOG_ERR, " max_inc %f max_dec %f", - config->gain_updates.normal.max_inc, - config->gain_updates.normal.max_dec); - syslog(LOG_ERR, " rate_inc %f rate_dec %f", - config->gain_updates.normal.rate_inc, - config->gain_updates.normal.rate_dec); - syslog(LOG_ERR, " min_inc %f min_dec %f", - config->gain_updates.normal.min_inc, - config->gain_updates.normal.min_dec); - syslog(LOG_ERR, " saturation:"); - syslog(LOG_ERR, " max_inc %f max_dec %f", - config->gain_updates.saturation.max_inc, - config->gain_updates.saturation.max_dec); - syslog(LOG_ERR, " rate_inc %f rate_dec %f", - config->gain_updates.saturation.rate_inc, - config->gain_updates.saturation.rate_dec); - syslog(LOG_ERR, " min_inc %f min_dec %f", - config->gain_updates.saturation.min_inc, - config->gain_updates.saturation.min_dec); - syslog(LOG_ERR, " nonlinear:"); - syslog(LOG_ERR, " max_inc %f max_dec %f", - config->gain_updates.nonlinear.max_inc, - config->gain_updates.nonlinear.max_dec); - syslog(LOG_ERR, " rate_inc %f rate_dec %f", - config->gain_updates.nonlinear.rate_inc, - config->gain_updates.nonlinear.rate_dec); - syslog(LOG_ERR, " min_inc %f min_dec %f", - config->gain_updates.nonlinear.min_inc, - config->gain_updates.nonlinear.min_dec); - syslog(LOG_ERR, " max_inc_factor %f max_dec_factor_lf %f", - config->gain_updates.max_inc_factor, - config->gain_updates.max_dec_factor_lf); - syslog(LOG_ERR, " floor_first_increase %f", - config->gain_updates.floor_first_increase); syslog(LOG_ERR, "Echo removal control:"); syslog(LOG_ERR, " gain rampup:"); syslog(LOG_ERR, " initial_gain %f, first_non_zero_gain %f", @@ -483,20 +433,47 @@ void aec_config_dump(struct aec_config *config) config->echo_model.render_post_window_size_init); syslog(LOG_ERR, " nonlinear_release %f", config->echo_model.nonlinear_release); - syslog(LOG_ERR, "Suppressor: bands_with_reliable_coherence %zu", - config->suppressor.bands_with_reliable_coherence); + syslog(LOG_ERR, "Suppressor:"); syslog(LOG_ERR, " nearend_average_blocks %u", config->suppressor.nearend_average_blocks); - syslog(LOG_ERR, " mask_lf_enr_transparent %f", - config->suppressor.mask_lf_enr_transparent); - syslog(LOG_ERR, " mask_lf_enr_suppress %f", - config->suppressor.mask_lf_enr_suppress); - syslog(LOG_ERR, " mask_lf_emr_transparent %f", - config->suppressor.mask_lf_emr_transparent); - syslog(LOG_ERR, " mask_hf_enr_transparent %f", - config->suppressor.mask_hf_enr_transparent); - syslog(LOG_ERR, " mask_hf_enr_suppress %f", - config->suppressor.mask_hf_enr_suppress); - syslog(LOG_ERR, " mask_hf_emr_transparent %f", - config->suppressor.mask_hf_emr_transparent); + syslog(LOG_ERR, " Normal tuning, mask_lf %f %f %f", + config->suppressor.normal_tuning.mask_lf.enr_transparent, + config->suppressor.normal_tuning.mask_lf.enr_suppress, + config->suppressor.normal_tuning.mask_lf.emr_transparent); + syslog(LOG_ERR, " mask_hf %f %f %f", + config->suppressor.normal_tuning.mask_hf.enr_transparent, + config->suppressor.normal_tuning.mask_hf.enr_suppress, + config->suppressor.normal_tuning.mask_hf.emr_transparent); + syslog(LOG_ERR, " max_inc_factor %f max_dec_factor_lf %f", + config->suppressor.normal_tuning.max_inc_factor, + config->suppressor.normal_tuning.max_dec_factor_lf); + syslog(LOG_ERR, " Nearend tuning, mask_lf %f %f %f", + config->suppressor.nearend_tuning.mask_lf.enr_transparent, + config->suppressor.nearend_tuning.mask_lf.enr_suppress, + config->suppressor.nearend_tuning.mask_lf.emr_transparent); + syslog(LOG_ERR, " mask_hf %f %f %f", + config->suppressor.nearend_tuning.mask_hf.enr_transparent, + config->suppressor.nearend_tuning.mask_hf.enr_suppress, + config->suppressor.nearend_tuning.mask_hf.emr_transparent); + syslog(LOG_ERR, " max_inc_factor %f max_dec_factor_lf %f", + config->suppressor.nearend_tuning.max_inc_factor, + config->suppressor.nearend_tuning.max_dec_factor_lf); + syslog(LOG_ERR, " Dominant nearend detection:"); + syslog(LOG_ERR, " enr_threshold %f", + config->suppressor.dominant_nearend_detection.enr_threshold); + syslog(LOG_ERR, " snr_threshold %f", + config->suppressor.dominant_nearend_detection.snr_threshold); + syslog(LOG_ERR, " hold_duration %d", + config->suppressor.dominant_nearend_detection.hold_duration); + syslog(LOG_ERR, " trigger_threshold %d", + config->suppressor.dominant_nearend_detection.trigger_threshold); + syslog(LOG_ERR, " High bands suppression:"); + syslog(LOG_ERR, " enr_threshold %f max_gain_during_echo %f", + config->suppressor.high_bands_suppression.enr_threshold, + config->suppressor.high_bands_suppression.max_gain_during_echo); + syslog(LOG_ERR, " floor_first_increase %f, enforce_transparent %d", + config->suppressor.floor_first_increase, + config->suppressor.enforce_transparent); + syslog(LOG_ERR, " enforce_empty_higher_bands %f", + config->suppressor.enforce_empty_higher_bands); } diff --git a/cras/src/server/config/aec_config.h b/cras/src/server/config/aec_config.h index 799accdd..015ca766 100644 --- a/cras/src/server/config/aec_config.h +++ b/cras/src/server/config/aec_config.h @@ -26,6 +26,9 @@ #define AEC_DELAY_HYSTERESIS_LIMIT_2_BLOCKS_VALUE 1 #define AEC_DELAY_SKEW_HYSTERESIS_BLOCKS "delay:skew_hysteresis_blocks" #define AEC_DELAY_SKEW_HYSTERESIS_BLOCKS_VALUE 3 +#define AEC_DELAY_FIXED_CAPTURE_DELAY_SAMPLES \ + "delay:fixed_capture_delay_samples" +#define AEC_DELAY_FIXED_CAPTURE_DELAY_SAMPLES_VALUE 0 // Filter Main configuration #define AEC_FILTER_MAIN_LENGTH_BLOCKS "filter.main:length_blocks" @@ -50,24 +53,37 @@ // Filter Main initial configuration #define AEC_FILTER_MAIN_INIT_LENGTH_BLOCKS "filter.main_initial:length_blocks" #define AEC_FILTER_MAIN_INIT_LENGTH_BLOCKS_VALUE 12 -#define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED "filter.main_initial:leakage_converged" -#define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED_VALUE 0.05f -#define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED "filter.main_initial:leakage_diverged" -#define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED_VALUE 5.f +#define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED \ + "filter.main_initial:leakage_converged" +#define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED_VALUE 0.005f +#define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED \ + "filter.main_initial:leakage_diverged" +#define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED_VALUE 0.5f #define AEC_FILTER_MAIN_INIT_ERROR_FLOOR "filter.main_initial:error_floor" #define AEC_FILTER_MAIN_INIT_ERROR_FLOOR_VALUE 0.001f #define AEC_FILTER_MAIN_INIT_NOISE_GATE "filter.main_initial:noise_gate" #define AEC_FILTER_MAIN_INIT_NOISE_GATE_VALUE 20075344.f // Filter Shadow initial configuration -#define AEC_FILTER_SHADOW_INIT_LENGTH_BLOCKS "filter.shadow_initial:length_blocks" +#define AEC_FILTER_SHADOW_INIT_LENGTH_BLOCKS \ + "filter.shadow_initial:length_blocks" #define AEC_FILTER_SHADOW_INIT_LENGTH_BLOCKS_VALUE 12 #define AEC_FILTER_SHADOW_INIT_RATE "filter.shadow_initial:rate" #define AEC_FILTER_SHADOW_INIT_RATE_VALUE 0.9f #define AEC_FILTER_SHADOW_INIT_NOISE_GATE "filter.shadow_initial:noise_gate" #define AEC_FILTER_SHADOW_INIT_NOISE_GATE_VALUE 20075344.f -#define AEC_FILTER_CONFIG_CHANGE_DURATION_BLOCKS "filter:config_change_duration_blocks" + +#define AEC_FILTER_CONFIG_CHANGE_DURATION_BLOCKS \ + "filter:config_change_duration_blocks" #define AEC_FILTER_CONFIG_CHANGE_DURATION_BLOCKS_VALUE 250 +#define AEC_FILTER_INITIAL_STATE_SECONDS "filter:initial_state_seconds" +#define AEC_FILTER_INITIAL_STATE_SECONDS_VALUE 2.5f +#define AEC_FILTER_CONSERVATIVE_INITIAL_PHASE \ + "filter:conservative_initial_phase" +#define AEC_FILTER_CONSERVATIVE_INITIAL_PHASE_VALUE 0 +#define AEC_FILTER_ENABLE_SHADOW_FILTER_OUTPUT_USAGE \ + "filter:enable_shadow_filter_output_usage" +#define AEC_FILTER_ENABLE_SHADOW_FILTER_OUTPUT_USAGE_VALUE 1 // Erle #define AEC_ERLE_MIN "erle:min" @@ -76,6 +92,8 @@ #define AEC_ERLE_MAX_L_VALUE 4.f #define AEC_ERLE_MAX_H "erle:max_h" #define AEC_ERLE_MAX_H_VALUE 1.5f +#define AEC_ERLE_ONSET_DETECTION "erle:onset_detection" +#define AEC_ERLE_ONSET_DETECTION_VALUE 1 // EpStrength #define AEC_EP_STRENGTH_LF "ep_strength:lf" @@ -86,12 +104,13 @@ #define AEC_EP_STRENGTH_HF_VALUE 1.f #define AEC_EP_STRENGTH_DEFAULT_LEN "ep_strength:default_len" #define AEC_EP_STRENGTH_DEFAULT_LEN_VALUE 0.88f -#define AEC_EP_STRENGTH_REVERB_BASED_ON_RENDER "ep_strength:reverb_based_on_render" +#define AEC_EP_STRENGTH_REVERB_BASED_ON_RENDER \ + "ep_strength:reverb_based_on_render" #define AEC_EP_STRENGTH_REVERB_BASED_ON_RENDER_VALUE 1 -#define AEC_EP_STRENGTH_BOUNDED_ERL "ep_strength:bounded_erl" -#define AEC_EP_STRENGTH_BOUNDED_ERL_VALUE 0 #define AEC_EP_STRENGTH_ECHO_CAN_SATURATE "ep_strength:echo_can_saturate" #define AEC_EP_STRENGTH_ECHO_CAN_SATURATE_VALUE 1 +#define AEC_EP_STRENGTH_BOUNDED_ERL "ep_strength:bounded_erl" +#define AEC_EP_STRENGTH_BOUNDED_ERL_VALUE 0 // Gain mask #define AEC_GAIN_MASK_M0 "gain_mask:m0" @@ -122,26 +141,33 @@ #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_VALUE 0.9f #define AEC_GAIN_MASK_TEMPORAL_MASKING_HF "gain_mask:temporal_masking_hf" #define AEC_GAIN_MASK_TEMPORAL_MASKING_HF_VALUE 0.6f -#define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_BANDS "gain_mask:temporal_masking_lf_bands" +#define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_BANDS \ + "gain_mask:temporal_masking_lf_bands" #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_BANDS_VALUE 3 #define AEC_ECHO_AUDIBILITY_LOW_RENDER_LIMIT "echo_audibility:low_render_limit" #define AEC_ECHO_AUDIBILITY_LOW_RENDER_LIMIT_VALUE 4 * 64.f -#define AEC_ECHO_AUDIBILITY_NORMAL_RENDER_LIMIT "echo_audibility:normal_render_limit" +#define AEC_ECHO_AUDIBILITY_NORMAL_RENDER_LIMIT \ + "echo_audibility:normal_render_limit" #define AEC_ECHO_AUDIBILITY_NORMAL_RENDER_LIMIT_VALUE 64.f #define AEC_ECHO_AUDIBILITY_FLOOR_POWER "echo_audibility:floor_power" #define AEC_ECHO_AUDIBILITY_FLOOR_POWER_VALUE 2 * 64.f -#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_LF "echo_audibility:audibility_threshold_lf" +#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_LF \ + "echo_audibility:audibility_threshold_lf" #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_LF_VALUE 10 -#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_MF "echo_audibility:audibility_threshold_mf" +#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_MF \ + "echo_audibility:audibility_threshold_mf" #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_MF_VALUE 10 -#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_HF "echo_audibility:audibility_threshold_hf" +#define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_HF \ + "echo_audibility:audibility_threshold_hf" #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_HF_VALUE 10 -#define AEC_ECHO_AUDIBILITY_USE_STATIONARY_PROPERTIES "echo_audibility:use_stationary_properties" +#define AEC_ECHO_AUDIBILITY_USE_STATIONARY_PROPERTIES \ + "echo_audibility:use_stationary_properties" #define AEC_ECHO_AUDIBILITY_USE_STATIONARY_PROPERTIES_VALUE 1 // Rendering levels -#define AEC_RENDER_LEVELS_ACTIVE_RENDER_LIMIT "render_levels:active_render_limit" +#define AEC_RENDER_LEVELS_ACTIVE_RENDER_LIMIT \ + "render_levels:active_render_limit" #define AEC_RENDER_LEVELS_ACTIVE_RENDER_LIMIT_VALUE 100.f #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT \ "render_levels:poor_excitation_render_limit" @@ -150,89 +176,20 @@ "render_levels:poor_excitation_render_limit_ds8" #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT_DS8_VALUE 20.f -// GainUpdates -#define AEC_GAIN_UPDATES_LOW_NOISE_MAX_INC "gain_updates.low_noise:max_inc" -#define AEC_GAIN_UPDATES_LOW_NOISE_MAX_INC_VALUE 2.f -#define AEC_GAIN_UPDATES_LOW_NOISE_MAX_DEC "gain_updates.low_noise:max_dec" -#define AEC_GAIN_UPDATES_LOW_NOISE_MAX_DEC_VALUE 2.f -#define AEC_GAIN_UPDATES_LOW_NOISE_RATE_INC "gain_updates.low_noise:rate_inc" -#define AEC_GAIN_UPDATES_LOW_NOISE_RATE_INC_VALUE 1.4f -#define AEC_GAIN_UPDATES_LOW_NOISE_RATE_DEC "gain_updates.low_noise:rate_dec" -#define AEC_GAIN_UPDATES_LOW_NOISE_RATE_DEC_VALUE 1.4f -#define AEC_GAIN_UPDATES_LOW_NOISE_MIN_INC "gain_updates.low_noise:min_inc" -#define AEC_GAIN_UPDATES_LOW_NOISE_MIN_INC_VALUE 1.1f -#define AEC_GAIN_UPDATES_LOW_NOISE_MIN_DEC "gain_updates.low_noise:min_dec" -#define AEC_GAIN_UPDATES_LOW_NOISE_MIN_DEC_VALUE 1.1f - -#define AEC_GAIN_UPDATES_INITIAL_MAX_INC "gain_updates.initial:max_inc" -#define AEC_GAIN_UPDATES_INITIAL_MAX_INC_VALUE 2.f -#define AEC_GAIN_UPDATES_INITIAL_MAX_DEC "gain_updates.initial:max_dec" -#define AEC_GAIN_UPDATES_INITIAL_MAX_DEC_VALUE 2.f -#define AEC_GAIN_UPDATES_INITIAL_RATE_INC "gain_updates.initial:rate_inc" -#define AEC_GAIN_UPDATES_INITIAL_RATE_INC_VALUE 1.5f -#define AEC_GAIN_UPDATES_INITIAL_RATE_DEC "gain_updates.initial:rate_dec" -#define AEC_GAIN_UPDATES_INITIAL_RATE_DEC_VALUE 1.5f -#define AEC_GAIN_UPDATES_INITIAL_MIN_INC "gain_updates.initial:min_inc" -#define AEC_GAIN_UPDATES_INITIAL_MIN_INC_VALUE 1.2f -#define AEC_GAIN_UPDATES_INITIAL_MIN_DEC "gain_updates.initial:min_dec" -#define AEC_GAIN_UPDATES_INITIAL_MIN_DEC_VALUE 1.2f - -#define AEC_GAIN_UPDATES_NORMAL_MAX_INC "gain_updates.normal:max_inc" -#define AEC_GAIN_UPDATES_NORMAL_MAX_INC_VALUE 2.f -#define AEC_GAIN_UPDATES_NORMAL_MAX_DEC "gain_updates.normal:max_dec" -#define AEC_GAIN_UPDATES_NORMAL_MAX_DEC_VALUE 2.f -#define AEC_GAIN_UPDATES_NORMAL_RATE_INC "gain_updates.normal:rate_inc" -#define AEC_GAIN_UPDATES_NORMAL_RATE_INC_VALUE 1.5f -#define AEC_GAIN_UPDATES_NORMAL_RATE_DEC "gain_updates.normal:rate_dec" -#define AEC_GAIN_UPDATES_NORMAL_RATE_DEC_VALUE 1.5f -#define AEC_GAIN_UPDATES_NORMAL_MIN_INC "gain_updates.normal:min_inc" -#define AEC_GAIN_UPDATES_NORMAL_MIN_INC_VALUE 1.2f -#define AEC_GAIN_UPDATES_NORMAL_MIN_DEC "gain_updates.normal:min_dec" -#define AEC_GAIN_UPDATES_NORMAL_MIN_DEC_VALUE 1.2f - -#define AEC_GAIN_UPDATES_SATURATION_MAX_INC "gain_updates.saturation:max_inc" -#define AEC_GAIN_UPDATES_SATURATION_MAX_INC_VALUE 1.2f -#define AEC_GAIN_UPDATES_SATURATION_MAX_DEC "gain_updates.saturation:max_dec" -#define AEC_GAIN_UPDATES_SATURATION_MAX_DEC_VALUE 1.2f -#define AEC_GAIN_UPDATES_SATURATION_RATE_INC "gain_updates.saturation:rate_inc" -#define AEC_GAIN_UPDATES_SATURATION_RATE_INC_VALUE 1.5f -#define AEC_GAIN_UPDATES_SATURATION_RATE_DEC "gain_updates.saturation:rate_dec" -#define AEC_GAIN_UPDATES_SATURATION_RATE_DEC_VALUE 1.5f -#define AEC_GAIN_UPDATES_SATURATION_MIN_INC "gain_updates.saturation:min_inc" -#define AEC_GAIN_UPDATES_SATURATION_MIN_INC_VALUE 1.f -#define AEC_GAIN_UPDATES_SATURATION_MIN_DEC "gain_updates.saturation:min_dec" -#define AEC_GAIN_UPDATES_SATURATION_MIN_DEC_VALUE 1.f - -#define AEC_GAIN_UPDATES_NONLINEAR_MAX_INC "gain_updates.nonlinear:max_inc" -#define AEC_GAIN_UPDATES_NONLINEAR_MAX_INC_VALUE 1.5f -#define AEC_GAIN_UPDATES_NONLINEAR_MAX_DEC "gain_updates.nonlinear:max_dec" -#define AEC_GAIN_UPDATES_NONLINEAR_MAX_DEC_VALUE 1.5f -#define AEC_GAIN_UPDATES_NONLINEAR_RATE_INC "gain_updates.nonlinear:rate_inc" -#define AEC_GAIN_UPDATES_NONLINEAR_RATE_INC_VALUE 1.2f -#define AEC_GAIN_UPDATES_NONLINEAR_RATE_DEC "gain_updates.nonlinear:rate_dec" -#define AEC_GAIN_UPDATES_NONLINEAR_RATE_DEC_VALUE 1.2f -#define AEC_GAIN_UPDATES_NONLINEAR_MIN_INC "gain_updates.nonlinear:min_inc" -#define AEC_GAIN_UPDATES_NONLINEAR_MIN_INC_VALUE 1.1f -#define AEC_GAIN_UPDATES_NONLINEAR_MIN_DEC "gain_updates.nonlinear:min_dec" -#define AEC_GAIN_UPDATES_NONLINEAR_MIN_DEC_VALUE 1.1f - -#define AEC_GAIN_UPDATES_MAX_INC_FACTOR "gain_updates:max_inc_factor" -#define AEC_GAIN_UPDATES_MAX_INC_FACTOR_VALUE 2.0f -#define AEC_GAIN_UPDATES_MAX_DEC_FACTOR_LF "gain_updates:max_dec_factor_lf" -#define AEC_GAIN_UPDATES_MAX_DEC_FACTOR_LF_VALUE 0.25f -#define AEC_GAIN_UPDATES_FLOOR_FIRST_INCREASE "gain_updates:floor_first_increase" -#define AEC_GAIN_UPDATES_FLOOR_FIRST_INCREASE_VALUE 0.00001f - // Echo removal controls #define AEC_ECHO_REMOVAL_CTL_INITIAL_GAIN "echo_removal_control:initial_gain" #define AEC_ECHO_REMOVAL_CTL_INITIAL_GAIN_VALUE 0.0f -#define AEC_ECHO_REMOVAL_CTL_FIRST_NON_ZERO_GAIN "echo_removal_control:first_non_zero_gain" +#define AEC_ECHO_REMOVAL_CTL_FIRST_NON_ZERO_GAIN \ + "echo_removal_control:first_non_zero_gain" #define AEC_ECHO_REMOVAL_CTL_FIRST_NON_ZERO_GAIN_VALUE 0.001f -#define AEC_ECHO_REMOVAL_CTL_NON_ZERO_GAIN_BLOCKS "echo_removal_control:non_zero_gain_blocks" +#define AEC_ECHO_REMOVAL_CTL_NON_ZERO_GAIN_BLOCKS \ + "echo_removal_control:non_zero_gain_blocks" #define AEC_ECHO_REMOVAL_CTL_NON_ZERO_GAIN_BLOCKS_VALUE 187 -#define AEC_ECHO_REMOVAL_CTL_FULL_GAIN_BLOCKS "echo_removal_control:full_gain_blocks" +#define AEC_ECHO_REMOVAL_CTL_FULL_GAIN_BLOCKS \ + "echo_removal_control:full_gain_blocks" #define AEC_ECHO_REMOVAL_CTL_FULL_GAIN_BLOCKS_VALUE 312 -#define AEC_ECHO_REMOVAL_CTL_HAS_CLOCK_DRIFT "echo_removal_control:has_clock_drift" +#define AEC_ECHO_REMOVAL_CTL_HAS_CLOCK_DRIFT \ + "echo_removal_control:has_clock_drift" #define AEC_ECHO_REMOVAL_CTL_HAS_CLOCK_DRIFT_VALUE 0 #define AEC_ECHO_REMOVAL_CTL_LINEAR_AND_STABLE_ECHO_PATH \ "echo_removal_control:linear_and_stable_echo_path" @@ -249,42 +206,113 @@ #define AEC_ECHO_MODEL_NOISE_GATE_POWER_VALUE 27509.42f #define AEC_ECHO_MODEL_NOISE_GATE_SLOPE "echo_model:noise_gate_slope" #define AEC_ECHO_MODEL_NOISE_GATE_SLOPE_VALUE 0.3f -#define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE "echo_model:render_pre_window_size" +#define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE \ + "echo_model:render_pre_window_size" #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_VALUE 1 -#define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE "echo_model:render_post_window_size" +#define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE \ + "echo_model:render_post_window_size" #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_VALUE 1 -#define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_INIT "echo_model:render_pre_window_size_init" +#define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_INIT \ + "echo_model:render_pre_window_size_init" #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_INIT_VALUE 10 -#define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_INIT "echo_model:render_post_window_size_init" +#define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_INIT \ + "echo_model:render_post_window_size_init" #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_INIT_VALUE 10 #define AEC_ECHO_MODEL_NONLINEAR_HOLD "echo_model:nonlinear_hold" #define AEC_ECHO_MODEL_NONLINEAR_HOLD_VALUE 1 #define AEC_ECHO_MODEL_NONLINEAR_RELEASE "echo_model:nonlinear_release" #define AEC_ECHO_MODEL_NONLINEAR_RELEASE_VALUE 0.001f -#define AEC_SUPPRESSOR_BANDS_WITH_RELIABLE_COHERENCE "suppressor:bands_with_reliable_coherence" -#define AEC_SUPPRESSOR_BANDS_WITH_RELIABLE_COHERENCE_VALUE 5 -#define AEC_SUPPRESSOR_NEAREND_AVERAGE_BLOCKS "suppressor:nearend_average_blocks" +#define AEC_SUPPRESSOR_NEAREND_AVERAGE_BLOCKS \ + "suppressor:nearend_average_blocks" #define AEC_SUPPRESSOR_NEAREND_AVERAGE_BLOCKS_VALUE 4 -#define AEC_SUPPRESSOR_MASK_LF_ENR_TRANSPARENT "suppressor:mask_lf_enr_transparent" -#define AEC_SUPPRESSOR_MASK_LF_ENR_TRANSPARENT_VALUE .2f -#define AEC_SUPPRESSOR_MASK_LF_ENR_SUPPRESS "suppressor:mask_lf_enr_suppress" -#define AEC_SUPPRESSOR_MASK_LF_ENR_SUPPRESS_VALUE .3f -#define AEC_SUPPRESSOR_MASK_LF_EMR_TRANSPARENT "suppressor:mask_lf_emr_transparent" -#define AEC_SUPPRESSOR_MASK_LF_EMR_TRANSPARENT_VALUE .3f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_TRANSPARENT \ + "suppressor.normal_tuning:mask_lf_enr_transparent" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_TRANSPARENT_VALUE .2f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_SUPPRESS \ + "suppressor.normal_tuning:mask_lf_enr_suppress" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_SUPPRESS_VALUE .3f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_EMR_TRANSPARENT \ + "suppressor.normal_tuning:mask_lf_emr_transparent" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_EMR_TRANSPARENT_VALUE .3f + +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_TRANSPARENT \ + "suppressor.normal_tuning:mask_hf_enr_transparent" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_TRANSPARENT_VALUE .07f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_SUPPRESS \ + "suppressor.normal_tuning:mask_hf_enr_suppress" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_SUPPRESS_VALUE .1f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_EMR_TRANSPARENT \ + "suppressor.normal_tuning:mask_hf_emr_transparent" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_EMR_TRANSPARENT_VALUE .3f + +#define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_INC_FACTOR \ + "suppressor.normal_tuning:max_inc_factor" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_INC_FACTOR_VALUE 2.0f +#define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_DEC_FACTOR_LF \ + "suppressor.normal_tuning:max_dec_factor_lf" +#define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_DEC_FACTOR_LF_VALUE 0.25f + +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_TRANSPARENT \ + "suppressor.nearend_tuning:mask_lf_enr_transparent" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_TRANSPARENT_VALUE .2f +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_SUPPRESS \ + "suppressor.nearend_tuning:mask_lf_enr_suppress" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_SUPPRESS_VALUE .3f +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_EMR_TRANSPARENT \ + "suppressor.nearend_tuning:mask_lf_emr_transparent" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_EMR_TRANSPARENT_VALUE .3f + +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_TRANSPARENT \ + "suppressor.nearend_tuning:mask_hf_enr_transparent" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_TRANSPARENT_VALUE .07f +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_SUPPRESS \ + "suppressor.nearend_tuning:mask_hf_enr_suppress" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_SUPPRESS_VALUE .1f +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_EMR_TRANSPARENT \ + "suppressor.nearend_tuning:mask_hf_emr_transparent" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_EMR_TRANSPARENT_VALUE .3f + +#define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_INC_FACTOR \ + "suppressor.nearend_tuning:max_inc_factor" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_INC_FACTOR_VALUE 2.0f +#define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_DEC_FACTOR_LF \ + "suppressor.nearend_tuning:max_dec_factor_lf" +#define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_DEC_FACTOR_LF_VALUE 0.25f + +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_ENR_THRESHOLD \ + "suppressor.dominant_nearend_detection:enr_threshold" +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_ENR_THRESHOLD_VALUE 10.f +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_SNR_THRESHOLD \ + "suppressor.dominant_nearend_detection:snr_threshold" +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_SNR_THRESHOLD_VALUE 10.f +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_HOLD_DURATION \ + "suppressor.dominant_nearend_detection:hold_duration" +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_HOLD_DURATION_VALUE 25 +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_TRIGGER_THRESHOLD \ + "suppressor.dominant_nearend_detection:trigger_threshold" +#define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_TRIGGER_THRESHOLD_VALUE 15 + +#define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_ENR_THRESHOLD \ + "suppressor.high_bands_suppression:enr_threshold" +#define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_ENR_THRESHOLD_VALUE 1.f +#define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_MAX_GAIN_DURING_ECHO \ + "suppressor.high_bands_suppression:max_gain_during_echo" +#define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_MAX_GAIN_DURING_ECHO_VALUE 1.f -#define AEC_SUPPRESSOR_MASK_HF_ENR_TRANSPARENT "suppressor:mask_hf_enr_transparent" -#define AEC_SUPPRESSOR_MASK_HF_ENR_TRANSPARENT_VALUE .07f -#define AEC_SUPPRESSOR_MASK_HF_ENR_SUPPRESS "suppressor:mask_hf_enr_suppress" -#define AEC_SUPPRESSOR_MASK_HF_ENR_SUPPRESS_VALUE .1f -#define AEC_SUPPRESSOR_MASK_HF_EMR_TRANSPARENT "suppressor:mask_hf_emr_transparent" -#define AEC_SUPPRESSOR_MASK_HF_EMR_TRANSPARENT_VALUE .3f +#define AEC_SUPPRESSOR_FLOOR_FIRST_INCREASE "suppressor:floor_first_increase" +#define AEC_SUPPRESSOR_FLOOR_FIRST_INCREASE_VALUE 0.00001f +#define AEC_SUPPRESSOR_ENFORCE_TRANSPARENT "suppressor:enforce_transparent" +#define AEC_SUPPRESSOR_ENFORCE_TRANSPARENT_VALUE 0 +#define AEC_SUPPRESSOR_ENFORCE_EMPTY_HIGHER_BANDS \ + "suppressor:enforce_empty_higher_bands" +#define AEC_SUPPRESSOR_ENFORCE_EMPTY_HIGHER_BANDS_VALUE 0 -/* */ +/* Gets the aec config from given config directory. */ struct aec_config *aec_config_get(const char *device_config_dir); -/* */ +/* Prints the config content to syslog. */ void aec_config_dump(struct aec_config *config); #endif /* AEC_CONFIG_H_ */ |