bird-song-detector

Bird Song Detector - Easy To Use Scripts and App

https://github.com/gruncrow/bird-song-detector

Science Score: 49.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

audio bioacoustics bird bird-detection birdsong deep deep-learning detector ecoinformatics gradio-interface learning neural-networks pam passive-acoustic-monitoring
Last synced: 6 months ago · JSON representation

Repository

Bird Song Detector - Easy To Use Scripts and App

Basic Info
  • Host: GitHub
  • Owner: GrunCrow
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 132 MB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 4
Topics
audio bioacoustics bird bird-detection birdsong deep deep-learning detector ecoinformatics gradio-interface learning neural-networks pam passive-acoustic-monitoring
Created about 1 year ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

Bird-Song-Detector

DOI

Bird-Song-Detector is part of a research to improve bird vocalization identification. The Bird Song Detector is designed to detect bird vocalizations in audio files using a YOLO-based model from the BIRDeep project. The system converts audio files into spectrogram images, performs bird song detection on these images, and transforms the predictions into time segments.

Note: The model has been trained on the BIRDeep dataset, which consists of audio recordings from Doana National Park (Huelva, Spain), located in Huelva, Spain. As such, the detector is particularly well-suited for identifying bird songs from this region and has not been tested on data from other areas.

For more information, visit the full BIRDeep Bird Song Detector repository.


Citation

This repository supports the research article:

Mrquez-Rodrguez, A., Mohedano-Munoz, M. ., Marn-Jimnez, M. J., Santamara-Garca, E., Bastianelli, G., Jordano, P., & Mendoza, I.
A Bird Song Detector for improving bird identification through Deep Learning: a case study from Doana
Ecological Informatics, 2025, 103254. https://doi.org/10.1016/j.ecoinf.2025.103254

bibtex @article{marquez2025bird, title={A Bird Song Detector for improving bird identification through Deep Learning: a case study from Doana}, author={Mrquez-Rodrguez, Alba and Mohedano-Munoz, Miguel ngel and Marn-Jimnez, Manuel J. and Santamara-Garca, Eduardo and Bastianelli, Giulia and Jordano, Pedro and Mendoza, Irene}, journal={Ecological Informatics}, volume={90}, pages={103254}, year={2025}, publisher={Elsevier}, doi={10.1016/j.ecoinf.2025.103254} } Read the article

Project Structure

The project is structured as follows:

plaintext App/ # Application code assets/ images/ # Images for README and documentation Code/ # Core code files audio_processing.py # Functions for processing audio files predict_on_audio.py # Script to predict bird songs in a single audio file predict_on_folder.py # Script to predict bird songs in all audio files in a folder Data/ # Data directory Audios/ # Sample audio files (place your own here) Images/ # Spectrogram images generated from audio files Segments/ # Directory for detected audio segments flagged/ # Generated files from the Gradio app Models/ # Model directory Bird Song Detector/ # YOLO model BirdNET FineTuned BIRDeep/ # Fine-tuned YOLO model README.md # This README file environment.yml # Conda environment specification

Setup

  1. Clone the repository:

    sh git clone https://github.com/yourusername/Bird-Song-Detector.git cd Bird-Song-Detector

  2. Create and activate conda environment from environment.yml:

    sh conda env create -f environment.yml conda activate bird-song-detector

  3. Install dependencies:

    sh pip install -r requirements.txt

Usage

Detect Bird Songs in a Single Audio File

Run the script predictonaudio.py to detect bird songs in a single audio file:

sh python Code/predict_on_audio.py

Detect Bird Songs in Multiple Audio Files

Run the script predictonfolder.py to detect bird songs in all audio files in a folder:

sh python Code/predict_on_folder.py

Web Interface

For a more interactive experience, you can run the Gradio web interface (app.py) by executing the following:

sh python App/app.py

The web interface will be available at http://127.0.0.1:7860/ by default. On the main page, drag and drop your audio file into the upload box and click Detect Bird Song to process it.

Gradio Web Interface

Once the detection is complete, you will see the following:

  • A list of predicted bird song segments with their start time, end time, and confidence score.
  • The corresponding spectrogram image with bounding boxes indicating detected bird songs.

Gradio Web Interface

You can then click on the Generate Segments button to download a ZIP file containing the individual detected audio segments in WAV format.

Gradio Web Interface

The generated ZIP file will contain the predictions WAV format with the name of original audio file followed by the start and end time of the detection and the confidence score.

Gradio Web Interface

License

This project is licensed under the MIT License. See the LICENSE file for details.

Funding

This work has received financial support from the BIRDeep project (TED2021-129871A-I00), which is funded by MICIU/AEI/10.13039/501100011033 and the European Union NextGenerationEU/PRTR

Logos

Owner

  • Name: GrunCrow
  • Login: GrunCrow
  • Kind: user
  • Location: Huelva
  • Company: Universidad de Huelva

Computer Science Student in Universidad de Huelva, Spain

GitHub Events

Total
  • Release event: 4
  • Watch event: 4
  • Push event: 9
  • Fork event: 2
  • Create event: 5
Last Year
  • Release event: 4
  • Watch event: 4
  • Push event: 9
  • Fork event: 2
  • Create event: 5

Dependencies

environment.yml pypi
  • mpmath ==1.3.0
  • networkx ==3.4.2
  • nvidia-cublas-cu12 ==12.4.5.8
  • nvidia-cuda-cupti-cu12 ==12.4.127
  • nvidia-cuda-nvrtc-cu12 ==12.4.127
  • nvidia-cuda-runtime-cu12 ==12.4.127
  • nvidia-cudnn-cu12 ==9.1.0.70
  • nvidia-cufft-cu12 ==11.2.1.3
  • nvidia-curand-cu12 ==10.3.5.147
  • nvidia-cusolver-cu12 ==11.6.1.9
  • nvidia-cusparse-cu12 ==12.3.1.170
  • nvidia-cusparselt-cu12 ==0.6.2
  • nvidia-nccl-cu12 ==2.21.5
  • nvidia-nvjitlink-cu12 ==12.4.127
  • nvidia-nvtx-cu12 ==12.4.127
  • sympy ==1.13.1
  • torch ==2.6.0
  • torchaudio ==2.6.0
  • torchvision ==0.21.0
  • triton ==3.2.0