| @@ -44,6 +44,11 @@ install-data-hook: uninstall-hook | |||
| $(MKDIR) $(DESTDIR)$(DATADIR) | |||
| cp -prf espeak-data/* $(DESTDIR)$(DATADIR) | |||
| install-exec-hook: | |||
| cd $(DESTDIR)$(BINDIR) && rm -f espeak && $(LN_S) espeak-ng espeak | |||
| cd $(DESTDIR)$(BINDIR) && rm -f speak && $(LN_S) speak-ng speak | |||
| cd $(DESTDIR)$(LIBDIR) && rm -f libespeak.la && $(LN_S) libespeak-ng.la libespeak.la | |||
| clean-local: | |||
| cd src && rm -f *.o *~ && cd .. | |||
| @@ -84,14 +89,18 @@ docs: docs/index.html \ | |||
| ##### build targets: | |||
| libespeak_ng_includedir = $(includedir)/espeak-ng | |||
| libespeak_ng_include_HEADERS = \ | |||
| src/include/espeak-ng/speak_lib.h | |||
| espeak_includedir = $(includedir)/espeak | |||
| espeak_include_HEADERS = \ | |||
| src/include/espeak/speak_lib.h | |||
| espeak_ng_includedir = $(includedir)/espeak-ng | |||
| espeak_ng_include_HEADERS = \ | |||
| src/include/espeak-ng/espeak_ng.h | |||
| lib_LTLIBRARIES += src/libespeak-ng.la | |||
| src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lpthread -lm | |||
| src_libespeak_ng_la_CFLAGS = -Isrc/include/espeak-ng \ | |||
| src_libespeak_ng_la_CFLAGS = -Isrc/include \ | |||
| -fPIC -fvisibility=hidden -D _BSD_SOURCE -D _POSIX_C_SOURCE=200112L \ | |||
| -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" | |||
| src_libespeak_ng_la_SOURCES = \ | |||
| @@ -170,7 +179,7 @@ endif | |||
| src_speak_ng_LDADD = src/libespeak-ng.la | |||
| src_speak_ng_LDFLAGS = -static | |||
| src_speak_ng_CFLAGS = -Isrc/libespeak-ng -Isrc/include/espeak-ng -D _POSIX_C_SOURCE=200112L | |||
| src_speak_ng_CFLAGS = -Isrc/libespeak-ng -Isrc/include -D _POSIX_C_SOURCE=200112L | |||
| src_speak_ng_SOURCES = src/speak-ng.c | |||
| bin_PROGRAMS += src/espeak-ng | |||
| @@ -180,7 +189,7 @@ man1_MANS += src/espeak-ng.1 | |||
| endif | |||
| src_espeak_ng_LDADD = src/libespeak-ng.la | |||
| src_espeak_ng_CFLAGS = -Isrc/include/espeak-ng | |||
| src_espeak_ng_CFLAGS = -Isrc/include | |||
| src_espeak_ng_SOURCES = src/espeak-ng.c | |||
| ##### phoneme data: | |||
| @@ -17,6 +17,7 @@ dnl ================================================================ | |||
| AC_PROG_CC | |||
| AC_PROG_MAKE_SET | |||
| AC_PROG_LIBTOOL | |||
| AC_PROG_LN_S | |||
| dnl ================================================================ | |||
| dnl C99 compiler checks. | |||
| @@ -1,14 +1,12 @@ | |||
| # Adding or Improving a Language | |||
| # Table of contents | |||
| - [Language Code](#language-code) | |||
| - [Language Files](#language-files) | |||
| - [Voice File](#voice-file) | |||
| - [Phoneme Definition File](#phoneme-definition-file) | |||
| - [Dictionary Files](#dictionary-files) | |||
| - [Program Code](#program-code) | |||
| - [Compiling rules file for debugging](#compiling-rules-file-for-debugging) | |||
| - [Compiling Rules File for Debugging](#compiling-rules-file-for-debugging) | |||
| - [Improving a Language](#improving-a-language) | |||
| ---------- | |||
| @@ -166,7 +164,7 @@ required options in `SetTranslator()`. However, this may not be necessary | |||
| during testing because most of the options can also be set in the voice | |||
| file in espeak-data/voices (see [Voice Files](voices.md)). | |||
| ## Compiling rules file for debugging | |||
| ## Compiling Rules File for Debugging | |||
| When `espeak-ng` is invoked with `-X` parameter, it shows more detailed trace of | |||
| chosen language rules for pronunciation. This trace can show line numbers also, | |||
| @@ -174,26 +172,25 @@ if language is compiled with `--compile-debug` option. | |||
| To do this, go to `espeak-ng` project root folder, then: | |||
| cd dictsource/ | |||
| ../src/espeak-ng --compile-debug=en | |||
| cd dictsource | |||
| ../src/espeak-ng --compile-debug=en | |||
| When invoked in following way: | |||
| es -ven -X "Test." | |||
| espeak-ng -ven -X "Test." | |||
| It will show: | |||
| -------------- | |||
| Translate 'test' | |||
| 1 5965: t [t] | |||
| 1 2104: e [E] | |||
| 1 5725: s [s] | |||
| 1 5965: t [t] | |||
| t'Est | |||
| Translate 'test' | |||
| 1 5965: t [t] | |||
| 1 2104: e [E] | |||
| 1 5725: s [s] | |||
| 1 5965: t [t] | |||
| t'Est | |||
| ## Improving a Language | |||
| @@ -229,16 +229,16 @@ Phoneme Instructions may be included within conditional statements. | |||
| During the first phase of phoneme interpretation, an instruction which | |||
| causes a change to a different phoneme will terminate the instructions. | |||
| During the second phase, FMT() and WAV() instructions will terminate the | |||
| During the second phase, `FMT()` and `WAV()` instructions will terminate the | |||
| instructions. | |||
| ### length | |||
| length <length> | |||
| The relative length of the phoneme, typically about 140 for a short vowel and | |||
| from 200 to 300 for a long vowel or diphong. A `length()` instruction is | |||
| needed for vowels. It is optional for consonants. | |||
| The relative length of the phoneme in miliseconds. Typical values are about | |||
| 140 for a short vowel and from 200 to 300 for a long vowel or diphong. | |||
| A `length()` instruction is needed for vowels. It is optional for consonants. | |||
| ### ipa | |||
| @@ -263,6 +263,7 @@ the file to which it refers may or may not have one. | |||
| \<amplitude\> is optional. It is a percentage change to the amplitude of the | |||
| WAV file. So, `WAV(ufric/s, 50)` means: play file 'ufric/s.wav' at 50% amplitude. | |||
| Default value is 100. | |||
| ### FMT | |||
| @@ -270,10 +271,11 @@ WAV file. So, `WAV(ufric/s, 50)` means: play file 'ufric/s.wav' at 50% amplitude | |||
| \<vowel file\> is a path to a file (within `phsource/`) which defines how to | |||
| generate the sound (a vowel or voiced consonant) from a sequence of formant | |||
| values. Vowel files are made using the espeakedit program. | |||
| values. Vowel files are made using the `espeakedit` program which is not part | |||
| of this project. | |||
| \<amplitude\> is optional. It is a percentage change to the amplitude of the | |||
| sound which is synthesized from the `FMT()` instruction. | |||
| sound which is synthesized from the `FMT()` instruction. Default value is 100. | |||
| FMT(<vowel file>, <amplitude>) addWav(<wav file>, <amplitude>) | |||
| @@ -285,7 +287,7 @@ WAV file is mixed with the sound which is synthesized from the `FMT()` instructi | |||
| VowelStart(<vowel file>, <length adjust>) | |||
| This is used to modify the start of a vowel when it follows a sonorant consonant | |||
| This is used to modify the start of a vowel when it follows after a sonorant consonant | |||
| (such as `[l]` or `[j]`). It replaces the first frame of the \<vowel file\> which | |||
| is specified in a `FMT()` instruction by this \<vowel file\>, and adjusts the | |||
| length of the original by a signed value \<length adjust\>. The `VowelStart()` | |||
| @@ -310,14 +312,14 @@ The former takes precedence. | |||
| Vowelin <vowel transition data> | |||
| (C) Specifies the effects of this consonant on the formants of a following | |||
| vowel. See "vowel transitions", below. | |||
| vowel. See [vowel transitions](#vowel-transitions). | |||
| ### Vowelout | |||
| Vowelout <vowel transition data> | |||
| (C) Specifies the effects of this consonant on the formants of a preceding | |||
| vowel. See "vowel transitions", below. | |||
| vowel. See [vowel transitions](#vowel-transitions). | |||
| ### ChangePhoneme | |||
| @@ -356,7 +358,8 @@ Change to the specified phoneme if this syllable has "primary" stress. | |||
| IfNextVowelAppend(<phoneme>) | |||
| If the following phoneme is a vowel then this additional phoneme will be | |||
| inserted before it. | |||
| inserted before it. Usually it is short pause to distinguish two vowels from | |||
| diphthongs. | |||
| ### RETURN | |||
| @@ -544,9 +547,9 @@ True if this is the highest stressed syllable in the word. | |||
| There are three ways to produce sounds: | |||
| * Playing a WAV file, by using a `WAV()` instruction. This is used for unvoiced | |||
| consonants such as `[p]`, `[t]` and [s]`. | |||
| consonants such as `[p]`, `[t]` and `[s]`. | |||
| * Generating a wave from a sequence of formant parameters, by using a `FMT()` | |||
| instruction. This is used for vowels and also for sonorants such as ``[l]`, | |||
| instruction. This is used for vowels and also for sonorants such as `[l]`, | |||
| `[j]` and `[n]`. | |||
| * A mixture of these. A stored `WAV` file is mixed with a wave generated from | |||
| formant parameters. Use a `FMT()` instruction followed by `addWav()`. This is | |||
| @@ -562,7 +565,7 @@ is limited by the program. | |||
| len=<integer> | |||
| Nominal length of the transition in mS. If omitted a default value is used. | |||
| Nominal length of the transition in miliseconds. If omitted a default value is used. | |||
| rms=<integer> | |||
| @@ -587,7 +590,7 @@ a default value is used. | |||
| f3=<change> <amplitude> | |||
| \<change\>: Signed integer (Hz). Frequence change of f3, f4, and f5 formants. | |||
| \<change\>: Signed integer (Hz). Frequency change of f3, f4, and f5 formants. | |||
| \<amplitude\>: Amplitude of the f3, f4, and f5 formants at the end of the | |||
| transition. 100 = no change. | |||
| @@ -28,8 +28,8 @@ | |||
| #include <time.h> | |||
| #include <sys/stat.h> | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| extern void strncpy0(char *to, const char *from, int size); | |||
| extern int utf8_in(int *c, const char *buf); | |||
| @@ -19,7 +19,7 @@ | |||
| #ifndef ESPEAK_NG_H | |||
| #define ESPEAK_NG_H | |||
| #include "speak_lib.h" | |||
| #include <espeak/speak_lib.h> | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "error.h" | |||
| #include "speech.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "error.h" | |||
| #include "speech.h" | |||
| @@ -27,8 +27,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "error.h" | |||
| #include "phoneme.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <wctype.h> | |||
| #include <wchar.h> | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -26,7 +26,7 @@ | |||
| #include <string.h> | |||
| #include <malloc.h> | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include "error.h" | |||
| #include "speech.h" | |||
| @@ -20,8 +20,8 @@ | |||
| #include "config.h" | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include <stdlib.h> | |||
| #if HAVE_STDINT_H | |||
| @@ -18,7 +18,7 @@ | |||
| #include "config.h" | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include "speech.h" | |||
| #include "espeak_command.h" | |||
| @@ -22,7 +22,6 @@ | |||
| #ifndef PLATFORM_WINDOWS | |||
| #include <unistd.h> | |||
| #endif | |||
| #include "speak_lib.h" | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| @@ -32,9 +32,10 @@ | |||
| #include <errno.h> | |||
| #include <stdbool.h> | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include "event.h" | |||
| #include "wave.h" | |||
| @@ -39,8 +39,6 @@ | |||
| */ | |||
| #include "speak_lib.h" | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| { | |||
| @@ -33,7 +33,7 @@ | |||
| #include <sys/time.h> | |||
| #include <time.h> | |||
| #include "espeak_ng.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include "speech.h" | |||
| #include "fifo.h" | |||
| @@ -23,7 +23,6 @@ | |||
| // and run them asynchronously. | |||
| #include "espeak_command.h" | |||
| #include "speak_lib.h" | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| @@ -27,8 +27,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -33,8 +33,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "klatt.h" | |||
| @@ -31,8 +31,8 @@ | |||
| #include <wctype.h> | |||
| #include <wchar.h> | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -26,8 +26,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -27,8 +27,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -25,8 +25,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -41,8 +41,8 @@ | |||
| #include <unistd.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "phoneme.h" | |||
| #include "synthesize.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "error.h" | |||
| #include "speech.h" | |||
| @@ -29,8 +29,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -31,8 +31,8 @@ | |||
| #include <wctype.h> | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <wctype.h> | |||
| #include <wchar.h> | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -36,8 +36,8 @@ | |||
| #include "dirent.h" | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "phoneme.h" | |||
| #include "synthesize.h" | |||
| @@ -30,8 +30,8 @@ | |||
| #include <stdint.h> | |||
| #endif | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "speech.h" | |||
| #include "phoneme.h" | |||
| @@ -46,8 +46,8 @@ | |||
| #include <locale.h> | |||
| #include <sys/stat.h> | |||
| #include "espeak_ng.h" | |||
| #include "speak_lib.h" | |||
| #include <espeak-ng/espeak_ng.h> | |||
| #include <espeak/speak_lib.h> | |||
| #include "phoneme.h" | |||
| #include "synthesize.h" | |||