K-ON111111/voice-activity-detection
模型介绍
文件和版本
Pull Requests
讨论
分析

pyannote/voice-activity-detection — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu 硬件: Ascend 310P / 910B 标签: npu ascend pytorch pyannote voice-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.json

🧪 测试用例

用例 1: 30s 音频语音活动检测

python3 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 适配:

  • 模型架构 PyanNet(SincNet + LSTM + 线性层),无 CUDA 专属算子,可直接迁移至 torch_npu
  • inference.py 支持 NPU 优先、自动回退 CPU;任意长度音频切窗推理
  • VAD 迟滞阈值(onset=0.5 / offset=0.3)针对 7 类 powerset 模型语音概率分布调整
  • 已在 Ascend 310P3 上实跑验证通过,输出合法