Homework 4
Out: Jan-10 Due: Jan-17 Tuesday night (12:00)
To submit: Send to Stan (scjou@cs.cmu.edu) the NFS path containing your work.

In this homework you are going to set up a training environment for a context-indenpendent speech recognizer. Please follow the steps below:
- Write a dssTree building procedure (sub-rountine)
- The procedure should look like
proc dssTreeCreate {argument1 argument2 etc } {
# build the dssTree
}
- Since a procedure should be flexible enough for future re-use, the procedure dssTreeCreate should creates the entries in the DistribSet and CodebookSet if they don't already exist. For example, the dssTree in Exercise-4 contains only SIL and a; here this procedure should automatically add all the demi-syllables to the dssTree and store it for future use.
- Write a script dssTreeCreate.tcl, which contains the procedure dssTreeCreate and calls it to build the dssTree. The script should also store the dssTree as well as every component the dssTree needs to disk for future use (tmSet, topoSet, etc.)
- Write a start-up script for building a training HMM
- In this tcl script, first of all, restore the dssTree from the files you saved in the previous step. Next, follow Exercise-4 to build a HMM. The last line of this script should be the HMM-object creating line:
HMM hmm dict ams
- Save the script as start-up.tcl.
- Initialize the GMMs
- Create a file initFlatGMM.tcl. In the beginning of the file, use the source command to include the start-up environment like this:
source start-up.tcl
- Question 4.2.a: Do a little test after the start-up environment has been set up. Find two words in your dictionary, make the HMM like this:
hmm make "WORD-1 WORD-2" -opt $
Show the wordGraph, phoneGraph, and stateGraph of the HMM as you learned in Exercise-4.
- Now let us initialize the GMMs using the speech and silence GMMs you created in Homework-3. First of all, create a CodebookSet object and a DistribSet object, say, cbsTemp and dssTemp. Next, use the read and load methods to restore the speech and silence GMMs you stored in Homework-3. Finally, iterate over all the codebooks and distributions to copy the weights. To be specific, initialize all the demi-syllable GMMs by copying the previous SPEECH GMM and the SIL GMM by copying the previous SIL GMM. For example:
cbs:a-s1 := cbsTemp:SPEECH-m
cbs:b-s1 := cbsTemp:SPEECH-m
cbs:c-s1 := cbsTemp:SPEECH-m
...
cbs:SIL-s1 := cbsTemp:SIL-m
Note that you need to copy for all the four states s1, s2, s3, and s4 and on both cbs and dss. Also, this copy step should be handled in loops; the un-looped copy example above is for demonstration only.
- write and save the cbs and dss . Name them as flat-{cbs|dss}.{desc|param}.gz .
- Task 4-3: Do the HMM topology exercise in Exercise-4.
-
Please send the NFS path of your work to Stan. Your work should include: dssTreeCreate.tcl, start-up.tcl, the answer for Question 4.2.a, the TopoSet and TmSet files for Task 4-3, and initFlatGMM.tcl .
Last modified: Sat Jan 7 00:17:49 EST 2006
Maintainer: scjou@cs.cmu.edu.