aboutsummaryrefslogtreecommitdiff
path: root/accessibility/svox/pico2audio
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2021-08-02 16:46:05 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-10-13 00:51:28 +0700
commit4956ca10e3d6d9736425d1e11bc5d9120b9a849d (patch)
tree9865b6bc3e3bf2501e801fbcd1e3cecc763881d2 /accessibility/svox/pico2audio
parent8e9bae1e816e7b09a5c9fc364fd365b9fa300b6d (diff)
downloadslackbuilds-4956ca10e3d6d9736425d1e11bc5d9120b9a849d.tar.xz
accessibility/svox: Add man page for pico2audio.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'accessibility/svox/pico2audio')
-rw-r--r--accessibility/svox/pico2audio19
1 files changed, 15 insertions, 4 deletions
diff --git a/accessibility/svox/pico2audio b/accessibility/svox/pico2audio
index 4f09c8805bf9..673950eb838c 100644
--- a/accessibility/svox/pico2audio
+++ b/accessibility/svox/pico2audio
@@ -17,7 +17,7 @@ Exit status of $SELF is that of pico2wave.
Examples:
$SELF 'Hello world.'
- Speaks "Hello world" in the default language (en-US)
+ Speaks "Hello world" in the default language (en-US).
$SELF -l en-GB 'Hello world.'
As above, in a British accent.
@@ -39,6 +39,10 @@ case "$1" in
;;
-l) LOPT="$1 $2"
shift
+ if [ -z "$1" ]; then
+ echo "$(basename $0): missing argument to -l option" 1>&2
+ exit 1
+ fi
shift
;;
-l?*) LOPT="$1"
@@ -46,15 +50,22 @@ case "$1" in
;;
esac
+which pico2wave >/dev/null || exit 1
+which play >/dev/null || exit 1
+
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
+# the actual pico2wave command accepts multiple word arguments,
+# but only speaks the first one (silently ignores the rest).
+# here we combine all the word args into one quoted string and
+# pass it to pico2wave via eval, so it sees one argument, possibly
+# with spaces.
+[ -n "$*" ] && ARGS="\"$@\""
-pico2wave $LOPT -w $DIR/tmp.wav "$@"
+eval pico2wave $LOPT -w $DIR/tmp.wav $ARGS
E="$?"
play -q $DIR/tmp.wav 2>/dev/null
rm -rf $DIR