A serious interest of mine is the use of autonomous recording units (ARU) to document bat (not covered here) and bird fauna. It was about a month ago that I received my first ARU. I deployed it in my front yard for 24 hours, but then outside of a few quick manual checks of the sound files I never did anything with it, the biggest reason being that I hadn’t yet set up the software to analyze it. That has finally changed.
Yesterday, I was able to get Cornell University’s BirdNet bird sound identification software installed on my M2 Pro Mac. Was that easy? No. Installation is only documented for Windows and Linux. Some of the pip installation instructions for Linux worked on the terminal on my Mac, but for some other software dependencies I had to install Miniconda. Then there was an issue with the sample birdnetlib python scripts not doing exactly what I wanted. Eventually, I was able to figure out how to combine python scripting and a Shortcuts application on my Mac to create a small desktop application with dialogues that ask for the folder location of the sound files to be analyzed, the date the sound files were created, and the latitude and longitude the ARU was deployed at. The latter two variables are important to determine what species to compare the sounds with. The output is one or more spreadsheets that are given the same name as the sound file they are from, with columns listing the species name, the start and end time of the species detection in the file in milliseconds, and the probability that the identification is correct.
Excited to have something workable, I deployed my ARU on a retaining wall overnight close to the center of our property in Elyria Canyon, Los Angeles County. A steady overnight rain made a mess of things, but I was excited with the results.
Black-crowned Night-Heron
The first file that was analyzed was a sound file covering roughly 7pm to 8pm. I was shocked when it spit out the table below showing a series of Black-crowned Night-Heron detections with a high confidence. I have never recorded that bird in my yard in 20 years, though they do occur commonly on the LA River less than a mile away. Excited at the prospect of a new bird, I opened the sound file in Cornell’s Raven Lite software to take a listen.
common_name | scientific_name | start_time | end_time | confidence |
Black-crowned Night-Heron | Nycticorax nycticorax | 1134.0 | 1137.0 | 0.27819857001304600 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1140.0 | 1143.0 | 0.9099594950675960 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1146.0 | 1149.0 | 0.5036227703094480 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1149.0 | 1152.0 | 0.8437350392341610 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1152.0 | 1155.0 | 0.9483907222747800 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1155.0 | 1158.0 | 0.9282914996147160 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1158.0 | 1161.0 | 0.7003783583641050 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1161.0 | 1164.0 | 0.9744422435760500 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1167.0 | 1170.0 | 0.9768115878105160 |
Black-crowned Night-Heron | Nycticorax nycticorax | 1179.0 | 1182.0 | 0.25506657361984300 |
The image below shows the initial view of the sound file in Raven Lite before digging down into the areas of interest.

Even after selecting the area of the file indicated in my table and trimming to the approximate start and end of the night-heron calls, the file was extremely noisy because of rain pelting the ARU and sirens. To deal with that, I filtered out frequencies above and below the night-heron calls. I also amplified the sounds in the file. The resulting very noisy spectrogram is below. You can play the sounds just below the spectrogram. It appears there is not just one, but TWO Black-crowned Night-Herons and sounded like they may have flown into the open end of the canyon and circled around before flying back out.

Western Screech-Owl
Unfortunately, the remainder of the files were a mess because the rain picked up, causing a lot more noise in the files. What that did was cause the BirdNet Analyzer to throw an error and fail. There is, however, a Lite Analyzer that uses somewhat different methods. I generated a python script using the Lite Analyzer, and while it threw back some errors in the terminal it DID give me outputs for all the files. The species tabulated were largely sloppy misinterpretations of rainfall sounds, but it did find our local Western Screech-Owls calling. I included a cleaned-up recording from last night below.


Leave a Reply