A Python library for applying information theory and AI/ML models to animal communication.
Project description
chatter: a Python library for applying information theory and AI/ML models to animal communication
Historically, analyses of sequential structure in animal communication have involved the identification of unit types (e.g. "syllables" in bird song and "notes" in whale song). This collapses continuous variation into discrete categories that align with human perception, a process that loses a great deal of the complexity and nuance present in the actual signals. Recent innovations in machine learning, such as variational autoencoders and vision transformers, allow us to bypass discretization and analyze animal communication signals directly in continuous space. chatter makes it easy for researchers to apply these methods to their data, to quantify features like:
- Complexity—path length of sequences in latent space per unit time.
- Predictability—predictability of a transition in latent space.
- Similarity—cosine similarity between units or sequences in latent space.
- Novelty—inverse of predicted density of units or sequences in latent space.
Additionally, chatter makes it easy to explore the latent space of a species' vocalizations, either statically or with an interactive plot like the one below (of syllables in Cassin's vireo song).
This project is heavily inspired by the work of folks like Nilo Merino Recalde and Tim Sainburg. Here is a list of related projects:
- Sainburg, T., Thielk, M., Gentner, T. Q. (2020). Finding, visualizing, and quantifying latent structure across diverse animal vocal repertoires. PLOS Computational Biology. https://doi.org/10.1371/journal.pcbi.1008228
- Goffinet, J., Brudner, S., Mooney, R., Pearson, J. (2021). Low-dimensional learned feature spaces quantify individual and group differences in vocal repertoires. eLife. https://doi.org/10.7554/eLife.67855
- Merino Recalde, N. (2023). pykanto: a python library to accelerate research on wild bird song. Methods in Ecology and Evolution. https://doi.org/10.1111/2041-210X.14155
- Alam, D., Zia, F., Roberts, T. F. (2024). The hidden fitness of the male zebra finch courtship song. Nature. https://www.doi.org/10.1038/s41586-024-07207-4
Please cite chatter as:
- Youngblood, M. (2025). Chatter: a Python library for applying information theory and AI/ML models to animal communication (v0.1.1). GitHub. https://github.com/masonyoungblood/chatter
@software{youngblood_chatter_2025,
author = {Youngblood, Mason},
title = {Chatter: a Python library for applying information theory and AI/ML models to animal communication},
version = {v0.1.1},
date = {2025},
publisher = {GitHub},
url = {https://github.com/masonyoungblood/chatter}
}
Installing chatter
chatter should always be installed inside a new virtual environment. To create an environment using conda you can run:
conda create -n chatter python==3.13.3
Then, you can activate the environment and install from GitHub using pip or uv:
conda activate chatter
pip install chatter-pkg
conda activate chatter
uv pip install chatter-pkg
Note that chatter uses torch as its machine learning backend, and was developed to use GPU acceleration on Apple Silicon. If you run into issues with compatibility, please look into the torch documentation before opening an issue on GitHub.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatter_pkg-0.1.2.tar.gz.
File metadata
- Download URL: chatter_pkg-0.1.2.tar.gz
- Upload date:
- Size: 55.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d712b5809b07cd949be276821a1b3ba39056dea0f44bf267244af84211c66e4
|
|
| MD5 |
864a0d5ae04ccc10115f83a7e67df2e2
|
|
| BLAKE2b-256 |
367b300477c4f8e428f4fe7095708d4ba1fd75bde829c4bd55da474d5995f7fd
|
File details
Details for the file chatter_pkg-0.1.2-py3-none-any.whl.
File metadata
- Download URL: chatter_pkg-0.1.2-py3-none-any.whl
- Upload date:
- Size: 54.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dcb6dbc8ac3b00219ae7a05cd4f08799a48183d0301402ff8e2a62b1c0b70ac
|
|
| MD5 |
cbff7269eef184816ddf1a045166ede9
|
|
| BLAKE2b-256 |
4f3af9868286342b700a5f5f09f1162a0d39c886ed6f1b284d8efcf5d6bd5606
|