[1.26.05] Fix count of upper-case letters in a word to consider multibyte characters.

Mbrola translations, option to not match across a word boundary.
Mbrola translations, allow check of lengthen indicator [:].
espeakedit, add operation to apply a voice's formants modifications to a keyframe.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@47 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2007-06-14 18:41:52 +00:00
parent 2dbbff737b
commit 188b0d7c11
20 changed files with 220 additions and 131 deletions
+9
View File
@@ -196,6 +196,7 @@ int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev, PHONE
// bit 0 skip the next phoneme
// bit 1 match this and Previous phoneme
// bit 2 only at the start of a word
// bit 4 don't match two phonemes across a word boundary
pr = mbrola_tab;
while(pr->name != 0)
@@ -205,9 +206,17 @@ int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev, PHONE
if(pr->next_phoneme == 0)
found = 1;
else
if((pr->next_phoneme == ':') && (plist->synthflags & SFLAG_LENGTHEN))
{
found = 1;
}
else
{
if(pr->control & 2)
other_ph = ph_prev;
else
if((pr->control & 8) && ((plist+1)->newword))
other_ph = phoneme_tab[phPAUSE]; // don't match the next phoneme over a word boundary
else
other_ph = ph_next;