Skip to main content

S-SONDO: Lightweight audio embeddings from self-supervised knowledge distillation

Project description

S-SONDO

Lightweight audio embeddings from self-supervised knowledge distillation.

S-SONDO provides compact audio models (MobileNetV3, DyMN, ERes2Net) trained via knowledge distillation from large audio foundation models (MATPAC, M2D). Extract general-purpose audio embeddings with a single function call.

Paper: S-SONDO: Self-Supervised Knowledge Distillation for General Audio Foundation Models (ICASSP 2026)

Installation

pip install ssondo

Quick Start

import torchaudio
from ssondo import get_ssondo

# Load a pretrained model (auto-downloads from Hugging Face Hub)
model = get_ssondo("matpac-mobilenetv3")

# Load audio (mono, 32kHz)
x, sr = torchaudio.load("audio.wav")
x = x.mean(dim=0, keepdim=True)  # mono

# Extract embeddings
embeddings = model(x)  # (1, n_segments, 960)

Available Models

from ssondo import list_models

for name, description in list_models().items():
    print(f"{name}: {description}")
Model Teacher Student Embedding Size
matpac-mobilenetv3 MATPAC++ MobileNetV3 960
matpac-dymn MATPAC++ DyMN 960
matpac-eres2net MATPAC++ ERes2Net varies
m2d-mobilenetv3 M2D MobileNetV3 960
m2d-dymn M2D DyMN 960
m2d-eres2net M2D ERes2Net varies

Usage

Extract Embeddings

model = get_ssondo("matpac-mobilenetv3")
embeddings = model(audio)  # (batch, n_segments, emb_size)

Get Logits Too

model = get_ssondo("matpac-mobilenetv3", return_logits=True)
embeddings, logits = model(audio)

GPU Inference

model = get_ssondo("matpac-mobilenetv3", device="cuda")
embeddings = model(audio.cuda())

Load from Local Checkpoint

model = get_ssondo("path/to/checkpoint.ckpt")

Input Requirements

  • Mono audio (single channel)
  • Sample rate: 32,000 Hz
  • Audio is internally sliced into 10-second segments and converted to 128-band log-mel spectrograms

How It Works

get_ssondo() auto-detects everything from the checkpoint: student backbone, preprocessing parameters, and classification head. No manual configuration needed.

When you pass a model name (e.g., "matpac-mobilenetv3"), the checkpoint is automatically downloaded from Hugging Face Hub and cached locally.

Citation

@inproceedings{eladlouni2026ssondo,
  title={S-SONDO: Self-Supervised Knowledge Distillation for General Audio Foundation Models},
  author={El Adlouni, Mohammed Ali and Quelennec, Aurian and Chouteau, Pierre and Peeters, Geoffroy and Essid, Slim},
  booktitle={IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
  year={2026}
}

License

MIT

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

ssondo-0.1.0.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

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

ssondo-0.1.0-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file ssondo-0.1.0.tar.gz.

File metadata

  • Download URL: ssondo-0.1.0.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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

Hashes for ssondo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 010057c40fbf3500b3d302f92d818d253531466bd4d9327740e1c83e43788e1d
MD5 ebf453dfd52923fe9e21ffa3016e8016
BLAKE2b-256 e3c04a4c47593dfd73320b4159c42aef5ac5002f9d25db3706fa97ee8a1afddd

See more details on using hashes here.

File details

Details for the file ssondo-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ssondo-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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

Hashes for ssondo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59620e22c8ef392f9d2ddd01dc515fba07967409f98d2c5c3509096cc3e925d5
MD5 49530e95641199c586df1872bcb5631a
BLAKE2b-256 84b1ecb003f902ed53f309cd53fa6657442b545436ded13e461dea88e16d2e2e

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