Aller au contenu
ModelPrésentéExterne
Browse files

Campplus Zh En Onnx

ONNX speaker-embedding model for on-device, CPU-only speaker diarization in a multilingual (Mandarin/Taiwanese + English, code-switched) setting. Repackaged for sherpa-onnx with fp16 and int8 variants added for...

TypeOtherVersionCampplus zh en fp16CClasse

Source du modèle

Type
Other
Taille du fichier
8,20–27,0 MB
Version
vCampplus zh en fp16
Mis à jour
25 oct. 2026
Source
Hugging Face

Description de la source

CAM++ zh+en speaker embedding (ONNX: fp32 / fp16 / int8)

ONNX speaker-embedding model for on-device, CPU-only speaker diarization in a multilingual (Mandarin/Taiwanese + English, code-switched) setting. Repackaged for sherpa-onnx with fp16 and int8 variants added for size/latency comparison.

  • Base model: 3D-Speaker speech_campplus_sv_zh_en_16k-common_advanced (CAM++, D-TDNN), trained on code-switched Mandarin+English. Embedding dim 192, 16 kHz, 80-dim fbank input.
  • fp32 is the official sherpa-onnx artifact; fp16 / int8 were produced from it with onnxconverter_common.float16 (stats sub-graph kept in fp32) and onnxruntime.quantize_dynamic.
  • License: Apache-2.0 (inherited from 3D-Speaker / ModelScope).
fileprecisionsize
campplus_zh_en_fp32.onnxfp3227 MB
campplus_zh_en_fp16.onnxfp1614 MB
campplus_zh_en_int8.onnxint8 (dynamic)8.2 MB

On-device benchmark (Pixel 6, ARM64 CPU, sherpa-onnx, 4 threads)

Per-utterance embedding over real clips; accuracy = speaker separation margin (mean inter-speaker − mean intra-speaker cosine distance, higher = better) and clustering outcome; speed = ms per utterance (5-run average). Baseline = the previous embedder, 3D-Speaker eres2net_base (zh).

Clean 2-speaker clip (EN + ZH):

modelsizems/uttaccuracy (margin)clustering
eres2net_base (old)37.8 MB2560.7152 spk ✓
CAM++ fp3227.0 MB1020.8142 spk ✓
CAM++ int88.2 MB2870.7382 spk ✓
CAM++ fp1614.0 MB700.8082 spk ✓

3-speaker cross-lingual news clip:

modelsizems/uttaccuracy (margin)clustering
eres2net_base (old)37.8 MB3160.2753 spk ✓
CAM++ fp3227.0 MB1200.3053 spk ✓
CAM++ int88.2 MB3300.2843 spk ✓
CAM++ fp1614.0 MB780.3043 spk ✓

Takeaways

  • fp16 is the best on-device choice: fastest (~1.5× faster than fp32, ~3.5× faster than the old eres2net), half the size of fp32, and accuracy indistinguishable from fp32. The Pixel 6's ARMv8.2 fp16 SIMD runs it in hardware.
  • int8 is counter-productive on this CPU: slower than fp32 (sherpa-onnx's ORT build has no optimized MatMulInteger kernel for this graph) and slightly less accurate — it only wins on disk.
  • CAM++ beats the previous eres2net_base baseline on accuracy, speed, and size at every precision.

Usage (sherpa-onnx)

import sherpa_onnx
ext = sherpa_onnx.SpeakerEmbeddingExtractor(
    sherpa_onnx.SpeakerEmbeddingExtractorConfig(
        model="campplus_zh_en_fp16.onnx", num_threads=4, provider="cpu"))

Produced for VoxSumDroid (offline Android transcribe + diarize + summarize). Original model © 3D-Speaker (ModelScope), Apache-2.0.

Sources

1 source
Hugging FacePrincipalVersion aa79cf9b8628a46ca362bf9bf7cde226a470a282
huggingface.co/Luigi/campplus-zh-en-onnx/tree/aa79cf9b8628a46ca362bf9bf7cde226a470a282

Vérifié 25 oct.

Download files

Artefacts du modèle

3 artefacts

campplus_zh_en_fp16.onnx

onnx · 14,0 MB · SHA-256 62eb2d79d363…8ef3 · Hugging Face

Download file

campplus_zh_en_fp32.onnx

onnx · 27,0 MB · SHA-256 aa3cfc16963a…eba2 · Hugging Face

Download file

campplus_zh_en_int8.onnx

onnx · 8,20 MB · SHA-256 27bbb97acd18…d67d · Hugging Face

Download file

Extraits de sources

2 extraits

--- license: apache-2.0 tags: - speaker-recognition - speaker-diarization - speaker-embedding - onnx - sherpa-onnx - campplus - 3d-speaker language: - zh - en library_name: sherpa-onnx pipeline_tag: audio-classification --- # CAM++ zh+en speaker embedding (ONNX: fp32 / fp16 / int8) ONNX speaker-embedding model for **on-device, CPU-only** speaker diarization in a multilingual (Mandarin/Taiwanese + English, code-switched) setting. Repackaged for [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx) with **fp16** and **int8** variants added for size/latency comparison. - **Base model:** 3D-Speaker `speech_campplus_sv_zh_en_16k-common_advanced` (CAM++, D-TDNN), trained on code-switched Mandarin+English. Embedding dim **192**, 16 kHz, 80-dim fbank input. - **fp32** is the official sherpa-onnx artifact; **fp16** / **int8** were produced from it with `onnxconverter_common.float16` (stats sub-graph kept in fp32) and `onnxruntime.quantize_dynamic`. - License: **Apache-2.0** (inherited from 3D-Speaker / ModelScope). | file | precision | size | |---|---|---| | `campplus_zh_en_fp32.onnx` | fp32 | 27 MB | | `campplus_zh_en_fp16.onnx` | fp16 | 14 MB | | `campplus_zh_en_int8.onnx` | int8 (dynamic) | 8.2 MB | ## On-device benchmark (Pixel 6, ARM64 CPU, sherpa-onnx, 4 threads) Per-utterance embedding over real clips; **accuracy** = speaker separation margin (mean inter-speaker − mean intra-speaker cosine distance, higher = better) and clustering outcome; **speed** = ms per utterance (5-run average). Baseline = the previous embedder, 3D-Speaker `eres2net_base` (zh). **Clean 2-speaker clip (EN + ZH):** | model | size | ms/utt | accuracy (margin) | clustering | |---|---|---|---|---| | eres2net_base (old) | 37.8 MB | 256 | 0.715 | 2 spk ✓ | | CAM++ **fp32** | 27.0 MB | 102 | **0.814** | 2 spk ✓ | | CAM++ **int8** | 8.2 MB | 287 | 0.738 | 2 spk ✓ | | CAM++ **fp16** | 14.0 MB | **70** | 0.808 | 2 spk ✓ | **3-speaker cross-lingual news clip:** | model | size | ms/utt | accuracy (margin) | clustering | |---|---|---|---|---| | eres2net_base (old) | 37.8 MB | 316 | 0.275 | 3 spk ✓ | | CAM++ **fp32** | 27.0 MB | 120 | 0.305 | 3 spk ✓ | | CAM++ **int8** | 8.2 MB | 330 | 0.284 | 3 spk ✓ | | CAM++ **fp16** | 14.0 MB | **78** | 0.304 | 3 spk ✓ | ### Takeaways - **fp16 is the best on-device choice:** fastest (~1.5× faster than fp32, ~3.5× faster than the old eres2net), half...

Source context: 0 downloads · 0 likes · Pipeline audio-classification · Library sherpa-onnx · Repo Luigi/campplus-zh-en-onnx