WebRTC Audio Processing Module (APM)
The industry standard for real-time communication. You can implement these as a "bundle" or pull individual C++ classes for a modular setup.
AEC / AEC3 (Acoustic Echo Cancellation): Removes far-end echo from the microphone signal. AEC3 is the newer, more advanced version.
AGC / AGC2 (Automatic Gain Control): Normalizes volume levels. AGC2 provides more sophisticated digital gain handling.
NS (Noise Suppression): A traditional DSP-based suppressor for stationary background noise.
VAD (Voice Activity Detection): Detects if a human is speaking; useful for triggering more complex models only when needed.
High-Pass Filter: Suppresses unwanted low-frequency signals like rumble or power-line hum.
CNG (Comfort Noise Generator): Replaces complete silence with a natural noise floor to avoid the "dead air" feeling.
How to get them: Part of the WebRTC source code (BSD-3-Clause). Standalone versions are available via the webrtc-audio-processing project on GitLab or PulseAudio mirrors.
WebRTC Audio Processing Module (APM)
The industry standard for real-time communication. You can implement these as a "bundle" or pull individual C++ classes for a modular setup.