This moves the libespeak source (*.cpp) files to src/libespeak-ng and renames the C files (libespeak, espeak, speak) so they have a .c file extension.master
| libespeak_include_HEADERS = \ | libespeak_include_HEADERS = \ | ||||
| src/speak_lib.h | src/speak_lib.h | ||||
| common_FLAGS = | |||||
| common_FLAGS = -Isrc | |||||
| common_SOURCE = \ | common_SOURCE = \ | ||||
| src/compiledict.cpp \ | |||||
| src/dictionary.cpp \ | |||||
| src/intonation.cpp \ | |||||
| src/numbers.cpp \ | |||||
| src/readclause.cpp \ | |||||
| src/phonemelist.cpp \ | |||||
| src/setlengths.cpp \ | |||||
| src/synthdata.cpp \ | |||||
| src/synthesize.cpp \ | |||||
| src/synth_mbrola.cpp \ | |||||
| src/translate.cpp \ | |||||
| src/tr_languages.cpp \ | |||||
| src/voices.cpp \ | |||||
| src/wavegen.cpp | |||||
| src/libespeak-ng/compiledict.c \ | |||||
| src/libespeak-ng/dictionary.c \ | |||||
| src/libespeak-ng/intonation.c \ | |||||
| src/libespeak-ng/numbers.c \ | |||||
| src/libespeak-ng/readclause.c \ | |||||
| src/libespeak-ng/phonemelist.c \ | |||||
| src/libespeak-ng/setlengths.c \ | |||||
| src/libespeak-ng/synthdata.c \ | |||||
| src/libespeak-ng/synthesize.c \ | |||||
| src/libespeak-ng/synth_mbrola.c \ | |||||
| src/libespeak-ng/translate.c \ | |||||
| src/libespeak-ng/tr_languages.c \ | |||||
| src/libespeak-ng/voices.c \ | |||||
| src/libespeak-ng/wavegen.c | |||||
| libespeak_FLAGS = | libespeak_FLAGS = | ||||
| libespeak_SOURCE = \ | libespeak_SOURCE = \ | ||||
| src/speak_lib.cpp \ | |||||
| src/debug.cpp | |||||
| src/libespeak-ng/speak_lib.c \ | |||||
| src/libespeak-ng/debug.c | |||||
| espeakedit_SOURCE = \ | espeakedit_SOURCE = \ | ||||
| src/compiledata.cpp \ | src/compiledata.cpp \ | ||||
| if OPT_KLATT | if OPT_KLATT | ||||
| common_FLAGS += -DINCLUDE_KLATT | common_FLAGS += -DINCLUDE_KLATT | ||||
| common_SOURCE += src/klatt.cpp | |||||
| common_SOURCE += src/libespeak-ng/klatt.c | |||||
| endif | endif | ||||
| if OPT_MBROLA | if OPT_MBROLA | ||||
| common_FLAGS += -DINCLUDE_MBROLA | common_FLAGS += -DINCLUDE_MBROLA | ||||
| common_SOURCE += src/mbrowrap.cpp | |||||
| common_SOURCE += src/libespeak-ng/mbrowrap.c | |||||
| endif | endif | ||||
| if OPT_SONIC | if OPT_SONIC | ||||
| common_FLAGS += -DINCLUDE_SONIC | common_FLAGS += -DINCLUDE_SONIC | ||||
| common_SOURCE += src/sonic.cpp | |||||
| common_SOURCE += src/libespeak-ng/sonic.c | |||||
| endif | endif | ||||
| if OPT_ASYNC | if OPT_ASYNC | ||||
| libespeak_FLAGS += -DUSE_ASYNC | libespeak_FLAGS += -DUSE_ASYNC | ||||
| libespeak_SOURCE += \ | libespeak_SOURCE += \ | ||||
| src/espeak_command.cpp \ | |||||
| src/event.cpp \ | |||||
| src/fifo.cpp | |||||
| src/libespeak-ng/espeak_command.c \ | |||||
| src/libespeak-ng/event.c \ | |||||
| src/libespeak-ng/fifo.c | |||||
| endif | endif | ||||
| if AUDIO_RUNTIME | if AUDIO_RUNTIME | ||||
| wave_SOURCE = src/wave.cpp src/wave_pulse.cpp | |||||
| wave_SOURCE = src/libespeak-ng/wave.c src/libespeak-ng/wave_pulse.c | |||||
| wave_LIBS = -lpulse -lpulse-simple -lportaudio | wave_LIBS = -lpulse -lpulse-simple -lportaudio | ||||
| wave_FLAGS = -DUSE_PULSEAUDIO -DUSE_PORTAUDIO | wave_FLAGS = -DUSE_PULSEAUDIO -DUSE_PORTAUDIO | ||||
| else | else | ||||
| if AUDIO_PULSEAUDIO | if AUDIO_PULSEAUDIO | ||||
| wave_SOURCE = src/wave_pulse.cpp | |||||
| wave_SOURCE = src/libespeak-ng/wave_pulse.c | |||||
| wave_LIBS = -lpulse | wave_LIBS = -lpulse | ||||
| wave_FLAGS = -DUSE_PULSEAUDIO | wave_FLAGS = -DUSE_PULSEAUDIO | ||||
| else | else | ||||
| if AUDIO_PORTAUDIO | if AUDIO_PORTAUDIO | ||||
| wave_SOURCE = src/wave.cpp | |||||
| wave_SOURCE = src/libespeak-ng/wave.c | |||||
| wave_LIBS = -lportaudio | wave_LIBS = -lportaudio | ||||
| wave_FLAGS = -DUSE_PORTAUDIO | wave_FLAGS = -DUSE_PORTAUDIO | ||||
| else | else | ||||
| if AUDIO_SADA | if AUDIO_SADA | ||||
| wave_SOURCE = src/wave_sada.cpp | |||||
| wave_SOURCE = src/libespeak-ng/wave_sada.c | |||||
| wave_FLAGS = -DUSE_SADA | wave_FLAGS = -DUSE_SADA | ||||
| else | else | ||||
| wave_SOURCE = src/wave.cpp | |||||
| wave_SOURCE = src/libespeak-ng/wave.c | |||||
| endif | endif | ||||
| endif | endif | ||||
| endif | endif | ||||
| lib_LTLIBRARIES += src/libespeak.la | lib_LTLIBRARIES += src/libespeak.la | ||||
| src_libespeak_la_LDFLAGS = -version-info $(SHARED_VERSION) $(wave_LIBS) -lpthread | src_libespeak_la_LDFLAGS = -version-info $(SHARED_VERSION) $(wave_LIBS) -lpthread | ||||
| src_libespeak_la_CFLAGS = $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | |||||
| -fPIC -fvisibility=hidden -D LIBRARY \ | |||||
| -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | |||||
| src_libespeak_la_CXXFLAGS = $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | src_libespeak_la_CXXFLAGS = $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | ||||
| -fPIC -fvisibility=hidden -D LIBRARY \ | -fPIC -fvisibility=hidden -D LIBRARY \ | ||||
| -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | ||||
| bin_PROGRAMS += src/speak | bin_PROGRAMS += src/speak | ||||
| src_speak_LDFLAGS = $(wave_LIBS) -lpthread | |||||
| src_speak_CXXFLAGS = $(common_FLAGS) $(wave_FLAGS) | |||||
| src_speak_SOURCES = src/speak.cpp $(common_SOURCE) $(wave_SOURCE) | |||||
| src_speak_LDFLAGS = $(wave_LIBS) -lpthread -lm | |||||
| src_speak_CFLAGS = $(common_FLAGS) $(wave_FLAGS) | |||||
| src_speak_SOURCES = src/speak.c $(common_SOURCE) $(wave_SOURCE) | |||||
| bin_PROGRAMS += src/espeak | bin_PROGRAMS += src/espeak | ||||
| src_espeak_LDADD = src/libespeak.la | src_espeak_LDADD = src/libespeak.la | ||||
| src_espeak_SOURCES = src/espeak.cpp | |||||
| src_espeak_SOURCES = src/espeak.c | |||||
| bin_PROGRAMS += src/espeakedit | bin_PROGRAMS += src/espeakedit | ||||
| src_espeakedit_LDFLAGS = $(wave_LIBS) ${WX_LIBS} | src_espeakedit_LDFLAGS = $(wave_LIBS) ${WX_LIBS} | ||||
| src_espeakedit_CFLAGS = ${WX_CXXFLAGS} $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | |||||
| -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | |||||
| src_espeakedit_CXXFLAGS = ${WX_CXXFLAGS} $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | src_espeakedit_CXXFLAGS = ${WX_CXXFLAGS} $(common_FLAGS) $(libespeak_FLAGS) $(wave_FLAGS) \ | ||||
| -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | ||||
| src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE) | src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE) |
| dnl Program checks. | dnl Program checks. | ||||
| dnl ================================================================ | dnl ================================================================ | ||||
| AC_PROG_CC | |||||
| AC_PROG_CXX | AC_PROG_CXX | ||||
| AC_PROG_MAKE_SET | AC_PROG_MAKE_SET | ||||
| AC_PROG_LIBTOOL | AC_PROG_LIBTOOL |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2006 to 2013 by Jonathan Duddington * | * Copyright (C) 2006 to 2013 by Jonathan Duddington * | ||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * Copyright (C) 2015 Reece H. Dunn * | |||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * 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 * | * it under the terms of the GNU General Public License as published by * | ||||
| * <http://www.gnu.org/licenses/>. * | * <http://www.gnu.org/licenses/>. * | ||||
| ***************************************************************************/ | ***************************************************************************/ | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | #include <string.h> |
| { | { | ||||
| #endif | #endif | ||||
| enum t_espeak_type | |||||
| typedef enum | |||||
| { | { | ||||
| ET_TEXT, | ET_TEXT, | ||||
| ET_MARK, | ET_MARK, | ||||
| ET_VOICE_NAME, | ET_VOICE_NAME, | ||||
| ET_VOICE_SPEC, | ET_VOICE_SPEC, | ||||
| ET_TERMINATED_MSG | ET_TERMINATED_MSG | ||||
| }; | |||||
| } t_espeak_type; | |||||
| typedef struct | typedef struct | ||||
| { | { | ||||
| int relative; | int relative; | ||||
| } t_espeak_parameter; | } t_espeak_parameter; | ||||
| enum t_command_state | |||||
| typedef enum | |||||
| { | { | ||||
| CS_UNDEFINED, // The command has just been created | CS_UNDEFINED, // The command has just been created | ||||
| CS_PENDING, // stored in the fifo | CS_PENDING, // stored in the fifo | ||||
| CS_PROCESSED // processed | CS_PROCESSED // processed | ||||
| }; | |||||
| } t_command_state; | |||||
| typedef struct | typedef struct | ||||
| { | { | ||||
| enum t_espeak_type type; | |||||
| t_espeak_type type; | |||||
| t_command_state state; | t_command_state state; | ||||
| union command | union command |
| #include "options.h" | #include "options.h" | ||||
| extern char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes | extern char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes | ||||
| extern int __cdecl string_sorter(char **a, char **b); | |||||
| extern "C" int __cdecl string_sorter(char **a, char **b); | |||||
| //****************************************************************************************************** | //****************************************************************************************************** | ||||
| //****************************************************************************************************** | //****************************************************************************************************** | ||||
| extern int HashDictionary(const char *string); | |||||
| extern "C" int HashDictionary(const char *string); | |||||
| static int n_words; | static int n_words; | ||||
| struct wcount { | struct wcount { |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2007, Gilles Casse <[email protected]> * | * Copyright (C) 2007, Gilles Casse <[email protected]> * | ||||
| * Copyright (C) 2013 Reece H. Dunn * | |||||
| * Copyright (C) 2013-2015 Reece H. Dunn * | |||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * 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 * | * it under the terms of the GNU General Public License as published by * | ||||
| #include <semaphore.h> | #include <semaphore.h> | ||||
| #include <sys/time.h> | #include <sys/time.h> | ||||
| #include <errno.h> | #include <errno.h> | ||||
| #include <stdbool.h> | |||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| typedef struct t_node | typedef struct t_node | ||||
| { | { | ||||
| void* data; | void* data; | ||||
| t_node *next; | |||||
| struct t_node *next; | |||||
| } node; | } node; | ||||
| static node* head=NULL; | static node* head=NULL; | ||||
| //> | //> | ||||
| //<polling_thread | //<polling_thread | ||||
| static void* polling_thread(void*) | |||||
| static void* polling_thread(void*p) | |||||
| { | { | ||||
| ENTER("polling_thread"); | ENTER("polling_thread"); | ||||
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2007, Gilles Casse <[email protected]> * | * Copyright (C) 2007, Gilles Casse <[email protected]> * | ||||
| * Copyright (C) 2013 Reece H. Dunn * | |||||
| * Copyright (C) 2013-2015 Reece H. Dunn * | |||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * 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 * | * it under the terms of the GNU General Public License as published by * | ||||
| //> | //> | ||||
| //<say_thread | //<say_thread | ||||
| static void* say_thread(void*) | |||||
| static void* say_thread(void*p) | |||||
| { | { | ||||
| ENTER("say_thread"); | ENTER("say_thread"); | ||||
| typedef struct t_node | typedef struct t_node | ||||
| { | { | ||||
| t_espeak_command* data; | t_espeak_command* data; | ||||
| t_node *next; | |||||
| struct t_node *next; | |||||
| } node; | } node; | ||||
| static node* head=NULL; | static node* head=NULL; |
| * <http://www.gnu.org/licenses/>. * | * <http://www.gnu.org/licenses/>. * | ||||
| ***************************************************************************/ | ***************************************************************************/ | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <ctype.h> | #include <ctype.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> |
| ep->text_position = char_position & 0xffffff; | ep->text_position = char_position & 0xffffff; | ||||
| ep->length = char_position >> 24; | ep->length = char_position >> 24; | ||||
| time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||||
| ep->audio_position = int(time); | |||||
| time = ((double)(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||||
| ep->audio_position = (int)time; | |||||
| ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | ||||
| #ifdef DEBUG_ENABLED | #ifdef DEBUG_ENABLED |
| * <http://www.gnu.org/licenses/>. * | * <http://www.gnu.org/licenses/>. * | ||||
| ***************************************************************************/ | ***************************************************************************/ | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <ctype.h> | #include <ctype.h> |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2007, Gilles Casse <[email protected]> * | * Copyright (C) 2007, Gilles Casse <[email protected]> * | ||||
| * Copyright (C) 2015 by Reece H. Dunn * | |||||
| * based on AudioIO.cc (Audacity-1.2.4b) and wavegen.cpp * | * based on AudioIO.cc (Audacity-1.2.4b) and wavegen.cpp * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
| #ifdef USE_ASYNC | #ifdef USE_ASYNC | ||||
| // This source file is only used for asynchronious modes | // This source file is only used for asynchronious modes | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <string.h> | #include <string.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2007, Gilles Casse <[email protected]> * | * Copyright (C) 2007, Gilles Casse <[email protected]> * | ||||
| * Copyright (C) 2015 by Reece H. Dunn * | |||||
| * eSpeak driver for PulseAudio * | * eSpeak driver for PulseAudio * | ||||
| * based on the XMMS PulseAudio Plugin * | * based on the XMMS PulseAudio Plugin * | ||||
| * * | * * | ||||
| #ifdef USE_ASYNC | #ifdef USE_ASYNC | ||||
| // This source file is only used for asynchronious modes | // This source file is only used for asynchronious modes | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <string.h> | #include <string.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> |
| #include "speech.h" | #include "speech.h" | ||||
| #include <stdbool.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | #include <string.h> |
| #include "wx/datstrm.h" | #include "wx/datstrm.h" | ||||
| extern int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control); | |||||
| extern "C" int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control); | |||||
| extern unsigned char pk_shape1[]; | extern unsigned char pk_shape1[]; | ||||
| extern int pk_select; | extern int pk_select; |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington * | * Copyright (C) 2005 to 2007 by Jonathan Duddington * | ||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * Copyright (C) 2013 by Reece H. Dunn * | |||||
| * Copyright (C) 2013-2015 by Reece H. Dunn * | |||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * 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 * | * it under the terms of the GNU General Public License as published by * | ||||
| extern float polint(float xa[],float ya[],int n,float x); | extern float polint(float xa[],float ya[],int n,float x); | ||||
| extern void WavegenInit(int samplerate, int wavemult_fact); | extern void WavegenInit(int samplerate, int wavemult_fact); | ||||
| extern void WavegenInitPkData(int); // initialise envelope data | extern void WavegenInitPkData(int); // initialise envelope data | ||||
| extern void SetPitch(int length, unsigned char *env, int pitch1, int pitch2); | |||||
| extern "C" void SetPitch(int length, unsigned char *env, int pitch1, int pitch2); | |||||
| extern void SetSynthHtab(int length_mS, USHORT *ht1, int nh1, float pitch1, USHORT *ht2, int nh2, float pitch2); | extern void SetSynthHtab(int length_mS, USHORT *ht1, int nh1, float pitch1, USHORT *ht2, int nh2, float pitch2); | ||||
| extern void MakeWaveFile(int synthesis_method); | extern void MakeWaveFile(int synthesis_method); | ||||
| extern void MakeWaveBuf(int length, UCHAR *buf); | extern void MakeWaveBuf(int length, UCHAR *buf); |
| #ifdef INCLUDE_KLATT | #ifdef INCLUDE_KLATT | ||||
| extern void SetSynth_Klatt(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v, int control); | |||||
| extern int Wavegen_Klatt(int resume); | |||||
| extern "C" void SetSynth_Klatt(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v, int control); | |||||
| extern "C" int Wavegen_Klatt(int resume); | |||||
| extern void KlattReset(int control); | extern void KlattReset(int control); | ||||
| #endif | #endif | ||||
| extern void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v); | |||||
| extern int Wavegen(); | |||||
| extern "C" void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v); | |||||
| extern "C" int Wavegen(); | |||||
| extern void CloseWaveFile2(); | extern void CloseWaveFile2(); | ||||
| extern FILE *f_wave; | extern FILE *f_wave; | ||||