slackbuilds_ponce/accessibility/svox/pico2audio

62 lines
1.2 KiB
Text
Raw Normal View History

#!/bin/sh
usage() {
SELF="$( basename $0 )"
INDT="$( echo $SELF | sed 's,., ,g' )"
cat <<EOF
$SELF - wrapper for pico2wave, renders text to speech and
$INDT plays it using the 'play' command.
Written by B. Watson <yalhcru@gmail.com>, for the SlackBuilds.org project.
Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
If a -l <language> option is given, it will be passed to pico2wave.
Exit status of $SELF is that of pico2wave.
Examples:
$SELF 'Hello world.'
Speaks "Hello world" in the default language (en-US)
$SELF -l en-GB 'Hello world.'
As above, in a British accent.
fortune -s | $SELF
Reads from standard input.
$SELF < /etc/motd
Speak a text file. Don't forget the < or it says the filename instead.
EOF
}
# main()
case "$1" in
'-?'|-h|-help|--help)
usage
exit 0
;;
-l) LOPT="$1 $2"
shift
shift
;;
-l?*) LOPT="$1"
shift
;;
esac
DIR=$( mktemp -t -d pico2audio.XXXXXX )
if [ ! -d "$DIR" ]; then
exit 1 # mktemp already printed an error message
fi
which pico2wave >/dev/null || exit 1
which play >/dev/null || exit 1
pico2wave $LOPT -w $DIR/tmp.wav "$@"
E="$?"
play -q $DIR/tmp.wav 2>/dev/null
rm -rf $DIR
exit "$E"