2026-05-18 00:02:34 +08:00
|
|
|
# Covo-Audio-Chat
|
|
|
|
|
|
|
|
|
|
> Online serving for audio chat
|
2026-05-12 14:39:58 +08:00
|
|
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
|
|
|
|
- Vendor: Tencent
|
|
|
|
|
- Model: `tencent/Covo-Audio-Chat`
|
|
|
|
|
- Task: Audio chat — audio (and optional text) input, interleaved text + audio output
|
|
|
|
|
- Mode: Online serving with the OpenAI-compatible API (offline inference also supported)
|
|
|
|
|
- Maintainer: Community
|
|
|
|
|
|
|
|
|
|
## When to use this recipe
|
|
|
|
|
|
|
|
|
|
Use this recipe when you want a known-good starting point for serving
|
|
|
|
|
`tencent/Covo-Audio-Chat` with vLLM-Omni on a single 80 GB-class GPU and
|
|
|
|
|
validate the deployment with the bundled client example.
|
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
|
|
- Related example under `examples/`:
|
|
|
|
|
[`examples/online_serving/covo_audio/README.md`](../../examples/online_serving/covo_audio/README.md)
|
|
|
|
|
- Offline end-to-end script:
|
|
|
|
|
[`examples/offline_inference/covo_audio/end2end.py`](../../examples/offline_inference/covo_audio/end2end.py)
|
|
|
|
|
- Deploy config:
|
|
|
|
|
[`vllm_omni/deploy/covo_audio.yaml`](../../vllm_omni/deploy/covo_audio.yaml)
|
|
|
|
|
- Pipeline topology:
|
|
|
|
|
[`vllm_omni/model_executor/models/covo_audio/pipeline.py`](../../vllm_omni/model_executor/models/covo_audio/pipeline.py)
|
|
|
|
|
|
|
|
|
|
## Hardware Support
|
|
|
|
|
|
|
|
|
|
This recipe currently documents one tested reference configuration for
|
|
|
|
|
CUDA GPU serving. The fused thinker+talker stage and the BigVGAN code2wav
|
|
|
|
|
stage both run on the same physical device.
|
|
|
|
|
|
|
|
|
|
## GPU
|
|
|
|
|
|
|
|
|
|
### 1x A100 80GB
|
|
|
|
|
|
|
|
|
|
#### Environment
|
|
|
|
|
|
|
|
|
|
- OS: Linux
|
|
|
|
|
- Python: 3.12
|
|
|
|
|
- Driver / runtime: NVIDIA CUDA 12.x with an A100 80 GB GPU
|
|
|
|
|
- vLLM version: Match the repository requirements for your checkout
|
|
|
|
|
- vLLM-Omni version or commit: Use the commit you are deploying from
|
|
|
|
|
- Extra Python deps: `torchdiffeq`, `librosa`
|
|
|
|
|
|
|
|
|
|
#### Command
|
|
|
|
|
|
|
|
|
|
Install the two runtime-only deps that are not pulled in by vLLM-Omni itself:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
pip install torchdiffeq librosa
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Start the server from the repository root:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
CUDA_VISIBLE_DEVICES=0 vllm serve tencent/Covo-Audio-Chat --omni \
|
|
|
|
|
--trust-remote-code --port 18091
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The deploy config at `vllm_omni/deploy/covo_audio.yaml` is loaded
|
|
|
|
|
automatically by the model registry.
|
|
|
|
|
|
|
|
|
|
#### Verification
|
|
|
|
|
|
|
|
|
|
With the server ready, send a test request via the bundled client:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd examples/online_serving/covo_audio
|
|
|
|
|
python openai_chat_completion_client.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Expected: the client prints the generated text and writes an output WAV
|
|
|
|
|
file to the current directory.
|
|
|
|
|
|
|
|
|
|
#### Notes
|
|
|
|
|
|
|
|
|
|
- Memory usage: Stage 0 (7B LLM) ~16 GiB + stage 1 (BigVGAN vocoder)
|
|
|
|
|
~2 GiB, both resident on the same device.
|
|
|
|
|
- Key flags: `--omni` and `--trust-remote-code` are both required.
|
|
|
|
|
- System prompt: the bundled `openai_chat_completion_client.py` and
|
|
|
|
|
`end2end.py` already include `COVO_AUDIO_SYSTEM_PROMPT` (defined in
|
|
|
|
|
`vllm_omni/model_executor/models/covo_audio/prompt_utils.py`) in the
|
|
|
|
|
system message by default. When integrating your own client, make sure
|
|
|
|
|
to include it — without it, stage 0 emits text-only tokens and the
|
|
|
|
|
output audio is silent.
|
|
|
|
|
- Stage 1 runs with `enforce_eager: true` and `dtype: float32` — see the
|
|
|
|
|
header of `deploy/covo_audio.yaml` for the specific reasons.
|
|
|
|
|
- Known limitations: this starter recipe covers the single-GPU online-serving
|
|
|
|
|
path only; multi-GPU layouts and platform-specific overrides are not
|
|
|
|
|
documented here.
|