acoupi
A Python package that streamlines bioacoustic classifier deployment on edge devices like the Raspberry Pi.
https://github.com/acoupi/acoupi
Category: Biosphere
Sub Category: Bioacoustics and Acoustic Data Analysis
Keywords
acoustic-monitoring bioacoustics edge-computing python-toolkit raspberry-pi
Last synced: about 12 hours ago
JSON representation
Repository metadata
Python toolkit to implement bioacoustics classifier on embedded systems.
- Host: GitHub
- URL: https://github.com/acoupi/acoupi
- Owner: acoupi
- License: gpl-3.0
- Created: 2023-03-06T16:17:56.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-07T09:57:47.000Z (about 2 months ago)
- Last Synced: 2025-04-22T00:09:44.241Z (6 days ago)
- Topics: acoustic-monitoring, bioacoustics, edge-computing, python-toolkit, raspberry-pi
- Language: Python
- Homepage: https://acoupi.github.io/acoupi/
- Size: 108 MB
- Stars: 24
- Watchers: 5
- Forks: 2
- Open Issues: 10
- Releases: 1
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
README.md
acoupi
[!TIP]
Read the latest documentation
Readme Content
- What is acoupi?
- Requirements
- Installation
- Ready to use AI Bioacoustic Classifiers
- Acoupi software architecture
- Features and Development
What is acoupi?
acoupi is an open-source Python package that streamlines bioacoustic classifier deployment on edge devices like the Raspberry Pi.
It integrates and standardises the entire bioacoustic monitoring workflow, from recording to classification.
With various components and templates, acoupi simplifies the creation of custom sensors, handling audio recordings, processing, classifications, detections, communication, and data management.
Requirements
acoupi has been designed to run on single-board computer devices like the Raspberry Pi (RPi).
Users should be able to download and test acoupi software on any Linux-based machines with Python version >=3.8,<3.12 installed.
- A Linux-based single board computer such as the Raspberry Pi 4B.
- A SD Card with 64-bit Lite OS version installed.
- A USB Microphone such as an AudioMoth, a µMoth, an Ultramic 192K/250K.
[!TIP]
Recomended HardwareThe software has been extensively developed and tested with the RPi 4B. We advise users to select the RPi 4B or a device featuring similar specifications.
Installation
To install and use the bare-bone framework of acoupi on your embedded device follow these steps:
Step 1: Install acoupi and its dependencies.
curl -sSL https://github.com/acoupi/acoupi/raw/main/scripts/setup.sh | bash
Step 2: Configure an acoupi program.
acoupi setup --program `program-name`
acoupi includes two pre-built programs; a default
and a connected
program.
The default
program only records and saves audio files based on users' settings. This program does not do any audio processing neither send any messages, being comparable to an AudioMoth.
The connected
program is similar to the default
program but with the added capability of sending messages to a remote server.
Configure acoupi default
program"
acoupi setup --program acoupi.programs.default
Configure acoupi connected
program"
acoupi setup --program acoupi.programs.connected
Step 3: Start the deployment of your acoupi's configured program.
acoupi deployment start
[!TIP]
To check what are the available commands for acoupi, enteracoupi --help
.
Ready to use AI Bioacoustic Classifiers
acoupi simplifies the use and implementation of open-source AI bioacoustic models. Currently, it supports two classifiers: the BatDetect2
, developed by @macodha and al., and the BirdNET-Lite
, developed by @kahst and al..
[!WARNING]
Licenses and UsageBefore using a pre-trained AI bioacoustic classifier, review its license to ensure it aligns with your intended use.
acoupi
programs built with these models inherit the corresponding model licenses.
For further licensing details, refer to the FAQ section.
[!WARNING]
Model Output ReliabilityPlease note that
acoupi
is not responsible for the accuracy or reliability of model predictions.
It is crucial to understand the performance and limitations of each model before using it in your project.
[!IMPORTANT]
Please make sure you are aware of their license, if you use these models.
BatDetect2
The BatDetect2 bioacoustic DL model has been trained to detect and classify UK bats species.
The acoupi_batdetect2 repository provides users with a pre-built acoupi program that can be configured and tailored to their use cases.
Step 1: Install acoupi_batdetect2 program.
pip install acoupi_batdetect2
Step 2: Setup and configure acoupi_batdetect2 program.
acoupi setup --program acoupi_batdetect2.program
BirdNET-Lite (COMING SOON!)
The BirdNET-Lite bioacoustic DL model has been trained to detect and classify a large number of bird species.
The acoupi_birdnet repository provides users with a pre-build acoupi program that can be configured and tailored to their use cases of birds monitoring.
Install acoupi_birdnet program.
pip install acoupi_birdnet
Setup and configure acoupi_birdnet program.
acoupi setup --program acoupi_birdnet.program
In development 🐳🐘🐝
[!TIP]
Interested in sharing your AI bioacoustic model with the community?acoupi allows you to integrate your own bioacoustic classifier model. If you already have a model and would like to share it with the community, we'd love to hear from you! We are happy to offer guidance and support to help include your classifier in the acoupi list of "ready-to-use" AI bioacoustic classifiers.
acoupi Software
Acoupi software is divided into two parts; the code-based architecture and the running application. The acoupi framework is organised into layers that ensure standardisation of data while providing flexibility of configuration. The acoupi application provides a simple command line interface (CLI) allowing users to configure the acoupi framework for deployment.
acoupi Framework
The acoupi software has been designed to provide maximum flexibility and keep away the internal complexity from a user. The architecture is made of four intricate elements, which we call the data schema, components, tasks, and programs.
The figure below provides a simplified example of an acoupi program. This program illustrates some of the most important data schema, components, and tasks.
[!TIP]
Refer to the Explanation of the documentation for full details on each of these elements.
acoupi Application
An acoupi application consists of the full set of code that runs at the deployment stage. This includes a set of scripts made of an acoupi program with user configurations, celery files to organise queues and workers, and bash scripts to start, stop, and reboot the application processes. An acoupi application requires the acoupi package and related dependencies to be installed before a user can configure and run it. The figure below gives an overview of key stages related to the installation, configuration and runtime of an acoupi application.
Features and development
acoupi builds on other Python packages. The list of the most important packages and their functions is summarised below. For more information about each of them, make sure to check their respective documentation.
Owner metadata
- Name: acoupi
- Login: acoupi
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/152899600?v=4
- Repositories: 1
- Last ynced at: 2024-10-11T17:43:06.936Z
- Profile URL: https://github.com/acoupi
GitHub Events
Total
- Create event: 14
- Release event: 1
- Issues event: 13
- Watch event: 27
- Delete event: 6
- Issue comment event: 27
- Push event: 71
- Pull request review comment event: 9
- Pull request review event: 16
- Pull request event: 24
- Fork event: 2
Last Year
- Create event: 14
- Release event: 1
- Issues event: 13
- Watch event: 27
- Delete event: 6
- Issue comment event: 27
- Push event: 71
- Pull request review comment event: 9
- Pull request review event: 16
- Pull request event: 24
- Fork event: 2
Committers metadata
Last synced: 2 days ago
Total Commits: 1,337
Total Committers: 2
Avg Commits per committer: 668.5
Development Distribution Score (DDS): 0.272
Commits in past year: 575
Committers in past year: 2
Avg Commits per committer in past year: 287.5
Development Distribution Score (DDS) in past year: 0.322
Name | Commits | |
---|---|---|
Aude | 4****i | 973 |
mbsantiago | s****l@g****m | 364 |
Committer domains:
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 51
Total pull requests: 93
Average time to close issues: about 2 months
Average time to close pull requests: 3 days
Total issue authors: 3
Total pull request authors: 3
Average comments per issue: 1.31
Average comments per pull request: 0.2
Merged pull request: 86
Bot issues: 0
Bot pull requests: 0
Past year issues: 41
Past year pull requests: 72
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 1 day
Past year issue authors: 3
Past year pull request authors: 3
Past year average comments per issue: 1.39
Past year average comments per pull request: 0.22
Past year merged pull request: 68
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- audevuilli (25)
- mbsantiago (14)
- SarahDal (12)
Top Pull Request Authors
- mbsantiago (64)
- audevuilli (27)
- augustweinbren (2)
Top Issue Labels
- bug (16)
- note (6)
- question (4)
- enhancement (4)
- help wanted (4)
Top Pull Request Labels
- enhancement (6)
Package metadata
- Total packages: 3
-
Total downloads:
- pypi: 490 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 7
- Total maintainers: 1
pypi.org: acoupi-birdnet
An acoupi-compatible BirdNET model implementation
- Homepage:
- Documentation: https://acoupi-birdnet.readthedocs.io/
- Licenses: MIT
- Latest release: 0.1.1 (published 3 months ago)
- Last Synced: 2025-04-26T02:00:30.412Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 71 Last month
-
Rankings:
- Dependent packages count: 9.694%
- Average: 32.137%
- Dependent repos count: 54.58%
- Maintainers (1)
pypi.org: acoupi-batdetect2
An acoupi-compatible BatDetect2 model and program.
- Homepage:
- Documentation: https://acoupi-batdetect2.readthedocs.io/
- Licenses: Creative Commons Attribution-NonCommercial 4.0 International
- Latest release: 0.3.0 (published 5 months ago)
- Last Synced: 2025-04-26T02:00:30.754Z (1 day ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 197 Last month
-
Rankings:
- Dependent packages count: 9.962%
- Average: 33.014%
- Dependent repos count: 56.067%
- Maintainers (1)
pypi.org: acoupi
Classifier for bioacoustic devices
- Homepage:
- Documentation: https://acoupi.readthedocs.io/
- Licenses: GPL-3.0
- Latest release: 0.3.0 (published 5 months ago)
- Last Synced: 2025-04-26T02:00:30.956Z (1 day ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 222 Last month
-
Rankings:
- Dependent packages count: 10.213%
- Average: 33.847%
- Dependent repos count: 57.481%
- Maintainers (1)
Dependencies
- actions/cache v4 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/cache v4 composite
- actions/checkout v3 composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/upload-artifact v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- pypa/hatch install composite
- actions/cache v4 composite
- actions/checkout v4 composite
- Jinja2 >=3.1.2
- astral >=3.2
- celery >=5.4.0
- click >=8.1.3
- eventlet >=0.36.1
- paho-mqtt >=1.6.1
- pony >=0.7.16
- pyaudio >=0.2.13
- pydantic >=1.10.8
- pydantic-extra-types >=2.9.0
- pydantic-settings >=2.0.3
- pygments >=2.18.0
- pytz >=2023.3.post1
- pyyaml >=6.0
- requests >=2.31.0
Score: 10.415951832970627