Skip to main content

Bioacoustic monitoring of nocturnal bird migration

Project description

BirdVoxDetect: detection and classification of flight calls

PyPI MIT license Build Status

BirdVoxDetect is a pre-trained deep learning system which detects flight calls from songbirds in audio recordings, and retrieves the corresponding species. It relies on per-channel energy normalization (PCEN) and context-adaptive convolutional neural networks (CA-CNN) for improved robustness to background noise. It is made available both as a Python library and as a command-line tool for Windows, OS X, and Linux.


The simplest way to install BirdVoxDetect is by using the pip package management system, which will also install the additional required dependencies if needed.

pip install birdvoxdetect

Note that birdvoxdetect requires:

  • Python (==3.6)
  • birdvoxclassify
  • h5py (>=2.9)
  • librosa (==0.7.0)
  • numpy (==1.16.4)
  • pandas (==0.25.1)
  • scikit-learn (==0.21.2)
  • tensorflow (==1.15)


From the command line

To analyze one file:

python -m birdvoxdetect /path/to/file.wav

To analyze multiple files:

python -m birdvoxdetect /path/to/file1.wav /path/to/file2.wav

To analyze one folder:

python -m birdvoxdetect /path/to/folder

Optional arguments:

--output-dir OUTPUT_DIR, -o OUTPUT_DIR
                      Directory to save the output file(s); The default
                      value is the same directory as the input file(s).
--export-clips, -c    Export detected events as audio clips in WAV format.
--export-confidence, -C
                      Export the time series of model confidence values of
                      eventsin HDF5 format.
                      Detection threshold, between 10 and 90. The default
                      value is 30. Greater values lead to higher precision
                      at the expense of a lower recall.
--suffix SUFFIX, -s SUFFIX
                      String to append to the output filenames.The default
                      value is the empty string.
                      Duration of the exported clips, expressed in seconds
                      (fps). The default value is 1.0, that is, one second.
                      We recommend values of 0.5 or above.
--quiet, -q           Print less messages on screen.
--verbose, -v         Print timestamps of detected events.
--version, -V         Print version number.

From Python

Call syntax:

import birdvoxdetect as bvd    
df = bvd.process_file('path/to/file.wav')

df is a Pandas DataFrame with three columns: time, detection confidence, and species.

Below is a typical output from the test suite (file fd79e55d-d3a3-4083-aba1-4f00b545c3d6.wav):

   Time (hh:mm:ss) Species (4-letter code)  Confidence (%)
0     00:00:08.78                    SWTH           100.0


Vincent Lostanlen, Cornell Lab of Ornithology (@lostanlen on GitHub). For more information on the BirdVox project, please visit our website:

Please cite the following paper when using BirdVoxDetect in your work:

Robust Sound Event Detection in Bioacoustic Sensor Networks Vincent Lostanlen, Justin Salamon, Andrew Farnsworth, Steve Kelling, and Juan Pablo Bello PLoS ONE 14(10): e0214168, 2019. DOI:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for birdvoxdetect, version 0.2.5
Filename, size File type Python version Upload date Hashes
Filename, size birdvoxdetect-0.2.5.tar.gz (29.6 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page