ReDimNet2-B3 (vox2, large-margin) β€” ONNX

An ONNX export of ReDimNet2-B3 for on-device speaker diarization and cross-meeting voice recognition. The mel frontend is inside the graph, so the model takes raw audio and returns an embedding with no feature code on the caller's side.

This file exists because the upstream project publishes PyTorch checkpoints only. It is a format conversion and nothing else: no retraining, no fine-tuning, no quantisation. Weights, architecture and all credit belong to the upstream authors.

Provenance and license

Upstream PalabraAI/redimnet2 v1.0.0
Checkpoint b3-vox2-lm.pt (VoxCeleb2, large-margin fine-tuned)
Upstream license MIT, Copyright (c) 2026 Palabra.ai
This export MIT, same terms
Exported 2.8.0, opset 18

Upstream reports 0.42 / 0.66 / 1.22 % EER on VoxCeleb1-O / E / H for this architecture. Those are the authors' numbers for the PyTorch model; this export matches it numerically (below), so they carry over.

Interface

waveform   float32 [batch, samples]   16 kHz mono, any length
    ->
embedding  float32 [batch, 192]

Both axes of the input are dynamic. Compare embeddings with cosine similarity. The graph contains no STFT operator β€” the upstream frontend is convolutional β€” so it loads on any ONNX Runtime build with the standard CPU kernels.

import numpy as np, onnxruntime as ort
session = ort.InferenceSession("redimnet2-b3-vox2-lm.onnx", providers=["CPUExecutionProvider"])
embedding = session.run(["embedding"], {"waveform": audio[None, :].astype(np.float32)})[0]

Verification

Reproduced by export-redimnet2.py in this repository, which exports and then checks the result against PyTorch on a fixed waveform:

Check Result
Cosine vs PyTorch, 3 s input 1.000000
Cosine vs PyTorch, 6 s input 1.000000
File size 18,045,013 bytes
SHA-256 dcecdce7d52bbd4739b24d0874359ec564d43f4b3a392f0104f505593b566d41

The same file was then run through the Rust ort crate (ONNX Runtime 2.0.0-rc.13) on macOS arm64 and Windows x86_64: cosine 1.000000 against the PyTorch reference on both, agreeing with each other to six decimal places.

Reproducing

uv run export-redimnet2.py --out redimnet2-b3-vox2-lm.onnx

The script pins every dependency inline and fetches the upstream checkpoint by release tag. Note two things a clean environment hits: scipy is imported by the upstream frontend but not declared in its hubconf.py, and the dynamo exporter fails on the frontend's normalisation under torch 2.8, so the export uses the TorchScript path.

Why this file exists

It is the speaker embedding for EverTranscript, a local-only meeting notetaker, where it does both in-meeting clustering and cross-meeting voice recognition. Published so that application's builds and CI can fetch a checksummed artifact rather than each installation running a PyTorch export. Anyone else is welcome to it under the same MIT terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support