VoxForge
First, there are mistakes in the description of HHEd commands, here is my correction:
AU - synthesize previously unseen triphones, i.e. use the set of newly created decision trees to make all the triphones included in the list
CO - compact the model set: some state definitions will be exactly the same (same means and variances etc.). To save space, only one of these states is kept in the definition, others are added to the tiedlist.
ST - save the decision trees in a file
Second, the creation of a full triphone list by HDMan must be done every time new triphones appear in testing data and does not work for cross-word triphones (these are used e.g. in HDecode). My solution for this is simply to synthesize all possible triphones. With the monophone set used by VoxForge acoustic models there is a total of 81315 triphones which translates to about 3.5MB of extra space for the HMM definitions (text form).
A full triphone list can be generated by the script full_list.prl which can be found in the directory samples/RMHTK/perl_scripts which comes with the HTK distribution.
The full triphone HMM generation can be done using HHEd:
Assume the all-triphone list is stored in file xwrd_full_list these are the commands to go into the script file (let's call it synthesize.hed):
LT "trees"
AU "xwrd_full_list"
CO "xwrdtiedlist"
HHEd is run wiht the following parameters:
HHed -T 1 -H hmmdefs -H macros -M hmm_synthesized synthesize.hed tiedlist
where hmm_synthesized is the directory to store the new files.
Hi tpavelka,
Sorry for the delay in getting back to you, I had problems with a move data to a new HD on the Acoustic Model creation server/computer. The move changed the modify date for all submission directories (the files were unchanged for some reason...), which then caused a cascade of problems (mirroring scripts were trying to re-create all submission tarfiles, and then, had I not killed the job, would have tried to rsync 22Gig of submission data to the VoxForge repository...).
>First, there are mistakes in the description of HHEd commands, here
>is my correction:
Thanks, fixed.
>Second, the creation of a full triphone list by HDMan must be done
>every time new triphones appear in testing data
OK, makes sense. We never had to worry about that before since we did not have a test corpus :)
>does not work for cross-word triphones (these are used e.g. in HDecode).
OK, for dictation apps...
>My solution for this is simply to synthesize all possible triphones.
OK, I can't do this right now, because I am still working on the Drupal migration and the related non-English submission forum cleanup. What kind of priority would you put on this (i.e. what is the downside of not fixing this for another month or so)?
thanks again,
Ken
Hi Ken,
I do not think there is any downside to leaving it be for some time. It is in the comments section so anyone can see it. I just wanted to add some information that is not in the tutorial and can be usefull. I have not yet responded to the thread about training scripts/tutorials because I found out that it is more complicated than I thought, I will try to respond now.
Hi Ken and tpvelka
Could you clarify how to generate the list of all triphones? Which monophones list should you give as input to the script file? fulllist file in step 10 or monophones files created in step 2.
Also the last parameter to the HHEd command in step 10 is tiedlist, however the tutorial specifies it as triphones1.
Thanks a ton
>Could you clarify how to generate the list of all triphones?
See the HDMan command in Step 10 - Making Tied-State Triphones (the HTK Book provides additional info)
>Also the last parameter to the HHEd command in step 10 is tiedlist,
>however the tutorial specifies it as triphones1.
I am not sure I understand the error your pointing out... the HTK Book, section 3.3.2 Step 10 - Making Tied-State Triphones, uses:
HHEd -B -H hmm12/macros -H hmm12/hmmdefs -M hmm13 \
tree.hed triphones1 > log
Which is also used in Step 10.
thanks,
Ken