#------------------------------------------------------------------------------ # Copyright (c) 2012-2019 The Eisfair Team, team(at)eisfair(dot)org # # Creation: 2012-05-30 jed # Last Update: $Id: $ # # !!! this is not a script but an step-by-step howto !!! #------------------------------------------------------------------------------ exit 1 # - needs the following environment to build: gcc v3.3.4 # - needs the following library packages to be build: # - libportaudio package v1.0.0. need to be installed (v19 20111121) # - portaudio-dev # - needs the following packages to be build: + base 2.8.2 ### RPM build info ### RPM package source: https://download.opensuse.org/repositories/openSUSE:/Factory/standard/src/espeak-1.48.04-6.5.src.rpm # if the RPM build process is used instead of the manual build process, # the following package can be ignored and aren't required for this # package: # - portaudio-dev # # RPM build command: # rpmbuild -ba --rmsource --nocheck ./SPECS/espeak.spec ### manual build info ### ### download wget http://sourceforge.net/projects/espeak/files/espeak/espeak-1.46/espeak-1.46.02-source.zip/download ### extract tar xvzf espeak-1.46.02-source.tgz ### configure software cd /soft/espeak-1.46.02-source/src # link against libportaudio v19 rm portaudio.h ln -s portaudio19.h portaudio.h # make files 1. make g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions speak.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions compiledict.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions dictionary.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions intonation.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions readclause.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions setlengths.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions numbers.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions synth_mbrola.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions synthdata.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions synthesize.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions translate.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions mbrowrap.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions tr_languages.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions voices.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions wavegen.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions phonemelist.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions klatt.cpp g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions sonic.cpp sonic.cpp: In function 'void scaleSamples(short int*, int, float)': sonic.cpp:75: warning: converting to 'int' from 'float' sonic.cpp: In function 'int addFloatSamplesToInputBuffer(sonicStreamStruct*, float*, int)': sonic.cpp:260: warning: converting to 'short int' from 'float' sonic.cpp: In function 'int adjustPitch(sonicStreamStruct*, int)': sonic.cpp:743: warning: converting to 'int' from 'float' sonic.cpp: In function 'int skipPitchPeriod(sonicStreamStruct*, short int*, float, int)': sonic.cpp:776: warning: converting to 'long int' from 'float' sonic.cpp:779: warning: converting to 'int' from 'float' sonic.cpp: In function 'int insertPitchPeriod(sonicStreamStruct*, short int*, float, int)': sonic.cpp:802: warning: converting to 'long int' from 'float' sonic.cpp:805: warning: converting to 'int' from 'float' g++ -o speak speak.o compiledict.o dictionary.o intonation.o readclause.o setlengths.o numbers.o synth_mbrola.o synthdata.o synthesize.o translate.o mbrowrap.o tr_languages.o voices.o wavegen.o phonemelist.o klatt.o sonic.o -lstdc++ -lportaudio -lpthread g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions speak_lib.cpp -o x_speak_lib.o In file included from speak_lib.cpp:43: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions compiledict.cpp -o x_compiledict.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions dictionary.cpp -o x_dictionary.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions intonation.cpp -o x_intonation.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions readclause.cpp -o x_readclause.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions setlengths.cpp -o x_setlengths.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions numbers.cpp -o x_numbers.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions synth_mbrola.cpp -o x_synth_mbrola.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions synthdata.cpp -o x_synthdata.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions synthesize.cpp -o x_synthesize.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions translate.cpp -o x_translate.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions mbrowrap.cpp -o x_mbrowrap.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions tr_languages.cpp -o x_tr_languages.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions voices.cpp -o x_voices.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions wavegen.cpp -o x_wavegen.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions phonemelist.cpp -o x_phonemelist.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions espeak_command.cpp -o x_espeak_command.o In file included from espeak_command.cpp:30: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions event.cpp -o x_event.o In file included from event.cpp:39: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions fifo.cpp -o x_fifo.o In file included from fifo.cpp:40: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions wave.cpp -o x_wave.o In file included from wave.cpp:39: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions debug.cpp -o x_debug.o In file included from debug.cpp:4: debug.h:19:21: warning: anonymous variadic macros were introduced in C99 g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions klatt.cpp -o x_klatt.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions sonic.cpp -o x_sonic.o sonic.cpp: In function 'void scaleSamples(short int*, int, float)': sonic.cpp:75: warning: converting to 'int' from 'float' sonic.cpp: In function 'int addFloatSamplesToInputBuffer(sonicStreamStruct*, float*, int)': sonic.cpp:260: warning: converting to 'short int' from 'float' sonic.cpp: In function 'int adjustPitch(sonicStreamStruct*, int)': sonic.cpp:743: warning: converting to 'int' from 'float' sonic.cpp: In function 'int skipPitchPeriod(sonicStreamStruct*, short int*, float, int)': sonic.cpp:776: warning: converting to 'long int' from 'float' sonic.cpp:779: warning: converting to 'int' from 'float' sonic.cpp: In function 'int insertPitchPeriod(sonicStreamStruct*, short int*, float, int)': sonic.cpp:802: warning: converting to 'long int' from 'float' sonic.cpp:805: warning: converting to 'int' from 'float' g++ -shared -Wl,-soname,libespeak.so.1 -o libespeak.so \ x_speak_lib.o x_compiledict.o x_dictionary.o x_intonation.o x_readclause.o x_setlengths.o x_numbers.o x_synth_mbrola.o x_synthdata.o x_synthesize.o x_translate.o x_mbrowrap.o x_tr_languages.o x_voices.o x_wavegen.o x_phonemelist.o x_espeak_command.o x_event.o x_fifo.o x_wave.o x_debug.o x_klatt.o x_sonic.o -lstdc++ -lportaudio -lpthread mv libespeak.so libespeak.so.1.1.46 /bin/ln -sf libespeak.so.1.1.46 libespeak.so.1 /bin/ln -sf libespeak.so.1 libespeak.so ar cqs libespeak.a x_speak_lib.o x_compiledict.o x_dictionary.o x_intonation.o x_readclause.o x_setlengths.o x_numbers.o x_synth_mbrola.o x_synthdata.o x_synthesize.o x_translate.o x_mbrowrap.o x_tr_languages.o x_voices.o x_wavegen.o x_phonemelist.o x_espeak_command.o x_event.o x_fifo.o x_wave.o x_debug.o x_klatt.o x_sonic.o g++ -O2 -DUSE_PORTAUDIO -D PATH_ESPEAK_DATA=\"/usr/share/espeak-data\" -Wall -pedantic -I. -c -fno-exceptions espeak.cpp g++ -o espeak espeak.o -lstdc++ -L . -lespeak ### strip files ### 2. strip -s espeak strip -s speak ### install files ### 3. make DESTDIR=/public/espeak-1.46.02 install cp speak /public/espeak-1.46.02/usr/bin/ ### package files ### 5. cd /public tar cvzf espeak-1.46.02-e1.tgz /public/espeak-1.46.02