From dea5721efb22f9bc6225b83f9be3c4d68df5cdc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85hgren?= Date: Wed, 14 Apr 2021 09:19:37 +0000 Subject: [PATCH] Adding g3doc for AudioProcessingModule (APM) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:12569 Change-Id: I8fa896a5afa9791ad6d8c2b5011d1e75ca068df4 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215141 Commit-Queue: Per Ã…hgren Reviewed-by: Artem Titov Cr-Commit-Position: refs/heads/master@{#33726} --- g3doc/sitemap.md | 2 ++ .../g3doc/audio_processing_module.md | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 modules/audio_processing/g3doc/audio_processing_module.md diff --git a/g3doc/sitemap.md b/g3doc/sitemap.md index e58bf9d7ce..5e0a9a8f77 100644 --- a/g3doc/sitemap.md +++ b/g3doc/sitemap.md @@ -17,6 +17,8 @@ * AudioEngine * [ADM](/modules/audio_device/g3doc/audio_device_module.md) * [Audio Coding](/modules/audio_coding/g3doc/index.md) + * AudioProcessingModule + * [APM](/modules/audio_processing/g3doc/audio_processing_module.md) * Video * DataChannel * PeerConnection diff --git a/modules/audio_processing/g3doc/audio_processing_module.md b/modules/audio_processing/g3doc/audio_processing_module.md new file mode 100644 index 0000000000..bb80dc9882 --- /dev/null +++ b/modules/audio_processing/g3doc/audio_processing_module.md @@ -0,0 +1,26 @@ +# Audio Processing Module (APM) + + + + +## 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/+/master:third_party/webrtc/modules/audio_processing/include]. +APM is created using the [`AudioProcessingBuilder`][https://source.chromium.org/chromium/chromium/src/+/master: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.