#!/bin/bash
###########################################################################
##                                                                       ##
##                  Language Technologies Institute                      ##
##                     Carnegie Mellon University                        ##
##                       Copyright (c) 2010-2011                         ##
##                        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.                                                       ##
##                                                                       ##
###########################################################################
##                                                                       ##
##            Authors: Alok Parlikar                                     ##
##            Email:   aup@cs.cmu.edu                                    ##
##                                                                       ##
###########################################################################
##                                                                       ##
##  Test performance of Syntactic Phrasing Model, compared to default    ##
##                                                                       ##
###########################################################################
PROMPTFILE="$1"
MODE=$2
NTCOUNT=$3

. ./etc/voice.defs

festival="$FESTVOXDIR/../festival/bin/festival"
checkanswers="$FESTVOXDIR/src/phrasyn/calc_break_f1.py"


if [ ! "$PROMPTFILE" ]
then
    echo "Point me to your txt.done.data.test"
    exit 1
fi

# Create directory to store the data
outdir="test/phrasyn"
if [ -d "$outdir" ]
then
    rm -rf $outdir 
fi
mkdir -p $outdir
    
# Dump breaks from festival/utt
# This is the baseline. We want to be as close to this as possible.
uttdir="festival/utts"
dumpfile="$outdir/festival-utt.breaks"
$festival -b festvox/phrasyn.scm "(dump_breaks '$PROMPTFILE '$uttdir '$dumpfile)"

# Dump breaks from prompt-utt
# This is what we have to beat.
uttdir="prompt-utt"
dumpfile="$outdir/prompt-utt.breaks"
$festival -b festvox/phrasyn.scm "(dump_breaks '$PROMPTFILE '$uttdir '$dumpfile)"

# Generate new utterances from trained models. 
uttdir="$outdir/predicted-utts"
if [ ! -d "$uttdir" ]
then
    mkdir -p $uttdir
fi

$festival -b festvox/${FV_VOICENAME}_cg.scm festvox/phrasyn.scm "(begin (voice_${FV_VOICENAME}_cg ) (Parameter.set 'Synth_Method 'None) (save_utt '$PROMPTFILE '$uttdir ))"

# Now dump breaks from syntax-utt
# This is our model
uttdir="$outdir/predicted-utts"
dumpfile="$outdir/predicted-utt.breaks"
$festival -b festvox/phrasyn.scm "(dump_breaks '$PROMPTFILE '$uttdir '$dumpfile)"

# Compare the models
echo "************************************************************"
echo "Comparing Baseline (prompt-utt) to truth (festival/utt)"
$checkanswers $outdir/prompt-utt.breaks $outdir/festival-utt.breaks
echo "************************************************************"
echo ""
echo "************************************************************"
echo "Comparing New Model (predicted-utt) to truth (festival/utt)"
$checkanswers $outdir/predicted-utt.breaks $outdir/festival-utt.breaks
echo "************************************************************"




