rhubarb-lip-sync/lib/flite-1.4/tools/flite_test

72 lines
3.1 KiB
Bash

#!/bin/sh
#####################################################-*-mode:shell-script-*-
## ##
## Language Technologies Institute ##
## Carnegie Mellon University ##
## Copyright (c) 2008 ##
## 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 a bunch of sentences with the given flite binary ##
## ##
###########################################################################
if [ $# = 0 ]
then
echo flite_test FLITEBINARY TXT.DATA ODIR
exit
fi
if [ $# = 3 ]
then
ODIR=$3
if [ ! -d $ODIR ]
then
mkdir -p $ODIR
fi
else
ODIR=./
fi
cat $2 |
sed 's/^[^(]*(//;s/[ ]*)[ ]*$//' |
awk '{print $1;
for (i=2; i<NF; i++)
printf("%s ",$i);
printf("%s\n",$NF);}' |
while read id
do
read txt
echo $id $txt
$1 -t "$txt" -ps -o $ODIR/$id.wav
done