双语字幕合并 把两条独立的字幕轨(比如中文和英文)合成一条双语轨,按时间重叠自动配对,输出 SRT / WebVTT / ASS / LRC。全程浏览器本地处理,文件不上传。
对副轨的每一条,找与它时间重叠最多的那条主轨,重叠比例达到灵敏度阈值就贴上去。每条副轨最多用一次,不会被重复贴到多条主轨上。
重叠比例 = 重叠时长 ÷ 两条中较短那条的时长。用「较短那条」而不是固定时长做分母,是为了让长短悬殊的两条也能正确配上——一条 6 秒的中文包住一条 1.5 秒的英文时,重叠比例是 100%,符合直觉。
LRC 转来的零时长条目(只有起始时间戳)退化成「时间点落在区间内」判定,不会因为算不出重叠而全部落单。
| 场景 | 建议 |
|---|---|
| 播放器里上下对照看 | 换行 + 母语在上 |
| 屏幕小、不想占两行 | 斜杠 或 破折号 排成一行 |
| 学外语精听 | 换行 + 原文在上(先看原文,再瞟译文) |
| 输出 LRC | 只能用斜杠 / 破折号——LRC 每行一个时间戳,不支持多行 |
两个文件都在浏览器本地读取和处理,不经过任何服务器。配对、排版、序列化都是纯计算,断网可用。
因为两种语言的断句几乎从不一致。英文一个长句常被切成两条字幕,中文习惯合成一条;反过来也有。按序号对齐的话,只要中间多一条少一条,后面全部错位——而且错得很隐蔽,前几条看着是对的,你以为成了,看到一半才发现对不上。本工具一律按时间重叠判定:两条字幕在时间上重叠得够多,才算同一句。
两条英文会被拼到那一条中文上,按原顺序拼接,英文之间自动补空格、中日韩之间不补。这是最常见的情形,也正是按时间配对的价值所在。反过来(一条英文对应两条中文)也一样处理:以主轨为准,主轨两条就出两行,副轨那一条归给重叠最多的那条主轨,另一条主轨保留单语。
多半是两轨时间轴本身就对不上,不是匹配算法的问题——比如两份字幕来自不同版本的片源,或者一份是 25 帧一份是 23.976 帧。先用 字幕时间轴校准 把副轨校到和主轨同一条时间线上,再回来合并。调低灵敏度不是解法:那只会让相邻两句被强行配到一起,出来的双语字幕文不对题。
看统计条上有没有「副轨整体比主轨早/晚 X 秒」那句黄字。对白密集的片子里,副轨哪怕整体偏移好几秒,每一条也都能就近粘到相邻的另一句主轨上——重叠比例很高,配对率很好看,内容却整段错行。光看配对率抓不到这种情况,所以工具另外算了两个数:配上的各行里「副轨起点 − 主轨起点」的中位数(整轨偏移),以及后半段减前半段的差(两轨快慢不一致)。任一个超标就转黄提醒。解法都是先去 字幕时间轴校准 把副轨推到主轨的时间线上。
它是「重叠时长 ÷ 较短那条的时长」的下限,默认 20%。调低(5–15%)能多配上一些擦边的条目,代价是更容易把相邻两句配错;调高(40–60%)只认时间几乎完全重合的,配得准但漏得多。正常情况下默认值就够;只有在明显看到「该配的没配上、时间又确实对得上」时才往下调。
主轨决定时间轴和条数——输出有多少条、每条什么时候出现,全看主轨;副轨只提供文本,贴到主轨上。所以建议把断句更细、条数更多的那一轨当主轨(通常是原文轨),这样信息损失最小。选反了点中间的 ⇄ 按钮一键对调,不用重新上传。
默认不会。主轨没配上的保留单语行,副轨落单的单独补一行插回正确的时间位置,统计条上会写清楚各有多少条,副轨落单的还能展开逐条看是哪些。两个开关都可以关掉——但建议先展开看一眼再决定,落单往往是时间轴对不上的信号。
本工具不做。输出的 ASS 里两语是同一个 Style 的两行,套默认样式(白字黑边)。要上下不同字号 / 颜色,得改 [V4+ Styles] 段并给每行指定不同 Style,那已经是精修排版的活——导出后在 Aegisub 里做更合适。做成一个上下双 Style 的通用方案,反而会给多数只想「两种语言一起看」的人增加一堆用不上的选项。
不上传。两个文件都用浏览器的 FileReader 读,编码识别用原生 TextDecoder,配对和输出全在浏览器内存里完成,没有任何网络请求。