第一方数据 · 2026-08-28 至 09-26 · 作者本机实测 · 更新于
实时中文字幕的延迟与错误,按链路分开实测。
Voice Translator(Mac)有四条字幕链路,现在卖的只有两条:本地(体验版默认:本机识别 + Mac 端侧翻译)和云端翻译(专业版:本机识别 + 我们服务器上的大模型)。这两条量过的是「模型这一步」:端侧翻译每句 p50 34–59 ms、云端每句约 1.04 s(含网络),会议式短句 18 句的准确度云端更高(chrF 0.45–0.50 对 0.38),20 句带数字的英文两者都没丢数;它们在真实会议里的端到端延迟还没量。作者两场 Zoom 真会跑的是第三条「同传」链路,用的是作者自己的 key、现在不对外:中文首字 p50 2.81 s 与 2.47 s,句尾到定稿 0.81 s 与 0.94 s;第二场 274 句里 22 句专有名词译错。第四条「级联」(云端识别 + 云端翻译)只做过回放,没对外。下面每个数都带日期、样本和口径。
四条链路:谁能用,量了什么
「模型耗时」只是翻译(或识别)那一步花的时间;「端到端」是对方开口或说完、到中文出现在你屏幕上的时间,含采集、识别、网络、翻译和上屏。两者不能互相替代。
| 链路 | 谁能用(2026-10-01) | 量过的 | 没量过的 |
|---|---|---|---|
| 本地:本机识别 + Mac 端侧翻译 | 所有人;体验版默认 | 识别错误率(8 门语言)、端侧翻译每句耗时、准确度、数字(下文) | 真实会议里的端到端延迟 |
| 云端翻译:本机识别 + 我们服务器上的大模型 | 专业版;每台设备 5 分钟试用 | 每句翻译耗时(含网络)、准确度、数字 | 真实会议里的端到端延迟 |
| 同传:识别与翻译一体的云端引擎 | 不对外:作者用自己的 key 跑;对外开放要等许可与成本 | 两场 Zoom 真会的端到端延迟与错误(下文)、回放 | — |
| 级联:云端识别 + 云端翻译 | 不对外(许可闸门关着) | 回放实验(下文) | 真实会议 |
你装好之后用的两条:本地与云端翻译
设备与版本:作者的 Mac(M3 Max),macOS 26.5.2(09-26);云端模型是 glm-5.3-flash。方法:脚本把参考句子逐句送进 App 用的同一套识别与翻译代码,量每句耗时,用 chrF(字符 n-gram F 值,越高越好)对参考译文打分,带数字的句子按数值核对。
| 量什么 | 样本 | 本地(端侧) | 云端翻译 | 日期 |
|---|---|---|---|---|
| 翻译准确度 · 会议式短句(英 → 中) | 站会 / AMI 会议 / 演示录音里有参考译文的 18 句 | chrF 0.377 | 0.448 / 0.503(跑两次) | 2026-09-14 |
| 翻译准确度 · 长句(英 → 中) | FLEURS 100 句 | chrF 0.419 | 0.366 | 2026-09-26 |
| 翻译准确度 · 法德西葡意日韩 → 中 | FLEURS 每门 100 句 | 0.286–0.335 | 0.280–0.337 | 2026-09-26 |
| 每句翻译耗时 p50(模型这一步) | 英 → 中 93 句;8 门语言各 100 句 | 34–35 ms(09-14)· 49–86 ms(09-26,按语言) | 约 1.04 s,含网络(09-14) | 2026-09-14 / 09-26 |
| 识别错误率(本机识别) | FLEURS 每门 100 句 | 英 WER 8.9% · 法 7.3% · 德 7.6% · 西 5.2% · 葡 9.2% · 意 4.1% · 日 CER 6.7% · 韩 CER 5.7%(两条链路共用这一步) | 2026-09-26 | |
| 带数字的句子丢数 | 每门语言 20 句,按数值核对 | 8 门 0 丢 | 英 0 丢;意、韩各 1 句真丢,产品的数字核对抓住并在句尾补回原文数字 | 2026-09-26 |
| 真实会议的端到端延迟 | — | 待量 | 待量 | — |
读法与局限:两组准确度方向相反 —— 会议式短句上云端更好,维基式长句上本地略好;18 句和 100 句都是小样本,chrF 只看字面相似,不判断意思对不对。耗时是翻译那一步,不含识别和上屏,也不代表你的网络。FLEURS 的音频末尾带静音,「音频放完到定稿」只拿来比语言之间慢没慢,不当绝对延迟用。
失败也写:云端模型在法语、西语里把「La remise est de 30 %」译成「打七折」—— 意思对,但「30」这个数不在了,按「数字原样」算丢;意大利语「2,81」被四舍五入成「2.8」;韩语日期里的年份被省掉。这些都被产品的数字核对抓住、在句尾补回了原文数字。按语言的完整表在英文数据页 How accurate is Apple on-device translation。
口径:四个数各量什么
| 指标 | 从哪到哪 | 预算 | 为什么重要 |
|---|---|---|---|
| 中文首字 | 对方开口(音频)→ 第一个中文字上屏 | ≤ 3 s | 你多久开始看懂 |
| 句尾 → 中文定稿 | 对方说完 → 这句的中文定稿上屏 | ≤ 2 s | 轮到你之前你能不能看完 |
| 每句回改 | 定稿之后被改写的次数 | ≈ 0 | 字幕闪不闪,能不能边看边想 |
| 英文速显(词延迟) | 对方说出一个词 → 这个词出现在英文行 | ≤ 1.2 s | 屏幕上多快有东西在动 |
回放:同传、级联与端侧识别,同一段音频(2026-08-29)
2026-08-29,App 真链路,同一段干净的英文会议样本按真实时间回放。同传 自带中文,字幕不经大模型;级联是云端识别出英文、云端模型只追加不回改地译成中文。
| 指标 · p50 | 同传 | 级联(云端识别 + 云端翻译) | 读法 |
|---|---|---|---|
| 中文首字 | 2.85 s | 3.17 s | 级联的 3.1 到 3.2 s 在 08-28 的首轮实验里就是这个数,是它的天花板:云端识别的中间结果大约 1.3 s 才来一次 |
| 句尾 → 中文定稿 | 0.70 s | 1.45 s | 同传赢一倍 |
| 每句回改 | 0.00 | 0.77 | 同传原生不回改;级联靠只追加策略把整句重写从 1.77 压到 0.85 |
| 英文中间结果 | 2.75 s | 0.96 s | 同传输在英文小字,按词组整块提交;这一格后来由端侧速显盖住 |
多人抢话的样本(AMI 会议语料库 ES2002a 前 5 分钟,4 人):同传 106 段全部成对,中文首字 2.33 s、句尾到定稿 0.94 s、回改 0.00。08-28 的级联首轮(云端识别 + 只追加翻译):英文中间结果 0.89 到 0.93 s,中文首字 3.10 到 3.21 s(p90 4.8 到 4.9 s),句尾到定稿 1.47 到 1.59 s。
| 端侧识别(本机,Apple 芯片)· 2026-08-30 · 三轮池化 498 词 | 结果 |
|---|---|
| 词延迟 p50 / p90 | 1.258 s / 2.37 s(单轮在 0.95 到 1.33 s 之间跳;目标 ≤ 1.2 s,压线未过) |
| 段首词 p50 | 1.173 s |
| 速显比同传定稿早 | p50 2.07 s,24 段里 24 段在定稿前已有速显文本,每段恰好被替换 1 次 |
| 速显定稿的词错误率 | 0.126(速显可能有错,可信文本以定稿为准) |
两场真实会议(同传链路,作者自带 key,现在不对外)
第一场:2026-09-03,Zoom,31 分钟,对面两位,Mac 1.6.0。同传链路,641 段字幕(按词组切,每段 p50 6 词),作者开口 19 次;产品第一次在真实会议里跑满全程,零降级。读数来自 App 的会议存档(metrics.jsonl),不经人工挑选。这条链路用的是作者自己的 key,你装好之后用不到它。
| 指标 | 预算 | p50 | p90 | 判定 |
|---|---|---|---|---|
| 中文首字 | ≤ 3 s | 2.81 s | 4.46 s | 达标 |
| 句尾 → 中文定稿 | ≤ 2 s | 0.81 s | 1.13 s | 达标 |
| 每句回改 | ≈ 0 | 0.00 | — | 达标 |
| 英文速显(逐词) | ≤ 1.2 s | 0.71 s | 1.20 s | 达标,首次在真实会议上量到 |
| 同传的英文中间结果 | ≤ 1.5 s | 2.71 s | — | 没达标,已知;速显行盖住了它 |
第二场:2026-09-23,Zoom,16 分钟,同一批对方(GPU 集群的网络物料清单),Mac 1.6.0,同传链路(作者自己的 key)。存档 274 句、1,965 个英文词;这一版的计量器只留最后 20 句,下表是收尾那 20 句。
| 指标 | p50 | p90 | 和第一场比 |
|---|---|---|---|
| 中文首字 | 2.47 s | 3.61 s | 快 0.34 s |
| 句尾 → 中文定稿 | 0.94 s | 1.07 s | 慢 0.13 s |
| 速显(端侧听写行出字) | 0.48 s | 0.97 s | 快 0.23 s |
| 降级 / 重启 / 回改 | 0 / 0 / 0 | 同 | |
失败案例:专有名词、混进来的声音、核不了的数
来自 2026-09-23 那场 16 分钟的 Zoom 真会(同传链路),逐句人工读过。274 句里 22 句(8%)专有名词或术语译错,另有 1 句人名前后译法不一致;带阿拉伯数字的 23 句,英中两列数值全部一致。
| 词 | 提到 | 错 | 错成什么 | 听错还是译错 |
|---|---|---|---|---|
| BOM(物料清单) | 4 | 4 | 「干净炸弹」「以太网炸弹」「那个链接」 | 听错(两场合计 9 次,0 次对) |
| opportunity / O number(商机号) | 5 | 5 | 「所有者号码」「o 号码」 | 都有 |
| leaf / spine(叶脊网络) | 7 | 3 | 「叶子和脊椎」「刺和叶」 | 译错 |
| converged network | 3 | 2 | 「你就会收敛」 | 译错 |
| InfiniBand · BlueField · rack · WEKA · Compal | 各 1–4 | 各 1 | 「无限带宽」「蓝色字段」「岩石布局」「WeCall」「Compo」 | 听错 |
| 人名 Xander / DK | 8 / 6 | 2 | 「丹德」「PK」 | 听错 |
- 核不了的数:「expand it to 54」—— 整场提到的规模只有 32 / 64 / 72 / 128,很像是 64 听错了;那场没录音,核不了。所以要紧的数请回头对原文。
- 混进来的声音:开头 20 秒有 4 句别处念出来的中文被当成对方的话上了屏(当时抓的是整台 Mac 的声音)。1.7.0 起对方那一路只收你选的那门语言,中文段不上屏。
- 之后做了什么(1.7.0,09-24):数据目录里放一份词表(glossary.txt,没有界面),开一场读一次,交给引擎当热词与译法,另外在上屏前做固定替换。同一段 47 秒的合成音频重跑:BOM、Compal、InfiniBand、BlueField 改对了,WEKA、O number 还是错;引擎只把热词当提示,同一份词表跑两次结果不一样。1.7.0 之后还没有新的真会来验证。
这些错不是某一家引擎独有的:会议里的行业缩写对任何实时翻译都难。看这一页的意义是知道它会在哪里错,而不是相信它不会错。
谈与讲:另外两个姿势的数
谈 · iPhone · 全端侧乌克兰语 ↔ 中文链路 · 2026-09-05
- 说完 → 出声 p50 / p90
- 220 ms / 242 ms
- 乌克兰语识别 WER(FLEURS 100 句,Parakeet)
- 8.47%
- 中文识别 CER(FLEURS 100 句)
- 5.64%
- Apple 翻译 vs 云端模型 的 chrF++ 差
- 0.58 分
- 翻译里的数字 · 日期 · 金额丢失
- 0
- 念出来再听回去(TTS 回环)WER
- 11.49%,20 句里 5 句信息错
所以数字、日期、金额、人名先在屏幕上确认,再给对方看(2026-09-17 起这个产品不出声,下表里「说完 → 出声」「TTS 回环」两行是当时那条通道的历史实测)。详见 「谈」姿势页的实测。
讲 · 板引擎 · 本机跑通 · 2026-09-07 到 09-08 · 云端模型(快档)
- 一段话 → 板上一个操作(十段)
- 中位 3 333 ms · 1 703–5 434 ms
- 操作类型与目标图判对
- 9 / 10
- 三种语言的骨架抽掉文字后
- 逐字节相同
- iPhone 上一段话 → 板上一步
- 待测
Mac 的讲在本机拉起这套板引擎,iPhone 的讲用同一份抽图提示词。详见 「讲」姿势页的实测。
方法与出处
- 回放:同一段音频经回放器按真实时间灌给引擎,服务端按词级时间戳算每个口径,滚动 20 句取 p50;没有词级时间戳的引擎按句对齐。
- 真实会议:App 存档里的 metrics.jsonl,每句一条事件,不经人工挑选;这一场是 2026-09-03 的 31 分钟英文会议。
- 网络:从作者本机到北京的 TLS 握手 70 到 130 ms(2026-08-28 复测),不是延迟的大头。
- 公开数据集:AMI Meeting Corpus(ES2002a,多人会议);当面产品用 FLEURS 的乌克兰语与中文各 100 句。
- 界面上是同一份读数:鼠标停在 Voice Translator(Mac)浮层的状态行上,显示本场最近 20 句的中文首字、句尾到中文、速显三个中位数,官网和界面不会有两套数。
相关:会议实时翻译怎么选 · Mac 即时字幕怎么开 · 「听」姿势页
常见问题
关于这些数字。
为什么中文首字要 2.8 秒,英文速显却只要 1 秒?
同传按大约六个词一个词组整块提交,中文首字的 2.81 秒几乎全是等它提交;端侧识别逐词吐字,所以英文速显 0.71 到 1.26 秒就有东西在动。两条线同时开着:速显先填进当前这一段的英文行,同传定稿到了原地一次替换。
这些数字怎么复现?
回放实验用 AMI 会议语料库的 ES2002a 前 5 分钟和一段 67.7 秒的站会样本,按真实时间灌给引擎,服务端按词级时间戳算延迟;真实会议的数字直接读 App 存档里的 metrics.jsonl。鼠标停在 Mac 浮层的状态行上,能看到本场最近 20 句的同一套读数,你自己开一场就能对。
这页会更新吗?
会。每换一次引擎、每开一场有存档的真实会议,数字带日期追加在这一页;旧数字不删,标日期留着。没量过的写「待测」。