Я изучаю, как HTK Tools работает с распознаванием рукописного ввода. Следуя РУКОВОДСТВУ ICFHR–2010, я выполняю примеры для "испанский- Numbers" и получили результирующие 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
Я понимаю, что это сообщение означает, что нет HMM с именем «millones», и я обнаружил, что в моих 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… но какой инструмент и какую опцию?)
Любые полезные идеи будут высоко оценены.