pip install modelscope
python -c "from modelscope import snapshot_download; snapshot_download('iic/speech_sanm_kws_phone-xiaoyun-commands-online')"Model: iic/speech_sanm_kws_phone-xiaoyun-commands-online
Audio: assets/test.wav
NPU output: rejected说明:该模型为关键词唤醒(KWS)模型,对测试音频进行关键词 "小云小云" 检测,输出 "rejected" 表示未检测到目标关键词。输出非空,模型在 NPU 上运行正常。
=== CPU-NPU Accuracy Consistency Check ===
max_abs_error 0.001649
mean_abs_error 0.000078
relative_error 0.0156%
cosine_similarity 1.000000
threshold 1.0%
result PASSEncoder 中间输出 CPU-NPU 相对误差 0.0156%,远低于 1.0% 阈值,精度一致。
=== Benchmark Results ===
avg_latency_ms 1676.4959
min_latency_ms 1622.9109
max_latency_ms 1767.8122
p50_latency_ms 1656.9903
p90_latency_ms 1735.8370
p95_latency_ms 1751.8246
audio_duration_sec 5.5467
real_time_factor 0.3023
num_runs 10RTF(实时率)约为 0.30,NPU 推理速度约为实时播放的 3.3 倍。
pip install -r requirements.txtpython inference.pypython eval_consistency.pypython benchmark.py.
├── assets/
│ └── test.wav
├── logs/
│ ├── env_check.log
│ ├── inference.log
│ ├── eval_consistency.log
│ └── benchmark.log
├── models/ # 模型权重目录(.gitignore)
├── model_utils.py
├── inference.py
├── eval_consistency.py
├── benchmark.py
├── requirements.txt
├── .gitignore
└── README.md本模型为**关键词唤醒(KWS)**模型,非标准语音识别(ASR)模型。推理时需额外传入:
keywords: 目标关键词(如 "小云小云")chunk_size: 流式推理块大小(如 [5, 20, 5])is_final=True: 确保对完整音频进行最终检测output_dir: 避免内部 writer 未初始化导致报错模型输出为关键词检测结果(detected ... 或 rejected),而非连续语音转写文本。
权重文件(*.pt)未提交到仓库,首次运行时会自动从 ModelScope 下载到本地缓存。