code & projects

Open tools for working with animal sound, and things built with them.

Most of these began as something I needed for my own research and turned out to be useful to others. All of them are open.

Software

Download animal sound recordings and metadata from Xeno-canto, from the command line or in Python. Filter by species, place, date, quality, sample rate and more. Re-running a query fetches only what's new, so datasets can grow without duplicates.

pip install xenocanto-api
Python · CLI · MIT · GitHub

A trainable PyTorch port of Google's Perch v2 bioacoustic model. Extract embeddings, train a linear probe, or fine-tune the full backbone. The port is converted node by node from the released model and verified to match its outputs.

git clone https://github.com/bghani/perchv2-pytorch
Python · PyTorch · Apache 2.0 · Unofficial port · GitHub

Upload large datasets to Zenodo without the browser timing out. Compresses directories automatically, retries failed transfers and verifies checksums, from the command line or in Python.

pip install zupload
Python · CLI · GitHub
Projects
The Bioacoustic Map of Kashmir, showing recordings on a map alongside an embedding view

Kaetij · Bioacoustic Map of Kashmir

Kashmir's animal sounds, explored two ways: on a map of where each one was recorded, and in an embedding space where similar sounds sit close together. Click any point to hear it. Every recording comes from Xeno-canto, and the site invites people to add more.

Next.js · Leaflet · Three.js · kaetij.com