speech_charctc_kws_phone-speechcommands - 昇腾 NPU 适配
1. 模型简介
移动端语音唤醒模型,基于 cFSMN (Compact Feedforward Sequential Memory Network) 架构,支持检测 "Yes/No/Up/Down/Left/Right/On/Off/Stop/Go" 10 个英文关键词。参数量约 750K,适用于移动端设备运行。
2. 昇腾 NPU 适配结果
| 指标 | 值 |
|---|
| Logits 余弦相似度 | 1.000000 |
| 帧级别 Top-1 匹配率 | 1.0000 |
| 平均延迟 | 1.28ms |
| 输出维度 | [1, 98, 2599](帧 x 标记) |
| 推理精度 | float32 |
| 设备 | Ascend 910B4 |
3. 环境要求
| 组件 | 版本 |
|---|
| CANN | 8.5.1 |
| torch_npu | 2.9.0.post1 |
| PyTorch | 2.9.0 |
| Python | 3.11 |
| modelscope | latest |
4. 快速使用
export ASCEND_HOME_PATH=/usr/local/Ascend/cann
export LD_LIBRARY_PATH=/usr/local/Ascend/cann/lib64:$LD_LIBRARY_PATH
python inference.py
5. 推理输出证据
Model: iic/speech_charctc_kws_phone-speechcommands
Device: npu:0
Input shape: [1, 98, 400]
Output shape: [1, 98, 2599]
Frames: 98
Avg top-1 prob (CPU): 1.0000
Avg top-1 prob (NPU): 1.0000
Latency: 1.28ms
--- CPU vs NPU 精度对比 ---
Logits Cosine Similarity: 1.000000
Max Abs Error: 918.500000
Frame-level top-1 match rate: 1.0000
SUCCESS
6. CPU 与 NPU 精度对比
| 指标 | CPU (float32) | NPU (float32) | 误差 |
|---|
| Logits 余弦相似度 | 基准 | 1.000000 | < 0.000001 |
| 帧级别 Top-1 匹配率 | 基准 | 1.0000 | 完全一致 |
| 平均 Top-1 概率 | 1.0000 | 1.0000 | 一致 |
7. 模型结构
- 主干网络: cFSMN (4 层)
- 输入: 80 维 fbank 特征 + 上下文扩展 (左=2,右=2) = 400 维
- 池化: 帧级别输出
- 输出: 2599 个字符 tokens (基于 CTC)
- 关键词: Yes, No, Up, Down, Left, Right, On, Off, Stop, Go