There are around 18000 bird species that have been identified across the globe and in India alone, there are over 15000 known bird lovers. This provides a large enough base to collect data as well as provide services.
The project attempts to recognize different bird calls by continuously listening to the audio through the onboard mic of the nano33 BLE Sense. The bird's call heard will be consumed by the model to classify it as one amongst the trained birds.
If no bird calls are heard, then the audio would be classified as background noise since we have included the background noise also during training. This project can be helpful for people who are interested in birding and would like to understand the habitat or patterns of the bird calls.
This Library can classify 6 different birds and background noise with an accuracy of 88%.
The birds are as follows:
- Rose-ringed Parakeet
- Asian Koel
- Greater_Coucal
- House_Crow
- Purple-rumped_Sunbird
- Red-whiskered_Bulbul
Use the example program nano_ble33_sense_microphone_Data_to_WebBLE for sending data over BLE or nano_ble33_sense_microphone for just display the result on Serial Monitor.
To use the BLE functionality, use this https://docmonster7.github.io/bird-sound-classifier-on-the-edge/.
This Library can classify 4 different birds and background noise with an accuracy of 94%.
The birds are as follows:
- Laughing Kookaburra
- Rose-ringed Parakeet
- Square Tailed Drongo
- Asian Koel
Use the example program nano_ble33_sense_microphone_Data_to_WebBLE for sending data over BLE or nano_ble33_sense_microphone for just display the result on Serial Monitor.
To use the BLE functionality, use this https://docmonster7.github.io/bird-sound-classifier-on-the-edge/.
Interfacing Arduino Nano 33 BLE Sense with Edge Impulse
Edge Impulse fully supports the Arduino Nano 33 BLE Sense, a compact development board containing a Cortex-M4 microprocessor, motion sensors, a microphone, and BLE. The studio supports sampling raw data, the development of models, and deploying trained machine learning models. It costs roughly $30 and is available from Arduino and a variety of distributors.
This can be easily achieved by installing all the dependencies on your system from Edge Impulse docs.
Once you have configured flashed the Nano 33 BLE sense with the edge-impulse framework we can continue with the next step.
2
Building a machine learning model
We require a lot of bird data and it is impractical to find data that is high in quantity as well as quality, we took data for specific birds from Xeno-Canto, which is a large database dedicated to sharing bird sounds from all over the world.
We picked 4 birds that are commonly found in our area.
Asian Koel
Laughing Kookaburra
Square Tailed Drongo
Rose-ringed Parakeet
3
Building a Dataset
We downloaded around 20-25 audio files for each bird and worked on preprocessing using software called Audacity. And then proceeded to augment the data, while infusing noise. And this helped us generate 200 files of 10 seconds each for all four of the above-mentioned labels as well as a label for the noise alone.
We now have a balanced dataset with 33 minutes and 20 seconds of data for each label in training and 8 minutes and 20 seconds of test data.