本文同步自 MAW 原始仓库的 docs/user/EDITOR_GUIDE.md。
MAWE 是 MAW 的字幕编辑器。日常使用本机 Server;便携 HTML 与在线页面用于浏览器中的兼容操作。它们共用前端代码与 .mosp / 旧 .json 工程格式。
源码启动见 Server README,首次转写见 工作流。
1. 打开或新建工程
在 Launcher 中打开生成的工程,或从空白编辑器拖入工程、媒体、SRT。已有主字幕时导入第二条字幕,可以替换主轨或作为副轨。
「新建工程」通过浏览器保存对话框创建空白 .mosp。取消对话框不改变当前工程。不支持文件句柄的浏览器退化为下载,之后需手动导出保存。
空白工程拖入媒体或 SRT 时,会先创建工程再加载;只有字幕、没有媒体的工程也可以编辑与保存。没有媒体时不显示播放器和波形。
LRC 歌词可从打开菜单导入或拖入:每句持续到下一时间戳,空文本时间戳只作为结束边界,末句兜底 5 秒。[offset:+n] 整体提前 n 毫秒;增强 LRC 字词标签仅剥除,不生成字词时间码。
2. 播放、定位与修改文字
播放时高亮当前字幕,列表默认跟随播放头。手动滚动会暂停跟随,点击「跟随播放」恢复;编辑与撤销尽量保留阅读位置。
| 操作 | 用法 |
|---|---|
| 定位字幕 | 单击字幕行或波形块,跳到开始位置。 |
| 修改文字 | 双击文本;选中后按 Enter,在列表内联编辑或聚焦当前字幕面板。 |
| 播放 / 暂停 | 空格,或双击波形。 |
| 上一条 / 下一条 | A/W 与 D/S;Shift 扩展选择。 |
| 跳到字幕起点 / 终点 | I / O,保持暂停。 |
| 从选中字幕播放 | F。 |
| 新建字幕 | 波形空白处 N,或 Ctrl/Cmd 拖动指定时长。 |
| 切换波形工具 | V 选择、R 分割。 |
| 切换禁用 | Alt 点击字幕;禁用字幕默认不导出到 SRT。 |
列表与波形的文字输入、快捷键有各自焦点范围。内联编辑中 Shift+Enter 换行;Enter / Ctrl(Cmd)+Enter 的保存或拆分行为按编辑设置执行。当前字幕面板的 Esc 默认保留改动并退出,可在面板设置开启「Esc 放弃修改」。
列表可按文字筛选、隐藏禁用项;当前字幕面板显示长度、时长和阅读速度。「批量替换」先预览再确认,可撤销;非法正则不会修改数据。
批量处理文字
工具栏的 📝「纯文本编辑」可编辑主字幕或当前副字幕,支持逐条和整体视图。顶部查找支持大小写与正则,Enter / Shift+Enter 循环定位;Ctrl/Cmd+H 展开替换。替换结果先保留在草稿中,点击「应用修改」后整批生效并可撤销,取消或关闭窗口会确认是否放弃草稿。界面语言切换不改变字幕原文和查找高亮。
「批量替换」与纯文本编辑共用查找规则。正则替换支持 $1、$01 和 $<名称> 等标准捕获组引用;未启用正则时,替换内容原样插入。
选中一条或多条主字幕,右键「左右添加字符」,可一次插入强调、放大、缩小、下划线、删除线、淡出淡入或音符;「自定义」分别填写左右字符,也可只填写一侧。预设已包裹过的字幕不会重复添加相同符号,操作可撤销。
「文本处理(批量)」提供同组预设,可先预览,再应用到选中字幕或全部主字幕。插入的是实际文字;ASS 中的格式和动画如何解析、SRT 如何处理这些标记,见 ASS 特殊文本格式。
「数字转换」把明确的中文数字转为带左右空格的阿拉伯数字,如「一百八十六」→「 186 」、「二〇二六」→「 2026 」。约数、惯用语、分数和有多种解释的口语缩略尽量保留,例如「三两分钟」「八九不离十」「三分之一」「一百八」。预览后确认实际文本,再应用;数字转换不重新对齐音频。
JKL 播放
在「全局设置 → 播放预览 → 播放控制」中开启 JKL 模式后,默认 J 倒放、L 正放,依次使用 1×、2×、4×、8×、16×;K 停止并重置 1×,再次 K 以 1× 播放。倒放只驱动时间轴,不播放反向声音。也可改用旧的「慢速和倍速」模式。
「播放过程中点击鼠标自动暂停」可让鼠标定位后暂停;关闭时保持原播放状态。
设置入口与生效范围
工具栏的「工程设置」位于「全局设置」左侧。工程设置随 .mosp 保存;全局设置中的个人偏好在本机复用。两个窗口独立打开和关闭,Esc 关闭当前最上层浮窗。
| 入口 | 内容 |
|---|---|
| 工程设置 → 时间与语言 | 时间单位 / FPS、主副字幕语言类型。 |
| 工程设置 → 字幕轨道 | 双语字幕、显示字词时间码、显示标记轨道、允许字幕重叠。 |
| 工程设置 → 双语字幕 | 字幕列表显示方式、双语波形高度、联动与字幕管理;「字词码」设置字词时间码启用时的波形行高和每行长度。 |
| 工程设置 → 字幕样式 | ASS 模式、主副字幕字体、颜色和背景;ASS 样式库仍供本机工程复用。 |
| 工程设置 → 颜色与说话人 | 工程颜色呈现、说话人映射、导出带上说话人。 |
| 工程设置 → 表情包 | 工程覆盖目录;清空覆盖后使用默认文件夹。 |
| 全局设置 → 通用编辑 | 选择、定位(含快捷键时间基准)、拖动。拖动指针始终启用。 |
| 全局设置 → 高级编辑 | 按键微调、静音空隙、对齐到帧、帧分隔符、特殊文本。 |
| 全局设置 → 播放预览 | 预览、播放控制,含「跳过静音空隙」。跳过状态随工程的空隙数据保存。 |
| 全局设置 → 字幕导出 / 更多导出 | SRT / ASS 输出选项;OTIO 与格式专用导出配置。 |
| 全局设置 → 调色板 / 表情包 | 本机色板与默认文件夹。 |
| 全局设置 → 功能区 | 波形区、编辑区、字幕列表的局部设置入口。打开局部面板时保留全局窗口。 |
波形区 ⚙️ 保留「波形外观」「显示」两组。工作区配置继续使用工具栏原入口。双语未启用时,功能区卡片会说明并禁用其打开按钮。
表情包目录可直接填写并读取,Server 验证成功后应用;失败时保留原有效目录与素材。工程覆盖优先于全局默认,默认路径不会被写入工程。便携编辑器可保存目录配置,读取本地图片需使用 Server。
旧工程未记录 ASS 模式和导出说话人名称时,两项默认关闭,不继承浏览器里另一工程的旧开关。语言类型未指定时继续按字幕文字判断。
3. 调整时间、拆分与合并
拖动波形块整体移动字幕,拖两端改变起止时间。默认「中缝联动」模式下,相接字幕之间的中缝同时调整两侧;单独拖某一侧手柄只改该字幕。
中缝联动示例(1.6.0):拖公共中缝同时改变前句终点和后句起点。
传统边界模式与键盘调整仍受「自动吸附调整相邻字幕」控制,Alt 临时反转传统联动行为。完整时间微调规则见 按键调整。
字词时间码
在波形区 ⚙️ 设置的「显示」组中开启「字词时间码」,可在基础或多行波形上查看主轨已有 items。整句块淡化为背景,字词块内仅显示文字;完整文字和时间范围可通过悬浮提示查看。开关只在当前会话生效,打开另一工程后关闭,副轨与叠加轨仍按整句编辑。
工程设置的「双语字幕」页可调整字幕列表显示方式和双语波形高度;「字词码」组的行高与每行长度仅在字词时间码开启时生效,关闭后恢复切换前的波形值。
单击选中,Ctrl/Cmd 点击切换多选,Shift 点击选择同句范围;拖动字词块移动,拖动两端调整边界。相邻块沿用字幕的传统联动或中缝规则,Alt 临时反转联动。选中连续块后按 C,或使用字词右键菜单合并。所有调整限定在句内,不改整句文字、范围或副字幕绑定;Esc 取消拖动,撤销/重做恢复字词数据。
一个 item 可能包含多个共享时间的字词。例如「喜欢」改为「很喜欢」后,新增的「很」可能共用旧 item 范围,而不是获得独立时间码。标点和空白挂靠相邻块,不独立占时间。缺少时间码的位置不自动补建;字词文字仍通过整句编辑修改。
部分文字缺码时,能唯一对应原文的已有字词仍会带上标点和空白;重复文字造成对应歧义时保留 item 自身文字,完整原文始终保留在整句背景中。
低频转换入口在主字幕右键的「高级操作 → 字词拆成字幕…」。确认窗列出可转换数量、缺码/无法对应等跳过原因及将解除的副字幕绑定。转换保留原文和标点,每个有效块生成一条字幕并保留单个 item;副字幕内容与时间保留。新增文字没有重新对齐音频,转换可能产生很短的字幕和更多空隙。整批可撤销,没有反向转换工具;已与单 item 一致的字幕不会重复转换。
拆分
B 按指针区域决定切点:在已选字幕行按文字位置,在波形按音频位置,其他区域按播放头。右键菜单也提供拆分。主字幕有可用字词时间码且开启自动时间码拆分时,可以直接按字词边界拆分;无 items 时只能估算切点。
| 拆分方式 | 快捷键 | 一二|三 的结果 |
|---|---|---|
| 普通拆分 | B | 一二 / 三 |
| 渐进拆分 | Shift+B | 一二 / 一二三 |
| 复制拆分 | Ctrl/Cmd+Shift+B | 一二三 / 一二三 |
右键菜单按住 Shift 时「拆分」变为「渐进拆分」,再按住 Ctrl/Cmd 则变为「复制拆分」。两种特殊模式应用于主字幕,时间切点仍按普通拆分确定;绑定副轨按原联动规则拆分。渐进拆分保留前半句可用的字词时间码,清除后半句失配的时间码;复制拆分两侧均清除,避免复制文字与旧时间码错配。操作可撤销。
拆分弹窗中 Tab 切主副轨焦点,方向键/WASD 移动切点,空格锁定或解锁;时间码锚定的主轨不可手动移动。联动拆分时,副轨不能合法拆分不会阻止合法的主轨拆分,会解除绑定并提示;可钳制的情况按弹窗提示二次确认。
合并与吸附
选中连续字幕后按 C 合并;Ctrl/Cmd+Shift+A/D 可与前/后字幕粘合。同组颜色或表情包可以继承,混合选区不会错误继承。
「拼合字幕」批量处理短间隔或短字幕:默认间隔上限 200ms、短句上限 3,支持前后吸附与合并方向。禁用项和不同说话人的字幕不会合并。操作可撤销。
4. 多轨、标记与空隙
多重字幕与叠加字幕
导入第二条字幕后可开启多重字幕,选择主轨、副轨或双列显示。G 绑定、Shift+G 解绑、H 对齐,B 拆分;绑定默认同步一次时长,设置可关闭。主副轨联动、跨轨吸附、语言类型和冲突处理见 多重字幕规范。
也可先开启「双语字幕」使用空副轨:导入询问选「否」仍启用;在副轨空白处右键「创建副字幕」、按 N 或 Ctrl/Cmd 拖动添加。双语设置中的「导入副字幕」可替换已有副轨,替换前需预览确认。关闭双语模式保留内容,重新开启、撤销与保存重开都保留副轨数据。
开启叠加轨后,可在主轨已有字幕的时间段创建另一条字幕;同一叠加轨内部仍不能重叠。主、副与叠加字幕的 ASS 呈现见 ASS 样式。
标记与区段
「标记与区段」用于记录单点或时间范围的名称、备注和复核状态。AI 整理产生的待复核项在这里确认;字幕、标记与媒体剪辑决定分别保存,不应把提示标记当成已经完成的人工复核。
检测和移除空隙
空隙检测根据波形扫描静音,可设置最小长度、阈值、滞回和前后保留量。移除只保存可撤销的 gap_remove 决定,不剪原视频、不改原字幕时间;播放和导出使用压缩时间线。波形区 ⚙️ 设置「播放」组中的「播放时跳过空隙」控制播放是否跳过已移除的范围。
橙色斜纹表示移除,灰蓝斜纹表示保留。Alt 点击切换,右键或 Alt 拖动添加范围;左键拖动整体移动,Ctrl/Cmd 拖动复制,边界/中键调整按空隙设置开启。进一步收缩会在现有结果上再执行一次收缩,重复点击继续收缩,可撤销。
「禁用空隙内字幕」默认同时要求覆盖至少 80% 且未覆盖部分不超过 300ms,再批量禁用主字幕;不改原时间。按来源恢复和技术语义见 空隙来源。
5. 保存、另存为与备份
保存方式由当前工程的绑定决定:
| 工程来源 | 保存方式 |
|---|---|
| Launcher / Server 打开的工程 | 原子写回原文件;另存为限当前目录内的 .mosp / .json 文件名。 |
| 浏览器新建且保留文件句柄 | 直接写回已授权文件,Server 不接管、不加入其最近列表。 |
| 普通导入、便携或下载回退 | 没有可写绑定时,使用导出工程下载;支持句柄时可通过另存为取得授权。 |
Ctrl/Cmd+S 保存,Ctrl/Cmd+Shift+S 另存为。浏览器新建时解除旧 Server 工程绑定,防止串写。Server 导入工程的接管条件见 Server README。服务退出但页面仍开着时,可以导出工程保留改动。
自动保存按设置执行;文字提交还有短暂防抖保存。覆盖 Server 工程前保留 .mosp.bak 或 .json.bak,它是紧邻的上一个磁盘版本。
多版本备份
Server 的「全局设置 → 保存 → 备份工程」默认开启,默认每 5 分钟备份、保留 20 个版本;范围分别为 1–1440 分钟、1–1000 份。定时备份不覆盖原工程、不清除未保存标记,每次手动保存也创建版本。
备份设置示例(1.6.0):自动保存与多版本备份是两个独立开关;可从这里打开备份文件夹。
工程旁使用 _maw/备份(英文 backups),已在 _maw 或 <媒体名>_maw 内则直接复用。版本文件为 project-时间戳.mosp-bak,重名加序号;超过上限的最旧备份移入回收站。
恢复时复制所需版本到原工程目录,将 .mosp-bak 改为 .mosp 再打开,以保持相对媒体引用。浏览器单文件句柄不授权旁边目录,不能管理此版本库;通过 Launcher 重新打开后可使用。
6. 预览、样式与工作区
普通 CSS 预览的字幕框可以拖动,用八个手柄缩放;方向键移动,Shift 加速,Alt+方向键改尺寸。几何保存在 preview.subtitle,不改字幕时间。ASS 模式由样式库接管位置,见 ASS 样式。
颜色和表情包可从字幕右键分配,跨句引用会随拆分合并维护。表情包根目录由 -s 或 STICKER_DIR 指定。说话人显示按颜色映射名称,只影响预览;是否附加到导出字幕另行选择。
全局设置可以切换中文/English、主题和强调色。Server 的最近工程与工作区库保存在本机设置中:内置工作区可保存覆盖版、重置或另存为,自定义工作区可删除。便携 HTML 使用浏览器偏好及 .workspace.json 导入导出。
7. 选择导出格式
| 格式 | 用途与边界 |
|---|---|
.mosp / .json |
继续编辑的完整工程;新工程优先 .mosp。 |
| SRT | 通用字幕;可按颜色拆分,也可将主轨第一句起点延长到 0。双语模式另提供副字幕与双语整合 SRT。 |
| ASS | 样式、说话人、主副与叠加字幕,见 ASS 样式。 |
| TXT | 按字幕行输出纯文本。 |
| 去空隙 SRT / ASS | 与压缩时间线配套的字幕。 |
| 时间线 OTIO | 保留区间的媒体 clip,字幕及可选工程标记作为 marker。 |
| 去空隙重组后视频 | Server Editor 使用当前工程绑定的源视频和保留区间生成同容器视频,按保存位置选择器写入;音视频及其它流均以 stream copy 尝试保留。 |
| 去空隙重组后音频 | 音频工程中显示「重组后音频」,使用当前选定音轨按保留区间导出 WAV,保持源采样率、声道及采样精度。 |
| FFconcat | 给外部 FFmpeg 工具读取的保留区间清单,需配套去空隙字幕。 |
| 保留区域 JSON / Resolve JSON | 给外部工具的交换数据,不是工程文件。 |
| 表情包 OTIO | 独立图片轨道时间线。 |
去空隙导出只在存在移除决定时出现。重组媒体需要以 Server Editor 打开并绑定音频或视频工程,以及支持保存位置选择和流式写入的浏览器;服务端只使用当前工程绑定的源媒体,不接收保存路径。保存位置选择期间切换工程、解除绑定,或音频工程更改音轨,会中止旧导出,请按新的选择重新导出。
视频在同一容器中 stream copy,服务端核对输出非空且媒体流签名与源视频一致后才回传。某些流与容器组合可能不受 FFmpeg 支持;视频切点精度仍受关键帧和编码包边界限制,不能保证逐毫秒精确。音频先完整解码,再按最近音频样本裁切和拼接,输出 WAV;切点不受视频关键帧或压缩音频包边界限制,时长按实际保留样本数计算。WAV 文件可能比压缩源文件更大。
OTIO marker 使用媒体源坐标;时间线导出的 WAV BWF 非零起点会保留。跨移除区的字幕按保留区间拆分,字幕颜色映射为 OTIO 命名色。媒体重组用法见 工具箱。
双语整合 SRT 按主、副轨各自边界切成不重叠条目;重叠时主字幕在上、副字幕在下,未匹配字幕单独保留,禁用项排除。副轨无可导出文字时,副字幕和整合选项灰显;关闭双语后隐藏。主字幕 SRT 继续包含启用的叠加轨;首句延长到 0 不移动副轨时间。
保留工程和原媒体,交付格式无法还原全部字词时间码、工作区或编辑决定。正式字段契约见 JSON_SCHEMA。