Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.



A neural network framework for animal acoustic communication and bioacoustics

DOI

All Contributors

PyPI version License Build Status codecov

🚧 vak version 1.0.0 is in development! 🚧 📣 Test out the alpha release: pip install vak==1.0.0a2. 📣 For more info, please see this forum post.

vak is a Python framework for neural network models, designed for researchers studying animal acoustic communication and bioacoustics. Many people will be familiar with work in this area on animal vocalizations such as birdsong, bat calls, and even human speech. Neural network models have provided a powerful new tool for researchers in this area, as in many other fields.

The library has two main goals:

  1. Make it easier for researchers studying animal vocalizations to apply neural network algorithms to their data
  2. Provide a common framework that will facilitate benchmarking neural network algorithms on tasks related to animal vocalizations

Currently, the main use is an automatic annotation of vocalizations and other animal sounds. By annotation, we mean something like the example of annotated birdsong shown below:

spectrogram of birdsong with syllables annotated

You give vak training data in the form of audio or spectrogram files with annotations, and then vak helps you train neural network models and use the trained models to predict annotations for new files.

We developed vak to benchmark a neural network model we call tweetynet.
Please see the eLife article here: https://elifesciences.org/articles/63853

To learn more about the goals and design of vak, please see this talk from the SciPy 2023 conference, and the associated Proceedings paper here.

Thumbnail of SciPy 2023 talk on vak

For more background on animal acoustic communication and deep learning, and how these intersect with related fields like computational ethology and neuroscience, please see the "About" section below.

Installation

Short version:

with pip

$ pip install vak

with conda

$ conda install vak -c pytorch -c conda-forge
$ #                  ^ notice additional channel!

Notice that for conda you specify two channels, and that the pytorch channel should come first, so it takes priority when installing the dependencies pytorch and torchvision.

For more details, please see:
https://vak.readthedocs.io/en/latest/get_started/installation.html

We test vak on Ubuntu and MacOS. We have run on Windows and know of other users successfully running vak on that operating system, but installation on Windows may require some troubleshooting. A good place to start is by searching the issues.

Usage

Tutorial

Currently the easiest way to work with vak is through the command line. terminal showing vak help command output

You run it with configuration files, using one of a handful of commands.

For more details, please see the "autoannotate" tutorial here:
https://vak.readthedocs.io/en/latest/get_started/autoannotate.html

How can I use my data with vak?

Please see the How-To Guides in the documentation here:
https://vak.readthedocs.io/en/latest/howto/index.html

Support / Contributing

For help, please begin by checking out the Frequently Asked Questions:
https://vak.readthedocs.io/en/latest/faq.html.

To ask a question about vak, discuss its development, or share how you are using it, please start a new "Q&A" topic on the VocalPy forum with the vak tag:
https://forum.vocalpy.org/

To report a bug, or to request a feature, please use the issue tracker on GitHub:
https://github.com/vocalpy/vak/issues

For a guide on how you can contribute to vak, please see: https://vak.readthedocs.io/en/latest/development/index.html

Citation

If you use vak for a publication, please cite both the Proceedings paper and the software.

Proceedings paper (BiBTex)

@inproceedings{nicholson2023vak,
  title={vak: a neural network framework for researchers studying animal acoustic communication},
  author={Nicholson, David and Cohen, Yarden},
  booktitle={Python in Science Conference},
  pages={59--67},
  year={2023}
}

Software

DOI

License

License
is here.

About

Are humans unique among animals? We speak languages, but is speech somehow like other animal behaviors, such as birdsong? Questions like these are answered by studying how animals communicate with sound. This research requires cutting edge computational methods and big team science across a wide range of disciplines, including ecology, ethology, bioacoustics, psychology, neuroscience, linguistics, and genomics 123. As in many other domains, this research is being revolutionized by deep learning algorithms 123. Deep neural network models enable answering questions that were previously impossible to address, in part because these models automate analysis of very large datasets. Within the study of animal acoustic communication, multiple models have been proposed for similar tasks, often implemented as research code with different libraries, such as Keras and Pytorch. This situation has created a real need for a framework that allows researchers to easily benchmark models and apply trained models to their own data. To address this need, we developed vak. We originally developed vak to benchmark a neural network model, TweetyNet 45, that automates annotation of birdsong by segmenting spectrograms. TweetyNet and vak have been used in both neuroscience 678 and bioacoustics 9. For additional background and papers that have used vak, please see: https://vak.readthedocs.io/en/latest/reference/about.html

"Why this name, vak?"

It has only three letters, so it is quick to type, and it wasn't taken on pypi yet. Also I guess it has something to do with speech. "vak" rhymes with "squawk" and "talk".

Does your library have any poems?

Yes.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

avanikop
avanikop

🐛
Luke Poeppel
Luke Poeppel

📖
yardencsGitHub
yardencsGitHub

💻 🤔 📢 📓 💬
David Nicholson
David Nicholson

🐛 💻 🔣 📖 💡 🤔 🚇 🚧 🧑‍🏫 📆 👀 💬 📢 ⚠️ ✅
marichard123
marichard123

📖
Therese Koch
Therese Koch

📖 🐛
alyndanoel
alyndanoel

🤔
adamfishbein
adamfishbein

📖
vivinastase
vivinastase

🐛 📓
kaiyaprovost
kaiyaprovost

💻 🤔
ymk12345
ymk12345

🐛 📖
neuronalX
neuronalX

🐛 📖
Khoa
Khoa

📖
sthaar
sthaar

📖 🐛 🤔
yangzheng-121
yangzheng-121

🐛 🤔
lmpascual
lmpascual

📖
ItamarFruchter
ItamarFruchter

📖
Hjalmar K. Turesson
Hjalmar K. Turesson

🐛 🤔
nhoglen
nhoglen

🐛
Ja-sonYun
Ja-sonYun

💻
Jacqueline
Jacqueline

🐛
Mark Muldoon
Mark Muldoon

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

  1. https://www.frontiersin.org/articles/10.3389/fnbeh.2021.811737/full ↩ ↩2

  2. https://peerj.com/articles/13152/ ↩ ↩2

  3. https://www.jneurosci.org/content/42/45/8514 ↩ ↩2

  4. https://elifesciences.org/articles/63853 ↩

  5. https://github.com/yardencsGitHub/tweetynet ↩

  6. https://www.nature.com/articles/s41586-020-2397-3 ↩

  7. https://elifesciences.org/articles/67855 ↩

  8. https://elifesciences.org/articles/75691 ↩

  9. https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0278522 ↩

Metadata

Release files for vak 1.0.0a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vak 1.0.0a3
File Size Uploaded Provenance Actions
vak-1.0.0a3.tar.gz 1.2 MB Without provenance Details for vak-1.0.0a3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vak 1.0.0a3
File Interpreter ABI Platform Actions
vak-1.0.0a3-py3-none-any.whl Python 3 none any Details for vak-1.0.0a3-py3-none-any.whl

Total release size: 1.5 MB

Release files / vak-1.0.0a3.tar.gz

Download URL vak-1.0.0a3.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
39641cf095fe2d811c25f226b34a487c4146f2694fcd2345634f63cfab2acf99
BLAKE2b-256 checksum
How to use checksums
7436aedb4456b965c02f98a0c27f6f9c7d8ba896de0cd07b626a738b3c0a188d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.2

Release files / vak-1.0.0a3-py3-none-any.whl

Download URL vak-1.0.0a3-py3-none-any.whl
Size 217.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d6b3115e33500fdc29ce45ce129a46cc71e5a8495811995d73c9b6adb8b0880
BLAKE2b-256 checksum
How to use checksums
dbfdf14df652c10293c21d05b3f2ca74ea1d4c9bf94518dc5fec211ba8d8860e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.2

Security for vak 1.0.0a3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page