Browse Source
accessibility/svox: Added (small footprint text-to-speech engine).
accessibility/svox: Added (small footprint text-to-speech engine).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>pull/47/head
committed by
David Spencer
7 changed files with 307 additions and 0 deletions
-
10accessibility/svox/README
-
12accessibility/svox/dont_try_to_free_argv.diff
-
61accessibility/svox/pico2audio
-
61accessibility/svox/pico2wave.1
-
19accessibility/svox/slack-desc
-
132accessibility/svox/svox.SlackBuild
-
12accessibility/svox/svox.info
@ -0,0 +1,10 @@ |
|||
svox (small footprint text-to-speech engine) |
|||
|
|||
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 |
|||
(HMM) algorithms. |
|||
|
|||
The package includes the pico2wave utility, and everything else from |
|||
the Debian packages libttspico-data, libttspico-dev, libttspico-utils, |
|||
and libttspico0. |
|||
@ -0,0 +1,12 @@ |
|||
diff -Naur svox-1.0+git20130326/pico/bin/pico2wave.c svox-1.0+git20130326.patched/pico/bin/pico2wave.c
|
|||
--- svox-1.0+git20130326/pico/bin/pico2wave.c 2018-06-17 02:50:56.203338391 -0400
|
|||
+++ svox-1.0+git20130326.patched/pico/bin/pico2wave.c 2018-06-17 03:00:01.026324549 -0400
|
|||
@@ -371,8 +371,6 @@
|
|||
pico_terminate(&picoSystem); |
|||
picoSystem = NULL; |
|||
} |
|||
- if (text)
|
|||
- free(text);
|
|||
exit(ret); |
|||
} |
|||
|
|||
@ -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" |
|||
@ -0,0 +1,61 @@ |
|||
.\" This file modified from the Debian version by B. Watson <yalhcru@gmail.com> |
|||
.TH PICO2WAVE "1" "June 2018" "pico2wave" "SlackBuilds.org" |
|||
.SH NAME |
|||
pico2wave \- Small Footprint TTS |
|||
.SH SYNOPSIS |
|||
.B pico2wave |
|||
\fB-w\fR |
|||
\fI<filename.wav>\fR |
|||
[ \fB-l\fR \fI<language>\fR ] |
|||
[ \fI<words>\fR ] |
|||
.SH DESCRIPTION |
|||
.B pico2wave |
|||
is a small footprint Text to Speech utility, using the SVOX Pico |
|||
engine \fB[*]\fR. It converts |
|||
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 |
|||
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 |
|||
(HMM) algorithms. |
|||
.SH OPTIONS |
|||
.TP |
|||
\fB\-w\fR, \fB\-\-wave\fR=\fIfilename\fR.wav |
|||
Write output to this WAV file (extension SHOULD |
|||
be .wav). This option is required: \fBpico2wave\fR |
|||
cannot write to standard output (not even if you |
|||
use \fB-w /dev/stdout\fR, sorry). If the file |
|||
already exists, it will be \fBoverwritten\fR with no |
|||
confirmation or warning. |
|||
.TP |
|||
\fB\-l\fR, \fB\-\-lang\fR=\fIlang\fR |
|||
Language (default: \fBen\-US\fR). The languages supported are |
|||
currently \fBde\-DE\fR, \fBen\-GB\fR, \fBen\-US\fR, |
|||
\fBes\-ES\fR, \fBfr\-FR\fR, \fBit\-IT\fR. |
|||
.SS "Help options:" |
|||
.TP |
|||
\-?, \fB\-\-help\fR |
|||
Show help message |
|||
.TP |
|||
\fB\-\-usage\fR |
|||
Display brief usage message |
|||
.SH EXAMPLES |
|||
.TP |
|||
.B |
|||
pico2wav -w test.wav 'Hello, world.' |
|||
.PP |
|||
Creates a file \fBtest.wav\fR containing the words "Hello, world." |
|||
.TP |
|||
.B |
|||
echo 'Hello, world.' | pico2wav -w test.wav |
|||
.PP |
|||
Same as above, reading from standard input. |
|||
.TP |
|||
.B |
|||
pico2wav -w test.wav < gettysburg_address.txt |
|||
.PP |
|||
Convert an entire text file to speech. |
|||
@ -0,0 +1,19 @@ |
|||
# HOW TO EDIT THIS FILE: |
|||
# The "handy ruler" below makes it easier to edit a package description. |
|||
# Line up the first '|' above the ':' following the base package name, and |
|||
# the '|' on the right side marks the last column you can put a character in. |
|||
# You must make exactly 11 lines for the formatting to be correct. It's also |
|||
# customary to leave one space after the ':' except on otherwise blank lines. |
|||
|
|||
|-----handy-ruler------------------------------------------------------| |
|||
svox: svox (small footprint text-to-speech engine) |
|||
svox: |
|||
svox: The SVOX Pico engine is a software speech synthesizer for German, |
|||
svox: English (GB and US), Spanish, French and Italian. SVOX produces a |
|||
svox: clear and distinct speech output made possible by the use of Hidden |
|||
svox: Markov Model (HMM) algorithms. |
|||
svox: |
|||
svox: |
|||
svox: |
|||
svox: |
|||
svox: |
|||
@ -0,0 +1,132 @@ |
|||
#!/bin/sh |
|||
|
|||
# Slackware build script for svox |
|||
|
|||
# Written by B. Watson (yalhcru@gmail.com) |
|||
|
|||
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. |
|||
|
|||
# This is heavily based on Debian's packaging, see: |
|||
# https://packages.debian.org/source/sid/svox |
|||
|
|||
# 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. |
|||
|
|||
# Notes to self: |
|||
|
|||
# - The _8 in the version number is the Debian build number, keep it |
|||
# in sync with future Debian updates. |
|||
# - "Upstream" here is Debian, not Android. Debian has svox's homepage |
|||
# listed as "www.android.com", it seems more useful to set HOMEPAGE |
|||
# to the Debian page for svox. |
|||
|
|||
PRGNAM=svox |
|||
VERSION=${VERSION:-1.0+git20130326_8} |
|||
BUILD=${BUILD:-1} |
|||
TAG=${TAG:-_SBo} |
|||
|
|||
if [ -z "$ARCH" ]; then |
|||
case "$( uname -m )" in |
|||
i?86) ARCH=i586 ;; |
|||
arm*) ARCH=arm ;; |
|||
*) ARCH=$( uname -m ) ;; |
|||
esac |
|||
fi |
|||
|
|||
CWD=$(pwd) |
|||
TMP=${TMP:-/tmp/SBo} |
|||
PKG=$TMP/package-$PRGNAM |
|||
OUTPUT=${OUTPUT:-/tmp} |
|||
|
|||
if [ "$ARCH" = "i586" ]; then |
|||
SLKCFLAGS="-O2 -march=i586 -mtune=i686" |
|||
LIBDIRSUFFIX="" |
|||
elif [ "$ARCH" = "i686" ]; then |
|||
SLKCFLAGS="-O2 -march=i686 -mtune=i686" |
|||
LIBDIRSUFFIX="" |
|||
elif [ "$ARCH" = "x86_64" ]; then |
|||
SLKCFLAGS="-O2 -fPIC" |
|||
LIBDIRSUFFIX="64" |
|||
else |
|||
SLKCFLAGS="-O2" |
|||
LIBDIRSUFFIX="" |
|||
fi |
|||
|
|||
set -e |
|||
|
|||
# Split up and recombine Debian's version number, we can't have a - in |
|||
# a Slackware version number. And using the -8 for BUILD is a bad idea |
|||
# (thanks for pointing that out, idlemoor). |
|||
DEBVER="$( echo $VERSION | cut -d_ -f1 )" |
|||
DEBBLD="$( echo $VERSION | cut -d_ -f2 )" |
|||
PRGVER=${PRGNAM}_$DEBVER |
|||
|
|||
rm -rf $PKG |
|||
mkdir -p $TMP $PKG $OUTPUT |
|||
cd $TMP |
|||
rm -rf $PRGNAM-$DEBVER |
|||
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 {} \+ |
|||
|
|||
# Apply all of Debian's patches. Many thanks to the Debian maintainers |
|||
# for all the work that went into these patches. |
|||
for i in $( cat debian/patches/series ); do |
|||
# use -e here to skip commented-out patches in 'series'. |
|||
[ -e debian/patches/$i ] && patch --verbose -p1 < debian/patches/$i |
|||
done |
|||
|
|||
# Stop pico2wave from segfaulting on exit, when given words on the |
|||
# command line. The code presumably works on Debian, maybe because |
|||
# of differences in the popt library, or in glibc itself? |
|||
patch --verbose -p1 < $CWD/dont_try_to_free_argv.diff |
|||
|
|||
cd pico |
|||
autoreconf -if |
|||
|
|||
CFLAGS="$SLKCFLAGS" \ |
|||
CXXFLAGS="$SLKCFLAGS" \ |
|||
./configure \ |
|||
--enable-shared \ |
|||
--disable-static \ |
|||
--prefix=/usr \ |
|||
--libdir=/usr/lib${LIBDIRSUFFIX} \ |
|||
--sysconfdir=/etc \ |
|||
--localstatedir=/var \ |
|||
--mandir=/usr/man \ |
|||
--docdir=/usr/doc/$PRGNAM-$VERSION \ |
|||
--build=$ARCH-slackware-linux |
|||
|
|||
make |
|||
make install-strip DESTDIR=$PKG |
|||
|
|||
# We don't need this: |
|||
rm $PKG/usr/lib$LIBDIRSUFFIX/*.la |
|||
|
|||
# It drives me nuts that pico2wave can't play to my speakers, so |
|||
# I wrote a script: |
|||
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. |
|||
mkdir -p $PKG/usr/man/man1 |
|||
gzip -9c < $CWD/pico2wave.1 > $PKG/usr/man/man1/pico2wave.1.gz |
|||
|
|||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION |
|||
cat ../debian/copyright > $PKG/usr/doc/$PRGNAM-$VERSION/copyright |
|||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild |
|||
|
|||
mkdir -p $PKG/install |
|||
cat $CWD/slack-desc > $PKG/install/slack-desc |
|||
|
|||
cd $PKG |
|||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} |
|||
@ -0,0 +1,12 @@ |
|||
PRGNAM="svox" |
|||
VERSION="1.0+git20130326_8" |
|||
HOMEPAGE="https://packages.debian.org/source/sid/svox" |
|||
DOWNLOAD="http://http.debian.net/debian/pool/non-free/s/svox/svox_1.0+git20130326.orig.tar.gz \ |
|||
http://http.debian.net/debian/pool/non-free/s/svox/svox_1.0+git20130326-8.debian.tar.xz" |
|||
MD5SUM="df4bf610ff4273b420e80ff64af93130 \ |
|||
fe78ebb55777b01fbbde150e90d23e00" |
|||
DOWNLOAD_x86_64="" |
|||
MD5SUM_x86_64="" |
|||
REQUIRES="" |
|||
MAINTAINER="B. Watson" |
|||
EMAIL="yalhcru@gmail.com" |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue