VoxCPM2 是一个无词表、扩散自回归的文本转语音模型 —— 2B 参数、30 种语言、48kHz 音频输出,基于超过 200 万小时 的多语言语音数据训练。
本仓库完成了 VoxCPM2 在 昇腾 NPU 上的适配与验证,支持通过 model.to("npu") 直接加载到 NPU 运行。
| 项目 | 要求 |
|---|---|
| NPU | Ascend 910B 或同等算力 |
| 内存 | >= 16 GB |
| 存储 | >= 10 GB(模型权重约 4.5 GB) |
# Python >= 3.10
pip install torch==2.5.1
pip install torch-npu==2.5.1 # 昇腾 NPU 适配的 PyTorch
pip install voxcpm soundfile注意:当前适配基于 CANN 8.5.1 + torch-npu 2.5.1 验证通过。
modelscope download --model openbmb/VoxCPM2 --local_dir /opt/atomgit/openbmb/VoxCPM2python3 -m atomgit download hf_mirrors/openbmb/VoxCPM2 -d /opt/atomgit/openbmb/VoxCPM2VoxCPM2 原生支持 device 参数,但内部设备解析逻辑仅支持 cuda/cpu/mps。本适配通过 monkey-patch 方式在运行时注入 NPU 支持,无需修改原始库代码。
核心 patch 点:
resolve_runtime_device:增加 npu 分支,自动识别 NPU 可用性device="npu" 即可直接运行torch.compile 仅在 CUDA 设备上支持,NPU 上会自动跳过(有警告日志,可忽略)allow_internel_format=False 的格式回退警告,不影响结果正确性python3 inference.py推理脚本会在 output/ 目录下生成以下音频文件:
运行日志示例:
Running on device: npu, dtype: bfloat16
Loading model from safetensors: /opt/atomgit/openbmb/VoxCPM2/model.safetensors
Loaded VoxCPM2Model
Warm up VoxCPMModel...
100%|██████████| 10/10 [00:01<00:00, 6.66it/s]python3 benchmark.py| 测试用例 | 文本长度 | 推理时间(s) | 音频时长(s) | RTF |
|---|---|---|---|---|
| short_en | 短句 | 2.68 | 2.93 | 0.91 |
| medium_en | 中句 | 4.87 | 5.33 | 0.91 |
| long_en | 长句 | 9.92 | 10.93 | 0.91 |
| short_zh | 中文短句 | 2.58 | 2.88 | 0.89 |
| voice_design | 声音设计 | 2.91 | 3.25 | 0.89 |
RTF (Real-Time Factor) = 推理时间 / 音频时长,数值越小越好。NPU 上 RTF 约为 0.9,即生成速度接近实时。
详细结果保存在 output/benchmark_result.json。
python3 accuracy.py| 指标 | 阈值 | 结果 |
|---|---|---|
| 长度差异比例 | < 1% | PASS |
| 相对 L2 误差 | < 1% | PASS |
| Cosine Similarity | > 0.99 | PASS |
由于 TTS 扩散模型内部包含随机采样(
torch.randn),即使固定种子,不同硬件的随机数序列也可能存在差异,导致波形不完全一致。上述指标表明 NPU 与 CPU 输出在感知层面高度一致。
详细结果保存在 output/accuracy_result.json。
| 属性 | 值 |
|---|---|
| 架构 | 无词表扩散自回归 (LocEnc → TSLM → RALM → LocDiT) |
| 参数量 | 2B |
| Audio VAE | AudioVAE V2 (16kHz 输入 → 48kHz 输出) |
| 训练数据 | 200万+ 小时多语言语音 |
| 最大序列长度 | 8192 tokens |
| 输出采样率 | 48kHz |
@article{voxcpm2_2026,
title = {VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning},
author = {VoxCPM Team},
journal = {GitHub},
year = {2026},
}Apache-2.0,可商用。