源码(模型转换 + C++ 源码)见 GitHub:
campplus.AXERA
campplus.AXERA/
├── models/
│ ├── campplus.axmodel # AX650 量化模型
│ └── model_meta.json
├── bin/
│ └── campplus_ax650 # C++ 可执行文件
├── python/
│ ├── campplus_sdk/ # 声纹 SDK(inference + clustering)
│ ├── example.py # 验证 / 提取 / 聚类 demo
│ └── requirements.txt # numpy torch torchaudio axengine
├── samples/ # 示例音频(ModelScope 官方示例)
├── run_ax650.sh # 一键运行(Python / C++)
├── configuration.json
└── README.md
1# 下载本仓库到板端后:
2bash run_ax650.sh # C++ 1:1 说话人验证(samples 示例)
3bash run_ax650.sh python # Python 1:1 说话人验证
4bash run_ax650.sh cpp a.wav b.wav # C++ 自定义音频
5bash run_ax650.sh python a.wav b.wav # Python 自定义音频
1conda create -n campplus python=3.10
2conda activate campplus
3
4# 安装 axengine (https://github.com/AXERA-TECH/pyaxengine/releases/latest)
5pip install axengine-x.x.x-py3-none-any.whl
6
7pip install -r python/requirements.txt
Speaker_0: [0.00 35.25]
Speaker_1: [35.25 70.47]
1export LD_LIBRARY_PATH=/soc/lib:${LD_LIBRARY_PATH:-}
2./bin/campplus_ax650 --models-dir models --wav1 a.wav --wav2 b.wav
3./bin/campplus_ax650 --models-dir models --audio meeting.wav --output meeting.embed.bin
特征提取(kaldi-native-fbank,snip_edges=true / dither=0 / povey / mean_nor)
与 Python 版(torchaudio kaldi fbank)逐点对齐(主机实测 cosine 0.99999986);
板端 C++ 与 Python 提取的 embedding cosine = 0.99999955。
按 GitHub 仓库
model_convert
说明:ModelScope 权重 → ONNX(onnxsim/onnxslim,torch/ONNX cosine 1.0)→
真实音频 FBank 校准(5 段真实语音 30 组)→ Pulsar2 U16+SmoothQuant 量化
(embedding cosine 0.9957,gate 0.99)。