[1.31.18]

Indicate unrecognized letters within a word by clicks.
lang-tr: Non-standard lower case conversion for "I".
Tone languages: indicate emphasis by increasing the pitch range.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@151 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2008-02-25 21:59:24 +00:00
parent bf8ee6362e
commit 16fba5a1c1
20 changed files with 179 additions and 54 deletions
+25 -1
View File
@@ -299,6 +299,18 @@ float wcstod(const wchar_t *str, wchar_t **tailptr)
}
#endif
int towlower2(unsigned int c)
{
// check for non-standard upper to lower case conversions
if(c == 'I')
{
if(translator->translator_name == L('t','r'))
{
c = 0x131; // I -> ı
}
}
return(towlower(c));
}
static void GetC_unget(int c)
{//==========================
@@ -1456,7 +1468,19 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb
{
value = attrlookup(attr1,mnem_emphasis);
}
sp->parameter[espeakEMPHASIS] = value;
if(translator->langopts.tone_language == 1)
{
static unsigned char emphasis_to_pitch_range[] = {50,50,40,70,90,90};
static unsigned char emphasis_to_volume[] = {100,100,70,110,140,140};
// tone language (eg.Chinese) do emphasis by increasing the pitch range.
sp->parameter[espeakRANGE] = emphasis_to_pitch_range[value];
sp->parameter[espeakVOLUME] = emphasis_to_volume[value];
}
else
{
sp->parameter[espeakEMPHASIS] = value;
}
ProcessParamStack(outbuf, outix);
break;