我正在使用HTK
工具包进行单词识别任务,并且经典培训和测试数据不匹配。训练数据仅由“干净”(通过麦克风记录)数据组成。数据被转换为MFCC_E_D_A
参数,然后由HMM(电话级)建模。我的测试数据已经通过固定电话和移动电话频道录制(邀请失真等)。将MFCC_E_D_A
参数与HVite
一起使用会导致输出错误。我希望cepstral mean normalization
使用MFCC_E_D_A_Z
参数,但由于HMM未使用此数据建模,因此它没有多大用处。我的问题如下:
MFCC_E_D_A_Z
转换为MFCC_E_D_A
?这样我就按照这种方式:input -> MFCC_E_D_A_Z -> MFCC_E_D_A -> HMM log likelihood computation
。 MFCC_E_D_A
参数的现有HMM转换为MFCC_E_D_A_Z
? 如果有办法从上面做(1),那么HCopy
的配置文件是什么样的?我编写了以下HCopy
配置文件进行转换:
SOURCEFORMAT = MFCC_E_D_A_Z
TARGETKIND = MFCC_E_D_A
TARGETRATE = 100000.0
SAVECOMPRESSED = T
SAVEWITHCRC = T
WINDOWSIZE = 250000.0
USEHAMMING = T
PREEMCOEF = 0.97
NUMCHANS = 26
CEPLIFTER = 22
NUMCEPS = 12
ENORMALISE = T
这不起作用。我怎样才能改善这个?
答案 0 :(得分:2)
您需要了解电话录音还有其他频率范围,因为它们会被截断在频道中。通常存在200至3500Hz的频率范围。宽带声学模型的训练范围从100到6800.它不能可靠地解码电话语音,因为电话语音错过了从3500到6800的所需频率。它与功能类型或均值归一化或失真无关,你根本做不到该
您需要在转换为8khz的音频上训练您的原始模型,或者至少修改滤波器组参数以匹配电话的频率范围。