1
0
Fork 0
forked from len0rd/rockbox

Ask which voice to use for Festival.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20181 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonas Häggqvist 2009-03-02 21:36:48 +00:00
parent 22b925495a
commit 839bcdf46c
2 changed files with 27 additions and 0 deletions

23
tools/configure vendored
View file

@ -526,6 +526,29 @@ voiceconfig () {
esac
echo "Using $TTS_ENGINE for TTS"
# Select which voice to use for Festival
if [ "$TTS_ENGINE" = "festival" ]; then
i=1
for voice in `echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1 foobar/'|sort`; do
if [ "$i" = "1" ]; then
TTS_FESTIVAL_VOICE="$voice" # Default choice
fi
printf "%3d. %s\n" "$i" "$voice"
i=`expr $i + 1`
done
printf "Please select which Festival voice to use (default is $TTS_FESTIVAL_VOICE): "
CHOICE=`input`
i=1
for voice in `echo "(voice.list)"|festival -i 2>/dev/null |tr "\n" " "|sed -e 's/.*festival> (\(.*\)) festival>/\1 foobar/'|sort`; do
if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then
TTS_FESTIVAL_VOICE="$voice"
fi
i=`expr $i + 1`
done
echo "Festival voice set to $TTS_FESTIVAL_VOICE"
echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm
fi
# Allow the user to input manual commandline options
printf "Enter $TTS_ENGINE options (enter for defaults \"$TTS_OPTS\"): "
USER_TTS_OPTS=`input`

View file

@ -245,6 +245,10 @@ sub voicestring {
# festival_client lies to us, so we have to do awful soul-eating
# work with IPC::open3()
$cmd = "festival_client --server localhost --otype riff --ttw --output \"$output\"";
# Use festival-prolog.scm if it's there (created by user of tools/configure)
if (-f "festival-prolog.scm") {
$cmd .= " --prolog festival-prolog.scm";
}
print("> $cmd\n") if $verbose;
# Open command, and filehandles for STDIN, STDOUT, STDERR
my $pid = open3(*CMD_IN, *CMD_OUT, *CMD_ERR, $cmd);