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

About the developer

281 Stars 115 Forks Other 255 Commits 14 Opened issues


Voice activity detection (VAD) library, based on WebRTC's VAD engine

Services available


Need anything else?

Contributors list

libfvad: voice activity detection (VAD) library

Build Status

This is a fork of the VAD engine that is part of the WebRTC Native Code package (, for use as a standalone library independent from the rest of the WebRTC code. There are currently no changes in functionality.

Building and Installing

libfvad uses autoconf/automake and can be build and installed with the usual:

sudo make install
  • When building from the cloned git repository (instead of a downloaded release), run
    autoreconf -i
    to create the missing configure script (this requires autoconf, libtool and pkg-config; e.g. run
    sudo apt install autoconf libtool pkg-config
    on Debian/Ubuntu first).
  • An optional example can be enabled enabled by
    ./configure --enable-examples
    . This requires libsndfile (, e.g.
    apt install libsndfile1-dev


The API is documented in the

header file. See also

Development notes

Recommended CFLAGS to turn on warnings:

-std=c11 -Wall -Wextra -Wpedantic
. Tests can be run with
make check


This library largely consists of parts of the WebRTC Native Code package, the repository of which can be found at

  • Most of
    has been moved to
  • Parts of
    have been moved to
    . Parts of this signal processing library not needed by the VAD engine have been removed. Also, some platform-specific assembly code has been removed for now, for easier maintainability.
  • Relevant unit tests have been converted into automake tests and moved to

Merging upstream changes

It is intended that future changes and fixes in the WebRTC Native Code package will also be be merged into libfvad.

To help with this, the libfvad git repository has an

branch containing the required subset of the WebRTC Native Code package's files, and an
branch which also contains these unmodified files, but moved/renamed to the libfvad directory structure.


script is intended to be run in the
branch and imports changes from a local clone of the WebRTC Native Code package git repository; it reads
which contains the list of files to import, and reads and updates
which contains the most recent imported commit hash of the source repository.

After this import, the changes can be merged first into the

branch and then into the
branch. The intermediate step is necessary because git merge would treat files that were both renamed and heavily changed as new files.

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.