1

我正在研究 HTK Tools 如何与手写识别一起工作。在ICFHR–2010 教程之后,我运行了“西班牙数字”语料库的示例,并收到了生成的 HMM(存储在文件夹 hmm 中并列在 中的文件HMMsList),并res32.mlf收到了识别结果HVite。我也有主标签文件 SamplesRef.mlf。现在我想看识别结果统计,即学习HResults工具。

当我运行HResults

 HResults -I SamplesRef.mlf HMMsList res32.mlf

我懂了

====================== HTK Results Analysis =======================
  Date: Tue Mar 31 15:21:11 2015
  Ref : SamplesRef.mlf
  Rec : res32.mlf
------------------------ Overall Results --------------------------
 SENT: %Correct=0.00 [H=0, S=2, N=2]
 WORD: %Corr=77.78, Acc=77.78 [H=7, D=0, S=2, I=0, N=9]
===================================================================

但是,如果我添加选项-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
.

如果我res32.mlf使用文本编辑器更改为res33.mlf内容如下:

"’*’/210341.rec"
m
i
l
s
e
i
s
c
i

... 等等。

并使用samples.mlf(而不是SamplesRef.mlf)内部看起来像:

"*/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 工具的选项……但是哪个工具和哪个选项?)

任何有用的想法将不胜感激。

4

1 回答 1

0

为了使用 -p 选项,您需要提供类的标签列表而不是您的 HMM,(即,如果您尝试识别 Yes、No、Never 等词)那么您的“HMMsList”文件应写为:

Yes
No
Never

不管实际构成单词的 HMM 是什么。你的“HMMsList”文件应该是“LabelsList”

于 2016-08-20T17:45:26.630 回答