ASR结果评测软件:NIST sclite的编译、安装与用法介绍
NIST sclite介绍
sclite介绍网站:
http://www1.icsi.berkeley.edu/Speech/docs/sctk-1.2/sclite.htm#sclite_name_0
下载
注意已经安装过Kaldi的,可以直接在tools/sctk/bin目录找到该工具,可以跳过下载安装的过程,直接看使用方法。
下载网站:
https://www.nist.gov/itl/iad/mig/tools
Speech Recognition Scoring Toolkit (SCTK); includes the SCLITE, ASCLITE, tranfilt, hubscr, SLATreport and utf_filt scoring tools).
源码已放到github:https://github.com/usnistgov/SCTK
下载源码:git clone https://github.com/usnistgov/SCTK
编译安装
cd 到sctk目录打开INSTALL文件,按照其内容编译安装,大概内容:
make config
make all
make check
make install
make doc
默认所有生成的可执行文件都放在sctk的bin目录里面。这个安装路径可以在config阶段的prefix进行修改指定到其他的目录。如果需要shell终端识别,可以把bin目录的路径加到linux的PATH环境变量里面(去Linux PATH 设置页面)
用法
sclite -r reffile [ fmt ] -h hypfile [ fmt [ title ] ] OPTIONS
详细参数介绍请参考(去sclite options页面)
用例:
假设当前目录是sctk/bin:
对比内容说明:今天是晴天(test.wav),“今天是晴天”是音频test.wav音频对应的文本。括号里面的test.wav是说话人id。
ref.txt的内容为:
今天是晴天(test.wav)
周末去干什么(test1.wav)
hyp.txt的内容为:
今天四晴天(test.wav)
周末去干什么(test1.wav)
GB2312字符编码:
./sclite -i wsj -r ref.txt -h hyp.txt -e gb -o all -O tmp/ -c NOASCII
-e用来指定字符编码,gb代表汉字编码 注意在处理中文时格外注意两个文件的编码格式必须是gb2312,两者一定要相同
也可以直接用utf-8的格式,参数如下:
./sclite -i wsj -r ref.txt -h hyp.txt -e utf-8 -o all -O tmp/ -c NOASCII
需要特别注意-c选项 如果需要字级别的统计汉字需要加上 -c NOASCII
执行结果:
sclite: 2.10 TK Version 1.3
Begin alignment of Ref File: ‘ref.txt’ and Hyp File: ‘hyp.txt’
Alignment# 2 for speaker tes
Writing scoring report to 'tmp//hyp.txt.sys'
Writing raw scoring report to 'tmp//hyp.txt.raw'
Writing string alignments to 'tmp//hyp.txt.pra'
Successful Completion
用vi打开tmp/hyp.txt.sys:
hyp.txt.raw内容以字为单位进行统计:
hyp.txt.pra里面是详细的错误内容:
每列结果数据描述:SPKR是说话人,就是ref文件里面括号中的内容。#Snt是句子个数,#Wrd是单词个数。Corr是词正确率,Sub是替换错误率,Del是删除错误率, Ins是插入错误率, Err是整体错误率,S.Err总体的句子错误率
Sum/Avg是整体的错误统计。要查看整体错误率请查看此行。
为了方便使用,可以使用如下脚本:
if [ $# -ne 2 ];
then
echo "./startSclite.sh ref.txt hyp.txt"
exit
fi
if [ ! -d "tmp/" ];then
mkdir tmp
else
echo "文件夹tmp/已经存在"
fi
./sclite -i wsj -r $1 -h $2 -e utf-8 -o all -O tmp/
输出结果格式
sclite 支持多种输出方式详细内容请参考:
http://www1.icsi.berkeley.edu/Speech/docs/sctk-1.2/outputs.htm#outputs_name_0