BirdNET+ V3.0 (GPU-native full + regional catalog)

BirdNET+ V3.0 acoustic classifier, re-exported to a GPU-native ONNX graph, plus a catalog of region-specific slices that are much smaller while staying numerically identical to the full model on the species they keep.

Licence and terms

Each release came with its own upstream terms, listed here with its licence. The repo-level licence tag is the current release's.

  • BirdNET+ V3.0 (birdnet-plus-v3.0), Apache-2.0: the Apache-2.0 model licence and acceptable-use guidance of the BirdNET+ V3.0 release (Zenodo, https://doi.org/10.5281/zenodo.24162518), LICENSE-v3.0.md and ACCEPTABLE_USE-v3.0.md at the repo root, unchanged from upstream.

Origin and attribution

Powered by BirdNET (https://birdnet.cornell.edu/). BirdNET+ V3.0 is developed by the K. Lisa Yang Center for Conservation Bioacoustics (Cornell University), Chemnitz University of Technology, and the Museum fuer Naturkunde Berlin. It builds on Kahl et al. (2021) and Lasseck (2018). Architecture of this release: EfficientNetV2-S backbone, three-head classifier, 11,725 classes.

The GPU-native conversion and the regional slicing in this repo are derived work under Apache-2.0.

Releases in this repo

The current release is BirdNET+ V3.0 (birdnet-plus-v3.0).

What "GPU-native" means

The BirdNET team's ONNX export computes its log-mel front-end with an in-graph ONNX STFT op. ONNX Runtime has no CUDA/TensorRT kernel for STFT, and OpenVINO cannot translate it at all, so the stock export cannot run on GPU or OpenVINO. In these models the STFT is replaced with a mathematically equivalent Conv1d (framing + windowed DFT), so the graph holds no op those runtimes lack. Every file was run on ONNX Runtime CPU (x86-64 and a Raspberry Pi 5) and on OpenVINO at f32 (CPU on both, and an Intel integrated GPU), and its scores were compared with the x86-64 ONNX Runtime scores of the same file; the manifest's supported and verified_on follow those runs. OpenVINO must run at f32: its default f16 hint gives wrong scores on the Cortex-A76 and on Intel GPUs. It is not recommended: its margin over ONNX Runtime CPU was 7% at most where it was measured. The CUDA and TensorRT entries were not run for this release. One model serves CPU and GPU; there is no separate CPU/GPU build.

Input: raw audio [batch, 160000] (5 s @ 32 kHz, matching Perch v2 so a host can feed both classifiers the same buffer). Outputs: predictions [batch, 11,725] (a static dimension, sigmoid already applied) and embeddings [batch, 1280].

Variants and hardware

precision best for
-fp32- run this: ONNX Runtime and OpenVINO (BirdNET-Go runs v3.0 at f32 on every OpenVINO device)

This release ships FP32 only. For low-RAM CPU devices the right choice is a regional FP32 model.

int8-arm is not shipped for v3.0: the backbone is Conv-dominated and int8-arm only quantizes MatMul/Gemm weights, so it barely helps here.

Full model

file classes MB
full/birdnet-plus-v3.0-fp32-b1.onnx 11,725 361
full/birdnet-plus-v3.0-labels-b1.txt 11,725 -

Why regional models

The three-head classifier holds a large share of the model's parameters, so restricting it to a region's species set cuts memory and download size. Each tile is numerically identical to the full model on the species it keeps (max abs difference vs the full model < 1e-6); the only change is that out-of-region species are not emitted, which at a fixed monitoring location is exactly what you want. Region species sets come from the BirdNET Geomodel v3.0.2 range filter (species by occurrence probability, up to a per-tile cap, plus a cosmopolitan core), using the same tiles as the Perch v2 regional catalog. The cap is 800 for most temperate tiles and higher for species-rich ones. Every tile also contains Homo sapiens and the release's non-animal sound classes, whatever its range filter says.

A species the geomodel names differently from the classifier (a moved genus, a changed spelling) is matched through a reviewed rename table, so the tiles keep species an exact name match would have dropped.

Regional catalog

Each tile ships an fp32 model + labels + indices + coverage.png + metadata. regional/groups.json lists the continent grouping.

Europe

region coverage classes fp32 MB
azores 242 113.7
baltics 460 118.4
british-isles 579 121.0
canary-islands 412 117.4
central-europe 667 122.9
eastern-europe 540 120.1
iberia 649 122.5
iceland 409 117.3
madeira 274 114.4
nordic 443 118.0
southern-europe 638 122.2
svalbard 298 114.9
western-palearctic 1418 139.0

Asia

region coverage classes fp32 MB
china-north-central 791 125.5
china-northeast 688 123.3
china-southeast 1178 133.9
china-southwest 1228 134.9
himalaya 1226 134.9
indo-gangetic 1199 134.3
japan 609 121.6
south-asia-peninsular 671 122.9
tibet 1226 134.9

North America

region coverage classes fp32 MB
canada-alaska 777 125.2
north-america-east 818 126.1
north-america-west 821 126.2

South America

region coverage classes fp32 MB
amazonia 3182 177.0
andes 3314 179.8
eastern-brazil 1972 150.9
galapagos 156 111.9
southern-cone 1639 143.8

Africa

region coverage classes fp32 MB
cape-verde 162 112.0
central-africa 1537 141.6
east-africa 1824 147.8
mauritius 90 110.4
reunion 92 110.5
sao-tome-principe 133 111.4
seychelles 137 111.4
southern-africa 820 126.1
west-africa 1027 130.6

Oceania

region coverage classes fp32 MB
australia-east 757 124.8
hawaii 294 114.8
new-caledonia 190 112.6
new-zealand 289 114.7

Deployment

  • Point your host at a tile's model + its labels file (matching counts) and restart. Labels are Scientific name_Common name.
  • Confidence is a per-class sigmoid; slicing does not change a kept class's score (unlike a softmax model), so thresholds transfer directly from the full model.
  • Binaries are hosted here on HuggingFace; the derivation tooling lives separately.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support