mlfviewer_语音识别ASR - HTK(HResults)计算字错率WER、句错率SER

本文介绍了ASR(语音识别)中的关键指标——字错率(WER)和句错率(SER),并详细阐述了如何使用HTK工具中的HResults计算这些指标。通过实例解析了不同错误类型(替换、删除、插入)对WER的影响,并提供了将文本转换为MLF文件的脚本,以便于进行ASR测试和分析。
摘要由CSDN通过智能技术生成

HResults计算字错率(WER)、句错率(SER)

前言

好久没发文,看到仍有这么多关注的小伙伴,觉得不发篇文对不住。确实好久没有输出经验总结相关的文档,抽了个时间,整理了下笔记,发一篇关于ASR常用测试指标。比如字错率、句错率指标,以及计算工具HResults的使用篇,后续慢慢找时间输出一些人工智能领域,小白可理解可用的基础知识,或者整理一些其他笔记发一发。

转载说明

本文为原创文章,如需转载,请在开篇显著位置注明作者Findyou和出处

一、基础概念

1.1、语音识别(ASR)

语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR),

狭隘一点白话说:将语音转换为文字的技术。

69b5c0142fe6a1c5dee9660c717b148c.png

Findyou:一般使用ASR缩写。

1.2、句错率(SER)

句错误率:Sentence Error Rate

解释:句子识别错误的的个数,除以总的句子个数即为SER

计算公式:(所有公式省了 * 100%)

SER = 错误句数 / 总句数

1.3、句正确率(S.Corr)

句正确率:Sentence Correct

计算公式:

S.Corr =  1 - SER = 正确句数 / 总句数

1.4、字错率(WER/CER)

WER,Word error rate,词错率,但一般称为字错率,是语音识别领域的关键性评估指标,WER越低表示效果越好!

CER,Character Error Rate,字符错误率,中文一般用CER来表示字错率,原因请见1.4.3。

»1.4.1 、计算原理

字符串编辑距离(Levenshtein距离)算法

»1.4.2、计算公式(重要)

WER = (S + D + I ) / N =(S + D + I ) /(S + D + H )

01c2578bf2888b116a024ab159dadda9.png

(公式图片和文字一样,仅方便拷贝)

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举个栗子:

英文: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

983f1095710b7167670046980c534bde.png

(图片和文字一样,方便拷贝,W.Acc是Findyou自己用的简写)

特殊情况:当 I=0 时, W.Acc = W.Corr

问题:为什么W.Acc会是负数?

同WER,因为有插入字。换个说法,因为字准确率&#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值