赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu 硬件: Ascend 310P / 910B 标签:
npuascendpytorchpyannotevoice-activity-detection
pyannote/voice-activity-detection 是 pyannote.audio 的语音活动检测(VAD)模型。 其分割模型为 PyanNet 架构(SincNet + 4 层双向 LSTM + 2 层线性层), 输入 10 秒 16kHz 单声道音频,输出 (num_frames, 7) 的 powerset 多类编码, 通过迟滞阈值(onset/offset)+ 时长过滤得到语音活动片段。
| 属性 | 值 |
|---|---|
| 原始模型 | https://ai.gitcode.com/hf_mirrors/pyannote/voice-activity-detection |
| 参数量 | 1.47 M |
| 任务类型 | 语音活动检测(VAD) |
| 输入格式 | 16kHz 单声道音频(任意长度,自动切 10s 窗) |
| 输出格式 | 语音活动片段列表 (start, end) + 语音时长统计 |
pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/⚠️ 本仓库不包含模型权重(交付件仅
inference.py/readme.md/requirements.txt/assets/), 推理前必须先从原始模型仓单独下载权重。
# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/pyannote/segmentation.git ./segmentation-weights
# 2. 运行 NPU 推理(音频为 16kHz 单声道 wav)
python3 inference.py --model_path ./segmentation-weights \
--input audio.wav --device npu:0 --output inference_result.jsonpython3 inference.py --model_path ./segmentation-weights \
--input test_audio.wav --device npu:0 --output inference_result.json预期输出:
[Model Agent] ✅ NPU 设备就绪: Ascend310P3
[Model Agent] ✅ 模型加载完成 → npu:0
[Model Agent] ✅ 音频加载完成: 时长 30.00s, 加载耗时 0.01s
[Model Agent] ✅ 推理完成: 4 段语音, 总语音时长 17.15s / 音频 30.00s
[Model Agent] ✅ 推理耗时 26.90s
[Model Agent] ✅ 结果已保存 → inference_result.json推理结果摘要:
{
"model": "pyannote/voice-activity-detection",
"engine": "torch_npu",
"device": "npu:0",
"audio_duration_s": 30.0,
"speech_segments_count": 4,
"total_speech_duration_s": 17.15,
"speech_ratio": 0.5717,
"inference_time_s": 26.9
}.
├── inference.py # NPU 推理脚本
├── readme.md # 本文件
├── requirements.txt # 依赖清单
└── assets/ # 截图素材本模型由 昇腾 Model Agent 自动完成 NPU 适配:
inference.py 支持 NPU 优先、自动回退 CPU;任意长度音频切窗推理