Skip to main content

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

The study of animal communication often involves categorizing units into types (e.g. syllables in songbirds, or notes in humpback whales). While this approach is useful in many cases, it necessarily flattens the complexity and nuance present in real communication systems. chatter is a new Python library for analyzing animal communication in continuous latent space using information theory and modern machine learning techniques. It is taxonomically agnostic, and has been tested with the vocalizations of birds, bats, whales, and primates. By leveraging a variety of different architectures, including variational autoencoders and vision transformers, chatter represents vocal sequences as trajectories in high-dimensional latent space, bypassing the need for manual or automatic categorization of units. The library provides an end-to-end workflow—from preprocessing and segmentation to model training and feature extraction—that enables researchers 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.

Below is a basic diagram of the chatter workflow, showing the progression from spectrograms to latent features to visualizations in 2D space.

workflow

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).

embeddings

This project is heavily inspired by the work of folks like Nilo Merino Recalde and Tim Sainburg. Here is a list of related projects:

Please cite chatter as:

@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.5},
   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
conda activate chatter
conda install libsndfile

Then, you can activate the environment and install from GitHub using pip or uv:

pip install chatter-pkg
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

chatter_pkg-0.1.5.tar.gz (55.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatter_pkg-0.1.5-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

File details

Details for the file chatter_pkg-0.1.5.tar.gz.

File metadata

  • Download URL: chatter_pkg-0.1.5.tar.gz
  • Upload date:
  • Size: 55.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chatter_pkg-0.1.5.tar.gz
Algorithm Hash digest
SHA256 26e303a9bf149ffb6e5fd4ede3b775cc9a5071fe1d85122f352c97e62fbbf688
MD5 690319a9415cd33a22f5acc29cace955
BLAKE2b-256 bb119440b0cde5b0e175498fa2e0d3d04b90620ea6d1776e2b8d299c9e6515f7

See more details on using hashes here.

File details

Details for the file chatter_pkg-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: chatter_pkg-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chatter_pkg-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5421085c09829d124e8646866187131a39faf46b901a574adc6ca803106ee4c4
MD5 cf7a65265bfdb0225a0c7f26f04b742e
BLAKE2b-256 ece96ab943aecccfe49348e6d06e6659e0931b833727fed746a02d70f89c3510

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page