Skip to content

feat(subtitles): 支持参考文稿高置信匹配 - #415

Open
nightt5879 wants to merge 4 commits into
buxuku:mainfrom
nightt5879:nightt5879/feat-364-manuscript-matching
Open

feat(subtitles): 支持参考文稿高置信匹配#415
nightt5879 wants to merge 4 commits into
buxuku:mainfrom
nightt5879:nightt5879/feat-364-manuscript-matching

Conversation

@nightt5879

@nightt5879 nightt5879 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

变更内容

  • 新增任务级 TXT / Markdown 参考文稿选择与清除入口,使用独立 IPC,不会把文稿误加到媒体/字幕文件列表
  • 支持 UTF-8、UTF-16、GBK / GB18030 与 Markdown 可见文本清理;选择时和实际运行时都会重新校验
  • 在 AI 精修之后、简繁/标点归一与翻译之前执行异步可取消的单调对齐,支持跳过未朗读段落及 1↔多分句
  • 匹配同时使用有序 bigram 距离与置信阈值,拒绝词序互换和重复位置歧义;只有高置信 cue 才采用文稿文本
  • 只定点替换命中 cue 的文本;未命中多行块、序号、时间行和原换行符保持不变,ASR 时间轴始终不变
  • 写回采用同目录随机临时文件、flush/close 后单次原子替换;取消、磁盘或 rename 失败不会截断既有 SRT
  • 文稿路径只进入当前任务快照,不写全局 userConfig 或可复用配方;首次派发后立即锁定,重开、重试和续跑复用同一快照
  • 补齐任务阶段轨道、匹配摘要/安全回退提示、中英文 i18n、使用文档和回归测试

安全与兼容说明

  • 功能默认关闭,不改变既有任务;匹配全程本地执行,不调用外部 AI 或上传文稿
  • 输入上限为 1 MiB、500,000 个可比较字符和 20,000 个匹配单元;无标点长文按线性算法分段,并在计算中协作让出事件循环
  • 文稿为空、移动、编码不支持、复杂度超限、低置信或写入失败时均保留原 ASR 并非致命降级;用户取消仍会正常终止任务
  • 任务存储只保留本地路径/文件名和结果摘要,不保存文稿正文或逐条替换内容

验证

  • npm run test:manuscript:64/64(多 cue 与双字词局部换序、单字增删替换、取消、128 KiB 无标点性能、SRT 字节边界、原子写失败、配置隔离/快照)
  • npm run test:engines:726/726
  • npm run test:refine:60/60
  • npm run test:recipes:全部通过
  • npm run test:untranslated-flow:18/18
  • npm run check:i18n
  • npm run build:Renderer + Main production build 通过
  • Prettier、git diff --check

尚未覆盖

  • 未用真实长音频完整跑一次 GUI 端到端任务;文稿读取、匹配、取消、写入安全和流水线接线已由专项测试、相关回归与生产构建覆盖

Closes #364

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