VoxCPM-RKNN2¶
VoxCPM-RKNN2 使用 RKNN2/RKLLM NPU 加速栈,在 瑞芯微 RK3588 边缘设备上部署 VoxCPM-0.5B。
仓库:Hugging Face 上的 happyme531/VoxCPM-0.5B-RKNN2
备注
本项目面向 瑞芯微 RK3588 (及兼容 RKNPU2 的设备),并非通用桌面/服务器部署方案。
VoxCPM 1.0(0.5B) |
✅ 支持( |
VoxCPM 1.5 |
❌ 不支持 |
VoxCPM 2 |
❌ 不支持 |
主要特性¶
在瑞芯微 RK3588 SoC 上使用 NPU 加速推理
结合 RKNN(音频 VAE / LocDiT 算子)与 RKLLM(LLM 主干)
基于参考音频的声音克隆
从 PyTorch 到 RKNN/RKLLM 格式的模型转换流水线
性能表现¶
在 RK3588 上的基准:
RTF:约 4.5(生成约 10 秒音频约需 45 秒)
内存占用:约 3.3 GB
准备工作¶
瑞芯微 RK3588 开发板(如 Orange Pi 5、Rock 5B)
已安装 RKNN2 运行库的 Python 环境
openbmb/VoxCPM-0.5B权重(用于转换)
安装与推理¶
pip install numpy scipy soundfile tqdm transformers sentencepiece \
ztu-somemodelruntime-ez-rknn-async
基本用法¶
python onnx_infer-rknn2.py \
--onnx-dir /path/to/rknn_models \
--tokenizer-dir /path/to/tokenizer \
--base-hf-dir /path/to/base_model \
--residual-hf-dir /path/to/residual_model \
--text "你好,这是 VoxCPM 在 RK3588 上的推理。" \
--seed 42 \
--output output.wav
# Voice cloning
python onnx_infer-rknn2.py \
--onnx-dir /path/to/rknn_models \
--tokenizer-dir /path/to/tokenizer \
--base-hf-dir /path/to/base_model \
--residual-hf-dir /path/to/residual_model \
--prompt-audio ref_voice.wav \
--prompt-text "参考音频文本" \
--text "克隆语音说新的文字。" \
--cfg-value 2.0 \
--inference-timesteps 10 \
--seed 42 \
--output output.wav
模型转换¶
将 VoxCPM-0.5B 权重转换为 RKNN/RKLLM 格式:
安装转换工具链:
pip install torch==2.10.0 transformers==4.57.6 onnx==1.18.0 \
onnxruntime==1.22.0 einops==0.8.2 \
rknn-toolkit2==2.3.2 rkllm-toolkit==1.2.3
下载基础模型:
# Download openbmb/VoxCPM-0.5B to ./VoxCPM-0.5B
运行转换流水线:
cd convert
python scripts/build_rk3588_pipeline.py
# Artifacts output to build/rk3588/final_models/
详细步骤见 转换指南。
已知问题¶
可能出现 无限生成循环 — 上游 bad-case 保护尚未移植
受 RKNN 工具链 shape 限制,需拆成两个 LocEnc 模型
RKLLM 输出需手动 ×4 缩放的变通处理