9 releases
0.4.0 | May 16, 2022 |
---|---|
0.3.3 | Aug 25, 2020 |
0.3.1 | Apr 22, 2020 |
0.2.0 | Jan 30, 2020 |
0.1.1 | Dec 9, 2019 |
#238 in Audio
41 downloads per month
2MB
41K
SLoC
webrtc-audio-processing
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!
Example Usage
See examples/simple.rs
for an example of how to use this crate.
Building
Feature Flags
bundled
- Buildwebrtc-audio-procesing
from the included C++ codederive_serde
- Deriveserialize
anddeserialize
traits for Serde use
Dynamic linking
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 WEBRTC_AUDIO_PROCESSING_INCLUDE
.
Packages
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:
clang
orgcc
autotools
(MacOS:brew install automake
,brew install autoconf
)libtoolize
(typicallyglibtoolize
on MacOS:brew install libtool
)pkg-config
(MacOS:brew install pkg-config
)
Contributing
Version increment
We are using semantic versioning. When incrementing a version, please do so in a separate commit, and also mark it with a Github tag.
Dependencies
~0.2–2.8MB
~59K SLoC