HTK-HResults计算ASR字错、句错

工作中有测试AI智能助手,当时没有工具,脚本来不及写,人工手动进行测试,从头到尾人工手动测试比对,字错和句错也都是直接在excel中计算,感触就是,确实很累人!
接触HTK,有文章已经写过下载以及安装,详情请看HTK下载安装以及示例
先来介绍一下基本概念
一、语音识别(ASR)
语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR)
狭隘一点白话说:将语音转换为文字的技术。

二、句错率(SER)
句错误率:Sentence Error Rate
解释:句子识别错误的的个数,除以总的句子个数即为SER
计算公式:

SER=错误句数/总句数

三、字错率(WER/CER)
WER,Word error rate,词错率,但一般称为字错率,是语音识别领域的关键性评估指标,WER越低表示效果越好!
CER,Character Error Rate,字符错误率,中文一般用CER来表示字错率。
计算方式:

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

S--被替换的字数
D--被删除的字数
I--被插入的字数
H--识别正确的字数
N=S+D+H

四、字成功率(W.Corr)和字正确率(W.Acc)
字正确率,Word Correct,一般国内宣传用的多,识别率(识别正确率)达到多少多少。
计算公式:

W.Corr=(N-S-D)/N=C-N

W.Acc=1-WER=(N-S-D-I)/N

五、问题
1、WER会大于1(100%),按照上述计算方式,I的字数较多情况下会出现、
之前手工测试的时候,N是按照实际句子总字符数算的,不知道合理不合理,沟通的时候就这么定的,哈哈哈~
2、字错率的概念,WER和CER,字错和字符错,这里是按照:一个汉字=一个word计算,天=day
之前手工测试的时候,一个英文字母等同于一个汉字,会议沟通确认过的,怎么要求怎么来呗~
3、字正确率,只计算了识别正确的字,没有管多出来的字
4、同理,因为有插入的字,所以计算结果会有负数

六、HTK之HResults的使用
开头有讲HTK的下载安装,但是没有模型训练,因为还没有接触,暂时先不了解,后续有机会在看
下面是使用方式,本地用一个小demo已经测试过了,可以直接使用,下面是使用步骤:

温馨提示:在使用shell终端命令行进行模拟比对ASR结果时,一定要确保你已经正确安装并配置了 HTK 工具链,这样 HResults 才能正常工作。

1、整理已有的txt文档,需要输入的指令,如下:
今天天气怎么样
明天天气怎么样

保存为txt文件,命名src.txt

2、查看设备识别的ASR结果,整理到txt文档,如下:

惊天天气
明天天怎么啊

保存为txt文件,命名为testResult.txt

3、将上述两个txt文件转换为mlf文件,可以百度下,或写个python脚本
脚本可以从 语音识别ASR_Findexyou 写的脚本获取(自己写的链接在下面)

4、最终终端命令比对
HResults -t -I src.mlf NUL testResult.mlf

-t: 使输出更详细,包括每个测试项的错误统计。
-I src.mlf: 指定输入的 MLF (Master Label File) 文件路径,这是包含参考转录音本的文件。
NUL: 表示不使用语言模型或语法文件,在 Windows 上相当于 Unix/Linux 系统上/dev/null。
testResult.mlf: 包含 ASR 系统生成的识别结果的 MLF 文件。

输入命令需注意: 1.上述转换的mlf文件需要放置在htk根目录下 2.终端可以先行展示中文字符:chcp 65001,然后输入命令


解释如下:

SENT: %Correct=0.00 [H=0, S=2, N=2]

名词解释
%Correct: 句子正确率。
0.00: 表示句子完全不匹配。
[H=0, S=2, N=2]
H: 正确的句子数-0。
S: 插入错误的句子数-2。
N: 总句子数-2。

WORD: %Corr=66.67, Acc=60.00 [H=10, D=4, S=1, I=1, N=15]

名词解释
%Corr: 单词正确率。
66.67: 表示所有单词的识别率为 66.67%。
Acc: 准确率。
60.00: 表示整体准确率为 60.00%。
[H=10, D=4, S=1, I=1, N=15]
H: 正确的单词数-10。
D: 删除错误的单词数-4。
S: 替换错误的单词数-1。
I: 插入错误的单词数-1。
N: 总单词数-15。

最后,txt文件转换为mlf文件的脚本已经编辑完成,链接:TXT文件转MLF文件_python脚本

posted @   CG_Hunter  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示