annotate trunk/experiments/scripts/cnbh-syllables/feature_generation/gen_hcopy_aimcopy_script.sh @ 402:69466da9745e

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