mvrl / bird-audio-detection

An entry for the Bird Audio Detection Challenge.
2 stars 3 forks source link

Entry for Bird Audio Detection Challenge

For more information about the challenge, see the project website or the paper that summarizes the challenge.

Important Links

Other Entries

Getting Started

This should be enough to get you training and evaluating code running:

Clone the repository:

  1. git clone git@github.com:UkyVision/bird-audio-detection.git
  2. Create a branch for your work: git checkout -b feature/{SHORT NAME OF FEATURE}

Install tensorflow:

  1. Install Miniconda.
  2. Create a virtual environment called tensorflow: conda create -n tensorflow python=2.7 ipython.
  3. Logout and log back in
  4. Start the virtual environment: source activate tensorflow
  5. Install Tensorflow using the Anaconda provided instructions. Short version: find the correct setting for TF_BINARY_URL from the tensorflow website, then run pip install --ignore-installed --upgrade $TF_BINARY_URL.

Prepare the datasets:

  1. You have to have scikit-learn library installed. If not, install by typing conda install scikit-learn and follow instructions
  2. cd ./src/dataset
  3. python download_and_extract.py : note this might take a while
  4. python make_dataset.py : splits dataset into 10 folds
  5. Datasets will be downloaded to ../../data/ while the folds will be written to the current dataset directory

Run the training script:

  1. cd ./src/
  2. python main.py: this will put checkpoints in the checkpoint directory
  3. python evaluate.py: this uses the checkpoints to generate an output script

Training multiple models:

  1. cd ./src/driver
  2. ./driver.sh : this uses GNU parallel to train multiple models. it is currently configured to work on a machine with two GPUs

Use features extracted from soundNet to train traditional ML approaches:

In this approach for Bird Audio Detection, we push the audio files through soundNet and extract the features at different layers. Then train different basic ML approaches using scikit-learn package. The code to train linear_SVM in ./src/scikit

Contributing

If you are new to git and github, I encourage you to read this guide to contributing. Basically, read through the issues and/or talk to the team leaders to see what would be a useful contribution. Then, you can either:

Team