Changes to "de" lexicon comparitor git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@42 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -475,8 +475,10 @@ kastanie $alt | |||
kid kId | |||
kommend kOm'End | |||
komödie $alt | |||
konkret k%ONk@-*e:t | |||
kurie $alt | |||
lakaienhaft l%akaInhaft | |||
lappalie $alt | |||
lilie $alt | |||
linie $alt |
@@ -18,8 +18,8 @@ | |||
ay aI | |||
au aU | |||
_) ab (C@P2 'ap | |||
_) ab (arP2 'ap | |||
_) ab (C@P2 _!'ap | |||
_) ab (arP2 _!'ap | |||
_) abb (a %ab | |||
_) abb (rev ab | |||
_) abend A:b@nt | |||
@@ -27,15 +27,16 @@ | |||
_) abge (@ 'abg@ | |||
_) ab (i ab | |||
_) abzu 'abtsu: | |||
_) an (@P2 'an | |||
_) an (@P2 _!'an | |||
_) an (aly %an | |||
_) an (der an | |||
_) anti (@P4 ,antI | |||
_) an (tw an | |||
_) auf (@P3 'aUf | |||
_) aus (@P3 'aUs | |||
_) auf (@P3 _!'aUf | |||
_) aus (@P3 _!'aUs | |||
_) air _^_EN | |||
aktie aktI@ | |||
akqu %akv | |||
@A) al (_ 'al | |||
@) an (_ 'an | |||
@) ant (_ 'ant | |||
@@ -119,6 +120,8 @@ | |||
bre) ch (en x | |||
nä) chs (t Cs | |||
c (ie s | |||
pla) c (ie ts | |||
coat (_ _^_EN | |||
_) code ko:t | |||
_) cow _^_EN | |||
@@ -167,8 +170,14 @@ | |||
&) eln (_S1 n | |||
&) em (_S2 @m | |||
@) en (_S2 @n | |||
&) end (_N @nt | |||
&) end (_ @nd | |||
@) ent (_ 'Ent | |||
@m) ent (_ 'Ent | |||
@m) ente (_ 'Ent@ | |||
@) er (C 3 | |||
@) er (r E* | |||
@) er (ti E* | |||
@) er (nC E* | |||
@) er (_S2 3 | |||
&) ere (_S3 @*@ | |||
@@ -182,19 +191,24 @@ | |||
w) er (k_ E* | |||
@) es (_S2 @s | |||
&) et (_ @t | |||
@) ent (_ 'Ent | |||
@m) ent (_ 'Ent | |||
@m) ente (_ 'Ent@ | |||
&) est (_ @st | |||
ig) et (_S2 @t | |||
&t) et (_S2 @t | |||
&) est (_S3 @st | |||
&) este (_S4 @st@ | |||
&) estem (_S5 @st@m | |||
&) esten (_S5 @st@n | |||
&) ester (_S5 @st3 | |||
&) estes (_S5 @st@s | |||
&) en (@ E2n // [E2] can reduce to [@] | |||
// &) er (C@ E2* | |||
&) el (@ E2l | |||
@) ei (_ 'aI | |||
@@) erisch @*IS | |||
&) erung (_ =@*UN | |||
_) ein (@P3 'aIn | |||
_) ein (@P3 _!'aIn | |||
ein (and _|%aIn | |||
_) einig aInIg | |||
_) emp (@P3 _|%Emp | |||
@@ -209,6 +223,7 @@ | |||
_) er (ste@@P2 _|%E* | |||
_) entert _^_EN | |||
er (dig e:* | |||
_) erob (er %E*o:b | |||
@) eur (_ 'Y:* | |||
@@ -226,16 +241,17 @@ | |||
.group g | |||
_) g (_ ge: | |||
g g | |||
g) g | |||
g (g | |||
g (_N k | |||
g (h k | |||
gd (_N kt | |||
gt (_N kt | |||
gtet (_ kt@t | |||
gtest kt@st | |||
_) g (eHC g // hC, lC, mC, nC, rC | |||
_) ge (@P2 g@ | |||
C) ge (C@ g@ | |||
g (ei+ g | |||
g (ei+ g | |||
_) gn (A g@-n | |||
B) gn (A g@-n | |||
@@ -257,6 +273,7 @@ | |||
_) h (_ hA: | |||
h h | |||
h) h | |||
ch) h h | |||
_) herauf (P6 hE*'aUf | |||
_) herab (P5 hE*'ab | |||
@@ -304,7 +321,11 @@ | |||
&) iens (_ =I;@ns | |||
&) ient (_ =I;@nt | |||
sch) ie (n i: | |||
ieren 'i:*@n | |||
@) ieren 'i:*@n | |||
@) iere (_ 'i:*@ | |||
@) ieret (_ 'i:*@t | |||
@) ierest (_ 'i:*@st | |||
@) ierst (_ 'i:*st | |||
@) iert (_ 'i:*t | |||
ierungs 'i:*UNs | |||
ierung 'i:*UN | |||
@@ -314,9 +335,20 @@ | |||
ig (n Ig | |||
ig (l Ig | |||
ig (r Ig | |||
ig (_N IC | |||
ig (end_ Ig | |||
igtet Ikt@t | |||
igtest Ikt@st | |||
&) ig (_N IC | |||
&) ig (_ Ig // -ig + inflexions | |||
@) igst (_ ICst | |||
@) igste (_ ICst@ | |||
@) igstem (_ ICst@m | |||
@) igsten (_ ICst@n | |||
@) igster (_ ICst3 | |||
@) igstes (_ ICst@s | |||
@) ik (_ 'i:k | |||
@t) ik (_ =i:k | |||
polit) ik 'i:k | |||
@) ik (el_ 'i:k | |||
@) ie (_ 'i: | |||
@@ -359,7 +391,12 @@ | |||
l l | |||
l) l | |||
lin (_ l'i:n | |||
l) lin (_ 'i:n | |||
_) land (C@P4 l'ant | |||
_) landes (@P6 l'and@s | |||
_) lang (C@P4 l'aN | |||
langsam l'aNzA:m | |||
_) leit (@P4 l'aIt | |||
@) lich (_$4 lIC | |||
lady _^_EN | |||
@@ -371,11 +408,19 @@ | |||
m) m | |||
marine mA:*'i:n@ | |||
A) meter (_ me:t3 | |||
_) meß (@P3 m'Es | |||
_) met (all m%e:t | |||
_) meth m%e:t | |||
meter m'e:t3 | |||
_) metro (@P5 m,e:t@-*o: | |||
_) micro _^_EN | |||
_) miet (C@P4 m'i:t | |||
_) mikro (@P5 m,i:k@-*o: | |||
_) mit (P3 m'It | |||
mitt (eC mIt | |||
mitt (l mIt | |||
_) mo (rb m%O | |||
_) motor mo:to:* | |||
_) ms _^_EN | |||
musik m%u:zi:k | |||
@@ -401,6 +446,7 @@ | |||
oh (+ o: | |||
oo o: | |||
oe Y: | |||
ou u: | |||
o (C% O | |||
o (CC O | |||
@@ -413,6 +459,8 @@ | |||
@A) on (_ 'o:n | |||
@) oo (_ u: | |||
&t) or (_ =o:* | |||
.group p | |||
@@ -431,6 +479,10 @@ | |||
partei p%a*taI | |||
pool _^_EN | |||
power _^_EN | |||
_) preß (@P4 p@-*'Es | |||
_) prinzipien (@P9 p@-*Ints'i:pI@ | |||
_) psycho (@P6 ps,y:Co: | |||
_) psycho (ti psy:C'o: | |||
_) pu (e p%u: | |||
.group q | |||
@@ -456,11 +508,13 @@ | |||
ss s | |||
sst (@ sSt | |||
p) s (a s | |||
sch S | |||
sch (en_ sC | |||
_) sh S | |||
sh (K S | |||
sou (nd saU | |||
p) s (a s | |||
p) s (i s | |||
t) s (i s | |||
k) s (i s | |||
@@ -469,6 +523,12 @@ | |||
_ge) sp Sp | |||
_ver) sp Sp | |||
&C) st (_$2 st | |||
&C) ste (_S3 st@ | |||
&C) stem (_S4 st@m | |||
&C) sten (_S4 st@n | |||
&C) ster (_S4 st3 | |||
&C) stes (_S4 st@s | |||
_) st St | |||
_be) st St | |||
_ge) st St | |||
@@ -496,7 +556,7 @@ | |||
K) th t | |||
tz ts | |||
&B) te (_$2 t@ | |||
// &B) te (_$2 t@ | |||
&t) te (_ @ | |||
// &B) ten (_$3 t@n | |||
// &t) ten (_ @n |
@@ -1660,6 +1660,7 @@ stagnate $2 | |||
stampede $2 | |||
strychnine str'Ikni:n | |||
slavish sleIvIS | |||
?3 status stat@s | |||
sterile stEraIl | |||
stomata stoUm@t@ | |||
stonily stoUnIlI2 |
@@ -1938,6 +1938,8 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec | |||
case RULE_NO_SUFFIX: | |||
if(word_flags & FLAG_SUFFIX_REMOVED) | |||
failed = 1; // a suffix has been removed | |||
else | |||
match.points++; | |||
break; | |||
default: |
@@ -39,7 +39,6 @@ | |||
//****************************************************************************************************** | |||
FILE *f_wavtest = NULL; | |||
FILE *f_events = NULL; | |||
@@ -215,8 +214,8 @@ void DecodePhonemes2(const char *inptr, char *outptr) | |||
int start; | |||
static const char *stress_chars = "==,,'* "; | |||
unsigned int replace_ph[] = {',',PH('@','-'),'W','3','y',PH('A',':'),'*',PH('_','!'),PH('_','|'),PH('O','I'),PH('Y',':'),PH('p','F'),0}; | |||
const char *replace_ph2[] = {NULL,NULL, "9","@r","Y", "a:", "r", "?", "?", "OY", "2:", "pf" ,NULL}; | |||
unsigned int replace_ph[] = {',',PH('@','-'),'W','3','y',PH('A',':'),'*',PH('_','!'),PH('_','|'),PH('O','I'),PH('Y',':'),PH('p','F'),PH('E','2'),0}; | |||
const char *replace_ph2[] = {NULL,NULL, "9","@r","Y", "a:", "r", "?", "?", "OY", "2:", "pf" ,"E",NULL}; | |||
start = 1; | |||
@@ -229,7 +228,7 @@ void DecodePhonemes2(const char *inptr, char *outptr) | |||
if((ph->type == phSTRESS) && (ph->std_length <= 4) && (ph->spect == 0)) | |||
{ | |||
if(ph->std_length > 3) | |||
if(ph->std_length > 2) | |||
*outptr++ = stress_chars[ph->std_length]; | |||
} | |||
else | |||
@@ -302,12 +301,12 @@ void Lexicon_De() | |||
char pronounce[80]; | |||
char pronounce2[80]; | |||
char phonemes[80]; | |||
char phonemes2[80]; | |||
WORD_TAB winfo; | |||
static char *vowels = "aeiouyAEIOU29@"; | |||
static char *vowels = "aeiouyAEIOUY29@"; | |||
wxString fname = wxFileSelector(_T("German Lexicon"),wxString(path_home,wxConvLocal), | |||
_T(""),_T(""),_T("*"),wxOPEN); | |||
wxString fname = wxFileSelector(_T("German Lexicon"),path_dir1,_T(""),_T(""),_T("*"),wxOPEN); | |||
strcpy(buf,fname.mb_str(wxConvLocal)); | |||
if((f_in = fopen(buf,"r")) == NULL) | |||
@@ -315,6 +314,7 @@ void Lexicon_De() | |||
wxLogError(_T("Can't read file ")+fname); | |||
return; | |||
} | |||
path_dir1 = wxFileName(fname).GetPath(); | |||
if((f_out = fopen("compare_de","w")) == NULL) | |||
{ | |||
@@ -331,7 +331,7 @@ void Lexicon_De() | |||
if(fgets(buf,sizeof(buf),f_in) == NULL) | |||
break; | |||
sscanf(buf,"%s\t%s\t%s",word,type,pronounce); | |||
sscanf(buf,"%s %s %s",word,type,pronounce); | |||
// convert word to lower-case | |||
for(ix=0, p=&word2[1];;) | |||
@@ -397,9 +397,27 @@ void Lexicon_De() | |||
} | |||
else | |||
{ | |||
if(strlen(word) < 8) | |||
strcat(word,"\t"); | |||
fprintf(f_out,"%s\t%s\t%s\n",word,phonemes,pronounce2); | |||
// remove secondary stress | |||
strcpy(phonemes2,phonemes); | |||
p = phonemes; | |||
for(ix=0; ;ix++) | |||
{ | |||
if((c = phonemes2[ix]) != ',') | |||
*p++ = c; | |||
if(c == 0) | |||
break; | |||
} | |||
if(strcmp(phonemes,pronounce2) == 0) | |||
{ | |||
matched++; | |||
} | |||
else | |||
{ | |||
if(strlen(word) < 8) | |||
strcat(word,"\t"); | |||
fprintf(f_out,"%s\t%s\t%s\n",word,phonemes,pronounce2); | |||
} | |||
} | |||
} | |||
@@ -49,6 +49,7 @@ wxString path_voices; | |||
wxString path_phsource; | |||
wxString path_dictsource; | |||
wxString path_speaktext; | |||
wxString path_dir1; | |||
int option_speed=160; | |||
char path_dsource[120]; | |||
@@ -166,6 +167,7 @@ void ConfigInit() | |||
pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource")); | |||
pConfig->Read(_T("/dictsource"),&path_dictsource,basedir+_T("/dictsource")); | |||
pConfig->Read(_T("/speaktext"),&path_speaktext,wxEmptyString); | |||
pConfig->Read(_T("/dir1"),&path_dir1,basedir); | |||
option_speed = pConfig->Read(_T("/speed"),160); | |||
ConfigSetPaths(); | |||
} // end of ConfigInit | |||
@@ -191,6 +193,7 @@ void ConfigSave(int exit) | |||
pConfig->Write(_T("/dictsource"),path_dictsource); | |||
pConfig->Write(_T("/speaktext"),path_speaktext); | |||
pConfig->Write(_T("/speed"),option_speed); | |||
pConfig->Write(_T("/dir1"),path_dir1); | |||
if(exit) | |||
delete wxFileConfig::Set((wxFileConfig *)NULL); |
@@ -35,6 +35,7 @@ extern wxString path_pitches; | |||
extern wxString path_voices; | |||
extern wxString path_phsource; | |||
extern wxString path_dictsource; | |||
extern wxString path_dir1; | |||
extern char path_source[80]; | |||
extern char path_dsource[120]; |