[1.48.05]

Updated eSpeak makefile to inherit compiler options.

Language Greek (el): recognize polytonic spelling.

Language changes: en, gu, it, pt, ta, ur.
Language phoneme changes: de [r],  hi [a:] [r].

Added phoneme table for Arabic.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@376 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2014-05-23 12:44:05 +00:00
parent 9efa9c2100
commit 24379e026d
45 changed files with 2728 additions and 1149 deletions
+21 -9
View File
@@ -73,15 +73,15 @@ static int number_control;
typedef struct {
const char *name;
int flags;
int accent_flags; // bit 0, say before the letter name
} ACCENTS;
// these are tokens to look up in the *_list file.
static ACCENTS accents_tab[] = {
{"_lig", 1},
{"_smc", 1}, // smallcap
{"_tur", 1}, // turned
{"_rev", 1}, // reversed
{"_smc", 0}, // smallcap
{"_tur", 0}, // turned
{"_rev", 0}, // reversed
{"_crl", 0}, // curl
{"_acu", 0}, // acute
@@ -419,6 +419,7 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf)
int accent_data = 0;
int accent1 = 0;
int accent2 = 0;
int flags1, flags2;
int basic_letter;
int letter2=0;
char ph_letter1[30];
@@ -456,19 +457,19 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf)
}
if(Lookup(tr, accents_tab[accent1].name, ph_accent1) != 0)
if((flags1 = Lookup(tr, accents_tab[accent1].name, ph_accent1)) != 0)
{
if(LookupLetter2(tr, basic_letter, ph_letter1) != 0)
{
if(accent2 != 0)
{
if(Lookup(tr, accents_tab[accent2].name, ph_accent2) == 0)
if((flags2 = Lookup(tr, accents_tab[accent2].name, ph_accent2)) == 0)
{
// break;
}
if(accents_tab[accent2].flags & 1)
if(flags2 & FLAG_ACCENT_BEFORE)
{
strcpy(ph_buf,ph_accent2);
ph_buf += strlen(ph_buf);
@@ -485,7 +486,7 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf)
{
if(accent1 == 0)
strcpy(ph_buf, ph_letter1);
else if((tr->langopts.accents & 1) || (accents_tab[accent1].flags & 1))
else if((tr->langopts.accents & 1) || (flags1 & FLAG_ACCENT_BEFORE) || (accents_tab[accent1].accent_flags & 1))
sprintf(ph_buf,"%s%c%c%s", ph_accent1, phonPAUSE_VSHORT, phonSTRESS_P, ph_letter1);
else
sprintf(ph_buf,"%c%s%c%s%c", phonSTRESS_2, ph_letter1, phonPAUSE_VSHORT, ph_accent1, phonPAUSE_VSHORT);
@@ -1684,7 +1685,18 @@ static int LookupNum2(Translator *tr, int value, int thousandplex, const int con
ph_tens[ix] = 0;
}
}
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal);
if((tr->langopts.numbers2 & NUM2_ORDINAL_DROP_VOWEL) && (ph_ordinal[0] != 0))
{
ix = sprintf(ph_out,"%s%s", ph_tens, ph_digits);
if((ix > 0) && (phoneme_tab[(unsigned char)(ph_out[ix-1])]->type == phVOWEL))
ix--;
sprintf(&ph_out[ix], "%s", ph_ordinal);
}
else
{
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal);
}
}
}