webrtc/modules/audio_processing
Gustaf Ullberg afef7a74a7 HMM based transparent mode classifier
This change introduces a new Hidden Markov Model based classifier for
AEC3's 'transparent mode'. Transparent mode is used with
headsets/headphones where the speaker signal does not leak into the
microphone signal.

The current classifier suffers from two problems:
1. It sometimes takes a long time to enter transparent mode.
2. Sometimes transparent mode is left (and it once again takes a long
time to re-enter).

Both problems have a severe effect on AEC transparency.

The new classifier enters transparent mode quicker and is less likely
to exit transparent mode when there is no echo. This improves the
audio experience when using headset/headphones.

Another (minor) benefit of this change is that when transparent mode
is disabled no classifier is run (or even created) saving some memory
and CPU cycles.

Bug: webrtc:10232
Change-Id: I509af0e22b59463aeaead53c78c35be1e97fe8c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/184500
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32182}
2020-09-24 08:25:50 +00:00
..
aec3 HMM based transparent mode classifier 2020-09-24 08:25:50 +00:00
aec_dump Reland "Add ability to state whether the APM output will be used" 2020-08-18 12:29:32 +00:00
aecm Reland "Merge cpu_features build targets into //system_wrappers." 2020-09-06 10:38:23 +00:00
agc Reland "Merge cpu_features build targets into //system_wrappers." 2020-09-06 10:38:23 +00:00
agc2 AGC2 saturation protector: extra margin added by level estimator 2020-09-23 11:33:37 +00:00
echo_detector Format almost everything. 2019-07-08 13:45:15 +00:00
include Remove AudioProcessing::SetExtraOptions. 2020-09-03 12:43:14 +00:00
logging Add floating point support for writing and reading wav files 2020-01-30 13:38:19 +00:00
ns Reland "Merge cpu_features build targets into //system_wrappers." 2020-09-06 10:38:23 +00:00
test Cleanup of the APM creation 2020-09-02 20:28:49 +00:00
transient Add unittests for APM with submodule creation disabled 2020-04-27 11:47:15 +00:00
utility Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
vad Merge OOURA BUILD.gn files. 2020-04-21 09:06:37 +00:00
audio_buffer.cc APM: Replace most usages of AudioFrame with a stream interface 2020-03-16 11:51:47 +00:00
audio_buffer.h APM: Replace most usages of AudioFrame with a stream interface 2020-03-16 11:51:47 +00:00
audio_buffer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
audio_frame_view_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
audio_processing_builder_impl.cc Cleanup of the APM creation 2020-09-02 20:28:49 +00:00
audio_processing_impl.cc Remove AudioProcessing::SetExtraOptions. 2020-09-03 12:43:14 +00:00
audio_processing_impl.h Remove AudioProcessing::SetExtraOptions. 2020-09-03 12:43:14 +00:00
audio_processing_impl_locking_unittest.cc Migrate modules/audio_coding, audio_mixer/ and audio_processing/ to webrtc::Mutex. 2020-07-07 14:35:58 +00:00
audio_processing_impl_unittest.cc Cleanup of the APM creation 2020-09-02 20:28:49 +00:00
audio_processing_performance_unittest.cc Removing call to deprecated SetExtraOptions method 2020-08-20 16:13:12 +00:00
audio_processing_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
BUILD.gn Reland "Merge cpu_features build targets into //system_wrappers." 2020-09-06 10:38:23 +00:00
common.h
config_unittest.cc
debug.proto Reland "Add ability to state whether the APM output will be used" 2020-08-18 12:29:32 +00:00
DEPS
echo_control_mobile_bit_exact_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_control_mobile_impl.cc Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
echo_control_mobile_impl.h Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
echo_control_mobile_unittest.cc Remove unused critical section includes. 2020-07-16 13:52:28 +00:00
gain_control_impl.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_impl.h Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_unittest.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_controller2.cc Concatenate string literals at compile time. 2020-01-14 14:47:48 +00:00
gain_controller2.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
gain_controller2_unittest.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
high_pass_filter.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
high_pass_filter.h Reduce for reallocations the pre-amplifier and high-pass filter 2020-01-03 14:10:21 +00:00
high_pass_filter_unittest.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
level_estimator.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator.h Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator_unittest.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
optionally_built_submodule_creators.cc Add unittests for APM with submodule creation disabled 2020-04-27 11:47:15 +00:00
optionally_built_submodule_creators.h Add unittests for APM with submodule creation disabled 2020-04-27 11:47:15 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
render_queue_item_verifier.h
residual_echo_detector.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
residual_echo_detector.h
residual_echo_detector_unittest.cc Make echo metrics optional 2020-04-29 14:29:27 +00:00
rms_level.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
rms_level.h Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +00:00
rms_level_unittest.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
splitting_filter.cc Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
three_band_filter_bank.cc Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
three_band_filter_bank.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
typing_detection.cc
typing_detection.h
voice_detection.cc APM: Localize/abstract the usage of AudioFrame 2020-03-17 13:55:41 +00:00
voice_detection.h Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00
voice_detection_unittest.cc Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00