annotate experiments/scripts/cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh @ 170:df9b49dba8fa

- AWS scripts update (path 2)
author tomwalters
date Wed, 11 Aug 2010 09:09:38 +0000
parents f75123cf39ce
children e963e6bd5d90
rev   line source
tomwalters@54 1 #!/bin/bash
tomwalters@54 2 #
tomwalters@165 3
tomwalters@54 4 HCOPY=`which HCopy`
tomwalters@165 5 if [ $HCOPY == "" ]; then
tomwalters@54 6 echo "Please build HTK and make the binaries available in the path"
tomwalters@54 7 fi
tomwalters@54 8
tomwalters@54 9 set -e
tomwalters@54 10 set -u
tomwalters@54 11
tomwalters@54 12 FEATURES_DIR=$1
tomwalters@54 13 SOUND_SOURCE=$2
tomwalters@54 14
tomwalters@54 15 FULL_LIST=feature_generation_script
tomwalters@54 16
tomwalters@54 17 # Temporary file names
tomwalters@54 18 SYLLIST=syllable_list
tomwalters@54 19 TALKERS=talker_list
tomwalters@54 20
tomwalters@54 21 # The vowels and consonants that make up the CNBH database
tomwalters@54 22 VOWELS="a e i o u"
tomwalters@54 23 CONSONANTS="b d f g h k l m n p r s t v w x y z"
tomwalters@54 24
tomwalters@54 25 if [ ! -e $FEATURES_DIR/.features_script_success ]; then
tomwalters@54 26 mkdir -p $FEATURES_DIR
tomwalters@54 27
tomwalters@54 28 # Make the sets of VC, CV, and vowel only labels, plus silence and use them to
tomwalters@54 29 # generate the grammar, dictionary and list of syllables
tomwalters@54 30 if [ -a $FEATURES_DIR/$SYLLIST.tmp.tmp ]
tomwalters@54 31 then
tomwalters@54 32 rm $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 33 fi
tomwalters@54 34
tomwalters@54 35 for v in $VOWELS; do
tomwalters@54 36 for c in $CONSONANTS; do
tomwalters@54 37 echo $v$c >> $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 38 echo $c$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 39 done
tomwalters@54 40 done
tomwalters@54 41
tomwalters@54 42 # Sort the syllable list and delete the
tomwalters@54 43 # temporary, unsorted version
tomwalters@54 44 sort $FEATURES_DIR/$SYLLIST.tmp.tmp > $FEATURES_DIR/$SYLLIST.tmp
tomwalters@54 45 rm $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 46
tomwalters@54 47 cat <<"EOF" > $FEATURES_DIR/${TALKERS}.tmp
tomwalters@54 48 170.9p112.2s
tomwalters@54 49 171.0p112.8s
tomwalters@54 50 171.3p111.7s
tomwalters@54 51 171.5p113.1s
tomwalters@54 52 171.9p111.5s
tomwalters@54 53 172.1p113.0s
tomwalters@54 54 172.4p111.9s
tomwalters@54 55 172.5p112.5s
tomwalters@54 56 171.7p112.3s
tomwalters@54 57 137.0p104.3s
tomwalters@54 58 141.3p135.4s
tomwalters@54 59 145.5p106.3s
tomwalters@54 60 148.8p128.8s
tomwalters@54 61 151.6p83.9s
tomwalters@54 62 153.0p108.1s
tomwalters@54 63 155.5p123.5s
tomwalters@54 64 156.7p90.6s
tomwalters@54 65 159.5p109.6s
tomwalters@54 66 161.1p119.4s
tomwalters@54 67 161.1p96.8s
tomwalters@54 68 163.4p157.6s
tomwalters@54 69 164.7p110.8s
tomwalters@54 70 164.9p102.1s
tomwalters@54 71 165.6p144.0s
tomwalters@54 72 165.7p116.2s
tomwalters@54 73 167.4p133.5s
tomwalters@54 74 167.8p106.5s
tomwalters@54 75 168.6p111.6s
tomwalters@54 76 168.9p125.4s
tomwalters@54 77 169.0p114.0s
tomwalters@54 78 170.0p109.7s
tomwalters@54 79 170.1p119.5s
tomwalters@54 80 171.0p115.5s
tomwalters@54 81 172.4p109.3s
tomwalters@54 82 173.3p105.6s
tomwalters@54 83 173.5p115.0s
tomwalters@54 84 174.5p100.6s
tomwalters@54 85 174.5p110.6s
tomwalters@54 86 174.9p113.0s
tomwalters@54 87 175.7p118.5s
tomwalters@54 88 176.1p94.5s
tomwalters@54 89 178.0p108.5s
tomwalters@54 90 178.1p87.6s
tomwalters@54 91 178.8p123.6s
tomwalters@54 92 179.0p113.9s
tomwalters@54 93 180.4p80.1s
tomwalters@54 94 183.0p105.7s
tomwalters@54 95 183.0p130.4s
tomwalters@54 96 184.8p115.1s
tomwalters@54 97 188.1p139.2s
tomwalters@54 98 189.6p102.1s
tomwalters@54 99 192.7p116.7s
tomwalters@54 100 194.5p150.4s
tomwalters@54 101 198.1p97.9s
tomwalters@54 102 202.7p118.6s
tomwalters@54 103 208.6p93.2s
tomwalters@54 104 215.2p121.0s
tomwalters@54 105 EOF
tomwalters@54 106
tomwalters@165 107 echo "Generating script..."
tomwalters@165 108 exec 3> $FEATURES_DIR/$FULL_LIST
tomwalters@165 109 for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
tomwalters@165 110 for speaker in $(cat $FEATURES_DIR/${TALKERS}.tmp); do
tomwalters@165 111 SOURCE_FILENAME=$SOUND_SOURCE/$syllable/${syllable}${speaker}.wav
tomwalters@165 112 DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}.htk
tomwalters@165 113 echo "$SOURCE_FILENAME ${DEST_FILENAME}" >&3
tomwalters@165 114 done
tomwalters@165 115 done
tomwalters@165 116 exec 3>&-
tomwalters@54 117
tomwalters@54 118 # Make the necessary directories for the computed features
tomwalters@54 119 echo "Making directory structure..."
tomwalters@54 120 for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
tomwalters@54 121 mkdir -p $FEATURES_DIR/$syllable
tomwalters@54 122 done
tomwalters@54 123
tomwalters@165 124
tomwalters@54 125 echo "Creating HCopy config file..."
tomwalters@54 126 cat <<"EOF" > $FEATURES_DIR/${HCOPY_CONFIG}
tomwalters@54 127 # Coding parameters
tomwalters@54 128 SOURCEFORMAT= WAV
tomwalters@54 129 TARGETKIND = MFCC_0_D_A
tomwalters@54 130 TARGETRATE = 100000.0
tomwalters@54 131 SAVECOMPRESSED = T
tomwalters@54 132 SAVEWITHCRC = T
tomwalters@54 133 WINDOWSIZE = 250000.0
tomwalters@54 134 USEHAMMING = T
tomwalters@54 135 PREEMCOEF = 0.97
tomwalters@54 136 NUMCHANS = 200
tomwalters@54 137 CEPLIFTER = 22
tomwalters@54 138 NUMCEPS = 12
tomwalters@54 139 ENORMALISE = F
tomwalters@54 140 # Parameters a bit like Welling and Ney (2002)
tomwalters@54 141 # Can't do zero, it seems.
tomwalters@54 142 WARPLCUTOFF = 10
tomwalters@54 143 # Upper frequency is the Nyquist freq. (24000Hz)
tomwalters@54 144 # so choose the break freq. close to that
tomwalters@165 145 WARPUCUTOFF = 23000
tomwalters@54 146 EOF
tomwalters@54 147
tomwalters@165 148 #echo "Splitting data files..."
tomwalters@165 149 #cat $WORK/${TRAIN_LIST} $WORK/${TEST_LIST} > $WORK/${COMBINED_LIST}
tomwalters@165 150
tomwalters@165 151 for TALKER in $(cat $FEATURES_DIR/$TALKERS); do
tomwalters@54 152 cp $FEATURES_DIR/${HCOPY_CONFIG} $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER
tomwalters@165 153 scale=`echo $speaker | sed 's/.*p//' | sed 's/s.*//'`
tomwalters@54 154 warpfactor=0`echo "scale=4; 100.0/$scale" | bc`
tomwalters@165 155 echo "WARPFREQ = $warpfactor" >> $WORK/${HCOPY_CONFIG}_$TALKER
tomwalters@165 156 ${HTK_PREFIX}HCopy -T 1 -C $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER -S $FEATURES_DIR/${TRAIN_LIST}_$TALKER &
tomwalters@54 157 done
tomwalters@54 158
tomwalters@165 159 echo "Waiting for tasks to complete..."
tomwalters@165 160 wait
tomwalters@165 161 echo "Done!"
tomwalters@54 162
tomwalters@54 163 rm $FEATURES_DIR/$SYLLIST.tmp
tomwalters@54 164 rm $FEATURES_DIR/${TALKERS}.tmp
tomwalters@54 165 touch $FEATURES_DIR/.features_script_success
tomwalters@165 166 fi