直接回答
写解析或测试前先固定 WebVTT 文档版本。W3C 当前发布的是 2026-05-20 的 Candidate Recommendation Draft,仍是草案而非最终 Recommendation。用带日期的 snapshot 固定语法,并在工程记录中保留草案状态。Android 播放器是另一项独立实现,可能只支持格式子集。Android Media3 文档列出 WebVTT 字幕支持,但这不能证明某产品使用 Media3、接受所有 cue 特性,或在每台设备上得到相同画面。 WebVTT cue 包含开始时间、结束时间和 payload。cue 开始时间必须按文件顺序不递减,每个 cue 的结束时间必须严格晚于自己的开始时间。字幕/说明字幕之间可以重叠;不能给所有字幕套用全局禁止重叠。规范另行定义 chapter 文件为嵌套 cues;章节 profile 更严格,但不能变成所有字幕的限制。先明确 track 类型,再按相应类型测试,不能把每个 timed-text 文件都当作章节。 WebVTT 时间戳是相对于关联音频/视频资源的播放时间偏移。它不是墙上时间、AudioRecord 采集时间、AudioTimestamp 时钟读数,也不能证明译文句子与识别出的原文在同一瞬间开始。字幕文件应绑定具体媒体身份和时间线版本。若上游转写给出分段时间,记录产生它的来源时钟和媒体文件,以及任何时间换算证据。没有经过验证的映射,就应把时间标为待确认,而不是伪造精确字幕对齐。 按 WebVTT 时间戳语法解析,不用宽松日期解析器:小时为零时可省略,也可写出;非零时必须出现,写出的小时部分由至少两个 ASCII 数字组成。分钟和秒各有两个 ASCII 数字且在 00–59;小数部分恰为三位。校验范围并进行溢出安全换算,尽可能精确保留毫秒值;转为帧或样本索引是另一层播放器换算。cue 标识符可省略,若存在则须符合此固定草案的文件内唯一要求;它不是永久媒体键或来源证明。文件生产合规与播放器容错分开:parser 可能接受或归一化不合规输入,因此预览成功不能证明源文件合规。 将 cue payload 视为 WebVTT 文本及其定义的受限标记,而不是任意 HTML。W3C 算法会从支持的 cue 标签、时间戳和字符引用构造 WebVTT 节点;它不是通用浏览器文档,也不是把内容送进 WebView 的许可。文本应保持为数据,只通过已测试的播放器/解析器显示,不执行链接或抓取资源。未知标签、实体错误、voice/language 注解、双向文本和多行 payload 都要有明确的测试行为;若库会归一化内容,保留原始 payload 供复核。 把解析和编辑变换分开。文件语法有效,仍可能有不合适的译文、糟糕的字幕分段或错误说话人映射。不要为了让预览看起来整齐而静默合并重叠、重排 cue、删除标识符或移动偏移。若输出策略修复 cue,保留原始 cue、转换规则和可审阅差异。播放器还可能根据 track mode 或渲染策略替换/隐藏 cue;解析成功不等于用户看到预期文本。 用真实序列化器/解析器配对测试签名、BOM/换行、可选 ID、毫秒时间、小时值、相同开始时刻、允许的重叠、开始顺序错误、结束早于开始、仅章节嵌套、CR/LF 文本、实体、支持的 cue 标签、未知标记、重复 ID、空 payload 和大文件。再用已知播放时间线的媒体文件核对目标播放器版本。分别比较 cue 对象、偏移和渲染结果;单张截图或 parser 成功无法证明字幕准确或与采集时钟同步。 原始转写、译文、cue 提议、复核后的 sidecar 和导出文件应使用不同版本记录。在适用范围内记录来源媒体 ID/hash、语言标签、字幕 kind、W3C 版本、parser/player 版本、时间来源和用户决策;默认不把私人对话写入日志。本方法不声称 Cove 集成 Media3、生成字幕文件、支持 WebVTT 或测得字幕质量。即使转写在本地执行,应用仍须明确访问、存储、保留、导出和同意边界。
译文字幕与下一位说话人的 cue 重叠
本地转写包含两位短暂重叠的说话人。翻译步骤将其中一句扩长,导出器于是想把第二个 cue 往后挪来消除重叠。原时间来自媒体相对的转写夹具,而不是麦克风时钟映射。
决策
分开保存来源 cue 时间和语言版本;校验开始顺序及每个 cue 的结束时间,在所选字幕类型允许时保留重叠,并展示文本/时间差异供复核。
预期结果
导出的 sidecar 保留有依据的媒体偏移和真实重叠;没有单独测试对齐方法时,不声称译文与语音精确同步。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- ANDROID-WEBVTT-CUE-CONTRACT-2026-10:专用事实卡记录固定 WebVTT 快照的 cue 时序、顺序、重叠和 payload 边界;不证明 Cove 的播放器或导出能力。
- RAG-01:本地 AI 数据流程的各阶段应分别验证;该事实不定义 WebVTT 语法。
- ANDROID-PRIVACY-01:媒体、转写和导出内容的访问、存储及用户控制由应用负责。
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 固定规范版本和 track 类型. 记录 W3C 2026-05-20 CRD snapshot、parser/player 版本,以及字幕、说明字幕、章节或 metadata 类型。章节专用规则不可静默变为字幕规则。
- 确认媒体时间线来源. 将 cue 绑定一个媒体文件和其播放时间线。记录上游单位与转换证据;不得直接替换成墙钟、AudioRecord 时间戳或未经验证的翻译对齐。
- 解析并校验 cue 结构. 检查 WebVTT 签名、只有小时为零时才可省略、时间戳语法、开始不递减、结束晚于开始、已有 ID 唯一、payload 边界、换行与大小限制。把文件生产合规结果与实际播放器 parser 接受情况分别记录。
- 保持 payload 不执行且变换可见. 只通过固定版本且已测试的 WebVTT parser/player 渲染。不得把 cue payload 当任意 HTML 或抓取其中看似 URL 的内容;保留原始 payload 并展示文本、时间或排序修复。
- 用目标播放器进行往返复测. 使用合成重叠/边界 cues 和已知媒体时间线。分别对比 parser 对象、序列化文件、选中的 track、屏幕 cue 和复核结果;结论限定于该播放器构建。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 明确标注 W3C 2026-05-20 Candidate Recommendation Draft 是草案快照,不称为最终 Recommendation。
- 适用时允许字幕重叠,同时仍校验开始顺序和每 cue 时长;不将章节嵌套限制应用于全部字幕。
- cue 偏移绑定命名的媒体时间线;没有单独证据时不等同于麦克风时钟或译文对齐。
- payload 按 WebVTT cue 文本解析而非任意 HTML;不支持的标记和变换需显示并可复核。
- 播放器/parser 结论限制于实测版本,不暗示 Cove 集成 Media3/WebVTT 或已有质量结果。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| WebVTT 字幕/说明字幕 track | 按选定 WebVTT snapshot 和播放器校验 cues 与 payload。 | 可允许重叠,同时要求开始有序、每个 cue 时长为正;不会自动与麦克风时钟同步。 |
| WebVTT 章节 track | 仅在选择章节类型时应用章节嵌套 cue 规则。 | 章节限制不能变成字幕/说明字幕重叠的通用规则。 |
| 音频采集时间戳 | 明确保存 frame position、时钟类型和采集来源。 | 采集时钟不会自动变成 WebVTT 使用的媒体播放时间线。 |
| 翻译后的字幕文本 | 将语言版本与时间提议分开供人工复核。 | 译文更长不等于应静默移动来源媒体偏移,也不证明词级对齐。 |
需要避免的失败模式
- 把 W3C 2026-05-20 CRD 称作已最终发布的 Recommendation。
- 把章节 cue 的嵌套限制套用到所有字幕,或把任何字幕重叠一律当作非法。
- 把媒体播放偏移当作麦克风时钟、墙钟或翻译后的词级对齐。
- 将 WebVTT cue payload 当作任意 HTML,或从格式支持表推断 Cove 已集成。
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
- Android privacy and security
- W3C — WebVTT 1 2026-05-20 Candidate Recommendation Draft
- WHATWG — HTML track 与 timed text tracks
- Android Developers — Media3 支持的字幕格式
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
WebVTT 字幕 cue 重叠就一定无效吗?
不是通用字幕规则。W3C snapshot 允许不同 cue 重叠,同时要求开始时间有序且每个 cue 结束晚于开始。章节文件另有嵌套 cue profile。
WebVTT 时间是否表示麦克风听到这句话的时刻?
不是。cue 时间相对关联媒体的播放时间线。将麦克风时钟读数换算过去需要单独建立映射,不能根据数值相似推断。
能否把 cue payload 当 HTML 渲染?
不能这么假设。WebVTT 自己定义 cue 文本解析和节点构造。应使用确切测试过的播放器/parser,并让未知标签、实体和外部引用保持惰性。
Media3 文档列出 WebVTT 是否证明应用已导出字幕?
不能。它仅说明 Media3 对该格式的支持。声明产品支持前须核实实际依赖、集成路径、目标播放器表现和导出字节。