← All work

Bird Sound Classification

Identifying bird species from field recordings by turning sound into pictures.

Timeline
2025 · Complete
Role
Solo
Modality
Audio
Evaluated on
Confusion-matrix error analysis
Multiclass accuracy
71.9%
Species
12
Held-out confidence
78–85%
Binary task
100%

The problem

Biodiversity monitoring needs to know which species are present in an area, and doing it by ear at scale is not feasible. Field audio is also genuinely awful input: variable length, variable quality, background noise.

What I built

An end-to-end deep learning pipeline that converts raw MP3 field recordings into STFT spectrograms and trains CNNs to classify 12 bird species. The preprocessing stage does the unglamorous work: 22050 Hz resampling, 2-second windowing, decibel-scaled spectrograms, normalization. The core idea is that a sound becomes a 2-D image, at which point convolutional networks apply.

How I knew it worked

71.9% multiclass accuracy across 12 species, 100% on the binary task, and 78–85% confidence on held-out field recordings the model had never seen. More useful than the headline number was the error analysis: the confusion matrix showed the model mixing up House Finch and White-crowned Sparrow specifically, which traced to genuinely similar call structures rather than to a modelling bug. Knowing which classes fail and why is what tells you whether the next change will help.

Confusion matrix for the binary task, Northern Flicker versus House Finch. Twenty Northern Flicker samples and nineteen House Finch samples are all classified correctly; both off-diagonal cells are zero.
The binary task, Northern Flicker vs House Finch: clean separation, no errors either way. The 12-species run is the interesting one, because that is where House Finch and White-crowned Sparrow start trading places, but its confusion matrix is not in the repo.bird_sound_neural_network