From 43939df2a50375d9899c0bc45d235e584eafa5ee Mon Sep 17 00:00:00 2001 From: Junhong Liu Date: Wed, 25 Feb 2026 22:59:49 +0800 Subject: [PATCH] [Bugfix] Robust Audio Data Handling in _create_audio_choice (#1222) Signed-off-by: Junhong Liu <98734602+LJH-LBJ@users.noreply.github.com> --- vllm_omni/entrypoints/openai/serving_chat.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/vllm_omni/entrypoints/openai/serving_chat.py b/vllm_omni/entrypoints/openai/serving_chat.py index 4271d799e..5f4ad75e4 100644 --- a/vllm_omni/entrypoints/openai/serving_chat.py +++ b/vllm_omni/entrypoints/openai/serving_chat.py @@ -1622,12 +1622,14 @@ class OmniOpenAIServingChat(OpenAIServingChat, AudioMixin): # OMNI: Access multimodal_output from CompletionOutput (outputs[0]), not from RequestOutput # Reference: examples/offline_inference/qwen3_omni/end2end.py line 421 audio_data = final_res.outputs[0].multimodal_output.get("audio") - if stream: - audio_tensor = audio_data[-1].float().detach().cpu().numpy() + if isinstance(audio_data, list): + if stream: + audio_tensor = audio_data[-1] + else: + audio_tensor = torch.cat(audio_data, dim=-1) else: - if isinstance(audio_data, list): - audio_data = torch.cat(audio_data, dim=-1) - audio_tensor = audio_data.float().detach().cpu().numpy() + audio_tensor = audio_data + audio_tensor = audio_tensor.float().detach().cpu().numpy() # Ensure audio is 1D (flatten if needed) if audio_tensor.ndim > 1: