Skip to content

Commit

Permalink
lots of things, see diffs :/
Browse files Browse the repository at this point in the history
  • Loading branch information
syhw committed Apr 8, 2013
1 parent d311c33 commit d3f4ade
Show file tree
Hide file tree
Showing 5 changed files with 176 additions and 108 deletions.
93 changes: 68 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ prepare: wav_config mfcc_and_gammatones.py timit_to_htk_labels.py
train: train_monophones
@echo "\n>>> We will only train monophones, see train_triphones make cmd otherwise\n"

train_monophones:
train_monophones_monogauss:
@echo "*** training the HMMs with HTK ***"
@echo "using folder $(dataset_train_folder)"
@echo "\n>>> preparing the HMMs\n"
mkdir $(TMP_TRAIN_FOLDER)
cp $(dataset_train_folder)/labels $(TMP_TRAIN_FOLDER)/monophones0
cp $(dataset_train_folder)/train.mlf $(TMP_TRAIN_FOLDER)/
cp $(dataset_train_folder)/train.scp $(TMP_TRAIN_FOLDER)/
cp wdnet $(TMP_TRAIN_FOLDER)/
cp proto.hmm $(TMP_TRAIN_FOLDER)/
mkdir $(TMP_TRAIN_FOLDER)/hmm0
mkdir $(TMP_TRAIN_FOLDER)/hmm1
Expand All @@ -41,55 +42,97 @@ train_monophones:
HCompV -f 0.001 -m -S $(TMP_TRAIN_FOLDER)/train.scp -M $(TMP_TRAIN_FOLDER)/hmm0 $(TMP_TRAIN_FOLDER)/proto.hmm
python create_hmmdefs_from_proto.py $(TMP_TRAIN_FOLDER)/hmm0/proto $(TMP_TRAIN_FOLDER)/monophones0 $(TMP_TRAIN_FOLDER)/hmm0/ $(TMP_TRAIN_FOLDER)/hmm0/vFloors
@echo "\n>>> training the HMMs\n"
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm0/macros -H $(TMP_TRAIN_FOLDER)/hmm0/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm1 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm1/macros -H $(TMP_TRAIN_FOLDER)/hmm1/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm2 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm2/macros -H $(TMP_TRAIN_FOLDER)/hmm2/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm3 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm0/macros -H $(TMP_TRAIN_FOLDER)/hmm0/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm1 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm1/macros -H $(TMP_TRAIN_FOLDER)/hmm1/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm2 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm2/macros -H $(TMP_TRAIN_FOLDER)/hmm2/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm3 $(TMP_TRAIN_FOLDER)/monophones0 # check these -t parameters TODO

tweak_silence_model: train_monophones_monogauss
@echo "\n>>> tweaking the silence model\n"
mkdir $(TMP_TRAIN_FOLDER)/hmm4
python create_short_pause_silence_model.py $(TMP_TRAIN_FOLDER)/hmm3/hmmdefs $(TMP_TRAIN_FOLDER)/hmm4/hmmdefs $(TMP_TRAIN_FOLDER)/monophones1
#python create_short_pause_silence_model.py $(TMP_TRAIN_FOLDER)/hmm3/hmmdefs $(TMP_TRAIN_FOLDER)/hmm4/hmmdefs $(TMP_TRAIN_FOLDER)/monophones1
cp $(TMP_TRAIN_FOLDER)/monophones0 $(TMP_TRAIN_FOLDER)/monophones1
cp $(TMP_TRAIN_FOLDER)/hmm3/hmmdefs $(TMP_TRAIN_FOLDER)/hmm4/hmmdefs
#tr "\n" " | " < $(TMP_TRAIN_FOLDER)/monophones1 > $(TMP_TRAIN_FOLDER)/gram
#cp $(TMP_TRAIN_FOLDER)/monophones1 $(TMP_TRAIN_FOLDER)/dict # because our words are the phones
awk '{if(!$$2) print $$1 " " $$1}' $(TMP_TRAIN_FOLDER)/monophones1 > $(TMP_TRAIN_FOLDER)/dict
echo "silence sil" >> $(TMP_TRAIN_FOLDER)/dict
#echo "silence sil" >> $(TMP_TRAIN_FOLDER)/dict
cp $(TMP_TRAIN_FOLDER)/hmm3/macros $(TMP_TRAIN_FOLDER)/hmm4/
mkdir $(TMP_TRAIN_FOLDER)/hmm5
HHEd -H $(TMP_TRAIN_FOLDER)/hmm4/macros -H $(TMP_TRAIN_FOLDER)/hmm4/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm5 sil.hed $(TMP_TRAIN_FOLDER)/monophones1
@echo "\n>>> re-training the HMMs\n"
mkdir $(TMP_TRAIN_FOLDER)/hmm6
mkdir $(TMP_TRAIN_FOLDER)/hmm7
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm5/macros -H $(TMP_TRAIN_FOLDER)/hmm5/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm6 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm6/macros -H $(TMP_TRAIN_FOLDER)/hmm6/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm7 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm5/macros -H $(TMP_TRAIN_FOLDER)/hmm5/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm6 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO

train_monophones: tweak_silence_model
@echo "\n>>> estimating the number of mixtures\n"
HERest -s $(TMP_TRAIN_FOLDER)/stats -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm6/macros -H $(TMP_TRAIN_FOLDER)/hmm6/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm7 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
python create_mixtures_from_stats.py $(TMP_TRAIN_FOLDER)/stats
mkdir $(TMP_TRAIN_FOLDER)/hmm8
mkdir $(TMP_TRAIN_FOLDER)/hmm9
mkdir $(TMP_TRAIN_FOLDER)/hmm10
@echo "\n--- mixtures of 2 components ---"
HHed -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs $(TMP_TRAIN_FOLDER)/TRMU2.hed $(TMP_TRAIN_FOLDER)/monophones1
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm7/macros -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm8 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm8/macros -H $(TMP_TRAIN_FOLDER)/hmm8/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm9 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm9/macros -H $(TMP_TRAIN_FOLDER)/hmm9/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm10 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
@echo "\n--- mixtures of 3 components ---"
HHed -H $(TMP_TRAIN_FOLDER)/hmm10/hmmdefs $(TMP_TRAIN_FOLDER)/TRMU3.hed $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm11
mkdir $(TMP_TRAIN_FOLDER)/hmm12
mkdir $(TMP_TRAIN_FOLDER)/hmm13
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm10/macros -H $(TMP_TRAIN_FOLDER)/hmm10/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm11 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm11/macros -H $(TMP_TRAIN_FOLDER)/hmm11/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm12 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm12/macros -H $(TMP_TRAIN_FOLDER)/hmm12/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm13 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
@echo "\n--- mixtures of 5 components ---"
HHed -H $(TMP_TRAIN_FOLDER)/hmm13/hmmdefs $(TMP_TRAIN_FOLDER)/TRMU5.hed $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm14
mkdir $(TMP_TRAIN_FOLDER)/hmm15
mkdir $(TMP_TRAIN_FOLDER)/hmm16
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm13/macros -H $(TMP_TRAIN_FOLDER)/hmm13/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm14 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm14/macros -H $(TMP_TRAIN_FOLDER)/hmm14/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm15 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm15/macros -H $(TMP_TRAIN_FOLDER)/hmm15/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm16 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
@echo "\n--- mixtures of 9 components ---"
HHed -H $(TMP_TRAIN_FOLDER)/hmm16/hmmdefs $(TMP_TRAIN_FOLDER)/TRMU9.hed $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm17
mkdir $(TMP_TRAIN_FOLDER)/hmm18
mkdir $(TMP_TRAIN_FOLDER)/hmm19
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm16/macros -H $(TMP_TRAIN_FOLDER)/hmm16/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm17 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm17/macros -H $(TMP_TRAIN_FOLDER)/hmm17/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm18 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm18/macros -H $(TMP_TRAIN_FOLDER)/hmm18/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm19 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
@echo "\n--- mixtures of 17 components ---"
HHed -H $(TMP_TRAIN_FOLDER)/hmm19/hmmdefs $(TMP_TRAIN_FOLDER)/TRMU17.hed $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm20
mkdir $(TMP_TRAIN_FOLDER)/hmm21
mkdir $(TMP_TRAIN_FOLDER)/hmm22
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm19/macros -H $(TMP_TRAIN_FOLDER)/hmm19/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm20 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm20/macros -H $(TMP_TRAIN_FOLDER)/hmm20/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm21 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/train.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm21/macros -H $(TMP_TRAIN_FOLDER)/hmm21/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm22 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO

realign: train_monophones
# TODO check the production of aligned.mlf, and TODO use it for triphones
@echo "\n>>> re-aligning the training data\n"
HVite -l '*' -o SWT -b silence -a -H $(TMP_TRAIN_FOLDER)/hmm7/macros -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs -i $(TMP_TRAIN_FOLDER)/aligned.mlf -m -t 250.0 -y lab -S $(TMP_TRAIN_FOLDER)/train.scp $(TMP_TRAIN_FOLDER)/dict $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm8
HVite -l '*' -o SWT -b sil -a -H $(TMP_TRAIN_FOLDER)/hmm8/macros -H $(TMP_TRAIN_FOLDER)/hmm8/hmmdefs -i $(TMP_TRAIN_FOLDER)/aligned.mlf -m -t 250.0 -y lab -S $(TMP_TRAIN_FOLDER)/train.scp $(TMP_TRAIN_FOLDER)/dict $(TMP_TRAIN_FOLDER)/monophones1
mkdir $(TMP_TRAIN_FOLDER)/hmm9
HERest -I $(TMP_TRAIN_FOLDER)/aligned.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm7/macros -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm8 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/aligned.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -t 250.0 150.0 1000.0 -H $(TMP_TRAIN_FOLDER)/hmm8/macros -H $(TMP_TRAIN_FOLDER)/hmm8/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm9 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
mkdir $(TMP_TRAIN_FOLDER)/hmm10
HERest -I $(TMP_TRAIN_FOLDER)/aligned.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm8/macros -H $(TMP_TRAIN_FOLDER)/hmm8/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm9 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO
HERest -I $(TMP_TRAIN_FOLDER)/aligned.mlf -S $(TMP_TRAIN_FOLDER)/train.scp -H $(TMP_TRAIN_FOLDER)/hmm9/macros -H $(TMP_TRAIN_FOLDER)/hmm9/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm10 $(TMP_TRAIN_FOLDER)/monophones1 # check these -t parameters TODO

train_triphones: train_monophones
# TODO use aligned.mlf instead of train.mlf?
@echo "\n>>> make triphones from monophones\n"
#HLEd -n $(TMP_TRAIN_FOLDER)/triphones1 -l '*' -i $(TMP_TRAIN_FOLDER)/wintri.mlf mktri.led $(TMP_TRAIN_FOLDER)/aligned.mlf
#mkdir $(TMP_TRAIN_FOLDER)/hmm10
#mkdir $(TMP_TRAIN_FOLDER)/hmm11
#mkdir $(TMP_TRAIN_FOLDER)/hmm12
#mkdir $(TMP_TRAIN_FOLDER)/hmm13
HLEd -n $(TMP_TRAIN_FOLDER)/triphones1 -l '*' -i $(TMP_TRAIN_FOLDER)/wintri.mlf mktri.led $(TMP_TRAIN_FOLDER)/train.mlf
mkdir $(TMP_TRAIN_FOLDER)/hmm8
mkdir $(TMP_TRAIN_FOLDER)/hmm9
mkdir $(TMP_TRAIN_FOLDER)/hmm10
mkdir $(TMP_TRAIN_FOLDER)/hmm11
mkdir $(TMP_TRAIN_FOLDER)/hmm12
mkdir $(TMP_TRAIN_FOLDER)/hmm13
maketrihed $(TMP_TRAIN_FOLDER)/monophones1 $(TMP_TRAIN_FOLDER)/triphones1
HHEd -B -H $(TMP_TRAIN_FOLDER)/hmm7/macros -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm8 mktri.hed $(TMP_TRAIN_FOLDER)/monophones1
HERest -B -I tmp_train/wintri.mlf -t 250.0 150.0 1000.0 -s stats -S tmp_train/train.scp -H tmp_train/hmm8/macros -H tmp_train/hmm8/hmmdefs -M tmp_train/hmm9 tmp_train/triphones1
HERest -B -I tmp_train/wintri.mlf -t 250.0 150.0 1000.0 -s stats -S tmp_train/train.scp -H tmp_train/hmm9/macros -H tmp_train/hmm9/hmmdefs -M tmp_train/hmm10 tmp_train/triphones1
@echo "\n>>> re-train but with triphones now\n"

test_monophones:
@echo "*** testing the trained model ***"
cp wdnet $(TMP_TRAIN_FOLDER)/wd # TODO create the wordnet from the grammar "gram"
HVite -H $(TMP_TRAIN_FOLDER)/hmm7/macros -H $(TMP_TRAIN_FOLDER)/hmm7/hmmdefs -S $(dataset_test_folder)/test.scp -l '*' -i $(TMP_TRAIN_FOLDER)/recout.mlf -w $(TMP_TRAIN_FOLDER)/labels -p 0.0 -s 5.0 $(TMP_TRAIN_FOLDER)/dict
HHEd -B -H $(TMP_TRAIN_FOLDER)/hmm10/macros -H $(TMP_TRAIN_FOLDER)/hmm10/hmmdefs -M $(TMP_TRAIN_FOLDER)/hmm11 mktri.hed $(TMP_TRAIN_FOLDER)/monophones1
HERest -B -I tmp_train/wdnet $(TMP_TRAIN_FOLDER)/wdnet # TODO create the wordnet from the grammar "gram"
HVite -H $(TMP_TRAIN_FOLDER)/hmm11/macros -H $(TMP_TRAIN_FOLDER)/hmm11/hmmdefs -S $(dataset_test_folder)/test.scp -l '*' -i $(TMP_TRAIN_FOLDER)/recout.mlf -w $(TMP_TRAIN_FOLDER)/labels -p 0.0 -s 5.0 $(TMP_TRAIN_FOLDER)/dict
#HVite -w tmp_train/wdnet -H tmp_train/hmm4/hmmdefs -i tmp_train/outtrans.mlf -S ~/postdoc/datasets/TIMIT/test/test.scp -T 3 -o ST tmp_train/dict tmp_train/monophones1
#HResults -I ~/postdoc/datasets/TIMIT/test/test.mlf tmp_train/monophones1 tmp_train/outtrans.mlf

Expand Down
30 changes: 30 additions & 0 deletions create_mixtures_from_stats.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import sys

EXACT_NB_MIXTURES = True
max_mix = {}
progression = [1, 2, 3, 5, 9, 17]
working_folder = '/'.join(sys.argv[1].split('/')[:-1])

with open(sys.argv[1]) as f:
for line in f:
if len(line.split()) < 6:
continue
(id_phn, phn, nb), nb_frames = line.split()[:3], line.split()[3:]
nb_frames_min = min(map(float, nb_frames))
nb_mixtures = int(nb_frames_min / 100)
# at least 100 frames per mixture comp.
phn = phn.strip('"')
max_mix[phn] = nb_mixtures

for i, ind in enumerate(progression):
with open(working_folder + "/TRMU" + str(ind) + ".hed", 'w') as f:
for phn, mmix in max_mix.iteritems():
n = mmix
if mmix >= ind:
n = ind
else:
if not EXACT_NB_MIXTURES:
max_mix[phn] = progression[max(0, i-1)]
n = max_mix[phn]
f.write("MU " + str(n) + " {" + phn + ".state[2-4].mix}\n")

2 changes: 0 additions & 2 deletions sil.hed
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
AT 2 4 0.2 {sil.transP}
AT 4 2 0.2 {sil.transP}
AT 1 3 0.3 {sp.transP}
TI silst {sil.state[3],sp.state[2]}
1 change: 1 addition & 0 deletions substitute_phones.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
'ih': 'ix',
'ah': 'ax',
'q': 'sil'} # <- they removed 'Q' (glottal stop), is it ok to sil?
# http://troylee2008.blogspot.fr/2011/05/asr-complete-matlab-script-for-timit.html classifies 'q' as 'pau' (i.e. pause/silence) too

def process(folder, sentences=False):
c_before = Counter()
Expand Down
158 changes: 77 additions & 81 deletions wdnet
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
VERSION=1.0
N=43 L=121
N=42 L=118
I=0 W=!NULL
I=1 W=!NULL
I=2 W=b
Expand Down Expand Up @@ -42,7 +42,6 @@ I=38 W=uh
I=39 W=uw
I=40 W=zh
I=41 W=sil
I=42 W=sp
J=0 S=3 E=1
J=1 S=0 E=2
J=2 S=3 E=2
Expand Down Expand Up @@ -85,82 +84,79 @@ J=38 S=38 E=3
J=39 S=39 E=3
J=40 S=40 E=3
J=41 S=41 E=3
J=42 S=42 E=3
J=43 S=0 E=4
J=44 S=3 E=4
J=45 S=0 E=5
J=46 S=3 E=5
J=47 S=0 E=6
J=48 S=3 E=6
J=49 S=0 E=7
J=50 S=3 E=7
J=51 S=0 E=8
J=52 S=3 E=8
J=53 S=0 E=9
J=54 S=3 E=9
J=55 S=0 E=10
J=56 S=3 E=10
J=57 S=0 E=11
J=58 S=3 E=11
J=59 S=0 E=12
J=60 S=3 E=12
J=61 S=0 E=13
J=62 S=3 E=13
J=63 S=0 E=14
J=64 S=3 E=14
J=65 S=0 E=15
J=66 S=3 E=15
J=67 S=0 E=16
J=68 S=3 E=16
J=69 S=0 E=17
J=70 S=3 E=17
J=71 S=0 E=18
J=72 S=3 E=18
J=73 S=0 E=19
J=74 S=3 E=19
J=75 S=0 E=20
J=76 S=3 E=20
J=77 S=0 E=21
J=78 S=3 E=21
J=79 S=0 E=22
J=80 S=3 E=22
J=81 S=0 E=23
J=82 S=3 E=23
J=83 S=0 E=24
J=84 S=3 E=24
J=85 S=0 E=25
J=86 S=3 E=25
J=87 S=0 E=26
J=88 S=3 E=26
J=89 S=0 E=27
J=90 S=3 E=27
J=91 S=0 E=28
J=92 S=3 E=28
J=93 S=0 E=29
J=94 S=3 E=29
J=95 S=0 E=30
J=96 S=3 E=30
J=97 S=0 E=31
J=98 S=3 E=31
J=99 S=0 E=32
J=100 S=3 E=32
J=101 S=0 E=33
J=102 S=3 E=33
J=103 S=0 E=34
J=104 S=3 E=34
J=105 S=0 E=35
J=106 S=3 E=35
J=107 S=0 E=36
J=108 S=3 E=36
J=109 S=0 E=37
J=110 S=3 E=37
J=111 S=0 E=38
J=112 S=3 E=38
J=113 S=0 E=39
J=114 S=3 E=39
J=115 S=0 E=40
J=116 S=3 E=40
J=117 S=0 E=41
J=118 S=3 E=41
J=119 S=0 E=42
J=120 S=3 E=42
J=42 S=0 E=4
J=43 S=3 E=4
J=44 S=0 E=5
J=45 S=3 E=5
J=46 S=0 E=6
J=47 S=3 E=6
J=48 S=0 E=7
J=49 S=3 E=7
J=50 S=0 E=8
J=51 S=3 E=8
J=52 S=0 E=9
J=53 S=3 E=9
J=54 S=0 E=10
J=55 S=3 E=10
J=56 S=0 E=11
J=57 S=3 E=11
J=58 S=0 E=12
J=59 S=3 E=12
J=60 S=0 E=13
J=61 S=3 E=13
J=62 S=0 E=14
J=63 S=3 E=14
J=64 S=0 E=15
J=65 S=3 E=15
J=66 S=0 E=16
J=67 S=3 E=16
J=68 S=0 E=17
J=69 S=3 E=17
J=70 S=0 E=18
J=71 S=3 E=18
J=72 S=0 E=19
J=73 S=3 E=19
J=74 S=0 E=20
J=75 S=3 E=20
J=76 S=0 E=21
J=77 S=3 E=21
J=78 S=0 E=22
J=79 S=3 E=22
J=80 S=0 E=23
J=81 S=3 E=23
J=82 S=0 E=24
J=83 S=3 E=24
J=84 S=0 E=25
J=85 S=3 E=25
J=86 S=0 E=26
J=87 S=3 E=26
J=88 S=0 E=27
J=89 S=3 E=27
J=90 S=0 E=28
J=91 S=3 E=28
J=92 S=0 E=29
J=93 S=3 E=29
J=94 S=0 E=30
J=95 S=3 E=30
J=96 S=0 E=31
J=97 S=3 E=31
J=98 S=0 E=32
J=99 S=3 E=32
J=100 S=0 E=33
J=101 S=3 E=33
J=102 S=0 E=34
J=103 S=3 E=34
J=104 S=0 E=35
J=105 S=3 E=35
J=106 S=0 E=36
J=107 S=3 E=36
J=108 S=0 E=37
J=109 S=3 E=37
J=110 S=0 E=38
J=111 S=3 E=38
J=112 S=0 E=39
J=113 S=3 E=39
J=114 S=0 E=40
J=115 S=3 E=40
J=116 S=0 E=41
J=117 S=3 E=41

0 comments on commit d3f4ade

Please sign in to comment.