Skip to main content

aria-inference-birdnet

BirdNET-only inference package for ARIA (Acoustic Recognition for Inventories of Aviaries).

This is the baseline detection system for the BioDCASE 2026 Challenge.

Installation

Requires Python 3.11 or 3.12.

pip install aria-inference-birdnet

This automatically installs BirdNET-Analyzer and all other dependencies.

Quick start

1. Download model files

aria-inference-birdnet download-models --dir ./models

This fetches the custom BirdNET classifier and species labels from GitHub Releases.

2. Run detection on an aviary

Each aviary has a different set of species. The aviary_config.json (provided with the challenge data) maps each aviary ID to its species list, so that predictions are filtered to only the species that can actually be present.

aria-inference-birdnet detect \
  --input aviary_1/ \
  --output predictions_aviary_1.csv \
  --model-dir ./models \
  --aviary-config aviary_config.json \
  --aviary aviary_1

3. List available aviaries

aria-inference-birdnet list-aviaries --aviary-config aviary_config.json

4. Python API

from pathlib import Path
from aria_inference_birdnet import run_detection

run_detection(
    input_path=Path("aviary_1/"),
    output_csv=Path("predictions_aviary_1.csv"),
    model_dir=Path("models/"),
    aviary_config=Path("aviary_config.json"),
    aviary_id="aviary_1",
)

How aviary filtering works

The aviary_config.json contains two things:

  • Wild birds: species common to all aviaries (e.g. House Sparrow, Common Blackbird). These are always included in predictions.
  • Per-aviary species: species that live in a specific aviary.

When you specify --aviary aviary_1, the detector only keeps predictions for that aviary's species plus wild birds. This removes false positives from species that are not present in the aviary.

Alternatively, you can use a flat species file with --allowed-species-file instead of the aviary config. This applies the same species list to all input audio regardless of aviary.

CLI reference

detect

Flag Default Description
--input (required) Audio file or directory
--output (required) Output CSV path
--model-dir (required) Directory with model files
--aviary-config None Path to aviary_config.json
--aviary None Aviary ID (e.g. aviary_1). Requires --aviary-config
--allowed-species-file None Flat species whitelist (alternative to aviary config)
--min-confidence 0.05 Global confidence cutoff
--temperature 1.8 Confidence scaling (T>1 reduces saturation)
--overlap 0.0 Window overlap in seconds
--threads 4 CPU threads
--topk 3 Max species per window (0=disable)
--eval-csv (auto) Per-class threshold CSV

download-models

Flag Default Description
--dir (required) Local directory for model files
--skip-optional False Skip the evaluation CSV

list-aviaries

Flag Default Description
--aviary-config (required) Path to aviary_config.json

Pipeline stages

  1. BirdNET analysis – runs birdnet_analyzer.analyze on the input audio
  2. Species filtering – keeps only species present in the aviary (from config) or in the allowed-species file
  3. Temperature scaling – calibrates over-saturated confidences (T=1.8 by default)
  4. CSV merging – combines per-file result CSVs into one
  5. Per-class thresholds – applies optimal thresholds from training evaluation (if available)
  6. Top-K filtering – keeps at most K species per 3-second window

Output format

File name,Start (s),End (s),Scientific name,Common name,Confidence
recording_001.wav,0.0,3.0,Phoenicopterus roseus,Greater Flamingo,0.8734
recording_001.wav,3.0,6.0,Bostrychia hagedash,Hadada Ibis,0.7521

Notes

  • This package is inference-only. It does not include training, data fetching, or segmentation.
  • Model binaries are hosted as GitHub Release assets to keep the pip package small.
  • Python 3.10 is not supported because birdnet-analyzer requires ≥3.11.

License

Apache-2.0

Metadata

Release files for aria-inference-birdnet 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aria-inference-birdnet 0.1.4
File Size Uploaded
aria_inference_birdnet-0.1.4.tar.gz 19.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aria-inference-birdnet 0.1.4
File Interpreter ABI Platform
aria_inference_birdnet-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 39.8 kB

Release files / aria_inference_birdnet-0.1.4.tar.gz

Download URL aria_inference_birdnet-0.1.4.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e881774457221118d07aec8790db79d52cb7ab1da5d6717267aebf03711e9f3f
BLAKE2b-256 checksum
How to use checksums
b212cae2b48539e0f296db1243da6590234f61a7954630a41720b052e8ea11a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.

Transparency log

Release files / aria_inference_birdnet-0.1.4-py3-none-any.whl

Download URL aria_inference_birdnet-0.1.4-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd26b26f63ee9f39e03d9a8e486e3b37f085137b7b698d86a7beecc8145203ce
BLAKE2b-256 checksum
How to use checksums
28e39e07f4ece6544db8acb971a0b5bfd98e2796e362372f2f53a915e420e960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page