vak

A neural network framework for researchers studying acoustic communication

https://github.com/vocalpy/vak

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: nature.com, plos.org, frontiersin.org, zenodo.org
  • Committers with academic emails
    1 of 10 committers (10.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary

Keywords

animal-communication animal-vocalizations bioacoustic-analysis bioacoustics birdsong python python3 pytorch spectrograms speech-processing torch torchvision vocalizations

Keywords from Contributors

csv annotation annotation-format keras battery jax degoogle quantum-algorithms quantum-simulation medical-images
Last synced: 4 months ago · JSON representation ·

Repository

A neural network framework for researchers studying acoustic communication

Basic Info
  • Host: GitHub
  • Owner: vocalpy
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage: https://vak.readthedocs.io
  • Size: 196 MB
Statistics
  • Stars: 88
  • Watchers: 4
  • Forks: 17
  • Open Issues: 135
  • Releases: 46
Topics
animal-communication animal-vocalizations bioacoustic-analysis bioacoustics birdsong python python3 pytorch spectrograms speech-processing torch torchvision vocalizations
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md



A neural network framework for researchers studying acoustic communication

DOI <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END --> PyPI version License Build Status codecov

vak is a Python framework for neural network models, designed for researchers studying acoustic communication: how and why animals communicate with sound. 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 acoustic communication to apply neural network algorithms to their data 2. Provide a common framework that will facilitate benchmarking neural network algorithms on tasks related to acoustic communication

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

console $ pip install vak

with conda

console $ 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 ^1^3. As in many other domains, this research is being revolutionized by deep learning algorithms ^1^3. 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 ^4, that automates annotation of birdsong by segmenting spectrograms. TweetyNet and vak have been used in both neuroscience ^6^8 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

🐛
zhileiz1992
zhileiz1992

🐛 💻
Maris Basha
Maris Basha

🤔 💻
Daniel Müller-Komorowska
Daniel Müller-Komorowska

📖
meriablue
meriablue

📖
Henri Combrink
Henri Combrink

🐛
milaXT
milaXT

🐛 📖

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

Owner

  • Name: VocalPy
  • Login: vocalpy
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: vak
message: >-
  a neural network toolbox for animal vocalizations
  and bioacoustics 
type: software
authors:
  - given-names: David
    family-names: Nicholson
    email: nicholdav@gmail.com
    affiliation: Emory University
    orcid: 'https://orcid.org/0000-0002-4261-4719'
  - given-names: Yarden
    family-names: Cohen
    orcid: 'https://orcid.org/0000-0002-8149-6954'
    affiliation: Weizmann Institute
    email: yardencsmail@gmail.com
identifiers:
  - type: doi
    value: 10.5281/zenodo.5828090
repository-code: 'https://github.com/NickleDave/vak'
url: 'https://vak.readthedocs.io'
repository-artifact: 'https://pypi.org/project/vak/'
keywords:
  - python
  - animal vocalizations
  - neural networks
  - bioacoustics
license: BSD-3-Clause
commit: ad802dcad34b524533b765e5dfb3709b308a3152
version: 0.4.2
date-released: '2022-03-29'

GitHub Events

Total
  • Create event: 4
  • Release event: 2
  • Issues event: 23
  • Watch event: 10
  • Delete event: 1
  • Issue comment event: 38
  • Push event: 24
  • Pull request event: 12
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 2
  • Issues event: 23
  • Watch event: 10
  • Delete event: 1
  • Issue comment event: 38
  • Push event: 24
  • Pull request event: 12
  • Fork event: 1

Committers

Last synced: 4 months ago

All Time
  • Total Commits: 2,580
  • Total Committers: 10
  • Avg Commits per committer: 258.0
  • Development Distribution Score (DDS): 0.212
Past Year
  • Commits: 17
  • Committers: 4
  • Avg Commits per committer: 4.25
  • Development Distribution Score (DDS): 0.588
Top Committers
Name Email Commits
David Nicholson n****e 2,032
NickleDave n****v@g****m 434
allcontributors[bot] 4****] 57
yardencsGitHub y****c@b****u 51
milaXT 1****T 1
kaiyaprovost 1****t 1
Luke Poeppel l****l@g****m 1
Khoa 5****7 1
Ja-sonYun k****7@g****m 1
Ikko Ashimine e****r@g****m 1
Committer Domains (Top 20 + Academic)
bu.edu: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 162
  • Total pull requests: 98
  • Average time to close issues: 7 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 16
  • Total pull request authors: 8
  • Average comments per issue: 1.31
  • Average comments per pull request: 0.72
  • Merged pull requests: 89
  • Bot issues: 0
  • Bot pull requests: 19
Past Year
  • Issues: 24
  • Pull requests: 13
  • Average time to close issues: 23 days
  • Average time to close pull requests: 39 minutes
  • Issue authors: 4
  • Pull request authors: 3
  • Average comments per issue: 0.96
  • Average comments per pull request: 0.46
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 6
Top Authors
Issue Authors
  • NickleDave (141)
  • harshidapancholi (3)
  • henricombrink (2)
  • athenasyarifa (2)
  • yardencsGitHub (2)
  • milaXT (2)
  • meriablue (1)
  • nhoglen (1)
  • cantonsir (1)
  • wendtalexander (1)
  • avanikop (1)
  • vivinastase (1)
  • danielmk (1)
  • kalleknast (1)
  • ItamarFruchter (1)
Pull Request Authors
  • NickleDave (71)
  • allcontributors[bot] (19)
  • milaXT (2)
  • marisbasha (2)
  • nosrednab (1)
  • zhileiz1992 (1)
  • TrellixVulnTeam (1)
  • Ja-sonYun (1)
Top Labels
Issue Labels
ENH: enhancement (43) BUG (22) DOC: documentation (16) Models (9) DEV: development (7) CLN: clean / refactor (5) TST: testing (5) api (1) dependencies (1) Datasets (1) Metrics (1) CI: continuous integration (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 257 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 51
  • Total maintainers: 1
pypi.org: vak

A neural network framework for researchers studying acoustic communication

  • Versions: 47
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 257 Last month
Rankings
Dependent packages count: 3.3%
Stargazers count: 8.5%
Forks count: 9.1%
Average: 12.0%
Downloads: 16.7%
Dependent repos count: 22.2%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: vak
  • Versions: 4
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Average: 36.0%
Stargazers count: 39.1%
Forks count: 42.2%
Last synced: 4 months ago

Dependencies

pyproject.toml pypi
  • SoundFile >=0.10.3
  • attrs >=19.3.0
  • crowsetta >=5.0.1
  • dask >=2.10.1
  • evfuncs >=0.3.4
  • joblib >=0.14.1
  • matplotlib >=3.3.3
  • numpy >=1.18.1
  • pandas >=1.0.1
  • pynndescent >=0.5.10
  • pytorch-lightning >=2.0.7
  • scipy >=1.4.1
  • tensorboard >=2.8.0
  • toml >=0.10.2
  • torch >= 2.0.1
  • torchvision >=0.15.2
  • tqdm >=4.42.1
  • umap-learn >=0.5.3
.github/workflows/ci-linux.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v3 composite
  • excitedleigh/setup-nox v2.1.0 composite