Model Card for esp-aves2-effnetb0-all
Model Details
Model Description
esp-aves2-effnetb0-all is a supervised bioacoustic encoder trained to produce transferable embeddings for downstream bioacoustic tasks (species classification/detection, individual identification, vocal repertoire discovery), as described in What Matters for Bioacoustic Encoding.
- Developed by: Marius Miron, David Robinson, Milad Alizadeh, Ellen Gilsenan-McMahon, Gagan Narula, Emmanuel Chemla, Maddie Cusimano, Felix Effenberger, Masato Hagiwara, Benjamin Hoffman, Sara Keen, Diane Kim, Jane K. Lawton, Jen-Yu Liu, Aza Raskin, Olivier Pietquin, Matthieu Geist
- Funded by: More info at
https://www.earthspecies.org/about-us#support - Shared by: Earth Species Project
- Model type: Audio representation learning model (CNN; EfficientNet-B0 backbone)
- License: CC-BY-NC-SA
- Finetuned from model: EfficientNet-B0 pretrained on ImageNet (see Parent Models)
Model Sources
- Repository:
https://github.com/earthspecies/avex - Paper: What Matters for Bioacoustic Encoding
- Hugging Face Model: ESP-AVES2 Collection
- Configuration: train_config.yaml
Parent Models
- EfficientNet-B0 (ImageNet)
- Source:
https://docs.pytorch.org/vision/main/models/generated/torchvision.models.efficientnet_b0.html - Description: ImageNet-pretrained EfficientNet-B0 initialization used before supervised post-training.
- License: See upstream repository
- Source:
Uses
Direct Use
esp-aves2-effnetb0-all can be used directly as an embedding model for bioacoustic tasks such as species classification/detection, retrieval, clustering, individual ID, and repertoire analysis.
Downstream Use
Use frozen embeddings with linear probes, or fine-tune on your target dataset. This model is also suitable for deployment in acoustic monitoring pipelines as a robust feature extractor.
Out-of-Scope Use
Not a generative model; does not output text. Stand-alone classification without probes/finetuning is out of scope.
Bias, Risks, and Limitations
- Bias: Training data sources (citizen science + curated archives) can bias toward certain taxa/regions and recording setups.
- Risks: Potential misuse for sensitive species monitoring; apply conservation safeguards and access control.
- Limitations: Training/evaluation in the paper is standardized at 16 kHz; some taxa may require higher bandwidth.
Recommendations
Validate on in-domain data; for real-world deployments, monitor performance drift and apply data governance for sensitive taxa.
How to Get Started with the Model
Loading this model requires the AVEX (Animal Vocalization Encoder) library avex to be installed.
Installation
pip install avex
Or with uv:
uv add avex
For more details, see https://github.com/earthspecies/avex.
Loading the Model
from avex import load_model
model = load_model("esp_aves2_effnetb0_all", device="cuda")
Using the Model
# Case 1: embedding extraction (features only)
backbone = load_model("esp_aves2_effnetb0_all", device="cuda", return_features_only=True)
with torch.no_grad():
embeddings = backbone(audio_tensor)
# Shape: (batch, channels, height, width) for EfficientNet
# Pool to get fixed-size embedding
embedding = embeddings.mean(dim=(2, 3)) # Shape: (batch, channels)
# Case 2: supervised predictions (logits over label IDs; see label_map.json)
model = load_model("esp_aves2_effnetb0_all", device="cuda")
with torch.no_grad():
logits = model(audio_tensor)
predicted_class = logits.argmax(dim=-1).item()
Transfer Learning with Probes
from avex.models.probes import build_probe_from_config
from avex.configs import ProbeConfig
# Load backbone for feature extraction
base = load_model("esp_aves2_effnetb0_all", return_features_only=True, device="cuda")
# Define a probe head for your task
probe_config = ProbeConfig(
probe_type="linear",
target_layers=["last_layer"],
aggregation="mean",
freeze_backbone=True,
online_training=True,
)
probe = build_probe_from_config(
probe_config=probe_config,
base_model=base,
num_classes=10, # Your number of classes
device="cuda",
)
Class Label Mapping
The class label mapping for this supervised learning model can be found at label_map.json in the Hugging Face repository.
Training Details
Training Data
esp-aves2-effnetb0-all follows the paper’s supervised post-training recipe using an All mix (Bioacoustics mix + AudioSet), starting from ImageNet-pretrained EfficientNet-B0.
Training Data Sources
| Dataset | Description | Source | License | Size |
|---|---|---|---|---|
| AudioSet | general audio | Link | See dataset terms | 5700 hours |
| Xeno-canto | birds | Link | CC (varies) | 10416 hours |
| iNaturalist | diverse taxa | Link | CC (varies) | 1539 hours |
| Watkins | marine mammals | Link | licensing agreement (paper) | 27 hours |
| Animal Sound Archive | diverse taxa | Link | See archive terms | 78 hours |
Training Procedure
As described in the paper:
- Initialization: EfficientNet-B0 pretrained on ImageNet.
- Supervised post-training: on All (Bio + AudioSet) with a multi-label objective.
- Augmentations: random additive noise (p=0.5, SNR in ([-10, 20]) dB); mixup-style within-batch mixing (p=0.5) with union of labels.
Training Hyperparameters
Training hyperparameters are specified in train_config.yaml.
Evaluation
Testing Data, Factors & Metrics
Testing Data
The paper evaluates on:
- BEANS (classification and detection):
https://github.com/earthspecies/beans - BirdSet (detection):
https://huggingface.co/datasets/DBD-research-group/BirdSet - Individual ID: Pipit, Chiffchaff, Little Owl, Macaques
- Vocal Repertoire: Zebra Finch, Giant Otters, Bengalese Finch, Killer Whale
Metrics
- Linear probing: accuracy / mAP
- Retrieval: ROC AUC
- Clustering: NMI
Results
Aggregate results for linear probing (frozen base model) with esp-aves2-effnetb0-all (from the provided LaTeX table):
| Benchmark | Task | Metric | Score |
|---|---|---|---|
| BEANS Classification | Probe | Accuracy | 0.800 |
| BEANS Classification | Retrieval | ROC AUC | 0.809 |
| BEANS Classification | Clustering | NMI | 0.584 |
| BEANS Detection | Probe | mAP | 0.362 |
| BEANS Detection | Retrieval | ROC AUC | 0.712 |
| BirdSet | Probe | mAP | 0.279 |
| BirdSet | Retrieval | ROC AUC | 0.707 |
| Individual ID | Probe | Accuracy | 0.531 |
| Individual ID | Retrieval | ROC AUC | 0.701 |
| Vocal Repertoire | Retrieval | ROC AUC | 0.830 |
| Vocal Repertoire | Clustering | NMI | 0.582 |
Environmental Impact
Not specified in the provided excerpt.
Technical Specifications
Model Architecture and Objective
esp-aves2-effnetb0-all uses an EfficientNet-B0 CNN operating on time-frequency representations (spectrograms), trained with supervised learning on a large multi-source corpus to learn general bioacoustic representations.
Key components:
- Encoder: EfficientNet-B0
- Feature extraction: spectrogram frontend (paper uses 16 kHz setup; exact spectrogram params depend on implementation)
- Output: embeddings (dimension depends on backbone head configuration)
Compute Infrastructure
Not specified in the provided excerpt.
Model Configuration
Model configuration is available in train_config.yaml.
Citation
BibTeX:
@inproceedings{miron2025matters,
title={What Matters for Bioacoustic Encoding},
author={Miron, Marius and Robinson, David and Alizadeh, Milad and Gilsenan-McMahon, Ellen and Narula, Gagan and Chemla, Emmanuel and Cusimano, Maddie and Effenberger, Felix and Hagiwara, Masato and Hoffman, Benjamin and Keen, Sara and Kim, Diane and Lawton, Jane K. and Liu, Jen-Yu and Raskin, Aza and Pietquin, Olivier and Geist, Matthieu},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026}
}
Model Card Contact
Contact: marius@earthspecies.org, david@earthspecies.org, milad@earthspecies.org, gagan@earthspecies.org