0

我正尝试将基于单音素的识别器改编为特定发言者。我正在使用HTKBook 3.4.1 section 3.6.2中给出的配方。我被陷在HHEd一部分,我调用像SP:使用HTK修改扬声器

HHEd -A -D -T 1 -H hmm15/hmmdefs -H hmm15/macros -M classes regtree.hed monophones1eng

我最终的错误如下:
ERROR [+999] Components missing from Base Class list (2413 3375)
ERROR [+999] BaseClass check failed

文件夹classes包含有文件global以下内容:
~b ‘‘global’’
<MMFIDMASK> *
<PARAMETERS> MIXBASE
<NUMCLASSES> 1
<CLASS> 1 {*.state[2-4].mix[1-25]}

hmmdefs文件在hmm15有一些混合成分(我每个手机每个状态使用25种混合成分)缺失。我试图通过给出具有随机均值和方差值但零权重的混合分量来“填补空白”。这也没有效果。

hmms是具有5个状态(3个发光)的左右hmms,每个状态由25个组分混合物建模。每个组件依次由带有EDA组件的MFCC建模。总共有46部手机。

我的问题是:
1.我正在调用HHEd的方式是否正确?可以以上述方式调用单声道吗?
2.我知道基类列表(rtree.base必须包含每一个混合成分,但我在哪里寻找这些失踪的混合物组分

注:请让我知道的情况下,需要更多的信息

编辑1:文件regtree.hed包含以下内容:

RN "models" 
LS "stats_engOnly_3_4" 
RC 32 "rtree" 

感谢,
斯利拉姆

回答

1

他们的方式你调用HHEd看起来很好。组件丢失,因为它们已经失效。处理不存在的组件请阅读HTKBook-3.4.1第8.4节第137页。

问题: - regtree.hed包含什么? - 您使用多少数据(小时)? 25种混合物可能过量。

您可能想要使用更加渐进的混合物增加 - MU +1或MU +2并限制混合物的数量(猜测:3-8取决于训练数据量)。

+0

感谢您的回复。我已经在问题中添加了regtree.hed(请参阅上面的编辑1)。另外,hmms已经被训练的数据是相当可观的。我使用了整个WSJ英国英语数据库(20k句子),约300个美国英语句子和500-600个印度英语句子(上述所有内容都指的是发出不同发音的口音)进行训练。我一直在从WSJ数据库开始训练HMM。我得到的HMM已经有25种混合物。有什么方法可以减少它们吗? – Sriram