From 200a7f28c41830992703cca11ad8b2f9f191763e Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Fri, 24 Oct 2014 12:09:05 +0400 Subject: [PATCH] Festival with Russian Language Support Fix added. --- .../festival/festival-2.1-r1.ebuild | 128 ++++++++++++++++++ .../festival/files/festival-2.1-gcc4.7.patch | 29 ++++ .../files/festival-2.1-gentoo-system.patch | 124 +++++++++++++++++ .../files/festival-2.1-init-scm.patch | 24 ++++ .../festival/files/festival-2.1-ldflags.patch | 12 ++ .../festival/files/festival-2.1-russian.patch | 26 ++++ 6 files changed, 343 insertions(+) create mode 100644 app-accessibility/festival/festival-2.1-r1.ebuild create mode 100644 app-accessibility/festival/files/festival-2.1-gcc4.7.patch create mode 100644 app-accessibility/festival/files/festival-2.1-gentoo-system.patch create mode 100644 app-accessibility/festival/files/festival-2.1-init-scm.patch create mode 100644 app-accessibility/festival/files/festival-2.1-ldflags.patch create mode 100644 app-accessibility/festival/files/festival-2.1-russian.patch diff --git a/app-accessibility/festival/festival-2.1-r1.ebuild b/app-accessibility/festival/festival-2.1-r1.ebuild new file mode 100644 index 00000000..91ec6386 --- /dev/null +++ b/app-accessibility/festival/festival-2.1-r1.ebuild @@ -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 +} diff --git a/app-accessibility/festival/files/festival-2.1-gcc4.7.patch b/app-accessibility/festival/files/festival-2.1-gcc4.7.patch new file mode 100644 index 00000000..8ebc8cc4 --- /dev/null +++ b/app-accessibility/festival/files/festival-2.1-gcc4.7.patch @@ -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 + #include + #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) + { diff --git a/app-accessibility/festival/files/festival-2.1-gentoo-system.patch b/app-accessibility/festival/files/festival-2.1-gentoo-system.patch new file mode 100644 index 00000000..a09e1379 --- /dev/null +++ b/app-accessibility/festival/files/festival-2.1-gentoo-system.patch @@ -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 ## ++ ## -------------------------------------------------------------------- ## ++ ## 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 ## ++## -------------------------------------------------------------------- ## ++## 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 diff --git a/app-accessibility/festival/files/festival-2.1-init-scm.patch b/app-accessibility/festival/files/festival-2.1-init-scm.patch new file mode 100644 index 00000000..efe575b0 --- /dev/null +++ b/app-accessibility/festival/files/festival-2.1-init-scm.patch @@ -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 diff --git a/app-accessibility/festival/files/festival-2.1-ldflags.patch b/app-accessibility/festival/files/festival-2.1-ldflags.patch new file mode 100644 index 00000000..e6559c8a --- /dev/null +++ b/app-accessibility/festival/files/festival-2.1-ldflags.patch @@ -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 diff --git a/app-accessibility/festival/files/festival-2.1-russian.patch b/app-accessibility/festival/files/festival-2.1-russian.patch new file mode 100644 index 00000000..a4a8a4f4 --- /dev/null +++ b/app-accessibility/festival/files/festival-2.1-russian.patch @@ -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))))