From 82c2a6eaa19fa2ccad24399bf14b8d42b6d83e18 Mon Sep 17 00:00:00 2001 From: david-bowiegxw <834563048@qq.com> Date: Tue, 18 Aug 2026 15:43:57 +0900 Subject: [PATCH] fix(webui): preview IndexTTS 2.5 text segments (#777) --- webui.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/webui.py b/webui.py index f595f8e..bfc7ab2 100644 --- a/webui.py +++ b/webui.py @@ -1047,12 +1047,22 @@ with gr.Blocks( outputs=example_outputs ) - def on_input_text_change(text, max_text_tokens_per_segment): + def on_input_text_change(text, max_text_tokens_per_segment, lang_choice): if text and len(text) > 0: if IS_V25: - # v2.5 uses tiktoken encoder, no split_segments; show token count only - tokens = tts.tokenizer.encode(text, allowed_special='all') - data = [[0, text, len(tokens)]] + lang_prefix = f'<|{(lang_choice or "ZH").lower()}|> ' + segments = tts.split_text_by_tokens( + text, + int(max_text_tokens_per_segment), + lang_prefix, + ) + data = [] + for i, segment_str in enumerate(segments): + tokens_count = len(tts.tokenizer.encode( + lang_prefix + segment_str, + allowed_special='all', + )) + data.append([i, segment_str, tokens_count]) else: text_tokens_list = tts.tokenizer.tokenize(text) segments = tts.tokenizer.split_segments(text_tokens_list, max_text_tokens_per_segment=int(max_text_tokens_per_segment)) @@ -1186,16 +1196,23 @@ with gr.Blocks( input_text_single.change( on_input_text_change, - inputs=[input_text_single, max_text_tokens_per_segment], + inputs=[input_text_single, max_text_tokens_per_segment, lang_dropdown], outputs=[segments_preview] ) max_text_tokens_per_segment.change( on_input_text_change, - inputs=[input_text_single, max_text_tokens_per_segment], + inputs=[input_text_single, max_text_tokens_per_segment, lang_dropdown], outputs=[segments_preview] ) + if IS_V25: + lang_dropdown.change( + on_input_text_change, + inputs=[input_text_single, max_text_tokens_per_segment, lang_dropdown], + outputs=[segments_preview] + ) + prompt_audio.upload(update_prompt_audio, inputs=[], outputs=[gen_button])