Downloads · 30 days
0
tphakala/Perch-v2-Models
Perch-v2-Models is a audio classification model from tphakala. Use it for the audio classification task on the model card, and read the license before you ship it in a product. It is set up for onnx. The card lists the license as apache-2.0.
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 spec…
Downloads · 30 days
0
Access
Public
Updated Sep 3, 2026
Repo size
6.2 GB
Likes
0
Public
Click a slice to open those files.
.onnx6.2 GB · 100%
From the Hugging Face model README
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.
no_dft) optimization by justinchuby.| 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 |
| 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 |
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.
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.
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
nordic | <img src="regional/nordic/coverage.png" width="210"> | 638 | 65.0 | 44.5 |
british-isles | <img src="regional/british-isles/coverage.png" width="210"> | 776 | 68.4 | 45.4 |
central-europe | <img src="regional/central-europe/coverage.png" width="210"> | 873 | 70.8 | 46.0 |
baltics | <img src="regional/baltics/coverage.png" width="210"> | 655 | 65.4 | 44.6 |
iberia | <img src="regional/iberia/coverage.png" width="210"> | 856 | 70.4 | 45.9 |
southern-europe | <img src="regional/southern-europe/coverage.png" width="210"> | 839 | 70.0 | 45.8 |
eastern-europe | <img src="regional/eastern-europe/coverage.png" width="210"> | 739 | 67.5 | 45.2 |
western-palearctic | <img src="regional/western-palearctic/coverage.png" width="210"> | 1599 | 88.7 | 50.5 |
iceland | <img src="regional/iceland/coverage.png" width="210"> | 591 | 63.9 | 44.3 |
svalbard | <img src="regional/svalbard/coverage.png" width="210"> | 480 | 61.1 | 43.6 |
canary-islands | <img src="regional/canary-islands/coverage.png" width="210"> | 598 | 64.0 | 44.3 |
madeira | <img src="regional/madeira/coverage.png" width="210"> | 459 | 60.6 | 43.4 |
azores | <img src="regional/azores/coverage.png" width="210"> | 426 | 59.8 | 43.2 |
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
south-asia-peninsular | <img src="regional/south-asia-peninsular/coverage.png" width="210"> | 879 | 70.9 | 46.0 |
indo-gangetic | <img src="regional/indo-gangetic/coverage.png" width="210"> | 1406 | 83.9 | 49.3 |
himalaya | <img src="regional/himalaya/coverage.png" width="210"> | 1407 | 83.9 | 49.3 |
japan | <img src="regional/japan/coverage.png" width="210"> | 799 | 69.0 | 45.5 |
china-northeast | <img src="regional/china-northeast/coverage.png" width="210"> | 877 | 70.9 | 46.0 |
china-north-central | <img src="regional/china-north-central/coverage.png" width="210"> | 976 | 73.3 | 46.6 |
china-southeast | <img src="regional/china-southeast/coverage.png" width="210"> | 1373 | 83.1 | 49.1 |
china-southwest | <img src="regional/china-southwest/coverage.png" width="210"> | 1409 | 84.0 | 49.3 |
tibet | <img src="regional/tibet/coverage.png" width="210"> | 1407 | 83.9 | 49.3 |
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
north-america-east | <img src="regional/north-america-east/coverage.png" width="210"> | 999 | 73.9 | 46.8 |
north-america-west | <img src="regional/north-america-west/coverage.png" width="210"> | 1002 | 74.0 | 46.8 |
canada-alaska | <img src="regional/canada-alaska/coverage.png" width="210"> | 962 | 73.0 | 46.5 |
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
amazonia | <img src="regional/amazonia/coverage.png" width="210"> | 3388 | 132.7 | 61.5 |
andes | <img src="regional/andes/coverage.png" width="210"> | 3535 | 136.3 | 62.4 |
eastern-brazil | <img src="regional/eastern-brazil/coverage.png" width="210"> | 2184 | 103.0 | 54.1 |
southern-cone | <img src="regional/southern-cone/coverage.png" width="210"> | 1855 | 95.0 | 52.0 |
galapagos | <img src="regional/galapagos/coverage.png" width="210"> | 336 | 57.6 | 42.7 |
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
southern-africa | <img src="regional/southern-africa/coverage.png" width="210"> | 1002 | 74.0 | 46.8 |
reunion | <img src="regional/reunion/coverage.png" width="210"> | 274 | 56.1 | 42.3 |
mauritius | <img src="regional/mauritius/coverage.png" width="210"> | 272 | 56.0 | 42.3 |
seychelles | <img src="regional/seychelles/coverage.png" width="210"> | 318 | 57.2 | 42.6 |
cape-verde | <img src="regional/cape-verde/coverage.png" width="210"> | 346 | 57.8 | 42.7 |
sao-tome-principe | <img src="regional/sao-tome-principe/coverage.png" width="210"> | 324 | 57.3 | 42.6 |
west-africa | <img src="regional/west-africa/coverage.png" width="210"> | 1309 | 81.5 | 48.7 |
central-africa | <img src="regional/central-africa/coverage.png" width="210"> | 1883 | 95.6 | 52.2 |
east-africa | <img src="regional/east-africa/coverage.png" width="210"> | 2159 | 102.4 | 53.9 |
| region | coverage | classes | fp32 MB | int8-arm MB |
|---|---|---|---|---|
australia-east | <img src="regional/australia-east/coverage.png" width="210"> | 946 | 72.6 | 46.4 |
new-zealand | <img src="regional/new-zealand/coverage.png" width="210"> | 486 | 61.3 | 43.6 |
hawaii | <img src="regional/hawaii/coverage.png" width="210"> | 478 | 61.1 | 43.6 |
new-caledonia | <img src="regional/new-caledonia/coverage.png" width="210"> | 377 | 58.6 | 42.9 |
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.
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.