Skip to content

Anti-hallucination: engine flags + transcript cleanup pass - #30

Merged
TN019 merged 2 commits into
mainfrom
anti-hallucination
Aug 5, 2026
Merged

Anti-hallucination: engine flags + transcript cleanup pass#30
TN019 merged 2 commits into
mainfrom
anti-hallucination

Conversation

@TN019

@TN019 TN019 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

背景

真实讲座转录(large-v3-turbo)中反复出现幻觉:整个 30 秒窗口变成 9, 9, 9, …I have no separation than 无限循环、片尾连串 Thank you.。这不是模型等级问题——Whisper 在静音/非语音段解码脱轨后,condition_on_previous_text 会把循环传染给后续窗口。

改动与实现

引擎层(掐源头)

  • faster-whisper:vad_filter=True(幻觉几乎都诞生在静音里;顺带跳过静音提速)+ condition_on_previous_text=False
  • mlx-whisper:condition_on_previous_text=False(mlx 无 VAD)

管线层(兜底,与引擎无关)——新 core/cleanup.py,转录后、写盘前执行:

  • 尾部循环剪除:从尾部回溯 12-token 滑动窗口的词汇多样性(真实语音每 12 词约 10-12 个不同词,循环≤5),连续低多样性区域的起点即下刀点——剪在真实语句与垃圾的精确交界
  • 整段循环/刷屏丢弃(含无空格 CJK 刷屏)
  • 连续完全相同段落封顶 2 条(静音填充型 "Thank you." 连发)

验证

  • 169 passed / 5 skipped。清洗器测试用例直接取自真实事故文本
  • 对真实事故文件(1507 条字幕)实测:命中 12 条——445 精确剪至语音/数字交界、446 纯循环丢弃、761/789 短语循环丢弃、片尾 10 连 Thank you 封顶,同时 "One, two, three, only a few."(真实报数)等正常字幕零误伤

后续

  • 该文件可在设置开"覆盖已有输出"后重跑,新转录同时受益于 VAD 与新默认值
  • vad/beam 的性能收益属于此前讨论的提速主题,faster-whisper 侧还有 batched pipeline 与 beam_size=1 待做

TN019 added 2 commits August 5, 2026 10:31
… in the engines, and a vocabulary-variety cleanup pass that trims repetition tails, drops loop/spam segments, and caps identical runs.
…es.replace instead of field assignment, which failed every job.
@TN019
TN019 merged commit 6d7ed4f into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant