Skip to content
Songline cover artwork
Machine Learning / Mobile
January 20, 2026← All projects

Songline

An on-device bird call identifier. Record a clip on your phone, get a species, nothing leaves the device.

Tech stack
PythonPyTorchTFLiteNumPyLibrosa

Project dossier

Inside the build.

A technical record of the decisions, systems, and trade-offs behind Songline.

Technical notesMachine Learning / Mobile

The problem

Songline showing a detected bird species with a confidence score and runner-up candidates

The app screen: a live recording, the top match, and the runners-up with honest confidence numbers.

Bird sound guides assume you already know what you are listening for. I wanted the opposite: point a phone at something making noise and have it tell you what it heard.

What I built

  • A training pipeline over field recordings, with augmentation built from the noise I actually recorded near traffic and wind
  • A TFLite conversion and quantization pass tuned so the compressed model still matched the original on the samples I cared about
  • On-device feature extraction, so the audio is never uploaded anywhere
  • A species shortlist with confidence shown honestly instead of a single confident guess

Why it runs on the phone

Everything happens locally. There is no account, no upload, and no API key. That was a constraint I set early because it made the privacy story simple and the latency predictable.

Stack

Python, PyTorch, TFLite, and a small inference layer tuned for mobile.

Availability

The code for this one is still private while I clean it up, so there is nothing to link to yet.