Skip to main content

automated annotation of vocalizations for everybody

Project description

DOI PyPI version License Build Status

vak

automated annotation of animal vocalizations

vak is a library for researchers studying animal vocalizations. It automates annotation of vocalizations, using artificial neural networks. 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.

Installation

Short version:

$ pip install vak

For the long version detail, please see: https://vak.readthedocs.io/en/latest/get_started/installation.html

Usage

Training models to segment and label vocalizations

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

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

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

Data and folder structures

To train models, you provide training data in the form of audio or spectrograms files, and annotations for those files.

Spectrograms and labels

The package can generate spectrograms from .wav files or .cbin audio files. It can also accept spectrograms in the form of Matlab .mat or Numpy .npz files. The locations of these files are specified in the config.toml file.

The annotations are parsed by a separate library, crowsetta, that aims to handle common formats like Praat textgrid files, and enable researchers to easily work with formats they may have developed in their own labs. For more information please see:
https://crowsetta.readthedocs.io/en/latest/
https://github.com/NickleDave/crowsetta

Preparing training files

It is possible to train on any manually annotated data but there are some useful guidelines:

  • Use as many examples as possible - The results will just be better. Specifically, this code will not label correctly syllables it did not encounter while training and will most probably generalize to the nearest sample or ignore the syllable.
  • Use noise examples - This will make the code very good in ignoring noise.
  • Examples of syllables on noise are important - It is a good practice to start with clean recordings. The code will not perform miracles and is most likely to fail if the audio is too corrupt or masked by noise. Still, training with examples of syllables on the background of cage noises will be beneficial.

Predicting annotations for audio

You can predict annotations for audio files by creating a config.toml file with a [PREDICT] section.
For more details, please see the "autoannotate" tutorial here: https://vak.readthedocs.io/en/latest/tutorial/autoannotate.html

Support / Contributing

Currently we are handling support through the issue tracker on GitHub:
https://github.com/NickleDave/vak/issues
Please raise an issue there if you run into trouble.
That would be a great place to start if you are interested in contributing, as well.

Citation

If you use vak for a publication, please cite its DOI:
DOI

License

License
is here.

Misc

"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.

Project details


Download files

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

Source Distribution

vak-0.3.3.tar.gz (159.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vak-0.3.3-py3-none-any.whl (252.6 kB view details)

Uploaded Python 3

File details

Details for the file vak-0.3.3.tar.gz.

File metadata

  • Download URL: vak-0.3.3.tar.gz
  • Upload date:
  • Size: 159.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.7

File hashes

Hashes for vak-0.3.3.tar.gz
Algorithm Hash digest
SHA256 2379b1698b8ed4f6d7acb2f05203d63fb6244bfa0fffe7bcf99a6ea4eb5534b9
MD5 2226d37343c2989672ea7a8a4a922cf9
BLAKE2b-256 8f1879e35b59752234149b8ffb577d34fa69b04ba446fdfb3c260a34b9070929

See more details on using hashes here.

File details

Details for the file vak-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: vak-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 252.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.7

File hashes

Hashes for vak-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e113b24bf0db929a56319ce7042f979163a666a76e1cf241b6b8538ba7bf222b
MD5 902a8ecb5d392f7a4bfe735cdaa0a81a
BLAKE2b-256 035e80e24d8c125d82a638b0279ecf4a51f2d835b4995d045d6b4aa720cc4f21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page