2013-02-26 32 views
0

问候研究员,如何直接读取HTK中的后部probs?

我拼命试图找到哪些文件,我将在HTK 3.4修改,这样我就可以直接读取音素/单音后probs的序列话语,并直接将其转发给解码器,给定了声学和语言模型。

更详细的,我正在关注包括第9步的HTK教程,我只是想在单声道上工作。我的(自己的,特定的)特征向量是具有每个音素的3个状态的概率的向量序列,这类似于

(p(aa_begin),p(aa_mid),p(aa_end),...,p (z_begin),p(z_mid),p(z_end))

对于话语中的每个帧,其中条目如上所述,已经是后验概率。

任何想法我需要修改哪些文件来读取我(特定)文件(自己的二进制格式)的文件以及如何直接将它们转发给解码器?最好让我可以使用HVite & HEResult获得结果?

非常感谢帮助, G.

+0

修改HTK以使用后代而不是GMM可能性将会变得复杂。您可以在HVite.c的ProcessFile函数中或HRec.c中的ProcessObservation函数中执行此操作。这听起来像你想要的与Hybrid-HMM系统非常相似;使用谷歌搜索可能会有所帮助。另一种选择是使用后人作为特征向量 - 这是在串联系统中完成的。这可能不是你想要的,但可能会更简单。 – user1955591 2013-02-28 12:59:53

+0

问候并感谢您的回复。 posterios的向量我基本上是当前分类框架的特征向量,所以你的观察比较精确。在解码时,HVite似乎是一个很好的选择。我最害怕的是,我也必须修改FST ... – gilgamash 2013-03-01 08:54:46

+0

嗨,你会从哪里开始将后辈视为一个功能?谢谢,G. – gilgamash 2013-03-01 09:59:31

回答

0

我觉得HVite选项-f将呈现结果你希望的方式。 这里是我发送命令:

./HVite -T 1 -f -b SIL -C配置-a -H模型/ hmm7 /宏-H模型/ hmm7/hmmdefs -i word1.mlf - m -t 250.0 -y lab -I word.mlf -S train.scp -L label/dict.list phone1.list

这里是文件的开头word1.mlf(s2,s3,s4开始每个音素的中心和末尾)

"mfc/dr1_fcjf0_sa1.lab" 

0 100000 s2 -48.580540 sil -1204.165527 sil 

100000 400000 s3 -158.456665 

400000 1900000 s4 -997.128357 

1900000 2000000 s2 -75.405327 SH -530.110291 SHE 

2000000 2500000 s3 -306.394897 

2500000 2700000 s4 -148.310074 

2700000 3000000 s2 -252.779510 IY -796.414673 

3000000 3300000 s3 -214.586655 

3300000 3700000 s4 -329.048492 
+0

嗨,谢谢你的回复。同时,我很早就完成了项目,为HTK增加了很多新的代码。糟糕的工作,因为工具包写得像1982年,但我完成了工作。无论如何,最好的问候! – gilgamash 2015-09-25 09:42:32