annotate experiments/scripts/cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh @ 639:7c3671f98280

Update build to work with older versions of gcc (4.6). Also includes some minor cosmetic whitespace changes to the C++ source.
author ronw@google.com
date Tue, 28 May 2013 17:54:18 +0000
parents 5fedc383a608
children
rev   line source
tomwalters@54 1 #!/bin/bash
tomwalters@54 2 # Copyright 2009-2010 Thomas Walters <tom@acousticscale.org>
tomwalters@54 3 #
tomwalters@54 4 # Generate a list of source and destination filenames from the syllables spoke
tomwalters@54 5 # pattern. This list can be used as a script for HTK's HCopy and AIM-C's
tomwalters@54 6 # AIMCopy binaries for generating features.
tomwalters@54 7 #
tomwalters@54 8 # The first argument is the path to the root directory for the features to be
tomwalters@54 9 # generated in. The second argument is the path to the sounds database.
tomwalters@54 10 #
tomwalters@54 11 # Generated files:
tomwalters@54 12 # feature_generation_script - The AIMCopy / HCopy script
tomwalters@54 13
tomwalters@54 14 FEATURES_DIR=$1
tomwalters@54 15 SOUND_SOURCE=$2
tomwalters@189 16 SUFFIX=$3
tomwalters@54 17
tomwalters@54 18 FULL_LIST=feature_generation_script
tomwalters@54 19
tomwalters@54 20 # Temporary file names
tomwalters@54 21 SYLLIST=syllable_list
tomwalters@54 22 TALKERS=talker_list
tomwalters@54 23
tomwalters@54 24 # The vowels and consonants that make up the CNBH database
tomwalters@54 25 VOWELS="a e i o u"
tomwalters@54 26 CONSONANTS="b d f g h k l m n p r s t v w x y z"
tomwalters@54 27
tomwalters@54 28 if [ ! -e $FEATURES_DIR/.features_script_success ]; then
tomwalters@54 29 mkdir -p $FEATURES_DIR
tomwalters@54 30
tomwalters@54 31 # Make the sets of VC, CV, and vowel only labels, plus silence and use them to
tomwalters@54 32 # generate the grammar, dictionary and list of syllables
tomwalters@54 33 if [ -a $FEATURES_DIR/$SYLLIST.tmp.tmp ]
tomwalters@54 34 then
tomwalters@54 35 rm $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 36 fi
tomwalters@54 37
tomwalters@54 38 for v in $VOWELS; do
tomwalters@197 39 echo $v$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 40 for c in $CONSONANTS; do
tomwalters@54 41 echo $v$c >> $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 42 echo $c$v >> $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 43 done
tomwalters@54 44 done
tomwalters@54 45
tomwalters@54 46 # Sort the syllable list and delete the
tomwalters@54 47 # temporary, unsorted version
tomwalters@54 48 sort $FEATURES_DIR/$SYLLIST.tmp.tmp > $FEATURES_DIR/$SYLLIST.tmp
tomwalters@54 49 rm $FEATURES_DIR/$SYLLIST.tmp.tmp
tomwalters@54 50
tomwalters@54 51 cat <<"EOF" > $FEATURES_DIR/${TALKERS}.tmp
tomwalters@54 52 170.9p112.2s
tomwalters@54 53 171.0p112.8s
tomwalters@54 54 171.3p111.7s
tomwalters@54 55 171.5p113.1s
tomwalters@54 56 171.9p111.5s
tomwalters@54 57 172.1p113.0s
tomwalters@54 58 172.4p111.9s
tomwalters@54 59 172.5p112.5s
tomwalters@54 60 171.7p112.3s
tomwalters@54 61 137.0p104.3s
tomwalters@54 62 141.3p135.4s
tomwalters@54 63 145.5p106.3s
tomwalters@54 64 148.8p128.8s
tomwalters@54 65 151.6p83.9s
tomwalters@54 66 153.0p108.1s
tomwalters@54 67 155.5p123.5s
tomwalters@54 68 156.7p90.6s
tomwalters@54 69 159.5p109.6s
tomwalters@54 70 161.1p119.4s
tomwalters@54 71 161.1p96.8s
tomwalters@54 72 163.4p157.6s
tomwalters@54 73 164.7p110.8s
tomwalters@54 74 164.9p102.1s
tomwalters@54 75 165.6p144.0s
tomwalters@54 76 165.7p116.2s
tomwalters@54 77 167.4p133.5s
tomwalters@54 78 167.8p106.5s
tomwalters@54 79 168.6p111.6s
tomwalters@54 80 168.9p125.4s
tomwalters@54 81 169.0p114.0s
tomwalters@54 82 170.0p109.7s
tomwalters@54 83 170.1p119.5s
tomwalters@54 84 171.0p115.5s
tomwalters@54 85 172.4p109.3s
tomwalters@54 86 173.3p105.6s
tomwalters@54 87 173.5p115.0s
tomwalters@54 88 174.5p100.6s
tomwalters@54 89 174.5p110.6s
tomwalters@54 90 174.9p113.0s
tomwalters@54 91 175.7p118.5s
tomwalters@54 92 176.1p94.5s
tomwalters@54 93 178.0p108.5s
tomwalters@54 94 178.1p87.6s
tomwalters@54 95 178.8p123.6s
tomwalters@54 96 179.0p113.9s
tomwalters@54 97 180.4p80.1s
tomwalters@54 98 183.0p105.7s
tomwalters@54 99 183.0p130.4s
tomwalters@54 100 184.8p115.1s
tomwalters@54 101 188.1p139.2s
tomwalters@54 102 189.6p102.1s
tomwalters@54 103 192.7p116.7s
tomwalters@54 104 194.5p150.4s
tomwalters@54 105 198.1p97.9s
tomwalters@54 106 202.7p118.6s
tomwalters@54 107 208.6p93.2s
tomwalters@54 108 215.2p121.0s
tomwalters@54 109 EOF
tomwalters@54 110
tomwalters@54 111 echo "Generating script..."
tomwalters@54 112 exec 3> $FEATURES_DIR/$FULL_LIST
tomwalters@54 113 for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
tomwalters@54 114 for speaker in $(cat $FEATURES_DIR/${TALKERS}.tmp); do
tomwalters@54 115 SOURCE_FILENAME=$SOUND_SOURCE/$syllable/${syllable}${speaker}.wav
tomwalters@189 116 DEST_FILENAME=$FEATURES_DIR/$syllable/${syllable}${speaker}.$SUFFIX
tomwalters@54 117 echo "$SOURCE_FILENAME ${DEST_FILENAME}" >&3
tomwalters@54 118 done
tomwalters@54 119 done
tomwalters@54 120 exec 3>&-
tomwalters@54 121
tomwalters@54 122 # Make the necessary directories for the computed features
tomwalters@54 123 echo "Making directory structure..."
tomwalters@54 124 for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do
tomwalters@54 125 mkdir -p $FEATURES_DIR/$syllable
tomwalters@54 126 done
tomwalters@54 127
tomwalters@54 128 rm $FEATURES_DIR/$SYLLIST.tmp
tomwalters@54 129 rm $FEATURES_DIR/${TALKERS}.tmp
tomwalters@54 130 touch $FEATURES_DIR/.features_script_success
tomwalters@54 131 fi