fix: padding value process bug in tokenizer decode
This commit is contained in:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "qwen-tts"
|
name = "qwen-tts"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
description = "Qwen-TTS python package"
|
description = "Qwen-TTS python package"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
|
|||||||
@@ -1009,10 +1009,11 @@ class Qwen3TTSTokenizerV2Model(Qwen3TTSTokenizerV2PreTrainedModel):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
return_dict = return_dict if return_dict is not None else self.config.return_dict
|
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_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)]
|
audio_values = [a[:l] for a, l in zip(audio_values, audio_lengths)]
|
||||||
|
|
||||||
if not return_dict:
|
if not return_dict:
|
||||||
|
|||||||
@@ -1509,12 +1509,13 @@ class Qwen3TTSTokenizerV1Model(Qwen3TTSTokenizerV1PreTrainedModel):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
return_dict = return_dict if return_dict is not None else self.config.return_dict
|
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,
|
audio_values = self.decoder(code=audio_codes,
|
||||||
reference_mel=ref_mels,
|
reference_mel=ref_mels,
|
||||||
conditioning=xvectors)
|
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)]
|
audio_values = [a[:l] for a, l in zip(audio_values, audio_lengths)]
|
||||||
|
|
||||||
if not return_dict:
|
if not return_dict:
|
||||||
|
|||||||
@@ -326,7 +326,7 @@ class Qwen3TTSTokenizer:
|
|||||||
else:
|
else:
|
||||||
# List[Tensor/np]
|
# List[Tensor/np]
|
||||||
audio_codes_list = [_to_tensor(c, dtype=torch.long) for c in audio_codes_list]
|
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():
|
with torch.inference_mode():
|
||||||
if model_type == "qwen3_tts_tokenizer_25hz":
|
if model_type == "qwen3_tts_tokenizer_25hz":
|
||||||
|
|||||||
Reference in New Issue
Block a user