[Bugfix][Qwen3TTS] (#1289)

Signed-off-by: pablo <juanz9312@gmail.com>
Co-authored-by: Gao Han <gaohan19@huawei.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
authored and GitHub committed 2026-02-26 18:58:35 +08:00
1 parent c9786c5c0c
commit 66457c39fa
3 files changed
+5 -3

No files matched your search

@@ -328,7 +328,7 @@ class Qwen3TTSTokenizer:
else:
# List[Tensor/np]
audio_codes_list = [_to_tensor(c, dtype=torch.long) for c in audio_codes_list]
audio_codes_padded = pad_sequence(audio_codes_list, batch_first=True, padding_value=0).to(self.device)
audio_codes_padded = pad_sequence(audio_codes_list, batch_first=True, padding_value=-1).to(self.device)
with torch.inference_mode():
if model_type == "qwen3_tts_tokenizer_25hz":
@@ -991,10 +991,11 @@ class Qwen3TTSTokenizerV2Model(Qwen3TTSTokenizerV2PreTrainedModel):
"""
return_dict = return_dict if return_dict is not None else self.config.return_dict
audio_lengths = (audio_codes[..., 0] > -1).sum(1) * self.decode_upsample_rate
audio_codes = torch.clamp(audio_codes, min=0)
audio_values = self.decoder.chunked_decode(audio_codes.transpose(1, 2)).squeeze(1)
audio_lengths = (audio_codes[..., 0] > 0).sum(1) * self.decode_upsample_rate
audio_values = [a[:length] for a, length in zip(audio_values, audio_lengths)]
if not return_dict:
@@ -1508,10 +1508,11 @@ class Qwen3TTSTokenizerV1Model(Qwen3TTSTokenizerV1PreTrainedModel):
"""
return_dict = return_dict if return_dict is not None else self.config.return_dict
audio_lengths = (audio_codes > -1).sum(1) * self.decode_upsample_rate
audio_codes = torch.clamp(audio_codes, min=0)
audio_values = self.decoder(code=audio_codes, reference_mel=ref_mels, conditioning=xvectors)
audio_lengths = (audio_codes > 0).sum(1) * self.decode_upsample_rate
audio_values = [a[:length] for a, length in zip(audio_values, audio_lengths)]
if not return_dict: