webrtc/modules/audio_processing/aec3
Per Åhgren 9ad845d2ab Soften the AEC3 transparent mode to handle broken headsets
This CL softens the effect of the AEC3 transparent mode to also handle
headsets that leak low-level echoes in a nonlinear way.
This is handled by reintroducing the limit in the echo path gain for the
nonlinear mode. Due to recent improvements in echo suppressor behavior
this is now possible to do with a limited impact on the near-end speech.

Bug: webrtc:9246,chromium:840347
Change-Id: I0ca5157160d1884ba93b962323b56016756986d3
Reviewed-on: https://webrtc-review.googlesource.com/74703
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23145}
2018-05-07 13:52:08 +00:00
..
mock Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
adaptive_fir_filter.cc Corrected the counter for the filter constraint when the filter size changes 2018-04-24 09:02:34 +00:00
adaptive_fir_filter.h Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
adaptive_fir_filter_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
aec3_common.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
aec3_common.h Use the filter delay to use the proper render block in the AEC3 AecState 2018-01-10 15:53:02 +00:00
aec3_fft.cc Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec3_fft.h Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec3_fft_unittest.cc Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec_state.cc AEC3: Audility: Avoid the initialization of the noise estimator in pure zeroes signals at the render. 2018-05-02 10:19:46 +00:00
aec_state.h AEC3: Audibility improvements 2018-04-25 13:52:03 +00:00
aec_state_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
block_framer.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_framer.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_framer_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor.cc Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
block_processor.h Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
block_processor_metrics.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor_metrics.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor_metrics_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
block_processor_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
BUILD.gn AEC3: Transparency improvements to the suppressor 2018-05-04 11:02:14 +00:00
cascaded_biquad_filter.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cascaded_biquad_filter.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cascaded_biquad_filter_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
coherence_gain.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
coherence_gain.h Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
comfort_noise_generator.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
comfort_noise_generator.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
comfort_noise_generator_unittest.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
decimator.cc AEC3 delay estimator refactoring and introducing ability to customize 2017-11-17 17:51:37 +00:00
decimator.h AEC3 delay estimator refactoring and introducing ability to customize 2017-11-17 17:51:37 +00:00
decimator_unittest.cc AEC3 delay estimator refactoring and introducing ability to customize 2017-11-17 17:51:37 +00:00
delay_estimate.h Inform the AEC3 echo remover about the status of the estimated delay 2018-02-21 17:08:36 +00:00
downsampled_render_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
downsampled_render_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
echo_audibility.cc AEC3: Audility: Avoid the initialization of the noise estimator in pure zeroes signals at the render. 2018-05-02 10:19:46 +00:00
echo_audibility.h AEC3: Audility: Avoid the initialization of the noise estimator in pure zeroes signals at the render. 2018-05-02 10:19:46 +00:00
echo_canceller3.cc Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
echo_canceller3.h Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
echo_canceller3_unittest.cc Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
echo_path_delay_estimator.cc Improving the speed of the delay estimator in AEC3 2018-03-15 16:38:07 +00:00
echo_path_delay_estimator.h Improving the speed of the delay estimator in AEC3 2018-03-15 16:38:07 +00:00
echo_path_delay_estimator_unittest.cc Improving the speed of the delay estimator in AEC3 2018-03-15 16:38:07 +00:00
echo_path_variability.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability_unittest.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_remover.cc Use windowed, data padded, FFTs when computing the AEC3 suppressor gain 2018-04-27 14:47:56 +00:00
echo_remover.h Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
echo_remover_metrics.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
echo_remover_metrics.h Added ERL and ERLE metrics to UMA. 2017-11-29 09:06:59 +00:00
echo_remover_metrics_unittest.cc Correct the FFT windowing when computing the AEC NLP gain 2018-01-11 14:41:11 +00:00
echo_remover_unittest.cc Inform the AEC3 echo remover about the status of the estimated delay 2018-02-21 17:08:36 +00:00
erl_estimator.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
erl_estimator.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
erl_estimator_unittest.cc Compute ERL over all frequency bins in AEC3. 2017-11-16 14:40:33 +00:00
erle_estimator.cc Improves in the ERLE estimation for AEC3 2018-03-22 14:34:04 +00:00
erle_estimator.h Improves in the ERLE estimation for AEC3 2018-03-22 14:34:04 +00:00
erle_estimator_unittest.cc Improves in the ERLE estimation for AEC3 2018-03-22 14:34:04 +00:00
fft_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
fft_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
fft_data.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
fft_data_unittest.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
filter_analyzer.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
filter_analyzer.h Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
frame_blocker.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_blocker.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_blocker_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
main_filter_update_gain.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
main_filter_update_gain.h Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
main_filter_update_gain_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
matched_filter.cc Revert "Making the delay estimator more robust to noisy nearends and low echoes" 2018-04-26 16:32:07 +00:00
matched_filter.h Add missing includes checks.h/array_view.h 2018-04-10 10:33:34 +00:00
matched_filter_lag_aggregator.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
matched_filter_lag_aggregator.h Robustify the faster alignment in AEC3 to avoid resets 2018-01-25 09:57:31 +00:00
matched_filter_lag_aggregator_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
matched_filter_unittest.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
matrix_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
matrix_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
render_buffer.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
render_buffer.h AEC3: Audility: Avoid the initialization of the noise estimator in pure zeroes signals at the render. 2018-05-02 10:19:46 +00:00
render_buffer_unittest.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
render_delay_buffer.cc Correcting the use of externally reported delay in AEC3 2018-05-07 13:49:28 +00:00
render_delay_buffer.h Allow AEC3 to use any externally reported audio buffer delay in AEC3 2018-04-18 09:05:54 +00:00
render_delay_buffer_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
render_delay_controller.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
render_delay_controller.h Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
render_delay_controller_metrics.cc Adding reporting and logging for events of call API skew shifts 2018-02-26 23:57:23 +00:00
render_delay_controller_metrics.h Adding reporting and logging for events of call API skew shifts 2018-02-26 23:57:23 +00:00
render_delay_controller_metrics_unittest.cc Adding reporting and logging for events of call API skew shifts 2018-02-26 23:57:23 +00:00
render_delay_controller_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
render_signal_analyzer.cc Corrected the detection of narrowband render signals 2018-03-15 08:50:56 +00:00
render_signal_analyzer.h Corrected the detection of narrowband render signals 2018-03-15 08:50:56 +00:00
render_signal_analyzer_unittest.cc Corrected the detection of narrowband render signals 2018-03-15 08:50:56 +00:00
residual_echo_estimator.cc Soften the AEC3 transparent mode to handle broken headsets 2018-05-07 13:52:08 +00:00
residual_echo_estimator.h Soften the AEC3 transparent mode to handle broken headsets 2018-05-07 13:52:08 +00:00
residual_echo_estimator_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
shadow_filter_update_gain.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
shadow_filter_update_gain.h Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
shadow_filter_update_gain_unittest.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
skew_estimator.cc Moved and simplifed the AEC3 API call skew estimator and added tests 2018-02-22 00:52:10 +00:00
skew_estimator.h Moved and simplifed the AEC3 API call skew estimator and added tests 2018-02-22 00:52:10 +00:00
skew_estimator_unittest.cc Moved and simplifed the AEC3 API call skew estimator and added tests 2018-02-22 00:52:10 +00:00
stationarity_estimator.cc AEC3: Removing the need of a buffer for the stationarity estimator of the render signal. 2018-04-30 09:03:19 +00:00
stationarity_estimator.h AEC3: Removing the need of a buffer for the stationarity estimator of the render signal. 2018-04-30 09:03:19 +00:00
subtractor.cc Use windowed, data padded, FFTs when computing the AEC3 suppressor gain 2018-04-27 14:47:56 +00:00
subtractor.h Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
subtractor_output.h Use windowed, data padded, FFTs when computing the AEC3 suppressor gain 2018-04-27 14:47:56 +00:00
subtractor_unittest.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
suppression_filter.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_filter.h Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_filter_unittest.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
suppression_gain.cc AEC3: Transparency improvements to the suppressor 2018-05-04 11:02:14 +00:00
suppression_gain.h AEC3: Transparency improvements to the suppressor 2018-05-04 11:02:14 +00:00
suppression_gain_limiter.cc Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
suppression_gain_limiter.h Robustification of the echo suppression behavior during headset usage. 2018-03-22 00:23:23 +00:00
suppression_gain_unittest.cc Reuse the AEC2 coherence-based gain for the lower bands in AEC3. 2018-04-24 11:24:44 +00:00
vector_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
vector_buffer.h Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
vector_math.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
vector_math_unittest.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00