This reverts commit 3eceaf46695518f25bef43f155f82ed174827197. Reason for revert: Original change's description: > Migrate WebRTC documentation to new renderer > > Bug: b/258408932 > Change-Id: Ib96f39fe0c3912f9746bcc09d079097a145d6115 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290987 > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Commit-Queue: Artem Titov <titovartem@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#39205} Bug: b/258408932 Change-Id: I16cb4088bee3fc15c2bb88bd692c592b3a7db9fe No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291560 Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Artem Titov <titovartem@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39209}
1.3 KiB
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/+/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.