Posts Tagged ‘prompts2wlist’

voxforge2009 folder

Thursday, January 15th, 2009

I am trying the Voxforge tutorial again. For this purpose, I have created the folder /home/ubuntu/voxforge2009. I will explain the steps that I am doing. The last try ‘voxforge31′ was almost successful. But there was a problem with ‘dx’ phone. So I will restart.

Step 2:
1. prompts file path is: /home/ubuntu/voxforge2009/manual/prompts
2. /home/ubuntu/voxforge2009/prompts2wlist – location is slightly different from the Voxforge tutorial.
3. ubuntu@ubuntu-desktop:~$ cd voxforge2009
4. ubuntu@ubuntu-desktop:~/voxforge2009$ perl prompts2wlist prompts wlist
Unable to open prompts prompts file for reading at prompts2wlist line 16.
-> OK, I don’t have the prompts file in this folder. It is stored in the manual folder (#1)
-> I will try it again:
5. ubuntu@ubuntu-desktop:~/voxforge2009$ perl prompts2wlist manual/prompts manual/wlist
-> OK, I was successful.
6. Adding SENT-END and SENT-START to wlist, take a look at wlist
7. create file: /home/ubuntu/voxforge2009/manual/global.ded
8. create folder: /home/ubuntu/voxforge2009/lexicon/
9. copy lexicon: /home/ubuntu/voxforge2009/lexicon/voxforge_lexicon
-> note: this lexicon is not compatible to the CMU pronouncing dictionary.
10. ubuntu@ubuntu-desktop:~/voxforge2009$ cd manual
11. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HDMan -A -D -T 1 -m -w wlist -n monophones1 -i -l dlog dict ../lexicon/voxforge_lexicon
-> now I have: /home/ubuntu/voxforge2009/manual/dict and
/home/ubuntu/voxforge2009/manual/monophones1 and
12. created monophones0
13. removed ‘sp’ phone from monophones0
14. created folder: /home/ubuntu/voxforge2009/HTK_Scripts/
14 moved file: /home/ubuntu/voxforge2009/HTK_Scripts/prompts2wlist
15. /home/ubuntu/voxforge31/HTK_Scripts/prompts2mlf
16. renaming folder from /home/ubuntu/voxforge31/HTK_Scripts/ to /home/ubuntu/voxforge31/HTK_scripts/
17. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HDMan -A -D -T 1 -m -w wlist -n monophones1 -i -l dlog dict ../lexicon/voxforge_lexicon
18. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ perl ../HTK_scripts/prompts2mlf words.mlf prompts
-> this created words.mlf
19. /home/ubuntu/voxforge2009/manual/mkphones0.led (see step 4)
20. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HLEd -A -D -T 1 -l ‘*’ -d dict -i phones0.mlf mkphones0.led words.mlf
21. created file: /home/ubuntu/voxforge31/mkphones1.led
22. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HLEd -A -D -T 1 -l ‘*’ -d dict -i phones1.mlf mkphones1.led words.mlf

This has to be continued with step 5. I will continue later.

Let’s go to step 5 now:
23. file:///home/ubuntu/voxforge2009/manual/codetrain.scp
24. file:///home/ubuntu/voxforge2009/manual/wav_config
25. /home/ubuntu/voxforge2009/train – folder created
26. /home/ubuntu/voxforge2009/train/wav – folder created
27. copy wav files to the previously created folder. Done.
28. ubuntu@ubuntu-desktop:~$ cd voxforge2009/manual
29. /home/ubuntu/voxforge2009/train/mfcc – folder created
30. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HCopy -A -D -T 1 -C wav_config -S codetrain.scp
31. file:///home/ubuntu/voxforge2009/manual/proto
32. file:///home/ubuntu/voxforge2009/manual/config
33. file:///home/ubuntu/voxforge2009/manual/train.scp
34. /home/ubuntu/voxforge2009/hmm0 – folder created
35. move hmm0 folder, new location: /home/ubuntu/voxforge2009/manual/hmm0
36. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HCompV -A -D -T 1 -C config -f 0.01 -m -S train.scp -M hmm0 proto
-> created file:///home/ubuntu/voxforge2009/manual/hmm0/proto
-> created file:///home/ubuntu/voxforge2009/manual/hmm0/vFloors
37. file:///home/ubuntu/voxforge2009/manual/hmm0/monophones0
38. rename monophones0 to hmmdefs
39. modifiying hmmdefs – lots of pasting
40. file:///home/ubuntu/voxforge2009/manual/hmm0/macros
41. hmm1 … hmm9 created
42. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I phones0.mlf -t 250.0 150.0 1000.0 -S train.scp -H hmm0/macros -H hmm0/hmmdefs -M hmm1 monophones0
-> created: file:///home/ubuntu/voxforge2009/manual/hmm1/hmmdefs
-> created: file:///home/ubuntu/voxforge2009/manual/hmm1/macros
43. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I phones0.mlf -t 250.0 150.0 1000.0 -S train.scp -H hmm1/macros -H hmm1/hmmdefs -M hmm2 monophones0
-> file:///home/ubuntu/voxforge2009/manual/hmm2/hmmdefs
-> file:///home/ubuntu/voxforge2009/manual/hmm2/macros
44. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I phones0.mlf -t 250.0 150.0 1000.0 -S train.scp -H hmm2/macros -H hmm2/hmmdefs -M hmm3 monophones0
-> file:///home/ubuntu/voxforge2009/manual/hmm3/hmmdefs
-> file:///home/ubuntu/voxforge2009/manual/hmm3/macros
-> GREAT, I am one step further. The next thing to do is to follow the step 7.

Question: Do you know what HMM means? If not, read the HMM tutorial. I find it very helpful to think about the graph theory (nodes and arcs / vertices) . The concept of the graph theory is very simple. And you should understand the basics (just the basics is completely sufficient) of the graph theory when you are interested in artificial intelligence / speech recognition. Think of the world a a giant graph. HMM is in my opinion just something like a special case of the graph theory. That’s all.

I should continue with step 7 now. But it is pretty monotone to follow the Voxforge tutorial. Maybe I should drink a cup of coffee now, and then continue.

Step 7:
45. copy content of hmm3 to hmm4
-> file:///home/ubuntu/voxforge2009/manual/hmm4/hmmdefs
-> file:///home/ubuntu/voxforge2009/manual/hmm4/macros
46. changed TRANSP to 3, changed matrix
47. changed NUMSTATES to 3
48. deleted STATE 3 and STATE 4 – is that correct? No, undo.
49. removing STATE 2
50. removing STATE 4
51. changing STATE 3 to STATE 2
52. creating sil.hed -> file:///home/ubuntu/voxforge2009/manual/sil.hed
53. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HHEd -A -D -T 1 -H hmm4/macros -H hmm4/hmmdefs -M hmm5 sil.hed monophones1
54. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I phones1.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm5/macros -H hmm5/hmmdefs -M hmm6 monophones1
55. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I phones1.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm6/macros -H hmm6/hmmdefs -M hmm7 monophones1
-> It seems to have worked out. Fine.

Step 8:
56. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HVite -A -D -T 1 -l ‘*’ -o SWT -b SENT-END -C config -H hmm7/macros -H hmm7/hmmdefs -i aligned.mlf -m -t 250.0 150.0 1000.0 -y lab -a -I words.mlf -S train.scp dict monophones1> HVite_log
-> this created file:///home/ubuntu/voxforge2009/manual/aligned.mlf
57. take a look at file:///home/ubuntu/voxforge2009/manual/HVite_log
58. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ HERest -A -D -T 1 -C config -I aligned.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm7/macros -H hmm7/hmmdefs -M hmm8 monophones1
59. HERest -A -D -T 1 -C config -I aligned.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm8/macros -H hmm8/hmmdefs -M hmm9 monophones1

Everything went fine so far. Let’s go to step 9:
60. file:///home/ubuntu/voxforge2009/manual/mktri.led
61. HLEd -A -D -T 1 -n triphones1 -l ‘*’ -i wintri.mlf mktri.led aligned.mlf
-> file:///home/ubuntu/voxforge2009/manual/wintri.mlf
-> file:///home/ubuntu/voxforge2009/manual/triphones1
62. HTK_scripts/maketrihed – perl ../HTK_scripts/maketrihed monophones1 triphones1
-> file:///home/ubuntu/voxforge2009/manual/mktri.hed
63. created folders: hmm10, hmm11, hmm12
64. HHEd -A -D -T 1 -H hmm9/macros -H hmm9/hmmdefs -M hmm10 mktri.hed monophones1
-> obviously, there is a warning (indicated by the minus-sign): “WARNING [-2631] ApplyTie: Macro T_sil has nothing to tie of type t in HHEd” – this might be a problem, but I don’t know. Maybe I will check that later, maybe not.
65. HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 triphones1
-> “WARNING [-2331] UpdateModels: m-eh+zh[465] copied: only 2 egs
in HERest” – and lots of similar warnings.
66. HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -s stats -S train.scp -H hmm11/macros -H hmm11/hmmdefs -M hmm12 triphones1
-> lots of warnings like in #65

Now it is time to go to step 10.
67. [several steps are missing because I didn't save the changes, and lost a few changes.]
68. ubuntu@ubuntu-desktop:~/voxforge2009/manual$ perl ../HTK_scripts/mkclscript.prl TB 350 monophones0 >> tree.hed
69. modified tree.hed
70. created hmm13, hmm14, hmm15
71. HHEd -A -D -T 1 -H hmm12/macros -H hmm12/hmmdefs -M hmm13 tree.hed triphones1
72. HERest -A -D -T 1 -T 1 -C config -I wintri.mlf -s stats -t 250.0 150.0 3000.0 -S train.scp -H hmm13/macros -H hmm13/hmmdefs -M hmm14 tiedlist
73. HERest -A -D -T 1 -T 1 -C config -I wintri.mlf -s stats -t 250.0 150.0 3000.0 -S train.scp -H hmm14/macros -H hmm14/hmmdefs -M hmm15 tiedlist

perl prompts2wlist prompts wlist

Sunday, January 11th, 2009

I just executed the following command following the instructions in step 2:

ubuntu@ubuntu-desktop:~$ perl prompts2wlist prompts wlist

The wlist has been created by the perl script. Then I added “SENT-START” and “SENT-END”. The file looks like this wlist.

I just created the file global.ded that has the following content:

AS sp
RS cmu
MP sil sil sp

I downloaded the voxforge_lexicon into my home folder. Then I executed the following command:

ubuntu@ubuntu-desktop:~$ HDMan -A -D -T 1 -m -w wlist -n monophones1 -i -l dlog dict voxforge_lexicon

The result is the two files monophones1 and dict.