VoxCPM-ONNX¶
VoxCPM-ONNX 为 VoxCPM 提供 ONNX 导出与 ONNX Runtime 推理,并可选配 FastAPI REST 服务。
警告
作者已将本项目 归档。若需要活跃维护的实现,可考虑改用 VoxCPM.cpp。代码与文档多为 AI 生成,仅作参考。
提供 ONNX 导出脚本、ONNX Runtime 推理流水线,以及带 OpenAI 风格 TTS API 的 FastAPI 服务。
VoxCPM 1.0(0.5B) |
✅ 支持(默认 |
VoxCPM 1.5 |
❌ 不在本仓库(见 DakeQQ 的导出脚本) |
VoxCPM 2 |
❌ 不支持 |
主要特性¶
从 PyTorch VoxCPM-0.5B 权重导出 ONNX
通过 ONNX Runtime 在 CPU 与 GPU 上推理
FastAPI 服务,提供
/tts、/ref_feat、/health端点基于 SQLite 的 reference 特征缓存(通过
/ref_feat)支持 Docker Compose(CPU 与 GPU 服务)
准备工作¶
Python >= 3.10
openbmb/VoxCPM-0.5Bcheckpoint(可选)GPU 推理需 CUDA 11.8+
(可选)Docker + NVIDIA Container Toolkit
安装¶
git clone https://github.com/bluryar/VoxCPM-ONNX.git
cd VoxCPM-ONNX
# Install dependencies
uv sync # or: pip install -e .
# Export ONNX models (set env vars first)
export MODEL_PATH=/path/to/VoxCPM-0.5B
export OUTPUT_DIR=./onnx_models
export TIMESTEPS=5
export CFG_VALUE=2.0
bash export.sh
bash opt.sh # optimize exported models
基本用法(服务端)¶
启动 FastAPI 服务:
# Via Docker Compose (GPU) — exposed on port 8101
docker-compose up voxcpm-gpu
# Or manually on port 8000
VOX_MODELS_DIR=/path/to/onnx_models VOX_DEVICE=cuda \
uvicorn src.server.app:app --host 0.0.0.0 --port 8000
主要环境变量:
变量 |
说明 |
|---|---|
|
已导出 ONNX 模型目录的路径 |
|
|
|
用于 reference 特征缓存的 SQLite 数据库路径 |
API 示例:
# Health check
curl http://localhost:8000/health
# Text-to-speech (Form-encoded)
curl -X POST http://localhost:8000/tts \
-F "input=Hello from ONNX inference" \
--output output.wav
# With Docker Compose GPU service (port 8101)
curl -X POST http://localhost:8101/tts \
-F "input=Hello from ONNX inference" \
--output output.wav
限制说明¶
仅面向 VoxCPM-0.5B;VoxCPM 1.5 的 ONNX 导出见上文 DakeQQ 脚本链接
导出 ONNX 中的推理步数固定(在导出时设定)
重复的 prefill/decode 权重会增大模型体积