Bird Walk:結合 BirdNET 與 Gemma 的離線鳥類識別工具,會在不確定時如實回答
Bird Walk: An Offline Bird Identifier That Says "Not Sure" (BirdNET + Gemma) #devchallenge #hf26challenge
Bird Walk 結合 BirdNET v2.4 與 Gemma 3 1B,讓筆記型電腦在完全離線的情況下識別鳥類,並在不確定時回答「Not sure」。BirdNET 以聲音評分並按所在地及當週篩選候選鳥種,Gemma 則根據本地資料表生成簡短介紹;作者表示尚未在戶外實地測試。
This is a submission for the MLH x DEV Writing Challenge
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
Bird Walk is a bird identifier that runs entirely on a laptop with the Wi-Fi switched off. You press Enter, put the screen down, and listen to the birds around you for 15 seconds. Then it tells you which bird it heard, how sure it is, and a short field note about that bird.
I live near Attock, Pakistan. Most bird tools assume US or European species lists, so I made location part of the pipeline: the tool only considers birds that are plausible for my area in the current week. It is for anyone who wants to learn the birds around them without needing signal, an account, or a subscription.
The part I care about most is that it is willing to say "Not sure". A bird tool that always gives an answer is a tool that lies a lot.
Honest note: I built and tested this indoors, playing bird calls from a phone speaker next to the laptop microphone. I did not get to take it on a proper outdoor walk before the deadline. The design is meant for the outdoors (offline, microphone first, short answers), but I have not field-tested it yet.
Demo
Demo Video: https://drive.google.com/file/d/1f2F4F3O4l1yL_EzWlx2Z1Uzzwbxdqumf/view?usp=sharing
GitHub Repository: https://github.com/sundanaeem-systems/bird_walk
Partner Technologies
-
Gemma (by Google): Used Gemma 3 1B (open-weight, Q4_K_M GGUF format) via
llama-cpp-pythonto generate structured, two-sentence field notes about identified bird species locally on the CPU. - LiteRT / TensorFlow Lite: Used LiteRT to execute BirdNET v2.4 acoustic and geo-location models efficiently on a standard laptop CPU without heavy deep learning framework dependencies.
To keep the pipeline fast, lightweight, and completely offline, I combined BirdNET's v2.4 models with Google's Gemma 3 1B. The acoustic model scores the audio recording while the geo model filters candidate species based on my local coordinates and current week of the year.
Once a bird is identified above the confidence threshold, Gemma handles the human-readable storytelling. Implementing Gemma locally was seamless using llama-cpp-python. To prevent hallucination—a common challenge with 1B parameters—I constrained Gemma's prompt strictly to a local facts lookup table at temperature=0. Working with open weights gave me full control to adjust thresholds, eliminate API costs, and guarantee total privacy for location and microphone data.
Hackathon Experience
I built this project during an online MLH hackathon event focused on open-source AI and practical edge computing applications.
The atmosphere across the hacker community and Discord channels was hugely inspiring—seeing developers around the world build creative, privacy-focused, and open-source tools motivated me to build something tailored specifically to my local region in Pakistan. What I will remember most is the iterative process of taking a small 1B open model, wrestling with its initial hallucinations, and engineering a grounded, truthful system that knows when to say "Not sure".
來源:DEV Community · dev.to