Я работаю с набором инструментов 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
. - Есть ли способ преобразовать существующие HMM, моделирующие
MFCC_E_D_A
параметры, в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
Это не работает. Как я могу улучшить это?