Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liske/birdprobe
Offline live monitoring of bird vocals using the BirdNET artificial neural network. (Mirror)
https://github.com/liske/birdprobe
acoustic-monitoring bioacoustics birdnet birds birdsong-recognition
Last synced: about 2 months ago
JSON representation
Offline live monitoring of bird vocals using the BirdNET artificial neural network. (Mirror)
- Host: GitHub
- URL: https://github.com/liske/birdprobe
- Owner: liske
- License: agpl-3.0
- Created: 2023-05-16T21:29:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-06T19:35:16.000Z (over 1 year ago)
- Last Synced: 2024-01-27T18:11:23.494Z (11 months ago)
- Topics: acoustic-monitoring, bioacoustics, birdnet, birds, birdsong-recognition
- Language: Python
- Homepage: https://codeberg.org/liske/BirdPROBE
- Size: 56.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BirdPROBE
BirdPROBE does offline live monitoring of bird vocals using the [BirdNET artificial neural network](https://birdnet.cornell.edu/).
## Design
BirdPROBE consists of several components loosley connected through a MQTT broker:
- `birdprobe-detection` - records audio and does detection based on *BirdNET*, publishes it's detections via MQTT
- `birdprobe-display` - displays detections and status informations via external displays by listening to MQTT events
- `birdprobe-location` - publishes location information via MQTT from different providers (`none`, `static`, `gpsd`)
- `birdprobe-record` - records detection events *TODO*
- `birdprobe-sysclock` - approximate system time from gpsd for budget gps dongles (for SBCs w/o RTC like *Raspberry Pi*)All components can run on a single host. They also can run distributed or you could run multiple instances.
By default the MQTT topics contains the `$(hostname)` string to distinguish component instances per node.## Status
This is project is in WIP and not ready to use, yet.
## Usage
### MQTT Broker
You need a MQTT broker. You can use a local *mosquitto*:
```console
# apt-get install mosquitto mosquitto-clients
```### Install
Install external dependencies for *birdnetlib* and *pyaudio* python packages:
```console
# apt-get install ffmpeg virtualenv portaudio19-dev
```Clone this repository locally:
```console
$ git clone https://codeberg.org/liske/BirdPROBE.git
```Create a python3 virtualenv
```console
$ cd BirdPROBE
$ virtualenv -p python3 venv
$ . venv/bin/activate
```Install *BirdPROBE*:
```console
$ pip install -e .
```You can add optional features:
- `gps` - *gpsd* based location provider
- `ws-epd`- *waveshare-epaper* display support```console
$ pip install -e '.[gps,ws-epd]'
```### Run
The components provide appropriate commands in the virtualenv to start them.
Run the detection component:
```console
$ birdprobe-detector -c /path/to/config.ini
```Run the location provider:
```console
$ birdprobe-location -c /path/to/config.ini
```Monitor MQTT messages:
```console
$ mosquitto_sub -v -t 'BirdPROBE/#'
```## TODO
- provide some packaging
- finish components
- logging
- more optimization for low power setups
- use some binary rather than JSON message format
- update prediction only if location has significant changes
- update week_48 less often