From a32ffe96fdeddbd7e165bfa7918960454252c99a Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Mon, 3 Mar 2008 11:02:02 +0000 Subject: Managed to get text-to-speech working. git-svn-id: http://svn.telesphoreo.org/trunk@145 514c082c-b64e-11dc-b46d-3d985efe055d --- data/flite/_metadata/description | 1 + data/flite/_metadata/license | 172 ++++++++++++++++++++++++++++++++++++ data/flite/_metadata/maintainer | 1 + data/flite/_metadata/name | 1 + data/flite/_metadata/priority | 1 + data/flite/_metadata/section | 1 + data/flite/_metadata/version | 1 + data/flite/arrays.diff | 111 +++++++++++++++++++++++ data/flite/cmu_lex_data-0.c | 3 + data/flite/cmu_lex_data-1.c | 3 + data/flite/const.diff | 12 +++ data/flite/flite-1.3-release.tar.gz | Bin 0 -> 10663835 bytes data/flite/installlib.diff | 11 +++ data/flite/make.sh | 41 +++++++++ 14 files changed, 359 insertions(+) create mode 100644 data/flite/_metadata/description create mode 100644 data/flite/_metadata/license create mode 120000 data/flite/_metadata/maintainer create mode 100644 data/flite/_metadata/name create mode 100644 data/flite/_metadata/priority create mode 100644 data/flite/_metadata/section create mode 100644 data/flite/_metadata/version create mode 100644 data/flite/arrays.diff create mode 100644 data/flite/cmu_lex_data-0.c create mode 100644 data/flite/cmu_lex_data-1.c create mode 100644 data/flite/const.diff create mode 100644 data/flite/flite-1.3-release.tar.gz create mode 100644 data/flite/installlib.diff create mode 100644 data/flite/make.sh (limited to 'data') diff --git a/data/flite/_metadata/description b/data/flite/_metadata/description new file mode 100644 index 000000000..f017b112e --- /dev/null +++ b/data/flite/_metadata/description @@ -0,0 +1 @@ +embedded text-to-speech library diff --git a/data/flite/_metadata/license b/data/flite/_metadata/license new file mode 100644 index 000000000..c886bd212 --- /dev/null +++ b/data/flite/_metadata/license @@ -0,0 +1,172 @@ + +Flite is free software. + +We have kept the core code to BSD-like copyright, thus the system is +free to use in commercial products, with commercial extensions. GPL +code is only include as part of the build process and does not +taint any of the run-time code. + +Note the PalmOS code uses BSD code that requires acknowledgements in +any distribution documentation. + +As a collection it is distributed under the following license. Note +a few files in this distribution have a different but equally free +non-conflicting licence, see below. + + Language Technologies Institute + Carnegie Mellon University + Copyright (c) 1999-2005 + 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. + + CARNEGIE MELLON UNIVERSITY 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 CARNEGIE MELLON UNIVERSITY 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. + +All files within this distribution have the above license except +the following + +src/audio/au_wince.c +src/utils/cst_file_stdio.c +src/utils/cst_mmap_posix.c +src/utils/cst_mmap_win32.c +src/utils/cst_mmap_none.c +src/utils/cst_file_wince.c +src/wavesynth/cst_sts.c +sapi/ + are copyright Cepstral, LLC rather than CMU but fall under the same + free licence as the above, except for the owner. + +doc/alice + Is the first two chapters of Alice in Wonderland as distributed by the + Gutenburg project and is now in the public domain + +src/regex/regexp.c +src/regex/regsub.c + + * Copyright (c) 1986 by University of Toronto. + * Written by Henry Spencer. Not derived from licensed software. + * + * Permission is granted to anyone to use this software for any + * purpose on any computer system, and to redistribute it freely, + * subject to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of + * this software, no matter how awful, even if they arise + * from defects in it. + * + * 2. The origin of this software must not be misrepresented, either + * by explicit claim or by omission. + * + * 3. Altered versions must be plainly marked as such, and must not + * be misrepresented as being the original software. + +src/speech/rateconv.c + + * Copyright (c) 1992, 1995 by Markus Mummert + * + * Redistribution and use of this software, modifcation and inclusion + * into other forms of software are permitted provided that the following + * conditions are met: + * + * 1. Redistributions of this software must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. If this software is redistributed in a modified condition + * it must reveal clearly that it has been modified. + +lang/usenglish/us_durz_cart.c +lang/usenglish/us_durz_cart.h +lang/usenglish/us_int_accent_cart.c +lang/usenglish/us_int_accent_cart.h +lang/usenglish/us_int_tone_cart.c +lang/usenglish/us_int_tone_cart.h +lang/usenglish/us_phoneset.c +lang/usenglish/us_f0lr.c + These are directly (or indirectly) compiled/derived from files that are + part of the Festival Speech Synthesis System (1.4.1). Hence they have + a joint copyright CMU/Edinburgh but with the same free licence + +configure + # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. + # + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. + +configure.sub +config.guess +missing +install-sh +mkinstalldirs + Copyright FSF, and under the GPL, these files are only used for + convenient configuration and are not part of the generated binary, + and therefore do not impose any GPL restrctions on the rest of the + system. But as they are standard methods for configuration they + are included. + +palm/include/peal.h +palm/include/pealstub.h +palm/arm_flite/pealstub.c +palm/m68k_flite/peal.c + +/********** + * Copyright (c) 2004 Greg Parker. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY GREG PARKER ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + **********/ + +The whole Sun Microsystems math library was ported to Palm +for this but its not actually needed, though the include file is +to allow bits of the system to compile that currently linked in +to the system, so we just have the include file here + +palm/include/fdlibm.h + + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + + + + diff --git a/data/flite/_metadata/maintainer b/data/flite/_metadata/maintainer new file mode 120000 index 000000000..0fa66e077 --- /dev/null +++ b/data/flite/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/saurik \ No newline at end of file diff --git a/data/flite/_metadata/name b/data/flite/_metadata/name new file mode 100644 index 000000000..a46de0369 --- /dev/null +++ b/data/flite/_metadata/name @@ -0,0 +1 @@ +Festival-Lite diff --git a/data/flite/_metadata/priority b/data/flite/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/flite/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/flite/_metadata/section b/data/flite/_metadata/section new file mode 100644 index 000000000..593877746 --- /dev/null +++ b/data/flite/_metadata/section @@ -0,0 +1 @@ +Multimedia diff --git a/data/flite/_metadata/version b/data/flite/_metadata/version new file mode 100644 index 000000000..7e32cd569 --- /dev/null +++ b/data/flite/_metadata/version @@ -0,0 +1 @@ +1.3 diff --git a/data/flite/arrays.diff b/data/flite/arrays.diff new file mode 100644 index 000000000..25918cb74 --- /dev/null +++ b/data/flite/arrays.diff @@ -0,0 +1,111 @@ +diff -ru flite-1.3-release/lang/cmulex/cmu_lex.c flite-1.3-release+iPhone/lang/cmulex/cmu_lex.c +--- flite-1.3-release/lang/cmulex/cmu_lex.c 2004-12-31 16:07:07.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/cmulex/cmu_lex.c 2008-03-02 07:25:23.000000000 +0000 +@@ -42,6 +42,7 @@ + + extern const int cmu_lex_entry[]; + extern const unsigned char cmu_lex_data[]; ++extern const unsigned char cmu_lex_data_[]; + extern const int cmu_lex_num_entries; + extern const int cmu_lex_num_bytes; + extern const char * const cmu_lex_phone_table[54]; +@@ -252,7 +253,9 @@ + #ifdef CST_NO_STATIC_LEX + /* cmu_lex.data will be set elsewhere */ + #else +- cmu_lex.data = cmu_lex_data; ++ cmu_lex.data = malloc(207610 + 209306); ++ memcpy(cmu_lex.data, cmu_lex_data, 207610); ++ memcpy(cmu_lex.data + 207610, cmu_lex_data_, 209306); + #endif + cmu_lex.num_bytes = cmu_lex_num_bytes; + cmu_lex.phone_table = (char **) cmu_lex_phone_table; +diff -ru flite-1.3-release/lang/cmulex/Makefile flite-1.3-release+iPhone/lang/cmulex/Makefile +--- flite-1.3-release/lang/cmulex/Makefile 2004-12-28 23:01:23.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/cmulex/Makefile 2008-03-02 06:38:37.000000000 +0000 +@@ -40,7 +40,8 @@ + ALL_DIRS= + H = cmu_lts_model.h cmulex.h + SRCS = cmu_lts_rules.c cmu_lts_model.c \ +- cmu_lex.c cmu_lex_entries.c cmu_lex_data.c ++ cmu_lex_data-0.c cmu_lex_data-1.c \ ++ cmu_lex.c cmu_lex_entries.c + LEX_DATA_INCLUDES = cmu_lex_data_raw.c cmu_lex_num_bytes.c \ + cmu_lex_phones_huff_table.c cmu_lex_entries_huff_table.c + +diff -ru flite-1.3-release/lang/cmu_us_kal/cmu_us_kal.c flite-1.3-release+iPhone/lang/cmu_us_kal/cmu_us_kal.c +--- flite-1.3-release/lang/cmu_us_kal/cmu_us_kal.c 2004-12-31 23:22:10.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/cmu_us_kal/cmu_us_kal.c 2008-03-02 07:30:53.000000000 +0000 +@@ -46,10 +46,24 @@ + static cst_utterance *cmu_us_kal_postlex(cst_utterance *u); + extern cst_diphone_db cmu_us_kal_db; + ++extern const unsigned char cmu_us_kal_res[]; ++extern const unsigned char cmu_us_kal_res_1_[]; ++extern const unsigned char cmu_us_kal_res_2_[]; ++extern const unsigned char cmu_us_kal_res_3_[]; ++extern const unsigned char cmu_us_kal_res_4_[]; ++ + cst_voice *cmu_us_kal_diphone = NULL; + + cst_voice *register_cmu_us_kal(const char *voxdir) + { ++ unsigned char *residuals = malloc(307705 + 302489 + 304535 + 299252 + 301901); ++ memcpy(residuals, cmu_us_kal_res, 307705); ++ memcpy(residuals + 307705, cmu_us_kal_res_1_, 302489); ++ memcpy(residuals + 307705 + 302489, cmu_us_kal_res_2_, 304535); ++ memcpy(residuals + 307705 + 302489 + 304535, cmu_us_kal_res_3_, 299252); ++ memcpy(residuals + 307705 + 302489 + 304535 + 299252, cmu_us_kal_res_4_, 301901); ++ * (unsigned char **) &cmu_us_kal_db.sts->residuals = residuals; ++ + cst_voice *v = new_voice(); + + /* Set up basic values for synthesizing with this voice */ +diff -ru flite-1.3-release/lang/cmu_us_kal/cmu_us_kal_diphone.c flite-1.3-release+iPhone/lang/cmu_us_kal/cmu_us_kal_diphone.c +--- flite-1.3-release/lang/cmu_us_kal/cmu_us_kal_diphone.c 2005-01-05 23:20:58.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/cmu_us_kal/cmu_us_kal_diphone.c 2008-03-02 07:30:04.000000000 +0000 +@@ -5,7 +5,6 @@ + #include "cst_diphone.h" + + extern const unsigned short cmu_us_kal_lpc[]; +-extern const unsigned char cmu_us_kal_res[]; + extern const unsigned int cmu_us_kal_resi[]; + + +@@ -15,7 +14,7 @@ + 0,0,0, + #else + cmu_us_kal_lpc, +- cmu_us_kal_res, ++ 0, + cmu_us_kal_resi, + #endif + 17614, +diff -ru flite-1.3-release/lang/cmu_us_kal/Makefile flite-1.3-release+iPhone/lang/cmu_us_kal/Makefile +--- flite-1.3-release/lang/cmu_us_kal/Makefile 2005-01-01 17:18:04.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/cmu_us_kal/Makefile 2008-03-02 07:09:08.000000000 +0000 +@@ -41,7 +41,11 @@ + H = voxdefs.h + SRCS = cmu_us_kal_diphone.c cmu_us_kal.c \ + cmu_us_kal_lpc.c \ +- cmu_us_kal_res.c \ ++ cmu_us_kal_res-0.c \ ++ cmu_us_kal_res-1.c \ ++ cmu_us_kal_res-2.c \ ++ cmu_us_kal_res-3.c \ ++ cmu_us_kal_res-4.c \ + cmu_us_kal_residx.c + OBJS = $(SRCS:.c=.o) + SCM= +diff -ru flite-1.3-release/lang/Makefile flite-1.3-release+iPhone/lang/Makefile +--- flite-1.3-release/lang/Makefile 2005-01-18 16:27:34.000000000 +0000 ++++ flite-1.3-release+iPhone/lang/Makefile 2008-03-02 07:13:18.000000000 +0000 +@@ -36,7 +36,7 @@ + ########################################################################### + TOP=.. + DIRNAME=lang +-BUILD_DIRS = usenglish cmulex cmu_us_kal cmu_time_awb cmu_us_kal16 ++BUILD_DIRS = usenglish cmulex cmu_us_kal cmu_time_awb + ALL_DIRS= $(BUILD_DIRS) + FILES = Makefile $(SCM) $(SRCS) + diff --git a/data/flite/cmu_lex_data-0.c b/data/flite/cmu_lex_data-0.c new file mode 100644 index 000000000..dfe70754e --- /dev/null +++ b/data/flite/cmu_lex_data-0.c @@ -0,0 +1,3 @@ +const unsigned char cmu_lex_data[] = {0, +#include "cmu_lex_data_raw.c-0.c" +}; diff --git a/data/flite/cmu_lex_data-1.c b/data/flite/cmu_lex_data-1.c new file mode 100644 index 000000000..1f6e022e2 --- /dev/null +++ b/data/flite/cmu_lex_data-1.c @@ -0,0 +1,3 @@ +const unsigned char cmu_lex_data_[] = { +#include "cmu_lex_data_raw.c-1.c" +}; diff --git a/data/flite/const.diff b/data/flite/const.diff new file mode 100644 index 000000000..3549efa3d --- /dev/null +++ b/data/flite/const.diff @@ -0,0 +1,12 @@ +diff -r -u flite-1.3-release/tools/find_sts_main.c flite-1.3-release+iPhone/tools/find_sts_main.c +--- flite-1.3-release/tools/find_sts_main.c 2005-01-01 14:04:43.000000000 +0000 ++++ flite-1.3-release+iPhone/tools/find_sts_main.c 2008-03-02 04:32:49.000000000 +0000 +@@ -40,6 +40,8 @@ + #include + #include + #include ++#include ++#include + + /* To allow some normally const fields to manipulated during building */ + #define const diff --git a/data/flite/flite-1.3-release.tar.gz b/data/flite/flite-1.3-release.tar.gz new file mode 100644 index 000000000..3106df245 Binary files /dev/null and b/data/flite/flite-1.3-release.tar.gz differ diff --git a/data/flite/installlib.diff b/data/flite/installlib.diff new file mode 100644 index 000000000..37baabd3c --- /dev/null +++ b/data/flite/installlib.diff @@ -0,0 +1,11 @@ +diff -r -u flite-1.3-release/Makefile flite-1.3-release+iPhone/Makefile +--- flite-1.3-release/Makefile 2005-11-01 13:40:45.000000000 +0000 ++++ flite-1.3-release+iPhone/Makefile 2008-03-02 05:27:31.000000000 +0000 +@@ -109,7 +109,6 @@ + mkdir -p $(INSTALLLIBDIR) + mkdir -p $(INSTALLINCDIR) + $(INSTALL) -m 644 include/*.h $(INSTALLINCDIR) +- @ $(MAKE) -C lib --no-print-directory install + $(INSTALL) -m 755 bin/flite $(INSTALLBINDIR) + $(INSTALL) -m 755 bin/flite_time $(INSTALLBINDIR) + diff --git a/data/flite/make.sh b/data/flite/make.sh new file mode 100644 index 000000000..869d64da1 --- /dev/null +++ b/data/flite/make.sh @@ -0,0 +1,41 @@ +pkg:extract +cd * +pkg:patch +autoconf + +function pkg_:split { + size=$1 + data=$2 + half=$(($(wc -l "${data}" | cut -d ' ' -f 1) / size)) + + for ((i = 0; i != size; ++i)); do + tail -n +"$((half * i + 1))" "${data}" | head -n "${half}" >"${data}-$i.c" + done +} + +pkg: cp -a %/cmu_lex_data-{0,1}.c lang/cmulex +pkg_:split 2 lang/cmulex/cmu_lex_data_raw.c +pkg_:split 5 lang/cmu_us_kal/cmu_us_kal_res.c + +for ((i = 0; i != 5; ++i)); do + if [[ $i != 0 ]]; then + echo 'const unsigned char cmu_us_kal_res_'"${i}"'_[] = {' >>lang/cmu_us_kal/cmu_us_kal_res-"${i}".c + fi + + echo '#include "cmu_us_kal_res.c-'"${i}"'.c"' >>lang/cmu_us_kal/cmu_us_kal_res-"${i}".c + + if [[ $i != 4 ]]; then + echo '};' >>lang/cmu_us_kal/cmu_us_kal_res-"${i}".c + fi +done + +pkg:configure +mkdir -p build/arm-darwin/obj/lang/cmu_us_kal16 +touch build/arm-darwin/obj/lang/cmu_us_kal16/cmu_us_kal16_res.o + +mkdir -p build/arm-darwin/obj/lang/cmulex +mkdir -p build/arm-darwin/obj/lang/cmu_us_kal +touch build/arm-darwin/obj/lang/cmulex/cmu_lex_data.o +touch build/arm-darwin/obj/lang/cmu_us_kal/cmu_us_kal_res.o +make +make install prefix="${PKG_DEST}/usr" -- cgit v1.2.3