← Deployment 1·← Deployment 2·How they were run·Species list

How BirdNET turns audio into detections

Every report on this site counts one thing: detections. This page is what a detection actually is, so the reports don't each have to explain it.

The audio is cut into fixed 3-second windows

BirdNET does not look for the start and end of a song. It chops the recording into back-to-back 3-second windows — no overlap, no gaps — and hands each one to the network as 144,000 raw samples of 48 kHz mono audio, which the first layers turn into a spectrogram to classify as an image. Windows are the unit of everything: a bird singing steadily for a minute lands in twenty of them and is counted twenty times.

So a detection is one species in one 3-second window. Nothing in the pipeline tracks individual birds, individual songs, or how long a bout lasted.

Several species can share one window

Yes — BirdNET is multi-label, not multi-class. The network ends in a per-class sigmoid, so all 6,522 classes get their own independent score between 0 and 1. Those scores do not compete and do not sum to 1, the way a softmax would force them to. Every class that clears the threshold is written out as its own row.

That means a window with two species singing at once produces two detections, one for each. It is common: across both runs, 4,739 of 50,138 windows with any detection at all — 9% — held more than one species.

The busiest window on this site: Chestnut-backed Chickadee, Golden-crowned Kinglet, Red-breasted Nuthatch, White-breasted Nuthatch, all four inside the same three seconds, counted as four detections.

RunDatesDetectionsWindowsWindows > 1 speciesMost in one
Deployment 1Jul 23–243,7033,316380 (11.5%)4
Deployment 2Jul 24 – Aug 251,28246,8224,359 (9.3%)4

This is why the detection total is always larger than the number of windows that contained a bird, and why the totals are a measure of how much vocal activity there was, not how many birds were present.

What the model is scoring against

The checkpoint is BirdNET GLOBAL 6K V2.4, which knows 6,522 classes. Most are birds, but not all — there are buckets for dogs, engines, sirens, power tools, fireworks, gunshots, three kinds of human sound, and generic noise, so that common non-bird sounds have somewhere to go instead of being forced onto the nearest bird.

Every window is scored against all 6,522 of them. The model has no idea where the recorder is.

Two filters decide what gets reported

Both runs used the same list and the same threshold, which is what makes their numbers comparable.

What "confidence" is, and is not

The confidence attached to a detection is the sigmoid-squashed output for that class. It is not a probability that the identification is correct, and it is not calibrated across species — 0.6 for a chickadee and 0.6 for a warbler do not carry the same weight of evidence. It is best read as "how strongly this window resembles the training examples for that class."

That is why the reports separate detections at ≥ 0.80 rather than treating every detection alike, and why species with a handful of low-confidence hits and no clean audio clip should be treated as unconfirmed.

What none of this establishes

The reports include an audio clip for every charted species for exactly this reason: the model proposes, listening confirms.