做人工智能测试,准确一点,做语音聊天机器人、智能音箱等测试,一定会接触到语音误别即ASR (Automatic Speech Recognition)。本篇主要讲ASR的几个最重要的指标字错率、句错率。
1
基础概念
1.1语音识别(ASR) 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR),狭隘一点白话说:将语音转换为文字的技术。
维基百科:
1.2句错率(SER) SER,句错误率(Sentence Error Rate),句子识别错误的的个数,除以总的句子个数即为SER。
计算公式:(下面所有公式省了 * 100%)
SER = 错误句数 / 总句数
1.3句正确率(S.Corr) 句正确率:Sentence Correct,句子识别正确的个数,除以总的句子个数即为S.Corr。
计算公式:
S.Corr = 1 - SER = 正确句数/总句数
1.4字错率(WER/CER) WER:Word error rate,词错率,但一般称为字错率,是语音识别领域的关键性评估指标,WER越低表示效果越好!
CER:Character Error Rate,字符错误率,中文一般用CER表示字错率,原因请见1.4.3。字错率是中文语音识别领域的关键性评估指标,一般认为字错率在低于 3% 时不会影响可读性,而超过 15% 则毫无可读性。
维基百科:
1.4.1 计算原理
算法:字符串编辑距离(Levenshtein距离)算法。
编辑距离
1.4.2 计算公式(重要)
WER=(S+D+I)/N =(S+D+I)/(S+D+H) S 为替换的字数,常用缩写WS
D 为删除的字数,常用缩写WD
I 为插入的字数,常用缩写WI
H 为正确的字数,维基百科是C,但我统一改用H
N 为(S替换+ D删除+ H正确)的字数
Findyou:
1.正确的字数:维基百科里用的是C代表,H = N - (S+D) = C,我这边直接改成H,减少过多概念与变量。
2.大多数文章都没有给出N的计算方式,很容易误以为是原句总字数或者识别结果总字数。
3.不理解没关系,下面实例会帮助理解。
1.4.3 问题
问题1:为什么WER会大于100%
因为有插入字(识别多的字),所以理论上WER有可能大于100%,在下面实例我会举例(请见2.3.5),但实际场景,特别是大样本量的时候,基本太不可能出现。
问题2:说中文应该用CER,即“字符错误率”(Character Error Rate)
Findyou举个栗子:
1 2 英文:hello # 算一个Word 中文:你好 # 算两个字符 啰嗦文字解释,就是:
英文,因为最小单元是Word,语音识别应该用"字错误率"(WER),
中文,因为最小单元是字符,语音识别应该用“字符错误率”(CER)。
BUT(就是但是的意思…),他跟我前面那一句一样,说的都是废话!
我们计算的时候谁不是按:中文的一个字符 = 英文的一个Word,那这样用WER的公式有什么问题呢?
谁再跟你咬文嚼字,怼他,使劲怼!
怼完,说回严谨的话,建议采用CER表示中文字错率,哈哈哈哈哈…
1.5字正确率(W.Corr) 字正确率,Word Correct,一般国内宣传用得多,识别率(识别正确率)达到多少多少(请见1.7)。
计算公式:
W.Corr = (N - D - S)/N = H / N 问题:只计算了识别正确的字,没有管多出来的字(I插入),当然一般情况下不会有什么问题。
1.6字准确率(W.Acc) 字准确率,Word Accuracy
计算公式:
W.Acc = 1 - WER = (N - D - S - I)/N = (H - I)/N 特殊情况:当 I=0 时, W.Acc = W.Corr
问题:为什么W.Acc会是负数?
同WER,因为有插入字。换个说法,因为 字准确率 =1 - WER,而WER可能大于1,所以W.Acc会出现负数,但实际情况基本不存在。
1.7聊点其他 ASR影响因素
人群:男、女、老人、小孩…
音量)
距离(与拾音设备的距离)
角度(与拾音设备的角度)
设备(拾音设备的硬件)
环境:安静、嘈杂(自噪、外噪)、家庭、商场…
句长
口音、方言
语速
语言:中文、英语
…
大概举几个因素(懒得放脑图,文字也方便大家拷贝),
因为ASR的识别影响因素过多,所以很多时候会从各种纬度测试,比如:男生字错率、女生字错率,或者小孩字错率、平均字错率等等,如果没有公布测试数据与方法,不可信,因会存在很多可操作的地方,最大的问题是:
过拟合:训练数据、测试数据、验证数据是同一份,打外比方说:要考试的卷子就是你前一天发的老师发的练习卷还带答案的。
先扯到这,后面找时间再整理一篇ASR测试方法系统讲一讲,做为测试我们如何去测ASR以及制定各种测试标准。
行业水平
英语-WER
IBM:行业标准Switchboard语音识别任务,2016年 6.9%,2017年 5.5%
微软:行业标准Switchboard语音识别任务,2016年 6.3% -> 5.9%,2017年 5.1%,这个目前最低的。
说明:ICASSP2017上IBM说人类速记员WER是5.1%,一般认为5.9% 的字错率是人类速记员的水平。
中文-WER/CER
百度:2016年 短语识别 3.7%
小米:2018年 小米电视 2.81%
中文-W.Acc:
百度:2019年 识别准确率 99%
搜狗:2019年 识别准确率 997%
讯飞:2019年 识别准确率 99%
中文-W.Acc:
百度:2016年 识别准确率 97%
搜狗:2016年 识别准确率 97%
讯飞:2016年 识别准确率 97%