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

#262 in Audio

29 downloads per month

Custom license

2MB
41K SLoC

C 28K SLoC // 0.2% comments C++ 11K SLoC // 0.2% comments Rust 860 SLoC // 0.0% comments Automake 501 SLoC // 0.0% comments GNU Style Assembly 383 SLoC Shell 4 SLoC

webrtc-audio-processing

Crates.io Docs.rs Build Status dependency status

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 - Build webrtc-audio-procesing from the included C++ code
  • derive_serde - Derive serialize and deserialize 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 or gcc
  • autotools (MacOS: brew install automake, brew install autoconf)
  • libtoolize (typically glibtoolize 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
~57K SLoC