[1.46.49]

Fix: character names sometimes not spoken correctly if they are from another language's dictionary.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@315 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2013-03-14 00:34:12 +00:00
parent ce83ffae85
commit fbe9539748
2 changed files with 7 additions and 4 deletions
+6 -3
View File
@@ -341,10 +341,13 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
ph = phoneme_tab[plist3->phcode];
plist3[0].ph = ph;
if((plist3->phcode == phonSWITCH) && !(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ??
if(plist3->phcode == phonSWITCH)
{
if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH)))
continue; // next phoneme is also a phonSWITCH, so ignore
if(!(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ??
{
if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH)))
continue; // next phoneme is also a phonSWITCH, so ignore
}
// change phoneme table
SelectPhonemeTable(plist3->tone_ph);
+1 -1
View File
@@ -643,7 +643,7 @@ static const char *LookupCharName(Translator *tr, int c, int only)
}
}
if((only==0) && (phonemes[0] == 0) && (tr->translator_name != L('e','n')))
if((only==0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e','n')))
{
// not found, try English
SetTranslator2("en");