DEV Community

Anush Deotare
Anush Deotare

Posted on

Dawn Chorus: An Offline Bird-Call Bingo Built on BirdNET and Gemma (hacktoberfest week 1 dev challenge)

Hacktoberfest: Contribution Chronicles

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

What I Built

Dawn Chorus is a listening-walk bird bingo that runs entirely on my laptop.

  1. The app shows a bingo card of the 12 birds most likely near me this week.
  2. I put my phone in my pocket, in airplane mode with the screen off, and record the walk with the normal voice recorder.
  3. Afterwards I upload the recording. An open-source model identifies the birds by their calls, and a local model writes a short field-journal page.
  4. The journal ends with the birds I missed, which is the reason to go out again tomorrow.

The screen is the shortest part of the experience. A "Grass Ratio" card compares the minutes I spent outside with the seconds I spent on screen. It's for anyone curious about the sounds around them, including places with no signal.

Real test: I walked 30 minutes on DATE. BirdNET found 10 species, including 5 of the 12 bingo birds, and I confirmed Myna, House Crow, Rock Pigeon myself. Screen time: 2 minutes.

Demo

A short captioned walkthrough: the bingo card, airplane mode, the walk with the screen dark, then the results.

Code

Dawn Chorus

Put your phone away. Listen to the morning.

Dawn Chorus is a listening-walk bird bingo that runs entirely on your own laptop. You get a checklist of the birds likely to be near you this week, you go for a walk with your phone recording in your pocket and the screen off, and when you get back an open-source model tells you who was singing. A local language model then writes you a short field-journal page about the walk.

Built for the Hacktoberfest Open-Source AI Challenge, Week 1: "Touch Grass". The idea: the screen should be the shortest part of the experience.

Python 3.9 License MIT Offline first

The story, real walk results and demo video are in the DEV post: Dawn Chorus on DEV


Contents

  1. How it works
  2. Features
  3. Quick start
  4. Taking a walk
  5. Upload straight from your phone
  6. Running fully offline
  7. Why open-source AI
  8. Limitations (please read)
  9. Project structure
  10. Testing and…

How I Built It

  • BirdNET identifies birds from audio. Its location and week model also builds the bingo card and filters out birds that don't live nearby.
  • Gemma 3 (4B), served locally by Ollama, writes the field journal.
  • Streamlit and ffmpeg handle the interface and audio.

Two lessons shaped the design:

  • Filtering by location matters. Without it, the detector reported dozens of species from a short clip.
  • Language models invent things. With an empty detection list, Gemma wrote about a Robin and a Cardinal that don't live here. Now the card is checked against the detections, and a plain template replaces it if it mentions a bird that wasn't heard.

Why Does Open Innovation Matter?

  • It works with no signal. BirdNET runs on the laptop, so a forest trail is no problem. A hosted audio API wouldn't work there.
  • Recordings stay private. A walk recording holds a location and other people's voices. Nothing is uploaded.
  • No per-request cost. Analyzing a long walk every day is free.
  • A specialist model fits better. BirdNET is trained for exactly this task, and I could inspect and fix its over-reporting myself.

One caveat: Gemma is replaceable by almost any small local model. BirdNET is the part a general closed API couldn't replace offline. Its weights are also non-commercial.

My Agent Session

I planned the project with Claude and built it with Antigravity, testing each round myself and sending back what failed. [[OPTIONAL: paste your DevRelay session link, or delete this section]]

Prize Categories

Best Use of Gemma: Gemma 3 (4B) runs locally through Ollama and writes the field journal, fully offline, with a check that keeps its output honest.

Top comments (0)