diff options
Diffstat (limited to 'third_party/libwebrtc/modules/audio_processing/g3doc')
-rw-r--r-- | third_party/libwebrtc/modules/audio_processing/g3doc/audio_processing_module.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/third_party/libwebrtc/modules/audio_processing/g3doc/audio_processing_module.md b/third_party/libwebrtc/modules/audio_processing/g3doc/audio_processing_module.md new file mode 100644 index 0000000000..fc63b34dfe --- /dev/null +++ b/third_party/libwebrtc/modules/audio_processing/g3doc/audio_processing_module.md @@ -0,0 +1,26 @@ +# Audio Processing Module (APM) + +<?% config.freshness.owner = 'peah' %?> +<?% config.freshness.reviewed = '2021-04-13' %?> + +## Overview + +The APM is responsible for applying speech enhancements effects to the +microphone signal. These effects are required for VoIP calling and some +examples include echo cancellation (AEC), noise suppression (NS) and +automatic gain control (AGC). + +The API for APM resides in [`/modules/audio_processing/include`][https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/audio_processing/include]. +APM is created using the [`AudioProcessingBuilder`][https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/audio_processing/include/audio_processing.h] +builder that allows it to be customized and configured. + +Some specific aspects of APM include that: +* APM is fully thread-safe in that it can be accessed concurrently from + different threads. +* APM handles for any input sample rates < 384 kHz and achieves this by + automatic reconfiguration whenever a new sample format is observed. +* APM handles any number of microphone channels and loudspeaker channels, with + the same automatic reconfiguration as for the sample rates. + + +APM can either be used as part of the WebRTC native pipeline, or standalone. |