用途:本技能针对 Whisper 在长音频(约 2 小时以上)转写中进入重复循环的情况,包括段内音素重复与跨段落多行循环(A-A-A-A、A-B-A-B、A-B-C-A-B-C)。它通过广度优先的分治(D&C)并行引擎,把损坏区间切成 30 秒任务(匹配 Whisper 原生上下文窗口),递归下探到小于 1 秒的切片进行恢复。
主要能力:一是并行音频恢复脚本 scripts/fix_hallucinations.py,扫描转写中的段内音素循环与跨段多句循环,支持单 GPU 与多 GPU 并发。示例命令:python3 scripts/fix_hallucinations.py <whisper_json> <audio_wav> --devices 0 -w 3 -o recovered_transcript.json;双 GPU 用 --devices 0 1 -w 4。常用选项含 --devices、--workers(默认 4)、--threads(默认 4)、--threshold(重复 n-gram 比例阈值,默认 0.4)、--min-duration(基础情形最小秒数,默认 1.0)、-o 输出路径。其保证包括任务去重(每个音频切片最多拆一次)、亚秒级收敛(以 (start + end) // 2 二分,最多 9 层降至 <1 秒)、数据保留(低置信内容不删除,原文前加 "[?] " 标记)。
二是可视上下文帧提取脚本 scripts/enrich_uncertain_with_vision.py,扫描 recovered_transcript.json 中所有 [?] 项,用 ffmpeg 按精确时间戳抽取视频帧并生成人工/视觉模型复核报告。用法:python3 scripts/enrich_uncertain_with_vision.py recovered_transcript.json stream_video.mp4 -o frames_uncertain,随后可接视觉代理分析帧内容以补全 [?] 语音上下文。
关键规则:不要对完整音频重跑 Whisper,否则会重复相同损坏边界,应先切 30 秒块;跨段句子循环触发 D&C 音频恢复,段内单词重复仅加 "[?] " 标记而不触发切分;不得静默丢弃亚秒级或不确定内容;在恢复流程(D&C 恢复、不确定帧抽取复核、幻影循环修剪、生成校验过的 raw_transcript.json)全部完成前,不得启动下游时间戳脚本。
适用场景:长直播、长录音等经 Whisper 转写后出现重复或损坏段落的修复与人工复核。
限制:资料未提供安装方式、依赖版本、收费与价格信息,也未说明支持的音频格式、模型规格与恢复准确率;依赖 ffmpeg、GPU 与相应脚本环境,需自行确认。