Google's Perch v2 bioacoustic classifier in three deployment variants, plus a catalog of region-specific slices that are smaller and faster while staying numerically identical (bit-exact) to the full model on the species they keep.
Origin and attribution
Perch v2 by Google Research (bird-vocalization-classifier): EfficientNet-B3, ~12M embedding + ~91M classification params, ~15,000 species.
ONNX conversion and the DFT-to-MatMul (no_dft) optimization by justinchuby.
Regional slicing uses the BirdNET Geomodel v3.0 range filter (birdnet-team/geomodel) to pick each region's species.
Variants and hardware
filename token
precision
best for
_fp32
FP32, with DFT
GPU (CUDA/TensorRT), Intel CPU
_no_dft_fp32
FP32, DFT removed
OpenVINO (RPi5 fast path); also runs on ORT/CUDA
_int8_arm
partial INT8 (MatMul-only)
ARM CPU / Raspberry Pi, low RAM
Full model
file
MB
full/perch_v2_fp32.onnx
409
full/perch_v2_no_dft_fp32.onnx
413
full/perch_v2_int8_arm.onnx
131
full/perch_v2_labels.txt
14,795 classes
Why regional models
These slices are built for real-time detection on resource-constrained devices, phones, Raspberry Pi and other single-board computers, where running the full 14,795-class Perch v2 continuously is costly in both RAM and CPU. Most of that cost goes to recognising species that cannot occur at the listener's location. Restricting the model to a region's species shrinks the memory footprint and the per-inference compute (the classifier head is ~88% of the model), so an always-on detector keeps up with the live audio stream and leaves headroom for the rest of the application, on hardware where the full model would struggle. Each tile stays bit-exact to the full model on the species it keeps; the only change is that out-of-region species are not emitted, which at a fixed monitoring location is exactly what you want.
Regional catalog
Each tile: BirdNET Geomodel v3.0 range filter (top ~800 species for temperate regions, ~1200 for bird-rich tropical/subtropical ones, up to ~3500 for the hyper-diverse Neotropics) + 198 FSD50K sound events + a 27-species cosmopolitan core. Ships _no_dft_fp32 (OpenVINO/GPU) and _int8_arm (ARM) + labels + indices. All bit-exact vs the full model on the species they keep.
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. regional/groups.json lists the same grouping (ordered continents -> tiles) in one file, 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
int8-arm MB
nordic
638
65.0
44.5
british-isles
776
68.4
45.4
central-europe
873
70.8
46.0
baltics
655
65.4
44.6
iberia
856
70.4
45.9
southern-europe
839
70.0
45.8
eastern-europe
739
67.5
45.2
western-palearctic
1599
88.7
50.5
iceland
591
63.9
44.3
svalbard
480
61.1
43.6
canary-islands
598
64.0
44.3
madeira
459
60.6
43.4
azores
426
59.8
43.2
Asia
region
coverage
classes
fp32 MB
int8-arm MB
south-asia-peninsular
879
70.9
46.0
indo-gangetic
1406
83.9
49.3
himalaya
1407
83.9
49.3
japan
799
69.0
45.5
china-northeast
877
70.9
46.0
china-north-central
976
73.3
46.6
china-southeast
1373
83.1
49.1
china-southwest
1409
84.0
49.3
tibet
1407
83.9
49.3
North America
region
coverage
classes
fp32 MB
int8-arm MB
north-america-east
999
73.9
46.8
north-america-west
1002
74.0
46.8
South America
region
coverage
classes
fp32 MB
int8-arm MB
amazonia
3388
132.7
61.5
andes
3535
136.3
62.4
eastern-brazil
2184
103.0
54.1
southern-cone
1855
95.0
52.0
galapagos
336
57.6
42.7
Africa
region
coverage
classes
fp32 MB
int8-arm MB
southern-africa
1002
74.0
46.8
reunion
274
56.1
42.3
mauritius
272
56.0
42.3
seychelles
318
57.2
42.6
cape-verde
346
57.8
42.7
sao-tome-principe
324
57.3
42.6
Oceania
region
coverage
classes
fp32 MB
int8-arm MB
australia-east
946
72.6
46.4
new-zealand
486
61.3
43.6
hawaii
478
61.1
43.6
new-caledonia
377
58.6
42.9
Usage
Each model takes 5 s of 32 kHz mono audio ([1, 160000]) and outputs a label vector of logits over its species list; pair it with the sibling *_labels.txt (line count matches the logit count). Pick a variant by hardware (table above). Confidence is a softmax over the model's own classes, so a regional tile normalizes over fewer species than the full model; recalibrate detection thresholds per model.
Provenance
Regional slices are gathered from the ProtoPNet head of perch_v2_no_dft.onnx and validated bit-exact against the full model on the species they keep. Perch v2 is by Google; see the license above.