From de1ac5ee88c9955efe55266f5ae3859b22eaef4f Mon Sep 17 00:00:00 2001 From: Reid <61492567+reidliu41@users.noreply.github.com> Date: Tue, 31 Mar 2026 17:51:35 +0800 Subject: [PATCH] [Bugfix] Fix case-sensitivity in Qwen3 TTS speaker name lookup (#2358) Signed-off-by: reidliu41 --- vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_talker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_talker.py b/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_talker.py index 87fadae8c..08c0f9a1e 100644 --- a/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_talker.py +++ b/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_talker.py @@ -1450,10 +1450,10 @@ class Qwen3TTSTalkerForConditionalGeneration(nn.Module): ) if not speaker: raise ValueError("CustomVoice requires additional_information.speaker.") - spk_id_map = getattr(self.talker_config, "spk_id", None) or {} + spk_id_map = {k.lower(): v for k, v in (getattr(self.talker_config, "spk_id", None) or {}).items()} if speaker not in spk_id_map: raise ValueError(f"Unsupported speaker: {speaker}") - spk_id = spk_id_map[speaker.lower()] + spk_id = spk_id_map[speaker] # Keep it at least 1D; embedding on a 0-d tensor can return 1D. spk_tensor = torch.tensor([spk_id], device=input_ids.device, dtype=torch.long) spk_embed = self.embed_input_ids(spk_tensor)