This project was initiated to attempt to replicate the results of BirdNET, but with frogs in Missouri. We've only coded the portion to obtain calls from iNaturalist, split them into 3 second samples and manually review them for use. That code resides in frog_calls_begin.py and is set up to run in individual cells in a Jupyter notebook. Cells at the end are for diagnostic purposes and will go away as the project nears completion.
Requires Python 3.12+. Install dependencies with:
pip install .Then launch Jupyter and open frog_calls_begin.py as a notebook (e.g. via the Jupytext extension or by converting it first).
Run the cells in order for each species:
- Setup — configure
CURRENT_SPECIESand create thedata/directory structure - Load observations — reads
data/downloads/<species>/full_calls.csv(exported from iNaturalist using a query for RG observations of the species with sound within Missouri, or surrounding states if Missouri doesn't have enough observation, and renamed to full_calls.csv) - Download sounds — fetches audio files from iNaturalist observation URLs
- Segment audio — splits each recording into 3-second WAV clips
- Generate spectrograms — saves a PNG spectrogram for each clip
- Score clips — auto-classifies clips as
keep,discard, orreviewusing signal band amplitude or RIBBIT (for trill species) - Manual review — plays borderline clips for human keep/discard decisions
- Export confirmed — copies all
keepclips todata/snippets/<species>/confirmed/