mirror of
https://github.com/index-tts/index-tts.git
synced 2026-08-28 14:56:25 +08:00
fix(webui): preview IndexTTS 2.5 text segments (#777)
This commit is contained in:
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user