ReDimNet2-B6 Core ML Speaker Embeddings

ReDimNet2-B6 produces local speaker embeddings for comparing clean voice samples. It does not diarize audio or assign names by itself.

Model

Property Value
Parameters 12.3 million
Format Compiled Core ML, Float16 weights
Compiled size 24.7 MiB
Input 96,000 mono Float32 samples
Sample rate 16 kHz
Window 6 seconds
Output 192-dimensional L2-normalized embedding
Minimum deployment macOS 15 / iOS 18

The checkpoint was trained on VoxBlink2 and VoxCeleb2. The fixed six-second shape avoids the slow Core ML fallback observed with a flexible waveform shape. Applications should repeat clean two-to-six-second speech to fill the input and center-crop longer samples.

Files

File Size Description
ReDimNet2B6.mlmodelc/ 24.7 MiB Precompiled Core ML model
config.json <2 KiB Input, output, source revision, checksum, and validation metadata
README.md <4 KiB This model card
LICENSE 1.0 KiB MIT license from the upstream implementation

Performance

Measured on an Apple M2 Max after two warm-up predictions:

Measurement Result Meaning
Warm six-second inference 13.8 ms One voice-profile embedding
Warm throughput 72.6 embeddings/s Repeated six-second windows after warm-up
Meeting pilot equal-error rate, 2-second clips 1.50% Lower is better; WeSpeaker Core ML was 5.17%
Meeting pilot equal-error rate, 3-second clips 0.00% Lower is better; WeSpeaker Core ML was 1.50%
LibriSpeech test-clean equal-error rate, 40 speakers 0.00% Two- and three-second controls

The meeting pilot contains five recurring speakers and is not a universal quality claim. Thresholds must be calibrated for the intended microphones, languages, and acoustic conditions. Speaker embeddings are useful for labeling; they are not biometric authentication and do not protect against voice spoofing.

Python usage

import coremltools as ct
import numpy as np

model = ct.models.CompiledMLModel("ReDimNet2B6.mlmodelc")
audio = np.zeros((1, 96_000), dtype=np.float32)
embedding = model.predict({"audio": audio})["embedding"]

speech-swift

speech embed-speaker voice.wav --engine redimnet2 --json
import SpeechVAD

let model = try await ReDimNet2SpeakerModel.fromPretrained()
let embedding = try model.embed(audio: samples, sampleRate: 16_000)

Source

Converted from the official PalabraAI/ReDimNet2 B6 vb2+vox2_v0 large-margin checkpoint. The source revision and checkpoint SHA-256 are recorded in config.json.

Links

Downloads last month
244
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including aufklarer/ReDimNet2-B6-CoreML