Browse Source

Merge pull request #809 from dmrlsn/master

svox: add package
compile tested on ar71xx
lilik-openwrt-22.03
champtar 10 years ago
parent
commit
dce4a15829
12 changed files with 889 additions and 0 deletions
  1. +60
    -0
      sound/svox/Makefile
  2. +113
    -0
      sound/svox/patches/0001-autoconf-building-of-library-using-libtool.patch
  3. +51
    -0
      sound/svox/patches/0002-gitignore-for-autotools-files.patch
  4. +399
    -0
      sound/svox/patches/0003-pico2wave-Convert-text-to-.wav-using-svox-text-to-sp.patch
  5. +59
    -0
      sound/svox/patches/0004-add-header-files.patch
  6. +32
    -0
      sound/svox/patches/0005-Install-lang-files.patch
  7. +40
    -0
      sound/svox/patches/0006-Set-picolangdir.patch
  8. +26
    -0
      sound/svox/patches/0008-64bits.patch
  9. +21
    -0
      sound/svox/patches/0009-Fix-link-order.patch
  10. +30
    -0
      sound/svox/patches/0010-platform.patch
  11. +12
    -0
      sound/svox/patches/0011-subdir.patch
  12. +46
    -0
      sound/svox/patches/0012-no-headers.patch

+ 60
- 0
sound/svox/Makefile View File

@ -0,0 +1,60 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=svox
PKG_VERSION:=1.0+git20130326
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/non-free/s/svox
PKG_MD5SUM:=df4bf610ff4273b420e80ff64af93130
PKG_MAINTAINER:=Alessandro Di Marco <dmr@ethzero.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/svox
TITLE:=SVOX PicoTTS text-to-speech engine
SECTION:=sound
CATEGORY:=Sound
URL:=https://android.googlesource.com/platform/external/svox/
DEPENDS:=+libpopt
endef
define Package/svox/description
SVOX is an embedded speech technology company founded in 2000 and
headquartered in Zurich, Switzerland. SVOX was acquired by Nuance
Communications in 2011. Company's products included Automated Speech
Recognition (ASR), Text-to-Speech (TTS) and Speech Dialog systems,
with customers mostly being manufacturers and system integrators in
automotive and mobile device industries.
SVOX TTS technology is characterized by natural and clear sound as well
as unique polyglot capability - the same voice can speak multiple
languages like a native speaker.
endef
define Build/Prepare
$(call Build/Prepare/Default)
mv $(PKG_BUILD_DIR)/pico/* $(PKG_BUILD_DIR)
endef
define Build/Configure
$(call Build/Configure/Default)
endef
define Package/svox/install
$(call Build/Install/Default)
endef
$(eval $(call BuildPackage,svox))

+ 113
- 0
sound/svox/patches/0001-autoconf-building-of-library-using-libtool.patch View File

@ -0,0 +1,113 @@
From 9fe1aa475b2667446b081623abc5c6f6083a76e6 Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Sat, 24 Oct 2009 17:03:37 +0200
Subject: [PATCH 1/7] autoconf building of library (using libtool)
---
pico/Makefile.am | 36 ++++++++++++++++++++++++++++++++++++
pico/autogen.sh | 36 ++++++++++++++++++++++++++++++++++++
pico/configure.in | 16 ++++++++++++++++
3 files changed, 88 insertions(+), 0 deletions(-)
create mode 100644 pico/Makefile.am
create mode 100755 pico/autogen.sh
create mode 100644 pico/configure.in
--- /dev/null
+++ b/pico/Makefile.am
@@ -0,0 +1,36 @@
+## Makefile.am -- Process this file with automake to produce Makefile.in
+
+ACLOCAL_AMFLAGS = -I m4
+
+lib_LTLIBRARIES = libttspico.la
+libttspico_la_SOURCES = \
+ lib/picoacph.c \
+ lib/picoapi.c \
+ lib/picobase.c \
+ lib/picocep.c \
+ lib/picoctrl.c \
+ lib/picodata.c \
+ lib/picodbg.c \
+ lib/picoextapi.c \
+ lib/picofftsg.c \
+ lib/picokdbg.c \
+ lib/picokdt.c \
+ lib/picokfst.c \
+ lib/picoklex.c \
+ lib/picoknow.c \
+ lib/picokpdf.c \
+ lib/picokpr.c \
+ lib/picoktab.c \
+ lib/picoos.c \
+ lib/picopal.c \
+ lib/picopam.c \
+ lib/picopr.c \
+ lib/picorsrc.c \
+ lib/picosa.c \
+ lib/picosig.c \
+ lib/picosig2.c \
+ lib/picospho.c \
+ lib/picotok.c \
+ lib/picotrns.c \
+ lib/picowa.c
+
--- /dev/null
+++ b/pico/autogen.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+#created by aclocal
+rm -rf autom4te.cache
+rm -f aclocal.m4
+
+#created by libtoolize
+rm -rf m4
+mkdir m4
+rm -f ltmain.sh
+
+#created by autoconf
+rm -f configure
+
+#created by automake
+rm -f install-sh missing depcomp Makefile.in config.guess config.sub
+rm -f INSTALL COPYING compile
+
+#created by ./configure
+rm -rf .deps
+rm -f Makefile config.log config.status libtool
+
+if [ "$1" = "clean" ]; then
+ exit
+fi
+
+IPATHS="-I lib"
+
+libtoolize
+aclocal $IPATHS
+automake --add-missing
+autoconf $IPATHS
+
+rm -rf autom4te.cache
+
+echo "Now run ./configure and then make."
+exit 0
+
--- /dev/null
+++ b/pico/configure.in
@@ -0,0 +1,16 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+
+AC_INIT([svox], [1.0], [math.parent@gmail.com])
+
+AM_INIT_AUTOMAKE([1.9 foreign])
+
+AC_PROG_CC
+LT_INIT
+AC_PROG_LIBTOOL
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+
+AC_CONFIG_MACRO_DIR([m4])

+ 51
- 0
sound/svox/patches/0002-gitignore-for-autotools-files.patch View File

@ -0,0 +1,51 @@
From b56b0a4bdf3e11271caab744f532cb055c517b51 Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Sat, 24 Oct 2009 17:12:42 +0200
Subject: [PATCH 2/7] gitignore for autotools files
---
pico/.gitignore | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
create mode 100644 pico/.gitignore
diff --git a/pico/.gitignore b/pico/.gitignore
new file mode 100644
index 0000000..4235569
--- /dev/null
+++ b/pico/.gitignore
@@ -0,0 +1,32 @@
+#created by aclocal
+autom4te.cache
+aclocal.m4
+
+#created by libtoolize
+m4
+ltmain.sh
+
+#created by autoconf
+configure
+
+#created by automake
+install-sh
+missing
+depcomp
+Makefile.in
+config.guess
+config.sub
+
+#created by ./configure
+.deps
+Makefile
+config.log
+config.status
+libtool
+
+#created by make
+*.o
+*.lo
+.libs
+libttspico.la
+
--
1.7.1

+ 399
- 0
sound/svox/patches/0003-pico2wave-Convert-text-to-.wav-using-svox-text-to-sp.patch View File

@ -0,0 +1,399 @@
From 8bec80dccc9f4fe147a500486813f4e89a0d56d8 Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Sun, 25 Oct 2009 15:19:01 +0100
Subject: [PATCH 3/7] pico2wave: Convert text to .wav using svox text-to-speech system.
---
pico/.gitignore | 1 +
pico/Makefile.am | 7 +
pico/bin/pico2wave.c | 341 ++++++++++++++++++++++++++++++++++++++++++++++++++
pico/configure.in | 3 +
4 files changed, 352 insertions(+), 0 deletions(-)
create mode 100644 pico/bin/pico2wave.c
diff --git a/pico/.gitignore b/pico/.gitignore
index 4235569..a110298 100644
--- a/pico/.gitignore
+++ b/pico/.gitignore
@@ -29,4 +29,5 @@ libtool
*.lo
.libs
libttspico.la
+pico2wave
diff --git a/pico/Makefile.am b/pico/Makefile.am
index 6d8a10c..0d9472d 100644
--- a/pico/Makefile.am
+++ b/pico/Makefile.am
@@ -34,3 +34,10 @@ libttspico_la_SOURCES = \
lib/picotrns.c \
lib/picowa.c
+bin_PROGRAMS = pico2wave
+pico2wave_SOURCES = \
+ bin/pico2wave.c
+pico2wave_LDADD = \
+ libttspico.la -lm -lpopt
+pico2wave_CFLAGS = -Wall -I lib
+
diff --git a/pico/bin/pico2wave.c b/pico/bin/pico2wave.c
new file mode 100644
index 0000000..0c035a7
--- /dev/null
+++ b/pico/bin/pico2wave.c
@@ -0,0 +1,341 @@
+/* pico2wave.c
+
+ * Copyright (C) 2009 Mathieu Parent <math.parent@gmail.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Convert text to .wav using svox text-to-speech system.
+ *
+ */
+
+
+#include <popt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <picoapi.h>
+#include <picoapid.h>
+#include <picoos.h>
+
+
+/* adaptation layer defines */
+#define PICO_MEM_SIZE 2500000
+#define DummyLen 100000000
+
+/* string constants */
+#define MAX_OUTBUF_SIZE 128
+const char * PICO_LINGWARE_PATH = "./lang/";
+const char * PICO_VOICE_NAME = "PicoVoice";
+
+/* supported voices
+ Pico does not seperately specify the voice and locale. */
+const char * picoSupportedLangIso3[] = { "eng", "eng", "deu", "spa", "fra", "ita" };
+const char * picoSupportedCountryIso3[] = { "USA", "GBR", "DEU", "ESP", "FRA", "ITA" };
+const char * picoSupportedLang[] = { "en-US", "en-GB", "de-DE", "es-ES", "fr-FR", "it-IT" };
+const char * picoInternalLang[] = { "en-US", "en-GB", "de-DE", "es-ES", "fr-FR", "it-IT" };
+const char * picoInternalTaLingware[] = { "en-US_ta.bin", "en-GB_ta.bin", "de-DE_ta.bin", "es-ES_ta.bin", "fr-FR_ta.bin", "it-IT_ta.bin" };
+const char * picoInternalSgLingware[] = { "en-US_lh0_sg.bin", "en-GB_kh0_sg.bin", "de-DE_gl0_sg.bin", "es-ES_zl0_sg.bin", "fr-FR_nk0_sg.bin", "it-IT_cm0_sg.bin" };
+const char * picoInternalUtppLingware[] = { "en-US_utpp.bin", "en-GB_utpp.bin", "de-DE_utpp.bin", "es-ES_utpp.bin", "fr-FR_utpp.bin", "it-IT_utpp.bin" };
+const int picoNumSupportedVocs = 6;
+
+/* adapation layer global variables */
+void * picoMemArea = NULL;
+pico_System picoSystem = NULL;
+pico_Resource picoTaResource = NULL;
+pico_Resource picoSgResource = NULL;
+pico_Resource picoUtppResource = NULL;
+pico_Engine picoEngine = NULL;
+pico_Char * picoTaFileName = NULL;
+pico_Char * picoSgFileName = NULL;
+pico_Char * picoUtppFileName = NULL;
+pico_Char * picoTaResourceName = NULL;
+pico_Char * picoSgResourceName = NULL;
+pico_Char * picoUtppResourceName = NULL;
+int picoSynthAbort = 0;
+
+
+int main(int argc, const char *argv[]) {
+ char * wavefile = NULL;
+ char * lang = "en-US";
+ int langIndex = -1, langIndexTmp = -1;
+ char * text;
+ int8_t * buffer;
+ size_t bufferSize = 256;
+
+ /* Parsing options */
+ poptContext optCon; /* context for parsing command-line options */
+ int opt; /* used for argument parsing */
+
+ struct poptOption optionsTable[] = {
+ { "wave", 'w', POPT_ARG_STRING, &wavefile, 0,
+ "Write output to this WAV file (extension SHOULD be .wav)", "filename.wav" },
+ { "lang", 'l', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &lang, 0,
+ "Language", "lang" },
+ POPT_AUTOHELP
+ POPT_TABLEEND
+ };
+ optCon = poptGetContext(NULL, argc, argv, optionsTable, POPT_CONTEXT_POSIXMEHARDER);
+ poptSetOtherOptionHelp(optCon, "<words>");
+
+ /* Reporting about invalid extra options */
+ while ((opt = poptGetNextOpt(optCon)) != -1) {
+ switch (opt) {
+ default:
+ fprintf(stderr, "Invalid option %s: %s\n",
+ poptBadOption(optCon, 0), poptStrerror(opt));
+ poptPrintHelp(optCon, stderr, 0);
+ exit(1);
+ }
+ }
+
+ /* Mandatory option: --wave */
+ if(!wavefile) {
+ fprintf(stderr, "Mandatory option: %s\n\n",
+ "--wave=filename.wav");
+ poptPrintHelp(optCon, stderr, 0);
+ exit(1);
+ }
+ /* option: --lang */
+ for(langIndexTmp =0; langIndexTmp<picoNumSupportedVocs; langIndexTmp++) {
+ if(!strcmp(picoSupportedLang[langIndexTmp], lang)) {
+ langIndex = langIndexTmp;
+ break;
+ }
+ }
+ if(langIndex == -1) {
+ fprintf(stderr, "Unknown language: %s\nValid languages:\n",
+ lang);
+ for(langIndexTmp =0; langIndexTmp<picoNumSupportedVocs; langIndexTmp++) {
+ fprintf(stderr, "%s\n", picoSupportedLang[langIndexTmp]);
+ }
+ lang = "en-US";
+ fprintf(stderr, "\n");
+ poptPrintHelp(optCon, stderr, 0);
+ exit(1);
+ }
+
+ /* Remaining argument is <words> */
+ const char **extra_argv;
+ extra_argv = poptGetArgs(optCon);
+ if(extra_argv) {
+ text = (char *) &(*extra_argv)[0];
+ } else {
+ //TODO: stdin not supported yet.
+ fprintf(stderr, "Missing argument: %s\n\n",
+ "<words>");
+ poptPrintHelp(optCon, stderr, 0);
+ exit(1);
+ }
+
+ poptFreeContext(optCon);
+
+ buffer = malloc( bufferSize );
+
+ int ret, getstatus;
+ pico_Char * inp = NULL;
+ pico_Char * local_text = NULL;
+ short outbuf[MAX_OUTBUF_SIZE/2];
+ pico_Int16 bytes_sent, bytes_recv, text_remaining, out_data_type;
+ pico_Retstring outMessage;
+
+ picoSynthAbort = 0;
+
+ picoMemArea = malloc( PICO_MEM_SIZE );
+ if((ret = pico_initialize( picoMemArea, PICO_MEM_SIZE, &picoSystem ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot initialize pico (%i): %s\n", ret, outMessage);
+ goto terminate;
+ }
+
+ /* Load the text analysis Lingware resource file. */
+ picoTaFileName = (pico_Char *) malloc( PICO_MAX_DATAPATH_NAME_SIZE + PICO_MAX_FILE_NAME_SIZE );
+ strcpy((char *) picoTaFileName, PICO_LINGWARE_PATH);
+ strcat((char *) picoTaFileName, (const char *) picoInternalTaLingware[langIndex]);
+ if((ret = pico_loadResource( picoSystem, picoTaFileName, &picoTaResource ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot load text analysis resource file (%i): %s\n", ret, outMessage);
+ goto unloadTaResource;
+ }
+
+ /* Load the signal generation Lingware resource file. */
+ picoSgFileName = (pico_Char *) malloc( PICO_MAX_DATAPATH_NAME_SIZE + PICO_MAX_FILE_NAME_SIZE );
+ strcpy((char *) picoSgFileName, PICO_LINGWARE_PATH);
+ strcat((char *) picoSgFileName, (const char *) picoInternalSgLingware[langIndex]);
+ if((ret = pico_loadResource( picoSystem, picoSgFileName, &picoSgResource ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot load signal generation Lingware resource file (%i): %s\n", ret, outMessage);
+ goto unloadSgResource;
+ }
+
+ /* Load the utpp Lingware resource file if exists - NOTE: this file is optional
+ and is currently not used. Loading is only attempted for future compatibility.
+ If this file is not present the loading will still succeed. //
+ picoUtppFileName = (pico_Char *) malloc( PICO_MAX_DATAPATH_NAME_SIZE + PICO_MAX_FILE_NAME_SIZE );
+ strcpy((char *) picoUtppFileName, PICO_LINGWARE_PATH);
+ strcat((char *) picoUtppFileName, (const char *) picoInternalUtppLingware[langIndex]);
+ ret = pico_loadResource( picoSystem, picoUtppFileName, &picoUtppResource );
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ printf("pico_loadResource: %i: %s\n", ret, outMessage);
+ */
+
+ /* Get the text analysis resource name. */
+ picoTaResourceName = (pico_Char *) malloc( PICO_MAX_RESOURCE_NAME_SIZE );
+ if((ret = pico_getResourceName( picoSystem, picoTaResource, (char *) picoTaResourceName ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot get the text analysis resource name (%i): %s\n", ret, outMessage);
+ goto unloadUtppResource;
+ }
+
+ /* Get the signal generation resource name. */
+ picoSgResourceName = (pico_Char *) malloc( PICO_MAX_RESOURCE_NAME_SIZE );
+ if((ret = pico_getResourceName( picoSystem, picoSgResource, (char *) picoSgResourceName ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot get the signal generation resource name (%i): %s\n", ret, outMessage);
+ goto unloadUtppResource;
+ }
+
+
+ /* Create a voice definition. */
+ if((ret = pico_createVoiceDefinition( picoSystem, (const pico_Char *) PICO_VOICE_NAME ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot create voice definition (%i): %s\n", ret, outMessage);
+ goto unloadUtppResource;
+ }
+
+ /* Add the text analysis resource to the voice. */
+ if((ret = pico_addResourceToVoiceDefinition( picoSystem, (const pico_Char *) PICO_VOICE_NAME, picoTaResourceName ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot add the text analysis resource to the voice (%i): %s\n", ret, outMessage);
+ goto unloadUtppResource;
+ }
+
+ /* Add the signal generation resource to the voice. */
+ if((ret = pico_addResourceToVoiceDefinition( picoSystem, (const pico_Char *) PICO_VOICE_NAME, picoSgResourceName ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot add the signal generation resource to the voice (%i): %s\n", ret, outMessage);
+ goto unloadUtppResource;
+ }
+
+ /* Create a new Pico engine. */
+ if((ret = pico_newEngine( picoSystem, (const pico_Char *) PICO_VOICE_NAME, &picoEngine ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot create a new pico engine (%i): %s\n", ret, outMessage);
+ goto disposeEngine;
+ }
+
+ local_text = (pico_Char *) text ;
+ text_remaining = strlen((const char *) local_text) + 1;
+
+ inp = (pico_Char *) local_text;
+
+ size_t bufused = 0;
+
+ picoos_Common common = (picoos_Common) pico_sysGetCommon(picoSystem);
+
+ picoos_SDFile sdOutFile = NULL;
+
+ picoos_bool done = TRUE;
+ if(TRUE != (done = picoos_sdfOpenOut(common, &sdOutFile,
+ (picoos_char *) wavefile, SAMPLE_FREQ_16KHZ, PICOOS_ENC_LIN)))
+ {
+ fprintf(stderr, "Cannot open output wave file\n");
+ ret = 1;
+ goto disposeEngine;
+ }
+
+ /* synthesis loop */
+ while (text_remaining) {
+ /* Feed the text into the engine. */
+ if((ret = pico_putTextUtf8( picoEngine, inp, text_remaining, &bytes_sent ))) {
+ pico_getSystemStatusMessage(picoSystem, ret, outMessage);
+ fprintf(stderr, "Cannot put Text (%i): %s\n", ret, outMessage);
+ goto disposeEngine;
+ }
+
+ text_remaining -= bytes_sent;
+ inp += bytes_sent;
+
+ do {
+ if (picoSynthAbort) {
+ goto disposeEngine;
+ }
+ /* Retrieve the samples and add them to the buffer. */
+ getstatus = pico_getData( picoEngine, (void *) outbuf,
+ MAX_OUTBUF_SIZE, &bytes_recv, &out_data_type );
+ if((getstatus !=PICO_STEP_BUSY) && (getstatus !=PICO_STEP_IDLE)){
+ pico_getSystemStatusMessage(picoSystem, getstatus, outMessage);
+ fprintf(stderr, "Cannot get Data (%i): %s\n", getstatus, outMessage);
+ goto disposeEngine;
+ }
+ if (bytes_recv) {
+ if ((bufused + bytes_recv) <= bufferSize) {
+ memcpy(buffer+bufused, (int8_t *) outbuf, bytes_recv);
+ bufused += bytes_recv;
+ } else {
+ done = picoos_sdfPutSamples(
+ sdOutFile,
+ bufused / 2,
+ (picoos_int16*) (buffer));
+ bufused = 0;
+ memcpy(buffer, (int8_t *) outbuf, bytes_recv);
+ bufused += bytes_recv;
+ }
+ }
+ } while (PICO_STEP_BUSY == getstatus);
+ /* This chunk of synthesis is finished; pass the remaining samples. */
+ if (!picoSynthAbort) {
+ done = picoos_sdfPutSamples(
+ sdOutFile,
+ bufused / 2,
+ (picoos_int16*) (buffer));
+ }
+ picoSynthAbort = 0;
+ }
+
+ if(TRUE != (done = picoos_sdfCloseOut(common, &sdOutFile)))
+ {
+ fprintf(stderr, "Cannot close output wave file\n");
+ ret = 1;
+ goto disposeEngine;
+ }
+
+disposeEngine:
+ if (picoEngine) {
+ pico_disposeEngine( picoSystem, &picoEngine );
+ pico_releaseVoiceDefinition( picoSystem, (pico_Char *) PICO_VOICE_NAME );
+ picoEngine = NULL;
+ }
+unloadUtppResource:
+ if (picoUtppResource) {
+ pico_unloadResource( picoSystem, &picoUtppResource );
+ picoUtppResource = NULL;
+ }
+unloadSgResource:
+ if (picoSgResource) {
+ pico_unloadResource( picoSystem, &picoSgResource );
+ picoSgResource = NULL;
+ }
+unloadTaResource:
+ if (picoTaResource) {
+ pico_unloadResource( picoSystem, &picoTaResource );
+ picoTaResource = NULL;
+ }
+terminate:
+ if (picoSystem) {
+ pico_terminate(&picoSystem);
+ picoSystem = NULL;
+ }
+ exit(ret);
+}
+
diff --git a/pico/configure.in b/pico/configure.in
index 0afb56d..349eb1d 100644
--- a/pico/configure.in
+++ b/pico/configure.in
@@ -14,3 +14,6 @@ AC_CONFIG_FILES([Makefile])
AC_OUTPUT
AC_CONFIG_MACRO_DIR([m4])
+
+AC_CHECK_LIB(popt, poptGetContext)
+
--
1.7.1

+ 59
- 0
sound/svox/patches/0004-add-header-files.patch View File

@ -0,0 +1,59 @@
From 0866cb3f7cfe4b8bae1edc8d0dbf18c85e9ca74f Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Tue, 27 Oct 2009 18:29:45 +0100
Subject: [PATCH 4/7] add header files
---
pico/Makefile.am | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/pico/Makefile.am b/pico/Makefile.am
index 0d9472d..9151042 100644
--- a/pico/Makefile.am
+++ b/pico/Makefile.am
@@ -34,6 +34,42 @@ libttspico_la_SOURCES = \
lib/picotrns.c \
lib/picowa.c
+libttspico_ladir = $(includedir)
+libttspico_la_HEADERS = \
+ lib/picoacph.h \
+ lib/picoapid.h \
+ lib/picoapi.h \
+ lib/picobase.h \
+ lib/picocep.h \
+ lib/picoctrl.h \
+ lib/picodata.h \
+ lib/picodbg.h \
+ lib/picodefs.h \
+ lib/picodsp.h \
+ lib/picoextapi.h \
+ lib/picofftsg.h \
+ lib/picokdbg.h \
+ lib/picokdt.h \
+ lib/picokfst.h \
+ lib/picoklex.h \
+ lib/picoknow.h \
+ lib/picokpdf.h \
+ lib/picokpr.h \
+ lib/picoktab.h \
+ lib/picoos.h \
+ lib/picopal.h \
+ lib/picopam.h \
+ lib/picopltf.h \
+ lib/picopr.h \
+ lib/picorsrc.h \
+ lib/picosa.h \
+ lib/picosig2.h \
+ lib/picosig.h \
+ lib/picospho.h \
+ lib/picotok.h \
+ lib/picotrns.h \
+ lib/picowa.h
+
bin_PROGRAMS = pico2wave
pico2wave_SOURCES = \
bin/pico2wave.c
--
1.7.1

+ 32
- 0
sound/svox/patches/0005-Install-lang-files.patch View File

@ -0,0 +1,32 @@
From 486b9f924bdf38f5f213feed2631060b44024c11 Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Tue, 27 Oct 2009 23:06:46 +0100
Subject: [PATCH 5/7] Install lang files
---
pico/Makefile.am | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/pico/Makefile.am b/pico/Makefile.am
index 9151042..8898050 100644
--- a/pico/Makefile.am
+++ b/pico/Makefile.am
@@ -70,6 +70,15 @@ libttspico_la_HEADERS = \
lib/picotrns.h \
lib/picowa.h
+picolangdir = $(datadir)/pico/lang
+picolang_DATA = \
+ lang/de-DE*.bin \
+ lang/en-GB*.bin \
+ lang/en-US*.bin \
+ lang/es-ES*.bin \
+ lang/fr-FR*.bin \
+ lang/it-IT*.bin
+
bin_PROGRAMS = pico2wave
pico2wave_SOURCES = \
bin/pico2wave.c
--
1.7.1

+ 40
- 0
sound/svox/patches/0006-Set-picolangdir.patch View File

@ -0,0 +1,40 @@
From 0102d423b79de7af982c8d4619d816f95a9b9278 Mon Sep 17 00:00:00 2001
From: Mathieu Parent <math.parent@gmail.com>
Date: Thu, 29 Oct 2009 23:55:19 +0100
Subject: [PATCH 6/7] Set picolangdir
---
pico/Makefile.am | 2 +-
pico/bin/pico2wave.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/pico/Makefile.am b/pico/Makefile.am
index 8898050..a19c42a 100644
--- a/pico/Makefile.am
+++ b/pico/Makefile.am
@@ -84,5 +84,5 @@ pico2wave_SOURCES = \
bin/pico2wave.c
pico2wave_LDADD = \
libttspico.la -lm -lpopt
-pico2wave_CFLAGS = -Wall -I lib
+pico2wave_CFLAGS = -Wall -Dpicolangdir=\"$(picolangdir)\" -I lib
diff --git a/pico/bin/pico2wave.c b/pico/bin/pico2wave.c
index 0c035a7..ec7ab79 100644
--- a/pico/bin/pico2wave.c
+++ b/pico/bin/pico2wave.c
@@ -35,7 +35,11 @@
/* string constants */
#define MAX_OUTBUF_SIZE 128
+#ifdef picolangdir
+const char * PICO_LINGWARE_PATH = picolangdir "/";
+#else
const char * PICO_LINGWARE_PATH = "./lang/";
+#endif
const char * PICO_VOICE_NAME = "PicoVoice";
/* supported voices
--
1.7.1

+ 26
- 0
sound/svox/patches/0008-64bits.patch View File

@ -0,0 +1,26 @@
Description: fix execution on 64bit archs
Bug: http://code.google.com/p/android/issues/detail?id=12224
Author: Samuel Thibault <sthibault@debian.org>
--- svox/pico/lib/picoapi.c.original 2010-10-25 19:06:57.000000000 +0200
+++ svox/pico/lib/picoapi.c 2010-10-25 19:07:18.000000000 +0200
@@ -90,7 +90,7 @@
status = PICO_ERR_NULLPTR_ACCESS;
} else {
byte_ptr_t rest_mem;
- picoos_uint32 rest_mem_size;
+ picoos_objsize_t rest_mem_size;
pico_System sys;
picoos_MemoryManager sysMM;
picoos_ExceptionManager sysEM;
--- svox/pico/lib/picosig2.c.original 2010-10-26 00:17:18.000000000 +0200
+++ svox/pico/lib/picosig2.c 2010-10-26 00:17:19.000000000 +0200
@@ -568,7 +568,7 @@
for (nI = 1; nI < m1; nI++) {
XXr[nI] = c1[nI] << shift;
}
- i = sizeof(picoos_int32) * (PICODSP_FFTSIZE + 1 - m1);
+ i = sizeof(picoos_int32) * (PICODSP_FFTSIZE - m1);
picoos_mem_set(XXr + m1, 0, i);
dfct_nmf(m4, XXr); /* DFCT directly in fixed point */

+ 21
- 0
sound/svox/patches/0009-Fix-link-order.patch View File

@ -0,0 +1,21 @@
Index: svox-1.0+git20130326/pico/Makefile.am
===================================================================
--- svox-1.0+git20130326.orig/pico/Makefile.am 2013-11-12 12:37:05.939979854 -0500
+++ svox-1.0+git20130326/pico/Makefile.am 2013-11-12 13:00:52.336945041 -0500
@@ -70,6 +70,8 @@
lib/picotrns.h \
lib/picowa.h
+libttspico_la_LIBADD = -lm
+
picolangdir = $(datadir)/pico/lang
picolang_DATA = \
lang/de-DE*.bin \
@@ -83,6 +85,6 @@
pico2wave_SOURCES = \
bin/pico2wave.c
pico2wave_LDADD = \
- libttspico.la -lm -lpopt
+ libttspico.la -lpopt
pico2wave_CFLAGS = -Wall -Dpicolangdir=\"$(picolangdir)\" -I lib

+ 30
- 0
sound/svox/patches/0010-platform.patch View File

@ -0,0 +1,30 @@
--- a/pico/lib/picopltf.h
+++ b/pico/lib/picopltf.h
@@ -39,6 +39,8 @@
#define PICO_MacOSX 5 /* Macintosh OS X */
#define PICO_Linux 7 /* Linux */
+#define PICO_GENERIC 99 /* Generic */
+
/* * definition of current platform ***/
#if !defined(PICO_PLATFORM)
#if defined(_WIN32)
@@ -48,7 +50,7 @@
#elif defined(linux) || defined(__linux__) || defined(__linux)
#define PICO_PLATFORM PICO_Linux
#else
-#error PICO_PLATFORM not defined
+#define PICO_PLATFORM PICO_GENERIC
#endif
#endif /* !defined(PICO_PLATFORM) */
@@ -64,7 +66,8 @@
#define PICO_PLATFORM_STRING "UnknownPlatform"
#endif
-#if (PICO_PLATFORM == PICO_MacOSX)
+#include <endian.h>
+#if __BYTE_ORDER == __BIG_ENDIAN
#define PICO_ENDIANNESS ENDIANNESS_BIG
#else
#define PICO_ENDIANNESS ENDIANNESS_LITTLE

+ 12
- 0
sound/svox/patches/0011-subdir.patch View File

@ -0,0 +1,12 @@
diff -urN a/pico/configure.in b/pico/configure.in
--- a/pico/configure.in 2015-01-21 18:59:39.604452795 +0100
+++ b/pico/configure.in 2015-01-21 19:00:53.288777298 +0100
@@ -4,7 +4,7 @@
AC_INIT([svox], [1.0], [math.parent@gmail.com])
-AM_INIT_AUTOMAKE([1.9 foreign])
+AM_INIT_AUTOMAKE([1.9 foreign subdir-objects])
AC_PROG_CC
LT_INIT

+ 46
- 0
sound/svox/patches/0012-no-headers.patch View File

@ -0,0 +1,46 @@
diff -urN a/pico/Makefile.am b/pico/Makefile.am
--- a/pico/Makefile.am 2015-01-22 01:33:21.470895431 +0100
+++ b/pico/Makefile.am 2015-01-22 01:36:03.042228475 +0100
@@ -34,42 +34,6 @@
lib/picotrns.c \
lib/picowa.c
-libttspico_ladir = $(includedir)
-libttspico_la_HEADERS = \
- lib/picoacph.h \
- lib/picoapid.h \
- lib/picoapi.h \
- lib/picobase.h \
- lib/picocep.h \
- lib/picoctrl.h \
- lib/picodata.h \
- lib/picodbg.h \
- lib/picodefs.h \
- lib/picodsp.h \
- lib/picoextapi.h \
- lib/picofftsg.h \
- lib/picokdbg.h \
- lib/picokdt.h \
- lib/picokfst.h \
- lib/picoklex.h \
- lib/picoknow.h \
- lib/picokpdf.h \
- lib/picokpr.h \
- lib/picoktab.h \
- lib/picoos.h \
- lib/picopal.h \
- lib/picopam.h \
- lib/picopltf.h \
- lib/picopr.h \
- lib/picorsrc.h \
- lib/picosa.h \
- lib/picosig2.h \
- lib/picosig.h \
- lib/picospho.h \
- lib/picotok.h \
- lib/picotrns.h \
- lib/picowa.h
-
libttspico_la_LIBADD = -lm
picolangdir = $(datadir)/pico/lang

Loading…
Cancel
Save