fix: padding value process bug in tokenizer decode

This commit is contained in:
Xiong Wang
2026-02-06 12:11:31 +08:00
parent 5f8581d05e
commit 6cafe5582c
4 changed files with 6 additions and 4 deletions

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "qwen-tts"
version = "0.1.0"
version = "0.1.1"
description = "Qwen-TTS python package"
readme = "README.md"
requires-python = ">=3.9"

View File

@@ -1009,10 +1009,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[:l] for a, l in zip(audio_values, audio_lengths)]
if not return_dict:

View File

@@ -1509,12 +1509,13 @@ 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[:l] for a, l in zip(audio_values, audio_lengths)]
if not return_dict:

View File

@@ -326,7 +326,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":