z
zkx_/speech_zipenhancer_ans_multiloss_16k_base-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

speech_zipenhancer_ans_multiloss_16k_base on Ascend NPU

1. 简介

本文档记录 ZipEnhancer 语音增强/降噪模型在昇腾 NPU (Ascend 910B3) 上的迁移适配与精度验证结果。

ZipEnhancer 是基于 Zipformer 架构的语音增强模型,通过多损失函数联合训练实现噪声抑制。模型输入 STFT 幅度谱和相位谱(noisy_mag + noisy_pha),输出增强后的幅度和相位,经 ISTFT 重建干净语音。模型仅 2M 参数,支持 16kHz 采样率。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/damo/speech_zipenhancer_ans_multiloss_16k_base
  • 权重下载地址(HuggingFace Mirror):https://hf-mirror.com/damo/speech_zipenhancer_ans_multiloss_16k_base

参考文档:

  • https://modelscope.cn/models/damo/speech_zipenhancer_ans_multiloss_16k_base

2. 验证环境

组件版本
CANN8.5.1
torch2.8.0
torch_npu2.8.0.post4
modelscope1.37.0
librosalatest
  • NPU:Ascend 910B3,单卡推理
  • 模型大小:约 2.0M 参数
  • 输入:noisy_mag [B, 65, T] + noisy_pha [B, 65, T]
  • 输出:增强后幅度 [B, 65, T] + 相位 [B, 65, T] + 复数谱

3. 推理启动

3.1 环境准备

conda create -n speech_zipenhancer_ans python=3.10 -y
conda activate speech_zipenhancer_ans

pip install torch==2.8.0 torch_npu==2.8.0.post4 \
    -i https://mirrors.huaweicloud.com/repository/pypi/simple \
    --trusted-host mirrors.huaweicloud.com

pip install modelscope librosa soundfile numpy \
    sortedcontainers simplejson addict datasets pyarrow Pillow \
    -i https://mirrors.huaweicloud.com/repository/pypi/simple \
    --trusted-host mirrors.huaweicloud.com

3.2 下载模型权重

modelscope download --model damo/speech_zipenhancer_ans_multiloss_16k_base \
    --local_dir ./speech_zipenhancer_ans_multiloss_16k_base

3.3 命令行推理

# 需要先通过 STFT 提取幅度和相位特征
python inference.py --feature mag_pha.npz --device npu

3.4 Python API

from inference import run_inference
import numpy as np
mag = np.random.randn(1, 65, 100).astype(np.float32)
pha = np.random.randn(1, 65, 100).astype(np.float32)
# 完整的推理流水线需配合 STFT/ISTFT

4. Smoke 验证

python evaluate.py

验证结果:

  • CPU 推理正常,输出增强后幅度 [1, 65, 100]
  • NPU 推理正常,输出同形状
  • 精度评测通过

5. 性能参考

测试条件:mag [1, 65, 100] + pha [1, 65, 100]。

指标CPUNPU (Ascend 910B3)
推理耗时1676 ms63 ms
加速比—27x

6. 精度评测

6.1 评测方法

对比 CPU (PyTorch) 与 NPU (torch_npu) 在相同 STFT 特征输入下 ZipEnhancer 模型的输出增强幅度。

6.2 评测结果

指标数值
输出形状[1, 65, 100]
鲁棒平均相对误差0.034%
精度要求平均相对误差 < 1%
精度评测通过

7. 注意事项

  1. 模型接口:通过 pipeline.model.model 获取 ZipEnhancer,forward 需同时传入 noisy_mag 和 noisy_pha 两个参数
  2. 完整流水线:STFT 特征提取(幅度+相位)在 CPU 执行,NPU 推理后通过 ISTFT 重建时域音频
  3. 轻量模型:仅 2M 参数,适合端侧部署
  4. 首次推理:NPU 首次推理有算子编译开销(约 10-20s),后续稳定在 ~63ms