Mercurial > hg > aimc
comparison experiments/scripts/cnbh-syllables/run_training_and_testing/run_test_instance.sh @ 187:d7dc7014b0af
- AWS
author | tomwalters |
---|---|
date | Wed, 11 Aug 2010 22:53:59 +0000 |
parents | f75123cf39ce |
children | 578ec2d32170 |
comparison
equal
deleted
inserted
replaced
186:5664f16368c1 | 187:d7dc7014b0af |
---|---|
5 # total_hmm_states - total number of HMM states (including the 2 non-emitting states) | 5 # total_hmm_states - total number of HMM states (including the 2 non-emitting states) |
6 # mixture_components - number of components in the output distribution for each emitting state | 6 # mixture_components - number of components in the output distribution for each emitting state |
7 # input_vector_size - number or elements in the input vector (normally 39 for MFCCs, 12 for AIM) | 7 # input_vector_size - number or elements in the input vector (normally 39 for MFCCs, 12 for AIM) |
8 # feature_code - HTK feature type code for the features being used (normally MFCC_0_D_A for MFCCs and USER_E_D_A for AIM features) | 8 # feature_code - HTK feature type code for the features being used (normally MFCC_0_D_A for MFCCs and USER_E_D_A for AIM features) |
9 # FEATURE_SUFFIXES - List of suffixes appended to the feature filenames. For the MFCCs this is just "mfc" but for the AIM feature, there can be multiple features generated from each run of AIMCopy | 9 # FEATURE_SUFFIXES - List of suffixes appended to the feature filenames. For the MFCCs this is just "mfc" but for the AIM feature, there can be multiple features generated from each run of AIMCopy |
10 # WORK - working directory | 10 # WORKING_DIRECTORY - working directory |
11 # SYLLIST_COMPLETE | 11 # SYLLIST_COMPLETE |
12 | 12 |
13 # Filenames generated here | 13 # Filenames generated here |
14 HMMPROTO=hmm_prototype | 14 HMMPROTO=hmm_prototype |
15 HHED_SCRIPT=hhed_change_components_script | 15 HHED_SCRIPT=hhed_change_components_script |
20 # Filenames used here | 20 # Filenames used here |
21 TRAIN_SCRIPT=training_script | 21 TRAIN_SCRIPT=training_script |
22 TEST_SCRIPT=testing_script | 22 TEST_SCRIPT=testing_script |
23 SYLLIST_COMPLETE=syllable_list_with_silence | 23 SYLLIST_COMPLETE=syllable_list_with_silence |
24 | 24 |
25 hmm_type=${total_hmm_states}states_${mixture_components}mixture_components | 25 SILENCE=sil |
26 | |
27 hmm_type=${total_hmm_states}_states_${mixture_components}_mixture_components | |
26 echo "HMM type: $hmm_type" | 28 echo "HMM type: $hmm_type" |
27 mkdir -p $WORK/$hmm_type | 29 mkdir -p $WORKING_DIRECTORY/$hmm_type |
28 | 30 |
29 echo "Creating HMM structure..." | 31 echo "Creating HMM structure..." |
30 ./gen_hmmproto.py --input_size ${input_vector_size} --total_hmm_states ${total_hmm_states} --feature_type ${feature_code} > $WORK/$hmm_type/$HMMPROTO | 32 ./gen_hmmproto.py --input_size ${input_vector_size} --total_hmm_states ${total_hmm_states} --feature_type ${feature_code} > $WORKING_DIRECTORY/$hmm_type/$HMMPROTO |
31 | 33 |
32 echo "Adding output mixture components..." | 34 echo "Adding output mixture components..." |
33 ./gen_hhed_script.py --num_means ${mixture_components} --total_hmm_states ${total_hmm_states} > $WORK/$hmm_type/$HHED_SCRIPT | 35 ./gen_hhed_script.py --num_means ${mixture_components} --total_hmm_states ${total_hmm_states} > $WORKING_DIRECTORY/$hmm_type/$HHED_SCRIPT |
34 | 36 |
35 | 37 |
36 echo "Training HMM..." | 38 echo "Training HMM..." |
37 echo "Setting up prototype HMM..." | 39 echo "Setting up prototype HMM..." |
38 mkdir -p $WORK/$hmm_type/hmm0 | 40 mkdir -p $WORKING_DIRECTORY/$hmm_type/hmm0 |
39 HCompV -C $WORK/$HMMCONFIG -f 0.01 -m -S $WORK/$TRAIN_SCRIPT -M $WORK/$hmm_type/hmm0 $WORK/$hmm_type/$HMMPROTO | 41 HCompV -C $WORKING_DIRECTORY/$HMMCONFIG -f 0.01 -m -S $WORKING_DIRECTORY/$TRAIN_SCRIPT -M $WORKING_DIRECTORY/$hmm_type/hmm0 $WORKING_DIRECTORY/$hmm_type/$HMMPROTO |
40 | 42 |
41 echo "Generating HMM definitions..." | 43 echo "Generating HMM definitions..." |
42 # Now take the prototype file from hmm0, and create the other HMM definitions | 44 # Now take the prototype file from hmm0, and create the other HMM definitions |
43 # from it | 45 # from it |
44 grep -A 9999 "<BEGINHMM>" $WORK/$hmm_type/hmm0/$HMMPROTO > $WORK/$hmm_type/hmm0/hmms | 46 grep -A 9999 "<BEGINHMM>" $WORKING_DIRECTORY/$hmm_type/hmm0/$HMMPROTO > $WORKING_DIRECTORY/$hmm_type/hmm0/hmms |
45 for syllable in $(cat $WORK/$SYLLIST_COMPLETE); do | 47 for syllable in $(cat $WORK/$SYLLIST_COMPLETE); do |
46 echo "~h $syllable" >> $WORK/$hmm_type/$feature/hmm0/hmmdefs | 48 echo "~h $syllable" >> $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/hmmdefs |
47 cat $WORK/$hmm_type/$feature/hmm0/hmms >> $WORK/$hmm_type/$feature/hmm0/hmmdefs | 49 cat $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/hmms >> $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/hmmdefs |
48 done | 50 done |
49 | 51 |
50 echo -n "~o<STREAMINFO> 1 ${input_vector_size}<VECSIZE> ${input_vector_size}<NULLD><${feature_code}><DIAGC>" > $WORK/$hmm_type/$feature/hmm0/macros | 52 echo -n "~o<STREAMINFO> 1 ${input_vector_size}<VECSIZE> ${input_vector_size}<NULLD><${feature_code}><DIAGC>" > $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/macros |
51 | 53 |
52 cat $WORK/$hmm_type/$feature/hmm0/vFloors >> $WORK/$hmm_type/$feature/hmm0/macros | 54 cat $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/vFloors >> $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/macros |
53 | 55 |
54 ${HTK_PREFIX}HHEd -H $WORK/$hmm_type/$feature/hmm0/macros -H $WORK/$hmm_type/$feature/hmm0/hmmdefs $WORK/$hmm_type/$HHED_SCRIPT $WORK/$SYLLIST_COMPLETE | 56 HHEd -H $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/macros -H $WORKING_DIRECTORY/$hmm_type/$feature/hmm0/hmmdefs $WORKING_DIRECTORY/$hmm_type/$HHED_SCRIPT $WORKING_DIRECTORY/$SYLLIST_COMPLETE |
55 | 57 |
56 for iter in $TRAINING_ITERATIONS_LIST; do | 58 for iter in $TRAINING_ITERATIONS_LIST; do |
57 echo "Training iteration ${iter}..." | 59 echo "Training iteration ${iter}..." |
58 let "nextiter=$iter+1" | 60 let "nextiter=$iter+1" |
59 mkdir $WORK/$hmm_type/hmm$nextiter | 61 mkdir $WORKING_DIRECTORY/$hmm_type/hmm$nextiter |
60 ${HTK_PREFIX}HERest -C $WORK/$HMMCONFIG -I $WORK/$TRAIN_MLF \ | 62 ${HTK_PREFIX}HERest -C $WORKING_DIRECTORY/$HMMCONFIG -I $WORKING_DIRECTORY/$TRAIN_MLF \ |
61 -t 250.0 150.0 1000.0 -S $WORK/$TRAIN_SCRIPT \ | 63 -t 250.0 150.0 1000.0 -S $WORKING_DIRECTORY/$TRAIN_SCRIPT \ |
62 -H $WORK/$hmm_type/hmm$iter/macros -H $WORK/$hmm_type/hmm$iter/hmmdefs \ | 64 -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/macros -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/hmmdefs \ |
63 -M $WORK/$hmm_type/hmm$nextiter $WORK/$SYLLIST_COMPLETE | 65 -M $WORKING_DIRECTORY/$hmm_type/hmm$nextiter $WORKING_DIRECTORY/$SYLLIST_COMPLETE |
64 done | 66 done |
65 | 67 |
66 for iter in $TESTING_ITERATIONS_LIST; do | 68 for iter in $TESTING_ITERATIONS_LIST; do |
67 echo "Testing iteration ${iter}..." | 69 echo "Testing iteration ${iter}..." |
68 ${HTK_PREFIX}HVite -H $WORK/$hmm_type/hmm$iter/macros -H $WORK/$hmm_type/hmm$iter/hmmdefs \ | 70 ${HTK_PREFIX}HVite -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/macros -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/hmmdefs \ |
69 -C $WORK/$HMMCONFIG -S $WORK/$TEST_SCRIPT -i $WORK/$hmm_type/$RECOUT \ | 71 -C $WORKING_DIRECTORY/$HMMCONFIG -S $WORKING_DIRECTORY/$TEST_SCRIPT -i $WORKING_DIRECTORY/$hmm_type/$RECOUT \ |
70 -w $WORK/$WDNET -p 0.0 -s 5.0 $WORK/$DICT $WORK/$SYLLIST_COMPLETE | 72 -w $WORKING_DIRECTORY/$WDNET -p 0.0 -s 5.0 $WORKING_DIRECTORY/$DICT $WORKING_DIRECTORY/$SYLLIST_COMPLETE |
71 echo "Results from testing on iteration ${iter}..." | 73 echo "Results from testing on iteration ${iter}..." |
72 ${HTK_PREFIX}HResults -e "???" ${SILENCE} -I $WORK/$TEST_MLF $WORK/$SYLLIST_COMPLETE $WORK/$hmm_type/$RECOUT | 74 ${HTK_PREFIX}HResults -e "???" ${SILENCE} -I $WORKING_DIRECTORY/$TEST_MLF $WORKING_DIRECTORY/$SYLLIST_COMPLETE $WORKING_DIRECTORY/$hmm_type/$RECOUT |
73 ${HTK_PREFIX}HResults -p -t -e "???" ${SILENCE} \ | 75 ${HTK_PREFIX}HResults -p -t -e "???" ${SILENCE} \ |
74 -I $WORK/$TEST_MLF $WORK/$SYLLIST_COMPLETE $WORK/$hmm_type/$RECOUT > $WORK/$hmm_type/${RESULTS_FILE}_iteration_$iter | 76 -I $WORKING_DIRECTORY/$TEST_MLF $WORKING_DIRECTORY/$SYLLIST_COMPLETE $WORKING_DIRECTORY/$hmm_type/$RECOUT > $WORKING_DIRECTORY/$hmm_type/${RESULTS_FILE}_iteration_$iter |
75 grep Aligned $WORK/$hmm_type/${RESULTS_FILE}_iteration_$iter| sed -E "s/.*\/..\/([a-z]{2})([0-9]{2,3}\.[0-9])p([0-9]{2,3}\.[0-9])s.*/\2 \3/" | sort | uniq -c > $WORK/$hmm_type/${MISCLASSIFIED}_iteration_$iter | 77 grep Aligned $WORKING_DIRECTORY/$hmm_type/${RESULTS_FILE}_iteration_$iter| sed -E "s/.*\/..\/([a-z]{2})([0-9]{2,3}\.[0-9])p([0-9]{2,3}\.[0-9])s.*/\2 \3/" | sort | uniq -c > $WORKING_DIRECTORY/$hmm_type/${MISCLASSIFIED}_iteration_$iter |
76 done | 78 done |