diff options
Diffstat (limited to 'accessibility/svox/pico2audio')
-rw-r--r-- | accessibility/svox/pico2audio | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/accessibility/svox/pico2audio b/accessibility/svox/pico2audio new file mode 100644 index 0000000000000..4f09c8805bf94 --- /dev/null +++ b/accessibility/svox/pico2audio @@ -0,0 +1,61 @@ +#!/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" |