// the find
MatteoHMarangoni/bird_detector_esp32
Low-power embedded bird detector for ESP32 Arduino framework. Developed within the project Chorusing Symbionts.
An Arduino-framework firmware and data pipeline that runs a bird-versus-noise MFCC classifier entirely on an ESP32-S3, built for a sound installation that has to react to birds without a network connection. The model comes from an Edge Impulse project trained on about 27 hours of park audio, so it is most useful to someone building a similar on-device acoustic classifier for one site, not to someone who wants a general-purpose bird detector.
The accuracy section is unusually candid: it sets the Edge Impulse test figure of 95% against field results of 82% with the custom mic and 64% with the MEMS breakout, and it admits the measurement method may be flawed. The data preparation scripts show real decisions rather than just file names, including BirdNET confidence filtering, species-mismatch removal, speech removal for privacy, and class rebalancing before training. The hardware-in-the-loop script plays labeled clips through a speaker, records what the board hears, and reports true and false positive rates and latency, which is a better evaluation setup than most embedded audio projects bother with. The two microphone paths are documented with their trade-offs stated, and the custom front end comes with a schematic in the electronics folder.
The README says full documentation will be added soon, and the data is the bigger gap. The data_raw folder holds about twenty short clips, while the 27-hour training set exists only in a hosted Edge Impulse project, so the model cannot be retrained from this repo alone. The latency figures do not agree with each other: 4 ms in Edge Impulse against roughly 50 ms on the device, with no explanation of what was timed, so the real-time claim for the musical interaction is unsupported as written. The 82% and 64% field numbers come from one site and one setup, and the README does not say how many clips or which species were in the test, so they show that a gap exists without showing how the model would do anywhere else. The lib folder carries a full vendored Edge Impulse SDK including the CMSIS tree, which buries the actual firmware, and the examples span several board families while the README documents only the S3 and INMP441 combination.