#!/bin/sh #####################################################-*-mode:shell-script-*- ## ## ## Carnegie Mellon University and ## ## Alan W Black and Kevin A. Lenzo ## ## Copyright (c) 1998-2000 ## ## All Rights Reserved. ## ## ## ## Permission is hereby granted, free of charge, to use and distribute ## ## this software and its documentation without restriction, including ## ## without limitation the rights to use, copy, modify, merge, publish, ## ## distribute, sublicense, and/or sell copies of this work, and to ## ## permit persons to whom this work is furnished to do so, 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. ## ## 4. The authors' names are not used to endorse or promote products ## ## derived from this software without specific prior written ## ## permission. ## ## ## ## CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ## ## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ## ## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ## ## SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS 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. ## ## ## ########################################################################### ### ## ### Generate (filled) pitchmark file from waveform files ## ### ## ### Using Entropic's ESPS epochs program (proprietary) ## ### ## ### Assumes ELM_HOST and ESPS_BASE are approrpiately set ## ### ## ############################################################################ if [ $# = 0 ] then echo "Extract pm files from waveforms using ESPS epoch program" echo "Usage: bin/make_pm_epoch wav/*.wav" echo "Create pm/*.pm" exit 1 fi 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 export ESPS_BASE=/home/awb/bin/esps 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.0030; i+=0.0030) 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_epoch/$fname.pm rm /tmp/pm_$$* done