Birdnet-go is a real-time sound analyzer that detects bird species. It can take in audio from microphones. I set mine up to stream audio from my security cameras that I already had installed. There’s even a Home Assistant App, if you’re using it.
I live in a more suburban/semi-urban environment, but was really surprised to so many different bird species.



Audio processing by ai can absolutely happen on a pi.
As an example, whisper.cpp is a high performance speech recognition model, and it does a great job. The biggest version of it as a model requires less than 5GB to live fully in memory, the large model at about 1.5billion parameters, and it works great even CPU only.
The one used most often is small, which has about 244million parameters, and needs about a gig of ram and nothing more.
For a pi 5, usually the base or tiny model are used. Small could be used in most scenarios, but tiny and base are able to run real-time.
So it depends for how local - sometimes its all self contained and can do just fine on a pi, sometimes its local in that it needs an LLM endpoint to hit, but that can be running on another system entirely.
It would really depend on the project for how/where/why for a definition of local.
Thanks.
I understand now that this software does not use one of the big general AI providers but a specialised model (for birds esp.?) that runs locally; that I can get behind.
Are there other keywords in software descriptions I can look for that help me make such distinctions?
Aside from “local model”, you might see things like whisper.cpp, llama.cpp, ollama, or “OpenAI compatible endpoint”, or a reference to getting models from HuggingFace (you can think of it like github for llm’s - its more and less, but accurate enough for what we’re talking about here).
whisper.cpp is a c++ implementation of whisper (ASR as mentioned), llama.cpp is a high performance and lightweight tool to support llm/llm inference, ollama is a very user friendly way to do the same, and OpenAI compatible endpoint is just using the protocol for communication, so you can point the client at llama.cpp or similar running on the same machine or another you have access to.
Most things with an extemely tight purpose like this (like listening for some birds singing) will use much leaner models, and may be able to run even from a phone.