summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--accessibility/svox/pico2audio19
-rw-r--r--accessibility/svox/pico2audio.189
-rw-r--r--accessibility/svox/pico2audio.rst70
-rw-r--r--accessibility/svox/pico2wave.114
-rw-r--r--accessibility/svox/svox.SlackBuild27
5 files changed, 202 insertions, 17 deletions
diff --git a/accessibility/svox/pico2audio b/accessibility/svox/pico2audio
index 4f09c8805b..673950eb83 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
diff --git a/accessibility/svox/pico2audio.1 b/accessibility/svox/pico2audio.1
new file mode 100644
index 0000000000..684dfa1685
--- /dev/null
+++ b/accessibility/svox/pico2audio.1
@@ -0,0 +1,89 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "PICO2AUDIO" 1 "2021-08-02" "20210802" "SlackBuilds.org"
+.SH NAME
+pico2audio \- text-to-speech wrapper for pico2wave
+.\" RST source for pico2audio(1) man page. Convert with:
+.
+.\" rst2man.py pico2audio.rst > pico2audio.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.\" converting from pod:
+.
+.\" s/B<\([^>]*\)>/**\1**/g
+.
+.\" s/I<\([^>]*\)>/*\1*/g
+.
+.SH SYNOPSIS
+.sp
+pico2audio [\fI\-l <language>\fP] [\fIwords\fP]
+.SH DESCRIPTION
+.sp
+\fBpico2audio\fP is a shell script wrapper for \fBpico2wave\fP\&. It renders text to
+speech and plays it using the \fBplay\fP command.
+.sp
+If a \fI\-l <language>\fP option is given, it will be passed to pico2wave. See
+\fBpico2wave\fP(1) for details.
+.sp
+If \fIwords\fP are given, they are used as input. Unlike the pico2wave command,
+there\(aqs no requirement to quote multiple words. If no \fIwords\fP are given,
+words are read from standard input.
+.sp
+Exit status is that of \fBpico2wave\fP\&.
+.SH EXAMPLES
+.sp
+Examples:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.TP
+.B pico2audio Hello world.
+Speaks "Hello world" in the default language (en\-US).
+.TP
+.B pico2audio \-l en\-GB Hello world.
+As above, in a British accent.
+.TP
+.B fortune \-s | pico2audio
+Reads from standard input.
+.TP
+.B pico2audio < /etc/motd
+Speak a text file. Don\(aqt forget the \fB<\fP or it says the filename instead.
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SH AUTHOR
+.sp
+pico2audio was written by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBpico2wave\fP(1), \fBplay\fP(1)
+.\" Generated by docutils manpage writer.
+.
diff --git a/accessibility/svox/pico2audio.rst b/accessibility/svox/pico2audio.rst
new file mode 100644
index 0000000000..c6e537e28f
--- /dev/null
+++ b/accessibility/svox/pico2audio.rst
@@ -0,0 +1,70 @@
+.. RST source for pico2audio(1) man page. Convert with:
+.. rst2man.py pico2audio.rst > pico2audio.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 20210802
+.. |date| date::
+
+.. converting from pod:
+.. s/B<\([^>]*\)>/**\1**/g
+.. s/I<\([^>]*\)>/*\1*/g
+
+==========
+pico2audio
+==========
+
+------------------------------------
+text-to-speech wrapper for pico2wave
+------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+pico2audio [*-l <language>*] [*words*]
+
+DESCRIPTION
+===========
+
+**pico2audio** is a shell script wrapper for **pico2wave**. It renders text to
+speech and plays it using the **play** command.
+
+If a *-l <language>* option is given, it will be passed to pico2wave. See
+**pico2wave**\(1) for details.
+
+If *words* are given, they are used as input. Unlike the pico2wave command,
+there's no requirement to quote multiple words. If no *words* are given,
+words are read from standard input.
+
+Exit status is that of **pico2wave**.
+
+EXAMPLES
+========
+
+Examples:
+
+ pico2audio Hello world.
+ Speaks "Hello world" in the default language (en-US).
+
+ pico2audio -l en-GB Hello world.
+ As above, in a British accent.
+
+ fortune -s | pico2audio
+ Reads from standard input.
+
+ pico2audio < /etc/motd
+ Speak a text file. Don't forget the **<** or it says the filename instead.
+
+AUTHOR
+======
+
+pico2audio was written by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**pico2wave**\(1), **play**\(1)
diff --git a/accessibility/svox/pico2wave.1 b/accessibility/svox/pico2wave.1
index 13da7e31f5..9d1a566778 100644
--- a/accessibility/svox/pico2wave.1
+++ b/accessibility/svox/pico2wave.1
@@ -1,5 +1,5 @@
.\" This file modified from the Debian version by B. Watson <yalhcru@gmail.com>
-.TH PICO2WAVE "1" "June 2018" "pico2wave" "SlackBuilds.org"
+.TH PICO2WAVE "1" "August 2021" "pico2wave" "SlackBuilds.org"
.SH NAME
pico2wave \- Small Footprint TTS
.SH SYNOPSIS
@@ -16,11 +16,16 @@ text given on the command line (or standard input, if no
\fI<words>\fR on command line) to audible speech, and writes
to a RIFF .wav file.
.PP
+.B Note:
+Only one \fI<words>\fR argument is spoken. Any further arguments are silently
+ignored. This means that you must quote your argument, if it has multiple
+words (e.g. a sentence).
+.PP
The generated wav files are PCM, 16-bit mono, 16KHz sampling rate.
.PP
\fB[*]\fR The SVOX Pico engine is a software speech synthesizer for German, English
-(GB and US), Spanish, French and Italian. SVOX produces a clear and
-distinct speech output made possible by the use of Hidden Markov Model
+(GB and US), Spanish, French and Italian. SVOX produces clear and
+distinct speech output, made possible by the use of Hidden Markov Model
(HMM) algorithms.
.SH OPTIONS
.TP
@@ -59,3 +64,6 @@ Same as above, reading from standard input.
pico2wav -w test.wav < gettysburg_address.txt
.PP
Convert an entire text file to speech.
+.SH SEE ALSO
+.sp
+\fBpico2audio\fP(1)
diff --git a/accessibility/svox/svox.SlackBuild b/accessibility/svox/svox.SlackBuild
index 39fa5ca2cf..3c572b6fe2 100644
--- a/accessibility/svox/svox.SlackBuild
+++ b/accessibility/svox/svox.SlackBuild
@@ -12,7 +12,7 @@
# It's in the Debian non-free repo on a technicality: svox is free
# software released under the Apache-2.0 license, but the sources
# for the compiled voices (/usr/share/pico/lang/*.bin) are missing,
-# so it doesn't quite comply with the its own license.
+# so it doesn't quite comply with its own license.
# Notes to self:
@@ -22,11 +22,18 @@
# listed as "www.android.com", it seems more useful to set HOMEPAGE
# to the Debian page for svox.
+# 20210802 bkw: BUILD=2
+# - update pico2audio script to support multiple words without quotes.
+# - add man page for pico2audio.
+# - update pico2wave man page.
+# - add svox man page symlink, in case someone remembers the name of the
+# package but not the name of the binary.
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=svox
VERSION=${VERSION:-1.0+git20130326_8}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +45,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -81,11 +85,8 @@ tar xvf $CWD/$PRGVER.orig.tar.gz
cd $PRGNAM-$DEBVER
tar xvf $CWD/$PRGVER-$DEBBLD.debian.tar.xz
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \+ -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
# Apply all of Debian's patches. Many thanks to the Debian maintainers
# for all the work that went into these patches.
@@ -128,8 +129,14 @@ install -m0755 -oroot -groot $CWD/pico2audio $PKG/usr/bin
# The original Debian man page was generated from the --help output. I've
# expanded it to include a proper description, examples, a list of
# allowed languages for the -l option, and a few other goodies.
+# 20210802 bkw: Added a man page for the pico2audio script, too.
+# Please don't add pico2audio.rst to the package, and please don't
+# remove it from the repo because it's not in the package: it's the
+# source for pico2audio.1.
mkdir -p $PKG/usr/man/man1
gzip -9c < $CWD/pico2wave.1 > $PKG/usr/man/man1/pico2wave.1.gz
+ln -s pico2wave.1.gz $PKG/usr/man/man1/$PRGNAM.1.gz
+gzip -9c < $CWD/pico2audio.1 > $PKG/usr/man/man1/pico2audio.1.gz
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat ../debian/copyright > $PKG/usr/doc/$PRGNAM-$VERSION/copyright