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

BirdNET+ V3.0 (developer preview 3.1) 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.

Developer preview. These are preview3.1 models for research and evaluation. See TERMS_OF_USE.txt (CC BY-SA 4.0; no poaching or military use).

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: EfficientNetV2-S backbone, three-head classifier, 11,560 species. Base preview models are distributed by the BirdNET team on Zenodo.

The GPU-native conversion and the regional slicing in this repo are derived work under CC BY-SA 4.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 is fully supported on ONNX Runtime CPU, OpenVINO (x86 + Intel GPU), CUDA, and TensorRT. On multi-threaded CPU it is also slightly faster than the stock model (ORT's STFT op is poorly parallelized). 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,560] and embeddings [batch, 1280].

Variants and hardware

precision best for
_fp32 run this everywhere: CPU (ORT + OpenVINO), CUDA/TensorRT, Intel GPU
_fp16 half the download; GPU speed win. Not a CPU win (see below)

FP16 is a download-size lever, not a CPU one. ONNX Runtime upconverts FP16 weights at inference, so on CPU (x86 and ARM alike) FP16 is equal to or slower than FP32, and on a Raspberry Pi 4 it uses more RAM than FP32. For low-RAM CPU devices the right choice is a regional FP32 model, not FP16.

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.

Measured (batch 1, 5 s window)

device full fp32 regional fp32 (nordic) peak RAM full / regional
RPi5, OpenVINO 168 ms 128 ms -
RPi5, ORT 4 threads 363 ms 253 ms 685 MB / 229 MB
RPi4B, ORT 4 threads 874 ms 743 ms 688 MB / 236 MB
x86 i7-1260P, ORT 4 threads 70 ms 59 ms -

OpenVINO is 2.2x faster than ONNX Runtime on a Raspberry Pi 5. Batching helps only on a GPU (1.5x at batch 8, FP16); on CPU use batch 1.

Full model

file classes MB
full/birdnet-v3.0-preview3.1-fp32-b1.onnx 11,560 557
full/birdnet-v3.0-preview3.1-fp16-b1.onnx 11,560 279
full/birdnet-v3.0-preview3.1-labels-b1.txt 11,560 -

Why regional models

The three-head classifier is 80% of the model's parameters, so restricting it to a region's species set cuts memory a lot (**67% less RAM**: 685 MB -> 229 MB on a Raspberry Pi 5) and latency modestly (15-30%). The parameters live in the heads, but the convolutional backbone still does most of the arithmetic, so the headline win is footprint rather than speed. That is exactly what an always-on detector on a phone or single-board computer needs. 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 range filter (top ~800 by occurrence probability + a cosmopolitan core), using the same tiles as the Perch v2 regional catalog.

Regional catalog

Each tile ships _fp32.onnx (OpenVINO/GPU/CPU) and _fp16.onnx + labels + indices. All are numerically identical to the full model on the species they keep (max abs difference < 1e-6); species sets come from the BirdNET Geomodel v3.0 range filter, using the same tiles as the Perch v2 regional catalog.

Each tile folder also has coverage.png (a map of the region it covers) and metadata.json (species count, covered countries, and the continental group it belongs to).

Tiles are organised by continent below, in the same order as the Perch v2 catalog. regional/groups.json lists the continent order, and each tile's metadata.json carries its group / group_display / group_order, so an application can rebuild these sections without scraping this table.

Europe

region coverage classes fp32 MB fp16 MB
nordic 422 135.0 67.7
british-isles 559 140.2 70.3
central-europe 644 143.4 71.9
baltics 438 135.6 68.0
iberia 627 142.8 71.6
southern-europe 616 142.3 71.4
eastern-europe 518 138.6 69.5
western-palearctic 801 149.4 74.9
iceland 391 133.8 67.1
svalbard 280 129.6 65.0
canary-islands 388 133.7 67.0
madeira 255 128.7 64.5
azores 224 127.5 63.9

Asia

region coverage classes fp32 MB fp16 MB
south-asia-peninsular 644 143.4 71.9
indo-gangetic 814 149.8 75.1
himalaya 812 149.8 75.1
japan 577 140.9 70.6
china-northeast 650 143.6 72.0
china-north-central 752 147.5 73.9
china-southeast 808 149.6 75.0
china-southwest 816 149.9 75.1
tibet 811 149.7 75.1

North America

region coverage classes fp32 MB fp16 MB
north-america-east 800 149.3 74.8
north-america-west 802 149.4 74.9
canada-alaska 738 147.0 73.9

South America

region coverage classes fp32 MB fp16 MB
amazonia 809 149.7 75.0
andes 809 149.7 75.0
eastern-brazil 812 149.8 75.1
southern-cone 807 149.6 75.0
galapagos 136 124.1 62.3

Africa

region coverage classes fp32 MB fp16 MB
southern-africa 802 149.4 74.9
reunion 73 121.8 61.1
mauritius 72 121.7 61.0
seychelles 115 123.3 61.9
cape-verde 143 124.4 62.4
sao-tome-principe 110 123.2 61.8
west-africa 994 156.7 78.4
central-africa 1505 176.0 88.1
east-africa 1784 186.6 93.4

Oceania

region coverage classes fp32 MB fp16 MB
australia-east 708 145.8 73.1
new-zealand 266 129.1 64.7
hawaii 272 129.3 64.8
new-caledonia 168 125.4 62.9

File naming and versioning

Files are named birdnet-<upstream>-[<region>-]<variant>-b<build>.onnx, where upstream is the BirdNET release these weights come from (v3.0-preview3.1) and build is this repo's build revision of that conversion. A new upstream release or a new conversion always gets a new filename; a published file's bytes never change. models.json is the machine-readable index: it lists every file with its variant, checksum, input contract, and which backends it actually runs on (including where a backend is not supported), plus a selection map from hardware/backend to the file to download.

Deployment

  • Point your host at a tile's model + its _labels.txt (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