This GUI allows you to view and edit the predictions from BatDetect2 and also to make your own annotations for training your own models. The GUI is web based and will run in your web browser locally - see the video linked below for an overview.
- Install the Anaconda Python 3.10 distribution for your operating system from here.
- Download this code from the repository (by clicking on the green button on top right) and unzipping it.
- Create a new environment and install the required packages:
conda create -y --name batdetect2_gui python==3.10
conda activate batdetect2_gui
conda install --file requirements.txt
To run the interface, open up the command line, change to the directory of where the application is stored and type:
python application.py
This will launch the application and it will point you to a URL that you can paste into your web browser e.g. http://127.0.0.1:8000
.
You will be prompted to point to an directory of audio files and a directory of where to store the generated annotations. If you already have some .json
annotation files e.g. from running the automatic detection and classification code you can point to those files here too.
Example audio files can be found in example_data/audio/
and their corresponding annotations are available in example_data/anns/
. Type these two paths into the GUI to explore the data.
There are keyboard shortcuts listed on the annotation page inside the GUI e.g. space
plays the audio file, and clicking on the audio bar will skip backwards or forwards. To add more species names you can edit the list CLASS_NAMES
in config.py
, but you can also type new species names in the GUI directly.
To quit, type Ctrl+C
into the command line console that is running the annotation application.
The GUI will be slow if the input files are long e.g. > 5 seconds. It will also take a lot of time to annotation each file if it is too long.
You can clip your files so that they are shorter using the prepare_audio_files.py
script. You need to specify the locations of the input files and where you want the shorter files to be saved. There are additional settings that allow you to specify the output duration and where in the file you start clipping from.
python prepare_audio_files.py path_to_input_directory/ path_to_output_directory
e.g.
python prepare_audio_files.py example_data/audio/ example_data/audio_clipped/
Alternatively, you can use sox to split the files e.g. for 2 second chunks sox infile.wav output.wav trim 0 2 : newfile : restart
.
The GUI currently only works with .wav
files and does not support stereo recordings.
For each audio clip try to annotate all the bat calls present, even the faint ones.
If you don't know the species, you can set it to Bat
.
Use the individual ID field to associate multiple calls to the same bat.
You need to click submit
on the annotation page to save the current annotation.
Click on the image below to view a short tutorial that describes how to use the system. Note, the video shows a slightly older version of the interface, but most of the steps are still relevant.
You can find instructions here for how to run the GUI on a web server that can then be made accessible to others over the internet.
You can read more about the json data format here.
If you find our work useful in your research please consider citing our paper:
@article{batdetect2_2022,
title = {Towards a General Approach for Bat Echolocation Detection and Classification},
author = {Mac Aodha, Oisin and Mart\'{i}nez Balvanera, Santiago and Damstra, Elise and Cooke, Martyn and Eichinski, Philip and Browning, Ella and Barataudm, Michel and Boughey, Katherine and Coles, Roger and Giacomini, Giada and MacSwiney G., M. Cristina and K. Obrist, Martin and Parsons, Stuart and Sattler, Thomas and Jones, Kate E.},
journal = {bioRxiv},
year = {2022}
}