| @@ -5,6 +5,7 @@ | |||
| # intermediate build output: | |||
| *.o | |||
| *.lo | |||
| # android build output: | |||
| @@ -34,24 +35,30 @@ INSTALL | |||
| NEWS | |||
| README | |||
| .deps/ | |||
| .libs/ | |||
| Makefile | |||
| Makefile.in | |||
| aclocal.m4 | |||
| autom4te.cache/ | |||
| config.* | |||
| configure | |||
| depcomp | |||
| install-sh | |||
| libtool | |||
| ltmain.sh | |||
| m4/ | |||
| missing | |||
| stamp-h1 | |||
| .dirstamp | |||
| # libraries | |||
| docs/speak_lib.h | |||
| libespeak.a | |||
| libespeak.la | |||
| libespeak.so* | |||
| # programs | |||
| @@ -1,15 +1,22 @@ | |||
| AUTOMAKE_OPTIONS = subdir-objects | |||
| PREFIX=@prefix@ | |||
| BINDIR=@bindir@ | |||
| INCDIR=@includedir@/espeak | |||
| LIBDIR=@libdir@ | |||
| DATADIR=$(PREFIX)/share/espeak-data | |||
| PLATFORM=big_endian | |||
| SHARED_VERSION=2:47:1 # = *.so.1.1.47 | |||
| MKDIR=mkdir -p | |||
| .PHONY: android all clean distclean espeak-phoneme-data | |||
| AM_CXXFLAGS = -Wall | |||
| EXTRA_DIST= | |||
| bin_PROGRAMS = | |||
| lib_LTLIBRARIES = | |||
| ##### ChangeLog: | |||
| ChangeLog: | |||
| @@ -25,24 +32,29 @@ EXTRA_DIST += ChangeLog | |||
| all: jni espeakdata apk-release | |||
| install: | |||
| cd src && make DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) BINDIR=$(BINDIR) INCDIR=$(INCDIR) LIBDIR=$(LIBDIR) install && cd .. | |||
| install -m 755 src/espeakedit $(DESTDIR)$(BINDIR) | |||
| uninstall-hook: | |||
| rm -rf $(DESTDIR)$(DATADIR) | |||
| clean: | |||
| install-data-hook: uninstall-hook | |||
| $(MKDIR) $(DESTDIR)$(DATADIR) | |||
| cp -prf espeak-data/* $(DESTDIR)$(DATADIR) | |||
| clean-local: | |||
| cd src && rm -f *.o *~ && cd .. | |||
| cd android && gradle clean | |||
| distclean: clean | |||
| cd src && rm -f libespeak.a libespeak.so.* speak espeak espeakedit && cd .. | |||
| cd platforms/$(PLATFORM) && rm -f espeak-phoneme-data && cd ../.. | |||
| rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest | |||
| cd espeak-data && rm -f *_dict && cd .. | |||
| distclean-local: | |||
| rm -rf espeak-data/phondata-manifest | |||
| rm -f espeak-data/*_dict | |||
| check: apk-check | |||
| ##### build targets: | |||
| libespeak_includedir = $(includedir)/espeak | |||
| libespeak_include_HEADERS = \ | |||
| src/speak_lib.h | |||
| common_SOURCE = \ | |||
| src/compiledict.cpp \ | |||
| src/dictionary.cpp \ | |||
| @@ -67,9 +79,6 @@ libespeak_SOURCE = \ | |||
| src/espeak_command.cpp \ | |||
| src/event.cpp \ | |||
| src/fifo.cpp \ | |||
| src/wave.cpp \ | |||
| src/wave_pulse.cpp \ | |||
| src/wave_sada.cpp \ | |||
| src/debug.cpp | |||
| espeakedit_SOURCE = \ | |||
| @@ -87,38 +96,61 @@ espeakedit_SOURCE = \ | |||
| src/voicedlg.cpp \ | |||
| src/vowelchart.cpp | |||
| if AUDIO_RUNTIME | |||
| wave_SOURCE = src/wave.cpp src/wave_pulse.cpp | |||
| wave_LIBS = -lpulse -lpulse-simple -lportaudio | |||
| wave_FLAGS = -DUSE_PULSEAUDIO -DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_PULSEAUDIO | |||
| wave_SOURCE = src/wave_pulse.cpp | |||
| wave_LIBS = -lpulse | |||
| wave_FLAGS = -DUSE_PULSEAUDIO | |||
| else | |||
| if AUDIO_PORTAUDIO | |||
| wave_SOURCE = src/wave.cpp | |||
| wave_LIBS = -lportaudio | |||
| wave_FLAGS = -DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_SADA | |||
| wave_SOURCE = wave_sada.cpp | |||
| wave_FLAGS = -DUSE_SADA | |||
| else | |||
| wave_SOURCE = src/wave.cpp | |||
| endif | |||
| endif | |||
| endif | |||
| endif | |||
| docs/speak_lib.h: src/speak_lib.h | |||
| cp $< $@ | |||
| src/libespeak.a: $(common_SOURCE) $(libespeak_SOURCE) | |||
| cd src && make libespeak.a && cd .. | |||
| lib_LTLIBRARIES += src/libespeak.la | |||
| src/libespeak.so: $(common_SOURCE) $(libespeak_SOURCE) | |||
| cd src && make libespeak.so && cd .. | |||
| src_libespeak_la_LDFLAGS = -version-info $(SHARED_VERSION) $(wave_LIBS) -lpthread | |||
| src_libespeak_la_CXXFLAGS = $(wave_FLAGS) \ | |||
| -fpic -fvisibility=hidden -D LIBRARY \ | |||
| -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | |||
| src_libespeak_la_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(wave_SOURCE) | |||
| src/speak: $(common_SOURCE) src/speak.cpp | |||
| cd src && make speak && cd .. | |||
| bin_PROGRAMS += src/speak | |||
| src/espeak: src/libespeak.so src/espeak.cpp | |||
| cd src && make espeak && cd .. | |||
| src_speak_LDFLAGS = $(wave_LIBS) -lpthread | |||
| src_speak_CXXFLAGS = $(wave_FLAGS) | |||
| src_speak_SOURCES = src/speak.cpp $(common_SOURCE) $(wave_SOURCE) | |||
| src/espeakedit: $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) | |||
| cd src && make espeakedit && cd .. | |||
| bin_PROGRAMS += src/espeak | |||
| espeak-phoneme-data: | |||
| cd platforms/$(PLATFORM) && make PREFIX=$(PREFIX) && cd ../.. | |||
| src_espeak_LDADD = src/libespeak.la | |||
| src_espeak_SOURCES = src/espeak.cpp | |||
| espeak-data/dictsource/dir.stamp: dictsource/* | |||
| rm -rf espeak-data/dictsource | |||
| ./shadowdir $(PWD)/dictsource $(PWD)/espeak-data/dictsource | |||
| touch espeak-data/dictsource/dir.stamp | |||
| bin_PROGRAMS += src/espeakedit | |||
| espeak-data/phsource/dir.stamp: phsource/ph_* phsource/phonemes phsource/intonation | |||
| rm -rf espeak-data/phsource | |||
| ./shadowdir $(PWD)/phsource $(PWD)/espeak-data/phsource | |||
| touch espeak-data/phsource/dir.stamp | |||
| src_espeakedit_LDFLAGS = $(wave_LIBS) ${WX_LIBS} | |||
| src_espeakedit_CXXFLAGS = ${WX_CXXFLAGS} $(wave_FLAGS) \ | |||
| -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | |||
| src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE) | |||
| espeak-data/phontab: src/espeakedit espeak-data/dictsource/dir.stamp espeak-data/phsource/dir.stamp | |||
| espeak-data/phontab: src/espeakedit | |||
| ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile | |||
| ##### android targets: | |||
| @@ -1,5 +1,15 @@ | |||
| # Android Port of eSpeak Text-to-Speech | |||
| - [Prerequisites](#prerequisites) | |||
| - [Building with Gradle](#building-with-gradle) | |||
| - [Building with Eclipse](#building-with-eclipse) | |||
| - [Building with Ant](#building-with-ant) | |||
| - [Signing the APK](#signing-the-apk) | |||
| - [Installing the APK](#installing-the-apk) | |||
| - [Enabling eSpeak on the Device](#enabling-espeak-on-the-device) | |||
| ---------- | |||
| This branch contains the files needed to build espeak on the android platform. | |||
| It is derived from the eyes-free project. | |||
| @@ -1,5 +1,5 @@ | |||
| AC_PREREQ([2.63]) | |||
| AC_INIT([eSpeak], [1.46], [https://github.com/rhdunn/espeak/issues], [espeak], [https://github.com/rhdunn/espeak]) | |||
| AC_INIT([eSpeak], [1.47], [https://github.com/rhdunn/espeak/issues], [espeak], [https://github.com/rhdunn/espeak]) | |||
| AM_INIT_AUTOMAKE() | |||
| m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES]) | |||
| @@ -91,6 +91,16 @@ dnl ================================================================ | |||
| dnl Audio checks. | |||
| dnl ================================================================ | |||
| AC_ARG_WITH([sada], | |||
| [AS_HELP_STRING([--with-sada], [use the Solaris SADA audio API @<:@default=no@:>@])], | |||
| []) | |||
| if test "$with_sada" = "yes" ; then | |||
| have_sada=yes | |||
| else | |||
| have_sada=no | |||
| fi | |||
| if test "$have_portaudio" = 18 -o "$have_portaudio" = 19 ; then | |||
| if test "$have_pulseaudio" = yes ; then | |||
| PKG_CHECK_MODULES(PULSEAUDIO_SIMPLE, [libpulse-simple >= 0.9], | |||
| @@ -106,6 +116,8 @@ if test "$have_portaudio" = 18 -o "$have_portaudio" = 19 ; then | |||
| fi | |||
| elif test "$have_pulseaudio" = yes ; then | |||
| AUDIO=pulseaudio | |||
| elif test "$have_sada" = yes ; then | |||
| AUDIO=sada | |||
| else | |||
| AUDIO=disabled | |||
| fi | |||
| @@ -115,8 +127,6 @@ AC_SUBST(AUDIO) | |||
| AM_CONDITIONAL(AUDIO_RUNTIME, [test x"$AUDIO" = xruntime]) | |||
| AM_CONDITIONAL(AUDIO_PULSEAUDIO, [test x"$AUDIO" = xpulseaudio]) | |||
| AM_CONDITIONAL(AUDIO_PORTAUDIO, [test x"$AUDIO" = xportaudio]) | |||
| AM_CONDITIONAL(AUDIO_PORTAUDIO0, [test x"$AUDIO" = xportaudio0]) | |||
| AM_CONDITIONAL(AUDIO_PORTAUDIO2, [test x"$AUDIO" = xportaudio2]) | |||
| AM_CONDITIONAL(AUDIO_SADA, [test x"$AUDIO" = xsada]) | |||
| dnl ================================================================ | |||
| @@ -139,7 +149,7 @@ dnl ================================================================ | |||
| dnl Generate output. | |||
| dnl ================================================================ | |||
| AC_CONFIG_FILES([Makefile src/Makefile]) | |||
| AC_CONFIG_FILES([Makefile]) | |||
| AC_OUTPUT | |||
| AC_MSG_NOTICE([ | |||
| @@ -154,5 +164,6 @@ AC_MSG_NOTICE([ | |||
| wxWidgets: ${WX_VERSION} | |||
| pulseaudio: ${have_pulseaudio} | |||
| portaudio: ${have_portaudio} | |||
| sada: ${have_sada} | |||
| audio configuration: ${AUDIO} | |||
| ]) | |||
| @@ -1,22 +0,0 @@ | |||
| #!/usr/bin/python | |||
| # | |||
| # Copyright (C) 2011 Reece H. Dunn | |||
| # Licence: GPLv3 | |||
| # | |||
| # A script for shadowing a directory tree to another (equivalent to lndir). | |||
| import sys | |||
| import os | |||
| def shadow(src, dst): | |||
| if not os.path.exists(dst): | |||
| os.makedirs(dst) | |||
| for fn in os.listdir(src): | |||
| srcpath = os.path.join(src, fn) | |||
| dstpath = os.path.join(dst, fn) | |||
| if os.path.isdir(srcpath): | |||
| shadow(srcpath, dstpath) | |||
| else: | |||
| os.symlink(srcpath, dstpath) | |||
| shadow(sys.argv[1], sys.argv[2]) | |||
| @@ -1,150 +0,0 @@ | |||
| PREFIX=@prefix@ | |||
| BINDIR=@bindir@ | |||
| INCDIR=@includedir@/espeak | |||
| LIBDIR=@libdir@ | |||
| DATADIR=${PREFIX}/share/espeak-data | |||
| # remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM) | |||
| RELEASE = 1.47 | |||
| SPEAK = speak | |||
| ESPEAK = espeak | |||
| ESPEAKEDIT = espeakedit | |||
| LIBESPEAK = libespeak.so | |||
| STATIC_LIBESPEAK = libespeak.a | |||
| LIB_VERSION = 1 | |||
| LIBTAG = $(LIB_VERSION).$(RELEASE) | |||
| # Use SONAME_OPT=-Wl,h, on Solaris | |||
| SONAME_OPT=-Wl,-soname, | |||
| # Use EXTRA_LIBS=-lm on Solaris | |||
| EXTRA_LIBS = | |||
| INSTALL = install | |||
| LN_SF = /bin/ln -sf | |||
| MKDIR = mkdir -p | |||
| # AUDIO='runtime' uses pulseaudio if it is running, else uses portaudio | |||
| if AUDIO_RUNTIME | |||
| WAVE=wave.cpp wave_pulse.cpp | |||
| LIB_AUDIO=-lpulse -lpulse-simple -lportaudio | |||
| USE_AUDIO=-DUSE_PULSEAUDIO -DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_PULSEAUDIO | |||
| WAVE=wave_pulse.cpp | |||
| LIB_AUDIO=-lpulse | |||
| USE_AUDIO=-DUSE_PULSEAUDIO | |||
| else | |||
| if AUDIO_PORTAUDIO | |||
| WAVE=wave.cpp | |||
| LIB_AUDIO=-lportaudio | |||
| USE_AUDIO=-DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_PORTAUDIO0 | |||
| WAVE=wave.cpp | |||
| LIB_AUDIO=/usr/lib/libportaudio.so.0 | |||
| USE_AUDIO=-DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_PORTAUDIO2 | |||
| WAVE=wave.cpp | |||
| LIB_AUDIO=/usr/lib/libportaudio.so.2 | |||
| USE_AUDIO=-DUSE_PORTAUDIO | |||
| else | |||
| if AUDIO_SADA | |||
| WAVE=wave_sada.cpp | |||
| USE_AUDIO=-DUSE_SADA | |||
| else | |||
| WAVE=wave.cpp | |||
| endif | |||
| endif | |||
| endif | |||
| endif | |||
| endif | |||
| endif | |||
| CXXFLAGS ?= -O2 -Wall | |||
| CPPFLAGS = -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | |||
| .cpp.o: | |||
| $(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -I. $(CPPFLAGS) $< | |||
| e_%.o: %.cpp | |||
| $(CXX) -c $(CXXFLAGS) $(espeakedit_CXXFLAGS) $(USE_AUDIO) $(CPPFLAGS) -I. $< -o e_$*.o | |||
| x_%.o: %.cpp | |||
| $(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -fpic -fvisibility=hidden \ | |||
| -I. -D LIBRARY $(CPPFLAGS) $< -o x_$*.o | |||
| all: $(SPEAK) $(LIBESPEAK) $(STATIC_LIBESPEAK) $(ESPEAK) $(ESPEAKEDIT) | |||
| common_SOURCE = compiledict.cpp dictionary.cpp intonation.cpp \ | |||
| klatt.cpp mbrowrap.cpp numbers.cpp readclause.cpp \ | |||
| phonemelist.cpp setlengths.cpp sonic.cpp \ | |||
| synthdata.cpp synthesize.cpp synth_mbrola.cpp \ | |||
| translate.cpp tr_languages.cpp voices.cpp wavegen.cpp | |||
| speak_SOURCE = speak.cpp $(common_SOURCE) | |||
| speak_OBJS = ${speak_SOURCE:%.cpp=%.o} | |||
| speak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS) | |||
| $(SPEAK): $(speak_OBJS) | |||
| $(CXX) $(LDFLAGS) -o $@ $(speak_OBJS) $(speak_LIBS) | |||
| espeak_SOURCE = espeak.cpp | |||
| espeak_OBJS = ${espeak_SOURCE:%.cpp=%.o} | |||
| espeak_LIBS = -lstdc++ -L . -lespeak | |||
| $(ESPEAK): $(espeak_OBJS) $(LIB_NAME) | |||
| $(CXX) $(LDFLAGS) -o $@ $(espeak_OBJS) $(espeak_LIBS) | |||
| libespeak_SOURCE = speak_lib.cpp $(common_SOURCE) \ | |||
| espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp | |||
| libespeak_OBJS = ${libespeak_SOURCE:%.cpp=x_%.o} | |||
| libespeak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread | |||
| $(LIBESPEAK): $(libespeak_OBJS) | |||
| $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIBESPEAK).$(LIB_VERSION) -o $@ \ | |||
| $(libespeak_OBJS) $(libespeak_LIBS) | |||
| mv $(LIBESPEAK) $(LIBESPEAK).$(LIBTAG) | |||
| $(LN_SF) $(LIBESPEAK).$(LIBTAG) $(LIBESPEAK).$(LIB_VERSION) | |||
| $(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(LIBESPEAK) | |||
| $(STATIC_LIBESPEAK): $(libespeak_OBJS) | |||
| $(AR) cqs $(STATIC_LIBESPEAK) $(libespeak_OBJS) | |||
| espeakedit_SOURCE = $(common_SOURCE) compiledata.cpp debug.cpp espeakedit.cpp \ | |||
| event.cpp extras.cpp fifo.cpp formantdlg.cpp \ | |||
| menus.cpp options.cpp prosodydisplay.cpp \ | |||
| espeak_command.cpp speak_lib.cpp spect.cpp \ | |||
| spectdisplay.cpp spectseq.cpp \ | |||
| transldlg.cpp voicedlg.cpp vowelchart.cpp $(WAVE) | |||
| espeakedit_OBJS=${espeakedit_SOURCE:%.cpp=e_%.o} | |||
| espeakedit_LIBS=-lstdc++ $(LIB_AUDIO) | |||
| espeakedit_CXXFLAGS = ${WX_CXXFLAGS} -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | |||
| $(ESPEAKEDIT): $(espeakedit_OBJS) | |||
| $(CXX) $(LDFLAGS) -o $@ $(espeakedit_OBJS) $(espeakedit_LIBS) ${WX_LIBS} | |||
| clean: | |||
| rm -f *.o *.a *~ | |||
| distclean: clean | |||
| rm -f $(SPEAK) | |||
| rm -f $(ESPEAK) | |||
| rm -f $(LIBESPEAK)* | |||
| rm -f $(STATIC_LIBESPEAK) | |||
| rm -f $(ESPEAKEDIT) | |||
| install: | |||
| rm -rf $(DESTDIR)$(DATADIR) | |||
| $(MKDIR) $(DESTDIR)$(BINDIR) | |||
| $(MKDIR) $(DESTDIR)$(LIBDIR) | |||
| $(MKDIR) $(DESTDIR)$(INCDIR) | |||
| $(MKDIR) $(DESTDIR)$(DATADIR) | |||
| $(INSTALL) -m 755 $(ESPEAK) $(DESTDIR)$(BINDIR) | |||
| $(INSTALL) -m 755 $(LIBESPEAK).$(LIBTAG) $(DESTDIR)$(LIBDIR) | |||
| $(INSTALL) -m 755 $(STATIC_LIBESPEAK) $(DESTDIR)$(LIBDIR) | |||
| $(LN_SF) $(LIBESPEAK).$(LIBTAG) $(DESTDIR)$(LIBDIR)/$(LIBESPEAK).$(LIB_VERSION) | |||
| $(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBESPEAK) | |||
| $(INSTALL) -pm 644 speak_lib.h $(DESTDIR)$(INCDIR) | |||
| cp -prf ../espeak-data/* $(DESTDIR)$(DATADIR) | |||
| @@ -167,12 +167,12 @@ void ConfigInit(bool use_defaults) | |||
| basedir = wxString(path_base,wxConvLocal); // this is only used to set defaults for other paths if they are not in the config file | |||
| if (use_defaults) | |||
| { | |||
| path_spectload = basedir + _T("/phsource"); | |||
| path_spectload2 = basedir + _T("/phsource"); | |||
| path_spectload = basedir + _T("/../phsource"); | |||
| path_spectload2 = basedir + _T("/../phsource"); | |||
| path_pitches = basedir + _T("/pitch"); | |||
| path_phsource = basedir + _T("/phsource"); | |||
| path_phsource = basedir + _T("/../phsource"); | |||
| path_phfile = path_phsource + _T("/phonemes"); | |||
| path_dictsource = basedir + _T("/dictsource"); | |||
| path_dictsource = basedir + _T("/../dictsource"); | |||
| path_modifiervoice = basedir; | |||
| path_dir1 = basedir; | |||
| } | |||