#!/bin/sh #####################################################-*-mode:shell-script-*- ### ## ### Alan W Black and Kevin Lenzo ## ### Copyright (c) 1998 ## ### All Rights Reserved. ## ### ## ### Permission to use, copy, modify, and licence this software and its ## ### documentation for any purpose, is hereby granted without fee, ## ### subject to the following conditions: ## ### 1. The code must retain the above copyright notice, this list of ## ### conditions and the following disclaimer. ## ### 2. Any modifications must be clearly marked as such. ## ### 3. Original authors' names are not deleted. ## ### ## ### THE AUTHORS OF THIS WORK DISCLAIM ALL WARRANTIES WITH REGARD TO ## ### THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ## ### AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ## ### SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ## ### WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ## ### AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ## ### ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ## ### THIS SOFTWARE. ## ### ## ### This file is part "Building Voices in the Festival Speech ## ### Synthesis System" by Alan W Black and Kevin Lenzo written at ## ### Robotics Institute, Carnegie Mellon University, fall 98 ## ############################################################################ ### ## ### Generate (filled) pitchmark file from waveform files ## ### ## ### Using Entropic's ESPS epochs program (proprietary) ## ### ## ### Assumes ELM_HOST and ESPS_BASE are approrpiately set ## ### ## ############################################################################ if [ ! "$ESTDIR" ] then echo "environment variable ESTDIR is unset" echo "set it to your local speech tools directory e.g." echo ' bash$ export ESTDIR=/home/awb/projects/speech_tools/' echo or echo ' csh% setenv ESTDIR /home/awb/projects/speech_tools/' exit 1 fi EPOCHS=$ESPS_BASE/bin/epochs PLAIN=$ESPS_BASE/bin/pplain EFREE=$ESPS_BASE/bin/efree for i in $* do fname=`basename $i .wav` echo $i $EPOCHS $i /tmp/pm_$$.$fname.epc $PLAIN /tmp/pm_$$.$fname.epc | gawk '{if ($0==0) { count = count + 1 } else if ($0 != 0) { printf("%f\t%s\n", count/16000.0,"p"); count = count + 1 }}' >/tmp/pm_$$.pm # $EFREE cat /tmp/pm_$$.pm | gawk 'BEGIN {printf("EST_File Track\n"); printf("DataType ascii\n"); printf("NumFrames XXX_XXX\n"); printf("NumChannels 0\n"); printf("BreaksPresent true\n"); printf("EST_Header_End\n"); last=0 } { if (($1-last) > 0.008) { for (i=last; i < $1-0.0055; i+=0.0055) printf("%f 1\n",i); } printf("%f 1\n",$1); last = $1 }' >/tmp/pm_$$.pm_fill numframes=`gawk 'END {print NR-6}' /tmp/pm_$$.pm_fill` sed 's/XXX_XXX/'$numframes'/' /tmp/pm_$$.pm_fill >pm/$fname.pm rm /tmp/pm_$$* done