Skip to main content

YAAAT! Yet Another Audio Annotation Tool

Interactive bioacoustic annotation tool for measuring animal vocalizations.

Features:

  1. Changepoint Annotator, for marking temporal onset, offset, and changepoints in vocalizations. Useful for describing rapid fluctuations and identifying nonlinear phenomena.
  2. Peak Annotator, for marking dominant frequency peaks on the power spectrum. Useful for describing spectrally complex vocalizations.
  3. Harmonic Annotator, for identifying harmonics.
  4. Batch Annotator, for multi-file review and defining binary and multi-label annotation schema
Changepoint Annotator Peak Annotator Harmonic Annotator
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)

Source distribution for yaaat 0.2.1
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)

Table of built distributions (wheels) for yaaat 0.2.1
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page