m
mxy-yy/WeSpeaker-ResNet34-LM-MLX-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

WeSpeaker-ResNet34-LM-MLX 昇腾 NPU 部署指南

环境信息

项目版本/内容
设备Ascend 910B

文件结构

WeSpeaker-ResNet34-LM-MLX-ascend/
├── inference.py                   # 推理脚本
├── README.md                       # 本文档
└── test.log                         # 运行日志

运行推理

精度测试

cd WeSpeaker-ResNet34-LM-MLX-ascend/
python inference.py --precision_test

音频推理

cd WeSpeaker-ResNet34-LM-MLX-ascend/
python3 inference.py --audio_path /tmp/test_audio.wav

参数说明

参数说明默认值
--model_path模型权重路径WeSpeaker-ResNet34-LM-MLX
--audio_path待推理音频路径必需(精度测试时不需要)
--precision_test运行精度测试False
--device运行设备npu:0
--no_warmup跳过预热阶段False

精度测试结果

========================================================
Precision Comparison: CPU vs NPU
========================================================
Max errors: sum=1.91e-06, mean=1.49e-08, std=2.98e-08
PASS: NPU precision within 1% of CPU
========================================================
PRECISION TEST PASSED
========================================================
指标阈值实测值状态
max_error_sum< 1e-31.91e-06✅ PASS
max_error_mean< 1e-51.49e-08✅ PASS
max_error_std< 1e-52.98e-08✅ PASS

输出示例

2026-05-18 08:16:07,750 - INFO - WeSpeaker-ResNet34-LM-MLX Ascend NPU Inference
2026-05-18 08:16:07,600 - INFO - Model loaded on device: npu:0
2026-05-18 08:16:07,600 - INFO - 开始预热...
2026-05-18 08:16:07,834 - INFO - 预热完成
2026-05-18 08:16:07,834 - INFO - 开始推理...
2026-05-18 08:16:07,837 - INFO - Inference time: 0.0045s
2026-05-18 08:16:07,837 - INFO - Embedding shape: torch.Size([1, 256])
2026-05-18 08:16:07,837 - INFO - 推理成功完成!

性能参考

适配方案单音频推理时间
预热后 NPU~4.5ms
首次推理 NPU~9s

模型说明

WeSpeaker-ResNet34-LM 是一个说话人嵌入模型,从 pyannote 的 WeSpeaker VoxCeleb ResNet34-LM 转换而来,BatchNorm 已融合到 Conv2d 中。

模型规格

  • 架构: ResNet34 + Statistics Pooling
  • 参数: ~6.6M
  • 输入: 80维 log-mel 频谱, 16kHz 采样率
  • 输出: 256维 L2 归一化说话人嵌入

输出格式

  • embedding: L2 归一化的说话人嵌入,形状 (1, 256)

注意事项

  1. 模型使用 NPU 进行推理加速
  2. 输出为 L2 归一化向量,可直接用于余弦相似度计算
  3. 首次推理较慢(包含模型加载和编译优化)
  4. 精度测试基于 state_dict tensor 的 CPU vs NPU 比较