changeset 165:f75123cf39ce

- Scripts for running recognition experiments using AIM-C and HTK to compare MFCCs against features generated with AIM-C
author tomwalters
date Wed, 04 Aug 2010 06:41:56 +0000
parents 7e1fe07d13dc
children d4029d3124c4
files experiments/README.txt experiments/scripts/HTK/install_htk.sh experiments/scripts/aimc/build_aimc.sh experiments/scripts/cnbh-syllables/feature_generation/convert_flac_to_wav.sh experiments/scripts/cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh experiments/scripts/cnbh-syllables/feature_generation/pink_noise.sh experiments/scripts/cnbh-syllables/feature_generation/run_aimcopy.sh experiments/scripts/cnbh-syllables/feature_generation/run_hcopy.sh experiments/scripts/cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh experiments/scripts/cnbh-syllables/results_plotting/plot_all_results.m experiments/scripts/cnbh-syllables/run_training_and_testing/run_test_instance.sh experiments/scripts/cnbh-syllables/run_training_and_testing/test_features.sh experiments/scripts/cnbh-syllables/run_training_and_testing/train_test_sets/generate_train_test_lists.sh experiments/scripts/master.sh experiments/scripts/setup_aws_instance.sh
diffstat 15 files changed, 165 insertions(+), 415 deletions(-) [+]
line wrap: on
line diff
--- a/experiments/README.txt	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/README.txt	Wed Aug 04 06:41:56 2010 +0000
@@ -1,1 +1,1 @@
-Scripts to run various experiments on scale-invariant feature representations. Most of these are related to experiments in Tom Walters' PhD thesis: 'Auditory-Based processing of communication sounds'.
+Scripts to run
\ No newline at end of file
--- a/experiments/scripts/HTK/install_htk.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/HTK/install_htk.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -1,17 +1,15 @@
 #!/bin/bash
 set -e
 set -u
-WORKING=$1
-PREV_DIR=`pwd`
-if [ ! -e $WORKING/.htk_installed_success ]; then
-mkdir -p $WORKING
-cd $WORKING
+if [ ! -e /mnt/experiments/htk/.htk_installed_success ]; then
+sudo mkdir /mnt/experiments/htk
+sudo chown ubuntu /mnt/experiments/htk
+cd /mnt/experiments/htk
 wget --user $HTK_USERNAME --password $HTK_PASSWORD http://htk.eng.cam.ac.uk/ftp/software/HTK-3.4.1.tar.gz
 tar -xzf HTK-3.4.1.tar.gz
 cd htk
 ./configure --disable-hslab
 make
 sudo make install
-touch $WORKING/.htk_installed_success
-fi
-cd $PREV_DIR
+touch /mnt/experiments/htk/.htk_installed_success
+fi
\ No newline at end of file
--- a/experiments/scripts/aimc/build_aimc.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/aimc/build_aimc.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -1,16 +1,12 @@
 #!/bin/bash
 # Set up AIM-C on an Amazon EC2 instance. A useful reference for building.
-set -e
-set -u
+AIMC_DIR=/mnt/experiments/aimc
 
-AIMC_DIR=$1
-PREV_DIR=`pwd`
-mkdir -p $AIMC_DIR
+sudo mkdir -p $AIMC_DIR
+sudo chown ubuntu $AIMC_DIR
 cd $AIMC_DIR
 svn checkout http://aimc.googlecode.com/svn/trunk/ aimc-read-only
 cd aimc-read-only
 scons
 cd ..
-export PATH=$PATH:$AIMC_DIR/aimc-read-only/build/posix-release/
-touch $AIMC_DIR/.aimc_build_success
-cd $PREV_DIR
+export PATH=$PATH:$AIMC_DIR/aimc-read-only/build/posix-release/
\ No newline at end of file
--- a/experiments/scripts/cnbh-syllables/feature_generation/convert_flac_to_wav.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/convert_flac_to_wav.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -8,24 +8,24 @@
 set -e
 set -u
 
-SOUNDS_ROOT=$1
+$SOUNDS_ROOT=$1
 
-if [ ! -e $SOUNDS_ROOT/clean/.make_clean_wavs_success ]; then
+if [ ! -e $SOUNDS_ROOT/clean/.make_clean_wavs_success ] then
   mkdir -p $SOUNDS_ROOT/clean
   VOWELS="a e i o u"
   CONSONANTS="b d f g h k l m n p r s t v w x y z"
   for v in $VOWELS; do
-    mkdir -p $SOUNDS_ROOT/clean/$v$v
+    mkdir $SOUNDS_ROOT/clean/$v$v
     for c in $CONSONANTS; do
-      mkdir -p $SOUNDS_ROOT/clean/$c$v
-      mkdir -p $SOUNDS_ROOT/clean/$v$c
+      mkdir $SOUNDS_ROOT/clean/$c$v
+      mkdir $SOUNDS_ROOT/clean/$v$c
     done
   done
   CURRENT_DIR=`pwd`
   cd $SOUNDS_ROOT/cnbh-syllables/
   for file in `find . -iname "*.flac"`; do
-    sox $file ../clean/${file%flac}wav
+    sox $file ../clean/${file%flac}.wav
   done
   touch $SOUNDS_ROOT/clean/.make_clean_wavs_success
   cd $CURRENT_DIR
-fi
\ No newline at end of file
+done
\ No newline at end of file
--- a/experiments/scripts/cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -13,7 +13,6 @@
 
 FEATURES_DIR=$1
 SOUND_SOURCE=$2
-SUFFIX=$3
 
 FULL_LIST=feature_generation_script
 
@@ -36,7 +35,6 @@
 fi
 
 for v in $VOWELS; do
-  echo $v$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
   for c in $CONSONANTS; do
     echo $v$c >> $FEATURES_DIR/$SYLLIST.tmp.tmp
     echo $c$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
@@ -113,7 +111,7 @@
 for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
   for speaker in $(cat $FEATURES_DIR/${TALKERS}.tmp); do
     SOURCE_FILENAME=$SOUND_SOURCE/$syllable/${syllable}${speaker}.wav
-    DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}.$SUFFIX
+    DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}.htk
     echo "$SOURCE_FILENAME  ${DEST_FILENAME}" >&3
   done
 done
--- a/experiments/scripts/cnbh-syllables/feature_generation/pink_noise.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/pink_noise.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -20,7 +20,6 @@
 cd $CLEAN_SYLLABLES_DATABASE_PATH
 
 for SNR in ${SIGNAL_TO_NOISE_RATIOS}; do
-  echo "Generating noisy data for SNR ${SNR}dB"
   if [ ! -e ../snr_${SNR}dB/.pink_noise_success ]
   then
     mkdir -p ../snr_${SNR}dB/
--- a/experiments/scripts/cnbh-syllables/feature_generation/run_aimcopy.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/run_aimcopy.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -2,17 +2,15 @@
 
 # Test for the existence of AIMCopy in the path
 AIMCOPY=`which AIMCopy`
-if [ "$AIMCOPY" == "" ]; then
+if [ $AIMCOPY == "" ]; then
   echo "Please build AIM-C and make AIMCopy available in the path"
-  exit -1
 fi
 
 set -e
 set -u
 
-AIMCOPY_CONFIGURATION_FILE=$1
-FEATURES_DIR=$2
-MACHINE_CORES=$3
+FEATURES_DIR=$1
+MACHINE_CORES=$2
 FILE_LIST=feature_generation_script
 
 echo "Splitting data files over cores..."
@@ -33,7 +31,7 @@
 echo " tasks..."
 for ((c=1;c<=$MACHINE_CORES;c+=1)); do
   s=${splits[$element]}
-  AIMCopy -C $AIMCOPY_CONFIGURATION_FILE -D $FEATURES_DIR/aimcopy_config.out -S $s -G $FEATURES_DIR/aimcopy_graph.dot &
+  AIMCopy -D $FEATURES_DIR/aimcopy_config.out -S $s &
   let element=element+1
 done
 
--- a/experiments/scripts/cnbh-syllables/feature_generation/run_hcopy.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/run_hcopy.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 HCOPY=`which HCopy`
-if [ "$HCOPY" == "" ]; then
+if [ $HCOPY == "" ]; then
   echo "Please build HTK and make the binaries available in the path"
 fi
 
@@ -54,7 +54,7 @@
 echo " tasks..."
 for ((c=1;c<=$MACHINE_CORES;c+=1)); do
   s=${splits[$element]}
-  HCopy -T 1 -C $FEATURES_DIR/${HCOPY_CONFIG} -S $s &
+  HCopy -T 1 -C $WORK/$HCOPY_CONFIG -S $s &
   let element=element+1
 done
 
--- a/experiments/scripts/cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -1,8 +1,8 @@
 #!/bin/bash
 # 
-HCOPY_CONFIG=hcopy.config
+
 HCOPY=`which HCopy`
-if [ "$HCOPY" == "" ]; then
+if [ $HCOPY == "" ]; then
   echo "Please build HTK and make the binaries available in the path"
 fi
 
@@ -33,7 +33,6 @@
 fi
 
 for v in $VOWELS; do
-  echo $v$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
   for c in $CONSONANTS; do
     echo $v$c >> $FEATURES_DIR/$SYLLIST.tmp.tmp
     echo $c$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
@@ -105,6 +104,16 @@
 215.2p121.0s
 EOF
 
+echo "Generating script..."
+exec 3> $FEATURES_DIR/$FULL_LIST
+for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
+  for speaker in $(cat $FEATURES_DIR/${TALKERS}.tmp); do
+    SOURCE_FILENAME=$SOUND_SOURCE/$syllable/${syllable}${speaker}.wav
+    DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}.htk
+    echo "$SOURCE_FILENAME  ${DEST_FILENAME}" >&3
+  done
+done
+exec 3>&-
 
 # Make the necessary directories for the computed features
 echo "Making directory structure..."
@@ -112,6 +121,7 @@
   mkdir -p $FEATURES_DIR/$syllable
 done
 
+
 echo "Creating HCopy config file..."
 cat <<"EOF" > $FEATURES_DIR/${HCOPY_CONFIG}
 # Coding parameters
@@ -132,31 +142,25 @@
 WARPLCUTOFF = 10 
 # Upper frequency is the Nyquist freq. (24000Hz) 
 # so choose the break freq. close to that
-#WARPUCUTOFF = 23000
-WARPUCUTOFF = 10500
+WARPUCUTOFF = 23000
 EOF
 
-for TALKER in $(cat $FEATURES_DIR/${TALKERS}.tmp); do
-  echo "Generating script..."
-  exec 3> $FEATURES_DIR/${FULL_LIST}_$TALKER
-  for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
-    SOURCE_FILENAME=$SOUND_SOURCE/$syllable/${syllable}${TALKER}.wav
-    DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${TALKER}.htk
-    echo "$SOURCE_FILENAME  ${DEST_FILENAME}" >&3
-  done
-  exec 3>&-
+#echo "Splitting data files..."
+#cat $WORK/${TRAIN_LIST} $WORK/${TEST_LIST} > $WORK/${COMBINED_LIST}
+
+for TALKER in $(cat $FEATURES_DIR/$TALKERS); do
   cp $FEATURES_DIR/${HCOPY_CONFIG} $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER
-  scale=`echo $TALKER | sed 's/.*p//' | sed 's/s.*//'`
+  scale=`echo $speaker | sed 's/.*p//' | sed 's/s.*//'`
   warpfactor=0`echo "scale=4; 100.0/$scale" | bc`
-  echo "WARPFREQ = $warpfactor" >> $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER
-  HCopy -T 1 -C $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER -S $FEATURES_DIR/${FULL_LIST}_$TALKER
+  echo "WARPFREQ = $warpfactor" >> $WORK/${HCOPY_CONFIG}_$TALKER
+  ${HTK_PREFIX}HCopy -T 1 -C $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER -S $FEATURES_DIR/${TRAIN_LIST}_$TALKER &
 done
 
-#echo "Waiting for tasks to complete..."
-#wait
-#echo "Done!"
+echo "Waiting for tasks to complete..."
+wait
+echo "Done!"
 
 rm $FEATURES_DIR/$SYLLIST.tmp
 rm $FEATURES_DIR/${TALKERS}.tmp
 touch $FEATURES_DIR/.features_script_success
-fi
+fi
\ No newline at end of file
--- a/experiments/scripts/cnbh-syllables/results_plotting/plot_all_results.m	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/results_plotting/plot_all_results.m	Wed Aug 04 06:41:56 2010 +0000
@@ -3,21 +3,16 @@
 % Nick Fyson and Martin Vestergaard.
 % Copyright 2009 University of Cambridge
 % Author: Tom Walters <tcw24@cam>
-function plot_all_results(exp_path, iteration, plot_end_numbers)
-
-plot_numbers = true;
-if nargin < 3
-  plot_end_numbers = false;
-end
+function plot_all_results(exp_path)
 
 % Load the results from the experimental directory
-misclassified = load([exp_path 'misclassified_syllables_iteration_' num2str(iteration)]); 
+load([exp_path 'misclassified.txt_iter15']); 
 
 % The total number of syllables in the CNBH syllable database 
 num_points = 185;
 target_VTL = 15;
 
-misclassified(:, 1) = 1 - misclassified(:, 1) / num_points;
+misclassified(:, 1) = 1 - misclassified(:, 1) / num_points; %#ok<NODEF>
 
 % The individual data points are plotted as spheres
 sphere_size_x = 1.2;
@@ -66,30 +61,20 @@
   y_pos_2 = spokes{i}(j, 2);
   z_pos_2 = results{i}(j);
   
-  j=1;
-  
-  if (~plot_numbers && plot_end_numbers)
-    text(x_pos + 0.3*(x_pos - x_pos_2), y_pos + 0.3*(y_pos - y_pos_2), z_pos + 0.3*(z_pos - z_pos_2) , [num2str(results{i}(j), 3) '%']);
+  text(x_pos + 0.3*(x_pos - x_pos_2), y_pos + 0.3*(y_pos - y_pos_2), z_pos + 0.3*(z_pos - z_pos_2) , [num2str(results{i}(j), 3) '%']);
+  for j = 1:length(spokes{i})
+    [X Y Z] = sphere(10);
+    X = sphere_size_x.*X + spokes{i}(j,1);
+    Y = sphere_size_y.*Y + spokes{i}(j,2);
+    Z = sphere_size_z.*Z + results{i}(j);
+    % C = zeros(size(X));
+    plot3([spokes{i}(j, 1) spokes{i}(j, 1)], ...
+          [spokes{i}(j, 2),spokes{i}(j, 2)], [0 results{i}(j)], '-k.', ...
+          'LineWidth', 1, 'Color', [0.8 0.8 0.8]);
+    surf(X, Y, Z, ones(size(Z)) .* (results{i}(j)), 'LineStyle', 'none');
   end
-  for j = 1:length(spokes{i})
-	if (plot_numbers)
-	  text(spokes{i}(j,1), spokes{i}(j,2), results{i}(j), [num2str(results{i}(j), 3) '%']);
-	else
-      [X Y Z] = sphere(10);
-      X = sphere_size_x.*X + spokes{i}(j,1);
-      Y = sphere_size_y.*Y + spokes{i}(j,2);
-      Z = sphere_size_z.*Z + results{i}(j);
-      % C = zeros(size(X));
-      plot3([spokes{i}(j, 1) spokes{i}(j, 1)], ...
-            [spokes{i}(j, 2),spokes{i}(j, 2)], [0 results{i}(j)], '-k.', ...
-            'LineWidth', 1, 'Color', [0.8 0.8 0.8]);
-      surf(X, Y, Z, ones(size(Z)) .* (results{i}(j)), 'LineStyle', 'none');
-    end
-  end
-  if (~plot_numbers)
-    plot3(spokes{i}(:,1), spokes{i}(:,2), results{i}(:), '-', 'LineWidth', 2, ...
-         'Color', [0.2 0.2 0.2]);
-  end
+  plot3(spokes{i}(:,1), spokes{i}(:,2), results{i}(:), '-', 'LineWidth', 2, ...
+       'Color', [0.2 0.2 0.2]);
 end
 % Plot a zero-sized sphere at zero to get the autoscaling of the colour bar
 % correct
@@ -114,9 +99,8 @@
 set(axes1, 'YDir', 'reverse');
 set(axes1, 'ZTick', [0 20 40 60 80 100]);
 hold('all');
-%print('-depsc', [exp_path 'results_plot_iteration_' num2str(iteration) '.eps']);
-%   saveas(gcf, [exp_path 'results_plot_iteration_' num2str(iteration) '.fig']);
-%!open results_plot.eps
+print('-depsc', 'results_plot.eps');
+!open results_plot.eps
 
 
 
--- a/experiments/scripts/cnbh-syllables/run_training_and_testing/run_test_instance.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/run_training_and_testing/run_test_instance.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -7,102 +7,70 @@
 # input_vector_size - number or elements in the input vector (normally 39 for MFCCs, 12 for AIM)
 # 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)
 # 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
-# WORKING_DIRECTORY - working directory
+# WORK - working directory
 # SYLLIST_COMPLETE
 
-set -e
-set -u
-
 # Filenames generated here
-
-# This must be named 'proto' to keep HCompV happy.
-HMMPROTO=proto
+HMMPROTO=hmm_prototype
 HHED_SCRIPT=hhed_change_components_script
 RECOUT=recognition_output
 RESULTS_FILE=results
 MISCLASSIFIED=misclassified_syllables
 
 # Filenames used here
-#TRAIN_SCRIPT=training_script
-#TEST_SCRIPT=testing_script
+TRAIN_SCRIPT=training_script
+TEST_SCRIPT=testing_script
 SYLLIST_COMPLETE=syllable_list_with_silence
-#TEST_MLF=testing_master_label_file
 
-DICT=dictionary
-WDNET=word_network
-
-SILENCE=sil
-
-THIS_DIR=`dirname $0`
-
-hmm_type=${total_hmm_states}_states_${mixture_components}_mixture_components
-echo "HMM type: ${hmm_type}..."
-
-if [ -e $WORKING_DIRECTORY/$hmm_type/.hmm_success ]; then
-  echo " already done"
-  return 0
-fi
-
-mkdir -p $WORKING_DIRECTORY/$hmm_type
+hmm_type=${total_hmm_states}states_${mixture_components}mixture_components
+echo "HMM type: $hmm_type"
+mkdir -p $WORK/$hmm_type
 
 echo "Creating HMM structure..."
-$THIS_DIR/gen_hmmproto.py --input_size ${input_vector_size} --total_hmm_states ${total_hmm_states} --feature_type ${feature_code} > $WORKING_DIRECTORY/$hmm_type/$HMMPROTO
+./gen_hmmproto.py --input_size ${input_vector_size} --total_hmm_states ${total_hmm_states} --feature_type ${feature_code} > $WORK/$hmm_type/$HMMPROTO
 
 echo "Adding output mixture components..."
-$THIS_DIR/gen_hhed_script.py --num_means ${mixture_components} --total_hmm_states ${total_hmm_states} > $WORKING_DIRECTORY/$hmm_type/$HHED_SCRIPT
+./gen_hhed_script.py --num_means ${mixture_components} --total_hmm_states ${total_hmm_states} > $WORK/$hmm_type/$HHED_SCRIPT
 
 
 echo "Training HMM..."
 echo "Setting up prototype HMM..."
-mkdir -p $WORKING_DIRECTORY/$hmm_type/hmm0
-HCompV -C $WORKING_DIRECTORY/$HMMCONFIG -f 0.01 -m -S $TRAIN_SCRIPT -M $WORKING_DIRECTORY/$hmm_type/hmm0 $WORKING_DIRECTORY/$hmm_type/$HMMPROTO
+mkdir -p $WORK/$hmm_type/hmm0
+HCompV -C $WORK/$HMMCONFIG -f 0.01 -m -S $WORK/$TRAIN_SCRIPT -M $WORK/$hmm_type/hmm0 $WORK/$hmm_type/$HMMPROTO
 
 echo "Generating HMM definitions..."
 # Now take the prototype file from hmm0, and create the other HMM definitions
 # from it
-grep -A 9999 "<BEGINHMM>" $WORKING_DIRECTORY/$hmm_type/hmm0/$HMMPROTO > $WORKING_DIRECTORY/$hmm_type/hmm0/hmms
-if [ -e $WORKING_DIRECTORY/$hmm_type/hmm0/hmmdefs ]; then
-  rm $WORKING_DIRECTORY/$hmm_type/hmm0/hmmdefs
-fi
-for syllable in $(cat $WORKING_DIRECTORY/$SYLLIST_COMPLETE); do
-  echo "~h $syllable" >> $WORKING_DIRECTORY/$hmm_type/hmm0/hmmdefs
-  cat $WORKING_DIRECTORY/$hmm_type/hmm0/hmms >> $WORKING_DIRECTORY/$hmm_type/hmm0/hmmdefs
+grep -A 9999 "<BEGINHMM>" $WORK/$hmm_type/hmm0/$HMMPROTO > $WORK/$hmm_type/hmm0/hmms
+for syllable in $(cat $WORK/$SYLLIST_COMPLETE); do
+  echo "~h $syllable" >> $WORK/$hmm_type/$feature/hmm0/hmmdefs
+  cat $WORK/$hmm_type/$feature/hmm0/hmms >> $WORK/$hmm_type/$feature/hmm0/hmmdefs
 done
+ 
+echo -n "~o<STREAMINFO> 1 ${input_vector_size}<VECSIZE> ${input_vector_size}<NULLD><${feature_code}><DIAGC>" > $WORK/$hmm_type/$feature/hmm0/macros
 
-echo -n "~o<STREAMINFO> 1 ${input_vector_size}<VECSIZE> ${input_vector_size}<NULLD><${feature_code}><DIAGC>" > $WORKING_DIRECTORY/$hmm_type/hmm0/macros
+cat $WORK/$hmm_type/$feature/hmm0/vFloors >> $WORK/$hmm_type/$feature/hmm0/macros
 
-cat $WORKING_DIRECTORY/$hmm_type/hmm0/vFloors >> $WORKING_DIRECTORY/$hmm_type/hmm0/macros
-
-HHEd -H $WORKING_DIRECTORY/$hmm_type//hmm0/macros -H $WORKING_DIRECTORY/$hmm_type/hmm0/hmmdefs $WORKING_DIRECTORY/$hmm_type/$HHED_SCRIPT $WORKING_DIRECTORY/$SYLLIST_COMPLETE
+${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
 
 for iter in $TRAINING_ITERATIONS_LIST; do
   echo "Training iteration ${iter}..."
   let "nextiter=$iter+1"
-  if [ ! -d $WORKING_DIRECTORY/$hmm_type/hmm$nextiter ]; then
-    mkdir $WORKING_DIRECTORY/$hmm_type/hmm$nextiter
-    HERest -C $WORKING_DIRECTORY/$HMMCONFIG -I $TRAIN_MLF \
-      -t 250.0 150.0 1000.0 -S $TRAIN_SCRIPT \
-      -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/macros -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/hmmdefs \
-      -M $WORKING_DIRECTORY/$hmm_type/hmm$nextiter $WORKING_DIRECTORY/$SYLLIST_COMPLETE
-  fi
+  mkdir $WORK/$hmm_type/hmm$nextiter
+  ${HTK_PREFIX}HERest -C $WORK/$HMMCONFIG -I $WORK/$TRAIN_MLF \
+    -t 250.0 150.0 1000.0 -S $WORK/$TRAIN_SCRIPT \
+    -H $WORK/$hmm_type/hmm$iter/macros -H $WORK/$hmm_type/hmm$iter/hmmdefs \
+    -M $WORK/$hmm_type/hmm$nextiter $WORK/$SYLLIST_COMPLETE
 done
 
 for iter in $TESTING_ITERATIONS_LIST; do
   echo "Testing iteration ${iter}..."
-  if [ ! -f $WORKING_DIRECTORY/$hmm_type/${RESULTS_FILE}_iteration_$iter ]; then
-    HVite -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/macros -H $WORKING_DIRECTORY/$hmm_type/hmm$iter/hmmdefs \
-      -C $WORKING_DIRECTORY/$HMMCONFIG -S $TEST_SCRIPT -i $WORKING_DIRECTORY/$hmm_type/$RECOUT \
-      -w $WORKING_DIRECTORY/$WDNET -p 0.0 -s 5.0 $WORKING_DIRECTORY/$DICT $WORKING_DIRECTORY/$SYLLIST_COMPLETE
-    echo "Results from testing on iteration ${iter}..."
-    HResults -e "???" ${SILENCE} -I $TEST_MLF $WORKING_DIRECTORY/$SYLLIST_COMPLETE $WORKING_DIRECTORY/$hmm_type/$RECOUT
-    HResults -p -t -e "???" ${SILENCE} \
-      -I $TEST_MLF $WORKING_DIRECTORY/$SYLLIST_COMPLETE $WORKING_DIRECTORY/$hmm_type/$RECOUT > $WORKING_DIRECTORY/$hmm_type/${RESULTS_FILE}_iteration_$iter
-  fi
-  # Count the number of instances of each talker appearing in the list of errors.
-  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.*/\2p\3s/" | sort | uniq -c > $WORKING_DIRECTORY/$hmm_type/${MISCLASSIFIED}_iteration_$iter
-  python ./cnbh-syllables/results_plotting/gen_results.py --input_file=$WORKING_DIRECTORY/$hmm_type/${MISCLASSIFIED}_iteration_$iter --train_talkers=$WORKING_DIRECTORY/training_talkers --test_talkers=$WORKING_DIRECTORY/testing_talkers --spoke_pattern=$SPOKE_PATTERN_FILE > $WORKING_DIRECTORY/$hmm_type/results_iteration_${iter}.txt
-  python ./cnbh-syllables/results_plotting/spider_plot.py --input_file=$WORKING_DIRECTORY/$hmm_type/results_iteration_${iter}.txt --output_file=$WORKING_DIRECTORY/$hmm_type/results_iteration_${iter}.pdf
+  ${HTK_PREFIX}HVite -H $WORK/$hmm_type/hmm$iter/macros -H $WORK/$hmm_type/hmm$iter/hmmdefs \
+    -C $WORK/$HMMCONFIG -S $WORK/$TEST_SCRIPT -i $WORK/$hmm_type/$RECOUT \
+    -w $WORK/$WDNET -p 0.0 -s 5.0 $WORK/$DICT $WORK/$SYLLIST_COMPLETE
+  echo "Results from testing on iteration ${iter}..."
+  ${HTK_PREFIX}HResults -e "???" ${SILENCE} -I $WORK/$TEST_MLF $WORK/$SYLLIST_COMPLETE $WORK/$hmm_type/$RECOUT
+  ${HTK_PREFIX}HResults -p -t -e "???" ${SILENCE} \
+    -I $WORK/$TEST_MLF $WORK/$SYLLIST_COMPLETE $WORK/$hmm_type/$RECOUT > $WORK/$hmm_type/${RESULTS_FILE}_iteration_$iter
+  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
 done
-touch $WORKING_DIRECTORY/$hmm_type/.hmm_success
-
-
--- a/experiments/scripts/cnbh-syllables/run_training_and_testing/test_features.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/run_training_and_testing/test_features.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -5,7 +5,7 @@
 #
 # Copyright 2009-2010 University of Cambridge
 # Author: Thomas Walters <tom@acousticscale.org>
-#
+# 
 # Run multiple HMMs
 
 set -e
@@ -18,26 +18,35 @@
 MIXTURE_COMPONENTS_LIST=$5
 TRAINING_ITERATIONS_LIST=$6
 TESTING_ITERATIONS_LIST=$7
-input_vector_size=$8
-feature_code=$9
-TRAIN_SCRIPT=${10}
-TEST_SCRIPT=${11}
-TRAIN_MLF=${12}
-TEST_MLF=${13}
-SPOKE_PATTERN_FILE=${14}
+FEATURE_SIZE=$8
+FEATURE_TYPE=$9
 
-HMMCONFIG=hmm_configuration
 
-THIS_DIR=`dirname $0`
+TRAIN_SPEAKERS=train_speakers
+TEST_SPEAKERS=test_speakers
 
-if [ "$feature_code" == "MFCC_0_D_A" ]
+# These are not
+SYLLIST_COMPLETE=syllist
+GRAM=gram
+DICT=dict
+WDNET=wdnet
+TRAIN_MLF=train.mlf
+TEST_MLF=test.mlf
+HMMCONFIG=hmmconfig
+
+
+
+
+
+
+if [ "$MFCC_FEATURES" ]
 then
-  cat <<"EOF" > $WORKING_DIRECTORY/$HMMCONFIG
+  cat <<"EOF" > $WORK/$HMMCONFIG
 # Coding parameters
 SOURCEFORMAT= HTK
 EOF
 else
-  cat <<"EOF" > $WORKING_DIRECTORY/$HMMCONFIG
+  cat <<"EOF" > $WORK/$HMMCONFIG
 # Coding parameters
 # The TARGETKIND and SOURCEKIND lines are to add deltas and delta-deltas to
 # the AIM features
@@ -47,10 +56,9 @@
 EOF
 fi
 
-for total_hmm_states in $HMM_STATES_LIST; do
-  for mixture_components in $MIXTURE_COMPONENTS_LIST; do
-    . $THIS_DIR/run_test_instance.sh &
-    #. $THIS_DIR/run_test_instance.sh
+for total_hmm_states in 3 4 5 6 7 8; do
+  for mixture_components in 1 2 3 4 5 6 7; do
+    . run_test_instance.sh &
   done
 done
 echo "Waiting..."
--- a/experiments/scripts/cnbh-syllables/run_training_and_testing/train_test_sets/generate_train_test_lists.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/cnbh-syllables/run_training_and_testing/train_test_sets/generate_train_test_lists.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -23,21 +23,14 @@
 TEST_SCRIPT=testing_script
 SYLLIST=syllable_list
 
-BASEDIR=`dirname $0`
-
 if [ $TALKERS == "inner_talkers" ]; then
-    $BASEDIR/train_on_central.sh $WORK/training_talkers $WORK/testing_talkers
+    ./train_on_central.sh $WORK/training_talkers $WORK/testing_talkers
 fi
 
 if [ $TALKERS == "outer_talkers" ]; then
-    $BASEDIR/train_on_extrema.sh $WORK/training_talkers $WORK/testing_talkers
+    ./train_on_extrema.sh $WORK/training_talkers $WORK/testing_talkers
 fi
 
-# In general, we want to do our testing on all the talkers (training talkers and
-# testing talkers) so the train and test talkers are combined here to make a single
-# testing set.
-cat $WORK/training_talkers $WORK/testing_talkers > $WORK/all_talkers
-
 # The vowels and consonants that make up the CNBH database
 VOWELS="a e i o u"
 CONSONANTS="b d f g h k l m n p r s t v w x y z"
@@ -88,7 +81,7 @@
     echo "$SILENCE" >&4
     echo "." >&4
   done
-  for speaker in $(cat $WORK/all_talkers); do
+  for speaker in $(cat $WORK/testing_talkers); do
     DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker} 
     echo "'\"${DEST_FILENAME}.lab\"'" >&6
     echo "$SILENCE" >&6
@@ -116,7 +109,7 @@
     DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}
     echo "'${DEST_FILENAME}.${FEATURE_NAME}'" >&7
   done
-  for speaker in $(cat $WORK/all_talkers); do
+  for speaker in $(cat $WORK/testing_talkers); do
     DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}
       echo "'${DEST_FILENAME}.${FEATURE_NAME}'" >&8
   done
@@ -125,7 +118,4 @@
 exec 8>&-
 
 rm $WORK/${SYLLIST}
-# Note: don't delete 'all_talkers', 'training_talkers' or 'testing_talkers' because
-# they're used later by the plotting scripts.
-
-
+rm $WORK/training_talkers $WORK/testing_talkers
\ No newline at end of file
--- a/experiments/scripts/master.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/master.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -4,42 +4,19 @@
 # Run a series of experiments which compare MFCC features generated by HTK to
 # AIM features generated using AIM-C using a series of syllable recogntiton
 # tasks.
-# This script expects to be run from within the AIM-C source tree.
-# It builds the HTK binaries and AIM-C AIMCopy binary if they're not
-# present.
-# The following environment varaibles should be set before this script is run:
-# SYLLABLES_DATABASE_URL - URL of a tar file containing the CNBH syllables
-# database in FLAC format
-# HTK_USERNAME and HTK_PASSWORD - username and password for the site at
-# http://htk.eng.cam.ac.uk/
-# NUMBER_OF_CORES - total number of machine cores
-
-sudo apt-get -y update
-sudo apt-get -y install bc subversion scons pkg-config \
-                libsndfile1-dev build-essential libboost-dev \
-                python sox python-matplotlib libcairo-dev
-
-# For 64-bit systems, uncomment this line:
-sudo apt-get -y install libc6-dev-i386
+# This script expects the HTK binaries and AIM-C AIMCopy binary to be present
+# in the PATH.
 
 # Set these to be the location of your input database, and desired output
-# locations. (Note: the user running this script needs write permissions on
-# the $WORKING_VOLUME.)
-WORKING_VOLUME=/mnt/scratch0/aim
-
-SYLLABLES_DATABASE_TAR=$WORKING_VOLUME/001-downloaded_sounds_data/cnbh-syllables.tar
-SOUNDS_ROOT=$WORKING_VOLUME/002-sounds/
-FEATURES_ROOT=$WORKING_VOLUME/003-features/
-HMMS_ROOT=$WORKING_VOLUME/004-hmms/
-HTK_ROOT=$WORKING_VOLUME/software/htk/
-AIMC_ROOT=$WORKING_VOLUME/software/aimc/
-
-THIS_DIR=`dirname $0`
-AIMCOPY_CONFIGURATION_FILE=$THIS_DIR/cnbh-syllables/feature_generation/ssi_profile_features.aimcopycfg
+# locations.
+SYLLABLES_DATABASE_TAR=/media/sounds/cnbh-syllables.tar
+SOUNDS_ROOT=/mnt/experiments/sounds/
+FEATURES_ROOT=/mnt/experiments/features/
+HMMS_ROOT=/mnt/experiments/hmms/
 
 # Number of cores on the experimental machine. Various scripts will try to use
 # this if it's set.
-# NUMBER_OF_CORES=8
+NUMBER_OF_CORES=2
 
 # Fail if any command fails
 set -e
@@ -47,41 +24,27 @@
 # Fail if any variable is unset
 set -u
 
-######
-# Step 001 - Get the sounds database
-if [ ! -e $SYLLABLES_DATABASE_TAR ]; then
-  mkdir -p `dirname $SYLLABLES_DATABASE_TAR`
-  wget -O $SYLLABLES_DATABASE_TAR $SYLLABLES_DATABASE_URL
-fi
-
 if [ ! -d $SOUNDS_ROOT ]; then
   mkdir -p $SOUNDS_ROOT
 fi
 
-# Untar the CNBH syllables database, and convert the files from FLAC to WAV.
+# Untar the CNBH syllables database, and convert the files from FLAC to WAV
 if [ ! -e $SOUNDS_ROOT/.untar_db_success ]; then
   tar -x -C $SOUNDS_ROOT -f $SYLLABLES_DATABASE_TAR
   touch $SOUNDS_ROOT/.untar_db_success
 fi
 
 # Convert the database to .WAV format and place it in $SOUNDS_ROOT/clean
-echo "Converting CNBH-syllables database from FLAC to WAV..."
-./cnbh-syllables/feature_generation/convert_flac_to_wav.sh $SOUNDS_ROOT
-#
-######
+./cnbh-syllables/convert_flac_to_wave.sh $SOUNDS_ROOT
 
-#####
-# Step 002 -
 # Generate versions of the CNBH syllables spoke pattern with a range of
 # signal-to-noise ratios (SNRs). The versions are put in the directory
 # ${SOUNDS_ROOT}/${SNR}_dB/ for each SNR in $SNRS.
-SNRS="45"#" 42 39 36 33" #" 30 27 24 21 18 15 12 9 6 3 0"
-#SNRS="30" # For testing
-./cnbh-syllables/feature_generation/pink_noise.sh $SOUNDS_ROOT/clean/ "$SNRS"
+SNRS="30 27 24 21 18 15 12 9 6 3 0"
+./cnbh-syllables/pink_noise.sh $SOUNDS_ROOT/clean/ $SNRS
 
 # Make the list of all feature drectories
-#FEATURE_DIRS="clean"
-FEATURE_DIRS=""
+FEATURE_DIRS="clean"
 for SNR in $SNRS; do
   FEATURE_DIRS="$FEATURE_DIRS snr_${SNR}dB"
 done
@@ -89,185 +52,44 @@
 # Generate feature sets (for the full range of SNRs in $FEATURE_DIRS)
 # 1. Standard MFCC features
 # 2. AIM features
-# 3. MFCC features with optimal VTLN
-
-if [ ! -d $FEATURES_ROOT ]; then
- mkdir -p $FEATURES_ROOT
-fi
-
-if [ ! -e $HTK_ROOT/.htk_installed_success ]; then
-  ./HTK/install_htk.sh $HTK_ROOT
-fi
-
-if [ ! -e $AIMC_ROOT/.aimc_build_success ]; then
- ./aimc/build_aimc.sh $AIMC_ROOT
-fi
-export PATH=$PATH:$AIMC_ROOT/build/posix-release/
-
+# 3. MFCC features with optimal VTLN 
 for SOURCE_SNR in $FEATURE_DIRS; do
-  if [ ! -e $FEATURES_ROOT/mfcc/$SOURCE_SNR/.make_mfcc_features_success ]; then
+  
+  if [ ! -e $FEATURES_ROOT/mfcc/$SOURCE_SNR/.make_mfcc_features_success]
+  then
     mkdir -p $FEATURES_ROOT/mfcc/$SOURCE_SNR/
     # Generate the list of files to convert
-    ./cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh $FEATURES_ROOT/mfcc/$SOURCE_SNR/ $SOUNDS_ROOT/$SOURCE_SNR/ htk
+    ./cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh $FEATURES_ROOT/mfcc/$SOURCE_SNR/ $SOUNDS_ROOT/$SOURCE_SNR/
     # Run the conversion
     ./cnbh-syllables/feature_generation/run_hcopy.sh $FEATURES_ROOT/mfcc/$SOURCE_SNR/ $NUMBER_OF_CORES
     touch $FEATURES_ROOT/mfcc/$SOURCE_SNR/.make_mfcc_features_success
-  fi
+  done
 
-  if [ ! -e $FEATURES_ROOT/mfcc_vtln/$SOURCE_SNR/.make_mfcc_vtln_features_success ]; then
+  if [ ! -e $FEATURES_ROOT/mfcc_vtln/$SOURCE_SNR/.make_mfcc_vtln_features_success]
+  then
     mkdir -p $FEATURES_ROOT/mfcc_vtln/$SOURCE_SNR/
     # Generate the file list and run the conversion (all one step, since this
-    # version uses a different configuration for each talker)
+    # version uses a different configuraiton for each talker)
     ./cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh $FEATURES_ROOT/mfcc_vtln/$SOURCE_SNR/ $SOUNDS_ROOT/$SOURCE_SNR/
     touch $FEATURES_ROOT/mfcc_vtln/$SOURCE_SNR/.make_mfcc_vtln_features_success
-  fi
+  done
 
-  if [ ! -e $FEATURES_ROOT/aim/$SOURCE_SNR/.make_aim_features_success ]; then
-    mkdir -p $FEATURES_ROOT/aim/$SOURCE_SNR/
-    ./cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh $FEATURES_ROOT/aim/$SOURCE_SNR/ $SOUNDS_ROOT/$SOURCE_SNR/ ""
+  if [ ! -e $FEATURES_ROOT/aim/$SOURCE_SNR/.make_aim_features_success]
+  then
+    mkdir -p $FEATURES_ROOT/aim/$SOURCE_SNR/ 
+    ./cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh $FEATURES_ROOT/aim/$SOURCE_SNR/ $SOUNDS_ROOT/$SOURCE_SNR/
     # Run the conversion
-    ./cnbh-syllables/feature_generation/run_aimcopy.sh $AIMCOPY_CONFIGURATION_FILE $FEATURES_ROOT/aim/$SOURCE_SNR/ $NUMBER_OF_CORES
+    ./cnbh-syllables/feature_generation/run_aimcopy.sh $FEATURES_ROOT/aim/$SOURCE_SNR/ $NUMBER_OF_CORES
     touch $FEATURES_ROOT/aim/$SOURCE_SNR/.make_aim_features_success
-  fi
-done
-
-mkdir -p $HMMS_ROOT
+  done
+done 
 
 # Now run a bunch of experiments.
 # For each of the feature types, we want to run HMMs with a bunch of
 # parameters.
-TRAINING_ITERATIONS="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15" # 16 17 18 19 20"
-#TESTING_ITERATIONS="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15" #" 16 17 18 19 20"
-TESTING_ITERATIONS="15"
-#HMM_STATES="3 4 5 6 7 8"
-HMM_STATES="4"
-#HMM_OUTPUT_COMPONENTS="1 2 3 4 5 6 7"
-HMM_OUTPUT_COMPONENTS="4"
+TRAINING_ITERATIONS="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
+TESTING_ITERATIONS="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
+HMM_STATES="3 4 5 6 7 8"
+HMM_OUTPUT_COMPONENTS=""
 
-run_train_test () {
-# TODO(tom): Make sure that the training SNR is generated first
-for SOURCE_SNR in $FEATURE_DIRS; do
-WORK=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$SOURCE_SNR/$TALKERS/
-mkdir -p $WORK
-FEATURES_DIR=$FEATURES_ROOT/$FEATURE_CLASS/$SOURCE_SNR/
-SPOKE_PATTERN_FILE=`pwd`/cnbh-syllables/run_training_and_testing/train_test_sets/gen_spoke_points/spoke_pattern.txt
 
-./cnbh-syllables/run_training_and_testing/train_test_sets/generate_train_test_lists.sh \
-    $TALKERS \
-    $WORK \
-    $FEATURES_DIR \
-    $FEATURE_SUFFIX
-
-if [ $TRAINING_SNR == 'random' ]; then
-  TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_script
-  TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_master_label_file
-  RANDOMIZED_TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_script_randomized
-  RANDOMIZED_TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_master_label_file_randomized
-  ./cnbh-syllables/run_training_and_testing/train_test_sets/randomize_snrs.py -s clean -f $TRAINING_SCRIPT -m $TRAINING_MASTER_LABEL_FILE -o $RANDOMIZED_TRAINING_SCRIPT -p $RANDOMIZED_TRAINING_MASTER_LABEL_FILE
-  TRAINING_SCRIPT=$RANDOMIZED_TRAINING_SCRIPT
-  TRAINING_MASTER_LABEL_FILE=$RANDOMIZED_TRAINING_MASTER_LABEL_FILE
-else
-  TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_script
-  TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_master_label_file
-fi
-
-TESTING_SCRIPT=$WORK/testing_script
-TESTING_MASTER_LABEL_FILE=$WORK/testing_master_label_file
-
-./cnbh-syllables/run_training_and_testing/gen_htk_base_files.sh $WORK
-
-./cnbh-syllables/run_training_and_testing/test_features.sh \
-    "$WORK" \
-    "$FEATURES_ROOT/$FEATURE_CLASS/$SOURCE_SNR/" \
-    "$FEATURE_SUFFIX" \
-    "$HMM_STATES" \
-    "$HMM_OUTPUT_COMPONENTS" \
-    "$TRAINING_ITERATIONS" \
-    "$TESTING_ITERATIONS" \
-    "$FEATURE_SIZE" \
-    "$FEATURE_TYPE" \
-    "$TRAINING_SCRIPT" \
-    "$TESTING_SCRIPT" \
-    "$TRAINING_MASTER_LABEL_FILE" \
-    "$TESTING_MASTER_LABEL_FILE" \
-    "$SPOKE_PATTERN_FILE"
-done
-}
-
-########################
-# Standard MFCCs
-FEATURE_CLASS=mfcc
-FEATURE_SUFFIX=htk
-FEATURE_SIZE=39
-FEATURE_TYPE=MFCC_0_D_A
-TALKERS=inner_talkers
-TRAINING_SNR=random
-run_train_test
-########################
-
-########################
-# Standard MFCCs
-# Train on extrema
-FEATURE_CLASS=mfcc
-FEATURE_SUFFIX=htk
-FEATURE_SIZE=39
-FEATURE_TYPE=MFCC_0_D_A
-TALKERS=outer_talkers
-TRAINING_SNR=clean
-#run_train_test
-########################
-
-########################
-# MFCCs with VTLN
-FEATURE_CLASS=mfcc_vtln
-FEATURE_SUFFIX=htk
-FEATURE_SIZE=39
-FEATURE_TYPE=MFCC_0_D_A
-TALKERS=inner_talkers
-TRAINING_SNR=random
-run_train_test
-########################
-
-########################
-# MFCCs with VTLN
-# Train on extrema
-FEATURE_CLASS=mfcc_vtln
-FEATURE_SUFFIX=htk
-FEATURE_SIZE=39
-FEATURE_TYPE=MFCC_0_D_A
-TALKERS=outer_talkers
-TRAINING_SNR=random
-#run_train_test
-########################
-
-AIM_FEATURE_SUFFIXES="slice_1_no_cutoff ssi_profile_no_cutoff slice_1_cutoff ssi_profile_cutoff smooth_nap_profile"
-for f in $AIM_FEATURE_SUFFIXES
-do
-########################
-# AIM Features
-# Inner talkers
-FEATURE_CLASS=aim
-FEATURE_SUFFIX=$f
-FEATURE_SIZE=12
-FEATURE_TYPE=USER_E_D_A
-TALKERS=inner_talkers
-TRAINING_SNR=random
-run_train_test
-########################
-
-########################
-# AIM Features
-# Inner talkers
-FEATURE_CLASS=aim
-FEATURE_SUFFIX=$f
-FEATURE_SIZE=12
-FEATURE_TYPE=USER_E_D_A
-TALKERS=outer_talkers
-TRAINING_SNR=clean
-#run_train_test
-########################
-done
-
-
-
-
--- a/experiments/scripts/setup_aws_instance.sh	Thu Jul 22 19:03:51 2010 +0000
+++ b/experiments/scripts/setup_aws_instance.sh	Wed Aug 04 06:41:56 2010 +0000
@@ -1,19 +1,4 @@
 #!/bin/bash
 # Run ami-2fc2e95b (32 bit) or ami-05c2e971 (64 bit) in eu-west zone 
-# ec2-run-instances  --user-data-file ec2_user_data.sh --key tom_eu_west --instance-type m1.small --instance-count 1 --region eu-west-1 --availability-zone eu-west-1b ami-2fc2e95b
-# ec2-run-instances --user-data-file ec2_user_data.sh --key tom_eu_west --instance-type c1.xlarge --instance-count 1 --region eu-west-1 --availability-zone eu-west-1b ami-05c2e971
-su ubuntu
 sudo apt-get -y update
-sudo apt-get -y install bc subversion scons pkg-config libsndfile1-dev build-essential libboost-dev python sox python-matplotlib
-
-# For 64-bit systems, uncomment this line:
-sudo apt-get -y install libc6-dev-i386
-
-sudo mkdir -p /mnt/aimc
-sudo chown `whoami` /mnt/aimc
-sudo mkdir -p /mnt/log
-sudo chown `whoami` /mnt/log
-cd /mnt/aimc
-svn checkout http://aimc.googlecode.com/svn/trunk/ aimc-read-only
-cd aimc-read-only/experiments/scripts/
-./master.sh &> /mnt/log/log.log
+sudo apt-get -y install subversion scons pkg-config libsndfile-dev build-essential libboost-dev libc6-dev-i386 python