weixin_62994174/voxcpm-0.5b
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

VoxCPM-0.5B - 昇腾 NPU 适配

VoxCPM-0.5B 是基于昇腾 NPU(Ascend 910)适配的端到端语音合成(TTS)模型。该模型在华为昇腾 NPU 上完成推理适配,支持中英文语音合成。

模型说明

  • 模型来源: OpenBMB/VoxCPM-0.5B
  • 模型架构: VoxCPM(Tokenizer-free 语音生成模型)
  • 参数量: 0.5B
  • 推理框架: PyTorch + torch_npu
  • 支持设备: Ascend 910 (NPU)

环境要求

组件版本
Python>= 3.11
PyTorch2.9.0
torch_npu2.9.0.post1
voxcpm>= 1.0.3
torchaudio>= 2.5.0
transformers>= 4.36.2
soundfile>= 0.13.0

快速开始

1. 下载模型

pip install modelscope
python -c "
from modelscope import snapshot_download
model_dir = snapshot_download('xiaowangge/voxcpm-0.5b')
print(f'Model downloaded to: {model_dir}')
"

2. 安装依赖

pip install voxcpm torch_npu soundfile

3. NPU 推理

# 英文文本合成
python inference.py \
    --text "Hello world, this is a test of VoxCPM on Ascend NPU." \
    --output output.wav \
    --device npu:0 \
    --timesteps 4

# 中文文本合成
python inference.py \
    --text "你好,这是VoxCPM在华为昇腾NPU上的推理测试。" \
    --output output_cn.wav \
    --device npu:0 \
    --timesteps 4

# 带参考音频的合成
python inference.py \
    --text "VoxCPM generates highly realistic speech." \
    --prompt-audio example.wav \
    --prompt-text "Just by listening a few minutes a day." \
    --output output_prompt.wav \
    --device npu:0

# 性能基准测试
python inference.py \
    --text "Hello world, this is a test." \
    --output benchmark.wav \
    --device npu:0 \
    --benchmark --benchmark-runs 10

4. 精度评测

python evaluate.py --output-dir evaluation_results

NPU 适配说明

适配要点

  1. 设备支持: 通过 monkey-patch 方式为 voxcpm 添加 NPU 设备支持
  2. dtype: NPU 上使用 bfloat16 精度,与 CUDA 保持一致
  3. torch.compile: NPU 上禁用 torch.compile 优化(CUDA 专用特性)

核心补丁逻辑

import torch_npu
from voxcpm.model import utils

# 扩展设备分辨率,支持 "npu:0", "npu:1" 等设备标识
utils.resolve_runtime_device = patched_resolve_runtime_device
utils.auto_select_device = patched_auto_select_device

性能基准

测试环境:Ascend 910 NPU, torch_npu 2.9.0

测试用例文本推理步数生成时长推理时间RTF
english_short"Hello world..." (英)43.76s2.70s0.719
chinese_short"你好,这是..." (中)44.72s2.76s0.585
english_long"VoxCPM is an..." (英)1013.52s13.39s0.990

模型加载时间: 12.08s

RTF 说明: RTF(Real-Time Factor)< 1 表示推理速度快于实时播放速度。

多轮推理稳定性

指标数值
平均推理时间2.47s
标准差0.18s
最小推理时间2.28s
最大推理时间2.70s

精度验证

音频输出验证

测试用例RMSPeakCrest FactorZCR
english_short0.0680.72910.670.196
chinese_short0.1160.9137.890.169
english_long0.1360.8396.160.196

所有输出均为有效音频信号,无异常值(NaN/Inf),幅值范围合理。

精度说明

VoxCPM 是基于扩散模型 (CFM) 的 TTS 模型,每次推理使用随机噪声采样,因此同一输入在不同运行中生成的音频在波形层面存在天然差异。这是扩散模型的正常特性,不影响生成语音的质量和自然度。

交付件清单

文件说明
inference.pyNPU 推理脚本,支持命令行参数
evaluate.py精度与性能评测脚本
evaluation_results/评测输出目录(音频 + 报告)
test_npu_output.wavNPU 推理输出示例
README.md本部署文档

许可证

本项目基于 Apache License 2.0 开源。

合规说明

  • 禁止将 VoxCPM-0.5B 用于任何非法或不道德的目的。
  • 推荐在公开分享的 AI 生成内容中标注为 AI 生成。

致谢

  • 原始模型: OpenBMB/VoxCPM
  • ModelScope 社区: xiaowangge/voxcpm-0.5b
  • 华为昇腾: Ascend 910 NPU