vLLM-Omni

vLLM-Omni 是 vLLM 项目的官方全模态服务栈,原生支持 VoxCPM2。

如果你的生产部署需要并发请求、连续批处理或多租户 GPU 服务,这是当前推荐的方案。

特性

  • 基于上游 vLLM 调度器的原生 VoxCPM2 服务

  • 面向并发推理负载的连续批处理

  • PagedAttention KV 缓存管理

  • OpenAI 兼容的 /v1/audio/speech 接口

  • 支持流式分块输出和多 GPU 部署

前置条件

  • vLLM-Omni 支持的 Linux + GPU 环境

  • 已安装 uv 的 Python 环境

  • 能够访问 openbmb/VoxCPM2 模型权重

安装

建议从源码安装。上游项目迭代较快,除非你的部署环境已经固定版本,否则优先使用最新的 main 分支:

uv pip install vllm==0.19.0 --torch-backend=auto
git clone https://github.com/vllm-project/vllm-omni.git
cd vllm-omni
uv pip install -e .

其他平台(如 ROCm、XPU、MUSA、NPU)以及基于 Docker 的安装方式,请参考上游安装文档。

部署 VoxCPM2 服务

启动一个 OpenAI 兼容的 TTS 服务:

vllm serve openbmb/VoxCPM2 --omni --port 8000

你可以从任意 OpenAI 兼容客户端发起语音生成请求:

curl http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"model":"openbmb/VoxCPM2","input":"Hello from VoxCPM2 on vLLM-Omni!","voice":"default"}' \
  --output out.wav

说明

备注

如果你的负载需要高并发,这种服务架构通常比在同一张 GPU 上运行多个彼此独立、经过 torch.compile 优化的 VoxCPM 进程更合适。

小技巧

如果你更需要一个较轻量、原生 Python 的同步 / 异步 API 服务栈,可以参考 NanoVLLM-VoxCPM