webrtc/modules/audio_processing
Christian Schuldt f4e99dba41 Update AEC3 echo tail estimation.
Note: estimation is turned OFF if config_.ep_strength.default_len
is set >= 0 (in this case config_.ep_strength.default_len defines a
constant echo decay factor), and hence turned ON if < 0. In case the
echo tail estimation is turned ON, -config_.ep_strength.default_len is
the starting point for the estimator.

The estimation is done in two passes; first we go through all "sections"
(corresponding to chunks of length kFftLengthBy2) of the filter impulse
response to determine which sections correspond to a "stable" decay",
and then the second pass we go through each stable decay section and
estimate the decay. The actual decay estimation is based on linear
regression of the log magnitude of the squared impulse response.
A bunch of sanity checks are also performed continuously to avoid
estimation error during e.g., filter adaptation.

Bug: webrtc:8924
Change-Id: I686ce3f3e8b6b472348f8d6e01fb44c31e25145d
Reviewed-on: https://webrtc-review.googlesource.com/48440
Commit-Queue: Christian Schuldt <cschuldt@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22247}
2018-03-01 11:21:12 +00:00
..
aec NaNs in Echo Canceller. 2018-01-25 13:30:04 +00:00
aec3 Update AEC3 echo tail estimation. 2018-03-01 11:21:12 +00:00
aec_dump Add FixedGainController and move GainController2 in APM. 2018-02-16 10:56:38 +00:00
aecm Use of unititialized value in AECM. 2018-01-25 15:09:14 +00:00
agc Streamline error handling and logging in the audio processing module 2018-02-15 15:06:26 +00:00
agc2 Reland of "Choose between APM-AGC-Limiter and Apm-AGC2-fixed-gain_controller." 2018-02-27 15:47:39 +00:00
beamformer Fix macro clash with _USE_MATH_DEFINES. 2017-12-13 09:39:20 +00:00
echo_detector Optional: Use nullopt and implicit construction in /modules/audio_processing 2017-11-20 10:19:30 +00:00
include Update AEC3 echo tail estimation. 2018-03-01 11:21:12 +00:00
intelligibility Move some numeric utility code from rtc_base/ to rtc_base/numerics/ 2017-11-22 11:21:47 +00:00
level_controller Add decibel conversion functions to //common_audio:common_audio 2018-02-16 10:46:48 +00:00
logging Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
ns Division by zero in NoiseSuppression. 2018-01-24 14:26:28 +00:00
test Move EchoCanceller3Factory to api/auido 2018-02-27 14:09:59 +00:00
transient Streamline error handling and logging in the audio processing module 2018-02-15 15:06:26 +00:00
utility Fix typo in the include path of ooura_fft.h 2018-01-11 07:57:40 +00:00
vad Stop using public_deps in common_audio. 2018-02-06 09:44:20 +00:00
audio_buffer.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
audio_buffer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
audio_buffer_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
audio_frame_view_unittest.cc Comments in FixedDigitalLevelEstimator. 2018-02-16 14:17:08 +00:00
audio_processing_impl.cc Add FixedGainController and move GainController2 in APM. 2018-02-16 10:56:38 +00:00
audio_processing_impl.h Add offline logging of the system delay for AEC3 2018-02-14 12:21:03 +00:00
audio_processing_impl_locking_unittest.cc Use AudioProcessingBuilder everywhere AudioProcessing is created. 2018-01-09 13:45:20 +00:00
audio_processing_impl_unittest.cc Change return types of refcount methods. 2017-10-20 07:46:03 +00:00
audio_processing_performance_unittest.cc Use AudioProcessingBuilder everywhere AudioProcessing is created. 2018-01-09 13:45:20 +00:00
audio_processing_unittest.cc AEC3 can only be activated by injection. 2018-01-31 14:11:19 +00:00
BUILD.gn Move EchoCanceller3Factory to api/auido 2018-02-27 14:09:59 +00:00
common.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
config_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
debug.proto Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
DEPS Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
echo_cancellation_bit_exact_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
echo_cancellation_impl.cc Enforcing a stream delay of 0 to be assumed in the AEC on Chrome OS 2017-12-22 15:42:13 +00:00
echo_cancellation_impl.h Enforcing a stream delay of 0 to be assumed in the AEC on Chrome OS 2017-12-22 15:42:13 +00:00
echo_cancellation_impl_unittest.cc Use AudioProcessingBuilder everywhere AudioProcessing is created. 2018-01-09 13:45:20 +00:00
echo_control_mobile_impl.cc Streamline error handling and logging in the audio processing module 2018-02-15 15:06:26 +00:00
echo_control_mobile_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
echo_control_mobile_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_control_for_experimental_agc.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_control_for_experimental_agc.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_control_impl.cc Optional: Use nullopt and implicit construction in /modules/audio_processing 2017-11-20 10:19:30 +00:00
gain_control_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_control_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_controller2.cc Add FixedGainController and move GainController2 in APM. 2018-02-16 10:56:38 +00:00
gain_controller2.h Add FixedGainController and move GainController2 in APM. 2018-02-16 10:56:38 +00:00
gain_controller2_unittest.cc Add FixedGainController and move GainController2 in APM. 2018-02-16 10:56:38 +00:00
level_estimator_impl.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
level_estimator_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
level_estimator_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
low_cut_filter.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
low_cut_filter.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
low_cut_filter_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
noise_suppression_impl.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
noise_suppression_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
noise_suppression_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
OWNERS Add gustaf to audio_processing OWNERS 2018-02-06 10:54:29 +00:00
render_queue_item_verifier.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
residual_echo_detector.cc Streamline error handling and logging in the audio processing module 2018-02-15 15:06:26 +00:00
residual_echo_detector.h Make the echo detector injectable. 2018-01-11 15:43:01 +00:00
residual_echo_detector_unittest.cc Make the echo detector injectable. 2018-01-11 15:43:01 +00:00
rms_level.cc Optional: Use nullopt and implicit construction in /modules/audio_processing 2017-11-20 10:19:30 +00:00
rms_level.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
rms_level_unittest.cc Move some more numeric utility code from rtc_base/ to rtc_base/numerics/ 2017-11-22 12:39:39 +00:00
splitting_filter.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
splitting_filter.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
splitting_filter_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
three_band_filter_bank.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
three_band_filter_bank.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
typing_detection.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
typing_detection.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
voice_detection_impl.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
voice_detection_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
voice_detection_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00