A wrapper around PulseAudio's repackaging of WebRTC's AudioProcessing module.
webrtc-audio-processing can remove echo from an audio input stream in the situation where a speaker is feeding back into a microphone, as well as noise-removal, auto-gain-control, voice-activity-detection, and more!
examples/simple.rs for an example of how to use this crate.
webrtc-audio-procesingfrom the included C++ code
deserializetraits for Serde use
By default the build will attempt to dynamically link with the library installed via your OS's package manager.
You can specify an include path yourself by setting the environment variable
sudo apt install webrtc-audio-processing-dev # Ubuntu/Debian sudo pacman -S webrtc-audio-processing # Arch
Build from source
The webrtc source code is included as a git submodule. Be sure to clone this repo with the
--recursive flag, or pull the submodule with
git submodule update --init.
Building from source and static linking can be enabled with the
bundled feature flag. You need the following tools to build from source:
brew install automake,
brew install autoconf)
brew install libtool)
brew install pkg-config)
cargo login cd ./webrtc-audio-processing-sys cargo publish --features derive_serde --features bundled cd ../ cargo publish --features derive_serde --features bundled
We are using semantic versioning. When incrementing a version, please do so in a separate commit, and also mark it with a Github tag.