从一种MFCC转换为另一种 - HTK

时间:2011-07-29 10:30:03

标签: signal-processing speech-recognition htk mfcc

我正在使用HTK工具包进行单词识别任务,并且经典培训和测试数据不匹配。训练数据仅由“干净”(通过麦克风记录)数据组成。数据被转换为MFCC_E_D_A参数,然后由HMM(电话级)建模。我的测试数据已经通过固定电话和移动电话频道录制(邀请失真等)。将MFCC_E_D_A参数与HVite一起使用会导致输出错误。我希望cepstral mean normalization使用MFCC_E_D_A_Z参数,但由于HMM未使用此数据建模,因此它没有多大用处。我的问题如下:

  1. 有什么方法可以 MFCC_E_D_A_Z转换为MFCC_E_D_A?这样我就按照这种方式:input -> MFCC_E_D_A_Z -> MFCC_E_D_A -> HMM log likelihood computation
  2. 有没有办法将模拟MFCC_E_D_A参数的现有HMM转换为MFCC_E_D_A_Z
  3. 如果有办法从上面做(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

    这不起作用。我怎样才能改善这个?

1 个答案:

答案 0 :(得分:2)

您需要了解电话录音还有其他频率范围,因为它们会被截断在频道中。通常存在200至3500Hz的频率范围。宽带声学模型的训练范围从100到6800.它不能可靠地解码电话语音,因为电话语音错过了从3500到6800的所需频率。它与功能类型或均值归一化或失真无关,你根本做不到该

您需要在转换为8khz的音频上训练您的原始模型,或者至少修改滤波器组参数以匹配电话的频率范围。