[1.45.47]

Fixed crash on re-initializing libespeak.

lang=hu, experimental, if the last two words of a clause (before punctuation) both have capital letters, then make the last word unstressed.  This is useful for people names, but may be wrong for other cases.

lang=en-us, distinguish phonemes [aI@] and [aI3] (compare "diet", "tired").

lang=de, fix automatic devoicing of word-final 'b', 'd', 'g'.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@276 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2011-10-24 15:25:34 +00:00
parent d18532991a
commit f68774298b
30 changed files with 2115 additions and 262 deletions
+13
View File
@@ -1436,6 +1436,18 @@ if(dictionary_flags2[0] & FLAG_ABBREV)
dictionary_flags[0] &= ~FLAG_PAUSE1;
}
if(tr->translator_name == L('h','u'))
{
// lang=Hungarian, If the last two words of a clause have capital letters (eg. a person name), unstress the last word.
if((wflags & (FLAG_LAST_WORD | FLAG_FIRST_UPPER | FLAG_ALL_UPPER | FLAG_FIRST_WORD)) == (FLAG_LAST_WORD | FLAG_FIRST_UPPER))
{
if(((wtab[-1].flags & (FLAG_FIRST_UPPER | FLAG_ALL_UPPER)) == FLAG_FIRST_UPPER) && ((tr->clause_terminator != 0x90028) || (wflags & FLAG_HAS_DOT)))
{
ChangeWordStress(tr,word_phonemes,3);
}
}
}
if((wflags & FLAG_HYPHEN) && (tr->langopts.stress_flags & S_HYPEN_UNSTRESS))
{
ChangeWordStress(tr,word_phonemes,3);
@@ -1461,6 +1473,7 @@ if(dictionary_flags2[0] & FLAG_ABBREV)
ChangeWordStress(tr,word_phonemes,3);
}
// dictionary flags for this word give a clue about which alternative pronunciations of
// following words to use.
if(end_type & SUFX_F)