This repository contains the code for the BirdCLEF+ 2026 transfer-learning experiments. We started with target-only priors and acoustic baselines, added pretrained audio embeddings and co-occurrence structure, then tested positive-only transfer from BirdCLEF 2021, iNatSounds, WABAD, and BirdSet PER and NES. We then added source-aware positive-unlabeled score refinement.
Create an environment and install the Python dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtSome audio feature scripts call command-line tools such as ffmpeg/ffprobe.
Install them separately if you plan to rerun feature extraction from audio.
The scripts assume paths relative to the repository root:
birdclef-2026/: BirdCLEF+ 2026 competition data, includingtaxonomy.csv,sample_submission.csv,train_soundscapes_labels.csv,train_audio/, and soundscape folders.external_data/birdclef_2021/extracted/: BirdCLEF 2021 metadata and audio.external_data/inatsounds_2024/: iNatSounds overlap metadata/audio.external_data/wabad/: WABAD metadata, archives, and processed windows.external_data/birdset_amazon_basin/: BirdSet PER subset.external_data/birdset_nes/: BirdSet NES subset.
The scripts are organized by the order in which the experiments expanded:
prepare_target: build compact BirdCLEF+ 2026 target tables and EDA.target_baselines: run priors, interpretable acoustic baselines, pretrained embeddings, fusion, co-occurrence, and temporal baselines.external_audits: prepare overlap and external-source metadata.transfer: run positive-only transfer experiments from each external source.mitigation: run source weighting, source selection, source-aware refinement, and uncertainty checks. Run individual scripts directly when you want tighter control over arguments such as batch size:
python scripts/run_birdclef2021_ast_transfer_experiment.py --batch-size 8
python scripts/run_wabad_ast_positive_transfer.py --batch-size 8
python scripts/run_source_aware_sequence_and_uncertainty.py