Explore showcase

Bird Audio Classification

Ideator, Programmer · Spring 2026

Project6 / 13

Overview

At a glance

Deep learning final exploring transformer audio backbones on real field recordings. The emphasis is on reproducible training, honest evaluation, and communicating comparative behavior—not chasing leaderboard scores.

PyTorchHuggingFaceHuBERTAST
View GitHubView GitHub

Features

  • Side-by-side HuBERT vs AST benchmark pipeline.
  • 10-species classifier built from common U.S. birds.
  • End-to-end training/evaluation with reusable caching.
  • Comparative reporting for overall and per-class behavior.
  • Demo inference mode with playful presentation flavor.

Implementation

  • Replaced pretrained classification heads for downstream 10-class objective.
  • Built audio preprocessing and feature preparation pipeline for trainer-ready datasets.
  • Implemented HuggingFace Trainer loop with validation and iterative hyperparameter tuning.
  • Added `save_to_disk/load_from_disk` caching to skip expensive dataset rebuilds.
  • Implemented confusion matrix and class-level reporting to inspect failure patterns.
  • Measured inference runtime and computed rough efficiency metrics (params + FLOPs/MACs).
  • Added persona-style print output in inference demos for a more engaging presentation.

Challenges

  • Bugs often surfaced late into long training runs, making debug cycles expensive.
  • Optimization scope remained basic (mostly hyperparameter-level) due time and workload constraints.
  • Balancing class schedule with long training iteration cycles was difficult.
  • Not intended as publication-grade research; focused on learning and functional comparative implementation.

Reflection

  • This idea came from prior BERT assignment experience (MRPC, SQuAD, SST-2), and I wanted to apply transformer-style thinking to ecological monitoring.
  • One search showed specialized bird-audio models already exist, but I still wanted to compare base-ish approaches and learn through building.
  • It was not smooth. We had multiple “find the bug after an hour of training” moments.
  • Even if this is basic by advanced ML standards, it was still hard for me and I’m glad we got a complete pipeline running.
  • I added goofy persona narration in the demo because I think technical demos are way more memorable when they have some personality.