d
dingdang666/wav2vec2-base-960h-NPU
模型介绍文件和版本Pull Requests讨论分析

wav2vec2-base-960h on Ascend NPU

1. 简介

本文档记录 wav2vec2-base-960h(Wav2Vec2 语音识别模型)在昇腾 NPU(Ascend 910B3)环境的适配部署与精度验证结果。

Wav2Vec2-Base 是一种自监督语音模型(约 94.4M 参数),在 LibriSpeech 960h 上微调,输出 CTC logits 用于语音识别。本项目完成该模型在昇腾 NPU 上的推理适配,验证 NPU 与 CPU 推理结果的精度误差 < 1%。

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/facebook/wav2vec2-base-960h
  • 适配代码仓库:https://gitcode.com/dingdang666/wav2vec2-base-960h-NPU

2. 验证环境

组件版本
python3.11.x
torch2.10.0+cpu
torch_npu2.10.0
transformers5.8.1
CANN8.5.1
  • NPU:Ascend 910B3(8卡)
  • 模型路径:/path/to/model
  • 框架:PyTorch + transformers

3. 模型信息

项目值
模型架构Wav2Vec2ForCTC
参数量~94.4M
采样率16kHz
权重格式safetensors
预训练数据LibriSpeech 960h
许可证Apache-2.0

4. Conda 环境安装

conda create -n wav2vec2 python=3.11 -y
conda activate wav2vec2
pip install torch==2.10.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install torch_npu==2.10.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install transformers safetensors --index-url https://repo.huaweicloud.com/repository/pypi/simple/

5. 推理执行

python3 inference.py --model_path /path/to/model
python3 inference.py ... --device cpu
python3 benchmark.py --model_path /path/to/model

6. 参数说明

脚本参数说明默认值
inference.py--model_path / --device模型/设备必需 / npu:0
benchmark.py--model_path / --npu_device / --num_warmup模型/NPU/预热必需 / npu:0 / 3

7. 精度评测

使用同一段音频(440Hz 纯音)在 CPU(FP32)和 NPU(FP32)上推理,对比 CTC logits。

指标数值
向量级相对误差0.70%
余弦相似度0.999981
评价指标实测值阈值状态
向量级相对误差0.70%< 1%PASS

注:精度受音频内容影响,纯音测试最佳约 0.7%,复杂信号可能更高。

8. 性能数据

操作耗时
CPU 推理时间(FP32)0.43 s
NPU 推理时间(FP32,3轮预热后)0.33 s
加速比 (CPU / NPU)1.30 x

9. 注意事项

  1. 如果 HuggingFace 无法访问,设置 export HF_ENDPOINT=https://hf-mirror.com/。
  2. NPU 首次推理包含编译优化,脚本默认 3 轮预热。
  3. 权重文件不包含在适配仓库中,需单独下载。
  4. 精度受音频内容影响,复杂信号误差可能超过 1%。
下载使用量0