CAM++ β€” CoreML (Apple Neural Engine)

CoreML conversion of FunASR's CAM++ speaker-embedding model (~7.2M params), for on-device speaker verification / diarization on Apple Silicon. Upstream: iic/speech_campplus_sv_zh-cn_16k-common.

Files

File Precision Compute unit Role
CamPlusPreprocessor_v2.mlmodelc FP32 CPU waveform β†’ 80-d Kaldi fbank (Povey window, log floor after the mel filterbank)
CamPlusPlus_v2.mlmodelc FP32 CPU / GPU mean-normalized fbank β†’ 192-d speaker embedding
CamPlusPreprocessor.mlmodelc FP32 CPU v1, superseded by _v2 (Hamming window); kept for older FluidAudio releases
CamPlusPlus.mlmodelc FP16 CPU / GPU v1, superseded by _v2 (see Changelog); kept for older FluidAudio releases

Pipeline

waveform β†’ [CamPlusPreprocessor_v2 fp32/CPU] β†’ fbank [1,T,80]
        β†’ subtract the per-utterance mean (host)
        β†’ [CamPlusPlus_v2 fp32/CPU+GPU] β†’ embedding [1,192]  (L2-normalize, then cosine for verification/clustering)

Neither model normalizes the fbank: the host subtracts each mel band's mean over the utterance, as 3D-Speaker and FunASR do (FluidAudio's CampPlusEmbedder). The 192-d embedding is used with cosine similarity for speaker verification and diarization clustering.

Benchmark β€” AMI speaker verification (v2)

413 single-speaker AMI Mix-Headset segments (3–8 s, 16 participants, 3–4 meetings each), cosine scoring:

v1 + host mean v2 PyTorch 3D-Speaker CAMPPlus
EER, within meeting (1,332 target trials) 3.07% 2.85% 2.85%
EER, across meetings (4,079 target trials) 3.48% 3.55% 3.55%
Cosine to PyTorch, 357 lengths 0.35–60 s as low as βˆ’0.01 1.0000 1

Benchmark β€” AISHELL-1 speaker verification (v1)

Metric Value
EER 0.48% (20 speakers, 6000 same / 6000 diff trials)
same-speaker cosine 0.805
different-speaker cosine 0.256

AISHELL-1 (clean read Mandarin) is easier than the official CN-Celeb (~6-7%). CoreML↔torch embedding cosine 0.9997-0.99999.

Changelog

Date Files Change Issue Recipe FluidAudio PR HF commit
2026-11-01 CamPlusPreprocessor_v2.mlmodelc, CamPlusPlus_v2.mlmodelc Kaldi Povey fbank with the log floor after the mel filterbank; each segment-pooling tail averaged over its own frames (v1 divided by 100); fp32 (v1's fp16 pointwise convs gave unrelated embeddings at some lengths, e.g. 17.9–20.4 s) FluidAudio #985 model-lab models/campplus-coreml-v2 #1099 b7be41fc

License

Weights derive from FunASR's CAM++; upstream license applies. Format conversion only.

Downloads last month
1,074
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support