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]; |