录下来,再慢慢看:Echoo 的录制与回放

实时字幕有一些问题,靠“感觉”回答不了:字幕是不是来得太早,早到来回改写反而干扰阅读?加 500 毫秒延迟,换来的稳定值不值?被修正的词要不要提示?

要回答这些问题,得能把同一段字幕流在不同条件下反复播放给不同的人看。Echoo 的录制和回放就是为这个设计的。

导出的三个文件

视频字幕页和悬浮字幕页的会话结束后,点“导出会话”。文件由浏览器直接写出,不经过服务器:

文件内容
echoo-<时间>.events.jsonl第一行是会话信息:目标语言、声音来源、当时生效的呈现设置和音频参数。之后每行是服务器发来的一次字幕更新,原样记录:atMs(相对就绪时刻的毫秒数)、segmentId、text、translation、partial、audioMs(产生这次更新时已经送出多少音频)等
echoo-<时间>.segments.csv每句一行:首次更新时间、首个原文和译文、最后一次中间结果、定稿、首字和定稿时的音频位置、延迟、更新次数、改写次数、译文延迟、定稿耗时和最终文本
echoo-<时间>.audio.wav发给模型的 16 kHz 单声道 PCM 音频(最长 30 分钟)

呈现设置写在事件日志的第一行里,所以每个文件都自带“这是在什么条件下录的”。

回放页

回放分析页读入一个 .events.jsonl 文件,会做三件事:

  1. 画出每一句的时间线,看它什么时候第一次出现、改写了几次、什么时候定稿。
  2. 下载按句统计的 CSV。
  3. 按录制时的时钟重放字幕。如果同时加载了 .wav,就以音频为准对齐。

重放用的就是实时页面上的那个字幕组件。拿到同一个文件的每个参与者,看到的是完全相同的字幕流,差别只来自你改变的那个变量。

可以控制的变量

“字幕设置 → 呈现策略”里的四项,对实时字幕和回放同样生效:

设置取值
显示时机边识别边显示 · 只显示定稿
延迟显示0–3000 毫秒,加在每次更新之前
新词出现方式逐词淡入 · 直接出现
修正提示被改写的词闪一下 · 静默替换

一个典型的实验:录一段 10 分钟的讲座,然后用同一份录音做四组回放,只改“修正提示”和“显示时机”,看理解测试的成绩和主观负荷有没有差别。

比较两个引擎

如果问题是“换一个模型会怎样”,用引擎对照页:同一路声音同时送进两个识别引擎,结果左右并排,时间轴对齐。两边的会话可以一起导出,再用上面的工具分析。