DEV Community

Cover image for Trail Ears: Identify Bird Calls in Your Browser, Even With No Signal
Simran Jaiswal
Simran Jaiswal

Posted on Edited on

Trail Ears: Identify Bird Calls in Your Browser, Even With No Signal

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission ๐ŸŒฟ

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

What I Built

Trail Ears is a website that identifies bird calls. You record or upload a short clip, and it shows the top 3 likely species with confidence scores. You can log each sighting with a note and export your trail log as a CSV.

It is built to make the screen the shortest part of a walk: It keeps screen time short: record a clip of up to 12 seconds, put the phone away, and check the result and log it when youโ€™re ready. It works for hikers, birders, run clubs, or anyone who has stood outside wondering what that sound is.

Demo

Trail Ears showing the top bird matches.
Live site: https://Er-Simran-Jaiswal.github.io/birdnet-web/trail-ears.html

Code

Repo: https://github.com/Er-Simran-Jaiswal/birdnet-web

The new pieces are trail-ears.html (the interface, location filter, and trail log) and sw.js (the offline cache).

How I Built It

  • Model: BirdNET, an open-source bird sound identification model from the Cornell Lab of Ornithology and Chemnitz University of Technology.
  • Inference: it runs in the browser with TensorFlow.js, using the open-source browser port georg95/birdnet-web, which I forked.
  • My part: a new front end with recording and upload, top-3 results, a minimum-confidence slider, an optional location filter that narrows species to the area and time of year, and a local trail log with CSV export.
  • Offline: a service worker caches the model and page after the first load, so it can keep working with no signal.

Why Does Open Innovation Matter?

  • No signal needed: a closed API stops working the moment you lose coverage, which on a trail is almost always. With open weights the model lives in the browser's cache.
  • Privacy: audio and location are processed on the device, so there is no server to send them to.
  • Cost: no API key, no account, no usage bill.
  • Hackable: because the model and the browser port are open, I could build a new interface and location filtering on top without asking anyone for permission.

Credits: BirdNET (CC BY-NC-SA 4.0, non-commercial use) and the TensorFlow.js browser port by georg95.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.