Ir al contenido principal

Marcelino - Paso 7 - Ajustando los modelos de silencio

Paso 7 - Ajustando los modelos de silencio

  Fondo

    En el último paso, creó modelos HMM que no incluían un modelo de silencio "sp" (pausa breve) - que se refiere a los tipos de pausas cortas que se producen entre palabras en el habla normal. Sin embargo, creó un modelo de silencio "sil" - los modelos silenciosos son normalmente de mayor duración y se refieren a las pausas que se producen al final de una oración.

    El libro HTK dice que el modelo sp necesita tener su "estado emisor atado al estado central del modelo de silencio". Lo que esto significa es que usted necesita crear un nuevo modelo sp en su hmmdefs, que usará el estado central de sil, y luego ambos necesitan ser "atados" juntos (para un poco de fondo sobre HMMs y estados).

    Esto se puede hacer copiando el estado central del modelo sil en su archivo hmmdefs y añadiéndolo al modelo sp, y luego ejecutando una herramienta especial llamada HHED para "atar" el modelo sp al modelo sil para que compartan el mismo centro del estado. El libro de HTK proporciona algunos antecedentes sobre lo que esto significa, pero se necesita una comprensión de los conceptos básicos de los Modelos Ocultos de Markov antes de abordar las explicaciones del libro HTK (el tutorial de la Universidad de Leeds HMM proporciona un muy buen tutorial sobre Modelos Ocultos de Markov).

    Nota: no es necesario que entiendas HMM para completar este tutorial.

  TUTORIAL

    Copie primero el contenido de la carpeta hmm3 en hmm4. Luego, usando un editor, cree un nuevo modelo "sp" en hmm4/hmmdefs como sigue:

      Copiar y pegar el modelo "sil" y renombrar el nuevo "sp" (no elimines tu antiguo modelo "sil", lo necesitarás - solo haz una copia de él)
      Eliminar el estado 2 y 4 del nuevo modelo "sp" (es decir, mantener el "estado central" del antiguo modelo "sil" en el nuevo modelo "sp"
      Cambiar <NUMSTATES> a 3
      Cambiar <STATE> a 2
      Cambiar <TRANSP> a 3
      Cambiar matriz en <TRANSP> a 3 por 3 matriz
      Cambie los números en la matriz como sigue:

        0.0 1.0 0.0
        0.0 0.9 0.1
        0.0 0.0 0.0

      Su modelo de sp debería ser algo como esto:

        ~h "sp"
        <BEGINHMM>
        <NUMSTATES> 3
        <STATE> 2
        <MEAN> 25
        -7.118713e+00 -3.081000e-01 -1.749457e+00 -1.031217e+00 -1.165559e+00 3.531405e+00 3.928634e+00 1.414117e+00 4.853880e+00 3.436303e+00 8.821907e-01 3.578307e+00 -7.581001e-02 -5.415154e-02 2.016401e-01 -8.739231e-02 4.121462e-02 8.872373e-02 -7.476506e-02 9.644009e-03 1.259353e-01 -1.379244e-01 -3.326035e-02 1.257626e-01 1.159135e-01
        <VARIANCE> 25
          8.348813e+00 8.595272e+00 1.137517e+01 1.209942e+01 8.636264e+00 1.499810e+01 9.930653e+00 1.164548e+01 1.039156e+01 8.853771e+00 8.320317e+00 9.811087e+00 9.367380e-01 7.999393e-01 1.583295e+00 9.593871e-01 7.300864e-01 1.651675e+00 1.296489e+00 9.965155e-01 1.218978e+00 1.052432e+00 9.433080e-01 1.521487e+00 5.511271e-01
        <GCONST> 7.427084e+01
        <TRANSP> 3
         0.0 1.0 0.0
         0.0 0.9 0.1
         0.0 0.0 0.0
        <ENDHMM>

      Sus archivos deben tener este aspecto:

        hmmdefs
        macros

      A continuación, ejecute el editor de HMM denominado HHEd para "atar" el estado sp al estado central de sil, lo que significa que uno o más HMM comparten el mismo conjunto de parámetros. Para ello, debe crear la siguiente secuencia de comandos de HHEd, denominada sil.hed, en su carpeta voxforge/tutorial:

        AT 2 4 0.2 {sil.transP}
        AT 4 2 0.2 {sil.transP}
        AT 1 3 0.3 {sp.transP}
        TI silst {sil.state[3],sp.state[2]}

      La última línea es el comando "tie". A continuación ejecute HHEd como sigue, pero utilizando el archivo monophones1 que contiene el modelo sp:

        ../soft/htk/HTKTools/HHEd -A -D -T 1 -H hmm4/macros -H hmm4/hmmdefs -M hmm5 sil.hed monophones1

      Los archivos creados por este comando son:

        - hmmdefs
        - macros

      Lo que sigue es ejecutar HERest 2 veces más, esta vez con el archivo monophones1:

        ../soft/htk/HTKTools/HERest -A -D -T 1 -C config  -I fonemas1.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm5/macros -H  hmm5/hmmdefs -M hmm6 monophones1

      Los archivos creados por este comando son:

        - hmmdefs
        - macros

      Y ejecutamos otra vez:

        ../soft/htk/HTKTools/HERest -A -D -T 1 -C config  -I fonemas1.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm6/macros -H hmm6/hmmdefs -M hmm7 monophones1

      Los archivos creados por este comando son:

        - hmmdefs
        - macros