lang=de many translation improvements. TranslateWord(), check that a prefix rule is still allowed after a suffix has been removed. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@43 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -91,7 +91,7 @@ die %di: | |||
| das %das | |||
| den %de:n | |||
| dem %de:m | |||
| des %dEz | |||
| des %dEs | |||
| derselb $2 | |||
| desselb dEss'Elb | |||
| @@ -120,9 +120,10 @@ deren ,dE*@n $brk | |||
| ab ap $u+ $brk | |||
| an an $u+ $brk | |||
| am am $u+ $brk | |||
| auf aUf $u+ $brk | |||
| auf aUf $u+ $pause | |||
| aus ,aUs $brk $strend | |||
| bei baI $u+ $pause $only | |||
| beim baIm $u+ $brk | |||
| bis bIs $u+ $pause | |||
| da $u+ | |||
| durch $u+ $pause | |||
| @@ -145,8 +146,8 @@ von fOn $u+ $brk | |||
| vom fOm $u+ $brk | |||
| vor ,fO* $strend | |||
| zu tsu: $u+ $brk | |||
| zum tsUm $u+ $brk | |||
| zur tsu:* $u+ $brk | |||
| zum tsUm $u+ $pause | |||
| zur tsu:* $u+ $pause | |||
| über ,yb3 $pause $strend | |||
| unter ,Unt3 $pause $strend | |||
| um Um $u+ $brk | |||
| @@ -161,7 +162,7 @@ noch $pause | |||
| (noch nicht) n'Ox||n,ICt $brk | |||
| (nicht mehr) n'ICt||,me:* | |||
| (nicht mehr) n,ICt||m'e:* $atend | |||
| (nicht nur) nICt||nu:* $pause | |||
| (nicht nur) n'ICt||n'u:* $pause | |||
| (gar nicht) g,A:*n'ICt | |||
| // should these be in the Rules because they can be a prefix in a | |||
| @@ -261,10 +262,6 @@ ist %Ist | |||
| sind %zInt | |||
| seit %zaIt $only | |||
| gehen ge:@n $only | |||
| geht ge:t $only | |||
| gehe ge:@ $only | |||
| habe %hA:b@ $only | |||
| habst %habst $only | |||
| hast %hast $only | |||
| @@ -326,6 +323,7 @@ browser _^_EN | |||
| byte _^_EN | |||
| camcorder _^_EN | |||
| chart _^_EN | |||
| chat _^_EN | |||
| coach _^_EN | |||
| coke _^_EN | |||
| computer _^_EN | |||
| @@ -370,6 +368,7 @@ pidgin _^_EN | |||
| plot _^_EN | |||
| poster _^_EN | |||
| receiver _^_EN | |||
| research _^_EN | |||
| remake _^_EN | |||
| roadie _^_EN | |||
| roastbeef _^_EN | |||
| @@ -407,21 +406,33 @@ word _^_EN | |||
| // Main exceptions list | |||
| //===================== | |||
| abort ab'O*t | |||
| absentier apzEnt'i:* | |||
| abstinent $3 | |||
| achsig 'aksIC2 | |||
| akazie $alt | |||
| allein $2 | |||
| andre and@-*@ // andere | |||
| anomalie $2 | |||
| akazie $alt | |||
| antik ant'i:k | |||
| archaik a*k'A:Ik | |||
| arie $alt | |||
| arterie $alt | |||
| asphalt $2 | |||
| außerdem aUs3de:m | |||
| aventurin avEntu:*'i:n | |||
| avenue av@n'y: | |||
| balkan $1 | |||
| balkon $2 | |||
| beben be:b@n | |||
| beere be:*@ | |||
| bestie bEstI@ | |||
| best bEst | |||
| beten be:t@n | |||
| bizarr $2 | |||
| bronchie $alt | |||
| changier SaNZ'i:* | |||
| ciao tSaU | |||
| coup ku: | |||
| @@ -434,18 +445,26 @@ duett du:'Et | |||
| direkt $2 | |||
| dritte d@-*It@ | |||
| extravagant $1 | |||
| einander aIn'and3 | |||
| einerlei aIn@*laI | |||
| einig aInIC $only | |||
| einige aInIg@ $u+ | |||
| einiges aInIg@s $u+ | |||
| endivie $alt | |||
| erde E*d@ | |||
| erst E*st | |||
| endlich EntlIC | |||
| episkopal e:pIsko:p'A:l | |||
| erde e:*d@ | |||
| erst e:*st | |||
| ersten e:*st@n | |||
| erstmal e:*stma:l | |||
| extrem Ekstr'e:m | |||
| feuerrot $3 | |||
| furie $alt | |||
| geben ge:b@n | |||
| geber ge:b3 | |||
| gebt ge:bt | |||
| gegenüber ge:g@n'y:b3 | |||
| gemein g@maIn | |||
| genial ge:nI'al | |||
| @@ -464,6 +483,11 @@ hm h@m | |||
| hostie $alt | |||
| immobilie $alt | |||
| indem Ind'e:m | |||
| inden Ind'e:n | |||
| inder Ind3 | |||
| indes Ind'Es | |||
| indessen Ind'Es@n | |||
| injurie $alt | |||
| insbesondere $3 | |||
| interess Int@*'Es | |||
| @@ -473,7 +497,7 @@ januar janu:A:* | |||
| kamelie $alt | |||
| kastanie $alt | |||
| kid kId | |||
| kommend kOm'End | |||
| kommend kOm'@nd | |||
| komödie $alt | |||
| konkret k%ONk@-*e:t | |||
| kurie $alt | |||
| @@ -488,18 +512,26 @@ machen max@n | |||
| marginalie $alt | |||
| materie $alt | |||
| menuette mEnu:'Et | |||
| minut $2 | |||
| mikrofiche maIk@-*o:fIS | |||
| miteinander $1 | |||
| mitte mIt@ | |||
| modell mo:d'El | |||
| mumie $alt | |||
| nebulos $3 | |||
| oberen o:b@*@n | |||
| oboe o:bo:@ | |||
| orgie $alt | |||
| ok o:k'e: | |||
| passage pas'aZ@ | |||
| petersilie $alt | |||
| pinie $alt | |||
| planet plan'Et | |||
| pochier pOS'i:* | |||
| pochs pOxs | |||
| präsident $3 | |||
| prämie $alt | |||
| problem p@-*Obl'e:m | |||
| @@ -516,11 +548,14 @@ sofort $2 | |||
| sogar $2 | |||
| soweit $2 | |||
| sowohl $2 | |||
| spinozaisch spi:n'o:tsaIS | |||
| stalagmit stalagm'It | |||
| system z%IstEm | |||
| tag tA:g | |||
| the D@ // English | |||
| theater te:'A:t3 | |||
| train t@-*e:n | |||
| tuerei tu:*aI | |||
| unten Unt@n | |||
| @@ -528,8 +563,12 @@ unten Unt@n | |||
| woher vo:h'e:r | |||
| verein fE*'aIn | |||
| vielbesprochen $3 | |||
| vielleicht $2 | |||
| vorbei fO*b'aI | |||
| vorbei fo:*b'aI | |||
| vorher fo:*h'e:* | |||
| vorherig fo:*h'e:*IC | |||
| vorig fo:*IC | |||
| //wahrscheinlich $2 | |||
| warum vA:*'Um | |||
| @@ -2,7 +2,7 @@ | |||
| .group a | |||
| _) a (_ A: | |||
| a A: | |||
| a A | |||
| aa A: | |||
| ah (+ A: | |||
| ael A:El | |||
| @@ -18,37 +18,78 @@ | |||
| ay aI | |||
| au aU | |||
| ab (t_ A:p | |||
| ag (t_ A:k | |||
| _) ab (C@P2 _!'ap | |||
| _) ab (arP2 _!'ap | |||
| _) ab (nor %ap | |||
| _) ab (or ap_| | |||
| _) ab (sor %ap | |||
| _) ab (str %ap | |||
| _) ab (sur %ap | |||
| _) abb (a %ab | |||
| _) abb (rev ab | |||
| _) abd (+ apd | |||
| _) abend A:b@nt | |||
| _) aberr ab_|E* | |||
| _) ab (er@P2 'ap | |||
| _) abge (@ 'abg@ | |||
| _) ab (i ab | |||
| _) abzu 'abtsu: | |||
| _) ab (i ap | |||
| _) ab (j ap | |||
| _) ab (se ap | |||
| _) ab (so %ap | |||
| _) ab (sz ap | |||
| _) abzu 'aptsu: | |||
| _) ac (et ats | |||
| _) ad (ju at | |||
| _) an (@P2 _!'an | |||
| _) an (aly %an | |||
| _) an (a %an | |||
| _) a (natioP1 'A: | |||
| _) anath anat | |||
| _) an (der an | |||
| _) anti (@P4 ,antI | |||
| _) an (tw an | |||
| _) auf (@P3 _!'aUf | |||
| _) aus (@P3 _!'aUs | |||
| a (_ A: | |||
| a (C_ A: | |||
| s) a (g A: | |||
| @l) a (g A: | |||
| scl) a (g A: | |||
| s) a (m_ A: | |||
| s) a (mkeit A: | |||
| a (isier a | |||
| _) achs (@P4 'aks | |||
| _) achs (el 'aks | |||
| _) air _^_EN | |||
| ai (sch A:I | |||
| tr) ain En | |||
| akqu %akv | |||
| @A) al (_ 'al | |||
| @) an (_ 'an | |||
| @A) al (_ 'A:l | |||
| k) al (_ 'A:l | |||
| n) al (_ 'A:l | |||
| &kan) al (_ ,A:l | |||
| &sign) al (_ ,A:l | |||
| @) an (_ 'A:n | |||
| ein) an (der 'an | |||
| @) ant (_ 'ant | |||
| _) anthropo ,ant@-*o:p%o: | |||
| _) anti (@P4 ,anti: | |||
| anier (_ 'A:ni:3 | |||
| arier (_ 'A:*i:3 | |||
| adier (_ 'A:di:3 | |||
| anier (_N 'A:ni:3 | |||
| _) appe (ll@ ,apE | |||
| _) archa (i %a*CA | |||
| arier (_N 'A:*i:3 | |||
| @l) ar (_ 'A:* | |||
| @t) ar (_ 'A:* | |||
| a (rch_ 'A: | |||
| @) at (_ 'A:t | |||
| @) atisch (_S6 'A:tIS | |||
| @) atisieren (_S9 A:tIs'i:*@n | |||
| a (tion a | |||
| _) au (Ceinand aU | |||
| _) aufent aUf@nt | |||
| _) authen aUtEn | |||
| .group b | |||
| _) b (_ be: | |||
| @@ -61,12 +102,18 @@ | |||
| _) be (@P2 b@ | |||
| &Cen) be (C@ b@ | |||
| ungs) be (C@ b@ | |||
| _) b (eHC b | |||
| _) be (C% bE | |||
| _) bei (P3 b'aI | |||
| _) bei (de baI | |||
| _) bei (ne baI | |||
| _) bei (ß baI | |||
| _) beo (b b,@o: | |||
| _) ba (lA b%a | |||
| _) ba (ll@ b%a | |||
| &) bar (_S3 bA:* | |||
| _) b (ebC b | |||
| _) b (ecC b | |||
| _) b (eet b | |||
| @@ -75,6 +122,7 @@ | |||
| _) b (esen b | |||
| _) b (ess b | |||
| _) b (esten b | |||
| bestia bEsti:'A: | |||
| _) b (eug b | |||
| _) b (eul b | |||
| _) b (eut b | |||
| @@ -86,6 +134,7 @@ | |||
| _) blue _^_EN | |||
| board _^_EN | |||
| _) boom _^_EN | |||
| bo (sh bo: | |||
| .group c | |||
| _) c (_ se: | |||
| @@ -96,25 +145,25 @@ | |||
| a) ch x | |||
| o) ch x | |||
| u) ch x | |||
| fu) ch (s k | |||
| äu) ch C | |||
| eu) ch C | |||
| C) chen (_$4 C@n | |||
| ä) chen (_$4 C@n | |||
| e) chen (_$4 C@n | |||
| i) chen (_$4 C@n | |||
| // i) chen (_$4 C@n | |||
| ü) chen (_$4 C@n | |||
| _) chr k@-* | |||
| chs ks | |||
| chs ks (_ | |||
| ck k | |||
| _) c (el S | |||
| _) cey tsaI | |||
| chat _^_EN | |||
| chef SEf | |||
| _) c (ent ts | |||
| _) ch (il S | |||
| chip _^_EN | |||
| chip (_ _^_EN | |||
| _) ch (ol k | |||
| _) ch (or k | |||
| @@ -134,11 +183,14 @@ | |||
| d) d | |||
| d (_N t | |||
| d (h t | |||
| d (s_ t | |||
| ds (_ ts | |||
| dt t | |||
| ddt t | |||
| _) deal _^_EN | |||
| _) deme de:mE | |||
| demo (g de:mo: | |||
| demo (k de:mo: | |||
| design _^_EN | |||
| dge (_ _^_EN | |||
| _) dia d,i:a | |||
| @@ -161,6 +213,9 @@ | |||
| eu OI | |||
| ey (_ e: | |||
| eb (t_ e:p | |||
| eg (t_ e:k | |||
| ell (_ 'El | |||
| &) e (_S1 @ | |||
| @t) e (_S1 @ | |||
| @@ -168,11 +223,18 @@ | |||
| e (gt_+ e: | |||
| &) el (_ @l | |||
| &) eln (_S1 n | |||
| &) em (_S2 @m | |||
| &) e (lt_ @ | |||
| &) em (_NS2 @m | |||
| &) em (_ 'e:m | |||
| _) end (C@P3 'Ent | |||
| _) endo (@ ,Endo: | |||
| @) en (_S2 @n | |||
| &) end (_N @nt | |||
| &) end (_ @nd | |||
| ier) end (_NS3 @nt | |||
| ier) end (_ @nd | |||
| @) ent (_ 'Ent | |||
| @) entlich @ntl%IC | |||
| @m) ent (_ 'Ent | |||
| @m) ente (_ 'Ent@ | |||
| @) er (C 3 | |||
| @@ -186,13 +248,17 @@ | |||
| &) erer (_S4 @*3 | |||
| &) eres (_S4 @*@s | |||
| &) er (C_ @* | |||
| &) er (n_ @r | |||
| er (d_ e:* | |||
| &) er (n_ @* | |||
| &) er (r_ E | |||
| w) er (k_ E* | |||
| &) er (nd_ @* | |||
| @) erin (_ @rIn | |||
| @) es (_S2 @s | |||
| &) et (_ @t | |||
| ig) et (_S2 @t | |||
| &t) et (_S2 @t | |||
| ier) et (_S2 @t | |||
| &) est (_S3 @st | |||
| &) este (_S4 @st@ | |||
| &) estem (_S5 @st@m | |||
| @@ -203,29 +269,45 @@ | |||
| &) en (@ E2n // [E2] can reduce to [@] | |||
| // &) er (C@ E2* | |||
| &) el (@ E2l | |||
| m) e (nt E | |||
| @) ei (_ 'aI | |||
| @@) erisch @*IS | |||
| &) erung (_ =@*UN | |||
| _) eil (aP3 'aIl | |||
| _) eil (fP3 'aIl | |||
| _) ein (@P3 _!'aIn | |||
| ein (and _|%aIn | |||
| _) eine (r@ aIn@ | |||
| _) einig aInIg | |||
| mod) e (l@ E | |||
| s) e (lig e: | |||
| _) emp (@P3 _|%Emp | |||
| _) emph (@ %Emf | |||
| _) emp (ir %Emp | |||
| _) ene (rg %e:nE | |||
| _) ent (@P3 _|%Ent | |||
| _) enten Ent@n | |||
| _) ent (er Ent | |||
| _) epi (@ ,e:pi: | |||
| _) epi (sk e:pI | |||
| _) er (@P2 _|%E* | |||
| _) er (gie E* | |||
| _) er (beK E* | |||
| _) er (HC E* // lC, mC, nC, rC | |||
| _) ergeb (nis E*g'e:b | |||
| _) er (stC E* | |||
| _) er (ste E* | |||
| _) er (ste@@P2 _|%E* | |||
| mod) er (n E* | |||
| _) entert _^_EN | |||
| er (dig e:* | |||
| _) erob (er %E*o:b | |||
| @) eur (_ 'Y:* | |||
| euse (_ 'Y:z@ | |||
| eusen (_ 'Y:z@n | |||
| .group f | |||
| @@ -233,10 +315,16 @@ | |||
| f f | |||
| f) f | |||
| _) fest (P4 f'Est | |||
| _) faks (i f%akz | |||
| _) farb (C@P4 f'a*p | |||
| _) farb (l@P4 f'a*b | |||
| _) fein (@P4 f'aIn | |||
| _) fest (@P4 f'Est | |||
| _) flug fl'u:g | |||
| foto fo:to: | |||
| _) free _^_EN | |||
| _) feudal f%OIdA:l | |||
| _) feuer (@ fOI@* | |||
| .group g | |||
| _) g (_ ge: | |||
| @@ -251,7 +339,9 @@ | |||
| _) g (eHC g // hC, lC, mC, nC, rC | |||
| _) ge (@P2 g@ | |||
| g (ei+ g | |||
| ungs) ge (C@ g@ | |||
| _) ge (beX ge: | |||
| g (ei+ g | |||
| _) gn (A g@-n | |||
| B) gn (A g@-n | |||
| @@ -261,10 +351,16 @@ | |||
| gegen (_ ge:g@n | |||
| gegn ge:gn | |||
| gehen ge:@n | |||
| _) geh (eX ge: | |||
| general ge:nE*'al | |||
| _) g (ener g | |||
| _) g (eo+ g | |||
| _) ge (orP2 g@ | |||
| ge (rman gE | |||
| ge (rät g@ | |||
| @) ght (_ _^_EN | |||
| graph g@-*A:f | |||
| graph (_ g@-*'A:f | |||
| green _^_EN | |||
| guide _^_EN | |||
| @@ -275,34 +371,44 @@ | |||
| h) h | |||
| ch) h h | |||
| _) herauf (P6 hE*'aUf | |||
| _) herab (P5 hE*'ab | |||
| _) heran (P5 hE*'an | |||
| _) herauf (P6 hE*'aUf | |||
| _) heraus (P6 hE*'aUs | |||
| _) herbei (P6 hE*'baI | |||
| _) herein (P6 hE*'aIn | |||
| _) herüber (P7 hE*'y:b3 | |||
| _) herum (P5 hE*'Um | |||
| _) herunter (P8 hE*'Unt3 | |||
| _) hervor (P6 hE*f'Or | |||
| _) hier (@ h%i:* | |||
| _) hinab (P5 hIn'ab | |||
| _) hinan (P5 hIn'an | |||
| _) hinauf (P6 hIn'aUf | |||
| _) hinaus (P6 hIn'aUs | |||
| _) hinein (P6 hIn'aIn | |||
| _) hinunter (P8 hIn'Unt3 | |||
| _) hinweg (P6 hInv'e:g | |||
| _) hinzu (P5 hInts'u: | |||
| _) hinge (@P5 h'Ing@ | |||
| _) hinter (@P6 h,Int3 | |||
| _) haupt (@@P5 h'aUpt | |||
| // @) heit (_S4 haIt | |||
| _) hero h%e:*o: | |||
| _) high _^_EN | |||
| _) hinter (@ h,Int3 | |||
| _) hoch (@P4 h'o:x | |||
| hoch ho:x | |||
| _) hyper _^_EN | |||
| .group i | |||
| _) i ( i: | |||
| i i: | |||
| ie i: | |||
| ih (+ i: | |||
| ieh i: | |||
| i (C% I | |||
| i (CC I | |||
| @@ -312,30 +418,19 @@ | |||
| @) i (ng I | |||
| &CC) i (_ =i: | |||
| @) i (at_ I | |||
| &) ie (ll_ i:,E | |||
| &) ier (_ 'i:3 | |||
| r) ien (@ IEn | |||
| &) ien (_S1 n | |||
| &n) ien (_ I@n | |||
| &) iens (_ =I;@ns | |||
| &) ient (_ =I;@nt | |||
| sch) ie (n i: | |||
| @) ieren 'i:*@n | |||
| @) iere (_ 'i:*@ | |||
| @) ieret (_ 'i:*@t | |||
| @) ierest (_ 'i:*@st | |||
| @) ierst (_ 'i:*st | |||
| @) iert (_ 'i:*t | |||
| ierungs 'i:*UNs | |||
| ierung 'i:*UN | |||
| ib (t_ i:p | |||
| @) i (at_ I | |||
| i (d_ 'i: | |||
| i (erin =i: | |||
| ig (C IC | |||
| ig (m Ig | |||
| ig (n Ig | |||
| ig (l Ig | |||
| ig (r Ig | |||
| ig (ung Ig | |||
| ig (end_ Ig | |||
| igh aI | |||
| igtet Ikt@t | |||
| igtest Ikt@st | |||
| &) ig (_N IC | |||
| @@ -346,30 +441,71 @@ | |||
| @) igsten (_ ICst@n | |||
| @) igster (_ ICst3 | |||
| @) igstes (_ ICst@s | |||
| i (i i:_! | |||
| @) ik (_ 'i:k | |||
| @t) ik (_ =i:k | |||
| polit) ik 'i:k | |||
| @) ik (el_ 'i:k | |||
| @) ie (_ 'i: | |||
| bakter) ie =I@ | |||
| famil) ie =I@ | |||
| fer) ie (n =I@ | |||
| fol) ie (_ =I@ | |||
| formal) ie =I@ | |||
| stud) ie (_ =I@ | |||
| igh aI | |||
| r) i (na_ 'i: | |||
| @) ing (_N _^_EN | |||
| _) inter Int@* | |||
| @) ion (_ j'o:n | |||
| @) ional (_ jo:n,al | |||
| @) io (n Io: | |||
| @) is (_ Is | |||
| &) isch (_ =IS | |||
| is (mus_ 'Is | |||
| @) ist (_ 'Ist | |||
| @) it (_N 'It | |||
| @) ite (_ 'i:t@ | |||
| @) ität (_S4 i:t'E:t | |||
| @s) i (v_ 'i: | |||
| @t) i (v_ 'i: | |||
| .group ie | |||
| ie i: | |||
| ieh i: | |||
| @) ie (_ 'i: | |||
| &) ie (ll_ i:,E | |||
| &) ie (r_ 'i: | |||
| &) ie (rlich 'i: | |||
| r) ien (@ IEn | |||
| &) ien (_ =I@n | |||
| &b) ien (_ =i:@n | |||
| g) ien (_ 'i:@n | |||
| m) ien (_ 'i:@n | |||
| ph) ien (_ 'i:@n | |||
| &n) ien (_ I@n | |||
| p) ien (_ 'i:@n | |||
| &r) ien (_ =i:@n | |||
| s) ien (_ 'i:@n | |||
| t) ien (_ 'i:@n | |||
| &) iens (_ =I;@ns | |||
| &) ient (_ =I;@nt | |||
| sch) ie (n i: | |||
| // @) ieren 'i:*@n | |||
| @) ie (reX 'i: | |||
| // @) iere (_ 'i:*@ | |||
| // @) ierer (_ 'i:*3 | |||
| // @) ieret (_ 'i:*@t | |||
| // @) ierest (_ 'i:*@st | |||
| // @) ierst (_ 'i:*st | |||
| // @) iert (_ 'i:*t | |||
| ierungs 'i:*UNs | |||
| ierung 'i:*UN | |||
| bakter) ie =I@ | |||
| famil) ie =I@ | |||
| fer) ie (n =I@ | |||
| fol) ie (_ =I@ | |||
| formal) ie =I@ | |||
| stud) ie (_ =I@ | |||
| .group j | |||
| _) j (_ jOt | |||
| j j | |||
| @@ -393,13 +529,37 @@ | |||
| lin (_ l'i:n | |||
| l) lin (_ 'i:n | |||
| lady _^_EN | |||
| _) land (C@P4 l'ant | |||
| _) landes (@P6 l'and@s | |||
| _) lang (C@P4 l'aN | |||
| _) lang (t@ l'aN | |||
| langsam l'aNzA:m | |||
| _) leb (C le:p | |||
| _) leb (C@@P3 'le:p | |||
| _) leben (dig le:b'En | |||
| _) lehr (CP4 l'e:* | |||
| _) leit (@P4 l'aIt | |||
| _) lern (@@P4 l'E*n | |||
| _) lexi (@ lEksi: | |||
| @) lich (_$4 lIC | |||
| lady _^_EN | |||
| @) liche (_$5 lIC@ | |||
| @) lichem (_$6 lIC@m | |||
| @) lichen (_$6 lIC@n | |||
| @) licher (_$6 lIC3 | |||
| @) liches (_$6 lIC@s | |||
| @) lichere (_$7 lIC@*@ | |||
| @) licherem (_$8 lIC@*@m | |||
| @) licheren (_$8 lIC@*@n | |||
| @) licherer (_$8 lIC@*@3 | |||
| @) licheres (_$8 lIC@*@s | |||
| @) lichste (_$7 lICst@ | |||
| @) lichstem (_$8 lICst@m | |||
| @) lichsten (_$8 lICst@n | |||
| @) lichster (_$8 lICst@r | |||
| @) lichstes (_$8 lICst@s | |||
| @) lichkeit (_$8 lICk%aIt | |||
| @) lichung (_$7 lIC%UN | |||
| @) lo (gisch l'o: | |||
| .group m | |||
| @@ -436,6 +596,8 @@ | |||
| nk (A nk | |||
| nce (_ _^_EN | |||
| nebeneina (nd n,e:b@n_|aIn'a | |||
| &in) nen (_S3 @n | |||
| &) ness _^_EN | |||
| news _^_EN | |||
| nieder ni:d3 | |||
| @@ -454,11 +616,20 @@ | |||
| o (x O | |||
| &CC) o (_ =o: | |||
| ob (t_ o:p | |||
| og (t_ o:k | |||
| _) ober (@P4 _|,o:b3 | |||
| _) ober (ste o:b3 | |||
| @A) on (_ 'o:n | |||
| _) ob (jek %Op | |||
| _) obst (reP4 'o:pst | |||
| @) o (g_ 'o: | |||
| @) o (gin_ 'o: | |||
| o (m_ 'o: | |||
| @A) o (n_ 'o: | |||
| @) oo (_ u: | |||
| r) oo (m u: | |||
| z) oo (m u: | |||
| &t) or (_ =o:* | |||
| @@ -470,13 +641,19 @@ | |||
| pf pF | |||
| ph f | |||
| passagie pasaZ'i: | |||
| _) pay _^_EN | |||
| _) peri p,e:*i: | |||
| _) periphe p,e:*i:fe: | |||
| philie f'i:li: | |||
| _) pro (@ %p@-*o: | |||
| _) po (e p%o: | |||
| _) poe (sc pY: | |||
| _) poly (@P4 p,o:ly: | |||
| partei p%a*taI | |||
| _) perfe (k p%E*fE | |||
| pool _^_EN | |||
| power _^_EN | |||
| _) preß (@P4 p@-*'Es | |||
| @@ -538,10 +715,13 @@ | |||
| &) schaft (_S6 Saft | |||
| schein (lich S'aIn | |||
| schwer Sve:* | |||
| _) sechs (P5 z'Eks | |||
| _) selbst (@@P6 z'Elpst | |||
| shop _^_EN | |||
| _) sky _^_EN | |||
| soldat z%OldA:t | |||
| so (rt_ s_|O | |||
| sound _^_EN | |||
| speed _^_EN | |||
| _) street _^_EN | |||
| @@ -556,20 +736,42 @@ | |||
| K) th t | |||
| tz ts | |||
| // &B) te (_$2 t@ | |||
| &t) te (_ @ | |||
| // &B) ten (_$3 t@n | |||
| // &t) ten (_ @n | |||
| // &B) tet (_$3 t@t | |||
| ier) t (_S1 t | |||
| ier) te (_S2 t@ | |||
| ier) tem (_S3 t@m | |||
| ier) ten (_S3 t@n | |||
| ier) ter (_S3 t3 | |||
| ier) tes (_S3 t@s | |||
| ier) tet (_S3 t@t | |||
| ier) tere (_S4 t@*@ | |||
| ier) terem (_S5 t@*@m | |||
| ier) teren (_S5 t@*@n | |||
| ier) terer (_S5 t@*3 | |||
| ier) teres (_S5 t@*@s | |||
| ier) tst (_S3 tst | |||
| ier) tste (_S4 tst@ | |||
| ier) tstem (_S5 tst@m | |||
| ier) tsten (_S5 tst@n | |||
| ier) tster (_S5 tst3 | |||
| ier) tstes (_S5 tst@s | |||
| ier) test (_S4 t@st | |||
| ier) teste (_S5 t@st@ | |||
| ier) testem (_S6 t@st@m | |||
| ier) testen (_S6 t@st@n | |||
| ier) tester (_S6 t@st3 | |||
| ier) testes (_S6 t@st@s | |||
| tch tS | |||
| _) teen _^_EN | |||
| thrill _^_EN | |||
| _pa) th t | |||
| @) tient (_ tsI'Ent | |||
| @) tion tsI,o:n | |||
| @) tion (_ tsI'o:n | |||
| @) ti (v_ t'i: | |||
| _) trail _^_EN | |||
| _) train _^_EN | |||
| _) tranqu _^_EN | |||
| _) tw _^_EN | |||
| @@ -587,20 +789,42 @@ | |||
| u (x U | |||
| @) u (ng U | |||
| ub (t_ u:p | |||
| ug (t_ u:k | |||
| @) u (m_ U | |||
| rt) u (m_ u: | |||
| _) un Un | |||
| _) un (C@P2 'Un | |||
| _) unbe (@P4 _|,Unb@ | |||
| _) unge (@P4 _|,Ung@ | |||
| _) unver (@P5 _|,UnfE* | |||
| _) un (iv u:n | |||
| _) un (@P2 _|'Un | |||
| _) unab (@P4 _|,Un_|'ap | |||
| _) unan (@P4 _|,Un_|'an | |||
| _) unauf (@P5 _|,Un_|'aUf | |||
| _) unaus (@P5 _|,Un_|'aUs | |||
| _) unbe (@P4 _|'Unb@ | |||
| _) unein (@P5 _|,Un_|'aIn | |||
| _) unge (@P4 _|'Ung@ | |||
| _) unver (@P5 _|'UnfE* | |||
| _) un (i u:n | |||
| _) un (in@P2 _|'Un | |||
| _) unum (@P4 _|,Un_|'Um | |||
| _) under _^_EN | |||
| _) unter (@P5 _|%Unt3 | |||
| _) unter (@P5 _|,Unt3 | |||
| rep) u (bl u: | |||
| s) u (ch u: | |||
| &) uela (_ u:,e:la | |||
| @) uerisch (_ 'u:*IS | |||
| _) ultra (@P5 ,Ultra | |||
| um (_ Um | |||
| t) um (_ u:m | |||
| &) ungs (A %UNs_| // upto "ungs" is a prefix? | |||
| _) u (rk u: | |||
| _) u (rl u: | |||
| _) u (rv u: | |||
| us (_ Us | |||
| _) user _^_EN | |||
| ol) u (t_ u: | |||
| _) ueber (@P5 _|,y:b3 | |||
| @@ -609,21 +833,43 @@ | |||
| _) v (_ faU | |||
| v v | |||
| v) v | |||
| v (_N f | |||
| _) v f | |||
| _) vie fi: | |||
| _) vi (et v,i: | |||
| _) vi (CC vI | |||
| _) vi vi: | |||
| _) v v | |||
| _) v (ater f | |||
| _) v (ie f | |||
| _) v (iet v | |||
| _) v (iz f | |||
| _) v (oll f | |||
| _) v (olk f | |||
| _) v (on f | |||
| _) vehe ve:he: | |||
| _) ver (@P3 f%E* | |||
| _) vor (@P3 'fO* | |||
| _) ver (bal v%E* | |||
| _) viel (@P4 f'i:l | |||
| _) vier (g@P4 f'i:* | |||
| _) viet vIEt | |||
| _) voll (C@P4 f'Ol | |||
| _) voll (br f%Ol | |||
| _) voll (end f%Ol_| | |||
| _) voll (ko f%Ol | |||
| _) voll (stre f%Ol | |||
| _) voll (z f%Ol | |||
| _) vorder fO*d@* | |||
| -) vorha (nd fo:*h'a | |||
| _) vor (ne 'fO* | |||
| _) vorbei (@P6 fO*'baI | |||
| voraus fO*'aUs | |||
| vorüber fO*'yb3 | |||
| _) vor (@P3 'fo:* | |||
| _) voraus (@P6 fo:*'aUs | |||
| _) vorbei (@P6 fo:*'baI | |||
| _) vorher (@P6 fo:*h'e:* | |||
| _) vorüber (@P7 fo:*'yb3 | |||
| .group w | |||
| _) w (_ ve: | |||
| @@ -632,6 +878,7 @@ | |||
| @) wert (_ vE*t | |||
| _) wh _^_EN | |||
| &) ware (_ _^_EN | |||
| _) wasch (@P5 v'aS | |||
| _) wo (hin v%o: | |||
| _) wohl (@P4 v'o:l | |||
| work _^_EN | |||
| @@ -648,7 +895,8 @@ | |||
| y y: | |||
| y (CC y | |||
| y (x y | |||
| y (A j | |||
| _) y (A j | |||
| A) y (A j | |||
| @) y (_ I | |||
| t) y (_ _^_EN | |||
| @@ -660,16 +908,23 @@ | |||
| _) zer (@ %tsE* | |||
| _) zu (C@P2 ts%u: | |||
| _) zu (nC tsU | |||
| _) zurück (@P6 tsu:*'yk | |||
| _) zyklo (@P5 ,tsy:klo: | |||
| zylin ts%i:lIn | |||
| .group ä | |||
| ä E: | |||
| äh (+ e: | |||
| äu OI | |||
| ä (C% E | |||
| ä (CC E | |||
| ä (sch E | |||
| äu OI | |||
| äb (t_ E:p | |||
| äg (t_ E:k | |||
| t) ät (_ 'E:t | |||
| .group ö | |||
| ö Y: | |||
| @@ -688,6 +943,9 @@ | |||
| ü (sch y | |||
| ü (x y | |||
| üb (t_ y:p | |||
| üg (t_ y:k | |||
| _) über (@P4 _|,y:b3 | |||
| .group ß | |||
| @@ -41,14 +41,14 @@ x z | |||
| Dictionary de_dict | |||
| 3 @ @- a A: aI aU E | |||
| E2 E: e: I i: O o: OI | |||
| U u: W y y: Y: | |||
| * ; b C d D f g | |||
| h j k l m n N p | |||
| pF r s S t tS ts v | |||
| x z | |||
| 3 @ @- a A A: aI aU | |||
| E E2 E: e: I i: O o: | |||
| OI U u: W y y: Y: | |||
| * : ; b C C2 d D | |||
| f g h j k l m n | |||
| N p pF r s S t tS | |||
| ts v x z Z | |||
| Dictionary el_dict | |||
| @@ -30,8 +30,7 @@ | |||
| e E | |||
| j) e e | |||
| e (j e | |||
| r) e e | |||
| ._) exe (%ekse // filetype | |||
| ._) exe %ekse // filetype | |||
| .group f | |||
| f f | |||
| @@ -45,7 +44,7 @@ | |||
| .group i | |||
| i i | |||
| ._) ini (%ini // filetype | |||
| ._) ini %ini // filetype | |||
| .group j | |||
| j j | |||
| @@ -9,7 +9,7 @@ | |||
| en_wm 30 144 | |||
| af 37 127 | |||
| cy 29 122 | |||
| de 29 120 | |||
| de 30 121 | |||
| eo 13 108 | |||
| fi 40 127 | |||
| fr 32 118 | |||
| @@ -208,7 +208,7 @@ | |||
| 9 r/tr base en_sc pt_pt | |||
| 30 r/trr base af de fi nl ru ro sv sw | |||
| 11 r/xr base | |||
| 1 ufric/ch base | |||
| 2 ufric/ch base de | |||
| 3 ufric/f base de ro | |||
| 2 ufric/f_ base ro | |||
| 4 ufric/h_ base fi hi | |||
| @@ -87,13 +87,13 @@ phoneme A: | |||
| vowel starttype (a) endtype (a) | |||
| length 240 | |||
| formants vowel/aa_6 | |||
| reduceto a 4 // ?? | |||
| endphoneme | |||
| phoneme A | |||
| vowel starttype (a) endtype (a) | |||
| length 200 | |||
| length 240 | |||
| formants vowel/aa_6 | |||
| reduceto a 4 // ?? | |||
| endphoneme | |||
| @@ -145,7 +145,7 @@ endphoneme | |||
| phoneme e: | |||
| vowel starttype (e) endtype (e) | |||
| length 200 | |||
| length 190 | |||
| formants vowel/e_2 | |||
| before * DFT+40 | |||
| endphoneme | |||
| @@ -211,6 +211,17 @@ phoneme pF | |||
| wave ufric/f // could replace this with a [pf] wav file | |||
| endphoneme | |||
| phoneme C2 // for "ig" -> [IC] or [Ig] | |||
| vls pal frc palatal | |||
| beforevowel g | |||
| vowelin f1=0 f2=2700 400 600 f3=200 70 | |||
| vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/ch | |||
| endphoneme | |||
| phoneme l/ // used for [l] when not before a vowel | |||
| liquid | |||
| length 100 | |||
| @@ -689,7 +689,7 @@ void copy_rule_string(char *string, int &state) | |||
| case '$': // obsolete, replaced by S | |||
| case 'S': | |||
| output[ix++] = RULE_ENDING; | |||
| value = 0x80; | |||
| value = 0; | |||
| while(!isspace2(c = *p++) && (c != 0)) | |||
| { | |||
| switch(c) | |||
| @@ -720,14 +720,14 @@ void copy_rule_string(char *string, int &state) | |||
| break; | |||
| default: | |||
| if(isdigit(c)) | |||
| value = (c - '0') + 0x80; | |||
| value = (value*10) + (c - '0'); | |||
| break; | |||
| } | |||
| } | |||
| p--; | |||
| output[ix++] = sxflags >> 16; | |||
| output[ix++] = sxflags >> 8; | |||
| c = value; | |||
| c = value | 0x80; | |||
| break; | |||
| } | |||
| } | |||
| @@ -2115,7 +2115,7 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec | |||
| } | |||
| #ifdef LOG_TRANSLATE | |||
| if((option_phonemes == 2) && (match.points > 0)) | |||
| if((option_phonemes == 2) && (match.points > 0) && ((word_flags & FLAG_NO_TRACE) == 0)) | |||
| { | |||
| // show each rule that matches, and it's points score | |||
| int pts; | |||
| @@ -2137,7 +2137,7 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec | |||
| } | |||
| #ifdef LOG_TRANSLATE | |||
| if(option_phonemes == 2) | |||
| if((option_phonemes == 2) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
| { | |||
| if(group_length <= 1) | |||
| fprintf(f_trans,"\n"); | |||
| @@ -2188,7 +2188,7 @@ int Translator::TranslateRules(char *p, char *phonemes, int ph_size, char *end_p | |||
| return(0); | |||
| #ifdef LOG_TRANSLATE | |||
| if(option_phonemes == 2) | |||
| if((option_phonemes == 2) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
| { | |||
| char wordbuf[120]; | |||
| int ix; | |||
| @@ -2345,8 +2345,20 @@ int Translator::TranslateRules(char *p, char *phonemes, int ph_size, char *end_p | |||
| if((match1.end_type != 0) && (end_phonemes != NULL)) | |||
| { | |||
| /* a standard ending has been found, re-translate the word without it */ | |||
| strcpy(end_phonemes,match1.phonemes); | |||
| return(match1.end_type); | |||
| if((match1.end_type & SUFX_P) && (word_flags & FLAG_NO_PREFIX)) | |||
| { | |||
| // ignore the match on a prefix | |||
| } | |||
| else | |||
| { | |||
| if((match1.end_type & SUFX_P) && ((match1.end_type & 0x7f) == 0)) | |||
| { | |||
| // no prefix length specified | |||
| match1.end_type |= p - p_start; | |||
| } | |||
| strcpy(end_phonemes,match1.phonemes); | |||
| return(match1.end_type); | |||
| } | |||
| } | |||
| if(match1.del_fwd != NULL) | |||
| *match1.del_fwd = REPLACED_E; | |||
| @@ -214,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'),PH('E','2'),0}; | |||
| const char *replace_ph2[] = {NULL,NULL, "9","@r","Y", "a:", "r", "?", "?", "OY", "2:", "pf" ,"E",NULL}; | |||
| unsigned int replace_ph[] = {',',PH('@','-'),'W','3','y','A',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:", "a:", "r", "?", "?", "OY", "2:", "pf" ,"E",NULL}; | |||
| start = 1; | |||
| @@ -289,11 +289,13 @@ void Lexicon_De() | |||
| FILE *f_out; | |||
| int ix; | |||
| int c; | |||
| int c2; | |||
| char *p; | |||
| int stress; | |||
| int count=0; | |||
| int start; | |||
| int matched=0; | |||
| int defer_stress = 0; | |||
| char buf[120]; | |||
| char word[80]; | |||
| char word2[80]; | |||
| @@ -367,7 +369,32 @@ void Lexicon_De() | |||
| if((c == '?') && start) | |||
| continue; // omit initial [?] | |||
| if(c == '<') | |||
| { | |||
| if((c2 = pronounce[ix+1]) == 'i') | |||
| { | |||
| defer_stress =1; | |||
| #ifdef deleted | |||
| if(stress == 4) | |||
| { | |||
| *p++ = 'i'; | |||
| c =':'; | |||
| } | |||
| else | |||
| #endif | |||
| { | |||
| c = 'I'; | |||
| } | |||
| ix++; | |||
| } | |||
| } | |||
| start =0; | |||
| if(defer_stress) | |||
| { | |||
| defer_stress = 0; | |||
| } | |||
| else | |||
| if(stress && (strchr(vowels,c) != NULL)) | |||
| { | |||
| if(stress == 4) | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.26.01 09.Jun.07"; | |||
| const char *version_string = "1.26.02 11.Jun.07"; | |||
| const int version_phdata = 0x012601; | |||
| int option_device_number = -1; | |||
| @@ -606,6 +606,7 @@ int Translator::TranslateWord(char *word1, int next_pause, WORD_TAB *wtab) | |||
| int unpron_length; | |||
| int add_plural_suffix = 0; | |||
| int prefix_flags = 0; | |||
| int confirm_prefix; | |||
| int spell_word; | |||
| int wflags = wtab->flags; | |||
| int wmark = wtab->wmark; | |||
| @@ -755,9 +756,42 @@ printf("TR3 length=%d\n",length); | |||
| c_temp = word[-1]; | |||
| found = 0; | |||
| confirm_prefix = 1; | |||
| while(end_type & SUFX_P) | |||
| { | |||
| // Found a standard prefix, remove it and retranslate | |||
| if(confirm_prefix) | |||
| { | |||
| int end2; | |||
| char phonemes2[N_WORD_PHONEMES]; | |||
| char end_phonemes2[N_WORD_PHONEMES]; | |||
| // remove any standard suffix and confirm that the prefix is still recognised | |||
| end2 = TranslateRules(word, phonemes2, N_WORD_PHONEMES, end_phonemes2, wflags|FLAG_NO_PREFIX|FLAG_NO_TRACE, dictionary_flags); | |||
| if(end2) | |||
| { | |||
| RemoveEnding(word,end2,word_copy); | |||
| end_type = TranslateRules(word, phonemes, N_WORD_PHONEMES, end_phonemes, wflags|FLAG_NO_TRACE, dictionary_flags); | |||
| memcpy(word,word_copy,strlen(word_copy)); | |||
| if((end_type & SUFX_P) == 0) | |||
| { | |||
| // after removing the suffix, the prefix is no longer recognised. | |||
| // Keep the suffix, but don't use the prefix | |||
| end_type = end2; | |||
| strcpy(phonemes,phonemes2); | |||
| strcpy(end_phonemes,end_phonemes2); | |||
| if(option_phonemes == 2) | |||
| { | |||
| DecodePhonemes(end_phonemes,end_phonemes2); | |||
| fprintf(f_trans," suffix [%s]\n\n",end_phonemes2); | |||
| } | |||
| } | |||
| confirm_prefix = 0; | |||
| continue; | |||
| } | |||
| } | |||
| strcat(prefix_phonemes,end_phonemes); | |||
| end_phonemes[0] = 0; | |||
| prefix_type = end_type; | |||
| @@ -775,6 +809,7 @@ printf("TR3 length=%d\n",length); | |||
| } | |||
| c_temp = word[-1]; | |||
| word[-1] = ' '; | |||
| confirm_prefix = 1; | |||
| end_type = 0; | |||
| found = LookupDictList(word,phonemes,&dictionary_flags2,SUFX_P | (wflags << 16)); | |||
| @@ -817,8 +852,9 @@ strcpy(phonemes2,phonemes); | |||
| dictionary_flags = dictionary_flags2; | |||
| if(found) | |||
| prefix_phonemes[0] = 0; // matched whole word, don't need prefix now | |||
| if(found || (dictionary_flags2 != 0)) | |||
| prefix_flags = 1; | |||
| // if(found || (dictionary_flags2 != 0)) | |||
| // prefix_flags = 1; // ?? this looks wrong | |||
| } | |||
| if(found == 0) | |||
| { | |||
| @@ -78,6 +78,8 @@ | |||
| #define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 | |||
| #define FLAG_SUFFIX_REMOVED 0x2000 | |||
| #define FLAG_HYPHEN_AFTER 0x4000 | |||
| #define FLAG_NO_PREFIX 0x8000 | |||
| #define FLAG_NO_TRACE 0x10000 | |||
| // prefix/suffix flags (bits 8 to 14, bits 16 to 22) don't use 0x8000, 0x800000 | |||
| #define SUFX_E 0x0100 // e may have been added | |||
| @@ -1156,7 +1156,7 @@ espeak_VOICE *SelectVoice(espeak_VOICE *voice_select, int *variant) | |||
| espeak_VOICE *voices[N_VOICES_LIST]; // list of candidates | |||
| espeak_VOICE *voices2[N_VOICES_LIST+N_VOICE_VARIANTS]; | |||
| espeak_VOICE voice_variants[N_VOICE_VARIANTS]; | |||
| static espeak_VOICE voice_variants[N_VOICE_VARIANTS]; | |||
| if(n_voices_list == 0) | |||
| espeak_ListVoices(NULL); // create the voices list | |||
| @@ -295,7 +295,7 @@ STDMETHODIMP CTTSEngObj::SetObjectToken(ISpObjectToken * pToken) | |||
| gEmphasis = 0; | |||
| gSayas = 0; | |||
| espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,100,path_install); | |||
| espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,100,path_install,0); | |||
| espeak_SetVoiceByName(voice); | |||
| espeak_SetSynthCallback(SynthCallback); | |||