在日常工作、生活中,语音识别技术作为基础服务,越来越多的出现在我们周围,比如智能音箱、会议记录、字幕生成等等。
作为一项已经很成熟AI技术,市面上很多厂商都会提供语音识别服务,对外声称的识别准确性也很高。
对于业务侧的我们,其实更关心的是在我们特定业务场景中的表现如何。
本文将带着大家从原理到实践了解语音识别效果评测的方方面面。
语音识别,又称语音转录文本,是将语音识别成文本的技术。英文名称 Automatic Speech Recognition,通常缩写为 ASR(下文统一用 ASR 指代)。
显然,一个 ASR 服务的好坏,可以用语音识别出的文本准不准来衡量。
而这个准不准,业界通常会用一个指标来量化:字正确率(Word Correct,W.Corr),又称识别正确率。
要理解字正确率,我们首先要搞清另一个指标 WER。
一、指标原理
1.1 WER 公式
WER(Word Error Rate),即词错误率,是一项用于评价 ASR 效果的重要指标,用来衡量预测文本与标注文本之间的错误率。
因为英文语句中最小单位是词(Word),而中文最小单位是汉字(Character),因此在中文语音识别任务中,使用字错率(Character Error Rate, CER)来衡量 ASR 识别效果。
两者的计算方式相同,我们通常在中文领域,也会使用 WER 表示该指标。
WER 的计算公式如下
#Deletions:删除错误字符数
#Insertions:插入错误字符数
#Substitutions:替换错误字符数
#ReferenceWords:总字符数
1.2 三类错误
整体来看,公式分母是总的字符数,分子是三类错误字符数的加和,下面我们看下这三类错误的含义
为便于描述,约定如下
REF:语音对应的正确文本内容,又称标注文本,即 Reference
HYP:语音通过 ASR 服务识别出的文本,即 Hypothesis
删除错误
语音转录文本过程中,原文中本来包含的文字,ASR 没有识别出来。例子:
语音“你吃了吗”,识别成“你吃了”,其中的“吗”字没有识别出来。
插入错误
语音转录文本过程中,原文中未包含的文字,比如噪音什么的,被 ASR 误识别成文字了。例如:
语音“你吃了吗”,识别成“你吃了吗呀”,其中“呀”字是误识别出的。
替换错误
语音转录文本过程中,原文中包含的文字,被 ASR 错误识别成了其他的文字。例如:
语音“你吃了吗”,识别成“你吃了么”,其中“吗”字识别错了,变成了“么”字。
总结一下
删除错误:识别少了,语音中本来有的字给漏掉了。
插入错误:识别多了,语音中没有的字识别出来了。
替换错误:识别错了,语音中的字识别成其他字了。
理解了这三类错误,回头我们再看上面各个字段,就很好理解了
综上,可见
WER 指的是,通过 ASR 识别出的结果文本中,包含的各类错误(删除、插入、替换)的字符数,与原始文本总数相比,所占的比例值。
现在我们已经理解了 WER 这个指标,接下来我们看下通过什么方式进行计算,才能得出这些值。
1.3 编辑距离
在识别结果文本和标注文本给出的情况下,#ReferenceWords 总字符数很容易得到,而三类错误的数量,我们需要通过“编辑距离”的引入来计算。
WER 公式中的分子部分,也就是
即为识别结果文本到标注文本的编辑距离。
也就是我们只要求得识别结果文本,到标注文本的编辑距离,除以标注文本字符数,就可以得出 WER 指标了。
下面我们具体看下什么是编辑距离,他是怎么计算得到的。
编辑距离(Edit Distance),是由俄罗斯科学家弗拉基米尔·莱文斯坦(Vladimir Levenshtein)于 1965 年提出,又被称为莱温斯坦距离(Levenshtein distance)。
编辑距离用于衡量两个字符串之间的相似度,被广泛应用于 DNA 序列对比、拼写检测、错误率计算等领域。
测量方式是看至少需要多少次处理,才能将一个字符串转变为另一个字符串。其中每次处理,称作一次编辑操作,包含三种:
- 删除,删除一个字符
- 插入,插入一个字符
- 替换,替换一个字符
可以看到,这里的编辑操作,正好对应了上述讨论的三类错误。
编辑距离越短,两个文本越相似;编辑距离越长,两个文本越不同。
编辑距离可以通过如下公式计算得到:
通过上述公式,计算出识别结果文本,变换到到标注文本的最小编辑操作次数,即可得到其编辑距离。
熟悉算法的同学应该知道,通过调整不同操作的序列和数量,计算总次数的最小值,是一个典型的动态规划(Dynamic Programming,简称 DP)问题。
不过这个已经超出本文主题的范围,对 DP 算法感兴趣的同学,可以参考如下资料进一步了解:
-
72. Edit Distance(考察编辑距离的编程题,熟悉编程的同学可以挑战下)
1.4 WER 计算
小结一下,计算 WER,可以计算从识别结果到标注文本的编辑距离,再带入下列公式得到
其中各参数如下
1.5 字正确率
好,现在我们回到最初提到的字正确率(Word Correct),这个指标指什么,和 WER 又是什么关系呢?
字正确率和 WER 相比,计算中忽略了插入错误字符数,也就是没有把插入错误纳入错误统计当中。
在实际系统中,上游 ASR 的识别结果,会被下游任务分析模块进一步处理,插入错误的文本会被处理掉,所以只需考察语音中包含的文本,被正确识别出的比例即可,也就是字正确率。
因此,业界厂商通常也把字正确率,与 WER 一起提供,用于衡量 ASR 识别效果。
1.6 开源工具
到此,我们已经理解了 WER 指标、字正确率指标,以及背后的原理与算法。
在产业界,为了避免不同实现造成的指标数据不一致的情况,让各个厂商便于对比各自的数据,大家通常采用开源工具来计算。
这里,我们使用的是美国国家技术研究所 NIST 开源的 Sclite 作为计算工具。
工具通过输入 识别结果文本、标注文本,可以计算得出对应的 WER,三类错误数及对应的详情。
工具使用
通过提供满足特定格式(trn)的识别结果文件、标注文本文件,sclite 可以计算生成包含 WER、字正确率,以及三类错误信息在内的详细评测报告(dtl)。
a. 调用命令示例
# 命令格式 sclite -r reffile [ fmt ] -h hypfile [ fmt [ title ] ] OPTIONS
./bin/sclite -r /corpus/audio_file/16k_60s_all_100.trn trn -h /data/output/16k_zh-PY-16k_60s_all_100.trn trn -i spu_id -o dtlb
标注文件:/corpus/audio_file/16k_60s_all_100.trn
识别结果:/data/output/16k_zh-PY-16k_60s_all_100.trn
b. 评测报告示例(dtl)
附:感兴趣的同学可以通过如下官网链接获取 NIST Tools
二、评测实践
网上流行一句话,知道了很多道理,却仍然过不好这一生。知易行难。
同样,我们尽管了解了 ASR 效果指标、原理以及开源工具,但可能仍然感觉无处下手。
为了降低测试门槛,方便客户简单快捷地评估自己业务场景在 腾讯云 ASR 服务 上的识别效果,腾讯云 AI 应用团队打造了 AI Studio 一键评测工具,让用户可以零基础完成评测。
现在处于内测过程中,让我们看下如何使用。
2.1 界面预览
AI Studio 官网链接:aistudio.cloud.tencent.com/
打开官网,看到如下页面。
点击右上角【登录】,会跳转到腾讯云官网的登录页面,使用云官网账号登录。
第一栏,是评测服务选项,这里我们选择【语音识别】,最右侧的下拉框中包含两个语音识别接口:录音文件识别、实时语音识别;
由于算法模型针对这两个业务场景,分别做了针对性优化,这里只需选择自己使用的接口即可。
第二栏,说明了如何创建测试集,以及标注文件时的注意事项。
第三栏,是提交测试任务时,需要选择的字段,这里保持和测试音频元信息一致即可。
2.2 操作指引
下面我们通过一个实例,展示下如果进行一次评测流程。
a. 准备评测语料
点击页面模板链接,查看测试集的格式样例:
测试语料包含两部分:
- 音频文件:业务场景中收集的音频数据,采样率为 8k 或 16k
- 标注文件:通过人工方式,将音频中包含的人声发言,记录到文本文件中
其中,标注文件中数字,需要标识为中文大写形式,例如文本“小明考了98分”,需要标注为“小明考了九十八分”
其他注意事项,参考页面:
b. 提交评测任务
下面新建评测任务
第一步:选择相应参数
根据音频信息,选择对应的识别语言、音频采样率
不同引擎类型,已针对特定场景进行优化,在匹配场景下拥有更好的识别效果,这里选择最适合的引擎类型即可,如下
第二步:上传标注测试集
将准备好的测试集,压缩打包,通过页面上传
第三步:检查标注测试集内容
这里系统会解析上传测试集,将音频与标注文本对应后,展示在页面上,供用户进行检查确认(由于测试结果与标注文本的准确性直接相关,需要确保标注文件的正确)。
点击确认提交,完成评测任务的创建。
c. 获取评测结果
任务执行过程中,可通过评测页底部的评测任务管理列表,查看任务状态。
任务状态显示【成功】后,点击右侧【查看结果】,即可查看评测结果:
可以看到评测效果指标字准率(即上述字正确率)、WER、插入/删除/替换错误率。
同时,也可点击下面的下载地址,获取评测报告和识别结果文件,进行进一步分析。
附录
- AI Studio 官网地址:aistudio.cloud.tencent.com/
- 腾讯云 ASR 官方文档:cloud.tencent.com/document/pr…
- NIST 开源工具:www.nist.gov/itl/iad/mig…