[1.45.11]

lang=Turkish, fix pronunciation of suffixes, fix suffixes after names.

Windows: command option --stdout caused spurious 0x0d bytes to be included in speech output (CR/LF problem).

Fixed crash which could occur when a clause starts with a hyphen.

espeakedit: New input format for Bulgarian lexicon.

lang=de: Fix important pronunciation error (editing error) for "sage".


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@259 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2011-03-31 16:10:36 +00:00
parent 478fde1a20
commit 82b01c0336
29 changed files with 507 additions and 161 deletions
+20 -7
View File
@@ -913,6 +913,7 @@ void Lexicon_Bg()
char *pw;
char *pw1;
int cc;
int ix;
int vcount;
int lex_stress;
int input_length;
@@ -1006,22 +1007,27 @@ void Lexicon_Bg()
if(cc == 0xfeff)
continue; // ignore UTF-8 indication
pw1 += utf8_out(cc, pw1); // copy UTF-8 to 'word_in'
if(cc == '`')
cc = '\'';
pw1 += utf8_out(towlower(cc), pw1); // copy UTF-8 to 'word_in'
if(lookupwchar(bg_vowels, cc) != 0)
vcount++;
if((cc == 0x300) || (cc == 0x450) || (cc == 0x45d))
if((cc == '\'') || (cc == 0x300) || (cc == 0x450) || (cc == 0x45d))
{
// combining grave accent, of accented vowel character
lex_stress = vcount;
// backprime (before the vowel), combining grave accent, or accented vowel character
if(cc == '\'')
lex_stress = vcount+1;
else
lex_stress = vcount;
n_stress++;
if(vcount == 1)
stress_first = 1;
if(cc == 0x300)
continue; // discard combining accent
if((cc == '\'') || (cc == 0x300))
continue; // discard backprime or combining accent
if(cc == 0x450)
cc = 0x435; // remove accent from vowel
if(cc == 0x45d)
@@ -1062,7 +1068,14 @@ void Lexicon_Bg()
}
}
if(n_stress > 1) n_stress = 1;
done = 0;
if(vcount < 2)
{
// don't list words with only one vowel
}
else
if((lex_stress != max_stress_posn) || (n_stress != 1))
{
if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7))
@@ -1082,7 +1095,7 @@ void Lexicon_Bg()
if(done == 0)
{
n_wrong++;
fprintf(f_out,"%s\t$text %s\n", &word[2], word_in);
fprintf(f_out,"// %s\t$text %s\n", &word[2], word_in);
}
if(done)