Overview Downloads  Tutorials
HTK Tutorials
Tutorials

TI Digits Short: Generating Triphone Lists and Initial Training

We have previously created lists of monophones for our earlier steps but we are now ready to begin training triphones. A triphone model is in the form

previous_phone - current_phone + next_phone

These models can be further classified as word internal triphones (abreviated as wint) or cross word triphones (abreviated as xword). Wint triphones cannot cross word boundaries (i.e. a wint triphone can only consist of phones from one word) while xword triphones can (i.e. an xword triphone can contain phones from multiple words).

For the TI Digits task, due to the limited lexicon (i.e. "Oh", "Zero", "One", "Two", ..., "Nine"), xword triphone models don't produce better results than wint models. Thus for this task we will focus only on wint models. Crossword triphone models will be discussed in the following tutorial for the Wall Street Journal (WSJ) task.

In this section we will begin by generating a list of wint triphones that exist in our data and then lead up to the initial training of our wint models.

Procedure


  1. Lets first create a list of triphones. Similar to generating a list of monophones, we use HTK's built in function HLEd to do this. Again, the first argument refers to the output list's name, the next refers to the output wint based transcription file, the third is the configuration file that tells the system how to create wint triphones (as opposed to xword triphones), and finally the last argument is the transcription list of all input training data.

    • From the directory isip/exp/htk_tutorial/train type:
    HLEd -n triphones1 -l '*' -i ../data_preparation/trans/train_trans_wintri.mlf mkwintri.led aligned/aligned.mlf

  2. Now before we begin training we need to create folders for our HMM's. We will need 11 directories so under the directory isip/exp/htk_tutorial/train create the folders hmm15, hmm16, ..., hmm25.

  3. Before we begin our re-estimations we have to perform a simple cloning. This step uses a tree header to make a template for our triphone models from the previous monophone models. We will perform a more in depth cloning in the next portion of this tutorial as well.

    • First make the tree header using the provided maketrihed. This will generate the file "mktri.hed". From the directory isip/exp/htk_tutorial/train type:
    • maketrihed monophones1 triphones1

    • Now we perform cloning using HTK's built in function HHEd. The input monophone models are retrieved from hmm14 and our new cloned, wint models will be stored in hmm15. From the same directory as the previous step type:
      HHEd -B -H hmm14/macros -H hmm14/hmmdefs -M hmm15 mktri.hed monophones1

  4. Now we're ready to begin our training. We again use HERest to re-estimate our models with the EM algorithm. The only differences from our monophone training is that we now use our list of triphones and our new transcriptions (in the format of wint triphones). We also use config_wint instead of config0. These two files are almost identical except for two additional lines in config_wint which indicate the usage of wint triphone models instead of monophones. You can look in the HTK book for further information about those parameters if you like.

    • From the same directory as above type:

    • HERest -B -A -C config_wint -I ../data_preparation/trans/train_trans_wintri.mlf -t 250.0 150.0 3000.0 -S train_list2.list -H hmm15/macros -H hmm15/hmmdefs -M hmm16 triphones1

      HERest -B -A -C config_wint -I ../data_preparation/trans/train_trans_wintri.mlf -t 250.0 150.0 3000.0 -S train_list2.list -H hmm16/macros -H hmm16/hmmdefs -M hmm17 triphones1

      HERest -B -A -C config_wint -I ../data_preparation/trans/train_trans_wintri.mlf -t 250.0 150.0 3000.0 -S train_list2.list -H hmm17/macros -H hmm17/hmmdefs -M hmm18 triphones1

      HERest -B -A -C config_wint -I ../data_preparation/trans/train_trans_wintri.mlf -t 250.0 150.0 3000.0 -S train_list2.list -H hmm18/macros -H hmm18/hmmdefs -M hmm19 triphones1

      HERest -B -C config_wint -I ../data_preparation/trans/train_trans_wintri.mlf -t 250.0 150.0 3000.0 -s stats -S train_list2.list -H hmm19/macros -H hmm19/hmmdefs -M hmm20 triphones1


Data Preparation Training Decoding