import festival-2.5.0-17.el9

This commit is contained in:
CentOS Sources 2022-05-17 04:59:50 -04:00 committed by Stepan Oksanichenko
commit 75c365cbac
10 changed files with 1709 additions and 0 deletions

11
.festival.metadata Normal file
View File

@ -0,0 +1,11 @@
a433de2d1c344a1af63579e757551432abe583ca SOURCES/festival-2.5.0-release.tar.gz
d9576230c6698e1f05440ccd34063b64b9aaeb99 SOURCES/festlex_CMU.tar.gz
37c3a3e131c38f343053ce3aec8d654d7b123bb9 SOURCES/festlex_POSLEX.tar.gz
6b59e280d26da7874e6daff62b043f7f8e8b6b5b SOURCES/festvox_cmu_us_awb_cg.tar.gz
205d746aadb450c42fcf0b1501bcf530dbcf8cbf SOURCES/festvox_cmu_us_bdl_cg.tar.gz
5a9f7a2a8440b30239c4c9c92d741ed6d341a819 SOURCES/festvox_cmu_us_clb_cg.tar.gz
8cea41be28d4cce0f2faeb49aa5be6384d626ba3 SOURCES/festvox_cmu_us_jmk_cg.tar.gz
28e6ebc2578774aaddbc7baaf64b7f32e4c7ba77 SOURCES/festvox_cmu_us_rms_cg.tar.gz
b694f5b15a94dab5bd6d3b856130e51e992d5426 SOURCES/festvox_cmu_us_slt_cg.tar.gz
c09679b8a599043176a2a57d34d1ad482a498d6c SOURCES/festvox_kallpc16k.tar.gz
534e45a4ba10b7e0573ec30596ca4e57d888c6a2 SOURCES/festvox_rablpc16k.tar.gz

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
SOURCES/festival-2.5.0-release.tar.gz
SOURCES/festlex_CMU.tar.gz
SOURCES/festlex_POSLEX.tar.gz
SOURCES/festvox_cmu_us_awb_cg.tar.gz
SOURCES/festvox_cmu_us_bdl_cg.tar.gz
SOURCES/festvox_cmu_us_clb_cg.tar.gz
SOURCES/festvox_cmu_us_jmk_cg.tar.gz
SOURCES/festvox_cmu_us_rms_cg.tar.gz
SOURCES/festvox_cmu_us_slt_cg.tar.gz
SOURCES/festvox_kallpc16k.tar.gz
SOURCES/festvox_rablpc16k.tar.gz

View File

@ -0,0 +1,422 @@
diff -u --recursive festival-vanilla/examples/benchmark festival/examples/benchmark
--- festival-vanilla/examples/benchmark 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/benchmark 2018-09-06 20:37:22.855868107 -0400
@@ -1,6 +1,7 @@
#!/bin/sh
-default_libdir="/projects/festival/lib"
+default_libdir="/usr/share/festival"
+default_datadir="/usr/share/festival"
while true
do
@@ -11,13 +12,17 @@
-l ) libdir="$2"
shift 2
;;
+ -d ) datadir="$2"
+ shift 2
+ ;;
+ -- ) shift; break ;;
* ) break;;
esac
done
-text=${1-"$HOME/projects/festival/examples/benchmark.text"}
+text=${1-"/usr/share/doc/festival/examples/benchmark.text"}
-for i in . src/main ../src/main $HOME/projects/festival/src/main /cstr/bin
+for i in /usr/bin . src/main ../src/main $HOME/projects/festival/src/main /cstr/bin
do
if [ -n "$festival" ]
then
@@ -39,7 +44,15 @@
then
case $festival in
*main/festival ) libdir=`dirname $festival`/../../lib;;
- * ) libdir=$default_libdir;;
+ * ) libdir=$default_libdir;
+ esac
+fi
+
+if [ -z "$datadir" ]
+ then
+ case $festival in
+ *main/festival ) datadir=`dirname $festival`/../../share;;
+ * ) datadir=$default_datadir;;
esac
fi
@@ -54,10 +67,11 @@
cat > $script <<__END__
(set! libdir "$libdir/")
-(set! lexdir "$default_libdir/dicts/")
-(set! voiced_dir "$default_libdir/voices/")
+(set! datadir "$datadir/")
+(set! lexdir "$default_datadir/dicts/")
+(set! voiced_dir "$default_datadir/voices/")
-(load (string-append libdir "init.scm"))
+(load (string-append datadir "init.scm"))
(if (probe_file (format nil "%s/.festivalrc" (getenv "HOME")))
(load (format nil "%s/.festivalrc" (getenv "HOME"))))
diff -u --recursive festival-vanilla/examples/benchmark.text festival/examples/benchmark.text
--- festival-vanilla/examples/benchmark.text 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/benchmark.text 2018-09-06 20:37:22.855868107 -0400
@@ -32,8 +32,13 @@
--libdir PATH
Specify alternate to default library directory (used
- in initializing the variable load-path, and for
- loading most intinialisation files)
+ for architecture-specific libraries and programs)
+
+ --datadir PATH
+ Specify alternate to default shared-data directory (used
+ in initializing the variable load-path, and for
+ loading most initialisation files). Typically, the voice and
+ dictionary files reside here.
-b or --batch
Run in batch mode. In batch mode no input is read
diff -u --recursive festival-vanilla/examples/dumpfeats.sh festival/examples/dumpfeats.sh
--- festival-vanilla/examples/dumpfeats.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/dumpfeats.sh 2018-09-06 20:37:22.855868107 -0400
@@ -39,7 +39,7 @@
;;; Because this is a --script type file it has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(define (dumpfeats_help)
(format t "%s\n"
diff -u --recursive festival-vanilla/examples/durmeanstd.sh festival/examples/durmeanstd.sh
--- festival-vanilla/examples/durmeanstd.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/durmeanstd.sh 2018-09-06 20:37:22.856868112 -0400
@@ -40,7 +40,7 @@
;;; Because this is a --script type file it has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(define (durmeanstd_help)
(format t "%s\n"
diff -u --recursive festival-vanilla/examples/latest.sh festival/examples/latest.sh
--- festival-vanilla/examples/latest.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/latest.sh 2018-09-06 20:37:22.854868102 -0400
@@ -50,7 +50,7 @@
;;; Because this is a --script type file I has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(audio_mode 'async) ;; play waves while continuing synthesis
diff -u --recursive festival-vanilla/examples/Makefile festival/examples/Makefile
--- festival-vanilla/examples/Makefile 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/Makefile 2018-09-06 20:37:22.860868131 -0400
@@ -54,8 +54,9 @@
$(ALL) : % : %.sh
rm -f $@
- @echo "#!/bin/sh" >$@
- @echo "\"true\" ; exec "$(FESTIVAL_HOME)/bin/festival --script '$$0 $$*' >>$@
+ @echo "#!/usr/bin/festival --script" >$@
+# @echo "#!/bin/sh" >$@
+# @echo "\"true\" ; exec "/usr/bin/festival --script '$$0 $$*' >>$@
cat $< >>$@
chmod +x $@
diff -u --recursive festival-vanilla/examples/make_utts.sh festival/examples/make_utts.sh
--- festival-vanilla/examples/make_utts.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/make_utts.sh 2018-09-06 20:37:22.854868102 -0400
@@ -44,7 +44,7 @@
;;; Because this is a --script type file it has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
(if (not (symbol-bound? 'caar))
- (load (path-append libdir "init.scm")))
+ (load (path-append datadir "init.scm")))
;;; Some parts are potentially editable
(defvar basic_relations '((Phrase segmental ())
diff -u --recursive festival-vanilla/examples/saytime.sh festival/examples/saytime.sh
--- festival-vanilla/examples/saytime.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/saytime.sh 2018-09-06 20:37:22.856868112 -0400
@@ -44,7 +44,7 @@
;;; Because this is a --script type file I has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(define (get-the-time)
"Returns a list of hour and minute and second, for later processing"
diff -u --recursive festival-vanilla/examples/scfg_parse_text.sh festival/examples/scfg_parse_text.sh
--- festival-vanilla/examples/scfg_parse_text.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/scfg_parse_text.sh 2018-09-06 20:37:22.856868112 -0400
@@ -45,7 +45,7 @@
;;; Because this is a --script type file I has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(require 'scfg)
@@ -66,7 +66,7 @@
(gc-status nil)
;;; Default argument values
-(defvar grammarfile (path-append libdir "scfg_wsj_wp20.gram"))
+(defvar grammarfile (path-append datadir "scfg_wsj_wp20.gram"))
(defvar outfile "-")
(defvar outfd t)
(defvar parse_type 'brackets_only)
diff -u --recursive festival-vanilla/examples/text2pos.sh festival/examples/text2pos.sh
--- festival-vanilla/examples/text2pos.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/text2pos.sh 2018-09-06 20:37:22.856868112 -0400
@@ -50,7 +50,7 @@
;;; Because this is a --script type file I has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
(define (find-pos utt)
"Main function for processing TTS utterances. Predicts POS and
diff -u --recursive festival-vanilla/examples/text2wave.sh festival/examples/text2wave.sh
--- festival-vanilla/examples/text2wave.sh 2017-09-04 11:54:08.000000000 -0400
+++ festival/examples/text2wave.sh 2018-09-06 20:37:22.857868117 -0400
@@ -40,7 +40,7 @@
;;; Because this is a --script type file I has to explicitly
;;; load the initfiles: init.scm and user's .festivalrc
-(load (path-append libdir "init.scm"))
+(load (path-append datadir "init.scm"))
;;; Process command line arguments
(define (text2wave_help)
diff -u --recursive festival-vanilla/lib/festival.scm festival/lib/festival.scm
--- festival-vanilla/lib/festival.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/festival.scm 2018-09-06 20:37:22.858868122 -0400
@@ -552,13 +552,13 @@
(define (intro)
"(intro)
Synthesize an introduction to the Festival Speech Synthesis System."
- (tts (path-append libdir "../examples/intro.text") nil))
+ (tts (path-append datadir "/usr/share/doc/festival/examples/intro.text") nil))
(define (intro-spanish)
"(intro-spanish)
Synthesize an introduction to the Festival Speech Synthesis System
in spanish. Spanish voice must already be selected for this."
- (tts (path-append libdir "../examples/spintro.text") nil))
+ (tts (path-append datadir "/usr/share/doc/festival/examples/spintro.text") nil))
(define (na_play FILENAME)
"(play_wave FILENAME)
diff -u --recursive festival-vanilla/lib/init.scm festival/lib/init.scm
--- festival-vanilla/lib/init.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/init.scm 2018-09-06 20:37:22.852868092 -0400
@@ -36,7 +36,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Basic siod library (need this before load_library or require works)
-(load (path-append libdir "siod.scm"))
+(load (path-append datadir "siod.scm"))
(defvar home-directory (or (getenv "HOME") "/")
"home-directory
diff -u --recursive festival-vanilla/lib/lexicons.scm festival/lib/lexicons.scm
--- festival-vanilla/lib/lexicons.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/lexicons.scm 2018-09-06 20:37:22.858868122 -0400
@@ -42,10 +42,10 @@
;;; you should set lexdir in sitevars.scm
(defvar lexdir
- (if (probe_file (path-append libdir "dicts"))
- (path-append libdir "dicts/")
+ (if (probe_file (path-append datadir "dicts"))
+ (path-append datadir "dicts/")
;; else we'll guess we're in the CSTR filespace
- (path-as-directory "/projects/festival/lib/dicts/"))
+ (path-as-directory "/usr/share/festival/dicts/"))
"lexdir
The directory where the lexicon(s) are, by default.")
diff -u --recursive festival-vanilla/lib/phrase.scm festival/lib/phrase.scm
--- festival-vanilla/lib/phrase.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/phrase.scm 2018-09-06 20:37:22.857868117 -0400
@@ -93,7 +93,7 @@
(require 'pos) ;; for part of speech map
-(defvar pbreak_ngram_dir libdir
+(defvar pbreak_ngram_dir datadir
"pbreak_ngram_dir
The directory containing the ngram models for predicting phrase
breaks. By default this is the standard library directory.")
diff -u --recursive festival-vanilla/lib/soleml-mode.scm festival/lib/soleml-mode.scm
--- festival-vanilla/lib/soleml-mode.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/soleml-mode.scm 2018-09-06 20:37:22.857868117 -0400
@@ -330,7 +330,7 @@
(list 'exit_func soleml_exit_func)
'(analysis_type xxml)
(list 'filter
- (format nil "%s -D %s " sgml_parse_progname libdir))))
+ (format nil "%s -D %s " sgml_parse_progname datadir))))
tts_text_modes))
(provide 'soleml-mode)
diff -u --recursive festival-vanilla/lib/voices.scm festival/lib/voices.scm
--- festival-vanilla/lib/voices.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/voices.scm 2018-09-06 20:37:22.853868097 -0400
@@ -42,7 +42,7 @@
;; The path to search for voices is created from the load-path with
;; an extra list of directories appended.
-(defvar system-voice-path '( )
+(defvar system-voice-path '("/usr/share/festival/voices/")
"system-voice-path
Additional directory not near the load path where voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
diff -u --recursive festival-vanilla/src/arch/festival/audspio.cc festival/src/arch/festival/audspio.cc
--- festival-vanilla/src/arch/festival/audspio.cc 2017-09-04 11:54:08.000000000 -0400
+++ festival/src/arch/festival/audspio.cc 2018-09-06 20:37:22.859868126 -0400
@@ -108,7 +108,7 @@
{
audio = ft_get_param("Audio_Method");
command = ft_get_param("Audio_Command");
- audfds = pipe_open("audsp");
+ audfds = pipe_open("/usr/libexec/festival/audsp");
if (audio != NIL)
audsp_send(EST_String("method ")+get_c_string(audio));
if (command != NIL)
diff -u --recursive festival-vanilla/src/arch/festival/festival.cc festival/src/arch/festival/festival.cc
--- festival-vanilla/src/arch/festival/festival.cc 2017-09-04 11:54:08.000000000 -0400
+++ festival/src/arch/festival/festival.cc 2018-09-06 20:37:22.859868126 -0400
@@ -60,6 +60,9 @@
#define STRINGIZE(S) _S_S_S(S)
const char *festival_version = STRINGIZE(FTVERSION) ":" STRINGIZE(FTSTATE) " " STRINGIZE(FTDATE);
+const char *festival_libdir = "/usr/share/festival";
+const char *festival_datadir = "/usr/share/festival";
+const char *festival_sysconfdir = "/etc";
// Allow the path to be passed in without quotes because Windoze command line
// is stupid
@@ -79,7 +82,6 @@
#define FTOSTYPE ""
#endif
-const char *festival_libdir = FTLIBDIR;
ostream *cdebug;
static int festival_server_port = 1314;
static EST_StrList sub_copyrights;
@@ -308,7 +310,7 @@
EST_String userinitfile, home_str, initfile;
// Load library init first
- initfile = (EST_String)EST_Pathname(festival_libdir).as_directory() +
+ initfile = (EST_String)EST_Pathname(festival_datadir).as_directory() +
"init.scm";
if (access((const char *)initfile,R_OK) == 0)
vload(initfile,FALSE);
@@ -324,6 +326,8 @@
int major,minor,subminor;
siod_set_lval("libdir",strintern(festival_libdir));
+ siod_set_lval("datadir",strintern(festival_datadir));
+ siod_set_lval("sysconfdir",strintern(festival_sysconfdir));
if (!streq(FTOSTYPE,""))
siod_set_lval("*ostype*",cintern(FTOSTYPE));
siod_set_lval("festival_version",
@@ -357,6 +361,7 @@
if (mplayer_supported)
proclaim_module("mplayeraudio");
+#if 0 /* /usr/lib/festival/etc/machine -- ??? */
// Add etc-dir path and machine specific directory etc/$OSTYPE
char *etcdir = walloc(char,strlen(festival_libdir)+strlen("etc/")+
strlen(FTOSTYPE)+3);
@@ -377,6 +382,7 @@
wfree(etcdir);
wfree(etcdircommon);
+#endif
return;
}
Only in festival/src/arch/festival: festival.cc.orig
diff -u --recursive festival-vanilla/src/arch/festival/Makefile festival/src/arch/festival/Makefile
--- festival-vanilla/src/arch/festival/Makefile 2017-09-04 11:54:08.000000000 -0400
+++ festival/src/arch/festival/Makefile 2018-09-06 20:37:22.858868122 -0400
@@ -62,6 +62,6 @@
LOCAL_INCLUDES += $(FESTIVAL_INCLUDES)
festival.o: festival.cc
- $(CXX_COMMAND_TEMPLATES) -DFTNAME='$(PROJECT_NAME)' -DFTLIBDIRC='$(FTLIBDIR)' -DFTVERSION='$(PROJECT_VERSION)' -DFTSTATE='$(PROJECT_STATE)' -DFTDATE='$(PROJECT_DATE)' -DFTOSTYPE=\"$(SYSTEM_TYPE)\" festival.cc
+ $(CXX_COMMAND_TEMPLATES) -DFTNAME='$(PROJECT_NAME)' -DFTVERSION='$(PROJECT_VERSION)' -DFTSTATE='$(PROJECT_STATE)' -DFTDATE='$(PROJECT_DATE)' -DFTOSTYPEC='$(SYSTEM_TYPE)' festival.cc
diff -u --recursive festival-vanilla/src/include/festival.h festival/src/include/festival.h
--- festival-vanilla/src/include/festival.h 2017-09-04 11:54:08.000000000 -0400
+++ festival/src/include/festival.h 2018-09-06 20:37:22.854868102 -0400
@@ -138,6 +138,7 @@
void add_item_features(EST_Item *s,LISP features);
extern const char *festival_libdir;
+extern const char *festival_datadir;
// Module specific LISP/etc definitions
void festival_init_modules(void);
diff -u --recursive festival-vanilla/src/main/festival_main.cc festival/src/main/festival_main.cc
--- festival-vanilla/src/main/festival_main.cc 2017-09-04 11:54:08.000000000 -0400
+++ festival/src/main/festival_main.cc 2018-09-06 20:37:22.853868097 -0400
@@ -88,6 +88,8 @@
"In evaluation mode \"filenames\" starting with ( are evaluated inline\n"+
"Festival Speech Synthesis System: "+ festival_version +"\n"+
"-q Load no default setup files\n"+
+ "--datadir <string>\n"+
+ " Set data directory pathname\n"+
"--libdir <string>\n"+
" Set library directory pathname\n"+
"-b Run in batch mode (no interaction)\n"+
@@ -127,6 +129,12 @@
festival_libdir = wstrdup(al.val("--libdir"));
else if (getenv("FESTLIBDIR") != 0)
festival_libdir = getenv("FESTLIBDIR");
+
+ if (al.present("--datadir"))
+ festival_datadir = wstrdup(al.val("--datadir"));
+ else if (getenv("FESTDATADIR") != 0)
+ festival_datadir = getenv("FESTDATADIR");
+
if (al.present("--heap"))
heap_size = al.ival("--heap");
diff -u --recursive festival-vanilla/testsuite/data/modes.scm festival/testsuite/data/modes.scm
--- festival-vanilla/testsuite/data/modes.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/testsuite/data/modes.scm 2018-09-06 20:37:22.853868097 -0400
@@ -42,13 +42,13 @@
(format t "\n\nSABLE mode\n")
(unwind-protect
- (tts (string-append libdir "/../examples/example2.sable") nil))
+ (tts "/usr/share/doc/festival/examples/example2.sable" 'sable))
(format t "\n\nOGI's mark up mode\n")
(unwind-protect
- (tts (string-append libdir "/../examples/ex1.ogi") 'ogimarkup))
+ (tts "/usr/share/doc/festival/examples/ex1.ogi" 'ogimarkup))
(format t "\n\nAn email mode\n")
(unwind-protect
- (tts (string-append libdir "/../examples/ex1.email") nil))
+ (tts "/usr/share/doc/festival/examples/ex1.email" nil))
(voice_kal_diphone)
(format t "\n\nA singing mode\n")

View File

@ -0,0 +1,20 @@
diff -up festival/src/main/Makefile.pie festival/src/main/Makefile
--- festival/src/main/Makefile.pie 2022-01-26 10:33:55.420688190 -0500
+++ festival/src/main/Makefile 2022-01-26 10:34:45.928050436 -0500
@@ -54,13 +54,13 @@ ifeq (SIOD_PYTHON, $(findstring SIOD_PYT
endif
festival: festival_main.o $(LIBDEPS)
- $(LINK_COMMAND) -o festival festival_main.o $(LIBS)
+ $(LINK_COMMAND) -o festival festival_main.o -Wp,-pie $(LIBS)
festival_client: festival_client.o $(REQUIRED_LIBDEPS)
- $(LINK_COMMAND) -o festival_client festival_client.o $(LIBS)
+ $(LINK_COMMAND) -o festival_client festival_client.o -Wp,-pie $(LIBS)
$(ETCDIR)/audsp: $(ETCDIR)/.made audsp.o $(LIBDEPS)
- $(LINK_COMMAND) -o $(ETCDIR)/audsp audsp.o $(LIBS)
+ $(LINK_COMMAND) -o $(ETCDIR)/audsp audsp.o -Wp,-pie $(LIBS)
# Can't just rely on the dir as it gets updated with new files
# check for the data of a file created in etcdir

View File

@ -0,0 +1,14 @@
diff -u --recursive festival-vanilla/lib/festival.scm festival/lib/festival.scm
--- festival-vanilla/lib/festival.scm 2018-07-22 17:42:03.513767269 -0400
+++ festival/lib/festival.scm 2018-07-22 18:53:25.698493760 -0400
@@ -33,6 +33,10 @@
;;; General Festival Scheme specific functions
;;; Including definitions of various standard variables.
+(Parameter.set 'Audio_Required_Format 'aiff)
+(Parameter.set 'Audio_Method 'Audio_Command)
+(Parameter.set 'Audio_Command "paplay $FILE --client-name=Festival --stream-name=Speech")
+
;; will be set automatically on start-up
(defvar festival_version "unknown"
"festival_version

View File

@ -0,0 +1,157 @@
diff -u --recursive festival-vanilla/doc/festival.texi festival/doc/festival.texi
--- festival-vanilla/doc/festival.texi 2017-09-04 11:54:08.000000000 -0400
+++ festival/doc/festival.texi 2018-09-09 10:04:50.409877809 -0400
@@ -936,14 +936,15 @@
@cindex initialization
@cindex installation initialization
@cindex @file{init.scm}
-@cindex @file{siteinit.scm}
+@cindex @file{/etc/festival.scm}
+@cindex @file{/etc/festivalvars.scm}
Once compiled Festival may be further customized for particular sites.
At start up time Festival loads the file @file{init.scm} from its
library directory. This file further loads other necessary files such
as phoneset descriptions, duration parameters, intonation parameters,
definitions of voices etc. It will also load the files
-@file{sitevars.scm} and @file{siteinit.scm} if they exist.
-@file{sitevars.scm} is loaded after the basic Scheme library functions
+@file{/etc/festivalvars.scm} and @file{/etc/festival.scm} if they exist.
+@file{/etc/festivalvars.scm} is loaded after the basic Scheme library functions
are loaded but before any of the festival related functions are
loaded. This file is intended to set various path names before
various subsystems are loaded. Typically variables such
@@ -951,17 +952,17 @@
@code{voices_dir} (pointing to voice directories) should
be reset here if necessary.
-@cindex change libdir at run-time
+@cindex change libdir or datadir at run-time
@cindex run-time configuration
@cindex @code{load-path}
The default installation will try to find its lexicons and voices
automatically based on the value of @code{load-path} (this is derived
-from @code{FESTIVAL_HOME} at compilation time or by using the @code{--libdir}
+from @code{FESTIVAL_HOME} at compilation time or by using the @code{--datadir}
at run-time). If the voices and lexicons have been unpacked into
subdirectories of the library directory (the default) then no site
specific initialization of the above pathnames will be necessary.
-The second site specific file is @file{siteinit.scm}. Typical examples
+The second site specific file is @file{/etc/festival.scm}. Typical examples
of local initialization are as follows. The default audio output method
is NCD's NAS system if that is supported as that's what we use normally
in CSTR. If it is not supported, any hardware specific mode is the
@@ -969,7 +970,7 @@
But that default is just a setting in @file{init.scm}. If for example
in your environment you may wish the default audio output method to be
8k mulaw through @file{/dev/audio} you should add the following line to
-your @file{siteinit.scm} file
+your @file{/etc/festival.scm} file
@lisp
(Parameter.set 'Audio_Method 'sunaudio)
@end lisp
@@ -990,7 +991,7 @@
for sample rate and file type. When playing waveforms, Festival, by
default, outputs as unheadered waveform in native byte order. In this
example you would set up the default audio playing mechanism in
-@file{siteinit.scm} as follows
+@file{/etc/festival.scm} as follows
@lisp
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "adplay -raw -r $SR $FILE")
@@ -1036,12 +1037,12 @@
depend on many things but due to various licence (and resource)
restrictions you may only have some diphone/nphone databases available
in your installation. The function name that is the value of
-@code{voice_default} is called immediately after @file{siteinit.scm} is
+@code{voice_default} is called immediately after @file{/etc/festival.scm} is
loaded offering the opportunity for you to change it. In
the standard distribution no change should be required. If you
download all the distributed voices @code{voice_rab_diphone} is
the default voice. You may change this for a site by adding
-the following to @file{siteinit.scm} or per person by changing
+the following to @file{/etc/festival.scm} or per person by changing
your @file{.festivalrc}. For example if you wish to
change the default voice to the American one @code{voice_ked_diphone}
@lisp
@@ -1085,7 +1086,9 @@
Copyright (C) University of Edinburgh, 1996-2003. All rights reserved.
For details type `(festival_warranty)'
festival> libdir
-"/projects/festival/lib/"
+"/usr/lib/festival"
+festival> datadir
+"/usr/share/festival"
festival> ^D
@end example
This should show the pathname you set in your @file{config/config}.
@@ -1106,7 +1109,7 @@
You have selected NAS as the audio output but have no server running on
that machine or your @code{DISPLAY} or @code{AUDIOSERVER} environment
variable is not set properly for your output device. Either set these
-properly or change the audio output device in @file{lib/siteinit.scm} as
+properly or change the audio output device in @file{lib/festival.scm} as
described above.
Ensure your audio device actually works the way you think it does. On
@@ -1136,7 +1139,7 @@
@code{voice_rab_diphone} (@file{festvox_rabxxxx.tar.gz}) is the default
voice and that @code{voice_ked_diphone} and @code{voice_don_diphone}
(@file{festvox_kedxxxx.tar.gz} and @file{festvox_don.tar.gz}) are
-installed. Also local settings in your @file{festival/lib/siteinit.scm}
+installed. Also local settings in your @file{/etc/festival.scm}
may affect these tests. However, after installation it may
be worth trying
@example
Only in festival/doc: festival.texi.orig
Only in festival-vanilla/: festival
diff -u --recursive festival-vanilla/lib/init.scm festival/lib/init.scm
--- festival-vanilla/lib/init.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/init.scm 2018-09-09 10:04:50.406877794 -0400
@@ -42,6 +42,10 @@
"home-directory
Place looked at for .festivalrc etc.")
+;;; system-wide startup initialization
+(if (probe_file (path-append sysconfdir "festivalvars.scm"))
+ (load (path-append sysconfdir "festivalvars.scm")))
+
;;; User startup initialization, can be used to override load-path
;;; to allow alternate basic modules to be loaded.
(if (probe_file (path-append home-directory ".siodvarsrc"))
@@ -50,11 +54,6 @@
(if (probe_file (path-append home-directory ".festivalvarsrc"))
(load (path-append home-directory ".festivalvarsrc")))
-;;; 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")))
-
;;; CSTR siod extensions
(require 'cstr)
@@ -135,8 +134,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 (path-append sysconfdir "festival.scm"))
+ (load (path-append sysconfdir "festival.scm")))
;;; User initialization, if a user has a personal customization
;;; file loaded it
diff -u --recursive festival-vanilla/lib/synthesis.scm festival/lib/synthesis.scm
--- festival-vanilla/lib/synthesis.scm 2017-09-04 11:54:08.000000000 -0400
+++ festival/lib/synthesis.scm 2018-09-09 10:04:50.380877660 -0400
@@ -68,7 +68,7 @@
The default list of functions to be run on all synthesized utterances
after Wave_Synth. This will normally be nil but if for some reason you
need to change the gain or rescale *all* waveforms you could set the
- function here, in your siteinit.scm.")
+ function here, in your /etc/festival.scm.")
(defvar after_synth_hooks default_after_synth_hooks
"after_synth_hooks
Only in festival/src/arch/festival: festival.cc.orig

View File

@ -0,0 +1,16 @@
diff -u --recursive festival-vanilla/config/project.mak festival/config/project.mak
--- festival-vanilla/config/project.mak 2017-12-25 10:05:54.000000000 -0500
+++ festival/config/project.mak 2018-08-29 21:30:11.714031729 -0400
@@ -86,9 +86,9 @@
# Libraries used from other projects
REQUIRED_LIBRARIES = estools estbase eststring
-REQUIRED_LIBRARY_DIR_estools = $(EST)/lib
-REQUIRED_LIBRARY_DIR_estbase = $(EST)/lib
-REQUIRED_LIBRARY_DIR_eststring = $(EST)/lib
+REQUIRED_LIBRARY_DIR_estools = $(LIBDIR)
+REQUIRED_LIBRARY_DIR_estbase = $(LIBDIR)
+REQUIRED_LIBRARY_DIR_eststring = $(LIBDIR)
REQUIRED_MAKE_INCLUDE = $(EST)/make.include

View File

@ -0,0 +1,17 @@
diff -u --recursive festival-vanilla/config/config.in festival/config/config.in
--- festival-vanilla/config/config.in 2018-08-29 21:19:10.570829790 -0400
+++ festival/config/config.in 2018-08-29 21:19:57.329977377 -0400
@@ -10,7 +10,12 @@
###########################################################################
## Which speech tools to use
-EST=$(TOP)/../speech_tools
+ARCH := $(shell uname -p)
+ifeq ($(ARCH),$(filter $(ARCH),x86_64 s390x ppc64le aarch64))
+EST=/usr/lib64/speech_tools
+else
+EST=/usr/lib/speech_tools
+endif
###########################################################################
## Where the festival tree will be installed.

10
SOURCES/festival.service Normal file
View File

@ -0,0 +1,10 @@
[Unit]
Description=Festival server
Documentation=man:festival(1)
[Service]
ExecStart=/usr/bin/festival --server
User=festival
Group=festival
[Install]
WantedBy=multi-user.target

1031
SPECS/festival.spec Normal file

File diff suppressed because it is too large Load Diff