HTK - Что представляют собой MFCC модели HMM и входной WAV-файл?

При создании MFCC следуя руководству Voxforge для системы преобразования речи в текст с использованием HTK (набор инструментов скрытой марковской модели) нам необходимо определить прототип модели для наших телефонов. Я пытаюсь обдумать этот файл.

~o <VecSize> 25 <MFCC_0_D_N_Z>
~h "proto"
<BeginHMM>
  <NumStates> 5
  <State> 2
    <Mean> 25
      0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  
    <Variance> 25
      1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
 <State> 3
    <Mean> 25
      0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  
    <Variance> 25
      1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
 <State> 4
    <Mean> 25
      0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    <Variance> 25
      1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
 <TransP> 5
  0.0 1.0 0.0 0.0 0.0
  0.0 0.6 0.4 0.0 0.0
  0.0 0.0 0.6 0.4 0.0
  0.0 0.0 0.0 0.7 0.3
  0.0 0.0 0.0 0.0 0.0
<EndHMM>

В этом случае мы используем вектор признаков длиной 25 для представления каждого состояния HMM. Однако я не совсем понимаю, почему у нас есть 25 «Средних» и «Отклонений» для каждого состояния. Представляют ли они среднее значение и дисперсию каждого вектора признаков?

Кроме того, почему у нас есть 3 состояния, когда 5? Являются ли <State>1 и <State>5 просто точками входа и выхода, поэтому они не требуют Mean и Variance?

Кроме того, взяв образцы wav-файлов, я распечатал MFCC, которые отобразились, как показано ниже:

  0:     -15.769  -2.168   8.605   4.979   5.283   1.012   9.631  -0.619   3.622  10.977
             5.733   3.260  44.447  -0.153  -0.281  -0.810  -1.176   0.363  -0.658   0.676
            -1.569   1.363  -1.221   0.815  -0.759   1.427
    1:     -18.345  -3.220   7.177   0.293   7.232   3.111  17.942  -6.957   8.197   6.579
             9.102  -0.569  49.537   0.378  -0.337  -1.277  -1.709   0.623  -0.450   0.162
             0.315   2.088  -1.175   0.624   0.762   1.018
    2:     -15.244  -3.046   5.269   1.441   6.121  -3.326   8.854  -5.297   8.151   7.072
             8.122   1.379  49.036   0.543  -0.119  -1.162  -1.263   1.261  -0.388  -0.234
             0.816   1.195  -1.237  -0.288   1.600   0.244
    3:     -14.143  -3.413   3.887  -1.796   7.981   0.930  10.826   3.294  11.797   7.055
             7.661   8.011  47.243   0.613  -0.020  -0.568  -0.364   1.034  -0.165  -0.812
             2.525   0.351  -1.670  -1.086   1.493  -0.716
    4:     -15.156  -2.669   4.440  -0.293  11.213   0.162  12.020  -1.667   7.794   4.553
             5.013   6.968  46.813  -0.050  -0.092  -0.050  -0.329   0.325   0.585   0.751
             1.253  -0.008  -1.852  -0.845   0.058  -0.430
    5:     -15.323  -3.510   4.750  -0.660   9.856   0.545  12.301   3.855  10.132  -0.511
             5.224   4.104  47.068   0.073   0.151   0.163  -0.180  -0.186  -0.242  -0.335
            -0.577  -0.479  -0.745  -0.167  -1.565   0.013

Почему для каждого «окна» у нас 26 коэффициентов вместо 25? Что они все представляют? Я верю:

  • 1-12 - кепстральные коэффициенты
  • 14-25 — дельта-коэффициенты
  • 26 также является дельта-коэффициентом для 13-го числа.

Но я понятия не имею, что представляет собой 13-е число в каждом из этих образцов. Они должны иметь формат <MFCC_0_D_N_Z>, как определено в файле прототипа, показанном в начале, что не очень объяснено в Руководство по HTK. Но из страницы 80 Руководства я могу узнать, что:

  • MFCC_0 : Коэффициенты MFCC
  • _D : Дельта-коэффициенты
  • _N : абсолютное подавление энергии
  • _Z : имеет нулевой средний статический коэффициент.

Любые объяснения будут оценены.


person Ajay H    schedule 23.05.2017    source источник


Ответы (1)


Кроме того, почему у нас есть 3 состояния, когда 5? Являются ли 1 и 5 просто точками входа и выхода, поэтому они не требуют среднего значения и дисперсии?

Да, граничные состояния являются фиктивными.

Почему для каждого «окна» у нас 26 коэффициентов вместо 25? Что они все представляют? Я верю:

Тип MFCC — MFCC_0_D, как в Шаг 5 урока, так что это 13 белых грибов и 13 дельт. Вы также можете использовать HList -o -h для печати точного макета:

---------------------------------- Source: ar-03.mfc -----------------------------------
  Sample Bytes:  52       Sample Kind:   MFCC_D_C_K_0
  Num Comps:     26       Sample Period: 10000.0 us
  Num Samples:   648      File Format:   HTK
-------------------------------- Observation Structure ---------------------------------
x:      MFCC-1  MFCC-2  MFCC-3  MFCC-4  MFCC-5  MFCC-6  MFCC-7  MFCC-8  MFCC-9 MFCC-10
       MFCC-11 MFCC-12      C0   Del-1   Del-2   Del-3   Del-4   Del-5   Del-6   Del-7
         Del-8   Del-9  Del-10  Del-11  Del-12   DelC0

Тип функций, хранящихся в файле mfc, может отличаться от типа функций, используемых при обучении HMM, функции HMM вычисляются из mfc на лету в соответствии со спецификацией прототипа, поэтому на диске у вас есть 26 MFCC_0_D и при вычислении вы конвертируете его до 25 коэффициентов MFCC_0_D_N_Z, отбросив энергию и нормализовав среднее значение.

Я не совсем понимаю, почему у нас есть 25 «Средних» и «Отклонений» для каждого состояния. Представляют ли они среднее значение и дисперсию каждого вектора признаков?

Средние значения и дисперсии являются гауссовыми параметрами распределения излучения HMM для каждого состояния HMM, они не являются средним значением вектора признаков. Проверьте, что такое ХММ.

person Nikolay Shmyrev    schedule 24.05.2017
comment
Ох, ну ладно. Из 26 коэффициентов 13-й равен C0. Что представляет собой C0? И почему это число намного выше, чем у MFCC? - person Ajay H; 25.05.2017
comment
c0 — нулевой кепстровый коэффициент. Ожидается, что он будет выше, кепстр обычно уменьшается - person Nikolay Shmyrev; 26.05.2017