Browse Source

Documentation: fixes for phontab.md

master
Valdis Vitolins 9 years ago
parent
commit
f8bed08958

+ 15
- 6
Makefile.am View File

$(MKDIR) $(DESTDIR)$(DATADIR) $(MKDIR) $(DESTDIR)$(DATADIR)
cp -prf espeak-data/* $(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: clean-local:
cd src && rm -f *.o *~ && cd .. cd src && rm -f *.o *~ && cd ..




##### build targets: ##### 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 lib_LTLIBRARIES += src/libespeak-ng.la


src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lpthread -lm 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 \ -fPIC -fvisibility=hidden -D _BSD_SOURCE -D _POSIX_C_SOURCE=200112L \
-pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\"
src_libespeak_ng_la_SOURCES = \ src_libespeak_ng_la_SOURCES = \


src_speak_ng_LDADD = src/libespeak-ng.la src_speak_ng_LDADD = src/libespeak-ng.la
src_speak_ng_LDFLAGS = -static 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 src_speak_ng_SOURCES = src/speak-ng.c


bin_PROGRAMS += src/espeak-ng bin_PROGRAMS += src/espeak-ng
endif endif


src_espeak_ng_LDADD = src/libespeak-ng.la 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 src_espeak_ng_SOURCES = src/espeak-ng.c


##### phoneme data: ##### phoneme data:

+ 1
- 0
configure.ac View File

AC_PROG_CC AC_PROG_CC
AC_PROG_MAKE_SET AC_PROG_MAKE_SET
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
AC_PROG_LN_S


dnl ================================================================ dnl ================================================================
dnl C99 compiler checks. dnl C99 compiler checks.

+ 15
- 18
docs/add_language.md View File

# Adding or Improving a Language # Adding or Improving a Language


# Table of contents

- [Language Code](#language-code) - [Language Code](#language-code)
- [Language Files](#language-files) - [Language Files](#language-files)
- [Voice File](#voice-file) - [Voice File](#voice-file)
- [Phoneme Definition File](#phoneme-definition-file) - [Phoneme Definition File](#phoneme-definition-file)
- [Dictionary Files](#dictionary-files) - [Dictionary Files](#dictionary-files)
- [Program Code](#program-code) - [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) - [Improving a Language](#improving-a-language)


---------- ----------
during testing because most of the options can also be set in the voice during testing because most of the options can also be set in the voice
file in espeak-data/voices (see [Voice Files](voices.md)). 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 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, chosen language rules for pronunciation. This trace can show line numbers also,


To do this, go to `espeak-ng` project root folder, then: 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: When invoked in following way:


es -ven -X "Test."
espeak-ng -ven -X "Test."


It will show: 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 ## Improving a Language



+ 17
- 14
docs/phontab.md View File



During the first phase of phoneme interpretation, an instruction which During the first phase of phoneme interpretation, an instruction which
causes a change to a different phoneme will terminate the instructions. 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. instructions.


### length ### length


length <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 ### ipa




\<amplitude\> is optional. It is a percentage change to the amplitude of the \<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. WAV file. So, `WAV(ufric/s, 50)` means: play file 'ufric/s.wav' at 50% amplitude.
Default value is 100.


### FMT ### FMT




\<vowel file\> is a path to a file (within `phsource/`) which defines how to \<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 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 \<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>) FMT(<vowel file>, <amplitude>) addWav(<wav file>, <amplitude>)




VowelStart(<vowel file>, <length adjust>) 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 (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 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()` length of the original by a signed value \<length adjust\>. The `VowelStart()`
Vowelin <vowel transition data> Vowelin <vowel transition data>


(C) Specifies the effects of this consonant on the formants of a following (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


Vowelout <vowel transition data> Vowelout <vowel transition data>


(C) Specifies the effects of this consonant on the formants of a preceding (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 ### ChangePhoneme


IfNextVowelAppend(<phoneme>) IfNextVowelAppend(<phoneme>)


If the following phoneme is a vowel then this additional phoneme will be 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 ### RETURN


There are three ways to produce sounds: There are three ways to produce sounds:


* Playing a WAV file, by using a `WAV()` instruction. This is used for unvoiced * 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()` * 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]`. `[j]` and `[n]`.
* A mixture of these. A stored `WAV` file is mixed with a wave generated from * 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 formant parameters. Use a `FMT()` instruction followed by `addWav()`. This is


len=<integer> 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> rms=<integer>




f3=<change> <amplitude> 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 \<amplitude\>: Amplitude of the f3, f4, and f5 formants at the end of the
transition. 100 = no change. transition. 100 = no change.

+ 2
- 2
src/espeak-ng.c View File

#include <time.h> #include <time.h>
#include <sys/stat.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 void strncpy0(char *to, const char *from, int size);
extern int utf8_in(int *c, const char *buf); extern int utf8_in(int *c, const char *buf);

+ 1
- 1
src/include/espeak-ng/espeak_ng.h View File

#ifndef ESPEAK_NG_H #ifndef ESPEAK_NG_H
#define ESPEAK_NG_H #define ESPEAK_NG_H


#include "speak_lib.h"
#include <espeak/speak_lib.h>


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"

src/include/espeak-ng/speak_lib.h → src/include/espeak/speak_lib.h View File


+ 2
- 2
src/libespeak-ng/compiledata.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "speak_lib.h"
#include "espeak_ng.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "error.h" #include "error.h"
#include "speech.h" #include "speech.h"

+ 2
- 2
src/libespeak-ng/compiledict.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "error.h" #include "error.h"
#include "speech.h" #include "speech.h"

+ 2
- 2
src/libespeak-ng/compilembrola.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "speak_lib.h"
#include "espeak_ng.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "error.h" #include "error.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/dictionary.c View File

#include <wctype.h> #include <wctype.h>
#include <wchar.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 "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 1
- 1
src/libespeak-ng/error.c View File

#include <string.h> #include <string.h>
#include <malloc.h> #include <malloc.h>


#include "espeak_ng.h"
#include <espeak-ng/espeak_ng.h>


#include "error.h" #include "error.h"
#include "speech.h" #include "speech.h"

+ 2
- 2
src/libespeak-ng/espeak_api.c View File



#include "config.h" #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> #include <stdlib.h>
#if HAVE_STDINT_H #if HAVE_STDINT_H

+ 1
- 1
src/libespeak-ng/espeak_command.c View File



#include "config.h" #include "config.h"


#include "espeak_ng.h"
#include <espeak-ng/espeak_ng.h>


#include "speech.h" #include "speech.h"
#include "espeak_command.h" #include "espeak_command.h"

+ 0
- 1
src/libespeak-ng/espeak_command.h View File

#ifndef PLATFORM_WINDOWS #ifndef PLATFORM_WINDOWS
#include <unistd.h> #include <unistd.h>
#endif #endif
#include "speak_lib.h"


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"

+ 3
- 2
src/libespeak-ng/event.c View File

#include <errno.h> #include <errno.h>
#include <stdbool.h> #include <stdbool.h>


#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>

#include "speech.h" #include "speech.h"
#include "espeak_ng.h"
#include "speak_lib.h"
#include "event.h" #include "event.h"
#include "wave.h" #include "wave.h"



+ 0
- 2
src/libespeak-ng/event.h View File



*/ */


#include "speak_lib.h"

#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {

+ 1
- 1
src/libespeak-ng/fifo.c View File

#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>


#include "espeak_ng.h"
#include <espeak-ng/espeak_ng.h>


#include "speech.h" #include "speech.h"
#include "fifo.h" #include "fifo.h"

+ 0
- 1
src/libespeak-ng/fifo.h View File

// and run them asynchronously. // and run them asynchronously.


#include "espeak_command.h" #include "espeak_command.h"
#include "speak_lib.h"


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"

+ 2
- 2
src/libespeak-ng/intonation.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/klatt.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "klatt.h" #include "klatt.h"

+ 2
- 2
src/libespeak-ng/numbers.c View File

#include <wctype.h> #include <wctype.h>
#include <wchar.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 "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/phonemelist.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/readclause.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/setlengths.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/spect.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/speech.c View File

#include <unistd.h> #include <unistd.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "phoneme.h" #include "phoneme.h"
#include "synthesize.h" #include "synthesize.h"

+ 2
- 2
src/libespeak-ng/synth_mbrola.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/synthdata.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "error.h" #include "error.h"
#include "speech.h" #include "speech.h"

+ 2
- 2
src/libespeak-ng/synthesize.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/tr_languages.c View File



#include <wctype.h> #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 "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/translate.c View File

#include <wctype.h> #include <wctype.h>
#include <wchar.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 "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/libespeak-ng/voices.c View File

#include "dirent.h" #include "dirent.h"
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "phoneme.h" #include "phoneme.h"
#include "synthesize.h" #include "synthesize.h"

+ 2
- 2
src/libespeak-ng/wavegen.c View File

#include <stdint.h> #include <stdint.h>
#endif #endif


#include "espeak_ng.h"
#include "speak_lib.h"
#include <espeak-ng/espeak_ng.h>
#include <espeak/speak_lib.h>


#include "speech.h" #include "speech.h"
#include "phoneme.h" #include "phoneme.h"

+ 2
- 2
src/speak-ng.c View File

#include <locale.h> #include <locale.h>
#include <sys/stat.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 "phoneme.h"
#include "synthesize.h" #include "synthesize.h"

Loading…
Cancel
Save