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