CoolFace
Datasetpublic

OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning

OpenWhistle Classification Finetuning Dataset OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning is the public classification finetuning dataset used for dolphin whistle identity classification. It contains short whistle clips, whistle-level metadata, fundamental-frequency tracks, rendered F0 spectrograms, and integer class labels. The main reviewer-facing subset is the balanced balanced config. It contains six classes: NSW_1 (label=0) SW_Luna (label=1) SW_Nana… See the full description on the dataset page: https://huggingface.co/datasets/OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning.

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes74downloads
Dataset Card

OpenWhistle Classification Finetuning Dataset

OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning is the public classification finetuning dataset used for dolphin whistle identity classification. It contains short whistle clips, whistle-level metadata, fundamental-frequency tracks, rendered F0 spectrograms, and integer class labels.

The main reviewer-facing subset is the balanced balanced config. It contains six classes:

  • NSW_1 (label=0)
  • SW_Luna (label=1)
  • SW_Nana (label=2)
  • SW_Neo (label=3)
  • SW_Nikita (label=4)
  • SW_Yosefa (label=5)

The full dataset is split by recording session, so no session appears in more than one of train, validation, or test. Smaller deterministic review configs are also provided so reviewers can inspect representative examples quickly without downloading the complete data first.

Dataset Contents

  • Hugging Face repo: OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning
  • Main balanced config: balanced
  • Reviewer convenience config: balanced-review-sample
  • Public columns common to all configs: audio, label, name, onset, offset, duration, recording_duration, whistle_type, whistle_name, f0_time, f0_hz, f0_conf, f0_ok, f0_bad_reason, f0_spectrogram
  • The all and all-review-sample configs additionally include snr_db, the estimated clip-level signal-to-noise ratio in dB.

Balanced Dataset Splits

SplitRowsNSW_1SW_LunaSW_NanaSW_NeoSW_NikitaSW_YosefaSessions
train2,100350350350350350350161
validation45075757575757554
test45075757575757537
Total3,000500500500500500500252

The split assignment was generated with seed 42 and exact class balancing. Session leakage checks found no overlap between any pair of splits.

Available Subsets

The repository provides three full classification subsets and their smaller review counterparts:

Subset/configRowsClassesSessionsPurpose
balanced3,0006252Main balanced six-class finetuning dataset
unbalanced3,48810258Ten-class finetuning dataset with capped rare classes
all8,35410261Ten-class dataset preserving the full available class distribution
balanced-review-sample4806Same source split designSmall reviewer sample from balanced
unbalanced-review-sample48010Same source split designSmall reviewer sample from unbalanced
all-review-sample48010Same source split designSmall reviewer sample from all

The ten-class subsets use the following labels:

  • NSW_3
  • NSW_2
  • NSW_1
  • SW_Dana
  • SW_Luna
  • SW_Nana
  • SW_Neo
  • SW_Nikita
  • SW_Shy
  • SW_Yosefa

The balanced subset keeps the six classes listed above and is the recommended starting point for reviewers and model finetuning. The unbalanced and all subsets expose the broader ten-class label space for additional analysis.

Review Samples

Review samples are small deterministic subsets of the same public dataset. They were created only to make review and manual inspection easier. They are not a replacement for the full configs used for model development or reporting.

How The Review Samples Were Created

All review samples were built after the session-disjoint train/validation/test splits were finalized. The review-sample scripts preserve the original split assignment: reviewer training examples come only from the original train split, reviewer validation examples only from validation, and reviewer test examples only from test.

For balanced-review-sample, rows were sampled separately within each split and class. Each class group was shuffled deterministically with numpy.default_rng(seed + split_index) using seed 42, then capped at 56 rows per class for train and 12 rows per class for both validation and test. This keeps the same 70/15/15 split ratio as the full balanced config while keeping every class equally represented.

For unbalanced-review-sample and all-review-sample, the same deterministic shuffle was used, but the target rows were allocated proportionally to the source class distribution inside each split. This preserves the class imbalance of the larger source configs while keeping the review download small.

Review Sample Sizes

ConfigSource configStrategyTrainValidationTestTotal
balanced-review-samplebalancedEqual rows per class within each split3367272480
unbalanced-review-sampleunbalancedProportional class distribution within each split3367272480
all-review-sampleallProportional class distribution within each split3367272480

The reviewer-facing sample for the main balanced dataset is balanced-review-sample. The other review samples are included so each full subset has a matching small inspection subset.

Loading The Data

python
from datasets import load_dataset

full = load_dataset(
    "OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning",
    "balanced",
)
review = load_dataset(
    "OpenWhistleNeurIPS26/OpenWhistle-Classification-Finetuning",
    "balanced-review-sample",
)

Optional broader configs can be loaded by passing "unbalanced" or "all" as the second load_dataset argument. Their corresponding review configs are "unbalanced-review-sample" and "all-review-sample".