Need help with webrtc-audio-processing?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

tonarino
175 Stars 14 Forks BSD 3-Clause "New" or "Revised" License 61 Commits 5 Opened issues

Description

Rust bindings for the webrtc-audio-processing library

Services available

!
?

Need anything else?

Contributors list

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.