A realtime acoustic bird classification system for the Raspberry Pi 4B
Icon made by Freepik from www.flaticon.com
BirdNET-Pi is built on the TFLite version of BirdNET by @kahst using pre-built TFLite binaries by @PINTO0309 . It is able to recognize bird sounds from a USB sound card in realtime and share its data with the rest of the world.
Check out birds from around the world
- BirdWeather
- My system in North Carolina, United States
- NatureStation.net in Johannesburg, South Africa
- BirdNET-Pi in Öringe, Tyresö, Sweden
- Private Nature Garden, Grevenbroich, Germany
Currently listening in these countries . . . that I know of . . .
- The United States
- Germany
- South Africa
- France
- Austria
- Sweden
- Scotland
- Norway
If your installation isn't in one of the countries listed above, please let me know so that I can add your country to the list! Let me know either in a GitHub issue, or email me and let me know where your BirdNET-Pi is listening.
- 24/7 recording and BirdNET-Lite analysis
- BirdWeather integration (you will need to be issued a BirdWeather ID -- for now, request that from @timsterc here)
- Web interface access to all data and logs
- Automatic extraction of detected data (creating audio clips of detected bird sounds)
- Spectrograms available for all extractions
- MariaDB integration
- NoMachine remote desktop (for personal use only)
- Live audio stream
- Integrated phpSysInfo
- New species mobile notifications from Pushed.co (for iOS users only)
- Localization supported
- A Raspberry Pi 4B
- An SD Card with the 64-bit version of RaspiOS installed (please use Bullseye) (download the latest here)
- A USB Microphone or Sound Card
Headless installation guide available HERE
Pre-installeld beta image available for testing HERE
The system can be installed with:
curl -s https://raw.githubusercontent.com/mcguirepr89/BirdNET-Pi/main/newinstaller.sh | bash
The BirdNET-Pi system can be accessed from any web browser on the same network:
- Username:
birdnet
- Password: The "CADDY_PWD" password set during installation
/usr/local/bin/uninstall.sh && cd ~ && rm -drf BirdNET-Pi
I want this to work for you! If you have any trouble, or if my documentation is wrong, I'd like to get things right.
If you encounter any issues at any point, or have questions, comments, concerns, ideas, or want to share something, please take a look through the open and closed issues and the community discussions. PLEASE feel invited to open a new issue if you don't find the help you need. Likewise, please accept my invitation to start a new discussion to get a conversation started around your topic.
If you are not a GitHub user and need help, you can email me, but I hope you will consider making a GitHub account so that your questions can be answered here for others as well. I expect this project will attract more bird-enthusiasts than Linux-enthusiasts, so please don't feel like any question is too novice or, pardon the phrase, stupid to ask. I want to help!
Please join a Discussion!! and please join BirdWeather!! I hope that if you find BirdNET-Pi has been worth your time, you will share your setup, results, customizations, etc. HERE and will consider making your installation public.
The bird names are in English by default, but other localized versions are available thanks to the wonderful efforts of @patlevin. Please unzip model/labels_l18n.zip
and replace model/labels.txt
with your corresponding language. For instance, if you want the Swedish labels, rename the current labels.txt
to labels_en.txt
and then rename labels_sv.txt
to labels.txt
. (I will make this more straightforward in the future.)
The pre-built TFLite binaries for this project also support the BirdNET-Demo, which I am currently testing for integration into the BirdNET-Pi. If you know anything about JavaScript and are willing to help, please let me know in the Live Analysis discussion.
For some reason, the system seems to run more efficiently and the birds sound better when you the project :)
Expect FULL internationalization options during installation (and available post-installation) for the following languages:
- German
- Swedish
- French
- Spanish
and detection/database localization for the following languages:
Language | Missing Species out of 6,362 | Missing labels (%) |
---|---|---|
Afrikaans | 5774 | 90.76% |
Catalan | 544 | 8.55% |
Chinese | 264 | 4.15% |
Croatian | 370 | 5.82% |
Czech | 683 | 10.74% |
Danish | 460 | 7.23% |
Dutch | 264 | 4.15% |
Estonian | 3171 | 49.84% |
Finnish | 518 | 8.14% |
French | 264 | 4.15% |
German | 264 | 4.15% |
Hungarian | 2688 | 42.25% |
Icelandic | 5588 | 87.83% |
Indonesian | 5550 | 87.24% |
Italian | 524 | 8.24% |
Japanese | 640 | 10.06% |
Latvian | 4821 | 75.78% |
Lithuanian | 597 | 9.38% |
Norwegian | 325 | 5.11% |
Polish | 265 | 4.17% |
Portuguese | 2742 | 43.10% |
Russian | 808 | 12.70% |
Slovak | 264 | 4.15% |
Slovenian | 5532 | 86.95% |
Spanish | 348 | 5.47% |
Swedish | 264 | 4.15% |
Thai | 5580 | 87.71% |
Ukrainian | 646 | 10.15% |