Option 1 - Recognition

HDECODE can be used to generate 1-best output, or lattices. For both options the same configuration file, assumed to be stored in config.hdecode, may be used. This should contain the following entries

TARGETKIND     = MFCC_0_D_A   
HLANGMODFILTER = 'gunzip -c $.gz'
HNETFILTER     = 'gunzip -c $.gz'
HNETOFILTER    = 'gzip -c > $.gz'
RAWMITFORMAT   = T
STARTWORD      = SENT-START
ENDWORD        = SENT-END
This configuration file has specified the frontend, the filter for reading the language model3.9, HLANGMODFILTER and filters for reading and writing lattices, HNETFILTER and HNETOFILTER respectively.

Recognition can then be run on the files specified in test.scp using the following command.

    HDecode -H hmm20/models -S test.scp \
          -t 220.0 220.0 \
          -C config.hdecode -i recout.mlf -w bg_lm \
          -p 0.0 -s 5.0 dict.hdecode xwrdtiedlist
The output will be written to an MLF in recout.mlf. The -w option specifies the $ n$-gram model, in this case a bigram to be used. The final recognition results may be analysed using HRESULTS in the same way as HVITE.

In common with HVITE, there are a number of options that need to be set empirically to obtain good recognition performance and speed. The options -p and -s specify the word insertion penalty and the grammar scale factor respectively as in HVITE. There are also a number of pruning options that may be tuned to adjust the run time. These include the main beam (see the -t option), word end beam (see the -v option) and the maximum model pruning (see the -u option).


Back to HTK site
See front page for HTK Authors