使用用于手写识别的HRESULT HTK工具生成混淆矩阵ICFHR’;s的例子
我正在研究HTK工具如何与手写识别一起工作。我运行了“西班牙语数字”语料库的示例,并接收结果hmm(存储在文件夹hmm中的文件,并在使用用于手写识别的HRESULT HTK工具生成混淆矩阵ICFHR’;s的例子,htk,Htk,我正在研究HTK工具如何与手写识别一起工作。我运行了“西班牙语数字”语料库的示例,并接收结果hmm(存储在文件夹hmm中的文件,并在HMMsList中列出),以及res32.mlf,其中识别结果通过HVite接收。我还有主标签文件SamplesRef.mlf。 现在我想查看识别结果统计,即研究HResults工具 当我运行HResultsas时 HResults -I SamplesRef.mlf HMMsList res32.mlf 我明白了 但是,如果我添加选项-p以创建混淆矩阵,我会看
HMMsList
中列出),以及res32.mlf
,其中识别结果通过HVite
接收。我还有主标签文件SamplesRef.mlf。
现在我想查看识别结果统计,即研究HResults
工具
当我运行HResults
as时
HResults -I SamplesRef.mlf HMMsList res32.mlf
我明白了
但是,如果我添加选项-p
以创建混淆矩阵,我会看到以下错误消息:
~/icfhr$ HResults -p -I SamplesRef.mlf HMMsList res32.mlf
ERROR [+3331] Index: Label millones not in list[0 of 19]
FATAL ERROR - Terminating program HResults
我理解该消息意味着没有名为“millones”的HMM,我发现在我的res32.mlf
示例中如下所示:
"’*’/210341.rec"
mil
seiscientos
cincuenta
y
siete
millones
.
"*/210341.lab"
m
i
l
@
q
u
i
n
i
e
n
t
o
s
@
c
如果我使用文本编辑器将res32.mlf
更改为res33.mlf
,内容如下:
"’*’/210341.rec"
m
i
l
s
e
i
s
c
i
。。。等等
并使用samples.mlf
(而不是SamplesRef.mlf
),其内部如下所示:
"’*’/210341.rec"
mil
seiscientos
cincuenta
y
siete
millones
.
"*/210341.lab"
m
i
l
@
q
u
i
n
i
e
n
t
o
s
@
c
。。。等等
我得到了预期的结果:
~/icfhr$ HResults -p -I samples.mlf HMMsList res33.mlf
====================== HTK Results Analysis =======================
Date: Tue Mar 31 15:35:42 2015
Ref : samples.mlf
Rec : res33.mlf
------------------------ Overall Results --------------------------
SENT: %Correct=0.00 [H=0, S=2, N=2]
WORD: %Corr=79.63, Acc=77.78 [H=43, D=5, S=6, I=1, N=54]
------------------------ Confusion Matrix -------------------------
a c d e i l m n o s t u v y Del [ %c / %e]
@ 0 0 0 0 0 1 1 0 0 0 0 0 0 0 5 [ 0.0/3.7]
a 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
n 0 1 0 0 0 0 0 6 0 0 0 0 0 0 0 [85.7/1.9]
o 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 [ 0.0/1.9]
s 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0
u 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 [50.0/1.9]
v 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
y 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 [50.0/1.9]
Ins 0 0 0 0 0 0 0 0 0 1 0 0 0 0
===================================================================
那么,主要问题是:
使mlf文件适合制作混淆矩阵的最简单方法是什么(没有文本编辑器)
(我想我错过了一些HTK工具的选项……但是哪个工具和哪个选项?)
如果您有任何有用的想法,我们将不胜感激。为了使用-p选项,您需要提供非HMM类的标签列表(即,如果您试图识别单词Yes、No、Never),那么您的“HMMsList”文件应写为:
Yes
No
Never
不管实际构成单词的HMM是什么。
“HMMsList”文件应为“LabelList”