跳到主内容

WER 会骗人:我们怎么测出接近真实访谈的准确率

· Zeyu Si

本页目录

我们测过一段瑞典电视台的书评访谈。四家识别引擎转出来的稿子,按行业最常用的 WER 指标算,错误率在 194% 到 216% 之间:错的比原话还多一倍。

可我们逐句读完,发现这四份稿子是全场最完整的。书名、人名、剧情全都对,连"标准答案"里漏掉的内容也转了出来。

问题出在那份拿来比对的标准答案上。

这篇讲两件事:WER 在访谈这种场景下为什么靠不住,以及我们后来改用的办法。我们为 27 门语言挑引擎,靠的就是这套办法。

一、WER 在访谈里会系统性地骗人

我们在 20 多门语言上反复撞到同样几种情况。每一种都会让一个数字看上去很精确,其实说错了事。

1. 标准答案本身被删过。 我们用的标准答案大多来自影视剧的听障字幕。字幕要照顾阅读速度,常常把口语压缩掉一截。引擎转得越完整,和它对不上的地方越多,扣分也越多。上面那段瑞典访谈是这样;一场西班牙语电影里七嘴八舌的吵架戏,所有引擎的 WER 都在 63% 到 80% 之间,逐句读下来,每一家都把意思完整转出来了。

2. 同一门语言,写的和说的不是一回事。 阿拉伯语的书面语和各地口语差别很大。同一个引擎,拿去和一份书面语的标准答案比,错误率 49%;换一份按方言如实记录的标准答案,16%。引擎没变,变的只是标准答案用的是哪一种阿拉伯语。

泰米尔语更极端:字幕按惯例写书面语,人说的是口语。拿字幕当标准答案,得分最高的会是那个把口语"改写"成书面语的引擎,忠实照录的反而垫底,排名整个倒了过来。

3. 中文和日文不用空格分词。 按空格切词去算 WER,一整句中文会被当成一个"词",错误率能算出 1000% 以上。这种数字毫无意义。

4. 拼写写法不同,意思没错。 希腊语、阿拉伯语的错误率常常偏高。细看,很多"错"是词形变化和拼写习惯不同,比如阿拉伯语里一个叫 hamza 的符号写没写。读的人不会误解,指标照扣。

5. 所以,WER 只能拿来粗筛。 它能告诉你一个引擎有没有彻底崩掉,比如整段没出字、满屏乱码。至于两家谁更准,我们不再看这个数。

二、标准答案要用真实的对话

真实访谈有停顿、口头禅、打断和抢话。拿新闻播报或者朗读音频来测,引擎个个表现漂亮,到了访谈里就不是那回事了。

所以我们的测试片只用真实的自发对话,首选电影片段:它们有给听障观众看的字幕,几乎逐句对应,而且找得到。找不到合适电影的语言,再依次退到电视剧、纪录片、议会或庭审录像、有逐字稿的播客。

难度分三档,一档一档往上加:

  • 基础:一两个人,语速平稳,没有底噪,口音标准,但仍然是真实对话。光这一档就能刷掉一批弱引擎。
  • 中高:在基础上加一两个难点,比如语速变快、多人小组、轮换变密、有些底噪或口音。
  • 极限:抢话叠音、强噪声或背景音乐、重方言、音质差,全部叠满。

一门语言如果有明显的地区差异,每个地区单独取片。比如西班牙语分西班牙、墨西哥、阿根廷,阿拉伯语分海湾、埃及、黎凡特。

三、先验标准答案,再验引擎

这一步最容易被跳过,我们也是吃过亏才加上的。在拿标准答案给引擎打分之前,先确认标准答案本身是对的。

一次集中复核里,我们剔掉了不少看上去没问题的测试片:

  • 一段标着他加禄语的节目,其实说的是宿务语,那是菲律宾的另一种语言。
  • 一段泰语片,字幕和声音错开了大约 30 秒。
  • 一段粤语访谈,音频其实是韩语:嘉宾是韩国人,粤语字幕是翻译。所有引擎在这段上的错误率都接近 100%。

每一个都会产生一个看起来很精确、实际上毫无意义的分数。更麻烦的是,当初的一些结论正是建立在这类片子上。

有三门语言我们至今找不到合格的标准答案:泰米尔语、孟加拉语、菲律宾语。这三门目前都不支持。我们宁可不做,也不拿一个测不准的数字出来。

四、不数错字,数"意思错了几处"

做研究的人用访谈稿,在乎的是意思。把"嗯"写成"呃"无所谓,把"没有"写成"有"就是大事。所以我们给每个引擎数的是语义红线,一共六类:

  1. 整句幻觉:录音里没有这句话,稿子里凭空出现。有个引擎按错误率看并不差,却在一段口音片里造出了一整句 "buy some bananas",原话里根本没有。我们因此没有用它。
  2. 否定反转:说"不"的地方写成了"是",或者反过来。读起来通顺,意思全反。下一篇专门讲这一类。
  3. 循环复读:同一个词反复出现几十上百次。
  4. 凭空插入:一段话里多出原本没有的内容。
  5. 整段丢失:一段话整个没了。有个引擎在一场方言加人群嘈杂的片子里,整段丢掉了开头 54 秒。
  6. 语言漂移:转着转着换了语言。有个引擎把西班牙语大段转成了葡萄牙语,"Soy abogado"变成了"Sou advogado"。

所有引擎用同一把尺子量。人名拼法、数字写成"6"还是"六"这类差异不计入红线。

光靠人读也会漏,所以我们再用机器扫一遍,看两个信号:

  • 生成量比:引擎转出的字数,除以标准答案的字数。明显低于 1,多半是大段漏掉了,我们见过 0.1 的;明显高于 1 并且伴随大量重复词,多半是在复读,我们见过 1.8。
  • 叠词:同一个词在短距离内重复出现的次数。

这两个信号和音频格式、片子难度都无关,所以能跨语言比较。WER 做不到这一点。

五、防止自己骗自己

最后几条纪律,每一条背后都有一次踩坑。

几家引擎都这么转、只有标准答案不一样时,先怀疑标准答案。 土耳其语上我们犯过两次错:把引擎转出的真实语音当成了"幻觉",其实是字幕漏记了那句话。

好几家在同一个地方一起错,就不记在某一家头上。 那往往是录音本身在那儿含糊,谁来都会错。把它算成某一家的红线,对那一家不公平,也会让我们选错引擎。

短片段不可信,一律跑全长。 有个方案在 10 分钟片段上,说话人识别准确率是 99.8%;同一条录音跑完整场,掉到 63.9%。

同一个设置至少跑两遍。 同样的输入,引擎每次的输出并不完全一样。有一次,某个引擎把一个"嗯"复读了 99 次,吞掉了后面三句话。只跑一遍的话,你分不清这是它的常态还是偶发。

这套办法的局限

测试片大多是电影和电视节目,不是真实的研究访谈。电影对白有剧本、收音讲究,和会议室里一支录音笔录下的东西不一样。所以这些结论告诉你的是"引擎在真实对话里会怎么犯错",不是"你的访谈能转到多准"。

这也是为什么我们不对外报一个笼统的转写准确率。我们能拿出来的,是怎么测、测出了什么,以及哪些地方我们还不知道。

下一篇讲六类红线里最危险的一类:意思反了,读起来却完全通顺。

作者Zeyu Si