YAAAT! Yet Another Audio Annotation Tool
Interactive bioacoustic annotation tool for measuring animal vocalizations.
Features:
- Changepoint Annotator, for marking temporal onset, offset, and changepoints in vocalizations. Useful for describing rapid fluctuations and identifying nonlinear phenomena.
- Peak Annotator, for marking dominant frequency peaks on the power spectrum. Useful for describing spectrally complex vocalizations.
- Harmonic Annotator, for identifying harmonics.
- Batch Annotator, for multi-file review and defining binary and multi-label annotation schema
| Changepoint Annotator | Peak Annotator | Harmonic Annotator | Batch Annotator |
Installation
pip install yaaat
WIP:
Optional detection/classification backend:
pip install yaaat[ai]
Requirements
- Python 3.9+
- numpy, scipy, matplotlib, natsort, pandas
- pysoniq (custom minimal audio I/O)
- ffmpeg (adds MP3 support via pysoniq, optional)
Usage
Launches the full 4-tab interface:
yaaat
From the local directory:
python -m yaaat
From Python command line:
from yaaat import main
main()
Tabs
Base Annotator
Spectrogram and waveform viewer. No annotation logic. Shared point annotation API available for programmatic use.
Changepoint Annotator
Click-to-add contour points for syllable segmentation. Supports lasso selection, Ctrl+Click dual-endpoint marking, harmonic bounding boxes, skip file dialog, and find-next-skipped navigation.
Peak Annotator
Dual-resolution display — vertical spectrogram (temporal resolution) with PSD overlay (frequency resolution). Click-to-mark spectral peaks. Auto-detection with prominence threshold.
Harmonic Annotator
Auto-detects F0 from mean spectrum. Builds harmonic series with draggable correction lines. Computes inter-harmonic valley boundaries (min energy search) for spectral band visualization. Multiple ridge detection methods: max, peaks, centroid, parabolic, peak ratio.
Batch Annotator
Paginated grid view of mel spectrograms across a dataset. Define named batch annotation columns (e.g. has_noise, has_bifurcation). Batch annotate selected files True/False. Export to CSV.
Copyright and License
Copyright 2025-2026 laelume aka Ashlae Blum'e. Licensed under MIT License.
Please ⭐ or follow us if you enjoy this work !!
To cite the repository:
@software{blume2025yaaat, author = {Ashlae Blum'e}, title = {{YAAAT: Yet Another Audio Annotation Tool}}, year = {2025}, url = {https://github.com/laelume/yaaat}, version = {0.2.0}, note = {GitHub repository} }
To cite the paper:
@article{blume2026yaaat, author = {Ashlae Blum'e}, title = {{YAAAT! Yet Another Audio Annotation Tool}}, year = {2026}, url = {https://hal.science/hal-05638791v2}, note = {HAL preprint, version 2} }
Metadata
Release files for yaaat 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| yaaat-0.2.1.tar.gz | 13.3 MB | Without provenance | Details for yaaat-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| yaaat-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for yaaat-0.2.1-py3-none-any.whl |
Total release size: 26.6 MB
Release files / yaaat-0.2.1.tar.gz
| Download URL | yaaat-0.2.1.tar.gz |
|---|---|
| Size | 13.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d01995a5fafa6c9f40b004d8c95392c05747400a60064d4116fe97050c660451
|
|
BLAKE2b-256 checksum How to use checksums |
f8ff929803b98d401cd0fb8043a252e4dad950f548d3a0deebaf9eb10840e086
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / yaaat-0.2.1-py3-none-any.whl
| Download URL | yaaat-0.2.1-py3-none-any.whl |
|---|---|
| Size | 13.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
381efd33d089c2426882fc0d49c8c2a0b25df6f652cb039e6de5a61f5d1bea1a
|
|
BLAKE2b-256 checksum How to use checksums |
c5b7fb200246cc5eb618585b296babc630e11f7a505b40a80b649c96a7a2e2aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Security for yaaat 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.