Hybrid Vocal Classifier: a package for automated labeling of birdsong
Songbirds learn to sing very similarly to how humans learn to speak. The process of learning and producing song takes place in the song system, a network of areas in the songbird brain. Although the song system is unique to the songbird brain, it has evolved from brain areas common to all vertebrates, including humans. So by discovering how these specialized brain areas work, we can learn more about our own brains. For these reasons, neuroscientists study songbirds as a model of how the brain learns and produces behaviors like speaking a language, playing the piano, or kicking a soccer ball. To understand how the songbird brain learns and produces song, neuroscientists carry out behavioral experiments. Typically many hours of song are recorded from individuals of a given species. Current analyses of song are limited by the many more hours required to label song by hand. Several groups have proposed automated analysis of birdsong. These methods have contributed greatly to advancing the field, but there are some areas where they can be improved: 1. Until recently, many proposed methods did not have open source software implementations 2. None of the currently available methods build upon open source packages that are road tested by a broader data science community 3. The most commonly used methods rely on comparisons of entire songs, instead of labeling the individual elements of songs, known as syllables. Analyzing the entire song e.g. with cross-correlation of spectrograms may miss some important effects of experiments 4. Recently proposed methods that address many of the previous points have not been compared extensively, and there is no software package that incorporates all of these methods so that they can be easily tested by many different labs Results ---------- I present Hybrid Vocal Classifier, a Python package for automated labeling of birdsong. https://github.com/NickleDave/hybrid-vocal-classifier The main advantages of this package are: - open source, Python core with options for use in Matlab - built on top of well-established packages: Scikit-learn and the Scipy stack - incorporates improvements to recently proposed methods - feature sets for accurate classification with the K-Nearest Neighbors and Support Vector Machine algorithms - for groups with access to GPUs, an implementation of a recently published neural network for classifying and segmenting song in Keras (Python high-level neural networks library) - a Python implementation of a proposed method to improve the classifications of various machine learning methods using a Viterbi-like algorithm This poster will present the Hybrid Vocal Classifier package for the first time. I compare analysis of experimental effects using single syllables--facilitated by this package--with analysis of entire songs. I will also present analysis of the accuracies achieved with the neural network and Viterbi-like algorithm. My hope is that this package will provide a tool for songbird science, and at the same time present birdsong as an interesting test bed for many machine learning algorithms.