字错率 WER 是什么?语音识别最常用的评价指标
TL;DR字错率(WER,又称词错率)是评估自动语音识别系统性能的核心指标,计算把识别结果改成正确文本所需的最少替换、删除和插入次数占参考文本总词数的比例,数值越低识别越准。
字错率(Word Error Rate,WER)是评价语音识别准确度最常用的指标,英文语境下通常叫词错率。它衡量的是识别出来的文字和正确文字(参考文本)之间差了多少:错的字词越少,WER 越低,说明语音识别系统的性能越好。语音合成的评测里,也常把合成语音再识别一遍,用 WER 衡量合成的发音是否准确清晰。
怎么算
WER 计算的是:把识别结果改成参考文本,最少需要多少次编辑,再除以参考文本的总词数。编辑操作有三种:替换,识别成了别的词;删除,参考文本里有、识别结果里漏了;插入,识别结果里多出了参考文本没有的词。公式是:WER 等于替换数加删除数加插入数,再除以参考文本的总词数。这个最少编辑次数用编辑距离算法计算。
举个例子:参考文本是“今天天气很好”(按字计 6 个字),识别结果是“今天天汽好”。“气”被识别成“汽”,算 1 次替换;“很”被漏掉,算 1 次删除。WER 就是 2 除以 6,约等于 33%。
结果通常在 0 到 1 之间,或者用百分比表示,比如 5% 的错误率。0 表示完全正确。需要注意的是,因为可能有大量插入错误,WER 理论上可以超过 100%。
中文常用字错率
英文按单词计算 WER。中文没有天然的空格分词,不同的分词方法会让结果不一致,所以中文语音识别通常按单个汉字来计算,称为字错率(Character Error Rate,CER)。日文等语言也常用 CER。
局限
WER 把所有错误一视同仁:把“不”识别成“布”和把关键的人名识别错,扣分一样,但对意思的影响天差地别。它也对标点、大小写、数字的写法(“5”还是“五”)很敏感,比较不同系统时需要先统一文本的规范。因此在实际评估中,WER 常和语义层面的指标、人工评估一起使用。