Changes to "de" lexicon comparitor git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@42 d46cf337-b52f-0410-862d-fd96e6ae7743master
kid kId | kid kId | ||||
kommend kOm'End | kommend kOm'End | ||||
komödie $alt | komödie $alt | ||||
konkret k%ONk@-*e:t | |||||
kurie $alt | kurie $alt | ||||
lakaienhaft l%akaInhaft | |||||
lappalie $alt | lappalie $alt | ||||
lilie $alt | lilie $alt | ||||
linie $alt | linie $alt |
ay aI | ay aI | ||||
au aU | au aU | ||||
_) ab (C@P2 'ap | |||||
_) ab (arP2 'ap | |||||
_) ab (C@P2 _!'ap | |||||
_) ab (arP2 _!'ap | |||||
_) abb (a %ab | _) abb (a %ab | ||||
_) abb (rev ab | _) abb (rev ab | ||||
_) abend A:b@nt | _) abend A:b@nt | ||||
_) abge (@ 'abg@ | _) abge (@ 'abg@ | ||||
_) ab (i ab | _) ab (i ab | ||||
_) abzu 'abtsu: | _) abzu 'abtsu: | ||||
_) an (@P2 'an | |||||
_) an (@P2 _!'an | |||||
_) an (aly %an | |||||
_) an (der an | _) an (der an | ||||
_) anti (@P4 ,antI | _) anti (@P4 ,antI | ||||
_) an (tw an | _) an (tw an | ||||
_) auf (@P3 'aUf | |||||
_) aus (@P3 'aUs | |||||
_) auf (@P3 _!'aUf | |||||
_) aus (@P3 _!'aUs | |||||
_) air _^_EN | _) air _^_EN | ||||
aktie aktI@ | |||||
akqu %akv | |||||
@A) al (_ 'al | @A) al (_ 'al | ||||
@) an (_ 'an | @) an (_ 'an | ||||
@) ant (_ 'ant | @) ant (_ 'ant | ||||
bre) ch (en x | bre) ch (en x | ||||
nä) chs (t Cs | nä) chs (t Cs | ||||
c (ie s | |||||
pla) c (ie ts | |||||
coat (_ _^_EN | coat (_ _^_EN | ||||
_) code ko:t | _) code ko:t | ||||
_) cow _^_EN | _) cow _^_EN | ||||
&) eln (_S1 n | &) eln (_S1 n | ||||
&) em (_S2 @m | &) em (_S2 @m | ||||
@) en (_S2 @n | @) en (_S2 @n | ||||
&) end (_N @nt | |||||
&) end (_ @nd | |||||
@) ent (_ 'Ent | |||||
@m) ent (_ 'Ent | |||||
@m) ente (_ 'Ent@ | |||||
@) er (C 3 | @) er (C 3 | ||||
@) er (r E* | @) er (r E* | ||||
@) er (ti E* | |||||
@) er (nC E* | @) er (nC E* | ||||
@) er (_S2 3 | @) er (_S2 3 | ||||
&) ere (_S3 @*@ | &) ere (_S3 @*@ | ||||
w) er (k_ E* | w) er (k_ E* | ||||
@) es (_S2 @s | @) es (_S2 @s | ||||
&) et (_ @t | &) 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 [@] | &) en (@ E2n // [E2] can reduce to [@] | ||||
// &) er (C@ E2* | // &) er (C@ E2* | ||||
&) el (@ E2l | &) el (@ E2l | ||||
@) ei (_ 'aI | @) ei (_ 'aI | ||||
@@) erisch @*IS | |||||
&) erung (_ =@*UN | &) erung (_ =@*UN | ||||
_) ein (@P3 'aIn | |||||
_) ein (@P3 _!'aIn | |||||
ein (and _|%aIn | ein (and _|%aIn | ||||
_) einig aInIg | _) einig aInIg | ||||
_) emp (@P3 _|%Emp | _) emp (@P3 _|%Emp | ||||
_) er (ste@@P2 _|%E* | _) er (ste@@P2 _|%E* | ||||
_) entert _^_EN | _) entert _^_EN | ||||
er (dig e:* | |||||
_) erob (er %E*o:b | _) erob (er %E*o:b | ||||
@) eur (_ 'Y:* | @) eur (_ 'Y:* | ||||
.group g | .group g | ||||
_) g (_ ge: | _) g (_ ge: | ||||
g g | g g | ||||
g) g | |||||
g (g | |||||
g (_N k | g (_N k | ||||
g (h k | g (h k | ||||
gd (_N kt | gd (_N kt | ||||
gt (_N kt | gt (_N kt | ||||
gtet (_ kt@t | |||||
gtest kt@st | |||||
_) g (eHC g // hC, lC, mC, nC, rC | _) g (eHC g // hC, lC, mC, nC, rC | ||||
_) ge (@P2 g@ | _) ge (@P2 g@ | ||||
C) ge (C@ g@ | |||||
g (ei+ g | |||||
g (ei+ g | |||||
_) gn (A g@-n | _) gn (A g@-n | ||||
B) gn (A g@-n | B) gn (A g@-n | ||||
_) h (_ hA: | _) h (_ hA: | ||||
h h | h h | ||||
h) h | h) h | ||||
ch) h h | |||||
_) herauf (P6 hE*'aUf | _) herauf (P6 hE*'aUf | ||||
_) herab (P5 hE*'ab | _) herab (P5 hE*'ab | ||||
&) iens (_ =I;@ns | &) iens (_ =I;@ns | ||||
&) ient (_ =I;@nt | &) ient (_ =I;@nt | ||||
sch) ie (n i: | sch) ie (n i: | ||||
ieren 'i:*@n | |||||
@) ieren 'i:*@n | |||||
@) iere (_ 'i:*@ | |||||
@) ieret (_ 'i:*@t | |||||
@) ierest (_ 'i:*@st | |||||
@) ierst (_ 'i:*st | |||||
@) iert (_ 'i:*t | @) iert (_ 'i:*t | ||||
ierungs 'i:*UNs | ierungs 'i:*UNs | ||||
ierung 'i:*UN | ierung 'i:*UN | ||||
ig (n Ig | ig (n Ig | ||||
ig (l Ig | ig (l Ig | ||||
ig (r Ig | ig (r Ig | ||||
ig (_N IC | |||||
ig (end_ Ig | |||||
igtet Ikt@t | |||||
igtest Ikt@st | |||||
&) ig (_N IC | |||||
&) ig (_ Ig // -ig + inflexions | &) ig (_ Ig // -ig + inflexions | ||||
@) igst (_ ICst | |||||
@) igste (_ ICst@ | |||||
@) igstem (_ ICst@m | |||||
@) igsten (_ ICst@n | |||||
@) igster (_ ICst3 | |||||
@) igstes (_ ICst@s | |||||
@) ik (_ 'i:k | @) ik (_ 'i:k | ||||
@t) ik (_ =i:k | |||||
polit) ik 'i:k | |||||
@) ik (el_ 'i:k | @) ik (el_ 'i:k | ||||
@) ie (_ 'i: | @) ie (_ 'i: | ||||
l l | l l | ||||
l) l | l) l | ||||
lin (_ l'i:n | 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 | _) leit (@P4 l'aIt | ||||
@) lich (_$4 lIC | @) lich (_$4 lIC | ||||
lady _^_EN | lady _^_EN | ||||
m) m | m) m | ||||
marine mA:*'i:n@ | 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 | _) micro _^_EN | ||||
_) miet (C@P4 m'i:t | |||||
_) mikro (@P5 m,i:k@-*o: | |||||
_) mit (P3 m'It | _) mit (P3 m'It | ||||
mitt (eC mIt | mitt (eC mIt | ||||
mitt (l mIt | mitt (l mIt | ||||
_) mo (rb m%O | |||||
_) motor mo:to:* | |||||
_) ms _^_EN | _) ms _^_EN | ||||
musik m%u:zi:k | musik m%u:zi:k | ||||
oh (+ o: | oh (+ o: | ||||
oo o: | oo o: | ||||
oe Y: | oe Y: | ||||
ou u: | |||||
o (C% O | o (C% O | ||||
o (CC O | o (CC O | ||||
@A) on (_ 'o:n | @A) on (_ 'o:n | ||||
@) oo (_ u: | @) oo (_ u: | ||||
&t) or (_ =o:* | |||||
.group p | .group p | ||||
partei p%a*taI | partei p%a*taI | ||||
pool _^_EN | pool _^_EN | ||||
power _^_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: | _) pu (e p%u: | ||||
.group q | .group q | ||||
ss s | ss s | ||||
sst (@ sSt | sst (@ sSt | ||||
p) s (a s | |||||
sch S | sch S | ||||
sch (en_ sC | sch (en_ sC | ||||
_) sh S | _) sh S | ||||
sh (K S | sh (K S | ||||
sou (nd saU | |||||
p) s (a s | |||||
p) s (i s | p) s (i s | ||||
t) s (i s | t) s (i s | ||||
k) s (i s | k) s (i s | ||||
_ge) sp Sp | _ge) sp Sp | ||||
_ver) sp Sp | _ver) sp Sp | ||||
&C) st (_$2 st | &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 | _) st St | ||||
_be) st St | _be) st St | ||||
_ge) st St | _ge) st St | ||||
K) th t | K) th t | ||||
tz ts | tz ts | ||||
&B) te (_$2 t@ | |||||
// &B) te (_$2 t@ | |||||
&t) te (_ @ | &t) te (_ @ | ||||
// &B) ten (_$3 t@n | // &B) ten (_$3 t@n | ||||
// &t) ten (_ @n | // &t) ten (_ @n |
stampede $2 | stampede $2 | ||||
strychnine str'Ikni:n | strychnine str'Ikni:n | ||||
slavish sleIvIS | slavish sleIvIS | ||||
?3 status stat@s | |||||
sterile stEraIl | sterile stEraIl | ||||
stomata stoUm@t@ | stomata stoUm@t@ | ||||
stonily stoUnIlI2 | stonily stoUnIlI2 |
case RULE_NO_SUFFIX: | case RULE_NO_SUFFIX: | ||||
if(word_flags & FLAG_SUFFIX_REMOVED) | if(word_flags & FLAG_SUFFIX_REMOVED) | ||||
failed = 1; // a suffix has been removed | failed = 1; // a suffix has been removed | ||||
else | |||||
match.points++; | |||||
break; | break; | ||||
default: | default: |
//****************************************************************************************************** | //****************************************************************************************************** | ||||
FILE *f_wavtest = NULL; | FILE *f_wavtest = NULL; | ||||
FILE *f_events = NULL; | FILE *f_events = NULL; | ||||
int start; | int start; | ||||
static const char *stress_chars = "==,,'* "; | 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; | start = 1; | ||||
if((ph->type == phSTRESS) && (ph->std_length <= 4) && (ph->spect == 0)) | 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]; | *outptr++ = stress_chars[ph->std_length]; | ||||
} | } | ||||
else | else | ||||
char pronounce[80]; | char pronounce[80]; | ||||
char pronounce2[80]; | char pronounce2[80]; | ||||
char phonemes[80]; | char phonemes[80]; | ||||
char phonemes2[80]; | |||||
WORD_TAB winfo; | 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)); | strcpy(buf,fname.mb_str(wxConvLocal)); | ||||
if((f_in = fopen(buf,"r")) == NULL) | if((f_in = fopen(buf,"r")) == NULL) | ||||
wxLogError(_T("Can't read file ")+fname); | wxLogError(_T("Can't read file ")+fname); | ||||
return; | return; | ||||
} | } | ||||
path_dir1 = wxFileName(fname).GetPath(); | |||||
if((f_out = fopen("compare_de","w")) == NULL) | if((f_out = fopen("compare_de","w")) == NULL) | ||||
{ | { | ||||
if(fgets(buf,sizeof(buf),f_in) == NULL) | if(fgets(buf,sizeof(buf),f_in) == NULL) | ||||
break; | break; | ||||
sscanf(buf,"%s\t%s\t%s",word,type,pronounce); | |||||
sscanf(buf,"%s %s %s",word,type,pronounce); | |||||
// convert word to lower-case | // convert word to lower-case | ||||
for(ix=0, p=&word2[1];;) | for(ix=0, p=&word2[1];;) | ||||
} | } | ||||
else | 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); | |||||
} | |||||
} | } | ||||
} | } | ||||
wxString path_phsource; | wxString path_phsource; | ||||
wxString path_dictsource; | wxString path_dictsource; | ||||
wxString path_speaktext; | wxString path_speaktext; | ||||
wxString path_dir1; | |||||
int option_speed=160; | int option_speed=160; | ||||
char path_dsource[120]; | char path_dsource[120]; | ||||
pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource")); | pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource")); | ||||
pConfig->Read(_T("/dictsource"),&path_dictsource,basedir+_T("/dictsource")); | pConfig->Read(_T("/dictsource"),&path_dictsource,basedir+_T("/dictsource")); | ||||
pConfig->Read(_T("/speaktext"),&path_speaktext,wxEmptyString); | pConfig->Read(_T("/speaktext"),&path_speaktext,wxEmptyString); | ||||
pConfig->Read(_T("/dir1"),&path_dir1,basedir); | |||||
option_speed = pConfig->Read(_T("/speed"),160); | option_speed = pConfig->Read(_T("/speed"),160); | ||||
ConfigSetPaths(); | ConfigSetPaths(); | ||||
} // end of ConfigInit | } // end of ConfigInit | ||||
pConfig->Write(_T("/dictsource"),path_dictsource); | pConfig->Write(_T("/dictsource"),path_dictsource); | ||||
pConfig->Write(_T("/speaktext"),path_speaktext); | pConfig->Write(_T("/speaktext"),path_speaktext); | ||||
pConfig->Write(_T("/speed"),option_speed); | pConfig->Write(_T("/speed"),option_speed); | ||||
pConfig->Write(_T("/dir1"),path_dir1); | |||||
if(exit) | if(exit) | ||||
delete wxFileConfig::Set((wxFileConfig *)NULL); | delete wxFileConfig::Set((wxFileConfig *)NULL); |
extern wxString path_voices; | extern wxString path_voices; | ||||
extern wxString path_phsource; | extern wxString path_phsource; | ||||
extern wxString path_dictsource; | extern wxString path_dictsource; | ||||
extern wxString path_dir1; | |||||
extern char path_source[80]; | extern char path_source[80]; | ||||
extern char path_dsource[120]; | extern char path_dsource[120]; |