fix: whisper 重复伪影整条删除,避免翻译层空响应失败
whisper 在单个窗口内卡住重复时会把一个单元写满整条 cue(实测 30 秒整、重复 74–446 次,如 `チン`×111)。这类正文会让下游 LLM 跟着循环、把输出预算耗在思考上, 最终 `content` 返回空串并报 `translation alignment failed … Expecting value: line 1 column 1 (char 0)`;它也可能直接渲染成超长字幕行。 - `nodes/subtitle_cleanup.py` 新增 `remove_repetition_entries`:**纯模式判据、无字符 词表**——展示时长 ≥15s 且同一 1–6 字单元连续重复 ≥6 次且覆盖正文 ≥70% 的 cue 整条 删除;真实短促呻吟(`ぇ`×15、`ああああああ`)靠时长区分,零误删。 - `nodes/whisper.py` 在转写产出处应用该清洗(VAD 开关都生效,它与套话幻觉无关)。 - 真实数据验证:本地全部真实转写 3605 条 cue 只删 5 条 30 秒伪影;对照实验同批次 伪影截短后 5/5 成功、原样 1/5。
This commit is contained in:
@@ -37,6 +37,14 @@ JSON 不支持注释,因此"参数理由"以节点 `params` 内 `_note_<参数
|
||||
等假名,真实短对话(そこ/やばい/ねえ/やだ/えへへ)天然不命中。仅 decode_full
|
||||
生效,learn-translate 等 VAD 链路不受影响。
|
||||
|
||||
**重复伪影过滤**(2026-09):whisper 在单个窗口内卡住重复时,会把一个单元写满整条
|
||||
cue(实测 30 秒、重复 74–446 次,如 `チン`×111);这种正文会让下游 LLM 跟着重复、
|
||||
把输出预算耗在思考上而报结构错误(表现为 `translation alignment failed …
|
||||
Expecting value: line 1 column 1 (char 0)`),也会直接渲染成超长字幕行。whisper
|
||||
转录后按**模式判据**(无字符词表)**整条删除**(`remove_repetition_entries`):
|
||||
展示时长 ≥15s 且同一 1–6 字单元连续重复 ≥6 次且覆盖正文 ≥70%;真实短促呻吟
|
||||
(`ぇ`×15、`ああああああ`)靠时长区分,零误删。VAD 开关都会生效。
|
||||
|
||||
调研过程与结论见 [调研-whisper漏句与decode_full验证.md](./调研-whisper漏句与decode_full验证.md)。
|
||||
|
||||
## 切换模型不改代码
|
||||
|
||||
Reference in New Issue
Block a user