I'm fairly satisfied with it and would recommend it to others who aren't interested in building their own solution. I like supporting the folks who are building it, although I'm unsure what the future looks like for the product. Could enshittify, could turn into Home Assistant Foundation [1] (which I also financially support). Time will tell.
I just used AI(antigravity with gemini 3.6 flash, but i'm sure many others would work) to implement this and integrate it with my security cameras after reading the blog post 26 minutes ago. I suspect the author did the same thing. I also had it steal the idea from the AvianVisitors link in this thread and it displays a generated collage of the recently detected birds.
Nice! I've tried to build something similar with Unifi cameras (https://github.com/dewey/birdhomie) and it worked pretty well, the species detection wasn't that accurate but I'll continue on that project in the winter.
I did exactly this with BirdNet-Go and my Unifi doorbell cam. Unifi exposes an RTSP feed for each camera so it was easy for the tool to just "listen" to the doorbell and start classifying.
I have a spare e-ink display and my next weekend project to follow onto this is to wire it up so it shows some faux "woodcut" images of birds detected, or something like that.
Love your eink example! You’ve just sent me on a parts shopping trip :)
I’ve been unhappy with my little lcd board I’ve been using for the same here https://github.com/simonjgreen/OpenObservatory as the contrast is bad. I was considering using one of my trmnl displays, but it isn’t quite the right operating model for the frequency of updates I want.
Do you mean an RTSP audio only stream separate from the video+audio feed you might ingest to an NVR, or combined audio/video RTSP stream? Most manufacturers of security cameras with ordinary RTSP stream functions support provide both video and audio together. 'Frigate' for instance will auto detect audio stream on a reolink camera and it "just works" in the latest versions of Frigate.
In the non-fucked up timeline where Hilary won in 2016, Flock cameras is a nationwide network of automatic bird identification cameras to track bird population and migration.
I don't love it either, but it's better than the alternative of Peace President(tm) -- famous for strokes of genius such as "can't we just shoot [the protestors] in the legs"; asking the military to "shoot missiles into Mexico to destroy the drug labs; and the masterful decision to deny Iran nuclear weapons by withdrawing from the JCPOA and joining Israel in waging an illegitimate war.
Yea tbh the only thing "wrong" about Hilary to me is that she rubs me the wrong way -- like I have a feeling she's just married to Bill so they can be the ultimate political power couple. But realistically that's such a terrible reason to dislike her, and is such a non-factor compared to the miles long laundry list of god-emperor Cheetolini's substantive flaws.
Heads up. I noticed the screenshot of your markdown card has an ASCII block that goes below the baseline. `U+2588` (Full block) tends to do that depending on a lot of things.
I made a change to the markdown card sometime ago that uses only `U+2581` through `U+ 2587` instead to avoid that issue.
I've done essentially the same thing before (using my existing Go2RTC and Frigate setup) but the challenge I ran into is that the microphones on my cameras just aren't very good.
Tawny owls make so many different noises. The classic sound is two, one calls and one answers but they are very chatty with different sounds. They live all around, but never seen one.
Merlin got me into birding, and I've found this to be true, at least in some regions, especially if there's lots of background noise.
Unless a species has a really, really unique call or song, I've made it my personal rule to get eyes on it and, if I'm still not convinced, to take a picture and cross reference with iNaturalist and what folks on there think of it.
I've learned to curse the species that differ from others by the sheen of the backs of the males' necks or the angle of a wingbar. Also, gulls that only differ by things like the color of their feet or beaks.
You can usually tell, though. Rare birds in the wrong place or time that come up only once are problematic, but if the bird is detected repeatedly there's a better chance. You should also be on the lookout for birds that mimic other birds (like the northern mockingbird and the gray catbird.)
Cornell / Merlin / eBird publishes a global species frequency DB indexed by location and date (so, how likely is a species to appear in a place, on a day of the year)... In a project that I was working on, this helped a lot when used to influence the "raw" identification based on appearance alone.
Occasionally I'll see a screenshot of Merlin with, I dunno, a dozen different birds, and in the middle of the list: a catbird. I never have the heart to tell people that they just heard one very creative bird.
For me, mostly a lot of false negatives. I have a Pixel 8, and I have no problems using the microphone normally, but somehow, Merlin requires the bird to be within a couple of meters of me and sing for quite a while before Merlin will even say “hearing a bird”. And of course, you have to be dead silent; if anyone talks or coughs, it will mess up the spectogram badly.
Given that it's colloquially “Shazam for birds” and Shazam is just amazingly resistant to noise, it's a bit disappointing :-)
I think what makes Shazam magically "just work" is that they are searching for the exact embedding of the recorded version of the song - it doesn't work for a cover version, acapella, etc even if it is very similar. (Everyone would want an app that you can hum into and it will ID the song, but I guess it's a very tough problem.)
Merlin is solving the more general problem so makes sense that it's much more finicky and less accurate.
> an app that you can hum into and it will ID the song
YouTube Music and Google Search do OK with these types. Sometimes if I know a song well enough, I will open YT Music, activate the mic search, and sing a few bars, instead of typing the song title.
According to Gemini, SoundHound is also a good app for song-hummers to try.
Still, we're talking orders of magnitude here. I've fed Shazam with a stream of the cheapest lapel microphone you could get, mounted behind a rack filled with twelve very noisy servers, in a hall filled with 5000 people also all being noisy, and it would reliably recognize music from the other side of that hall before I could do so myself (I had to walk halfway there to hear “oh, yes, it's actually right”). And that's on a stream encoded with 9600bps GSM compression. With Merlin, I can hold out my phone on a silent day, hear the bird loud and clear and it will hardly register.
Shazam primarily identifies on the geometry of spectogram peaks, FWIW (I wrote my master's thesis on the DSP of music recognition back in the day; it's possible that they are doing something more fancy now, of course, but I'm not sure if they would want to). I don't know exactly what Merlin is doing.
I'm not sure why but this seems very phone dependent. I can stand next to another person, both running Merlin in silence, and mine will pick up much more than some people's phones. My phone is not particularly new (Zenfone 8).
Indeed - background noise will tend to lead to a lot more false positives, but you should use it as a guide rather than inherently trusting results. Same goes for using BirdNET-go and other models, though these do allow you to be very strict with detections and reduce false positives more.
The journey to a magical, free bird sound ID app involves some obvious steps (the NSF gave them money), but the amount of timeline offramps is really high. The NSF didn't think this app was educational ("it's just telling them the answer, they don't even have to work for it!"), the funding ran out so they were thinking of charging money, eBird happened to have five years of bird sound recordings they could use, a computer vision guy on the team happened to learn that spectrograms are basically the same as pictures...
And the result is tremendously useful! They get great signal on where birds are, and they're making people so much more interested in birds and nature and science. And I think charging $1 for the app or, shudder, some sort of subscription model might've ruined the whole thing.
Funnily enough I was in the bathroom (that's where I do my most random thinking) just yesterday evening thinking how template matching in computer vision, e.g. https://docs.opencv.org/5.0/py_tutorials/py_imgproc/py_templ... is basically audio signal processing but instead of being temporal it is spatial. Different signals but same principle.
how confident is it in the identification? i imagine sometimes the angle is or resolution is bad and it may detect a bird but not have a lot to go off of to say what kind. does it narrow the list down or just make a guess?
It looks like they are using audio. Even with poor audio on my phone I find that it works very well. Once in a blue moon I'll get an ID I am doubtful of from BirdNet but it's rare in my experience.
but the thing with AI is that it excels in creating things we would not doubt, regardless of the truth. in particular, i find it to be susceptible to avoiding doubt at the expense of truth.
though i would be hopeful for bird audio, as differentiating their calls is something the birds themselves excel at, so it could very well be a great usecase for ai
machine learning has been used to identify bird calls for a while now, it's more of a classifier than a content generator, so it identifies calls and provides a confidence level
while it's not perfect it's not really producing hallucinations of pterodactyls or anything like that
Nice! I never thought about using my security cameras but ended up building a regular Birdnet-Pi with a microphone. I took it one step further to make it portable so that I can use it when we hike or travel to new places. Added a little e-ink display to the front and it allows me to see Top 3 for the day, last detected, and total number for the day.
Been working on a similar project for doing animal behavioral analysis on cameras setup in a barn. Turns out I need to build a data distillation pipeline first.
I run BirdNET-Go as an app on my Home Assistant i7 M710q. I use the GPU-enabled BirdNET model and Perch V2, and it works swimmingly.
Input is three RTSP streams from various Reolink PoE cameras around our house, and it is pretty cool to be able to find and listen to the birds/frogs that come.
My impression is that the hardest part is knowing whether or not you're actually doing a good job. For vocal learners (like the ovenbird example linked above), it seems to be pretty easy using embeddings from existing models (like perch or birdnet). For non-learning species (possibly including your swifts), you can use timbre clues to differentiate many individuals, but may not be able to really nail down individual identity.
I guess the first step is to install the cameras and see what I can figure out from there. I never thought about the perching or vocalizations as an identifier.
I have this too, I was looking to get more automated call recognition after we spotted a pheasant in my (suburban) back garden. I was going to buy a dedicated mike, but then realised that birdnet go works with any rtsp audio stream.
175 comments
[ 0.22 ms ] story [ 11.3 ms ] thread[1] https://www.openhomefoundation.org/
> No cloud services. No API calls.
> No subscription fees. No terms of service changes. No company shutting down the service in two years.
I like the idea of doing something with the timestamp of the recording, or highlighting new (or recently unheard) visitors.
https://alec.is/posts/building-a-solar-powered-bird-station/
I have a spare e-ink display and my next weekend project to follow onto this is to wire it up so it shows some faux "woodcut" images of birds detected, or something like that.
https://i.imgur.com/5XbM6bb.png
Also if anyone is interested, here is the server for the e-ink screen https://github.com/koryk/inky-impression-server
and here is a MCP for birdnet that I've been using for a bit https://github.com/koryk/birdnetpi-mcp-local-server
I’ve been unhappy with my little lcd board I’ve been using for the same here https://github.com/simonjgreen/OpenObservatory as the contrast is bad. I was considering using one of my trmnl displays, but it isn’t quite the right operating model for the frequency of updates I want.
Its very popular with friends and family, especially with older people that dont enjoy traditional tech.
Do you mean an RTSP audio only stream separate from the video+audio feed you might ingest to an NVR, or combined audio/video RTSP stream? Most manufacturers of security cameras with ordinary RTSP stream functions support provide both video and audio together. 'Frigate' for instance will auto detect audio stream on a reolink camera and it "just works" in the latest versions of Frigate.
would have been a great Mr. Robot episode
I'd still vote for her over the alternative the Republicans chose to offer to us (and did so). It was the only responsible thing to do.
I made a change to the markdown card sometime ago that uses only `U+2581` through `U+ 2587` instead to avoid that issue.
It's under a collapsed block here:
https://www.kyleniewiada.org/blog/2025/05/backyard-bird-trac...
Unless a species has a really, really unique call or song, I've made it my personal rule to get eyes on it and, if I'm still not convinced, to take a picture and cross reference with iNaturalist and what folks on there think of it.
I've learned to curse the species that differ from others by the sheen of the backs of the males' necks or the angle of a wingbar. Also, gulls that only differ by things like the color of their feet or beaks.
Given that it's colloquially “Shazam for birds” and Shazam is just amazingly resistant to noise, it's a bit disappointing :-)
Merlin is solving the more general problem so makes sense that it's much more finicky and less accurate.
YouTube Music and Google Search do OK with these types. Sometimes if I know a song well enough, I will open YT Music, activate the mic search, and sing a few bars, instead of typing the song title.
According to Gemini, SoundHound is also a good app for song-hummers to try.
Shazam primarily identifies on the geometry of spectogram peaks, FWIW (I wrote my master's thesis on the DSP of music recognition back in the day; it's possible that they are doing something more fancy now, of course, but I'm not sure if they would want to). I don't know exactly what Merlin is doing.
The journey to a magical, free bird sound ID app involves some obvious steps (the NSF gave them money), but the amount of timeline offramps is really high. The NSF didn't think this app was educational ("it's just telling them the answer, they don't even have to work for it!"), the funding ran out so they were thinking of charging money, eBird happened to have five years of bird sound recordings they could use, a computer vision guy on the team happened to learn that spectrograms are basically the same as pictures...
And the result is tremendously useful! They get great signal on where birds are, and they're making people so much more interested in birds and nature and science. And I think charging $1 for the app or, shudder, some sort of subscription model might've ruined the whole thing.
https://www.youtube.com/watch?v=zl-wAqplQAo
(you either go the path of a burner or a birdie, I don't make the rules)
though i would be hopeful for bird audio, as differentiating their calls is something the birds themselves excel at, so it could very well be a great usecase for ai
while it's not perfect it's not really producing hallucinations of pterodactyls or anything like that
Case I used to make it portable and fit the display https://makerworld.com/en/models/1336154-portable-pi-sdr-cas...
I really gotta set mine up!
Input is three RTSP streams from various Reolink PoE cameras around our house, and it is pretty cool to be able to find and listen to the birds/frogs that come.
Any advice on how to go about this.
My current plan is to put multiple cameras at the mouth of the chimney opening which is about 42"x42"(1mx1m).
Here's one example: https://github.com/sammlapp/ovenbird-individual-recognition
My impression is that the hardest part is knowing whether or not you're actually doing a good job. For vocal learners (like the ovenbird example linked above), it seems to be pretty easy using embeddings from existing models (like perch or birdnet). For non-learning species (possibly including your swifts), you can use timbre clues to differentiate many individuals, but may not be able to really nail down individual identity.
Thank you for bring this up.
I do need to tune the false positives though.