Mercurial > hg > aimc
view trunk/experiments/scripts/cnbh-syllables/feature_generation/run_mfcc_vtln_conversion.sh @ 706:f8e90b5d85fd tip
Delete CARFAC code from this repository.
It has been moved to https://github.com/google/carfac
Please email me with your github username to get access.
I've also created a new mailing list to discuss CARFAC development:
https://groups.google.com/forum/#!forum/carfac-dev
author | ronw@google.com |
---|---|
date | Thu, 18 Jul 2013 20:56:51 +0000 |
parents | 068e33a65f8d |
children |
line wrap: on
line source
#!/bin/bash # HCOPY_CONFIG=hcopy.config HCOPY=`which HCopy` if [ "$HCOPY" == "" ]; then echo "Please build HTK and make the binaries available in the path" fi set -e set -u FEATURES_DIR=$1 SOUND_SOURCE=$2 FULL_LIST=feature_generation_script # Temporary file names SYLLIST=syllable_list TALKERS=talker_list # 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" if [ ! -e $FEATURES_DIR/.features_script_success ]; then mkdir -p $FEATURES_DIR # Make the sets of VC, CV, and vowel only labels, plus silence and use them to # generate the grammar, dictionary and list of syllables if [ -a $FEATURES_DIR/$SYLLIST.tmp.tmp ] then rm $FEATURES_DIR/$SYLLIST.tmp.tmp 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 done done # Sort the syllable list and delete the # temporary, unsorted version sort $FEATURES_DIR/$SYLLIST.tmp.tmp > $FEATURES_DIR/$SYLLIST.tmp rm $FEATURES_DIR/$SYLLIST.tmp.tmp cat <<"EOF" > $FEATURES_DIR/${TALKERS}.tmp 170.9p112.2s 171.0p112.8s 171.3p111.7s 171.5p113.1s 171.9p111.5s 172.1p113.0s 172.4p111.9s 172.5p112.5s 171.7p112.3s 137.0p104.3s 141.3p135.4s 145.5p106.3s 148.8p128.8s 151.6p83.9s 153.0p108.1s 155.5p123.5s 156.7p90.6s 159.5p109.6s 161.1p119.4s 161.1p96.8s 163.4p157.6s 164.7p110.8s 164.9p102.1s 165.6p144.0s 165.7p116.2s 167.4p133.5s 167.8p106.5s 168.6p111.6s 168.9p125.4s 169.0p114.0s 170.0p109.7s 170.1p119.5s 171.0p115.5s 172.4p109.3s 173.3p105.6s 173.5p115.0s 174.5p100.6s 174.5p110.6s 174.9p113.0s 175.7p118.5s 176.1p94.5s 178.0p108.5s 178.1p87.6s 178.8p123.6s 179.0p113.9s 180.4p80.1s 183.0p105.7s 183.0p130.4s 184.8p115.1s 188.1p139.2s 189.6p102.1s 192.7p116.7s 194.5p150.4s 198.1p97.9s 202.7p118.6s 208.6p93.2s 215.2p121.0s EOF # Make the necessary directories for the computed features echo "Making directory structure..." for syllable in $(cat $FEATURES_DIR/${SYLLIST}.tmp); do mkdir -p $FEATURES_DIR/$syllable done echo "Creating HCopy config file..." cat <<"EOF" > $FEATURES_DIR/${HCOPY_CONFIG} # Coding parameters SOURCEFORMAT= WAV TARGETKIND = MFCC_0_D_A TARGETRATE = 100000.0 SAVECOMPRESSED = T SAVEWITHCRC = T WINDOWSIZE = 250000.0 USEHAMMING = T PREEMCOEF = 0.97 NUMCHANS = 200 CEPLIFTER = 22 NUMCEPS = 12 ENORMALISE = F # Parameters a bit like Welling and Ney (2002) # Can't do zero, it seems. WARPLCUTOFF = 10 # Upper frequency is the Nyquist freq. (24000Hz) # so choose the break freq. close to that #WARPUCUTOFF = 23000 WARPUCUTOFF = 10500 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>&- cp $FEATURES_DIR/${HCOPY_CONFIG} $FEATURES_DIR/${HCOPY_CONFIG}_$TALKER scale=`echo $TALKER | 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 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