在网上找了几个星期,没找到 Bang! Dream 的双语字幕。中文 ASS 字幕是有的,也挺不错,不过字幕站没找到日语字幕。而一些日语字幕站,例如 jimaku.cc ,有单独的日语字幕,但是断句不同导致时间轴完全对不上。
尝试用 AI 对齐中文和日语字幕,迭代了若干个版本,感觉还行。下面这个适用于手头有中文 ASS 字幕和日语 SRT 字幕的情况。
请按以下规则生成中日双语 ASS 字幕。
### 准备阶段
1. 开始前先询问我 4 个信息:中文字幕 ASS 原文件地址,日语字幕 SRT 原文件地址,中文有效对白的基础特征(例如 `Style=Default`、`Name=NTP`),输出的中日双语 ASS 字幕文件名和地址。
### 流程
2. 制作流程是,根据每条中文有效对白,找到对应的日语对白并添加到双语字幕文件中。中文有效对白和对应的日语对白,使用中文对白完全相同的开始时间和结束时间。
3. 制作过程要考虑:### 规则约束,### 逻辑规范,### 日语 SRT 字幕处理,### 位置关系,### 字幕样式。在完成前,还要对 JP 文本进行### 最终处理。在初版完成后,还需要### 校验。
### 规则约束
4. 以中文字幕 ASS 文件为基础版本,完整保留原文件结构、样式、特效、注释、歌词等内容。
5. 只处理符合基础特征的`Dialogue`行,并排除正文包含 `{...}` ASS override tag 的特效字、屏幕字、注释字。
6. 只能调整中文有效对白的 Layer ,不能改变中文字体、字号、颜色、描边、文本、时间轴、位置等其他内容。
7. 不添加额外注释或不必要空行。
### 逻辑规范
8. 中文字幕和日语字幕原文件,对应对白的时间轴误差不超过 1 秒。
9. 中文有效对白 A 在中文有效对白 B 之前,那么 A 对应的日语对白也严格在 B 对应的日语对白之前。即:日语匹配应按顺序单调消耗,下一条中文只能从上一条已匹配日语之后继续找,不能回头。
### 日语 SRT 字幕处理
10. 日语 SRT 字幕中各种括号内的说话人、音效、音乐背景说明 caption 不保留,例如`(香澄)`、`(目覚まし時計のアラーム)`、`[スピーカー]`、`♪`。
11. 日语 SRT 字幕可按完整句子拆分,但不能拆开一个完整日语句子内部;逗号、顿号、空格不能单独作为拆分依据。
### 位置关系
12. 在视频播放时,JP 字幕应位于中文字幕下方,中文字幕位于上方。JP `Dialogue` 块应插入到中文有效对白块之前,JP 使用较低 Layer ,中文有效对白使用较高 Layer ,避免播放器自动堆叠导致上下颠倒。
13. 在视频播放时,JP 的垂直位置低于中文。
14. 在双语字幕文件中,日语对白占据连续的行。
15. 在双语字幕文件中,日语对白块整体在中文有效对白块的上方。
### 字幕样式
16. JP 样式,在双语字幕文件中,要放到中文对白样式的下面
17. JP 样式应基于中文主对白样式,保持字体、颜色、描边、粗细等视觉体系一致。
18. JP 样式的字号应小于中文,建议为中文字号的 `70%-75%`,例如中文`66`时 JP 可用`48`。
19. JP 样式的 MarginV 应该小于中文样式,保证位于屏幕下方。
### 最终处理
20. JP 文本生成后,`\N`统一替换为空格。
21. JP 文本生成后,日文句号`。`统一替换为空格。
22. JP 文本生成后,删除句首空格,句尾空格。连续的大于 1 个的空格,压缩为 1 个空格。
### 校验
23. 校验的主要目的是,检查日语对白部分是否有遗漏或位置错误或者额外添加。
24. 校验应该忠实于日语 SRT 字幕原文,不能擅自修改。修改后仍然要进行### 最终处理的步骤。