Festival with Russian Language Support Fix added.

This commit is contained in:
Kolan Sh 2014-10-24 12:09:05 +04:00
parent f58bd9b266
commit 200a7f28c4
6 changed files with 343 additions and 0 deletions

View File

@ -0,0 +1,128 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-accessibility/festival/festival-2.1-r1.ebuild,v 1.3 2013/02/02 22:18:04 ago Exp $
EAPI="2"
inherit eutils multilib toolchain-funcs user
MY_PV="${PV}-release"
MY_P=${PN}-${MY_PV}
DESCRIPTION="Festival Text to Speech engine"
HOMEPAGE="http://www.cstr.ed.ac.uk/projects/festival/"
SITE="http://www.festvox.org/packed/${PN}/${PV}"
SRC_URI="${SITE}/${MY_P}.tar.gz
${SITE}/festlex_CMU.tar.gz
${SITE}/festlex_OALD.tar.gz
${SITE}/festlex_POSLEX.tar.gz
${SITE}/festvox_cmu_us_awb_cg.tar.gz
${SITE}/festvox_cmu_us_rms_cg.tar.gz
${SITE}/festvox_cmu_us_slt_arctic_hts.tar.gz
${SITE}/festvox_rablpc16k.tar.gz
${SITE}/festvox_kallpc16k.tar.gz
${SITE}/speech_tools-${MY_PV}.tar.gz"
LICENSE="FESTIVAL HPND BSD rc regexp-UofT free-noncomm"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE=""
DEPEND="~app-accessibility/speech-tools-2.1
>=sys-libs/ncurses-5.6-r2"
RDEPEND="${DEPEND}"
S=${WORKDIR}/festival
pkg_setup() {
enewuser festival -1 -1 -1 audio
}
src_prepare() {
# tell festival to use the speech-tools we have installed.
sed -i -e "s:\(EST=\).*:\1${EPREFIX}/usr/share/speech-tools:" "${S}"/config/config.in
sed -i -e "s:\$(EST)/lib:/usr/$(get_libdir):" "${S}"/config/project.mak
# fix the reference to /usr/lib/festival
sed -i -e "s:\(FTLIBDIR.*=.*\)\$.*:\1${EPREFIX}/usr/share/festival:" "${S}"/config/project.mak
# Fix path for examples in festival.scm
sed -i -e "s:\.\./examples/:${EPREFIX}/usr/share/doc/${PF}/examples/:" "${S}"/lib/festival.scm
epatch "${FILESDIR}/${P}-ldflags.patch"
epatch "${FILESDIR}/${P}-init-scm.patch"
epatch "${FILESDIR}/${P}-gentoo-system.patch"
# copy what we need for MultiSyn from speech_tools.
cp -pr "${WORKDIR}"/speech_tools/base_class "${S}"/src/modules/MultiSyn
epatch "${FILESDIR}/${P}-gcc4.7.patch"
echo "(Parameter.set 'Audio_Command \"aplay -q -c 1 -t raw -f s16 -r \$SR \$FILE\")" >> "${S}"/lib/siteinit.scm
echo "(Parameter.set 'Audio_Method 'Audio_Command)" >> "${S}"/lib/siteinit.scm
# Patch for the Russian Languages
epatch "${FILESDIR}/${P}-russian.patch"
}
src_configure() {
econf || die "econf failed"
}
src_compile() {
emake -j1 PROJECT_LIBDEPS="" REQUIRED_LIBDEPS="" LOCAL_LIBDEPS="" \
OPTIMISE_CXXFLAGS="${CXXFLAGS}" OPTIMISE_CCFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" \
CC="$(tc-getCC)" CXX="$(tc-getCXX)" || die "emake failed"
}
src_install() {
# Install the binaries
dobin src/main/festival
dobin lib/etc/*Linux*/audsp
dolib.a src/lib/libFestival.a
# Install the main libraries
insinto /usr/share/festival
doins -r lib/*
# Install the examples
insinto /usr/share/doc/${PF}
doins -r examples
# Need to fix saytime, etc. to look for festival in the correct spot
for ex in "${D}"/usr/share/doc/${PF}/examples/*.sh; do
exnoext=${ex%%.sh}
chmod a+x "${exnoext}"
dosed "s:${S}/bin/festival:/usr/bin/festival:" "${exnoext##$D}"
done
# Install the header files
insinto /usr/include/festival
doins src/include/*.h
insinto /etc/festival
doins lib/site*
# Install the docs
dodoc "${S}"/{ACKNOWLEDGMENTS,NEWS,README}
doman "${S}"/doc/{festival.1,festival_client.1}
# create the directory where our log file will go.
diropts -m 0755 -o festival -g audio
keepdir /var/log/festival
}
pkg_postinst() {
elog
elog " Useful examples include saytime, text2wave. For example, try:"
elog " \"/usr/share/doc/${PF}/examples/saytime\""
elog
elog " Or for something more fun:"
elog ' "echo "Gentoo can speak" | festival --tts"'
elog
elog "This version also allows configuration of site specific"
elog "initialization in /etc/festival/siteinit.scm and"
elog "variables in /etc/festival/sitevars.scm."
elog
}

View File

@ -0,0 +1,29 @@
diff -uNr festival.orig/src/modules/MultiSyn/base_class/EST_TSimpleVector.cc festival/src/modules/MultiSyn/base_class/EST_TSimpleVector.cc
--- festival.orig/src/modules/MultiSyn/base_class/EST_TSimpleVector.cc 2012-12-02 23:03:27.000000000 +0000
+++ festival/src/modules/MultiSyn/base_class/EST_TSimpleVector.cc 2012-12-02 23:21:17.000000000 +0000
@@ -42,6 +42,7 @@
#include "EST_TSimpleVector.h"
#include "EST_matrix_support.h"
+#include <cstring>
#include <fstream>
#include "EST_cutils.h"
@@ -49,7 +50,7 @@
{
if (this->p_column_step==1 && a.p_column_step==1)
{
- resize(a.n(), FALSE);
+ this->resize(a.n(), FALSE);
memcpy((void *)(this->p_memory), (const void *)(a.p_memory), this->n() * sizeof(T));
}
else
@@ -70,7 +71,7 @@
int old_offset = this->p_offset;
unsigned int q;
- just_resize(newn, &old_vals);
+ this->just_resize(newn, &old_vals);
if (set && old_vals)
{

View File

@ -0,0 +1,124 @@
diff -uNr festival.orig/config/systems/GentooLinux.mak festival/config/systems/GentooLinux.mak
--- festival.orig/config/systems/GentooLinux.mak 1969-12-31 19:00:00.000000000 -0500
+++ festival/config/systems/GentooLinux.mak 2011-02-09 10:43:28.000000000 -0500
@@ -0,0 +1,42 @@
+ ###########################################################################
+ ## ##
+ ## Centre for Speech Technology Research ##
+ ## University of Edinburgh, UK ##
+ ## Copyright (c) 1996 ##
+ ## All Rights Reserved. ##
+ ## ##
+ ## Permission is hereby granted, free of charge, to use and distribute ##
+ ## this software and its documentation without restriction, including ##
+ ## without limitation the rights to use, copy, modify, merge, publish, ##
+ ## distribute, sublicense, and/or sell copies of this work, and to ##
+ ## permit persons to whom this work is furnished to do so, subject to ##
+ ## the following conditions: ##
+ ## 1. The code must retain the above copyright notice, this list of ##
+ ## conditions and the following disclaimer. ##
+ ## 2. Any modifications must be clearly marked as such. ##
+ ## 3. Original authors' names are not deleted. ##
+ ## 4. The authors' names are not used to endorse or promote products ##
+ ## derived from this software without specific prior written ##
+ ## permission. ##
+ ## ##
+ ## THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK ##
+ ## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
+ ## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
+ ## SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE ##
+ ## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
+ ## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
+ ## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
+ ## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
+ ## THIS SOFTWARE. ##
+ ## ##
+ ###########################################################################
+ ## ##
+ ## Author: William Hubbs <williamh@gentoo.org> ##
+ ## -------------------------------------------------------------------- ##
+ ## Settings for Gentoo Linux distributions. ##
+ ## ##
+ ###########################################################################
+
+MANDIR=$(INSTALL_PREFIX)/share/man
+# Gentoo does not use termcap
+OS_LIBS = $(LDFLAGS) -ldl -lncurses
diff -uNr festival.orig/config/systems/Makefile festival/config/systems/Makefile
--- festival.orig/config/systems/Makefile 2011-02-09 10:41:01.000000000 -0500
+++ festival/config/systems/Makefile 2011-02-09 10:44:22.000000000 -0500
@@ -41,6 +41,7 @@
Linux.mak \
RedHatLinux.mak \
DebianGNULinux.mak \
+ GentooLinux.mak \
alpha_Linux.mak \
alpha_OSF1V4.0.mak \
alpha_RedHatLinux.mak \
@@ -94,6 +95,7 @@
sparc_SunOS5.8.mak \
sparc_SunOS5.mak \
unknown_DebianGNULinux.mak \
+ unknown_GentooLinux.mak \
unknown_Linux.mak \
unknown_RedHatLinux.mak \
power_macintosh_Darwin.mak \
diff -uNr festival.orig/config/systems/unknown_GentooLinux.mak festival/config/systems/unknown_GentooLinux.mak
--- festival.orig/config/systems/unknown_GentooLinux.mak 1969-12-31 19:00:00.000000000 -0500
+++ festival/config/systems/unknown_GentooLinux.mak 2011-02-09 10:45:34.000000000 -0500
@@ -0,0 +1,41 @@
+###########################################################################
+## ##
+## Centre for Speech Technology Research ##
+## University of Edinburgh, UK ##
+## Copyright (c) 1996 ##
+## All Rights Reserved. ##
+## ##
+## Permission is hereby granted, free of charge, to use and distribute ##
+## this software and its documentation without restriction, including ##
+## without limitation the rights to use, copy, modify, merge, publish, ##
+## distribute, sublicense, and/or sell copies of this work, and to ##
+## permit persons to whom this work is furnished to do so, subject to ##
+## the following conditions: ##
+## 1. The code must retain the above copyright notice, this list of ##
+## conditions and the following disclaimer. ##
+## 2. Any modifications must be clearly marked as such. ##
+## 3. Original authors' names are not deleted. ##
+## 4. The authors' names are not used to endorse or promote products ##
+## derived from this software without specific prior written ##
+## permission. ##
+## ##
+## THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK ##
+## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
+## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
+## SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE ##
+## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
+## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
+## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
+## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
+## THIS SOFTWARE. ##
+## ##
+###########################################################################
+## ##
+## Author: William Hubbs <williamh@gentoo.org> ##
+## -------------------------------------------------------------------- ##
+## Settings for Gentoo Linux distributions. ##
+## ##
+###########################################################################
+
+include $(EST)/config/systems/Linux.mak
+include $(EST)/config/systems/GentooLinux.mak
diff -uNr festival.orig/config/system.sh festival/config/system.sh
--- festival.orig/config/system.sh 2011-02-09 10:41:01.000000000 -0500
+++ festival/config/system.sh 2011-02-09 10:42:10.000000000 -0500
@@ -70,6 +70,10 @@
then
OSTYPE=DebianGNULinux
OSREV=`cat /etc/debian_version`
+ elif [ -f "/etc/gentoo-release" ]
+ then
+ OSTYPE=GentooLinux
+ OSREV=""
else
# Generic unknown GNU/Linux system.
OSTYPE=Linux

View File

@ -0,0 +1,24 @@
--- festival/lib/init.scm 2006-09-15 01:34:32.000000000 -0500
+++ festival/lib/init.scm 2006-09-15 01:50:30.000000000 -0500
@@ -52,8 +52,8 @@
;;; A chance to set various variables to a local setting e.g.
;;; lexdir, voices_dir audio etc etc.
-(if (probe_file (path-append libdir "sitevars.scm"))
- (load (path-append libdir "sitevars.scm")))
+(if (probe_file "/etc/festival/sitevars.scm")
+ (load "/etc/festival/sitevars.scm"))
;;; CSTR siod extensions
(require 'cstr)
@@ -133,8 +133,8 @@
;;;
;;; Local site initialization, if the file exists load it
;;;
-(if (probe_file (path-append libdir "siteinit.scm"))
- (load (path-append libdir "siteinit.scm")))
+(if (probe_file "/etc/festival/siteinit.scm")
+ (load "/etc/festival/siteinit.scm"))
;;; User initialization, if a user has a personal customization
;;; file loaded it

View File

@ -0,0 +1,12 @@
diff -uNr festival.orig/config/systems/Linux.mak festival/config/systems/Linux.mak
--- festival.orig/config/systems/Linux.mak 2011-02-09 10:08:20.000000000 -0500
+++ festival/config/systems/Linux.mak 2011-02-09 10:09:04.000000000 -0500
@@ -46,7 +46,7 @@
JAVAH=/usr/bin/javah
TCL_LIBRARY = -ltcl
-OS_LIBS = -ldl
+OS_LIBS = $(OPTIMISE_LDFLAGS) -ldl
## the native audio module for this type of system
NATIVE_AUDIO_MODULE = LINUX16

View File

@ -0,0 +1,26 @@
--- lib/languages.scm 2002-04-20 01:47:23.000000000 +0400
+++ lib/languages.scm 2014-10-24 12:00:20.283268003 +0400
@@ -39,6 +39,14 @@
;;; new voices will become automatically available.
;;;
+(define (language_russian)
+ "(language_russian)
+ Set up language parameters for Russian."
+ (set! male1 voice_msu_ru_nsh_clunits)
+ (male1)
+ (Parameter.set 'Language 'russian)
+)
+
(define (language_british_english)
"(language_british_english)
Set up language parameters for British English."
@@ -111,6 +119,8 @@
(language_castillian_spanish))
((equal? language 'klingon)
(language_klingon))
+ ((equal? language 'russian)
+ (language_russian))
(t
(print "Unsupported language, using English")
(language_british_english))))