RVC-Boss/GPT-SoVITS · error · ValueError
请输入有效文本
Error message
请输入有效文本
What it means
Webui copy of TextPreprocessor.filter_text: process_text() raises ValueError when every string in the batch is blank (None, " ", "\n", ""). It runs during the cut_text/process_text stage before synthesis; if text cutting produced only empty fragments there is nothing to send to the models, so it aborts with 请输入有效文本 ("please input valid text").
Source
Thrown at GPT_SoVITS/inference_webui.py:1183
if items:
mergeitems.append("".join(items))
opt = [item for item in mergeitems if not set(item).issubset(punds)]
return "\n".join(opt)
def custom_sort_key(s):
# 使用正则表达式提取字符串中的数字部分和非数字部分
parts = re.split("(\d+)", s)
# 将数字部分转换为整数,非数字部分保持不变
parts = [int(part) if part.isdigit() else part for part in parts]
return parts
def process_text(texts):
_text = []
if all(text in [None, " ", "\n", ""] for text in texts):
raise ValueError(i18n("请输入有效文本"))
for text in texts:
if text in [None, " ", ""]:
pass
else:
_text.append(text)
return _text
def html_center(text, label="p"):
return f"""<div style="text-align: center; margin: 100; padding: 50;">
<{label} style="margin: 0; padding: 0;">{text}</{label}>
</div>"""
def html_left(text, label="p"):
return f"""<div style="text-align: left; margin: 0; padding: 0;">
<{label} style="margin: 0; padding: 0;">{text}</{label}>
</div>"""
View on GitHub (pinned to d523079fc0)
Solutions
- Type or paste actual text to synthesize and retry.
- Disable the generate button client-side until the textbox is non-blank.
- In scripted use, skip the call when not text.strip().
- For server integrations, validate payload text and return a 400 with a friendly message.
Example fix
# before
result = translate_tts_params(...) with text=" " # ValueError: 请输入有效文本
# after
if not (text or "").strip():
gr.Warning("请输入有效文本")
return
result = process_text([text]) Defensive patterns
Strategy: validation
Validate before calling
if not any((t or "").strip() for t in texts):
gr.Warning("请输入有效文本")
return Type guard
def has_synthable_text(texts: list[str | None]) -> bool:
return any(t is not None and t.strip() for t in texts) Prevention
- Guard generate handlers with a blank-text check before calling process_text.
- Keep UI text state synchronized across model switches.
- In automation, skip empty rows rather than passing them through.
When it happens
Trigger: Clicking 开始转换/Generate in the Gradio webui with an empty textbox, a whitespace-only textbox, or text that the splitter reduces to only blank fragments.
Common situations: Generate clicked before typing anything; frontend state reset after model switch leaving empty text; text composed solely of characters the cleaner strips; automation/script driving the webui function with empty strings.
Related errors
- 请输入有效文本
- {path_sovits}SoVITS {model_version}底模缺失,无法加载相应 LoRA 权重
- 参考音频在3~10秒范围外,请更换!
- The following condition must be satisfied: min_length >= min
- The following condition must be satisfied: max_sil_kept >= h
AI-assisted analysis of RVC-Boss/GPT-SoVITS@d523079fc0 (2026-08-15).
Data as JSON: /api/errors/79e806bb6574af1b.
Report an issue: GitHub.