Efficient Bird Species Classification

Telling 110 bird species apart by sound, using engineered audio features and lightweight models instead of deep learning.

Mrunal Kulkarni, Prakash Kumbhakar, Divyansh Pathak · End-semester project, April 2026

75.05%best accuracy
110species
217audio features
0.09 msper clip (LogReg, after features)

The problem

Deep CNNs reach about 95% on bird audio, but need hours of GPU training. We wanted to see how far careful feature engineering could go with models that train in seconds. The data is small and uneven: 2,161 recordings, with some species having only a couple of clips.

How it works

  1. Standardise. Resample to 22.05 kHz mono and loop short clips up to 35 seconds, so the sound is repeated instead of padded with silence.
  2. Describe. Turn each clip into 217 numbers covering timbre, pitch and texture: MFCC, Mel, Chroma, Spectral Contrast, Tonnetz and more.
  3. Balance. Create pitch, speed and noise variants for rare species, then apply SMOTETomek to the training data.
  4. Classify. Compare classical models and keep the best.
Grid of Mel spectrograms from different bird species
Each species leaves a different pattern in its spectrogram. The features summarise these patterns as numbers.

Results

ModelAccuracyTrain (s)Inference (ms)
Extra Trees75.05%1.61.36
Logistic Regression75.05%4.20.09
SVM (RBF)74.84%0.50.42
MLP (512, 256)73.76%14.20.003
Random Forest72.04%2.50.93
KNN68.82%0.01.76

The 90% target was not reached, and 75.05% may be slightly optimistic because augmentation and scaling happen before the train/test split. See the README for details.

What we learned

StageChangeAccuracy
BaselineMean of 40 MFCCs32.87%
v3Added variation over time67.36%
v4128 Mel bands + PCA71.53%
v5659 features (overfit)63.43%
Final35 s loops + SMOTETomek75.05%

The biggest jump came from capturing how a call changes over time. Adding many more features then made results worse on such a small dataset.

Number of recordings for each species, showing a long tail
Recordings per species. The long tail is why balancing mattered.

More

Slides (PDF) · Code and README