Skip to main content
vLLM officially provides day-0 support for Qwen3-TTS through vLLM-Omni! This integration enables efficient deployment and inference for speech generation workloads.

Overview

vLLM-Omni extends vLLM with multimodal capabilities, including support for text-to-speech models like Qwen3-TTS. Key benefits:
  • Optimized inference: Faster generation compared to standard PyTorch inference
  • Efficient memory usage: Better GPU memory management for batch processing
  • Production-ready: Battle-tested serving infrastructure
  • Continuous optimization: Ongoing improvements for speed and streaming capabilities
Current Status: Only offline inference is supported. Online serving will be supported in future releases.

Installation

Install vLLM-Omni following the official installation guide:
For detailed installation steps and dependencies, refer to the vLLM-Omni official documentation.

Offline Inference

vLLM-Omni supports all three Qwen3-TTS task types: CustomVoice, VoiceDesign, and Base (voice cloning).

Setup

Navigate to the examples directory:

CustomVoice Task

Generate speech using predefined speaker voices with optional instruction control. Single sample:
Batch inference (multiple prompts in one run):
The CustomVoice task lets you select from 9 premium speaker voices and control generation with natural language instructions like “speak with an angry tone” or “say this very happily.”

VoiceDesign Task

Create custom voices based on natural language descriptions. Single sample:
Batch inference:
The VoiceDesign task accepts detailed voice descriptions (e.g., “体现撒娇稚嫩的萝莉女声,音调偏高且起伏明显,营造出黏人、做作又刻意卖萌的听觉效果”) and generates matching audio.

Base Task (Voice Clone)

Clone a voice from a reference audio sample. Single sample with in-context learning (ICL) mode:
In ICL mode, you provide:
  • Reference audio (ref_audio)
  • Reference transcript (ref_text)
  • Target text to synthesize
The model clones the voice characteristics from the reference and applies them to the target text.

Supported Models

All Qwen3-TTS models are supported via vLLM-Omni:

Example Code

Here’s what the vLLM-Omni inference code looks like (simplified example):
For complete working examples, refer to the vLLM-Omni repository.

Performance Considerations

Batch Processing

vLLM-Omni excels at batch inference. When processing multiple requests:
  • Use --use-batch-sample flag for batch processing
  • Larger batches improve GPU utilization
  • Balance batch size with GPU memory constraints

Memory Management

vLLM automatically manages memory allocation:
  • KV cache optimization: Efficient attention computation
  • Paged attention: Better memory utilization
  • Dynamic batching: Automatically groups requests

Model Selection

Choose the right model for your use case:

GPU Recommendations

Upcoming Features

vLLM-Omni is actively developing additional features:
  • Online serving: HTTP API for real-time generation
  • Streaming support: Stream audio as it’s generated
  • Multi-GPU inference: Tensor parallelism for large-scale deployment
  • Quantization: INT8/INT4 quantization for faster inference

Comparison: vLLM vs PyTorch

When to use PyTorch:
  • Quick prototyping and testing
  • Local demos and experiments
  • Streaming generation (currently)
  • Simple integration needs
When to use vLLM-Omni:
  • Production deployments
  • High-throughput batch processing
  • Optimized resource utilization
  • Scalable serving infrastructure

Resources

Next Steps