一。准备:
linux服务器,src2mlf.py rec2mlf.py HResults文件,1份源文件和1份需要对比的文件。文件放置于本人云盘
二。使用方法:
1. 对比工具 HResults 需要运行在linux环境下,且仅支持mlf文件的对比
2. 两种python脚本工具 src2mlf.py 和 result2mlf.py , 将txt文件转换成 mlf文件
src文件为原始测试集,result文件为识别结果
txt文件格式:(每行 :序号+空格+字串)
1 字串1
2 字串2
3 ...
3.python脚本需要安装python3版本
4.运行方法:
生成原始测试集的mlf文件:python3 src2mlf.py xx.txt > xx.mlf
生成识别结果的mlf文件: python3 result2mlf.py xx.txt > xx.mlf
5. 当准备好需要对比的mlf文件后,以 src.mlf 和 result.mlf 为例,
运行HResults,运行结果打印在屏幕上
./HResults -t -I src.mlf /dev/null result.mlf
运行HResults,运行结果保存至 1.txt 文件中
./HResults -t -I src.mlf /dev/null result.mlf > 1.txt
三。转换脚本内容
#-*- coding:utf-8 -*-
importos,sysdefto_mlf(xi):
dx={"0":"零","1":"一","2":"二","3":"三","4":"四","5":"五","6":"六","7":"七","8":"八","9":"九"};
d=[]
eng=[]
tx=[",",".","!","(",")",",","。","!",';','、',':','?','“','”'];for x inxi:
u=x.encode("utf-8")#print ("2", u)
if u intx:continue;if len(u)==1:if x indx:
u=dx[x].encode("utf-8")
eng.append(str(u, encoding='utf-8'))else:if len(eng)>0:
d.append("".join(eng).upper())
eng=[]
d.append(str(u, encoding='utf-8'))if len(eng)>0:
d.append("".join(eng).upper())returnddeffn_to_lab(s):
x=s.split()for i inx:
d=to_mlf(i.strip())if len(d)>0:print("\n".join(d))print('.')
fn=sys.argv[1]print('#!MLF!#')for l inopen(fn):
l=l.strip()
x=l.split()
k=x[0].strip()
v=" ".join(x[1:])
t=".".join(k)print('"*No%s.lab"' %t)
fn_to_lab(v)
四。测试结果
====================== HTK Results Analysis =======================
Date: Mon Aug 26 16:29:42 2019
Ref : src_1.mlf
Rec : hori.mlf
------------------------ Overall Results --------------------------
SENT: %Correct=77.00 [H=385, S=115, N=500]
WORD: %Corr=97.26, Acc=97.01 [H=8034, D=54, S=172, I=21, N=8260]
===================================================================