跳到主要内容

时间轴

复制文本

Aegisub 对复制粘贴的处理

Aegisub 在处理复制粘贴时,一切剪切板上的文本都会优先尝试以 ASS 行的形式处理。
从 Aegisub 的字幕栏复制一行或多行时,Aegisub 会将被复制行的 ASS 源代码以纯文本形式复制到剪切板中。
复制得到的纯文本形式 ASS 行和使用文本编辑器(如记事本)打开 ASS 文件所看到的相应行是完全一致的。

粘贴时,Aegisub 会尝试解析文本:

  1. 若剪切板中的文本符合 ASS 行格式(解析成功),那么将以 ASS 行的形式粘贴到字幕栏中,保留各字段的值;
  2. 若剪切板中的文本不符合 ASS 行格式(解析失败),那么 Aegisub 会将所有格式不符的行的文本全部放入文本栏中,行的其他字段设置为默认值(行类别为 Dialogue,开始时间和结束时间为 0:00:00.00,样式为 Default,其他数字字段均为 0,其他文本字段均为空字符串)。

处理校对稿时,由于标准的校对稿为纯文本(.txt)或 Excel 表格(.xls / .xlsx)格式,通常只需要直接从相应编辑器(记事本或 Excel)中复制,并粘贴到字幕栏中即可。
前面我们介绍过,不符合 ASS 行格式的纯文本在粘贴到字幕栏时,会以默认值填充其他所有字段。
因此,我们需要在此时为刚才粘贴的所有行先设置好层级和样式两项属性,然后转入下一项工作。

设置时间轴(戳)

时间轴通常简称为「轴」或「时轴」,也被称为「时间戳」,指的是每一个字幕行的「开始时间」和「结束时间」。
设置轴通常有三种方法,不同方法的使用场景不同,应根据情况适当选择。

通过可视化频谱设置

对于对话轴而言,在可视化频谱图上为台词设置时间轴是最简单高效的方法,也是使用频率最高的上轴方法。

音频可视化频谱显示

不做任何设置时,Aegisub 的音频可视化区域默认显示的是声音波形而不是频谱,因此使用前需要先通过音频可视化区下方的切换按钮切换到声音频谱模式

声音的原理与波形图

我们知道,声音由发声源对周围的空气(或其他传导介质,但我们通常只考虑空气)施加变化的压力产生,因此声音的实质是空气的振动。
在发声源附近选择一个点,将该点测量到的气压值(纵轴)随时间变化(横轴)的趋势绘制成图形,即得到了声音的波形。 一个典型的声音波形如所示。

设置 Aegisub

图 - 声音波形图

从波的角度分析该图像,波形的振幅反映的是某个时间点上声波的强度(响度)。
同时,在单位时间内振动的次数越多,频率也就越高,声音的音高也就越高,这是声音的基本原理。

现实中,我们听到的声音通常不是某个固定频率的振动,而是由许多不同频率的振动叠加而成的。
此时如果观察声音的波形图,我们就只能得到各时点声音的响度,而无法获得其他频率的信息,因此不建议使用声音波形图作为设置时间轴的参考。

通过傅里叶变换处理波形图(分频),我们可以轻松地将各个频率的波形拆分开来。
在波形图的基础上,我们保持横轴(时间)不变,将纵轴表示的物理量改为频率,并引入一个垂直于纸面(屏幕)的轴(通过颜色深浅表示)表示各频率在当前时间点的幅值,便得到了一幅声音的频谱图。
因此,声音的频谱图是一个三维图像。

Aegisub 对于频谱图的计算和绘制扩展了多种模式,用于解决不同的问题:

  1. 计算
    • 默认模式:把原始音频数据做一次整数平均 downmix 为单声道,进行 FFT 计算
    • 逐声道模式:对原始音频数据每个声道进行 FFT 计算,然后每个 Frequency-Bin 取多声道的最大值或平均值
      • 默认模式 downmix 有时会导致音频相位抵消,声音可以听到但是频谱看不到
  2. 绘制
    • 默认模式:线性映射,绘制像素均匀对应一段 Frequency-Bin 区间
    • 感知曲线模式:结合线性和对数映射,提供了五种映射预设
      • 按原作者的说法,可以更清晰地展示音乐和人声

相比于波形图,我们可以直观地从频谱图像中获取各个分频的声音响度。
我们知道,各种不同的发声源产生的声波主要聚集的频率不同,此时我们便可以较为快速地从频谱图中判断出各种声音:

  • 人声大多聚集在高频附近,且幅值较高;
  • 背景噪声通常聚集在低频附近,幅值不高;
  • 根据乐器的种类不同,乐器声从低频到高频都有可能,但乐器的声音通常是有节奏、有规律的,非常容易辨识;

有了以上的理论基础,当我们在为台词设置时间轴时,可以通过频谱图快速定位到人声的区间。
根据频谱图设置时间轴的步骤大致如下,读者可根据个人习惯灵活调整步骤。

  1. 根据频谱图目视判断当前要上轴的句子的大致开始和结束位置,并通过按住鼠标左键在频谱图上拖动以选中该区间;
    • 也可以通过在开始位置单击左键、在结束位置单击右键以选中区间;
  2. 使用音频快捷键 S 播放选中区间,确认选中的音频区间大致正确;
  3. 使用音频快捷键(QWED)反复多次试听选中部分的开始时间和结束时间前后附近的音频,直到精确地选中需要的音频区间;
  4. 该行时间戳确认完毕,使用音频快捷键 G 提交该行的轴并转到下一行。

注意事项:

  1. 音频快捷键可参见《重新认识 Aegisub》篇章的「热键(快捷键)」小节;
  2. 实际操作时,还需考虑前后余量、场景切换、相近连续等优化规则以使轴显得美观易读,详见对话轴规范

细心的读者可能会注意到频谱图上还分布着一些竖向的粉色实线,这些线代表着视频的关键帧(Keyframe)位置,它们是频谱图中非常重要的参考线。 我们会在对话轴规范中的对帧部分使用它们。

根据视频预览设置

除了在频谱图上勾选区间设置时间轴外,还可以通过视频预览的当前位置设置时间轴。
该方法多适用于对帧的场景,包括屏幕字对帧和对话对帧。

具体操作如下:

  1. 选中要设置时间轴的对话行;
  2. 在视频预览上卷动到大致位置,通过 (左箭头)和 (右箭头)键逐帧卷动到要设置时间戳的视频帧;
  3. 使用视频快捷键 Ctrl + 3 可以将当前帧对应的时间设置为字幕行的开始时间,Ctrl + 4 则可以将当前帧对应的时间设置为字幕行的结束时间。

直接设置

顾名思义,时间轴也是一个值,可以直接在行的开始时间和结束时间字段直接填写时间的值。
通常不会使用该方法设置时间轴。

对话轴规范

奶茶屋限定规则

本节内容是喵萌奶茶屋日常制作及时轴考核时的要求,具有特殊性。
若您制作的字幕与奶茶屋无关或仅作学习参考之用,则可以作为一种制作建议选择性阅读。

写在前面:禁止使用「时间后续处理器」

「时间后续处理器」是 Aegisub 自带的时间轴处理工具,可以通过它实现下述的余量、对帧、连续等操作。
可是,实际使用中发现时间后续处理器有许多问题,不能完美满足奶茶屋的需求。
另外,时间后续处理器自身也有一些影响使用的 bug,例如:

  • 若已设置的时间戳已经位于关键帧的帧持续时间范围内,那么不管时间戳是否对准了帧的中心时间(即关键帧线所代表的时间戳),时间后续处理器都不会调整该时间戳;
  • 在遇到同屏对话时,时间后续处理器调整后经常会使时间错乱;
  • ……

因此,时间后续处理器仅限后期在不得不调整整体质量很差的轴时使用,且使用后必须逐行检查

保留前后余量

按照「设置时间轴(戳)」小节的方法设置时间轴时,当我们在确定了较为精确的开始时间及结束时间之后,还通常会为对话的字幕行保留一定时间的前后余量。 这一规范建议基于以下考量:

  1. 从美观角度考虑,由于人在处理视觉信息时会有一定的视觉延迟,为字幕行设置提前的开始时间和延后的结束时间,有利于观众同步获得听觉和视觉刺激,提升观看体验;
  2. 从易读角度考虑,由于对话台词变换速度快、出现时间短,适当延长对话的持续时间,有利于给予观众更多的时间观看字幕,减少因阅读速度不够导致被迫暂停视频阅读对话或后退重看的情况发生,破坏观赏的连续性;
  3. 从便利角度考虑,由于制作字幕的流程通常为「先基于 Web 片源制作,再调整时间轴以适应蓝光片源」,因此有时候会出现蓝光片源和 Web 片源的音频位置有微小差异的情况(见下文「音频延迟问题」);为了减少适配蓝光轴的工作量和兼容蓝光版本字幕时的美观和易读性,也需要为字幕行保留一定时间的前后余量。
音频延迟问题

《开始之前》篇章的「片源获取」小节中,我们介绍到目前通常会使用由 SubsPlease@Nyaa 以及 Tsundere-Raws@Nyaa 等发布者上传的 Web 片源。
然而,~~不同于已经成为历史的 HorribleSubs@Nyaa 搬运组,~~目前活跃的搬运组在发布 Web 片源时,由于不明原因,最终成品丢失了本该存储在视频元数据中的「音频延迟(Audio delay)」信息,猜测延迟是 aac 编码的 priming samples 造成的。
以前片源携带该属性时,我们可以采用支持处理音频延迟功能的 Aegisub 版本(除 r8942 版本外都支持)或重新混流(Remux)片源以校正音频轨时间,使视频轨与真正的音频轨时间同步。
然而,目前的片源视频文件明明(可能)存在「音频延迟」,但却没有提供该项元数据,这就导致我们在蓝光片源发售前无从得知 Web 片源是否含有音频延迟,而音频延迟通常只有加减一帧的时间(日本动画片的常见帧率为 23.976fps,因此约为 41.7 ms),因此也很难通过人工判断音频延迟的存在。
这里提供一个实例,用来直观地感受音频延迟的存在。

一个音频延迟的实例

待补充。

在不考虑其他规范时,前后余量通常建议设置为 120~200ms(约 3~5 帧)
由于实际测出 Web 片源音频延迟为 -41.7ms(-1 帧) 的情况更多,可以适当为开始时间保留更多的提前余量以适应未来蓝光片源的时间轴。
上述的负值 -41.7ms(-1 帧) 可以简单理解为:同样的字幕时间轴,在从 Web 片源切换到 BD 片源时,需要将所有行的时间轴提前 1 帧长度的时间(约为 41.7ms)。
需注意的是,上述建议余量值在同一部作品中应尽可能保持一致。
即,如某作品决定用 150ms 作为前后余量,那么该作品的每一行对话在不考虑其他规范时都应保留 150ms 作为前后余量,而不是在上述范围内浮动,否则「轴不稳定」时的观感反而更差。

对齐场景切换

所谓对齐场景切换(简称「对帧」),指的是当视频画面出现场景交替且距离字幕的开始时间(或结束时间)很近时,应当选择性地无视前后余量要求,使字幕的开始时间(或结束时间)对齐当前场景的第一帧(或最后一帧)。
这样做是为了尽量避免字幕的出现消失带来的额外不必要闪动。

当视频中出现场景交替时,整个画面会出现一次大面积图形变化,这是不可避免的。
但如果在场景交替时台词的话音并未完全落下,而字幕也同时跨越两个场景,这就会导致当前字幕的末端部分在下个场景的重要性很低(因为话音将落),且字幕在延迟消失时还会带来一次额外的视觉闪动,产生一定喧宾夺主的感觉,非常不美观。
类似地,若话音在场景交替前消失,但加上后余量后与场景交替的时间相差无几,则也会导致在短时间内连续出现两次视觉闪动,同样不美观。

因此,大宝典建议当预计设置的结束时间距离最近的场景交替帧不足 200ms(5 帧)时,主动将时间设置到场景交替的帧上,避免出现额外的视觉闪动

视频关键帧与场景切换

上文提到,频谱图上还分布着一些竖向的粉色实线,同样在视频预览区域下方的进度条上,同样分布着一些小小的竖线,这些线条正指示着视频的关键帧(Keyframe)位置。
Aegisub 在载入片源且没有提供关键帧时间码文件时,默认会使用视频流的所有 I 帧(I-frame)作为关键帧。
在当前常用的 H.264(AVC)以及 H.264(HEVC)编码中,通常会将一些与当前帧附近的帧差异较大的帧直接以完整图像的形式储存在视频流中,而除 I 帧以外的帧(如 P 帧、B 帧)则必须依赖前后的帧计算当前帧的图像。
因此,I 帧也是视频流中那些可以被独立解码而无需依赖前后帧信息的帧,它们的解码速度最快。
一些播放器在快速卷带时,也会默认跳转到最近的 I 帧。

相近对话连续

上一小节介绍过:要尽量避免字幕的出现消失带来的不必要闪动。
除了对话的出现和消失与画面本身的场景切换不同步之外,即使画面在一定时间内本身没有大的变化,仅凭字幕本身也会造成这样的视觉闪动。
这样的闪动多出现于上一句对话消失和下一句对话出现之间的时间间隔过短的时候

因此,为了避免两句相邻且时间上相隔不远的对话造成闪动,大宝典建议:若前一句对话的消失时间与下一句对话的开始时间低于一定阈值时,使上一句对话的结束时间和下一句对话的开始时间相同。
这个阈值的建议值为:200ms(5 帧)
这一过程可以表述为:假设上句对话加上余量后的结束时间为 t1,下一句对话加上余量后的开始时间为 t2,当 t2 - t1 <= 200ms 时,使 t1 <- t2

实践操作

如何阅读

本节所介绍的实践操作方法均来自奶茶屋成员的投稿,是他们打轴时的个人习惯。
以下的所有操作方案均没有好坏之分,也没有先后之分,编者整理投稿后认为相似度较高的将合并为一个方案。
切记:打轴方法没有最佳答案,不可生搬硬套,适合自己的设置和方法才是最好的。

快捷键的不一致

本节所收录的个人习惯均来自投稿,其中可能有部分快捷键按照投稿人的习惯修改过,因此不是所有提及的键位都是快捷键默认的键位,请务必注意。

奶茶屋后期 仰天的打轴习惯
  1. 打开 自动提交自动转到下一行自动卷动,使用频谱模式;
  2. 保持视频播放状态边播边打,在频谱图上使用鼠标滚轮或 AF 键卷动音频,由频谱图观察到人声特征后单击鼠标中键切换视频播放位置查看确认;
    • 在频谱图上单击鼠标中键不会导致视频暂停,视频只会卷动到按键处继续播放;
  3. 确认人声开始位置后,左键拉选时间(留出合适轴前轴后余量、如果靠近场景切换则紧贴关键帧),如果一句较长看不见结尾,该操作仅确定开始时间,卷动音频找到结尾后单击右键确定结束时间;
  4. 如果两行时间连续,则以下一行的开始时间作为这一行的结束时间,右键确定结束时间;
  5. X 键提交更改并切换至下一行,上一行的结束时间自动作为这一行的开始时间,同时频谱图上自动将这一行的开始时间卷动至左侧,方便查看后续内容;
  6. 如果两行连续,则不需要设置开始时间,直接右键确定结束时间;如果不连续,则重复以上操作。
奶茶屋后期 MIR的打轴习惯
  1. 使用快捷键 Ctrl+E 播放视频和音频,同时鼠标放在频谱上向右滚动,配合频谱听,在每句开始处提前一些点击鼠标左键,结束处延后一些点击鼠标右键,然后按 G 键提交跳转下一句,重复这一过程;如果有不确定的地方可以在按 G 键前调整:
    1. 句首或中间部分可以用鼠标中键点击相应频谱处重听确认后调整(此时音视频不会暂停);
    2. 结合使用 DW 分别播放结束处的前和后(音视频会暂停);
  2. 处理对帧:如果轴的开始或结束靠近关键帧线,则直接将开始或结束时间拖动至关键帧线上;观看视频过程中如果发现场景转换和关键帧线位置不一致的,暂停视频并逐帧卷动到所涉及的帧上相应使用 Ctrl+3Ctrl+4 调整;
  3. 处理重叠:视情况和场景可以采用牺牲一句话、取两句重叠部分中点、分别放置左右、分别放置上下的其中一个或多个方法调整。
大宝典编者 王子、奶茶屋时轴 等待的命运等人的打轴习惯
  1. 在频谱图上使用鼠标滚轮快速卷动,通过频谱图上的颜色深浅差异寻找可能是当前对话行的人声部分,这一过程中他会多次选中怀疑是人声的一小段音频并按下 RT 键试听;
  2. 找到对话对应人声的大致音频区间后,使用 Q 确认人声开头,使用 D 确认人声结尾,先用这个方法反复变换位置精确选中人声区间;
  3. 分别按下 CV 快捷键,为当前对话轴添加前后各 150ms 余量(该余量数值可在「选项」中设置);
  4. 检查添加余量后的轴的开始和结束部分是否靠近场景切换或已经跨越场景:如果观察发现离关键帧线不远,则拖动相应时间戳紧贴到关键帧线上;对于没有反映为关键帧的场景转换(虽然在使用生成关键帧脚本后这样的情况很少),可通过保持按住鼠标中键并在频谱图上拖动以预览对应时间处的视频发现,并在相应帧上使用 Ctrl+3Ctrl+4 设置;
  5. G 键提交当前行的时间轴;
  6. 检查当前行的时间轴的开始时间是否接近上一行的结束时间或与上一行有重叠;若是,则按 F2 键(自设)选中上一行对话,并将上一行对话的结束时间拖动到这一句的开始时间,按 G 键提交;
  7. 若涉及遮挡屏幕字、遮挡画面上的关键元素或需要处理对话的同屏排列时,根据「对话位置」小节的规则设置左右边距、垂直边距或切换样式。

注:该方法由于不需要在打轴过程中持续观看视频,所以理论上没有速度瓶颈,只要手速够快完全可以在比视频时间更短的时间内做完。


作业