AI科普文章 | 语音识别准不准?—— ASR 效果评测原理与实践

2023-01-04 15:16:53 浏览数 (1)

在日常工作、生活中,语音识别技术作为基础服务,越来越多的出现在我们周围,比如智能音箱、会议记录、字幕生成等等。

作为一项已经很成熟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. 调用命令示例

代码语言:javascript复制
# 命令格式 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 官网链接:https://aistudio.cloud.tencent.com/

打开官网,看到如下页面。

点击右上角【登录】,会跳转到腾讯云官网的登录页面,使用云官网账号登录。

第一栏,是评测服务选项,这里我们选择【语音识别】,最右侧的下拉框中包含两个语音识别接口:录音文件识别、实时语音识别;

由于算法模型针对这两个业务场景,分别做了针对性优化,这里只需选择自己使用的接口即可。

第二栏,说明了如何创建测试集,以及标注文件时的注意事项。

第三栏,是提交测试任务时,需要选择的字段,这里保持和测试音频元信息一致即可。

2.2 操作指引

下面我们通过一个实例,展示下如果进行一次评测流程。

a. 准备评测语料

点击页面模板链接,查看测试集的格式样例:

测试语料包含两部分:

  • 音频文件:业务场景中收集的音频数据,采样率为 8k 或 16k
  • 标注文件:通过人工方式,将音频中包含的人声发言,记录到文本文件中

其中,标注文件中数字,需要标识为中文大写形式,例如文本“小明考了98分”,需要标注为“小明考了九十八分”

其他注意事项,参考页面:

b. 提交评测任务

下面新建评测任务

第一步:选择相应参数

根据音频信息,选择对应的识别语言、音频采样率

不同引擎类型,已针对特定场景进行优化,在匹配场景下拥有更好的识别效果,这里选择最适合的引擎类型即可,如下

第二步:上传标注测试集

将准备好的测试集,压缩打包,通过页面上传

第三步:检查标注测试集内容

这里系统会解析上传测试集,将音频与标注文本对应后,展示在页面上,供用户进行检查确认(由于测试结果与标注文本的准确性直接相关,需要确保标注文件的正确)。

点击确认提交,完成评测任务的创建。

c. 获取评测结果

任务执行过程中,可通过评测页底部的评测任务管理列表,查看任务状态。

任务状态显示【成功】后,点击右侧【查看结果】,即可查看评测结果:

可以看到评测效果指标字准率(即上述字正确率)、WER、插入/删除/替换错误率。

同时,也可点击下面的下载地址,获取评测报告和识别结果文件,进行进一步分析。

附录

  • AI Studio 官网地址:https://aistudio.cloud.tencent.com/
  • 腾讯云 ASR 官方文档:https://cloud.tencent.com/document/product/1093
  • NIST 开源工具:https://www.nist.gov/itl/iad/mig/tools

0 人点赞