From f48d9894dc10bb51d4909330420874b47d517cca Mon Sep 17 00:00:00 2001 From: W. Michael Petullo Date: Oct 16 2019 22:39:52 +0000 Subject: Import latest after unretiring package Signed-off-by: W. Michael Petullo --- diff --git a/.gitignore b/.gitignore index b9bc769..316f441 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,11 @@ festvox_nitech_us_jmk_arctic_hts.tar.bz2 festvox_nitech_us_rms_arctic_hts.tar.bz2 festvox_nitech_us_slt_arctic_hts.tar.bz2 speech_tools-1.2.96-beta.tar.gz +/festival-2.5.0-release.tar.gz +/festvox_cmu_us_awb_cg.tar.gz +/festvox_cmu_us_bdl_cg.tar.gz +/festvox_cmu_us_clb_cg.tar.gz +/festvox_cmu_us_jmk_cg.tar.gz +/festvox_cmu_us_rms_cg.tar.gz +/festvox_cmu_us_slt_cg.tar.gz +/festvox_rablpc16k.tar.gz diff --git a/COPYING.hispavoces b/COPYING.hispavoces deleted file mode 100644 index d511905..0000000 --- a/COPYING.hispavoces +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/festival-1.96-0.7-fedora-siteinit.scm b/festival-1.96-0.7-fedora-siteinit.scm deleted file mode 100644 index f29c697..0000000 --- a/festival-1.96-0.7-fedora-siteinit.scm +++ /dev/null @@ -1,20 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Site specific initialization file for Festival -;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; Note that many configuration settings are better made in -;; individual ~/.festivalrc files. For example, if you want to -;; enable ESD audio and do it here, it'll break screen reading -;; on the login screen. Instead, put the (uncommented) line -;(Parameter.def 'Audio_Method 'esdaudio) -;; in your individual initialization file. - -;; You can change the default voice with something like: -;(set! voice_default 'voice_nitech_us_awb_arctic_hts) - -;; If you want to install voices into a non-default location, -;; see sitevars.scm for the appropriate settings. - -(provide 'siteinit) diff --git a/festival-1.96-0.7-fedora-sitevars.scm b/festival-1.96-0.7-fedora-sitevars.scm deleted file mode 100644 index af18f8b..0000000 --- a/festival-1.96-0.7-fedora-sitevars.scm +++ /dev/null @@ -1,21 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Site specific variable settings for Festival -;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; The system-voice-path is an additional path in which to look -;; for voices. If you install voices not provided in the form of -;; rpm package, you should then set this to match. The default -;; provided here, "/usr/local/share/festival/lib/voices/", is -;; probably a good choice. You could also set this in -;; ~/.festivalvarsrc, if you want to use a voice not provided to -;; the system as a whole. - -(set! system-voice-path '("/usr/local/share/festival/lib/voices/")) -(set! system-voice-path-multisyn - '("/usr/local/share/festival/lib/voices-multisyn/")) - - - -(provide 'sitevars) diff --git a/festival-1.96-alias_cmu_to_nitech.patch b/festival-1.96-alias_cmu_to_nitech.patch deleted file mode 100644 index 9fe757d..0000000 --- a/festival-1.96-alias_cmu_to_nitech.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff -urN festival.orig/lib/alias_cmu_to_nitech.scm festival/lib/alias_cmu_to_nitech.scm ---- festival.orig/lib/alias_cmu_to_nitech.scm 1969-12-31 19:00:00.000000000 -0500 -+++ festival/lib/alias_cmu_to_nitech.scm 2007-03-14 23:31:43.000000000 -0400 -@@ -0,0 +1,39 @@ -+; -+; This file is trivial and I make no claims of copyright. However, I should -+; certainly credit Nickolay V. Shmyrev, who sent me a snippet of code on -+; which this is based. -+; -- Matthew Miller -+; -+ -+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -+;;; -+;;; Make aliases for cmu_us_*_arctic_hts voices previously shipped with -+;;; Fedora which are now replaced by the nitech_us_*_arctic_hts versions -+;;; of the same voices. -+;;; -+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -+ -+(if (and (member 'nitech_us_awb_arctic_hts (voice.list)) -+ (not (member 'cmu_us_awb_arctic_hts (voice.list)))) -+ (define (voice_cmu_us_awb_arctic_hts) -+ (voice_nitech_us_awb_arctic_hts) -+ 'cmu_us_awb_arctic_hts)) -+ -+(if (and (member 'nitech_us_bdl_arctic_hts (voice.list)) -+ (not (member 'cmu_us_bdl_arctic_hts (voice.list)))) -+ (define (voice_cmu_us_bdl_arctic_hts) -+ (voice_nitech_us_bdl_arctic_hts) -+ 'cmu_us_bdl_arctic_hts)) -+ -+(if (and (member 'nitech_us_jmk_arctic_hts (voice.list)) -+ (not (member 'cmu_us_jmk_arctic_hts (voice.list)))) -+ (define (voice_cmu_us_jmk_arctic_hts) -+ (voice_nitech_us_jmk_arctic_hts) -+ 'cmu_us_jmk_arctic_hts)) -+ -+(if (and (member 'nitech_us_slt_arctic_hts (voice.list)) -+ (not (member 'cmu_us_slt_arctic_hts (voice.list)))) -+ (define (voice_cmu_us_slt_arctic_hts) -+ (voice_nitech_us_slt_arctic_hts) -+ 'cmu_us_slt_arctic_hts)) -+ -diff -urN festival.orig/lib/init.scm festival/lib/init.scm ---- festival.orig/lib/init.scm 2007-03-14 23:26:07.000000000 -0400 -+++ festival/lib/init.scm 2007-03-14 23:32:44.000000000 -0400 -@@ -128,6 +128,10 @@ - (require 'voices) ;; sets voice_default - (require 'languages) - -+;;; Aliases for the CMU voices previously shipped -+;;; with Fedora (now replaced by Nitech versions) -+(require 'alias_cmu_to_nitech) -+ - ;;; Some higher level functions - (require 'token) - (require 'tts) diff --git a/festival-1.96-bettersonamehack.patch b/festival-1.96-bettersonamehack.patch deleted file mode 100644 index db78824..0000000 --- a/festival-1.96-bettersonamehack.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- festival/speech_tools/config/rules/library.mak.soname 2001-04-04 07:55:32.000000000 -0400 -+++ festival/speech_tools/config/rules/library.mak 2007-03-16 14:13:59.000000000 -0400 -@@ -103,14 +103,14 @@ - ########################################################################### - - lib%.so : lib%.a -- @echo Make Shared Library $* -+ @echo Make Shared Library $(*F) - @if [ ! -d shared_space ] ; then mkdir shared_space ; else $(RM) -f shared_space/*.o ; fi - @(cd shared_space ; $(AR) x ../$< ) -- @echo Link Shared Library $* -- if [ -n "$(PROJECT_LIBRARY_NEEDS_SYSLIBS_$*)" ] ; then libs='$(JAVA_PROJECT_LIBS)' ; fi ;\ -- $(subst XXX,$@.$(PROJECT_LIBRARY_VERSION_$*),$(MAKE_SHARED_LIB)) shared_space/*.o $(PROJECT_LIBRARY_USES_$*:%=-L. -l%) $$libs -+ @echo Link Shared Library $(*F) -+ if [ -n "$(PROJECT_LIBRARY_NEEDS_SYSLIBS_$(*F))" ] ; then libs='$(JAVA_PROJECT_LIBS)' ; fi ;\ -+ $(subst XXX,$@.$(PROJECT_LIBRARY_VERSION_$(*F)),$(subst YYY,$(@F).$(PROJECT_LIBRARY_VERSION_$(*F)),$(MAKE_SHARED_LIB))) shared_space/*.o $(PROJECT_LIBRARY_USES_$(*F):%=-L. -l%) $$libs - @$(RM) -f shared_space/*.o $@ -- @ln -s $@.$(PROJECT_LIBRARY_VERSION_$*) $@ -+ @ln -s $(@F).$(PROJECT_LIBRARY_VERSION_$(*F)) $@ - - ########################################################################### - ## ## ---- festival/speech_tools/config/compilers/gcc_defaults.mak.soname 2007-03-16 12:43:31.000000000 -0400 -+++ festival/speech_tools/config/compilers/gcc_defaults.mak 2007-03-16 13:30:11.000000000 -0400 -@@ -78,7 +78,7 @@ - SHARED_LINKFLAGS = -fno-shared-data - - ifndef GCC_MAKE_SHARED_LIB -- MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX -+ MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX -Wl,-soname,YYY - else - MAKE_SHARED_LIB = $(GCC_MAKE_SHARED_LIB) - endif diff --git a/festival-1.96-etcsiteinit.patch b/festival-1.96-etcsiteinit.patch deleted file mode 100644 index 8e21ace..0000000 --- a/festival-1.96-etcsiteinit.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -ur festival.orig/lib/init.scm festival/lib/init.scm ---- festival.orig/lib/init.scm 2004-07-15 19:03:04.000000000 -0400 -+++ festival/lib/init.scm 2007-03-15 11:58:09.000000000 -0400 -@@ -55,6 +55,10 @@ - (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) - -@@ -98,7 +102,7 @@ - (t ;; can't find direct support so guess that /dev/audio for 8k ulaw exists - (Parameter.def 'Audio_Method 'sunaudio))) - ;;; If you have an external program to play audio add its definition --;;; in siteinit.scm -+;;; in ~/.festivalrc or /etc/festival/siteinit.scm - - ;;; The audio spooler doesn't work under Windows so redefine audio_mode - (if (member 'mplayeraudio *modules*) -@@ -135,9 +139,13 @@ - ;;; - ;;; 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 - (if (probe_file (path-append home-directory ".siodrc")) -diff -ur festival.orig/lib/voices.scm festival/lib/voices.scm ---- festival.orig/lib/voices.scm 2005-05-02 10:20:37.000000000 -0400 -+++ festival/lib/voices.scm 2007-03-15 12:00:19.000000000 -0400 -@@ -45,12 +45,12 @@ - (defvar system-voice-path '( ) - "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.") -+ found, this can be redefined in /etc/festival/sitevars.scm if desired.") - - (defvar system-voice-path-multisyn '( ) - "system-voice-path-multisyn - Additional directory not near the load path where multisyn voices can be -- found, this can be redefined in lib/sitevars.scm if desired.") -+ found, this can be redefined in /etc/festival/sitevars.scm if desired.") - - (defvar voice-path - (remove-duplicates diff --git a/festival-1.96-findspeechtools.patch b/festival-1.96-findspeechtools.patch deleted file mode 100644 index cb827f5..0000000 --- a/festival-1.96-findspeechtools.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- festival/config/config.in.orig 2007-03-15 16:16:24.000000000 -0400 -+++ festival/config/config.in 2007-03-15 16:16:50.000000000 -0400 -@@ -10,7 +10,7 @@ - ########################################################################### - ## Which speech tools to use - --EST=$(TOP)/../speech_tools -+EST=$(TOP)/speech_tools - - ########################################################################### - ## Where the festival tree will be installed. diff --git a/festival-1.96-format-security.patch b/festival-1.96-format-security.patch deleted file mode 100644 index 144de47..0000000 --- a/festival-1.96-format-security.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Naur festival.orig/speech_tools/siod/siodeditline.c festival/speech_tools/siod/siodeditline.c ---- festival.orig/speech_tools/siod/siodeditline.c 2004-04-30 18:56:51.000000000 +0200 -+++ festival/speech_tools/siod/siodeditline.c 2014-05-12 19:00:37.491000000 +0200 -@@ -151,7 +151,7 @@ - symbol = el_current_sym(); - infostring = siod_manual_sym(symbol); - putc('\n',stderr); -- fprintf(stderr,infostring); -+ fprintf(stderr,"%s",infostring); - fflush(stderr); - putc('\n',stderr); - fflush(stderr); -diff -Naur festival.orig/speech_tools/utils/cmd_line.cc festival/speech_tools/utils/cmd_line.cc ---- festival.orig/speech_tools/utils/cmd_line.cc 2004-09-30 14:53:37.000000000 +0200 -+++ festival/speech_tools/utils/cmd_line.cc 2014-05-12 19:08:57.577000000 +0200 -@@ -460,7 +460,7 @@ - fprintf(stdout,"%s", - (const char *)full.filename()); - -- fprintf(stdout, (const char *)ts.get_upto_eoln().string()); -+ fprintf(stdout, "%s", (const char *)ts.get_upto_eoln().string()); - - while (!ts.eof()) - { diff --git a/festival-1.96-kludge-etcpath-into-libarch.patch b/festival-1.96-kludge-etcpath-into-libarch.patch deleted file mode 100644 index e69e870..0000000 --- a/festival-1.96-kludge-etcpath-into-libarch.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur festival.orig/speech_tools/main/siod_main.cc festival/speech_tools/main/siod_main.cc ---- festival.orig/speech_tools/main/siod_main.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/main/siod_main.cc 2007-03-13 00:49:35.000000000 -0400 -@@ -224,10 +224,10 @@ - cons(flocons(subminor),NIL)))); - - EST_Pathname etcdircommon = est_libdir; -- etcdircommon += "etc"; -+ etcdircommon += "etc/"; - -- EST_Pathname etcdir = etcdircommon; -- etcdir += est_ostype; -+ EST_Pathname etcdir = {{HORRIBLELIBARCHKLUDGE}}; -+ etcdir += "festival/etc/"; - - // Modify my PATH to include these directories - siod_set_lval("etc-path",cons(rintern(etcdir), -diff -ur festival.orig/src/arch/festival/festival.cc festival/src/arch/festival/festival.cc ---- festival.orig/src/arch/festival/festival.cc 2007-03-13 00:41:42.000000000 -0400 -+++ festival/src/arch/festival/festival.cc 2007-03-13 00:47:55.000000000 -0400 -@@ -349,10 +349,10 @@ - proclaim_module("mplayeraudio"); - - // Add etc-dir path and machine specific directory etc/$OSTYPE -- char *etcdir = walloc(char,strlen(festival_libdir)+strlen("etc/")+ -- strlen(FTOSTYPE)+3); -- sprintf(etcdir,"%s/etc/%s/",festival_libdir,FTOSTYPE); -- char *etcdircommon = walloc(char,strlen(festival_libdir)+strlen("etc/")+3); -+ char *etcdir = walloc(char,strlen({{HORRIBLELIBARCHKLUDGE}})+ -+ strlen("etc/festival/")+2); -+ sprintf(etcdir,"%s/festival/etc/",{{HORRIBLELIBARCHKLUDGE}}); -+ char *etcdircommon = walloc(char,strlen(festival_libdir)+strlen("etc/")+2); - sprintf(etcdircommon,"%s/etc/",festival_libdir); - - // Modify my PATH to include these directories diff --git a/festival-1.96-main-shared-build.patch b/festival-1.96-main-shared-build.patch deleted file mode 100644 index d424c7e..0000000 --- a/festival-1.96-main-shared-build.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- festival/speech_tools/config/rules/defaults.mak.orig 2007-03-16 12:39:12.000000000 -0400 -+++ festival/speech_tools/config/rules/defaults.mak 2007-03-16 12:39:19.000000000 -0400 -@@ -69,15 +69,21 @@ - MADE_FROM_ABOVE:=$(N) - endif - -+ifneq ($(SHARED),0) -+ LIBTYPE=so -+else -+ LIBTYPE=a -+endif -+ - ifndef PROJECT_LIBDEPS -- PROJECT_LIBDEPS = $(foreach l,$(PROJECT_LIBRARIES),$(PROJECT_LIBRARY_DIR_$(l))/lib$(l).a) -+ PROJECT_LIBDEPS = $(foreach l,$(PROJECT_LIBRARIES),$(PROJECT_LIBRARY_DIR_$(l))/lib$(l).$(LIBTYPE)) - endif - ifndef PROJECT_LIBS - PROJECT_LIBS = $(foreach l,$(PROJECT_LIBRARIES),-L$(PROJECT_LIBRARY_DIR_$(l)) -l$(l)) - endif - - ifndef REQUIRED_LIBDEPS -- REQUIRED_LIBDEPS = $(foreach l,$(REQUIRED_LIBRARIES),$(REQUIRED_LIBRARY_DIR_$(l))/lib$(l).a) -+ REQUIRED_LIBDEPS = $(foreach l,$(REQUIRED_LIBRARIES),$(REQUIRED_LIBRARY_DIR_$(l))/lib$(l).$(LIBTYPE)) - endif - ifndef REQUIRED_LIBS - REQUIRED_LIBS = $(foreach l,$(REQUIRED_LIBRARIES),-L$(REQUIRED_LIBRARY_DIR_$(l)) -l$(l)) ---- festival/config/project.mak.orig 2007-03-16 13:01:40.000000000 -0400 -+++ festival/config/project.mak 2007-03-16 13:02:24.000000000 -0400 -@@ -84,6 +84,8 @@ - PROJECT_LIBRARY_DIR_Festival = $(TOP)/src/lib - PROJECT_DEFAULT_LIBRARY = Festival - -+PROJECT_LIBRARY_VERSION_Festival = $(PROJECT_VERSION).0 -+ - # Libraries used from other projects - - REQUIRED_LIBRARIES = estools estbase eststring diff --git a/festival-1.96-nitech-american.patch b/festival-1.96-nitech-american.patch deleted file mode 100644 index 2f4a57f..0000000 --- a/festival-1.96-nitech-american.patch +++ /dev/null @@ -1,213 +0,0 @@ -diff -ur festival.orig/lib/email-mode.scm festival/lib/email-mode.scm ---- festival.orig/lib/email-mode.scm 2001-04-04 07:55:20.000000000 -0400 -+++ festival/lib/email-mode.scm 2007-03-13 12:14:01.000000000 -0400 -@@ -40,7 +40,7 @@ - (define (email_init_func) - "(email_init_func) - Called on starting email text mode." -- (voice_rab_diphone) -+ (voice_nitech_us_slt_arctic_hts) - (set! email_previous_t2w_func token_to_words) - (set! english_token_to_words email_token_to_words) - (set! token_to_words english_token_to_words) -@@ -67,13 +67,13 @@ - ((and (string-matches name ">") - (string-matches (item.feat token "whitespace") - "[ \t\n]*\n *")) -- (voice_don_diphone) -+ (voice_nitech_us_bdl_arctic_hts) - nil ;; return nothing to say - ) - (t ;; for all other cases - (if (string-matches (item.feat token "whitespace") - ".*\n[ \n]*") -- (voice_rab_diphone)) -+ (voice_nitech_us_slt_arctic_hts)) - (email_previous_t2w_func token name)))) - - (set! tts_text_modes -diff -ur festival.orig/lib/festival.scm festival/lib/festival.scm ---- festival.orig/lib/festival.scm 2005-10-21 08:34:01.000000000 -0400 -+++ festival/lib/festival.scm 2007-03-13 12:15:13.000000000 -0400 -@@ -507,8 +507,11 @@ - double quotes - (tts FILENAME nil) Say contexts of file, FILENAME should be - surrounded by double quotes -- (voice_rab_diphone) Select voice (Britsh Male) - (voice_ked_diphone) Select voice (American Male) -+ (voice_nitech_us_bdl_arctic_hts) -+ Select voice (American Male) -+ (voice_nitech_us_slt_arctic_hts) -+ Select voice (American Female) - ") - - (define (festival_warranty) -diff -ur festival.orig/lib/languages.scm festival/lib/languages.scm ---- festival.orig/lib/languages.scm 2002-04-19 17:47:23.000000000 -0400 -+++ festival/lib/languages.scm 2007-03-13 12:17:15.000000000 -0400 -@@ -58,11 +58,12 @@ - - (define (language_american_english) - "(language_american_english) --Set up language parameters for Aemerican English." -+Set up language parameters for American English." - -- (if (symbol-bound? 'voice_kal_diphone) -- (set! female1 voice_kal_diphone)) -- (set! male1 voice_ked_diphone) -+ (if (symbol-bound? 'voice_nitech_us_slt_arctic_hts) -+ (set! female1 voice_nitech_us_slt_arctic_hts)) -+ (if (symbol-bound? 'voice_nitech_us_bdl_arctic_hts) -+ (set! male1 voice_nitech_us_bdl_arctic_hts)) - - (male1) - (Parameter.set 'Language 'americanenglish) -@@ -98,11 +99,12 @@ - - (define (select_language language) - (cond -- ((or (equal? language 'britishenglish) -- (equal? language 'english)) ;; we all know its the *real* English -+ ((or (equal? language 'americanenglish) -+ (equal? language 'english)) ;; it may not be the *real* English -+ (language_american_english)) ;; but at least it's supported without -+ ;; non-free add-ons. -+ ((equal? language 'britishenglish) - (language_british_english)) -- ((equal? language 'americanenglish) -- (language_american_english)) - ((equal? language 'scotsgaelic) - (language_scots_gaelic)) - ((equal? language 'welsh) -@@ -113,8 +115,8 @@ - (language_klingon)) - (t - (print "Unsupported language, using English") -- (language_british_english)))) -+ (language_american_english)))) - --(defvar language_default language_british_english) -+(defvar language_default language_american_english) - - (provide 'languages) -diff -ur festival.orig/lib/sable-mode.scm festival/lib/sable-mode.scm ---- festival.orig/lib/sable-mode.scm 2006-07-07 17:24:55.000000000 -0400 -+++ festival/lib/sable-mode.scm 2007-03-13 12:25:04.000000000 -0400 -@@ -222,35 +222,38 @@ - (xxml_synth UTT) - (set! sable_speaker_stack (cons sable_current_speaker sable_speaker_stack)) - (cond -- ((not equal? sable_current_language 'britishenglish) -+ ((not equal? sable_current_language 'americanenglish) - (print "SABLE: choosen unknown voice, current voice unchanged")) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male1) -- (set! sable_current_speaker 'voice_kal_diphone) -- (voice_kal_diphone)) -+ (set! sable_current_speaker 'voice_nitech_us_bdl_arctic_hts) -+ (voice_nitech_us_bdl_arctic_hts)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male2) -- (set! sable_current_speaker 'voice_don_diphone) -- (voice_don_diphone)) -+ (set! sable_current_speaker 'voice_nitech_us_rms_arctic_hts) -+ (voice_nitech_us_rms_arctic_hts)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male3) -- (set! sable_current_speaker 'voice_ked_diphone) -- (voice_ked_diphone)) -+ (set! sable_current_speaker 'voice_nitech_us_awb_arctic_hts) -+ (voice_nitech_us_awb_arctic_hts)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male4) -- (set! sable_current_speaker 'voice_rab_diphone) -- (voice_rab_diphone)) -+ (set! sable_current_speaker 'voice_nitech_us_jmk_arctic_hts) -+ (voice_nitech_us_jmk_arctic_hts)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male5) -- (set! sable_current_speaker 'voice_cmu_us_jmk_arctic_hts) -- (voice_cmu_us_jmk_arctic_hts)) -+ (set! sable_current_speaker 'voice_kal_diphone) -+ (voice_kal_diphone)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male6) -- (set! sable_current_speaker 'voice_cmu_us_bdl_arctic_hts) -- (voice_cmu_us_bdl_arctic_hts)) -+ (set! sable_current_speaker 'voice_ked_diphone) -+ (voice_ked_diphone)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male7) -- (set! sable_current_speaker 'voice_cmu_us_awb_arctic_hts) -- (voice_cmu_us_awb_arctic_hts)) -+ (set! sable_current_speaker 'voice_kal_diphone) -+ (voice_kal_diphone)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'male8) -- (set! sable_current_speaker 'voice_rab_diphone) -+ (set! sable_current_speaker 'voice_ked_diphone) - (voice_ked_diphone)) - ((equal? (car (xxml_attval "NAME" ATTLIST)) 'female1) -- (set! sable_current_speaker 'voice_cmu_us_slt_arctic_hts) -- (voice_us1_mbrola)) -+ (set! sable_current_speaker 'voice_nitech_us_slt_arctic_hts) -+ (voice_nitech_us_slt_arctic_hts)) -+ ((equal? (car (xxml_attval "NAME" ATTLIST)) 'female2) -+ (set! sable_current_speaker 'voice_nitech_us_clb_arctic_hts) -+ (voice_nitech_us_clb_arctic_hts)) - (t - (set! sable_current_speaker (intern (string-append "voice_" (car (xxml_attval "NAME" ATTLIST))))) - (eval (list sable_current_speaker)))) -@@ -467,7 +470,7 @@ - "(sable_init_func) - Initialisation for SABLE mode" - (sable_init_globals) -- (voice_kal_diphone) -+ (voice_nitech_us_slt_arctic_hts) - (set! sable_previous_elements xxml_elements) - (set! xxml_elements sable_elements) - (set! sable_previous_token_to_words english_token_to_words) -diff -ur festival.orig/lib/soleml-mode.scm festival/lib/soleml-mode.scm ---- festival.orig/lib/soleml-mode.scm 2001-04-04 07:55:20.000000000 -0400 -+++ festival/lib/soleml-mode.scm 2007-03-13 12:25:48.000000000 -0400 -@@ -51,7 +51,7 @@ - (define (voice_soleml) - "(soleml_voice) - Speaker specific initialisation for SOLE museum data." -- (voice_rab_diphone) -+ (voice_nitech_us_slt_arctic_hts) - ;; Utterances only come at end of file - (set! eou_tree '((0))) - ) -diff -ur festival.orig/lib/voices.scm festival/lib/voices.scm ---- festival.orig/lib/voices.scm 2005-05-02 10:20:37.000000000 -0400 -+++ festival/lib/voices.scm 2007-03-13 12:31:07.000000000 -0400 -@@ -322,25 +322,19 @@ - A variable whose value is a function name that is called on start up to - the default voice. [see Site initialization]") - -+; This list has been reordered for Fedora, since we want to have the option -+; to only install a smallish voice by default. And the slt voice is nice. - (defvar default-voice-priority-list -- '(kal_diphone -- cmu_us_bdl_arctic_hts -- cmu_us_jmk_arctic_hts -- cmu_us_slt_arctic_hts -- cmu_us_awb_arctic_hts --; cstr_rpx_nina_multisyn ; restricted license (lexicon) --; cstr_rpx_jon_multisyn ; restricted license (lexicon) --; cstr_edi_awb_arctic_multisyn ; restricted license (lexicon) --; cstr_us_awb_arctic_multisyn -+ '(nitech_us_slt_arctic_hts -+ nitech_us_awb_arctic_hts -+ nitech_us_bdl_arctic_hts -+ nitech_us_clb_arctic_hts -+ nitech_us_jmk_arctic_hts -+ nitech_us_rms_arctic_hts -+ kal_diphone - ked_diphone -- don_diphone -- rab_diphone -- en1_mbrola -- us1_mbrola -- us2_mbrola -- us3_mbrola -- gsw_diphone ;; not publically distributed -- el_diphone -+ cstr_us_awb_arctic_multisyn -+ cstr_us_jmk_arctic_multisyn - ) - "default-voice-priority-list - List of voice names. The first of them available becomes the default voice.") diff --git a/festival-1.96-nitech-fixmissingrequire.patch b/festival-1.96-nitech-fixmissingrequire.patch deleted file mode 100644 index 80d4056..0000000 --- a/festival-1.96-nitech-fixmissingrequire.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -ur festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_f0model.scm festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_f0model.scm ---- festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_f0model.scm 2006-12-26 01:37:36.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_f0model.scm 2007-03-15 14:16:01.000000000 -0400 -@@ -35,7 +35,7 @@ - ;;; - - ;;; Load any necessary files here --;(require 'f2bf0lr) -+(require 'f2bf0lr) - (require 'nitech_us_awb_arctic_f0clunits) - - (set! nitech_us_awb_arctic_int_lr_params -diff -ur festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_f0model.scm festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_f0model.scm ---- festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_f0model.scm 2006-12-26 01:40:32.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_f0model.scm 2007-03-15 14:16:09.000000000 -0400 -@@ -35,7 +35,7 @@ - ;;; - - ;;; Load any necessary files here --;(require 'f2bf0lr) -+(require 'f2bf0lr) - (require 'nitech_us_clb_arctic_f0clunits) - - (set! nitech_us_clb_arctic_int_lr_params -diff -ur festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_f0model.scm festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_f0model.scm ---- festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_f0model.scm 2006-12-26 01:41:26.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_f0model.scm 2007-03-15 14:16:06.000000000 -0400 -@@ -35,7 +35,7 @@ - ;;; - - ;;; Load any necessary files here --;(require 'f2bf0lr) -+(require 'f2bf0lr) - (require 'nitech_us_rms_arctic_f0clunits) - - (set! nitech_us_rms_arctic_int_lr_params diff --git a/festival-1.96-nitech-proclaimvoice.patch b/festival-1.96-nitech-proclaimvoice.patch deleted file mode 100644 index 004013a..0000000 --- a/festival-1.96-nitech-proclaimvoice.patch +++ /dev/null @@ -1,102 +0,0 @@ -diff -ur festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm 2007-03-08 04:26:04.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm 2007-03-14 23:39:40.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_awb_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_awb_arctic_hts -+ '((language english) -+ (gender male) -+ (dialect american) -+ (description -+ "Scottish-accent US English male speaker AWB."))) -+ - (provide 'nitech_us_awb_arctic_hts) - -diff -ur festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm 2007-03-08 04:26:34.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm 2007-03-14 23:40:06.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_bdl_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_bdl_arctic_hts -+ '((language english) -+ (gender male) -+ (dialect american) -+ (description -+ "US English male speaker BDL."))) -+ - (provide 'nitech_us_bdl_arctic_hts) - -diff -ur festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm 2007-03-08 04:27:07.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm 2007-03-14 23:41:36.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_clb_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_clb_arctic_hts -+ '((language english) -+ (gender female) -+ (dialect american) -+ (description -+ "US English female speaker CLB."))) -+ - (provide 'nitech_us_clb_arctic_hts) - -diff -ur festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm 2007-03-08 04:27:43.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm 2007-03-14 23:42:14.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_jmk_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_jmk_arctic_hts -+ '((language english) -+ (gender male) -+ (dialect american) -+ (description -+ "Canadian-accent US English male speaker JMK."))) -+ - (provide 'nitech_us_jmk_arctic_hts) - -diff -ur festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm 2007-03-08 04:28:15.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm 2007-03-14 23:42:46.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_rms_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_rms_arctic_hts -+ '((language english) -+ (gender male) -+ (dialect american) -+ (description -+ "US English male speaker RMS. Not that RMS."))) -+ - (provide 'nitech_us_rms_arctic_hts) - -diff -ur festival/lib/voices/us/nitech_us_slt_arctic_hts/festvox/nitech_us_slt_arctic_hts.scm festival/lib/voices/us/nitech_us_slt_arctic_hts/festvox/nitech_us_slt_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_slt_arctic_hts/festvox/nitech_us_slt_arctic_hts.scm 2007-03-08 04:28:41.000000000 -0500 -+++ festival/lib/voices/us/nitech_us_slt_arctic_hts/festvox/nitech_us_slt_arctic_hts.scm 2007-03-14 23:43:03.000000000 -0400 -@@ -176,5 +176,13 @@ - (set! current-voice 'nitech_us_slt_arctic_hts) - ) - -+(proclaim_voice -+ 'nitech_us_slt_arctic_hts -+ '((language english) -+ (gender female) -+ (dialect american) -+ (description -+ "US English female speaker SLT."))) -+ - (provide 'nitech_us_slt_arctic_hts) - diff --git a/festival-1.96-nitech-sltreferences.patch b/festival-1.96-nitech-sltreferences.patch deleted file mode 100644 index 6887a96..0000000 --- a/festival-1.96-nitech-sltreferences.patch +++ /dev/null @@ -1,135 +0,0 @@ -diff -ur festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm 2007-03-15 14:18:02.000000000 -0400 -+++ festival/lib/voices/us/nitech_us_awb_arctic_hts/festvox/nitech_us_awb_arctic_hts.scm 2007-03-15 14:20:37.000000000 -0400 -@@ -101,10 +101,10 @@ - t - ) - --(set! nitech_us_slt_arctic_hts::hts_feats_list -+(set! nitech_us_awb_arctic_hts::hts_feats_list - (load (path-append hts_data_dir "feat.list") t)) - --(set! nitech_us_slt_arctic_hts::hts_engine_params -+(set! nitech_us_awb_arctic_hts::hts_engine_params - (list - (list "-dm1" (path-append hts_data_dir "mcep_dyn.win")) - (list "-dm2" (path-append hts_data_dir "mcep_acc.win")) -@@ -160,8 +160,8 @@ - (nitech_us_awb_arctic::select_f0model) - - ;; Waveform synthesis model: hts -- (set! hts_engine_params nitech_us_slt_arctic_hts::hts_engine_params) -- (set! hts_feats_list nitech_us_slt_arctic_hts::hts_feats_list) -+ (set! hts_engine_params nitech_us_awb_arctic_hts::hts_engine_params) -+ (set! hts_feats_list nitech_us_awb_arctic_hts::hts_feats_list) - (Parameter.set 'Synth_Method 'HTS) - - ;; This is where you can modify power (and sampling rate) if desired -diff -ur festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm 2007-03-15 14:18:03.000000000 -0400 -+++ festival/lib/voices/us/nitech_us_bdl_arctic_hts/festvox/nitech_us_bdl_arctic_hts.scm 2007-03-15 14:20:43.000000000 -0400 -@@ -101,10 +101,10 @@ - t - ) - --(set! nitech_us_slt_arctic_hts::hts_feats_list -+(set! nitech_us_bdl_arctic_hts::hts_feats_list - (load (path-append hts_data_dir "feat.list") t)) - --(set! nitech_us_slt_arctic_hts::hts_engine_params -+(set! nitech_us_bdl_arctic_hts::hts_engine_params - (list - (list "-dm1" (path-append hts_data_dir "mcep_dyn.win")) - (list "-dm2" (path-append hts_data_dir "mcep_acc.win")) -@@ -160,8 +160,8 @@ - (nitech_us_bdl_arctic::select_f0model) - - ;; Waveform synthesis model: hts -- (set! hts_engine_params nitech_us_slt_arctic_hts::hts_engine_params) -- (set! hts_feats_list nitech_us_slt_arctic_hts::hts_feats_list) -+ (set! hts_engine_params nitech_us_bdl_arctic_hts::hts_engine_params) -+ (set! hts_feats_list nitech_us_bdl_arctic_hts::hts_feats_list) - (Parameter.set 'Synth_Method 'HTS) - - ;; This is where you can modify power (and sampling rate) if desired -diff -ur festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm 2007-03-15 14:18:03.000000000 -0400 -+++ festival/lib/voices/us/nitech_us_clb_arctic_hts/festvox/nitech_us_clb_arctic_hts.scm 2007-03-15 14:20:50.000000000 -0400 -@@ -101,10 +101,10 @@ - t - ) - --(set! nitech_us_slt_arctic_hts::hts_feats_list -+(set! nitech_us_clb_arctic_hts::hts_feats_list - (load (path-append hts_data_dir "feat.list") t)) - --(set! nitech_us_slt_arctic_hts::hts_engine_params -+(set! nitech_us_clb_arctic_hts::hts_engine_params - (list - (list "-dm1" (path-append hts_data_dir "mcep_dyn.win")) - (list "-dm2" (path-append hts_data_dir "mcep_acc.win")) -@@ -160,8 +160,8 @@ - (nitech_us_clb_arctic::select_f0model) - - ;; Waveform synthesis model: hts -- (set! hts_engine_params nitech_us_slt_arctic_hts::hts_engine_params) -- (set! hts_feats_list nitech_us_slt_arctic_hts::hts_feats_list) -+ (set! hts_engine_params nitech_us_clb_arctic_hts::hts_engine_params) -+ (set! hts_feats_list nitech_us_clb_arctic_hts::hts_feats_list) - (Parameter.set 'Synth_Method 'HTS) - - ;; This is where you can modify power (and sampling rate) if desired -diff -ur festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm 2007-03-15 14:18:03.000000000 -0400 -+++ festival/lib/voices/us/nitech_us_jmk_arctic_hts/festvox/nitech_us_jmk_arctic_hts.scm 2007-03-15 14:20:55.000000000 -0400 -@@ -101,10 +101,10 @@ - t - ) - --(set! nitech_us_slt_arctic_hts::hts_feats_list -+(set! nitech_us_jmk_arctic_hts::hts_feats_list - (load (path-append hts_data_dir "feat.list") t)) - --(set! nitech_us_slt_arctic_hts::hts_engine_params -+(set! nitech_us_jmk_arctic_hts::hts_engine_params - (list - (list "-dm1" (path-append hts_data_dir "mcep_dyn.win")) - (list "-dm2" (path-append hts_data_dir "mcep_acc.win")) -@@ -160,8 +160,8 @@ - (nitech_us_jmk_arctic::select_f0model) - - ;; Waveform synthesis model: hts -- (set! hts_engine_params nitech_us_slt_arctic_hts::hts_engine_params) -- (set! hts_feats_list nitech_us_slt_arctic_hts::hts_feats_list) -+ (set! hts_engine_params nitech_us_jmk_arctic_hts::hts_engine_params) -+ (set! hts_feats_list nitech_us_jmk_arctic_hts::hts_feats_list) - (Parameter.set 'Synth_Method 'HTS) - - ;; This is where you can modify power (and sampling rate) if desired -diff -ur festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm ---- festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm 2007-03-15 14:18:03.000000000 -0400 -+++ festival/lib/voices/us/nitech_us_rms_arctic_hts/festvox/nitech_us_rms_arctic_hts.scm 2007-03-15 14:21:01.000000000 -0400 -@@ -101,10 +101,10 @@ - t - ) - --(set! nitech_us_slt_arctic_hts::hts_feats_list -+(set! nitech_us_rms_arctic_hts::hts_feats_list - (load (path-append hts_data_dir "feat.list") t)) - --(set! nitech_us_slt_arctic_hts::hts_engine_params -+(set! nitech_us_rms_arctic_hts::hts_engine_params - (list - (list "-dm1" (path-append hts_data_dir "mcep_dyn.win")) - (list "-dm2" (path-append hts_data_dir "mcep_acc.win")) -@@ -160,8 +160,8 @@ - (nitech_us_rms_arctic::select_f0model) - - ;; Waveform synthesis model: hts -- (set! hts_engine_params nitech_us_slt_arctic_hts::hts_engine_params) -- (set! hts_feats_list nitech_us_slt_arctic_hts::hts_feats_list) -+ (set! hts_engine_params nitech_us_rms_arctic_hts::hts_engine_params) -+ (set! hts_feats_list nitech_us_rms_arctic_hts::hts_feats_list) - (Parameter.set 'Synth_Method 'HTS) - - ;; This is where you can modify power (and sampling rate) if desired diff --git a/festival-1.96-server-script-typo.patch b/festival-1.96-server-script-typo.patch deleted file mode 100644 index d8cbf94..0000000 --- a/festival-1.96-server-script-typo.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/scripts/festival_server.sh.orig 2013-03-02 09:54:57.126436666 -0600 -+++ src/scripts/festival_server.sh 2013-03-02 09:55:10.529140080 -0600 -@@ -119,7 +119,7 @@ - (set! server_port $port) - (set! server_festival_version "$festival" ) - (set! server_log_file "$server_log" ) --(set! server_startup_file "$serer_startup" ) -+(set! server_startup_file "$server_startup" ) - - ;; Marks end of machine created bit - ;--- diff --git a/festival-1.96-speechtools-1.2.96-beta+awb.patch b/festival-1.96-speechtools-1.2.96-beta+awb.patch deleted file mode 100644 index 30906c7..0000000 --- a/festival-1.96-speechtools-1.2.96-beta+awb.patch +++ /dev/null @@ -1,1227 +0,0 @@ -diff -ur festival/speech_tools.old/grammar/ngram/EST_Ngrammar.cc festival/speech_tools/grammar/ngram/EST_Ngrammar.cc ---- festival/speech_tools.old/grammar/ngram/EST_Ngrammar.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/grammar/ngram/EST_Ngrammar.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -306,7 +306,7 @@ - // not right - just print out, then recurse through children - // change to use 'backoff_traverse' - -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - for (k=p_pdf.item_start(); -@@ -373,7 +373,7 @@ - { - - // recursively delete this state and all its children -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - for (k=p_pdf.item_start(); -@@ -456,7 +456,8 @@ - - void EST_BackoffNgrammarState::frequency_of_frequencies(EST_DVector &ff) - { -- int k,max=ff.n(); -+ int max=ff.n(); -+ EST_Litem *k; - double freq; - EST_String name; - for (k=p_pdf.item_start(); -@@ -1585,7 +1586,7 @@ - // remove any branches with zero frequency count - - // find children of this state with zero freq and zap them -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - for (k=start_state->pdf_const().item_start(); -@@ -2324,7 +2325,8 @@ - backoff_representation->print_freqs(os,p_order); - else - { -- int i,j,k; -+ int i,j; -+ EST_Litem *k; - EST_IVector window(p_order-1); - - for (i=0; i < p_num_states; i++) -@@ -2665,7 +2667,7 @@ - function(start_state,params); - - // and recurse down the tree -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - for (k=start_state->pdf_const().item_start(); -@@ -2696,7 +2698,7 @@ - { - // and recurse down the tree if we haven't - // reached the level yet -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - -diff -ur festival/speech_tools.old/grammar/ngram/EST_PST.cc festival/speech_tools/grammar/ngram/EST_PST.cc ---- festival/speech_tools.old/grammar/ngram/EST_PST.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/grammar/ngram/EST_PST.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -71,7 +71,8 @@ - // Base -- print from pd - EST_String s; - double freq; -- for (int i = pd.item_start(); -+ EST_Litem *i; -+ for (i = pd.item_start(); - !pd.item_end(i); - i=pd.item_next(i)) - { -@@ -98,7 +99,7 @@ - EST_String s; - double prob; - os << get_path() << " :"; -- for (int i = pd.item_start(); !pd.item_end(i) ; i=pd.item_next(i)) -+ for (EST_Litem *i = pd.item_start(); !pd.item_end(i) ; i=pd.item_next(i)) - { - pd.item_prob(i,s,prob); - os << " " << s << " " << prob; -diff -ur festival/speech_tools.old/grammar/ngram/freqsmooth.cc festival/speech_tools/grammar/ngram/freqsmooth.cc ---- festival/speech_tools.old/grammar/ngram/freqsmooth.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/grammar/ngram/freqsmooth.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -74,7 +74,8 @@ - EST_Ngrammar &ngram) - { - // Build all the backoff grammars back to uni-grams -- int i,j,k,l; -+ int i,j,l; -+ EST_Litem *k; - - for (i=0; i < ngram.order()-1; i++) - backoff_ngrams[i].init(i+1,EST_Ngrammar::dense, -@@ -110,7 +111,8 @@ - { - // For all ngrams which are too infrequent, adjust their - // frequencies based on their backoff probabilities -- int i,j; -+ int i; -+ EST_Litem *j; - double occurs; - double backoff_prob; - -diff -ur festival/speech_tools.old/grammar/ngram/ngrammar_aux.cc festival/speech_tools/grammar/ngram/ngrammar_aux.cc ---- festival/speech_tools.old/grammar/ngram/ngrammar_aux.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/grammar/ngram/ngrammar_aux.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -117,7 +117,7 @@ - - void make_f_of_f(EST_BackoffNgrammarState *s,void *params) - { -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - -@@ -138,7 +138,7 @@ - - void get_max_f(EST_BackoffNgrammarState *s,void *params) - { -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - -@@ -158,7 +158,7 @@ - - void map_f_of_f(EST_BackoffNgrammarState *s,void *params) - { -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - -@@ -184,7 +184,7 @@ - - void zero_small_f(EST_BackoffNgrammarState *s,void *params) - { -- int k; -+ EST_Litem *k; - double freq; - EST_String name; - -@@ -204,7 +204,8 @@ - - void frequency_of_frequencies(EST_DVector &ff, EST_Ngrammar &n,int this_order) - { -- int i,k,size; -+ int i,size; -+ EST_Litem *k; - double max=0.0; - - // if ff has zero size, do complete frequency of frequencies -@@ -302,8 +303,8 @@ - - void map_frequencies(EST_Ngrammar &n, const EST_DVector &map, const int this_order) - { -- int i,k; -- -+ int i; -+ EST_Litem *k; - - switch(n.representation()) - { -diff -ur festival/speech_tools.old/grammar/ngram/ngrammar_io.cc festival/speech_tools/grammar/ngram/ngrammar_io.cc ---- festival/speech_tools.old/grammar/ngram/ngrammar_io.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/grammar/ngram/ngrammar_io.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -281,7 +281,8 @@ - load_ngram_cstr_bin(const EST_String filename, EST_Ngrammar &n) - { - EST_TokenStream ts; -- int i,j,k,order; -+ int i,j,order; -+ EST_Litem *k; - int num_entries; - double approx_num_samples = 0.0; - long freq_data_start, freq_data_end; -@@ -407,7 +408,7 @@ - save_ngram_htk_ascii_sub(const EST_String &word, ostream *ost, - EST_Ngrammar &n, double floor) - { -- int k; -+ EST_Litem *k; - EST_String name; - double freq; - EST_StrVector this_ngram(2); // assumes bigram -@@ -734,7 +735,8 @@ - // awb's format - (void)trace; - ostream *ost; -- int i,k; -+ int i; -+ EST_Litem *k; - - if (filename == "-") - ost = &cout; -@@ -831,7 +833,8 @@ - if (n.representation() == EST_Ngrammar::sparse) - return misc_write_error; - -- int i,k; -+ int i; -+ EST_Litem *k; - FILE *ofd; - double lfreq = -1; - double count = -1; -diff -ur festival/speech_tools.old/grammar/wfst/wfst_train.cc festival/speech_tools/grammar/wfst/wfst_train.cc ---- festival/speech_tools.old/grammar/wfst/wfst_train.cc 2005-07-26 18:37:36.000000000 -0400 -+++ festival/speech_tools/grammar/wfst/wfst_train.cc 2006-12-11 17:36:10.000000000 -0500 -@@ -315,7 +315,8 @@ - LISP *ssplits; - gc_protect(&splits); - EST_String sname; -- int b,best_b,i; -+ int b,best_b; -+ EST_Litem *i; - int num_pdfs; - double best_score, score, sfreq; - -@@ -390,7 +391,7 @@ - // Find score of (a+b) vs (all-(a+b)) - EST_DiscreteProbDistribution ab(a); - EST_DiscreteProbDistribution all_but_ab(all); -- int i; -+ EST_Litem *i; - EST_String sname; - double sfreq, score; - for (i=b.item_start(); !b.item_end(i); -@@ -522,7 +523,7 @@ - EST_DiscreteProbDistribution pdf_split(&wfst.in_symbols()); - EST_DiscreteProbDistribution pdf_remain(&wfst.in_symbols()); - int in, tostate, id; -- int i; -+ EST_Litem *i; - double sfreq; - EST_String sname; - -diff -ur festival/speech_tools.old/include/EST_simplestats.h festival/speech_tools/include/EST_simplestats.h ---- festival/speech_tools.old/include/EST_simplestats.h 2004-04-30 12:56:49.000000000 -0400 -+++ festival/speech_tools/include/EST_simplestats.h 2006-12-11 17:36:10.000000000 -0500 -@@ -47,6 +47,8 @@ - #include "EST_TKVL.h" - #include "EST_types.h" - -+typedef size_t int_iter; -+ - /** A class for managing mapping string names to integers and back again, - mainly used for representing alphabets in n-grams and grammars etc. - -@@ -249,7 +251,8 @@ - /// Add this observation, may specify number of occurrences - void cumulate(const EST_String &s,double count=1); - /// Add this observation, i must be with in EST\_Discrete range -- void cumulate(const int i,double count=1); -+ void cumulate(EST_Litem *i,double count=1); -+ void cumulate(int i,double count=1); - /// Return the most probable member of the distribution - const EST_String &most_probable(double *prob = NULL) const; - /** Return the entropy of the distribution -@@ -265,17 +268,18 @@ - /// - double frequency(const int i) const; - /// Used for iterating through members of the distribution -- int item_start() const; -+ EST_Litem *item_start() const; - /// Used for iterating through members of the distribution -- int item_next(int idx) const; -+ EST_Litem *item_next(EST_Litem *idx) const; - /// Used for iterating through members of the distribution -- int item_end(int idx) const; -+ int item_end(EST_Litem *idx) const; -+ - /// During iteration returns name given index -- const EST_String &item_name(int idx) const; -+ const EST_String &item_name(EST_Litem *idx) const; - /// During iteration returns name and frequency given index -- void item_freq(int idx,EST_String &s,double &freq) const; -+ void item_freq(EST_Litem *idx,EST_String &s,double &freq) const; - /// During iteration returns name and probability given index -- void item_prob(int idx,EST_String &s,double &prob) const; -+ void item_prob(EST_Litem *idx,EST_String &s,double &prob) const; - - /// Returns discrete vocabulary of distribution - inline const EST_Discrete *const get_discrete() const { return discrete; }; -@@ -288,11 +292,13 @@ - accordingly. This is used when smoothing frequencies. - */ - void set_frequency(int i,double c); -+ void set_frequency(EST_Litem *i,double c); - - /// Sets the frequency of named item, without modifying {\tt num\_samples}. - void override_frequency(const EST_String &s,double c); - /// Sets the frequency of named item, without modifying {\tt num\_samples}. - void override_frequency(int i,double c); -+ void override_frequency(EST_Litem *i,double c); - - /** Sets the number of samples. Care should be taken on setting this - as it will affect how probabilities are calculated. -diff -ur festival/speech_tools.old/include/EST_Track.h festival/speech_tools/include/EST_Track.h ---- festival/speech_tools.old/include/EST_Track.h 2004-05-29 14:34:40.000000000 -0400 -+++ festival/speech_tools/include/EST_Track.h 2007-02-13 00:12:53.000000000 -0500 -@@ -61,6 +61,7 @@ - tff_htk, - tff_htk_fbank, - tff_htk_mfcc, -+ tff_htk_mfcc_e, - tff_htk_user, - tff_htk_discrete, - tff_xmg, -diff -ur festival/speech_tools.old/include/EST_TSimpleVector.h festival/speech_tools/include/EST_TSimpleVector.h ---- festival/speech_tools.old/include/EST_TSimpleVector.h 2006-07-06 08:57:24.000000000 -0400 -+++ festival/speech_tools/include/EST_TSimpleVector.h 2006-09-27 09:19:35.000000000 -0400 -@@ -60,6 +60,9 @@ - EST_TSimpleVector(const EST_TSimpleVector &v); - /// "size" constructor - EST_TSimpleVector(int n): EST_TVector(n) {}; -+ /// memory constructor -+ EST_TSimpleVector(int n, T* memory, int offset=0, -+ int free_when_destroyed=0): EST_TVector(n,memory) {}; - - /// resize vector - void resize(int n, int set=1); -diff -ur festival/speech_tools.old/include/EST_Wagon.h festival/speech_tools/include/EST_Wagon.h ---- festival/speech_tools.old/include/EST_Wagon.h 2006-08-11 18:39:02.000000000 -0400 -+++ festival/speech_tools/include/EST_Wagon.h 2006-12-02 11:44:48.000000000 -0500 -@@ -239,8 +239,7 @@ - extern EST_FMatrix wgn_DistMatrix; - extern EST_Track wgn_VertexTrack; - extern EST_Track wgn_UnitTrack; --extern int wgn_VertexTrack_start; --extern int wgn_VertexTrack_end; -+extern EST_Track wgn_VertexFeats; - - void wgn_load_datadescription(EST_String fname,LISP ignores); - void wgn_load_dataset(WDataSet &ds,EST_String fname); -diff -ur festival/speech_tools.old/lib/siod/siod.scm festival/speech_tools/lib/siod/siod.scm ---- festival/speech_tools.old/lib/siod/siod.scm 2003-03-31 09:28:24.000000000 -0500 -+++ festival/speech_tools/lib/siod/siod.scm 2006-12-11 17:36:10.000000000 -0500 -@@ -209,7 +209,13 @@ - (defun append2 (a b) - (if (null a) - b -- (cons (car a) (append2 (cdr a) b)))) -+ (begin -+ (let ((x (reverse a)) -+ (y b)) -+ (while x -+ (set! y (cons (car x) y)) -+ (set! x (cdr x))) -+ y)))) - - (defun rplacd (a b) - "(replacd A B) -diff -ur festival/speech_tools.old/main/wagon_main.cc festival/speech_tools/main/wagon_main.cc ---- festival/speech_tools.old/main/wagon_main.cc 2006-09-10 17:33:18.000000000 -0400 -+++ festival/speech_tools/main/wagon_main.cc 2006-12-02 14:46:44.000000000 -0500 -@@ -2,7 +2,7 @@ - /* */ - /* Centre for Speech Technology Research */ - /* University of Edinburgh, UK */ --/* Copyright (c) 1996-2005 */ -+/* Copyright (c) 1996-2006 */ - /* All Rights Reserved. */ - /* */ - /* Permission is hereby granted, free of charge, to use and distribute */ -@@ -39,6 +39,8 @@ - /* */ - /* Added decision list support, Feb 1997 */ - /* */ -+/* Added vector support for Clustergen 2005/2006 */ -+/* */ - /*=======================================================================*/ - #include - #include -@@ -111,6 +113,54 @@ - return 0; - } - -+static int set_Vertex_Feats(EST_Track &wgn_VertexFeats, -+ EST_String &wagon_track_features) -+{ -+ int i,s=0,e; -+ EST_TokenStream ts; -+ -+ for (i=0; i\n"+ - " end (inclusive) channel for vertex indices\n"+ -+ "-track_feats \n"+ -+ " Track features to use, comma separated list\n"+ -+ " with feature numbers and/or ranges, 0 start\n"+ - "-unittrack \n"+ - " track for unit start and length in vertex track\n"+ - "-quiet No questions printed during building\n"+ -@@ -256,36 +311,53 @@ - else if (al.present("-track")) - { - wgn_VertexTrack.load(al.val("-track")); -- wgn_VertexTrack_start = 0; -- wgn_VertexTrack_end = wgn_VertexTrack.num_channels()-1; -+ wgn_VertexFeats.resize(1,wgn_VertexTrack.num_channels()); -+ for (i=0; i wgn_VertexTrack.num_channels())) -+ feats_start = al.ival("-track_start"); -+ if ((feats_start < 0) || -+ (feats_start > wgn_VertexTrack.num_channels())) - { - printf("wagon: track_start invalid: %d out of %d channels\n", -- wgn_VertexTrack_start, -+ feats_start, - wgn_VertexTrack.num_channels()); - exit(-1); - } -+ for (i=0; i wgn_VertexTrack.num_channels())) -+ feats_end = al.ival("-track_end"); -+ if ((feats_end < feats_start) || -+ (feats_end > wgn_VertexTrack.num_channels())) - { - printf("wagon: track_end invalid: %d between start %d out of %d channels\n", -- wgn_VertexTrack_end, -- wgn_VertexTrack_start, -+ feats_end, -+ feats_start, - wgn_VertexTrack.num_channels()); - exit(-1); - } -+ for (i=feats_end+1; i 0.0) -+ // printf("%d ",i); -+ // printf("\n"); - - if (al.present("-unittrack")) - { /* contains two features, a start and length. start indexes */ -diff -ur festival/speech_tools.old/siod/slib_str.cc festival/speech_tools/siod/slib_str.cc ---- festival/speech_tools.old/siod/slib_str.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/siod/slib_str.cc 2006-09-27 11:54:29.000000000 -0400 -@@ -268,7 +268,7 @@ - LISP l_matches(LISP atom, LISP regex) - { - // t if printname of atom matches regex, nil otherwise -- EST_String pname = get_c_string(atom); -+ const EST_String pname = get_c_string(atom); - - if (pname.matches(make_regex(get_c_string(regex))) == TRUE) - return truth; -diff -ur festival/speech_tools.old/speech_class/EST_TrackFile.cc festival/speech_tools/speech_class/EST_TrackFile.cc ---- festival/speech_tools.old/speech_class/EST_TrackFile.cc 2006-09-10 16:32:14.000000000 -0400 -+++ festival/speech_tools/speech_class/EST_TrackFile.cc 2007-02-13 00:12:53.000000000 -0500 -@@ -522,7 +522,6 @@ - // } - - if( ascii ){ -- - for (j = 0; j < num_channels; ++j){ - tr.a(i, j) = ts.get().Float(ok); - if (!ok) -@@ -1254,6 +1253,11 @@ - return save_htk_as(filename, tmp, HTK_MFCC); - } - -+EST_write_status EST_TrackFile::save_htk_mfcc_e(const EST_String filename, EST_Track tmp) -+{ -+ return save_htk_as(filename, tmp, HTK_MFCC | HTK_ENERGY); -+} -+ - EST_write_status EST_TrackFile::save_htk_user(const EST_String filename, EST_Track tmp) - { - return save_htk_as(filename, tmp, HTK_USER); -@@ -2097,14 +2101,14 @@ - - EST_String EST_TrackFile::options_supported(void) - { -- EST_String s("Available track file formats:\n"); -+ EST_String s("AvailablE track file formats:\n"); - - for(int n=0; n< EST_TrackFile::map.n() ; n++) - { - const char *nm = EST_TrackFile::map.name(EST_TrackFile::map.token(n)); - const char *d = EST_TrackFile::map.info(EST_TrackFile::map.token(n)).description; - -- s += EST_String::cat(" ", nm, EST_String(" ")*(12-strlen(nm)), d, "\n"); -+ s += EST_String::cat(" ", nm, EST_String(" ")*(13-strlen(nm)), d, "\n"); - } - return s; - } -@@ -2137,6 +2141,9 @@ - {tff_htk_mfcc, { "htk_mfcc" }, - {FALSE, EST_TrackFile::load_htk, EST_TrackFile::save_htk_mfcc, - "htk file (as MFCC)"}}, -+{tff_htk_mfcc_e, { "htk_mfcc_e" }, -+{FALSE, EST_TrackFile::load_htk, EST_TrackFile::save_htk_mfcc_e, -+ "htk file (as MFCC_E)"}}, - {tff_htk_user, { "htk_user" }, - {FALSE, EST_TrackFile::load_htk, EST_TrackFile::save_htk_user, - "htk file (as USER)"}}, -diff -ur festival/speech_tools.old/speech_class/EST_TrackFile.h festival/speech_tools/speech_class/EST_TrackFile.h ---- festival/speech_tools.old/speech_class/EST_TrackFile.h 2004-05-29 14:34:42.000000000 -0400 -+++ festival/speech_tools/speech_class/EST_TrackFile.h 2007-02-13 00:12:53.000000000 -0500 -@@ -111,6 +111,8 @@ - static EST_write_status save_htk_fbank(SaveTrackFileArgs); - static EST_read_status load_htk_fbank(LoadTrackFileArgs); - -+ static EST_write_status save_htk_mfcc_e(SaveTrackFileArgs); -+ - static EST_write_status save_htk_mfcc(SaveTrackFileArgs); - static EST_read_status load_htk_mfcc(LoadTrackFileArgs); - -diff -ur festival/speech_tools.old/speech_class/EST_wave_io.cc festival/speech_tools/speech_class/EST_wave_io.cc ---- festival/speech_tools.old/speech_class/EST_wave_io.cc 2006-01-12 10:37:51.000000000 -0500 -+++ festival/speech_tools/speech_class/EST_wave_io.cc 2007-02-13 00:12:53.000000000 -0500 -@@ -173,7 +173,7 @@ - - current_pos = ts.tell(); - if (ts.fread(header,NIST_HDR_SIZE,1) != 1) -- return misc_read_error; -+ return wrong_format; - - if (strncmp(header,NIST_SIG,sizeof(NIST_SIG)) != 0) - return wrong_format; -diff -ur festival/speech_tools.old/stats/EST_DProbDist.cc festival/speech_tools/stats/EST_DProbDist.cc ---- festival/speech_tools.old/stats/EST_DProbDist.cc 2004-09-30 08:53:36.000000000 -0400 -+++ festival/speech_tools/stats/EST_DProbDist.cc 2006-12-11 17:36:12.000000000 -0500 -@@ -46,6 +46,39 @@ - #include "EST_TKVL.h" - #include "EST_simplestats.h" - -+/* We share ints and pointers for two types of probability distributions */ -+/* The know discrete sets can be indexed by ints which is *much* faster */ -+/* the indices pass around a pointers but the lower part contain ints in */ -+/* the discrete case */ -+/* On 64bit architectures this is a issue so we need have some macros */ -+/* to help us here. */ -+ -+const int est_64to32(void *c) -+{ /* this returns the bottom end of the pointer as an unsigned int */ -+ /* I believe this is a safe way to do it, we check the bits in the */ -+ /* 64 bit int and multiply them out in the 32 bit one */ -+ /* there might be better ways, but I think you'd need to think about */ -+ /* byte order then */ -+ long long l; -+ int d; -+ int i,x; -+ -+ l = (long long)c; -+ -+ for (i=0,d=0,x=1; i<24; i++) -+ { -+ if (l & 1) -+ d += x; -+ l = l >> 1; -+ x += x; -+ } -+ -+ return d; -+} -+/* #define tprob_int(X) ((sizeof(void *) != 8) ? est_64to32(X) : (int)X) */ -+#define tprob_int(X) (est_64to32(X)) -+ -+ - EST_DiscreteProbDistribution::EST_DiscreteProbDistribution(const EST_Discrete *d, - const double n_samples, const EST_DVector &counts) - { -@@ -109,7 +142,13 @@ - icounts.a_no_check(i) = 0; - } - --void EST_DiscreteProbDistribution::cumulate(const int i,double count) -+void EST_DiscreteProbDistribution::cumulate(EST_Litem *i,double count) -+{ -+ icounts[tprob_int(i)] += count; -+ num_samples += count; -+} -+ -+void EST_DiscreteProbDistribution::cumulate(int i,double count) - { - icounts[i] += count; - num_samples += count; -@@ -257,6 +296,21 @@ - - } - -+void EST_DiscreteProbDistribution::set_frequency(EST_Litem *i,double c) -+{ -+ if (type == tprob_discrete) -+ { -+ num_samples -= icounts[tprob_int(i)]; -+ num_samples += c; -+ icounts[tprob_int(i)] = c; -+ } -+ else -+ { -+ cerr << "ProbDistribution: can't access string type pd with int\n"; -+ } -+ -+} -+ - - void EST_DiscreteProbDistribution::override_frequency(const EST_String &s,double c) - { -@@ -274,6 +328,14 @@ - cerr << "ProbDistribution: can't access string type pd with int\n"; - } - -+void EST_DiscreteProbDistribution::override_frequency(EST_Litem *i,double c) -+{ -+ if (type == tprob_discrete) -+ icounts[tprob_int(i)] = c; -+ else -+ cerr << "ProbDistribution: can't access string type pd with int\n"; -+} -+ - double EST_DiscreteProbDistribution::entropy() const - { - // Returns the entropy of the current distribution -@@ -305,70 +367,70 @@ - } - - // For iterating through members of a probability distribution --int EST_DiscreteProbDistribution::item_start(void) const -+EST_Litem *EST_DiscreteProbDistribution::item_start(void) const - { - if (type == tprob_discrete) -- return 0; -+ return NULL; - else -- return (int)scounts.list.head(); -+ return scounts.list.head(); - } - --int EST_DiscreteProbDistribution::item_end(int idx) const -+int EST_DiscreteProbDistribution::item_end(EST_Litem *idx) const - { - if (type == tprob_discrete) -- return (idx >= icounts.length()); -+ return (tprob_int(idx) >= icounts.length()); - else -- return ((EST_Litem *)idx == 0); -+ return (idx == 0); - } - --int EST_DiscreteProbDistribution::item_next(int idx) const -+EST_Litem *EST_DiscreteProbDistribution::item_next(EST_Litem *idx) const - { - if (type == tprob_discrete) -- return ++idx; -+ return (EST_Litem *)(((unsigned char *)idx)+1); - else -- return (int)next((EST_Litem *)idx); -+ return next(idx); - } - --const EST_String &EST_DiscreteProbDistribution::item_name(int idx) const -+const EST_String &EST_DiscreteProbDistribution::item_name(EST_Litem *idx) const - { - if (type == tprob_discrete) -- return discrete->name(idx); -+ return discrete->name(tprob_int(idx)); - else -- return scounts.list((EST_Litem *)idx).k; -+ return scounts.list(idx).k; - } - --void EST_DiscreteProbDistribution::item_freq(int idx,EST_String &s,double &freq) const -+void EST_DiscreteProbDistribution::item_freq(EST_Litem *idx,EST_String &s,double &freq) const - { - if (type == tprob_discrete) - { -- s = discrete->name(idx); -- freq = icounts(idx); -+ s = discrete->name(tprob_int(idx)); -+ freq = icounts(tprob_int(idx)); - } - else - { -- s = scounts.list((EST_Litem *)idx).k; -- freq = scounts.list((EST_Litem *)idx).v; -+ s = scounts.list(idx).k; -+ freq = scounts.list(idx).v; - } - } - --void EST_DiscreteProbDistribution::item_prob(int idx,EST_String &s,double &prob) const -+void EST_DiscreteProbDistribution::item_prob(EST_Litem *idx,EST_String &s,double &prob) const - { - if (type == tprob_discrete) - { -- prob = probability(idx); -- s = discrete->name(idx); -+ prob = probability(tprob_int(idx)); -+ s = discrete->name(tprob_int(idx)); - } - else - { -- s = scounts.list((EST_Litem *)idx).k; -- prob = (double)scounts.list((EST_Litem *)idx).v/num_samples; -+ s = scounts.list(idx).k; -+ prob = (double)scounts.list(idx).v/num_samples; - } - } - - ostream & operator<<(ostream &s, const EST_DiscreteProbDistribution &pd) - { - // Output best with probabilities -- int i; -+ EST_Litem *i; - double prob; - double sum=0; - EST_String name; -diff -ur festival/speech_tools.old/stats/EST_viterbi.cc festival/speech_tools/stats/EST_viterbi.cc ---- festival/speech_tools.old/stats/EST_viterbi.cc 2006-07-07 17:26:11.000000000 -0400 -+++ festival/speech_tools/stats/EST_viterbi.cc 2006-09-27 09:19:35.000000000 -0400 -@@ -165,7 +165,7 @@ - return (a < b); - } - --static void init_dynamic_states(EST_VTPoint *p, EST_VTCandidate *cands) -+static int init_dynamic_states(EST_VTPoint *p, EST_VTCandidate *cands) - { - // In a special (hmm maybe not so special), the number of "states" - // is the number of candidates -@@ -175,6 +175,8 @@ - for (i=0, c=cands; c != 0; c=c->next,i++) - c->pos = i; - init_paths_array(p,i); -+ -+ return i; - } - - void EST_Viterbi_Decoder::set_pruning_parameters(float beam, float -diff -ur festival/speech_tools.old/stats/wagon/wagon_aux.cc festival/speech_tools/stats/wagon/wagon_aux.cc ---- festival/speech_tools.old/stats/wagon/wagon_aux.cc 2006-08-20 13:02:39.000000000 -0400 -+++ festival/speech_tools/stats/wagon/wagon_aux.cc 2006-12-12 10:45:19.000000000 -0500 -@@ -422,16 +422,19 @@ - - #if 1 - /* simple distance */ -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -+ for (j=0; j 0.0) - { -- i = members.item(pp); -- b += wgn_VertexTrack.a(i,j); -+ b.reset(); -+ for (pp=members.head(); pp != 0; pp=next(pp)) -+ { -+ i = members.item(pp); -+ b += wgn_VertexTrack.a(i,j); -+ } -+ a += b.stddev(); -+ count = b.samples(); - } -- a += b.stddev(); -- count = b.samples(); - } - #endif - -@@ -440,26 +443,37 @@ - /* worse in listening experiments */ - EST_SuffStats **cs; - int mmm; -- cs = new EST_SuffStats *[wgn_VertexTrack_end+1]; -- for (j=0; j<=wgn_VertexTrack_end; j++) -- cs[j] = new EST_SuffStats[wgn_VertexTrack_end+1]; -+ cs = new EST_SuffStats *[wgn_VertexTrack.num_channels()+1]; -+ for (j=0; j<=wgn_VertexTrack.num_channels(); j++) -+ cs[j] = new EST_SuffStats[wgn_VertexTrack.num_channels()+1]; - /* Find means for diagonal */ -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -+ for (j=0; j 0.0) -+ { - for (pp=members.head(); pp != 0; pp=next(pp)) -+ cs[j][j] += wgn_VertexTrack.a(members.item(pp),j); -+ } -+ } -+ for (j=0; j 0.0) - { -- mmm = members.item(pp); -- cs[i][j] += (wgn_VertexTrack.a(mmm,i)-cs[j][j].mean())* -- (wgn_VertexTrack.a(mmm,j)-cs[j][j].mean()); -- } -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- for (i=j+1; i 0.0) -+ a += cs[i][j].stddev(); -+ } - count = cs[0][0].samples(); - #endif - -@@ -476,11 +490,12 @@ - for (qq=next(pp); qq != 0; qq=next(qq)) - { - y = members.item(qq); -- for (q=0.0,j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- { -- d = wgn_VertexTrack(x,j)-wgn_VertexTrack(y,j); -- q += d*d; -- } -+ for (q=0.0,j=0; j 0.0) -+ { -+ d = wgn_VertexTrack(x,j)-wgn_VertexTrack(y,j); -+ q += d*d; -+ } - a += sqrt(q); - } - -@@ -562,7 +577,7 @@ - - /* a list of SuffStats on for each point in the trajectory */ - trajectory = new EST_SuffStats *[l]; -- width = wgn_VertexTrack_end+1; -+ width = wgn_VertexTrack.num_channels()+1; - for (j=0; j 0.0) -+ trajectory[ti][j] += wgn_VertexTrack.a(s+ni,j); -+ } - } - } - - /* find sum of sum of stddev for all coefs of all traj points */ - stdss.reset(); - for (ti=0; ti 0.0) -+ stdss += trajectory[ti][j].stddev(); -+ } - - // This is sum of all stddev * samples - score = stdss.mean() * members.length(); -@@ -597,7 +618,7 @@ - /* a list of SuffStats on for each point in the trajectory */ - trajectory = new EST_SuffStats *[l]; - for (j=0; j 0 && ti 0.0) -+ trajectory[ti][j] += wgn_VertexTrack.a(ni,j); - } - ti = l1; /* do it explicitly in case s1l < 1 */ -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- trajectory[ti][j] += -1; -+ for (j=0; j 0.0) -+ trajectory[ti][j] += -1; - /* Second half */ - s += s1l+1; - for (ti++,n=0.0; s2l > 0 && ti 0.0) -+ trajectory[ti][j] += wgn_VertexTrack.a(ni,j); -+ } -+ for (j=0; j 0.0) -+ trajectory[ti][j] += -2; - } - - /* find sum of sum of stddev for all coefs of all traj points */ -@@ -640,12 +665,14 @@ - stdss.reset(); - m = 1.0/(float)l1; - for (w=0.0,ti=0; ti 0.0) - stdss += trajectory[ti][j].stddev() * w; - m = 1.0/(float)l2; - for (w=1.0,ti++; ti 0.0) -+ stdss += trajectory[ti][j].stddev() * w; - - // This is sum of all stddev * samples - score = stdss.mean() * members.length(); -@@ -824,25 +851,27 @@ - int bestp = 0; - EST_SuffStats *cs; - -- cs = new EST_SuffStats [wgn_VertexTrack_end+1]; -+ cs = new EST_SuffStats [wgn_VertexTrack.num_channels()+1]; - -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- { -- cs[j].reset(); -- for (p=imp.members.head(); p != 0; p=next(p)) -+ for (j=0; j 0.0) - { -- cs[j] += wgn_VertexTrack.a(imp.members.item(p),j); -+ cs[j].reset(); -+ for (p=imp.members.head(); p != 0; p=next(p)) -+ { -+ cs[j] += wgn_VertexTrack.a(imp.members.item(p),j); -+ } - } -- } - - for (p=imp.members.head(); p != 0; p=next(p)) - { -- for (x=0,j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- { -- d = (wgn_VertexTrack.a(imp.members.item(p),j)-cs[j].mean()) -- /* / b.stddev() */ ; -- x += d*d; -- } -+ for (x=0.0,j=0; j 0.0) -+ { -+ d = (wgn_VertexTrack.a(imp.members.item(p),j)-cs[j].mean()) -+ /* / cs[j].stddev() */ ; -+ x += d*d; -+ } - if (x < best) - { - bestp = imp.members.item(p); -@@ -853,7 +882,12 @@ - { - s << "( "; - s << wgn_VertexTrack.a(bestp,j); -- s << " 0 "; // fake stddev -+ // s << " 0 "; // fake stddev -+ s << " "; -+ if (finite(cs[j].stddev())) -+ s << cs[j].stddev(); -+ else -+ s << "0"; - s << " ) "; - if (j+1get_int_val(wgn_predictee); -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- { -- b.reset(); -- for (pp=leaf->get_impurity().members.head(); pp != 0; pp=next(pp)) -+ for (j=0; j 0.0) - { -- i = leaf->get_impurity().members.item(pp); -- b += wgn_VertexTrack.a(i,j); -+ b.reset(); -+ for (pp=leaf->get_impurity().members.head(); pp != 0; pp=next(pp)) -+ { -+ i = leaf->get_impurity().members.item(pp); -+ b += wgn_VertexTrack.a(i,j); -+ } -+ predict = b.mean(); -+ actual = wgn_VertexTrack.a(pos,j); -+ if (wgn_count_field == -1) -+ count = 1.0; -+ else -+ count = dataset(p)->get_flt_val(wgn_count_field); -+ x.cumulate(predict,count); -+ y.cumulate(actual,count); -+ /* Normalized the error by the standard deviation */ -+ if (b.stddev() == 0) -+ error = predict-actual; -+ else -+ error = (predict-actual)/b.stddev(); -+ error = predict-actual; /* awb_debug */ -+ se.cumulate((error*error),count); -+ e.cumulate(fabs(error),count); -+ xx.cumulate(predict*predict,count); -+ yy.cumulate(actual*actual,count); -+ xy.cumulate(predict*actual,count); - } -- predict = b.mean(); -- actual = wgn_VertexTrack.a(pos,j); -- if (wgn_count_field == -1) -- count = 1.0; -- else -- count = dataset(p)->get_flt_val(wgn_count_field); -- x.cumulate(predict,count); -- y.cumulate(actual,count); -- /* Normalized the error by the standard deviation */ -- if (b.stddev() == 0) -- error = predict-actual; -- else -- error = (predict-actual)/b.stddev(); -- error = predict-actual; /* awb_debug */ -- se.cumulate((error*error),count); -- e.cumulate(fabs(error),count); -- xx.cumulate(predict*predict,count); -- yy.cumulate(actual*actual,count); -- xy.cumulate(predict*actual,count); -- } - } - - // Pearson's product moment correlation coefficient -@@ -437,34 +437,35 @@ - { - leaf = tree.predict_node((*dataset(p))); - pos = dataset(p)->get_int_val(wgn_predictee); -- for (j=wgn_VertexTrack_start; j<=wgn_VertexTrack_end; j++) -- { -- b.reset(); -- for (pp=leaf->get_impurity().members.head(); pp != 0; pp=next(pp)) -+ for (j=0; j 0.0) - { -- i = leaf->get_impurity().members.item(pp); -- b += wgn_VertexTrack.a(i,j); -+ b.reset(); -+ for (pp=leaf->get_impurity().members.head(); pp != 0; pp=next(pp)) -+ { -+ i = leaf->get_impurity().members.item(pp); -+ b += wgn_VertexTrack.a(i,j); -+ } -+ predict = b.mean(); -+ actual = wgn_VertexTrack.a(pos,j); -+ if (wgn_count_field == -1) -+ count = 1.0; -+ else -+ count = dataset(p)->get_flt_val(wgn_count_field); -+ x.cumulate(predict,count); -+ y.cumulate(actual,count); -+ /* Normalized the error by the standard deviation */ -+ if (b.stddev() == 0) -+ error = predict-actual; -+ else -+ error = (predict-actual)/b.stddev(); -+ error = predict-actual; /* awb_debug */ -+ se.cumulate((error*error),count); -+ e.cumulate(fabs(error),count); -+ xx.cumulate(predict*predict,count); -+ yy.cumulate(actual*actual,count); -+ xy.cumulate(predict*actual,count); - } -- predict = b.mean(); -- actual = wgn_VertexTrack.a(pos,j); -- if (wgn_count_field == -1) -- count = 1.0; -- else -- count = dataset(p)->get_flt_val(wgn_count_field); -- x.cumulate(predict,count); -- y.cumulate(actual,count); -- /* Normalized the error by the standard deviation */ -- if (b.stddev() == 0) -- error = predict-actual; -- else -- error = (predict-actual)/b.stddev(); -- error = predict-actual; /* awb_debug */ -- se.cumulate((error*error),count); -- e.cumulate(fabs(error),count); -- xx.cumulate(predict*predict,count); -- yy.cumulate(actual*actual,count); -- xy.cumulate(predict*actual,count); -- } - } - - // Pearson's product moment correlation coefficient -diff -ur festival/speech_tools.old/.time-stamp festival/speech_tools/.time-stamp ---- festival/speech_tools.old/.time-stamp 2006-09-27 10:59:11.000000000 -0400 -+++ festival/speech_tools/.time-stamp 2007-03-14 11:18:07.000000000 -0400 -@@ -1,2 +1,2 @@ - speech_tools 1.2.96 --Wed Sep 27 10:59:11 EDT 2006 -+Wed Mar 14 11:18:07 EDT 2007 diff --git a/festival-1.96-speechtools-linklibswithotherlibs.patch b/festival-1.96-speechtools-linklibswithotherlibs.patch deleted file mode 100644 index 69a30f3..0000000 --- a/festival-1.96-speechtools-linklibswithotherlibs.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- festival/speech_tools/config/project.mak.orig 2007-03-13 15:27:53.000000000 -0400 -+++ festival/speech_tools/config/project.mak 2007-03-13 15:29:12.000000000 -0400 -@@ -99,8 +99,9 @@ - PROJECT_LIBRARY_DIR_eststring = $(TOP)/lib - PROJECT_LIBRARY_DIR_estjava = $(TOP)/lib - --PROJECT_LIBRARY_USES_estbase = eststring -- -+PROJECT_LIBRARY_USES_estbase = eststring m -+PROJECT_LIBRARY_USES_estools = estbase m ncurses -+PROJECT_LIBRARY_USES_eststring = m - PROJECT_LIBRARY_USES_estjava = estbase eststring - - PROJECT_LIBRARY_VERSION_estools = $(PROJECT_VERSION).1 diff --git a/festival-1.96-speechtools-ohjeezcxxisnotgcc.patch b/festival-1.96-speechtools-ohjeezcxxisnotgcc.patch deleted file mode 100644 index e3d1627..0000000 --- a/festival-1.96-speechtools-ohjeezcxxisnotgcc.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- festival/speech_tools/config/compilers/gcc_defaults.mak.orig 2007-03-13 16:28:39.000000000 -0400 -+++ festival/speech_tools/config/compilers/gcc_defaults.mak 2007-03-13 16:28:59.000000000 -0400 -@@ -39,10 +39,7 @@ - ########################################################################### - - CC=gcc --CXX=gcc --ifeq ($(OSTYPE),Darwin) - CXX=g++ --endif - - COMPILER_DESC=FSF gcc - COMPILER_VERSION_COMMAND=$(CXX) -v 2>&1 | tail -1 | sed -e 's/^....//' diff --git a/festival-1.96-speechtools-rateconvtrivialbug.patch b/festival-1.96-speechtools-rateconvtrivialbug.patch deleted file mode 100644 index 91d08e0..0000000 --- a/festival-1.96-speechtools-rateconvtrivialbug.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- festival/speech_tools/base_class/rateconv.cc.orig 2007-03-13 15:13:21.000000000 -0400 -+++ festival/speech_tools/base_class/rateconv.cc 2007-03-13 15:15:15.000000000 -0400 -@@ -384,7 +384,8 @@ - } - fir_stereo(inp + inoffset + inbaseidx, - coep + cycctr * firlen, firlen, -- outp + outidx++, outp + outidx++); -+ outp + outidx, outp + outidx + 1); -+ outidx += 2; - cycctr++; - if (!(cycctr %= up)) - inbaseidx += 2*down; diff --git a/festival-1.96-speechtools-shared-build.patch b/festival-1.96-speechtools-shared-build.patch deleted file mode 100644 index b1ea85e..0000000 --- a/festival-1.96-speechtools-shared-build.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- festival-1.96/speech_tools/config/config.in.nonshared 2007-03-09 15:43:02.000000000 -0500 -+++ festival-1.96/speech_tools/config/config.in 2007-03-09 15:43:26.000000000 -0500 -@@ -61,7 +61,7 @@ - # VERBOSE=1 - #DEBUG=1 - # PROFILE=gprof --#SHARED=2 -+SHARED=2 - - ## Directory specific selections which override the above - diff --git a/festival-2.5.0-filesystem-standard.patch b/festival-2.5.0-filesystem-standard.patch new file mode 100644 index 0000000..e2b175d --- /dev/null +++ b/festival-2.5.0-filesystem-standard.patch @@ -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 \n"+ ++ " Set data directory pathname\n"+ + "--libdir \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") diff --git a/festival-2.5.0-pulseaudio.patch b/festival-2.5.0-pulseaudio.patch new file mode 100644 index 0000000..f3d080a --- /dev/null +++ b/festival-2.5.0-pulseaudio.patch @@ -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 diff --git a/festival-2.5.0-siteinit.patch b/festival-2.5.0-siteinit.patch new file mode 100644 index 0000000..80ad459 --- /dev/null +++ b/festival-2.5.0-siteinit.patch @@ -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 diff --git a/festival-2.5.0-use-system-libs.patch b/festival-2.5.0-use-system-libs.patch new file mode 100644 index 0000000..0bd929d --- /dev/null +++ b/festival-2.5.0-use-system-libs.patch @@ -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 + diff --git a/festival-2.5.0-use-system-speech-tools.patch b/festival-2.5.0-use-system-speech-tools.patch new file mode 100644 index 0000000..0d0e19c --- /dev/null +++ b/festival-2.5.0-use-system-speech-tools.patch @@ -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),x86_64) ++EST=/usr/lib64/speech_tools ++else ++EST=/usr/lib/speech_tools ++endif + + ########################################################################### + ## Where the festival tree will be installed. diff --git a/festival-gcc7.patch b/festival-gcc7.patch deleted file mode 100644 index 0c16e46..0000000 --- a/festival-gcc7.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up festival/speech_tools/siod/siod.cc.me festival/speech_tools/siod/siod.cc ---- festival/speech_tools/siod/siod.cc.me 2018-01-31 11:15:01.148463177 +0100 -+++ festival/speech_tools/siod/siod.cc 2018-01-31 11:25:15.737355203 +0100 -@@ -459,7 +459,7 @@ char **siod_variable_generator(char *tex - matches = walloc(char *,siod_llength(lmatches)+1); - for (l=lmatches,i=0; l; l=cdr(l),i++) - matches[i] = wstrdup(PNAME(car(l))); -- matches[i] = '\0'; -+ matches[i] = NULL; - - return matches; - } -@@ -498,7 +498,7 @@ char **siod_command_generator (char *tex - matches = walloc(char *,siod_llength(lmatches)+1); - for (l=lmatches,i=0; l; l=cdr(l),i++) - matches[i] = wstrdup(PNAME(car(l))); -- matches[i] = '\0'; -+ matches[i] = NULL; - - return matches; - } diff --git a/festival-speech-tools-pulse.patch b/festival-speech-tools-pulse.patch deleted file mode 100644 index 49894b3..0000000 --- a/festival-speech-tools-pulse.patch +++ /dev/null @@ -1,319 +0,0 @@ -diff -up festival/lib/init.scm.pulse festival/lib/init.scm ---- festival/lib/init.scm.pulse 2009-09-29 02:05:53.156687751 -0400 -+++ festival/lib/init.scm 2009-09-29 02:14:18.911692694 -0400 -@@ -77,6 +77,9 @@ - ;;; Some default parameters - (Parameter.def 'Wavefiletype 'riff) - -+;;; default to pulseaudio -+(Parameter.def 'Audio_Method 'pulseaudio) -+ - ;;; Set default audio method - (cond - ((member 'nas *modules*) -diff -up festival/speech_tools/audio/audioP.h.pulse festival/speech_tools/audio/audioP.h ---- festival/speech_tools/audio/audioP.h.pulse 2004-07-15 19:03:04.000000000 -0400 -+++ festival/speech_tools/audio/audioP.h 2009-09-29 02:05:53.353695375 -0400 -@@ -40,6 +40,7 @@ - #define __AUDIOP_H__ - - int play_nas_wave(EST_Wave &inwave, EST_Option &al); -+int play_pulse_wave(EST_Wave &inwave, EST_Option &al); - int play_esd_wave(EST_Wave &inwave, EST_Option &al); - int play_sun16_wave(EST_Wave &inwave, EST_Option &al); - int play_voxware_wave(EST_Wave &inwave, EST_Option &al); -@@ -49,6 +50,7 @@ int play_irix_wave(EST_Wave &inwave, EST - int play_macosx_wave(EST_Wave &inwave, EST_Option &al); - - int record_nas_wave(EST_Wave &inwave, EST_Option &al); -+int record_pulse_wave(EST_Wave &inwave, EST_Option &al); - int record_esd_wave(EST_Wave &inwave, EST_Option &al); - int record_sun16_wave(EST_Wave &inwave, EST_Option &al); - int record_voxware_wave(EST_Wave &inwave, EST_Option &al); -diff -up festival/speech_tools/audio/gen_audio.cc.pulse festival/speech_tools/audio/gen_audio.cc ---- festival/speech_tools/audio/gen_audio.cc.pulse 2004-09-30 08:53:35.000000000 -0400 -+++ festival/speech_tools/audio/gen_audio.cc 2009-09-29 02:05:53.354687890 -0400 -@@ -89,6 +89,8 @@ int play_wave(EST_Wave &inwave, EST_Opti - { - if (nas_supported) - protocol = "netaudio"; // the default protocol -+ else if (pulse_supported) -+ protocol = "pulseaudio"; - else if (esd_supported) - protocol = "esdaudio"; - else if (sun16_supported) -@@ -111,6 +113,8 @@ int play_wave(EST_Wave &inwave, EST_Opti - - if (upcase(protocol) == "NETAUDIO") - return play_nas_wave(*toplay,al); -+ else if (upcase(protocol) == "PULSEAUDIO") -+ return play_pulse_wave(*toplay,al); - else if (upcase(protocol) == "ESDAUDIO") - return play_esd_wave(*toplay,al); - else if (upcase(protocol) == "SUNAUDIO") -@@ -246,6 +250,8 @@ EST_String options_supported_audio(void) - audios += " netaudio"; - else if (esd_supported) - audios += " esdaudio"; -+ if (pulse_supported) -+ audios += " pulseaudio"; - if (sun16_supported) - audios += " sun16audio"; - if (freebsd16_supported) -@@ -286,8 +292,10 @@ int record_wave(EST_Wave &wave, EST_Opti - { - if (nas_supported) - protocol = "netaudio"; // the default protocol -+ else if (pulse_supported) -+ protocol = "pulseaudio"; - else if (esd_supported) -- protocol = "esdaudio"; // the default protocol -+ protocol = "esdaudio"; - else if (sun16_supported) - protocol = "sun16audio"; - else if (freebsd16_supported) -@@ -306,6 +314,8 @@ int record_wave(EST_Wave &wave, EST_Opti - - if (upcase(protocol) == "NETAUDIO") - return record_nas_wave(wave,al); -+ else if (upcase(protocol) == "PULSEAUDIO") -+ return record_pulse_wave(wave,al); - else if (upcase(protocol) == "ESDAUDIO") - return record_esd_wave(wave,al); - else if (upcase(protocol) == "SUN16AUDIO") -diff -up festival/speech_tools/audio/Makefile.pulse festival/speech_tools/audio/Makefile ---- festival/speech_tools/audio/Makefile.pulse 2004-07-15 19:03:04.000000000 -0400 -+++ festival/speech_tools/audio/Makefile 2009-09-29 02:05:53.355692417 -0400 -@@ -44,7 +44,7 @@ LOCAL_DEFAULT_LIBRARY = estbase - H = audioP.h - CPPSRCS = gen_audio.cc nas.cc esd.cc sun16audio.cc voxware.cc \ - mplayer.cc win32audio.cc irixaudio.cc os2audio.cc \ -- macosxaudio.cc -+ macosxaudio.cc pulseaudio.cc - - SRCS = $(CPPSRCS) - OBJS = $(CPPSRCS:.cc=.o) -diff -up /dev/null festival/speech_tools/audio/pulseaudio.cc ---- /dev/null 2009-09-29 00:23:01.118964058 -0400 -+++ festival/speech_tools/audio/pulseaudio.cc 2009-09-29 02:05:53.357688202 -0400 -@@ -0,0 +1,134 @@ -+/*************************************************************************/ -+/* */ -+/* Centre for Speech Technology Research */ -+/* University of Edinburgh, UK */ -+/* Copyright (c) 1997,1998 */ -+/* Red Hat, Inc. */ -+/* Copyright (c) 2008 */ -+/* 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 : Michal Schmidt */ -+/* Date : November 2008 */ -+/*-----------------------------------------------------------------------*/ -+/* Optional support for PulseAudio */ -+/*=======================================================================*/ -+ -+#include "EST_Wave.h" -+#include "EST_Option.h" -+#include "audioP.h" -+ -+#ifdef SUPPORT_PULSE -+ -+#include -+#include -+ -+int pulse_supported = TRUE; -+const static char *err_prefix = "Pulseaudio: "; -+ -+static int transfer_pulse_wave(EST_Wave &inwave, EST_Option &al, int record) -+{ -+ short *waveform; -+ int num_samples; -+ int err, pa_ret; -+ int ret = -1; -+ pa_simple *s = NULL; -+ pa_sample_spec ss; -+ -+ ss.format = PA_SAMPLE_S16NE; -+ ss.channels = 1; -+ ss.rate = inwave.sample_rate(); -+ -+ waveform = inwave.values().memory(); -+ num_samples = inwave.num_samples(); -+ -+ s = pa_simple_new(NULL, // Use the default server. -+ "Festival", // Our application's name. -+ record ? PA_STREAM_RECORD : PA_STREAM_PLAYBACK, -+ NULL, // Use the default device. -+ record ? "Record" : "Speech", // Description of our stream. -+ &ss, // Our sample format. -+ NULL, // Use default channel map -+ NULL, // Use default buffering attributes. -+ &err); -+ -+ if (!s) { -+ cerr << err_prefix << pa_strerror(err) << endl; -+ goto finish; -+ } -+ -+ pa_ret = record ? -+ pa_simple_read (s, waveform, num_samples*sizeof(short), &err) : -+ pa_simple_write(s, waveform, num_samples*sizeof(short), &err); -+ -+ if (pa_ret < 0) { -+ cerr << err_prefix << pa_strerror(err) << endl; -+ goto finish; -+ } -+ -+ if (!record && pa_simple_drain(s, &err) < 0) { -+ cerr << err_prefix << pa_strerror(err) << endl; -+ goto finish; -+ } -+ -+ ret = 1; -+finish: -+ if (s) -+ pa_simple_free(s); -+ return ret; -+} -+ -+int play_pulse_wave(EST_Wave &inwave, EST_Option &al) -+{ -+ return transfer_pulse_wave(inwave, al, 0); -+} -+ -+int record_pulse_wave(EST_Wave &inwave, EST_Option &al) -+{ -+ return transfer_pulse_wave(inwave, al, 1); -+} -+ -+#else -+int pulse_supported = FALSE; -+ -+int play_pulse_wave(EST_Wave &inwave, EST_Option &al) -+{ -+ (void)inwave; -+ (void)al; -+ cerr << "Audio: pulse not compiled in this version" << endl; -+ return -1; -+} -+ -+int record_pulse_wave(EST_Wave &inwave, EST_Option &al) -+{ -+ (void)inwave; -+ (void)al; -+ cerr << "Audio: pulse not compiled in this version" << endl; -+ return -1; -+} -+ -+#endif -diff -up festival/speech_tools/config/config.in.pulse festival/speech_tools/config/config.in ---- festival/speech_tools/config/config.in.pulse 2009-09-29 02:05:53.045693311 -0400 -+++ festival/speech_tools/config/config.in 2009-09-29 02:05:53.358687421 -0400 -@@ -79,6 +79,9 @@ OPTIMISE_sigpr = 3 - ## NCD's network audio system, This is recommended. - # INCLUDE_MODULES += NAS_AUDIO - -+## PulseAudio sound server -+INCLUDE_MODULES += PULSE_AUDIO -+ - ## Elightenment Sound Demon, for KDE etc. - # INCLUDE_MODULES += ESD_AUDIO - -diff -up festival/speech_tools/config/modules/Makefile.pulse festival/speech_tools/config/modules/Makefile ---- festival/speech_tools/config/modules/Makefile.pulse 2004-07-15 19:03:05.000000000 -0400 -+++ festival/speech_tools/config/modules/Makefile 2009-09-29 02:05:53.359687618 -0400 -@@ -41,7 +41,8 @@ RULESETS = efence.mak dmalloc.mak debugg - psola_tm.mak editline.mak tcl.mak \ - freebsd16_audio.mak irix_audio.mak linux16_audio.mak \ - sun16_audio.mak win32_audio.mak macosx_audio.mak \ -- mplayer_audio.mak nas_audio.mak esd_audio.mak -+ mplayer_audio.mak nas_audio.mak esd_audio.mak \ -+ pulse_audio.mak - - FILES = Makefile descriptions $(RULESETS) - -diff -up /dev/null festival/speech_tools/config/modules/pulse_audio.mak ---- /dev/null 2009-09-29 00:23:01.118964058 -0400 -+++ festival/speech_tools/config/modules/pulse_audio.mak 2009-09-29 02:05:53.361688082 -0400 -@@ -0,0 +1,9 @@ -+## Definitions for PulseAudio -+ -+INCLUDE_PULSE_AUDIO=1 -+ -+MOD_DESC_PULSE_AUDIO=PulseAudio support -+ -+AUDIO_DEFINES += -DSUPPORT_PULSE -+AUDIO_INCLUDES += -I$(PULSE_INCLUDE) -+MODULE_LIBS += -lpulse-simple -diff -up festival/speech_tools/config/project.mak.pulse festival/speech_tools/config/project.mak ---- festival/speech_tools/config/project.mak.pulse 2009-09-29 02:05:53.104720729 -0400 -+++ festival/speech_tools/config/project.mak 2009-09-29 02:05:53.362687372 -0400 -@@ -60,7 +60,7 @@ MODULE_DIRECTORY = $(TOP) - # List of all known modules - - DISTRIBUTED_MODULES = \ -- NAS_AUDIO ESD_AUDIO NATIVE_AUDIO MPLAYER_AUDIO \ -+ NAS_AUDIO PULSE_AUDIO ESD_AUDIO NATIVE_AUDIO MPLAYER_AUDIO \ - EDITLINE \ - SIOD WAGON SCFG WFST OLS \ - JAVA JAVA_CPP JAVA_MEDIA \ -@@ -109,6 +109,7 @@ PROJECT_LIBRARY_VERSION_estbase = $(PROJ - PROJECT_LIBRARY_VERSION_eststring = 1.2 - PROJECT_LIBRARY_VERSION_estjava = $(PROJECT_VERSION).1 - -+PROJECT_LIBRARY_NEEDS_SYSLIBS_estbase=1 - PROJECT_LIBRARY_NEEDS_SYSLIBS_estjava=1 - - PROJECT_DEFAULT_LIBRARY = estools -diff -up festival/speech_tools/config/systems/default.mak.pulse festival/speech_tools/config/systems/default.mak ---- festival/speech_tools/config/systems/default.mak.pulse 2005-07-17 09:06:49.000000000 -0400 -+++ festival/speech_tools/config/systems/default.mak 2009-09-29 02:05:53.364688115 -0400 -@@ -61,6 +61,12 @@ NAS_INCLUDE = /usr/X11R6/include - NAS_LIB = /usr/X11R6/lib - - ########################################################################### -+## Where to find PulseAudio -+ -+PULSE_INCLUDE = /usr/include -+PULSE_LIB = /usr/lib -+ -+########################################################################### - ## Where to find Enlightenment Speech Demon - - ESD_INCLUDE = /usr/local/include -diff -up festival/speech_tools/include/EST_audio.h.pulse festival/speech_tools/include/EST_audio.h ---- festival/speech_tools/include/EST_audio.h.pulse 2004-07-15 19:03:05.000000000 -0400 -+++ festival/speech_tools/include/EST_audio.h 2009-09-29 02:05:53.365689290 -0400 -@@ -43,6 +43,7 @@ - #include "EST_Option.h" - - extern int nas_supported; -+extern int pulse_supported; - extern int esd_supported; - extern int sun16_supported; - extern int freebsd16_supported; diff --git a/festival-use-pacat.patch b/festival-use-pacat.patch deleted file mode 100644 index 5c357df..0000000 --- a/festival-use-pacat.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up festival/lib/init.scm.use-pacat festival/lib/init.scm ---- festival/lib/init.scm.use-pacat 2008-10-27 21:35:08.000000000 -0400 -+++ festival/lib/init.scm 2008-10-27 21:41:08.000000000 -0400 -@@ -140,6 +140,10 @@ - (require 'token) - (require 'tts) - -+;;; Default to using pulseaudio (bug 467531) -+(Parameter.def 'Audio_Command "pacat --channels=1 --rate=$SR $FILE -n Festival --stream-name=Speech") -+(Parameter.set 'Audio_Method 'Audio_Command) -+ - ;;; - ;;; Local site initialization, if the file exists load it - ;;; diff --git a/festival.gcc47.patch b/festival.gcc47.patch deleted file mode 100644 index 2fee844..0000000 --- a/festival.gcc47.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- speech_tools/include/EST_TIterator.h.orig 2012-02-25 12:09:30.926212818 -0600 -+++ speech_tools/include/EST_TIterator.h 2012-02-25 12:10:32.981099676 -0600 -@@ -101,7 +101,7 @@ - - /// Create an iterator ready to run over the given container. - EST_TIterator(const Container &over) -- { begin(over); } -+ { this->begin(over); } - - /// Copy an iterator by assignment - Iter &operator = (const Iter &orig) -@@ -109,7 +109,7 @@ - - /// Assigning a container to an iterator sets it ready to start. - Iter &operator = (const Container &over) -- { begin(over); return *this;} -+ { this->begin(over); return *this;} - - /// Set the iterator ready to run over this container. - void begin(const Container &over) -@@ -209,7 +209,7 @@ - - /// Create an iterator ready to run over the given container. - EST_TStructIterator(const Container &over) -- { begin(over); } -+ { this->begin(over); } - - const Entry *operator ->() const - {return &this->current();} -@@ -239,7 +239,7 @@ - - /// Create an iterator ready to run over the given container. - EST_TRwIterator(Container &over) -- { begin(over); } -+ { this->begin(over); } - - /// Set the iterator ready to run over this container. - void begin(Container &over) -@@ -289,7 +289,7 @@ - - /// Create an iterator ready to run over the given container. - EST_TRwStructIterator(Container &over) -- { begin(over); } -+ { this->begin(over); } - - Entry *operator ->() const - {return &this->current();} ---- speech_tools/include/EST_TNamedEnum.h.orig 2012-02-25 12:26:51.432455812 -0600 -+++ speech_tools/include/EST_TNamedEnum.h 2012-02-25 12:27:07.125450312 -0600 -@@ -130,7 +130,7 @@ - {this->initialise((const void *)defs); }; - EST_TNamedEnumI(EST_TValuedEnumDefinition defs[], ENUM (*conv)(const char *)) - {this->initialise((const void *)defs, conv); }; -- const char *name(ENUM tok, int n=0) const {return value(tok,n); }; -+ const char *name(ENUM tok, int n=0) const {return this->value(tok,n); }; - - }; - ---- speech_tools/base_class/EST_TSimpleMatrix.cc.orig 2012-02-25 12:34:37.095639209 -0600 -+++ speech_tools/base_class/EST_TSimpleMatrix.cc 2012-02-25 12:35:33.952865468 -0600 -@@ -97,7 +97,7 @@ - { - int copy_r = Lof(this->num_rows(), new_rows); - -- just_resize(new_rows, new_cols, &old_vals); -+ this->just_resize(new_rows, new_cols, &old_vals); - - memcpy((void *)this->p_memory, - (const void *)old_vals, -@@ -126,9 +126,9 @@ - int copy_r = Lof(this->num_rows(), new_rows); - int copy_c = Lof(this->num_columns(), new_cols); - -- just_resize(new_rows, new_cols, &old_vals); -+ this->just_resize(new_rows, new_cols, &old_vals); - -- set_values(old_vals, -+ this->set_values(old_vals, - old_row_step, old_column_step, - 0, copy_r, - 0, copy_c); ---- speech_tools/base_class/EST_TSimpleVector.cc.orig 2012-02-25 12:38:16.647543126 -0600 -+++ speech_tools/base_class/EST_TSimpleVector.cc 2012-02-25 12:38:41.571710862 -0600 -@@ -70,7 +70,7 @@ - T *old_vals =NULL; - int old_offset = this->p_offset; - -- just_resize(newn, &old_vals); -+ this->just_resize(newn, &old_vals); - - if (set && old_vals) - { diff --git a/festival.service b/festival.service new file mode 100644 index 0000000..ba5583f --- /dev/null +++ b/festival.service @@ -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 diff --git a/festival.spec b/festival.spec index 836c332..b9d7d0e 100644 --- a/festival.spec +++ b/festival.spec @@ -1,29 +1,17 @@ -%define festivalversion 1.96 -# we ship the 1.4.2 docs for now. -%define docversion 1.4.2 -%define speechtoolsversion 1.2.96 - Name: festival Summary: Speech synthesis and text-to-speech system -Version: %{festivalversion} -Release: 41%{?dist} +Version: 2.5.0 +Release: 8%{?dist} URL: http://www.cstr.ed.ac.uk/projects/festival/ -# the emacs file is GPL+, there is one TCL licensed source file -License: MIT and GPL+ and TCL +# The Emacs file is GPL+, there is one TCL-licensed source file, and +# the hts_engine module is covered by the three-clause BSD license. +License: MIT and GPL+ and TCL and BSD # Files needed for everything... -%define baseURL http://festvox.org/packed/festival/%{festivalversion} -Source0: %{baseURL}/festival-%{festivalversion}-beta.tar.gz -Source1: %{baseURL}/speech_tools-%{speechtoolsversion}-beta.tar.gz - -# Docs haven't been updated yet; here's the old ones -Source2: http://festvox.org/packed/festival/%{docversion}/festdoc-%{docversion}.tar.gz - -# Our local site config files. -Source50: festival-1.96-0.7-fedora-siteinit.scm -Source51: festival-1.96-0.7-fedora-sitevars.scm +%global baseURL http://festvox.org/packed/festival/2.5 +Source0: %{baseURL}/festival-%{version}-release.tar.gz ### DICTIONARIES # Generic English dictionary @@ -38,122 +26,43 @@ Source101: %{baseURL}/festlex_CMU.tar.gz # source (diphone, cmu_arctic, etc.) match, which is handy. ### DIPHONE VOICES -%define diphoneversion 0.19990610 -Source200: %{baseURL}/festvox_kallpc16k.tar.gz -Source202: %{baseURL}/festvox_kedlpc16k.tar.gz - -### HTS VOICES (use Nagoya Institute of Technology's HTS based synthesizer) -# The Festvox site packages older versions of these as cmu_us_*_hts. -# These are from . -# And, ugh, the files seem to be only served via a script, not directly. -%define nitechbaseURL http://hts.sp.nitech.ac.jp/?plugin=attach&refer=Download&openfile= -%define nitechhtsversion 0.20061229 -Source220: %{nitechbaseURL}/festvox_nitech_us_awb_arctic_hts.tar.bz2 -Source221: %{nitechbaseURL}/festvox_nitech_us_bdl_arctic_hts.tar.bz2 -Source222: %{nitechbaseURL}/festvox_nitech_us_clb_arctic_hts.tar.bz2 -Source223: %{nitechbaseURL}/festvox_nitech_us_jmk_arctic_hts.tar.bz2 -Source224: %{nitechbaseURL}/festvox_nitech_us_rms_arctic_hts.tar.bz2 -Source225: %{nitechbaseURL}/festvox_nitech_us_slt_arctic_hts.tar.bz2 - -### Hispavoces Spanish voices http://forja.guadalinex.org/repositorio/projects/hispavoces/ -%define hispavocesversion 1.0.0 -Source300: http://v4.guadalinex.org/guadalinex-toro/pool-test/main/f/festival-spanish-voices/festival-spanish-voices_1.0.0.orig.tar.gz -Source301: COPYING.hispavoces - -### Multisyn voices left out because they're ~ 100MB each. - -### MBROLA voices left out, because they require MBROLA, which ain't free. - - -# Set defaults to American English instead of British English - the OALD -# dictionary (free for non-commercial use only) is needed for BE support -# Additionally, prefer the smaller (and I think nicer sounding) nitech hts -# voices. -Patch1: festival-1.96-nitech-american.patch - -# Whack some buildroot references -Patch2: festival_buildroot.patch - -# Use shared libraries -Patch3: festival-1.96-speechtools-shared-build.patch - -# Fix a coding error (see bug #162137). Need to upstream. -Patch5: festival-1.96-speechtools-rateconvtrivialbug.patch - -# Link libs with libm, libtermcap (see bug #198190). -# Need to upstream this. -Patch6: festival-1.96-speechtools-linklibswithotherlibs.patch - -# For some reason, CXX is set to gcc on everything but Mac OS Darwin, -# where it's set to g++. Yeah, well. We need it to be right too. -Patch7: festival-1.96-speechtools-ohjeezcxxisnotgcc.patch - -# Look for siteinit and sitevars in /etc/festival -Patch8: festival-1.96-etcsiteinit.patch - -# Alias old cmu names to new nitech ones -Patch9: festival-1.96-alias_cmu_to_nitech.patch - -# Look for speech tools here, not back there. -Patch10: festival-1.96-findspeechtools.patch - -# Build main library as shared, not just speech-tools -Patch11: festival-1.96-main-shared-build.patch - -# This is a hack to make the shared libraries build with actual -# sonames. Should pretty much do the right thing, although note -# of course that the sonames aren't official upstream. -Patch12: festival-1.96-bettersonamehack.patch - -# this updates speech_tools to a development version which fixes -# a 64-bit cleanliness issue (among other changes). -Patch20: festival-1.96-speechtools-1.2.96-beta+awb.patch - -# This makes festival use /usr/lib[arch]/festival/etc for its -# arch-specific "etc-path", rather than /usr/share/festival/etc/system_type. -# Then I use sed to replace the token with actual arch-specific libdir. -# A better way would be to actually make this a flexible makefile parameter, -# but that's something to take up with upstream. -Patch31: festival-1.96-kludge-etcpath-into-libarch.patch +%global diphoneversion 0.19990610 +Source200: %{baseURL}/voices/festvox_kallpc16k.tar.gz +Source202: %{baseURL}/voices/festvox_rablpc16k.tar.gz -# Fixing format-security flaws -Patch60: festival-1.96-format-security.patch +### HTS VOICES +Source220: %{baseURL}/voices/festvox_cmu_us_awb_cg.tar.gz +Source221: %{baseURL}/voices/festvox_cmu_us_bdl_cg.tar.gz +Source222: %{baseURL}/voices/festvox_cmu_us_clb_cg.tar.gz +Source223: %{baseURL}/voices/festvox_cmu_us_jmk_cg.tar.gz +Source224: %{baseURL}/voices/festvox_cmu_us_rms_cg.tar.gz +Source225: %{baseURL}/voices/festvox_cmu_us_slt_cg.tar.gz -# For some reason, the Nitech voices (and the previous CMU versions) fail to -# define proclaim_voice, which makes them not show up in the voice -# descriptions, which makes gnome-speech not show them. -Patch90: festival-1.96-nitech-proclaimvoice.patch +### Hispavoces Spanish voices left out; did they move? -# Cure "SIOD ERROR: unbound variable : f2b_f0_lr_start" -Patch91: festival-1.96-nitech-fixmissingrequire.patch - -# An apparent copy-paste error in these voices -- slt is referenced -# in all of them. -Patch92: festival-1.96-nitech-sltreferences.patch - -Patch93: gcc43.patch - -# Native pulseaudio support, https://bugzilla.redhat.com/show_bug.cgi?id=471047 -Patch94: festival-speech-tools-pulse.patch - -Patch95: gcc44.patch - -# gcc 4.7 is finnicky about ambiguous function references' -Patch96: festival.gcc47.patch +### Multisyn voices left out because they're ~ 100MB each. -# Bring back old patch since gcc 4.7 no longer ignores unknown options -Patch97: no-shared-data.patch +### MBROLA voices left out, because they require MBROLA, which ain't free. -# There is a typo in the festival_server script -Patch98: festival-1.96-server-script-typo.patch +### Systemd service file. +Source230: festival.service -Patch99: festival-gcc7.patch +Patch100: festival-2.5.0-pulseaudio.patch +Patch101: festival-2.5.0-use-system-speech-tools.patch +Patch102: festival-2.5.0-use-system-libs.patch +Patch103: festival-2.5.0-filesystem-standard.patch +Patch104: festival-2.5.0-siteinit.patch -BuildRequires: gcc -BuildRequires: gcc-c++ +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: alsa-lib-devel BuildRequires: pulseaudio-libs-devel BuildRequires: texi2html BuildRequires: ncurses-devel +BuildRequires: speech-tools-libs-devel +BuildRequires: speech-tools-libs-static +BuildRequires: systemd +%{?systemd_requires} # Requires: festival-voice # The hard dep below provides a festival-voice, no need to require it here. @@ -173,37 +82,8 @@ BuildRequires: ncurses-devel # default, there's the answer. :) Requires: festvox-slt-arctic-hts -Requires: festival-lib = %{version}-%{release} -Requires: festival-speechtools-libs = %{speechtoolsversion}-%{release} - - - - -%package lib -Summary: Library for the Festival speech synthesis system -# this is here to make sure upgrades go cleanly. In other cases, -# the auto-deps should handle this just fine. -Requires: festival-speechtools-libs = %{speechtoolsversion}-%{release} - -%package docs -Summary: Documentation for the Festival speech synthesis system -Version: %{docversion} -BuildArch: noarch - -%package speechtools-libs -Summary: The Edinburgh Speech Tools libraries -Version: %{speechtoolsversion} - -%package speechtools-utils -Summary: Miscellaneous utilities from the Edinburgh Speech Tools -Version: %{speechtoolsversion} - -%package speechtools-devel -Summary: Development files for Edinburgh Speech Tools libraries -Version: %{speechtoolsversion} -# Note: rpmlint complains incorrectly about -# "no-dependency-on festival-speechtools". -Requires: festival-speechtools-libs = %{speechtoolsversion}-%{release} +Requires: festival-data = %{version}-%{release} +Requires: speech-tools-libs %package -n festvox-kal-diphone Summary: American English male speaker "Kevin" for Festival @@ -212,80 +92,62 @@ Provides: festival-voice Provides: festvox-kallpc16k BuildArch: noarch -%package -n festvox-ked-diphone +%package -n festvox-rab-diphone Summary: American English male speaker "Kurt" for Festival Version: %{diphoneversion} Requires: festival Provides: festival-voice -Provides: festvox-kedlpc16k +Provides: festvox-rablpc16k BuildArch: noarch %package -n festvox-awb-arctic-hts Summary: Scottish-accent US English male speaker "AWB" for Festival -Version: %{nitechhtsversion} Requires: festival Provides: festival-voice BuildArch: noarch %package -n festvox-bdl-arctic-hts Summary: US English male speaker "BDL" for Festival -Version: %{nitechhtsversion} Requires: festival Provides: festival-voice BuildArch: noarch %package -n festvox-clb-arctic-hts Summary: US English female speaker "CLB" for Festival -Version: %{nitechhtsversion} Requires: festival Provides: festival-voice BuildArch: noarch %package -n festvox-jmk-arctic-hts Summary: Canadian-accent US English male speaker "JMK" for Festival -Version: %{nitechhtsversion} Requires: festival Provides: festival-voice BuildArch: noarch %package -n festvox-rms-arctic-hts Summary: US English male speaker "RMS" for Festival -Version: %{nitechhtsversion} Requires: festival Provides: festival-voice BuildArch: noarch %package -n festvox-slt-arctic-hts Summary: US English female speaker "SLT" for Festival -Version: %{nitechhtsversion} -Requires: festival -Provides: festival-voice -BuildArch: noarch - -%package -n hispavoces-pal-diphone -Summary: Male Spanish voice «PAL» for Festival -Version: %{hispavocesversion} Requires: festival Provides: festival-voice BuildArch: noarch -%package -n hispavoces-sfl-diphone -Summary: Female Spanish voice «SFL» for Festival -Version: %{hispavocesversion} -Requires: festival -Provides: festival-voice +%package data +Summary: Data files for the Festival speech synthesis system BuildArch: noarch # This is last as a lovely hack to make sure Version gets set back # to what it should be. Grr. %package devel Summary: Development files for the Festival speech synthesis system -Version: %{festivalversion} # Note: rpmlint complains incorrectly about # "no-dependency-on festival" -Requires: festival-speechtools-devel = %{speechtoolsversion}-%{release} -Requires: festival-lib = %{version}-%{release} -Requires: festival-lib +Requires: speech-tools-libs-devel +Provides: festival-static = %{version}-%{release} @@ -296,28 +158,6 @@ well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. -%description lib -The shared library used by the Festival text-to-speech and speech synthesis -system. - -%description docs -HTML, Postscript, and Texinfo documentation for the Festival text-to-speech -and speech synthesis system. - -%description speechtools-libs -The Edinburgh Speech Tools libraries, used by the Festival text-to-speech -and speech synthesis system. - -%description speechtools-utils -Miscellaneous utilities from the Edinburgh Speech Tools. Unless you have a -specific need for one of these programs, you probably don't need to install -this. - -%description speechtools-devel -Development files for the Edinburgh Speech Tools Library, used by the -Festival speech synthesis system. - - %description -n festvox-kal-diphone American English male speaker ("Kevin") for Festival. @@ -330,10 +170,10 @@ trained from natural speech. The duration model is also trained from data using a CART tree. -%description -n festvox-ked-diphone -American English male speaker ("Kurt") for Festival. +%description -n festvox-rab-diphone +British English male speaker ("RAB") for Festival. -This voice provides an American English male voice using a residual excited +This voice provides a British English male voice using a residual excited LPC diphone synthesis method. It uses the CMU Lexicon for pronunciations. Prosodic phrasing is provided by a statistically trained model using part of speech and local distribution of breaks. Intonation is provided by a CART @@ -417,37 +257,8 @@ speaker is experienced in building synthetic voices. This was recorded at the other EGG. The database was automatically labelled using CMU Sphinx using the FestVox labelling scripts. No hand correction has been made. -%description -n hispavoces-sfl-diphone -Female Castillian-Spanish (es_ES) voice «SFL» for Festival. - -This is a diphone-based male Spanish voice for the Festival speech synthesis -system. These original audio files were recorded by a professional voice -talent in a recording studio. - -This voice was developed by the Consejeria de Innovacion, Ciencia y Empresa -of the Junta de Andalucia on a project awarded to MP Sistemas in -collaboration with Intelligent Dialogue Systems (INDISYS). - -The primary objective was to integrate a higher-quality diphone-based -Spanish voice in Guadalinex v4.0, an Ubuntu-based Linux distribution -promoted by the Government of Andalusia (Spain). See -http://www.guadalinex.org for more information. - -%description -n hispavoces-pal-diphone -Male Castillian-Spanish (es_ES) voice «PAL» for Festival. - -This is a diphone-based male Spanish voice for the Festival speech synthesis -system. These original audio files were recorded by a professional voice -talent in a recording studio. - -This voice was developed by the Consejeria de Innovacion, Ciencia y Empresa -of the Junta de Andalucia on a project awarded to MP Sistemas in -collaboration with Intelligent Dialogue Systems (INDISYS). - -The primary objective was to integrate a higher-quality diphone-based -Spanish voice in Guadalinex v4.0, an Ubuntu-based Linux distribution -promoted by the Government of Andalusia (Spain). See -http://www.guadalinex.org for more information. +%description data +Data files for the Festival speech synthesis system. %description devel Development files for the Festival speech synthesis system. Install @@ -458,14 +269,7 @@ you can also interface with Festival in via the shell or with BSD sockets. %prep -%setup -q -n festival -a 1 - -# speech tools -%setup -q -n festival -D -T -a 2 - -# exit out if they've fixed this, so we can remove this hack. -[ -x speech_tools/base_class/string/EST_strcasecmp.c ] || exit 1 -chmod -x speech_tools/base_class/string/EST_strcasecmp.c +%setup -q -n festival # dictionaries %setup -q -n festival -D -T -b 100 @@ -480,70 +284,15 @@ chmod -x speech_tools/base_class/string/EST_strcasecmp.c %setup -q -n festival -D -T -b 223 %setup -q -n festival -D -T -b 224 %setup -q -n festival -D -T -b 225 -%setup -c -q -n festival -D -T -a 300 - -%patch1 -p1 -b .nitech -%patch2 -p1 -b .buildrootrefs -%patch3 -p1 -b .shared -%patch5 -p1 -b .bugfix -%patch6 -p1 -b .liblinking -%patch7 -p1 -b .cxx -%patch8 -p1 -b .etc -%patch9 -p1 -b .cmu2nitech -# patch9 creates a new file; patch helpfully makes a "backup" of the -# non-existent "original", which then has bad permissions. zap. -rm -f lib/alias_cmu_to_nitech.scm.cmu2nitech -%patch10 -p1 -b .findspeechtools -%patch11 -p1 -b .shared -%patch12 -p1 -b .soname - -%patch20 -p1 -b .awb - -%patch31 -p1 -b .libarch -# finish the kludge for arch-specific "etc" (misc. binaries) -for f in speech_tools/main/siod_main.cc src/arch/festival/festival.cc; do - sed -i -e 's,{{HORRIBLELIBARCHKLUDGE}},"%{_libdir}",' $f -done - -%patch60 -p1 -b .fmtsec - - -# no backups for these patches because -# the voice directories are copied wholesale -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -%patch93 -p1 -b .gcc43 -%patch94 -p1 -b .pulse -%patch95 -p1 -b .gcc44 -%patch96 -p0 -b .gcc47 -%patch97 -p1 -b .no-share -%patch98 -b .typo -%patch99 -p1 -b .gcc7 - -# zero length -rm festdoc-%{docversion}/speech_tools/doc/index_html.jade -rm festdoc-%{docversion}/speech_tools/doc/examples_gen/error_example_section.sgml -rm festdoc-%{docversion}/speech_tools/doc/tex_stuff.jade - +%patch100 -p1 -b .pulseaudio +%patch101 -p1 -b .use-system-speech-tools +%patch102 -p1 -b .use-system-libs +%patch103 -p1 -b .filesystem-standard +%patch104 -p1 -b .siteinit %build -# build speech tools (and libraries) -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/speech_tools/lib -pushd speech_tools - %configure - # -fPIC 'cause we're building shared libraries and it doesn't hurt - # -fno-strict-aliasing because of a couple of warnings about code - # problems; if $RPM_OPT_FLAGS contains -O2 or above, this puts - # it back. Once that problem is gone upstream, remove this for - # better optimization. - make \ - CFLAGS="$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing" \ - CXXFLAGS="$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing" -popd - # build the main program export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/src/lib # instead of doing this, maybe we should patch the make process @@ -551,14 +300,13 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/src/lib export PATH=$(pwd)/bin:$PATH %configure make \ - FTLIBDIR="%{_datadir}/festival/lib" \ + EST=%{_libdir}/speech_tools \ + LIBDIR="%{_libdir}" \ CFLAGS="$RPM_OPT_FLAGS -fPIC" \ CXXFLAGS="$RPM_OPT_FLAGS -fPIC" # build the patched CMU dictionary -pushd lib/dicts/cmu - make -popd +make -C lib/dicts/cmu %install @@ -566,63 +314,20 @@ popd # local user-level builds. So, rather than doing that and then patching it # up, do the right parts by hand as necessary. -# install speech tools libs, binaries, and include files -pushd speech_tools - - make INSTALLED_LIB=$RPM_BUILD_ROOT%{_libdir} make_installed_lib_shared - # no thanks, static libs. - rm $RPM_BUILD_ROOT%{_libdir}/*.a - - make INSTALLED_BIN=$RPM_BUILD_ROOT%{_libexecdir}/speech-tools make_installed_bin_static - # this list of the useful programs in speech_tools comes from - # upstream developer Alan W. Black; the other stuff is to be removed. - pushd $RPM_BUILD_ROOT%{_libexecdir}/speech-tools - ls | - grep -Evw "ch_wave|ch_track|na_play|na_record|wagon|wagon_test" | - grep -Evw "make_wagon_desc|pitchmark|pm|sig2fv|wfst_build" | - grep -Evw "wfst_run|wfst_run" | - xargs rm - popd - - pushd include - for d in $( find . -type d | grep -v win32 ); do - make -w -C $d INCDIR=$RPM_BUILD_ROOT%{_includedir}/speech_tools/$d install_incs - done - # Um, yeah, so, "EST" is not a very meaningful name for the include dir. - # The Red Hat / Fedora package has traditionally put this stuff under - # "speech_tools", and that's what we're gonna do here too. - mv $RPM_BUILD_ROOT%{_includedir}/speech_tools/EST/*.h \ - $RPM_BUILD_ROOT%{_includedir}/speech_tools/ - rmdir $RPM_BUILD_ROOT%{_includedir}/speech_tools/EST - mv $RPM_BUILD_ROOT%{_includedir}/speech_tools/unix/EST/EST_* \ - $RPM_BUILD_ROOT%{_includedir}/speech_tools/unix/ - rmdir $RPM_BUILD_ROOT%{_includedir}/speech_tools/unix/EST - mv $RPM_BUILD_ROOT%{_includedir}/speech_tools/instantiate/EST/instantiate/EST_* \ - $RPM_BUILD_ROOT%{_includedir}/speech_tools/instantiate/ - rm -rf $RPM_BUILD_ROOT%{_includedir}/speech_tools/instantiate/EST - mv $RPM_BUILD_ROOT%{_includedir}/speech_tools/sigpr/EST/EST_* \ - $RPM_BUILD_ROOT%{_includedir}/speech_tools/sigpr - rmdir $RPM_BUILD_ROOT%{_includedir}/speech_tools/sigpr/EST - mv $RPM_BUILD_ROOT%{_includedir}/speech_tools/ling_class/EST/EST_* \ - $RPM_BUILD_ROOT%{_includedir}/speech_tools/ling_class - rmdir $RPM_BUILD_ROOT%{_includedir}/speech_tools/ling_class/EST - popd - - cp README ../README.speechtools - -popd +# Create %{_libdir} because make install copies to it without first creating. +mkdir -p $RPM_BUILD_ROOT%{_libdir} # install the dictionaries TOPDIR=$( pwd ) pushd lib/dicts - mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib/dicts + mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/dicts # we want to put the licenses in the docs... cp COPYING.poslex $OLDPWD/COPYING.poslex cp cmu/COPYING $OLDPWD/COPYING.cmudict for f in wsj.wp39.poslexR wsj.wp39.tri.ngrambin ; do - install -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/lib/dicts/ + install -p -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/dicts/ done - mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib/dicts/cmu + mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/dicts/cmu pushd cmu # note I'm keeping cmudict-0.4.diff and cmudict_extensions.scm to # satisfy the "all changes clearly marked" part of the license -- these @@ -630,7 +335,7 @@ pushd lib/dicts # Sigh. for f in allowables.scm cmudict-0.4.diff cmudict-0.4.out \ cmudict_extensions.scm cmulex.scm cmu_lts_rules.scm; do - install -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/lib/dicts/cmu/ + install -p -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/dicts/cmu/ done popd popd @@ -642,31 +347,20 @@ pushd lib/voices n=$( echo $f | sed 's/.*\/\(.*\)\/COPYING/COPYING.\1/' ) mv $f $OLDPWD/$n done - # ditch the readme files -- these aren't very useful. - # Except keep a README.htsvoice, because it contains license information. - cp us/nitech_us_awb_arctic_hts/hts/README.htsvoice $OLDPWD/README.htsvoice - find . -name 'README*' -exec rm {} \; popd -# kludge! nitech_us_awb_arctic_hts is missing its COPYING file. It should -# be the same as the other nitech files, though, so just copy one. -cp COPYING.nitech_us_bdl_arctic_hts COPYING.nitech_us_awb_arctic_hts -cp -a lib/voices $RPM_BUILD_ROOT%{_datadir}/festival/lib - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib/voices/es/ -cp -a festival-spanish-voices-1.0.0/* $RPM_BUILD_ROOT%{_datadir}/festival/lib/voices/es/ -cp %{SOURCE301} . +cp -a lib/voices $RPM_BUILD_ROOT%{_datadir}/festival # okay, now install the main festival program. # binaries: make INSTALLED_BIN=$RPM_BUILD_ROOT%{_bindir} make_installed_bin_static -install -m 755 bin/text2wave $RPM_BUILD_ROOT%{_bindir} +install -p -m 755 bin/text2wave $RPM_BUILD_ROOT%{_bindir} -# install the shared library -cp -a src/lib/libFestival.so* $RPM_BUILD_ROOT%{_libdir} +# install the library +cp -a src/lib/libFestival.a $RPM_BUILD_ROOT%{_libdir} # this is just nifty. and it's small. -install -m 755 examples/saytime $RPM_BUILD_ROOT%{_bindir} +install -p -m 755 examples/saytime $RPM_BUILD_ROOT%{_bindir} # man pages mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 @@ -674,193 +368,183 @@ cp -a doc/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 # lib: the bulk of the program -- the scheme stuff and so on pushd lib - mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib + mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival for f in *.scm festival.el *.ent *.gram *.dtd *.ngrambin speech.properties ; do - install -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/lib/ + install -p -m 644 $f $RPM_BUILD_ROOT%{_datadir}/festival/ done - mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib/multisyn/ - install -m 644 multisyn/*.scm $RPM_BUILD_ROOT%{_datadir}/festival/lib/multisyn/ + mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/multisyn/ + install -p -m 644 multisyn/*.scm $RPM_BUILD_ROOT%{_datadir}/festival/multisyn/ popd # "etc" -- not in the configuration sense, but in the sense of "extra helper # binaries". pushd lib/etc - # not arch-specific - mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/lib/etc - install -m 755 email_filter $RPM_BUILD_ROOT%{_datadir}/festival/lib/etc - # arch-specific - mkdir -p $RPM_BUILD_ROOT%{_libdir}/festival/etc - install -m 755 */audsp $RPM_BUILD_ROOT%{_libdir}/festival/etc + mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/festival + install -p -m 755 */audsp $RPM_BUILD_ROOT%{_libexecdir}/festival popd -# the actual /etc. :) -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/festival -# use our version of this file -rm $RPM_BUILD_ROOT%{_datadir}/festival/lib/siteinit.scm -install -m 644 %{SOURCE50} $RPM_BUILD_ROOT%{_sysconfdir}/festival/siteinit.scm -install -m 644 %{SOURCE51} $RPM_BUILD_ROOT%{_sysconfdir}/festival/sitevars.scm - # copy in the intro.text. It's small and makes (intro) work. in the future, # we may want include more examples in an examples subpackage mkdir -p $RPM_BUILD_ROOT%{_datadir}/festival/examples/ -install -m 644 examples/intro.text $RPM_BUILD_ROOT%{_datadir}/festival/examples +install -p -m 644 examples/intro.text $RPM_BUILD_ROOT%{_datadir}/festival/examples # header files mkdir -p $RPM_BUILD_ROOT%{_includedir}/festival cp -a src/include/* $RPM_BUILD_ROOT%{_includedir}/festival -# Clean up some junk from the docs tarball. -pushd festdoc-%{docversion}/speech_tools/doc - rm -fr CVS arch_doc/CVS man/CVS speechtools/arch_doc/CVS - rm -f .*_made .speechtools_html .tex_done -popd - -# info pages -mkdir -p $RPM_BUILD_ROOT%{_infodir} -cp -p festdoc-%{docversion}/festival/info/* $RPM_BUILD_ROOT%{_infodir} - - - +# systemd service +mkdir -p $RPM_BUILD_ROOT%{_unitdir} +install -p -m 644 %{SOURCE230} $RPM_BUILD_ROOT%{_unitdir}/ %files -%doc ACKNOWLEDGMENTS COPYING NEWS README -%doc COPYING.poslex COPYING.cmudict -%dir %{_sysconfdir}/festival -%config(noreplace) %{_sysconfdir}/festival/siteinit.scm -%config(noreplace) %{_sysconfdir}/festival/sitevars.scm +%doc ACKNOWLEDGMENTS NEWS README.md +%license COPYING COPYING.poslex COPYING.cmudict +%{_bindir}/default_voices %{_bindir}/festival %{_bindir}/festival_client %{_bindir}/festival_server %{_bindir}/festival_server_control %{_bindir}/text2wave %{_bindir}/saytime -%dir %{_datadir}/festival -%dir %{_datadir}/festival/lib -%{_datadir}/festival/lib/*.scm -%{_datadir}/festival/lib/festival.el -%{_datadir}/festival/lib/*.ent -%{_datadir}/festival/lib/*.gram -%{_datadir}/festival/lib/*.dtd -%{_datadir}/festival/lib/*.ngrambin -%{_datadir}/festival/lib/speech.properties -%{_datadir}/festival/lib/dicts -%{_datadir}/festival/lib/etc -%dir %{_datadir}/festival/lib/multisyn -%{_datadir}/festival/lib/multisyn/*.scm -%dir %{_datadir}/festival/examples -%{_datadir}/festival/examples/intro.text -%dir %{_libdir}/festival -%dir %{_libdir}/festival/etc -%{_libdir}/festival/etc/* +%{_libexecdir}/festival %{_mandir}/man1/* +%{_unitdir}/festival.service + +%pre +getent group festival >/dev/null || groupadd -r festival +getent passwd festival >/dev/null || useradd -r -g festival -d / -s /sbin/nologin -c "festival Daemon" festival +exit 0 -%files lib -%doc COPYING -%{_libdir}/libFestival.so.* - -%files docs -%doc festdoc-%{docversion}/festival/html/*html -%{_infodir}/* - -%files speechtools-libs -%doc README.speechtools -%{_libdir}/libestbase.so.* -%{_libdir}/libestools.so.* -%{_libdir}/libeststring.so.* - -%files speechtools-utils -%doc README.speechtools -%dir %{_libexecdir}/speech-tools -%{_libexecdir}/speech-tools/* - -%files speechtools-devel -%doc festdoc-%{docversion}/speech_tools -%{_libdir}/libestbase.so -%{_libdir}/libestools.so -%{_libdir}/libeststring.so -%dir %{_includedir}/speech_tools -%{_includedir}/speech_tools/* +%post +%systemd_post festival.service + +%preun +%systemd_preun festival.service + +%postun +%systemd_postun_with_restart festival.service %files -n festvox-kal-diphone -%doc COPYING.kal_diphone -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/english -%{_datadir}/festival/lib/voices/english/kal_diphone +%license COPYING.kal_diphone +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/english +%{_datadir}/festival/voices/english/kal_diphone -%files -n festvox-ked-diphone -%doc COPYING.ked_diphone -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/english -%{_datadir}/festival/lib/voices/english/ked_diphone +%files -n festvox-rab-diphone +%license COPYING.rab_diphone +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/english +%{_datadir}/festival/voices/english/rab_diphone %files -n festvox-awb-arctic-hts -%doc COPYING.nitech_us_awb_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_awb_arctic_hts +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_awb_cg %files -n festvox-bdl-arctic-hts -%doc COPYING.nitech_us_bdl_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_bdl_arctic_hts +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_bdl_cg %files -n festvox-clb-arctic-hts -%doc COPYING.nitech_us_clb_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_clb_arctic_hts +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_clb_cg %files -n festvox-jmk-arctic-hts -%doc COPYING.nitech_us_jmk_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_jmk_arctic_hts +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_jmk_cg %files -n festvox-rms-arctic-hts -%doc COPYING.nitech_us_rms_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_rms_arctic_hts +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_rms_cg %files -n festvox-slt-arctic-hts -%doc COPYING.nitech_us_slt_arctic_hts COPYING.hts README.htsvoice -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/us -%{_datadir}/festival/lib/voices/us/nitech_us_slt_arctic_hts - -%files -n hispavoces-pal-diphone -%doc COPYING.hispavoces -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/es -%dir %{_datadir}/festival/lib/voices/es/JuntaDeAndalucia_es_pa_diphone/ -%{_datadir}/festival/lib/voices/es/JuntaDeAndalucia_es_pa_diphone/* - -%files -n hispavoces-sfl-diphone -%doc COPYING.hispavoces -%dir %{_datadir}/festival/lib/voices -%dir %{_datadir}/festival/lib/voices/es -%dir %{_datadir}/festival/lib/voices/es/JuntaDeAndalucia_es_sf_diphone/ -%{_datadir}/festival/lib/voices/es/JuntaDeAndalucia_es_sf_diphone/* +%dir %{_datadir}/festival/voices +%dir %{_datadir}/festival/voices/us +%{_datadir}/festival/voices/us/cmu_us_slt_cg + +%files data +%{_datadir}/festival +%exclude %{_datadir}/festival/voices/* +%dir %{_datadir}/festival/voices %files devel -%doc COPYING -%{_libdir}/libFestival.so +%license COPYING +%{_libdir}/libFestival.a %dir %{_includedir}/festival %{_includedir}/festival/* %changelog -* Thu Jul 25 2019 Fedora Release Engineering - 1.96-41 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.96-40 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jul 31 2018 Florian Weimer - 1.96-39 -- Rebuild with fixed binutils +* Sun Oct 13 2019 W. Michael Petullo - 2.5.0-8 +- Remove empty lib subpackage +- Fix make command line (add missing '\') +- Use -p with install +- Do not create %{_sysconfdir}/festival +- Do not create %{_infodir} +- Simplify %files +- Note BSD license for hts_engine module +- Split data into noarch package +- The festival-devel package now provides festival-static +- Markup additional files as licenses + +* Sun Jan 27 2019 W. Michael Petullo - 2.5.0-7 +- Add more BuildRequires +- Remove use of festivalversion +- Drop Group: +- Replace define with global +- Reorder BuildRequires +- Remove deprecated post, preun, and postun statements +- Remove verbose pushd use +- Do not explicitly call ldconfig +- Label COPYING properly + +* Sun Sep 09 2018 W. Michael Petullo - 2.5.0-6 +- Apply siteinit patch +- Drop lib from %{_datadir}/festival/lib +- Move audsp +- Drop email_filter + +* Thu Sep 06 2018 W. Michael Petullo - 2.5.0-5 +- Patch to use more reasonable install locations +- Provide systemd service file + +* Wed Aug 29 2018 W. Michael Petullo - 2.5.0-4 +- Do not explicitly run ldconfig +- Remove speechtools definitions +- Make use of system-installed speech-tools +- BuildRequire speech-tools-libs-static +- Fix some URLs +- Set debug_package to null; see comment at top +- Set LIBDIR on make +- Create $RPM_BUILD_ROOT%{_libdir} before make install + +* Tue Aug 28 2018 W. Michael Petullo - 2.5.0-3 +- Remove speech-tools and use package proposed in Bugzilla #1592220 + +* Sun Jul 22 2018 W. Michael Petullo - 2.5.0-2 +- Adjust soname using modification of patch from 1.96-38 +- Place audsp where festival can find it +- Configure festival to use pulseaudio + +* Sun Jul 22 2018 W. Michael Petullo - 2.5.0-1 +- Update to 2.5.0 +- Drop separate versions for speech_tools and docs +- Drop out-of-date patches +- Revert to Festival-distributed voices rather than NIT +- Drop Hispavoces voices for now +- Use sed to adjust config.in files +- A number of voices no longer have README files +- Build libFestival as a static library for now +- Drop siteinit.scm and sitevars.scm +- Drop info files +- Drop docs package for now +- Switch ked to rab * Fri Jul 13 2018 Fedora Release Engineering - 1.96-38 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/festival_buildroot.patch b/festival_buildroot.patch deleted file mode 100644 index 527f969..0000000 --- a/festival_buildroot.patch +++ /dev/null @@ -1,105 +0,0 @@ ---- festival/src/scripts/festival_server.sh.foo 2003-08-25 23:47:26.000000000 -0400 -+++ festival/src/scripts/festival_server.sh 2003-08-25 23:48:36.000000000 -0400 -@@ -36,11 +36,6 @@ - # # - ########################################################################### - --TOP=__TOP__ --EST=__EST__ -- --#__SHARED_SETUP__ -- - useage() - { - cat <$@ -- @echo "\"true\" ; exec "$(FESTIVAL_HOME)/bin/festival --script '$$0 $$*' >>$@ -+ @echo "\"true\" ; exec "/usr/bin/festival --script '$$0 $$*' >>$@ - cat $< >>$@ - chmod +x $@ - ---- festival/speech_tools/scripts/build_docbook_index.prl.foo 2003-08-25 23:37:59.000000000 -0400 -+++ festival/speech_tools/scripts/build_docbook_index.prl 2003-08-25 23:38:54.000000000 -0400 -@@ -35,8 +35,6 @@ - END - } - --#__SHARED_SETUP__ -- - $title=''; - $mode='debug'; - $verbose=0; ---- festival/speech_tools/scripts/cxx_to_docbook.prl.foo 2003-08-25 23:38:58.000000000 -0400 -+++ festival/speech_tools/scripts/cxx_to_docbook.prl 2003-08-25 23:39:02.000000000 -0400 -@@ -37,8 +37,6 @@ - END - } - --#__SHARED_SETUP__ -- - $level=0; - $title=undef; - $chapter='chapter'; ---- festival/speech_tools/scripts/pm.prl.foo 2003-08-25 23:45:19.000000000 -0400 -+++ festival/speech_tools/scripts/pm.prl 2003-08-25 23:45:28.000000000 -0400 -@@ -56,8 +56,6 @@ - END - } - --#__SHARED_SETUP__ -- - while ($#ARGV>=0) - { - if ($ARGV[0] eq "-f") ---- festival/speech_tools/scripts/raw_to_xgraph.prl.foo 2003-08-25 23:45:35.000000000 -0400 -+++ festival/speech_tools/scripts/raw_to_xgraph.prl 2003-08-25 23:45:40.000000000 -0400 -@@ -56,8 +56,6 @@ - END - } - --#__SHARED_SETUP__ -- - $stream = STDIN; - $sample_rate = 1; - ---- festival/speech_tools/scripts/resynth.sh.foo 2003-08-25 23:45:48.000000000 -0400 -+++ festival/speech_tools/scripts/resynth.sh 2003-08-25 23:45:57.000000000 -0400 -@@ -63,8 +63,6 @@ - exit $1 - } - --#__SHARED_SETUP__ -- - invert=false - voiced='' - pre=0 ---- festival/speech_tools/scripts/tex_to_images.prl.foo 2003-08-25 23:46:20.000000000 -0400 -+++ festival/speech_tools/scripts/tex_to_images.prl 2003-08-25 23:46:41.000000000 -0400 -@@ -79,8 +79,6 @@ - exit($_[0]); - } - --#__SHARED_SETUP__ -- - $out_pattern="image_NNN.FFF"; - $scale=3; - $over=2; diff --git a/gcc43.patch b/gcc43.patch deleted file mode 100644 index 1257eef..0000000 --- a/gcc43.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up festival/src/modules/Text/text_modes.cc.gcc43 festival/src/modules/Text/text_modes.cc ---- festival/src/modules/Text/text_modes.cc.gcc43 2008-02-22 21:50:33.000000000 -0500 -+++ festival/src/modules/Text/text_modes.cc 2008-02-22 21:50:41.000000000 -0500 -@@ -59,8 +59,8 @@ static void um_apply_filter(const EST_St - void tts_file_user_mode(LISP filename, LISP params) - { - -- volatile EST_String tmpname = make_tmp_filename(); -- volatile EST_String inname = get_c_string(filename); -+ EST_String tmpname = make_tmp_filename(); -+ EST_String inname = get_c_string(filename); - volatile EST_String filter; - volatile EST_TokenStream ts; - volatile LISP func; -diff -up festival/speech_tools/base_class/EST_TSimpleVector.cc.gcc43 festival/speech_tools/base_class/EST_TSimpleVector.cc ---- festival/speech_tools/base_class/EST_TSimpleVector.cc.gcc43 2006-07-06 08:57:18.000000000 -0400 -+++ festival/speech_tools/base_class/EST_TSimpleVector.cc 2008-02-22 21:43:03.000000000 -0500 -@@ -43,6 +43,7 @@ - #include "EST_TSimpleVector.h" - #include "EST_matrix_support.h" - #include -+#include - #include "EST_cutils.h" - - template void EST_TSimpleVector::copy(const EST_TSimpleVector &a) -diff -up festival/speech_tools/base_class/EST_TSimpleMatrix.cc.gcc43 festival/speech_tools/base_class/EST_TSimpleMatrix.cc ---- festival/speech_tools/base_class/EST_TSimpleMatrix.cc.gcc43 2004-09-30 08:53:35.000000000 -0400 -+++ festival/speech_tools/base_class/EST_TSimpleMatrix.cc 2008-02-22 21:43:03.000000000 -0500 -@@ -44,6 +44,7 @@ - #include "EST_TVector.h" - #include - #include -+#include - #include "EST_cutils.h" - - template diff --git a/gcc44.patch b/gcc44.patch deleted file mode 100644 index ea27595..0000000 --- a/gcc44.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up festival/speech_tools/speech_class/EST_wave_io.cc.gcc44 festival/speech_tools/speech_class/EST_wave_io.cc ---- festival/speech_tools/speech_class/EST_wave_io.cc.gcc44 2009-02-26 17:26:58.672421948 -0500 -+++ festival/speech_tools/speech_class/EST_wave_io.cc 2009-02-26 17:50:02.065661124 -0500 -@@ -68,7 +68,7 @@ static const char *NIST_END_SIG = "end_h - - int nist_get_param_int(const char *hdr, const char *field, int def_val) - { -- char *p; -+ const char *p; - int val; - - if (((p=strstr(hdr,field)) != NULL) && -@@ -84,7 +84,8 @@ int nist_get_param_int(const char *hdr, - - char *nist_get_param_str(const char *hdr, const char *field, const char *def_val) - { -- char *p,*val; -+ const char *p; -+ char *val; - int size; - - if (((p=strstr(hdr,field)) != NULL) && diff --git a/no-shared-data.patch b/no-shared-data.patch deleted file mode 100644 index e495637..0000000 --- a/no-shared-data.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up festival/speech_tools/config/compilers/gcc_defaults.mak.no-shared-data festival/speech_tools/config/compilers/gcc_defaults.mak ---- festival/speech_tools/config/compilers/gcc_defaults.mak.no-shared-data 2008-02-22 13:45:50.000000000 -0500 -+++ festival/speech_tools/config/compilers/gcc_defaults.mak 2008-02-22 13:46:24.000000000 -0500 -@@ -73,12 +73,12 @@ PROFILE_gprof_CCFLAGS = -pg - PROFILE_gprof_CXXFLAGS = -pg - PROFILE_gprof_LINKFLAGS = -pg - --SHARED_CCFLAGS = -fPIC -fno-shared-data --SHARED_CXXFLAGS = -fPIC -fno-shared-data --SHARED_LINKFLAGS = -fno-shared-data -+SHARED_CCFLAGS = -fPIC -+SHARED_CXXFLAGS = -fPIC -+SHARED_LINKFLAGS = - - ifndef GCC_MAKE_SHARED_LIB -- MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX -Wl,-soname,YYY -+ MAKE_SHARED_LIB = $(CXX) -shared -o XXX -Wl,-soname,YYY - else - MAKE_SHARED_LIB = $(GCC_MAKE_SHARED_LIB) - endif diff --git a/sources b/sources index 7c3aff6..1d76fdf 100644 --- a/sources +++ b/sources @@ -1,14 +1,11 @@ -74915f4ffb13471c7e529ae92b392453 festival-1.96-beta.tar.gz -887e0c7586facb97cfc0114a105763b2 speech_tools-1.2.96-beta.tar.gz -742c266e4c4978fae2b5c1bf6f549eb4 festlex_POSLEX.tar.gz -66d39c6f7b8e9d9beade051312365020 festlex_CMU.tar.gz -abbd12e1d04ecdcae07f1d0044f3a947 festvox_kallpc16k.tar.gz -35d4a2f377d05913ddae61db542afca1 festvox_kedlpc16k.tar.gz -faabc25a6c1b11854c41adc257c47bdb festdoc-1.4.2.tar.gz -907c3cf44dbf42aa1489a910e0db3204 festvox_nitech_us_awb_arctic_hts.tar.bz2 -5a3101bb0df8962e1f5b98017941244c festvox_nitech_us_bdl_arctic_hts.tar.bz2 -5a48d97d2531b977c130ca6dba1ed558 festvox_nitech_us_clb_arctic_hts.tar.bz2 -f45ba3678a020df667f7e6a606a375c1 festvox_nitech_us_jmk_arctic_hts.tar.bz2 -8ee4de08602a45bad47f93e045cdd242 festvox_nitech_us_rms_arctic_hts.tar.bz2 -3b3cac2a15f423ad55ff5d27291de538 festvox_nitech_us_slt_arctic_hts.tar.bz2 -ebae47b2020f7b3e0a62b9ce7eeebb66 festival-spanish-voices_1.0.0.orig.tar.gz +SHA512 (festival-2.5.0-release.tar.gz) = 529ec3a1780a861074b6070567f3e11cfcc839081f61e078978a491f11eb424bc4d6adf599f073d5571e20f66871b7045df9f9b175a1083d10e8bb02342639b1 +SHA512 (festlex_CMU.tar.gz) = c293344020fd3337193303cd5dfb7e2b0a1012770a484d8bccaae921b0c61b75699204bec45fee0db754506d6f1558fd616866cc94e76afcbb85a4dcbcf9542b +SHA512 (festlex_POSLEX.tar.gz) = d7f96621fd98bcd3c84f0188fc6ac5a006e2cbb535279693be3341d51148344360f68e67962f08c4041df1e3527de9b30705b13fb9859ad91e3c804704eb5348 +SHA512 (festvox_cmu_us_awb_cg.tar.gz) = b1a21799ac8b7980566d91613a9aa64a9df1342cca96df20e14730af127f147605d7b8150ef295ad95f2056f7ff2c69525e0858f23bb5052d56fcd1a99a3b749 +SHA512 (festvox_cmu_us_bdl_cg.tar.gz) = 9738d54c2440d48009ebde50e54934b552ed9f07e4c424d649b5e60bc446330207f1bc54761db10cf749aaea4c0895fdf21351e0261c9998739a312b7af13cbf +SHA512 (festvox_cmu_us_clb_cg.tar.gz) = 489277cd56bcde9ede2234bf73c2f340cb02d2f119b4a8e55e8c22e397bd858daf1b4fa39c6581b6a18456e5803c82f2e9af76ef33b1c7c1fe019a1972fc92e1 +SHA512 (festvox_cmu_us_jmk_cg.tar.gz) = 6f7ce407a8184dceb2bab3386865efd11d582bdeea629e2ffe8d6d6d01701fd26ca64d5afc847cb3760c719698841d91b00f81835fa7b88f69eeeac81a36a5e8 +SHA512 (festvox_cmu_us_rms_cg.tar.gz) = 5496c9767090591ad9525ad4cefbacbaa47ff27476a547e29f3d59c4c8c50d281bd9764c08f40abb3b7e6f49dbff3a03b408a83aa613aa886ebdde7ed8e5196f +SHA512 (festvox_cmu_us_slt_cg.tar.gz) = 8dc516fcd280ce5ca2915deb9cc0d7704f37815f443342007383d8708ae7419c05357ad48f460b2171ab1417ec7c3c033442d9d3f4a631df49f6f2a9826c2c28 +SHA512 (festvox_kallpc16k.tar.gz) = 5d8a57840220c00e281842fd38f16887b7403dc487782947eae4a0b2d36f951aa957182bb36a1b4824e40288a5ccc2e635f38f5a09277a0da8099aa6bf24d892 +SHA512 (festvox_rablpc16k.tar.gz) = c97a19f82eca65553846b83ae355852266408de1268b4d80af50d6e212a833d98f414d1e9b85751c8f074b285f01ead93cc42208e3c0bbca330524a35e936835