【免费下载链接】llm-subtransOpen Source project using LLMs to transcribe and translate subtitles (SRT, SSA/ASS, VTT)项目地址https://gitcode.com/gh_mirrors/gp/llm-subtrans点击查看免费下载用 Whisper 或 OCR 生成的字幕直接丢给 LLM 翻译结果常常惨不忍睹断句错乱、错字被当成真词、一行字幕挤成一团。LLM-Subtrans 是一个开源的 AI 字幕翻译工具内置了完整的预处理 → 智能纠错翻译 → 后处理校验质量流水线专门针对这类机器生成的低质量字幕做系统性修正。本文带你完整实战这套方案让字幕翻译质量肉眼可见地提升。一、问题根源机器字幕为什么一翻就崩Whisper 转写和 OCR 识别的字幕普遍存在这些问题典型问题翻译后的后果长句不断行、一句顶三句模型输出错位、字幕超屏漏字、错字、乱码如進化続ける模型按错字直译意思完全跑偏对话挤在一行、标点缺失译文节奏混乱、难读短行碎句嗯然后批次碎片化上下文断裂LLM-Subtrans 的思路不是祈祷模型聪明而是在翻译前后加确定性处理再配合专门的纠错提示词三层配合把错误消化掉机器字幕 → 预处理(SubtitleProcessor) → LLM翻译(带纠错指令) → 后处理校验重试 → 成品字幕二、翻译前开启预处理先给字幕整容在 GUI 的 Settings 对话框中找到Processing分区源码见 SettingsDialog.py勾选以下关键开关preprocess_subtitles加载字幕时自动预处理这是核心开关save_preprocessed_subtitles把预处理结果另存一份方便对比效果命令行用户则直接加--preprocessllm-subtrans --project --auto -l Chinese input.srt --preprocess --postprocess预处理引擎 SubtitleProcessor.py 会执行这些动作均可独立配置开关作用max_line_duration/min_line_duration超过最长时长的行按语义断点拆分成多行短于阈值的保留merge_line_durationmax_gap_for_merge把过短的碎片行合并进上一句减少批次碎片break_dialog_on_one_line单行对话自动加换行一行一角色normalise_dialog_tags多行字幕的对话标记统一补齐full_width_punctuation中日韩文本自动改用全角标点convert_wide_dashes破折号emdash统一为标准短横线whitespaces_to_newline连续空白块转成换行remove_filler_wordsfiller_words按自定义词表删除嗯、啊、那个等填充词实用技巧转写类字幕建议先用 GUI 载入后打开Preprocess subtitles when they are loaded再保存一份save_preprocessed_subtitles的输出对照一眼就能确认断行是否符合预期。三、翻译中换一套纠错指令让 LLM 猜对原文这是最容易被忽视、但提升最明显的一步。LLM-Subtrans 内置了多套翻译指令文件位于 instructions/ 目录instructions (transcribed).txt.txt)通用转写字幕纠错指令instructions (Whispered).txt.txt)针对 Whisper 输出明确提示输入可能含转写错误请结合上下文推断正确内容instructions (OCR errors).txt.txt)针对 OCR 乱码/错字要求模型用全部上下文还原正确文本instructions (improve quality).txt.txt)不翻译仅在原语言内润色修复语法和错字指令文件里的关键设定可自定义修改The subtitles were AI-generated with Whisper so they are likely to contain transcription errors. If the input seems wrong, try to determine what it should read from the context.怎么切换GUI 里在新建项目设置中选择指令文件下拉列表来自 InstructionsHelpers.py 的扫描结果。值得注意的细节是通过 GUI 转录音频/视频创建的项目会自动预填 transcribed 指令见 GuiInterface.py省去手动选择。进阶术语表 角色名锁定全片一致性--build-terminology-map翻译过程中自动积累原文::译名对注入后续批次避免同一角色前后译名不一致--name/--names直接指定角色名的标准译法四、翻译后后处理 校验重试双保险收尾后处理用--postprocessGUI 对应开关postprocess_translation主要修复 LLM 输出的格式问题break_long_linesmax_single_line_length给过长的译文行在合理位置加换行normalise_dialog_tags/full_width_punctuation与预处理相同的规范化动作格式层面由后处理兜底内容层面则由校验器兜底SubtitleValidator.py 对每个批次检查行数不匹配、空行、超长行等问题再配合 Settings 中的容错开关开关行为retry_on_error校验失败的批次带着错误说明自动重翻autosplit_on_error批次失败后自动对半拆分、逐半重试定位问题片段stop_on_error遇到错误立即停止批量跑片时建议关掉完整的请求流与事件链可以在官方文档 docs/translation-flow.md 里看到详细的时序图。五、源头提质直接转录 说话人分离如果你的素材根本没有现成字幕最优选是用 LLM-Subtrans 自带的转录功能GUI 工具栏Transcribe Audio/ CtrlR或命令行python scripts/transcribe.py movie.mkv --language Japanese --format ass云端转录OpenRouter、ElevenLabs、Gemini 等提供词级时间戳 说话人分离本地Qwen Local基于 Qwen3-ASR 离线转录音频不出本机说话人标签会随每一行传给翻译器帮助理解对话关系保存为VTT或ASS可保留标签从源头带上说话人信息和更准的时间轴比后期修补省心得多。六、新手参数速查清单 场景推荐配置Whisper 转写字幕翻中文--preprocess --postprocess Whispered 指令 开启 terminology mapOCR 字幕翻中文同上指令换成 OCR errors 版只修字幕不翻译使用 improve quality 指令长片断点续翻全程加--project中断后直接重跑即可续翻控制成本--maxlines先试翻前 N 行检查效果再全量跑写在最后机器字幕翻译质量差本质是输入脏 指令通用两个问题叠加。LLM-Subtrans 给出的答案是预处理把结构修整齐专用纠错指令让模型有能力推断原文后处理与校验重试兜住格式和漏行。三件事都不难但组合起来就是稳定的质量提升——建议从预处理 纠错指令两个开关开始试起效果立竿见影。赞分享【免费下载链接】llm-subtransOpen Source project using LLMs to transcribe and translate subtitles (SRT, SSA/ASS, VTT)项目地址https://gitcode.com/gh_mirrors/gp/llm-subtrans点击查看免费下载相关推荐gpt-subtrans开源字幕翻译工具gpt subtrans开源字幕翻译工具 项目介绍 gpt subtrans 是一款开源的字幕翻译工具它利用大型语言模型LLM作为翻译服务支持任意语言Learn X in Y minutes 仓库 Java 教程全解从基础语法到 Java 21 现代特性的完整实战指南Learn X in Y minutes 仓库 Java 教程全解从基础语法到 Java 21 现代特性的完整实战指南 本指南以 learnxinyminutLLM-Subtrans命令行10个实用技巧一行代码自动化批量翻译字幕LLM Subtrans命令行10个实用技巧一行代码自动化批量翻译字幕 LLM Subtrans 是一款开源的 LLM 字幕翻译工具支持 SRT、SSA/A上一篇WeChatMsg 使用指南把微信聊天记录离线备份成三种文档下一篇claude-delegator配置完全手册从MCP注册、config.toml全局默认到模型覆盖的清单式教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?