fix: Empty generator -> IndexError problem on non-streaming infer()

This commit is contained in:
Yt Zhong 2025-10-01 03:25:28 +08:00
parent b0c6ab8a93
commit 750d9d9d15

View File

@ -351,13 +351,16 @@ class IndexTTS2:
verbose, max_text_tokens_per_segment, stream_return, more_segment_before, **generation_kwargs verbose, max_text_tokens_per_segment, stream_return, more_segment_before, **generation_kwargs
) )
else: else:
return list(self.infer_generator( try:
spk_audio_prompt, text, output_path, return list(self.infer_generator(
emo_audio_prompt, emo_alpha, spk_audio_prompt, text, output_path,
emo_vector, emo_audio_prompt, emo_alpha,
use_emo_text, emo_text, use_random, interval_silence, emo_vector,
verbose, max_text_tokens_per_segment, stream_return, more_segment_before, **generation_kwargs use_emo_text, emo_text, use_random, interval_silence,
))[0] verbose, max_text_tokens_per_segment, stream_return, more_segment_before, **generation_kwargs
))[0]
except IndexError:
return None
def infer_generator(self, spk_audio_prompt, text, output_path, def infer_generator(self, spk_audio_prompt, text, output_path,
emo_audio_prompt=None, emo_alpha=1.0, emo_audio_prompt=None, emo_alpha=1.0,
@ -677,14 +680,14 @@ class IndexTTS2:
print(">> wav file saved to:", output_path) print(">> wav file saved to:", output_path)
if stream_return: if stream_return:
return None return None
return output_path yield output_path
else: else:
if stream_return: if stream_return:
return None return None
# 返回以符合Gradio的格式要求 # 返回以符合Gradio的格式要求
wav_data = wav.type(torch.int16) wav_data = wav.type(torch.int16)
wav_data = wav_data.numpy().T wav_data = wav_data.numpy().T
return (sampling_rate, wav_data) yield (sampling_rate, wav_data)
def find_most_similar_cosine(query_vector, matrix): def find_most_similar_cosine(query_vector, matrix):