BirdVoxDetect v0.4: TaxoNet, probability outputs, and beta-testing

Skip to first unread message

Vincent Lostanlen

Nov 27, 2020, 2:46:49 PM11/27/20

Dear members of the BirdVox discussion group,

It is my pleasure to announce the release of the fourth version of the BirdVoxDetect software. Alongside other developers of the BirdVox project, we have been working hard over the past three months to improve the accuracy and the usability of the system.

Below my signature is a detailed description has changed since BirdVoxDetect v0.3.

You may already install the "beta" version of BirdVoxDetect v0.4 via the Python Package Index (PyPI):

pip install birdvoxdetect==0.4.0b1

Or from the source code:

We are actively looking for beta-testers, so please contact me on this discussion group or via the GitHub issue tracker to report feedback.

Once the most urgent feedback is addressed, we'll release BirdVoxDetect v0.4 in its "stable" form.

Many thanks to everyone who helped make this release happen!



I. Taxonomical neural network (TaxoNet)

We have a new species classifier, named TaxoNet. The gist of TaxoNet is to perform predictions at multiple levels of the avian taxonomy: order, family, and species.

At the order level, TaxoNet distinguishes flight calls from passeriformes from any other kind of flight call. At the family level, it classifies the flight call between four families of interest: American sparrows, Cardinals, Thrushes, and New World Warblers. At the species level, TaxoNet recognizes 14 species of passeriformes + one catch-call class for other species.

Our numerical experiments on 300 hours of annotated audio have demonstrated that TaxoNet outperforms the classifier of BirdVoxDetect v0.3. The relative reduction in error rate is of the order of -15% at the species level ; -30% at the family level ; and -75% (four times fewer errors) at the order level.

The main developer of TaxoNet is Jason Cramer, a PhD candidate at New York University. His PhD advisor is Juan Pablo Bello. Please join me in congratulating Jason for his outstanding work!

To learn more about the deep learning architecture of TaxoNet, i invite you to read our recent paper, presented by Jason at the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP):

"Chirping up the right tree: Incorporating Biological Taxonomies into Deep Bioacoustic Classifiers"

We also distribute TaxoNet as a standalone package:

II. New columns in the checklist

We have rewritten the checklist utility in BirdVoxDetect so that it exports all levels of predictions from TaxoNet. In this way, the checklist not only reports the species of every flight call, but also its family and order.

Example with a file from the test suite (tests/data/audio/fd79e55d-d3a3-4083-aba1-4f00b545c3d6.wav):

Time (hh:mm:ss) Species (4-letter code) Family    Order         Confidence (%)
00:00:08.78     SWTH                    Turdidae  Passeriforme  70.14839

Note the new order of columns and the indication of family ("Turdidae") and order ("Passeriforme") for the Swainson's Thrush (SWTH).

Contrary to BirdVoxDetect v0.3, which was only suited to two species of thrushes (SWTH and GCTH), BirdVoxDetect v0.4 potentially recognizes any species of thrush. Likewise for American sparrows, cardinals, and New World warblers.

III. Probability outputs

Some users have expressed the need to analyze the misclassified flight calls in the checklist. In this context, it is useful to look up not only the most probable species but the full prediction of the neural network; that is, the complete list of nodes in the species taxonomy alongside their predicted probability of presence.

To enable probabilistic prediction, pass the argument "--predict-proba" to the command-line interface, or the keyword argument "predict_proba=True" to the process_file function in the Python module.

This will cause BirdVoxDetect to export a JSON file containing probabilistic predictions for every species, family, and order in TaxoNet. The JSON file also contains a copy of the BirdVoxClassify taxonomy, a copy of the sensor fault log given by BIrdVoxActivate, and additional metadata: file name, audio duration, MD5 checksum, package versions, hardware specifications, and elapsed time.

Do not hesitate to contact me for more details about the organization of this JSON file. I'd be happy to collaborate.


John Kearney

Dec 1, 2020, 12:37:20 PM12/1/20
to birdvox
Hi All,
I tried installing this in Windows without success. I first created an environment in Anaconda Navigator and then using the command prompt within the environment entered the pip command as described above. The error message reads as follows:

ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.


We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.


tensorflow 2.3.1 requires h5py<2.11.0,>=2.10.0, but you'll have h5py 3.1.0 which is incompatible.

birdvoxclassify 0.2.0 requires h5py<3.0.0,>=2.7.0, but you'll have h5py 3.1.0 which is incompatible.

Vincent Lostanlen

Dec 2, 2020, 1:06:29 PM12/2/20

Hello John, cc all,

As the error message says, your version of the h5py package is too high. It's 3.1.0 whereas BirdVoxDetect only supports 2.x

Please do the following

pip install h5py==2.10

pip install birdvoxdetect==0.4.0

and let me know how it goes



You received this message because you are subscribed to the Google Groups "birdvox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit
For more options, visit

John Kearney

Dec 2, 2020, 1:55:04 PM12/2/20
to birdvox
That worked! Thank you, Vincent. I'll give you some feedback after I have used it a few times.
Reply all
Reply to author
0 new messages