diff --git a/dictsource/de_list b/dictsource/de_list index b3e32aac..5579f957 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -85,225 +85,6 @@ vgl fE*gl'aIC@ z.b tsUmb'aISpi:l -// English words -//============== -// de_rules includes the words ending in "-ing" -access _^_EN -account _^_EN -aid _^_EN // aids -appeal _^_EN -apple _^_EN -baseball _^_EN -bbc _^_EN -beat _^_EN -browser _^_EN -byte _^_EN -camcorder _^_EN -chart _^_EN -coach _^_EN -coke _^_EN -computer _^_EN -cool _^_EN -couch _^_EN -cursor _^_EN -dj _^_EN -email _^_EN -ensemble _^_FR -event _^_EN -firewall _^_EN -foul _^_EN -foyer _^_EN -frame _^_EN -freak _^_EN -gin _^_EN -groupie _^_EN -hip _^_EN -homepage _^_EN -hooligan _^_EN -interface _^_EN -jean _^_EN -jet _^_EN -job _^_EN -joke _^_EN -joystick _^_EN -junkie _^_EN -laptop _^_EN -laser _^_EN -level _^_EN -login _^_EN -look _^_EN -macho _^_EN -mail _^_EN -message _^_EN -offline _^_EN -online _^_EN -out _^_EN -pair _^_EN -penthouse _^_EN -pidgin _^_EN -plot _^_EN -poster _^_EN -receiver _^_EN -remake _^_EN -roadie _^_EN -roastbeef _^_EN -quiz _^_EN -run _^_EN -scanner _^_EN -science _^_EN -server _^_EN -sex _^_EN -sexy _^_EN -shirt _^_EN -show _^_EN -single _^_EN -slip _^_EN -slum _^_EN -small _^_EN -snob _^_EN -song _^_EN -spam _^_EN -spirit _^_EN -squaw _^_EN -suite _^_EN -sweatshirt _^_EN -talk _^_EN -teaser _^_EN -tech _^_EN -terminal _^_EN -trip _^_EN -tuner _^_EN -unix _^_EN -window _^_EN -word _^_EN - - -// Main exceptions list -//===================== -allein $2 -andre and@-*@ // andere -anomalie $2 -akazie $alt -arie $alt -arterie $alt -außerdem aUs3de:m - -beben be:b@n -beere be:*@ -bestie bEstI@ -best bEst -beten be:t@n -bronchie $alt - -ciao tSaU -coup ku: - -dahlie $alt -deshalb $2 -dezember $2 -duett du:'Et - -direkt $2 -dritte d@-*It@ - -einander aIn'and3 -einig aInIC -endivie $alt -erde E*d@ -erst E*st - -furie $alt - -geben ge:b@n -geber ge:b3 -gegenüber ge:g@n'y:b3 -gemein g@maIn -genial ge:nI'al -geranie ge:*'A:nI@ -gessen gEs@n -geste ge:st@ -gestern gEst3n -gestrig gEst@-*IC -glorie $alt -grazie $alt - -handy handI -historie $alt -hm h@m -hostie $alt - -immobilie $alt -injurie $alt -insbesondere $3 -interess Int@*'Es - -januar janu:A:* - -kamelie $alt -kastanie $alt -kid kId -kommend kOm'End -komödie $alt -kurie $alt - -lappalie $alt -lilie $alt -linie $alt -luetisch lu:'e:tIS - -machen max@n -marginalie $alt -materie $alt -menuette mEnu:'Et -mikrofiche maIk@-*o:fIS -miteinander $1 -mitte mIt@ -mumie $alt - -oberen o:b@*@n -oboe o:bo:@ -orgie $alt -ok o:k'e: - -petersilie $alt -pinie $alt -präsident $3 -prämie $alt -problem p@-*Obl'e:m - -reliquie $alt -rupie $alt - -sagt zA:gt -selbst zElpst -serie se:*I;@ -service sE*vIs -sofort $2 -sogar $2 -soweit $2 -sowohl $2 -system z%IstEm - -tag tA:g -the D@ // English -theater te:'A:t3 -tuerei tu:*aI - -unten Unt@n - -verein fE*'aIn -vielleicht $2 -vorbei fO*b'aI - -//wahrscheinlich $2 -warum vA:*'Um - -zoom zu:m -zuerst tsu:'E*st -zudem tsu:'de:m -zurück $2 - - // definite article der %dE* die %di: @@ -331,7 +112,8 @@ bevor be:f'o:* $pause also $pause $strend wenn ,vEn $pause $strend sowie $2 $pause - +obgleich $2 $pause +obwohl $2 $pause deren ,dE*@n $brk // prepositions @@ -526,3 +308,232 @@ sollst ,zOlst sollte ,zOlt@ sollten ,zOlt@n + + + +// English words +//============== +// de_rules includes the words ending in "-ing" +access _^_EN +account _^_EN +aid _^_EN // aids +appeal _^_EN +apple _^_EN +baseball _^_EN +bbc _^_EN +beat _^_EN +browser _^_EN +byte _^_EN +camcorder _^_EN +chart _^_EN +coach _^_EN +coke _^_EN +computer _^_EN +cool _^_EN +couch _^_EN +cursor _^_EN +dj _^_EN +email _^_EN +ensemble _^_FR +event _^_EN +firewall _^_EN +foul _^_EN +foyer _^_EN +frame _^_EN +freak _^_EN +gin _^_EN +groupie _^_EN +hip _^_EN +homepage _^_EN +hooligan _^_EN +interface _^_EN +jean _^_EN +jet _^_EN +job _^_EN +joke _^_EN +joystick _^_EN +junkie _^_EN +laptop _^_EN +laser _^_EN +level _^_EN +login _^_EN +look _^_EN +macho _^_EN +mail _^_EN +message _^_EN +offline _^_EN +online _^_EN +out _^_EN +pair _^_EN +penthouse _^_EN +pidgin _^_EN +plot _^_EN +poster _^_EN +receiver _^_EN +remake _^_EN +roadie _^_EN +roastbeef _^_EN +quiz _^_EN +run _^_EN +scanner _^_EN +science _^_EN +server _^_EN +sex _^_EN +sexy _^_EN +shirt _^_EN +show _^_EN +single _^_EN +slip _^_EN +slum _^_EN +small _^_EN +snob _^_EN +song _^_EN +spam _^_EN +spirit _^_EN +squaw _^_EN +suite _^_EN +sweatshirt _^_EN +talk _^_EN +teaser _^_EN +tech _^_EN +terminal _^_EN +trip _^_EN +tuner _^_EN +unix _^_EN +window _^_EN +word _^_EN + + +// Main exceptions list +//===================== +abort ab'O*t +allein $2 +andre and@-*@ // andere +anomalie $2 +akazie $alt +arie $alt +arterie $alt +außerdem aUs3de:m + +beben be:b@n +beere be:*@ +bestie bEstI@ +best bEst +beten be:t@n +bronchie $alt + +ciao tSaU +coup ku: + +dahlie $alt +deshalb $2 +dezember $2 +diadem di:ad'e:m +duett du:'Et + +direkt $2 +dritte d@-*It@ + +einander aIn'and3 +einig aInIC $only +einige aInIg@ $u+ +einiges aInIg@s $u+ +endivie $alt +erde E*d@ +erst E*st + +furie $alt + +geben ge:b@n +geber ge:b3 +gegenüber ge:g@n'y:b3 +gemein g@maIn +genial ge:nI'al +geranie ge:*'A:nI@ +gessen gEs@n +geste ge:st@ +gestern gEst3n +gestrig gEst@-*IC +glorie $alt +grazie $alt + +handy handI +heimat haImat +historie $alt +hm h@m +hostie $alt + +immobilie $alt +injurie $alt +insbesondere $3 +interess Int@*'Es + +januar janu:A:* + +kamelie $alt +kastanie $alt +kid kId +kommend kOm'End +komödie $alt +kurie $alt + +lappalie $alt +lilie $alt +linie $alt +luetisch lu:'e:tIS + +machen max@n +marginalie $alt +materie $alt +menuette mEnu:'Et +mikrofiche maIk@-*o:fIS +miteinander $1 +mitte mIt@ +mumie $alt + +oberen o:b@*@n +oboe o:bo:@ +orgie $alt +ok o:k'e: + +petersilie $alt +pinie $alt +präsident $3 +prämie $alt +problem p@-*Obl'e:m + +reliquie $alt +rupie $alt + +sabbat zabat +sagt zA:gt +selbst zElpst +serie se:*I;@ +service sE*vIs +sofort $2 +sogar $2 +soweit $2 +sowohl $2 +system z%IstEm + +tag tA:g +the D@ // English +theater te:'A:t3 +tuerei tu:*aI + +unten Unt@n + +woher vo:h'e:r + +verein fE*'aIn +vielleicht $2 +vorbei fO*b'aI + +//wahrscheinlich $2 +warum vA:*'Um + +zoom zu:m +zuerst tsu:'E*st +zudem tsu:'de:m +zurück $2 + diff --git a/dictsource/de_rules b/dictsource/de_rules index 90367c2e..b8bb0cbc 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -11,15 +11,21 @@ a (C% a a (CC a a (sch a + a (x a &CC) a (_ =A: ai aI ay aI au aU - _) ab (@P2 'ab + _) ab (C@P2 'ap + _) ab (arP2 'ap + _) abb (a %ab + _) abb (rev ab _) abend A:b@nt + _) ab (er@P2 'ap _) abge (@ 'abg@ + _) ab (i ab _) abzu 'abtsu: _) an (@P2 'an _) an (der an @@ -34,17 +40,21 @@ @) an (_ 'an @) ant (_ 'ant _) anthropo ,ant@-*o:p%o: - @) atisch (_S6 'A:tIS - @) atisieren (_S9 A:tIs'i:*@n + _) anti (@P4 ,anti: anier (_ 'A:ni:3 arier (_ 'A:*i:3 adier (_ 'A:di:3 + @) at (_ 'A:t + @) atisch (_S6 'A:tIS + @) atisieren (_S9 A:tIs'i:*@n + a (tion a .group b _) b (_ be: b b b) b b (_N p + b (h p b (s_ p bt (_N pt @@ -68,6 +78,7 @@ _) b (eul b _) b (eut b + _o) b (C p baby _^_EN beten be:t@n _) bike _^_EN @@ -86,6 +97,12 @@ u) ch x ä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 + ü) chen (_$4 C@n + _) chr k@-* chs ks ck k @@ -99,10 +116,8 @@ chip _^_EN _) ch (ol k _) ch (or k - @) chen (_$4 C@n + bre) ch (en x - spro) ch (en x // not spro-chen - wo) ch (en+ x nä) chs (t Cs coat (_ _^_EN _) code ko:t @@ -115,6 +130,7 @@ d d d) d d (_N t + d (h t d (s_ t dt t ddt t @@ -122,6 +138,7 @@ _) deal _^_EN design _^_EN dge (_ _^_EN + _) dia d,i:a drive _^_EN _) drug _^_EN @@ -135,35 +152,37 @@ e (C% E e (CC E e (sch E + e (x E ei aI eu OI ey (_ e: ell (_ 'El - &) e (_$1 @ + &) e (_S1 @ @t) e (_S1 @ &) e (BB_ E2 e (gt_+ e: &) el (_ @l - &) em (_$2 @m - @) en (_$2 @n + &) eln (_S1 n + &) em (_S2 @m + @) en (_S2 @n @) er (C 3 @) er (r E* @) er (nC E* - @) er (_$2 3 - &) ere (_$3 @*@ - &) erem (_$4 @*@m - &) eren (_$4 @*@n - &) erer (_$4 @*3 - &) eres (_$4 @*@s + @) er (_S2 3 + &) ere (_S3 @*@ + &) erem (_S4 @*@m + &) eren (_S4 @*@n + &) erer (_S4 @*3 + &) eres (_S4 @*@s &) er (C_ @* &) er (n_ @r &) er (r_ E w) er (k_ E* - @) es (_$2 @s + @) es (_S2 @s &) et (_ @t - Ad) ent (_ 'Ent + @) ent (_ 'Ent @m) ent (_ 'Ent @m) ente (_ 'Ent@ &) est (_ @st @@ -177,6 +196,7 @@ _) ein (@P3 'aIn ein (and _|%aIn + _) einig aInIg _) emp (@P3 _|%Emp _) ent (@P3 _|%Ent _) enten Ent@n @@ -190,6 +210,7 @@ _) entert _^_EN _) erob (er %E*o:b + @) eur (_ 'Y:* .group f @@ -207,6 +228,7 @@ g g g) g g (_N k + g (h k gd (_N kt gt (_N kt @@ -252,6 +274,7 @@ _) hinge (@P5 h'Ing@ _) haupt (@@P5 h'aUpt + // @) heit (_S4 haIt _) high _^_EN _) hinter (@ h,Int3 _) hyper _^_EN @@ -267,9 +290,12 @@ i (C% I i (CC I i (sch I + i (x I + @) i (ng I &CC) i (_ =i: + @) i (at_ I &) ie (ll_ i:,E &) ier (_ 'i:3 r) ien (@ IEn @@ -284,8 +310,14 @@ ierung 'i:*UN ig (C IC + ig (m Ig + ig (n Ig + ig (l Ig + ig (r Ig ig (_N IC + &) ig (_ Ig // -ig + inflexions @) ik (_ 'i:k + @) ik (el_ 'i:k @) ie (_ 'i: bakter) ie =I@ @@ -295,12 +327,16 @@ formal) ie =I@ stud) ie (_ =I@ + igh aI @) ing (_N _^_EN @) ion (_ j'o:n @) ional (_ jo:n,al @) is (_ Is &) isch (_ =IS - @) ität (_S4 It'e:t + @) ist (_ 'Ist + @) it (_N 'It + @) ite (_ 'i:t@ + @) ität (_S4 i:t'E:t .group j _) j (_ jOt @@ -311,9 +347,12 @@ k k k) k - @) keit (_$4 kaIt +// @) keit (_$4 kaIt kolleg k%Ole:g + _) ko (mp k%O + _) ko (mpost kO + .group l _) l (_ El @@ -321,6 +360,7 @@ l) l lin (_ l'i:n + _) leit (@P4 l'aIt @) lich (_$4 lIC lady _^_EN @) lo (gisch l'o: @@ -335,6 +375,7 @@ _) micro _^_EN _) mit (P3 m'It mitt (eC mIt + mitt (l mIt _) ms _^_EN musik m%u:zi:k @@ -364,6 +405,7 @@ o (C% O o (CC O o (sch O + o (x O &CC) o (_ =o: _) ober (@P4 _|,o:b3 @@ -412,11 +454,16 @@ A) s (_N s A) s (_ z ss s + sst (@ sSt + p) s (a s sch S sch (en_ sC _) sh S sh (K S + p) s (i s + t) s (i s + k) s (i s _) sp Sp _be) sp Sp _ge) sp Sp @@ -477,10 +524,13 @@ u (C% U u (CC U u (sch U + u (x U @) u (ng U + @) u (m_ U + rt) u (m_ u: _) un Un - _) un (C@P2 Un + _) un (C@P2 'Un _) unbe (@P4 _|,Unb@ _) unge (@P4 _|,Ung@ _) unver (@P5 _|,UnfE* @@ -522,6 +572,8 @@ @) wert (_ vE*t _) wh _^_EN &) ware (_ _^_EN + _) wo (hin v%o: + _) wohl (@P4 v'o:l work _^_EN @@ -535,6 +587,7 @@ y y: y (CC y + y (x y y (A j @) y (_ I t) y (_ _^_EN @@ -573,6 +626,7 @@ ü (C% y ü (CC y ü (sch y + ü (x y _) über (@P4 _|,y:b3 diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 2684cf59..297f5d5d 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -157,7 +157,7 @@ o: u u: y Y y: Y: * : b c C d dZ f g h j J k l m n N n^ p r R s S s2 -t tS ts v z Z +t tS ts v z Z z2 Dictionary it_dict @@ -298,15 +298,15 @@ Dictionary ro_dict @ @- @I @U a aI aU e ea eI eo eU i i/ I^ iI -iU o Oa oI oU u uI y -Y yI yU +iU o O Oa oI oU u uI +y Y yI yU * *; b b; c C d d; dZ f f; g h j k l l; m m; n N n; p p; -r s S s; S; t T t; -tS ts ts; v v; w w2 z -Z z; Z; +r s S s; S; t t; tS +ts ts; v v; w z Z z; +Z; Dictionary is_dict diff --git a/dictsource/en_rules b/dictsource/en_rules index 6064c806..13291f70 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -5152,9 +5152,10 @@ _) ++ (_ plVspl'Vs \+\+\+) + // ignore + after the first 3 - # (\#\# - \#\#) # (\# \#\#) # (_ _:: + A_) # haS + C_) # haS + \#) # . d0t D) . (D+ ,pOInt diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 11347815..f0c86b2a 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -254,25 +254,24 @@ _minde) gy (ik J: zs Z zzs Z: - gá) z (sz z|| // don't devoice [z] to [s] - gé) z (sz z - há) z (so z|| - há) z (sz z - lá) z (sz z - má) zc (sz z - mé) zc (sz z - nehé) z (sé z|| - tű) z (sz z - vi) z (sz z|| - ví) z (sz z|| + gá) z (sz z2 // don't devoice [z] to [s] + gé) z (sz z2 + há) z (so z2 + há) z (sz z2 + lá) z (sz z2 + má) zc (sz z2 + mé) zc (sz z2 + nehé) z (sé z2 + tű) z (sz z2 + ví) z (sz z2 - ga) zs (ág zS - _gá) zsz (ámla zs: - _gá) zsz (ámlá zs: - _ré) zs (ó zS - _vá) zs (or zS -_szára) zs (ág zS - _kö) zs (ég zS + ga) zs (ág z2S + _gá) zsz (ámla z2s: + _gá) zsz (ámlá z2s: + _ré) zs (ó z2S + _vá) zs (or z2S +_szára) zs (ág z2S + _kö) zs (ég z2S .group diff --git a/dictsource/is_list b/dictsource/is_list index c6b2b41f..b65e14b5 100755 --- a/dictsource/is_list +++ b/dictsource/is_list @@ -380,3 +380,7 @@ z se:t& // MAIN WORD DICTIONARY //********************* + +bolla bOll& +halló h&lloU +mylla mIll& diff --git a/dictsource/ro_list b/dictsource/ro_list index 54ea185c..27ddd507 100644 --- a/dictsource/ro_list +++ b/dictsource/ro_list @@ -161,12 +161,15 @@ această $u+ acel $u+ // that acea $u+ // that acei $u+ // those -acele $u1+ // those +acele $u2+ // those cei $u+ // the, those cel $u+ // that, he who cea $u+ // that, she who cele $u1+ // those +ăia $u1+ +ălora $u1+ + // pronouns eu jeU $u+ @@ -195,9 +198,17 @@ mi $u însuşi $u1+ ânsăşi $u1+ însumi $u1+ +nimeni $u1+ +nimănui $u3+ -care $u $brk // who that which what -ceea $u $brk // that +care $u1 $brk +// who that which what +ceea $u $brk // that +căruia $u1 +căreia $u1 +cărora $u1 +ăltora $u1+ + // possessive adjectives @@ -275,7 +286,7 @@ deşi $2 $pause // although fie fie $u // either însă $pause // but, yet, however atunci $pause // therefore -(de atunci) d%e||at'untSi $pause // since then +(de atunci) d%e||at'untSI^ $pause // since then nici $pause // neither deci $pause // therefore, so that fiindcă $pause // because, since, as @@ -354,24 +365,27 @@ absolvi $3 afurisi $4 agonisi $4 ameţi $3 +amuţi $3 + blagoslovi $4 -borbi $2 boţi $2 buşi $2 + călăuzi $4 -căptuşi $2 +căptuşi $3 cârmi $2 + +căzni $2 catadicsi $4 cerşi $2 -ciocni $2 citi $2 cloci $2 cuveni $3 dărui d@*w'i deosebi $3 -depăsi $3 +depăşi $3 descoperi $4 -desluşi $2 +desluşi $3 deveni $3 dormi $2 feri $2 @@ -387,34 +401,53 @@ hăcui $3 încreţi $3 înghiţi $3 îngriji $3 + +înroşi $3 întâlni $3 înteţi $3 învârti $3 +învrednici $4 izbi $2 linguşi $3 + +lipi $2 lovi $2 mânji $2 -mirosi $2 +mirosi $3 moleşi $3 + +muri mur'i necăji $3 +oferi $3 + opri $2 pândi $2 păşi $2 +părăsi $3 + păzi $2 plăti $2 -pocni $2 povesti $3 prăbuşi $3 prăji $2 + primi $2 + +porni $2 răci $2 râfni $2 + +rânji $2 răguşi $3 răscoli $3 răspândi $3 răsuci $3 -risipi $3 -rotunji $2 +risipi $3 + +rosti $2 +rostogoli $4 +rotunji $3 + săvârşi $3 sclifosi $3 sfârşi $2 @@ -427,9 +460,21 @@ ursi $2 urzi $2 veşteji $3 vrăji $2 +vorbi $2 + // final "a" or "ea" is stressed(verbs) + +înroşi $3 +învărtejea $4 +învărtea $3 +învolbura $4 +agita $3 +apărea $3 +amuţea $3 +asculta $3 +aştepta $3 agonisea $2 agrea ag@-*e'a ajuta $3 @@ -444,10 +489,14 @@ căsca $2 căuta $2 cerşea $2 continua kontinu'a + +conţinea $3 crea k@-*e'a credea $3 creştea $2 dădea $2 + +depăsea $3 depista $3 desfunda $2 distra $2 @@ -485,14 +534,22 @@ mângâia $3 memora $2 mergea $2 merita $3 + +murea $2 negocia negotSi'a +oferea $3 + paraliza $4 părea $2 -pavea pave'a + +palea pale'a păzea $2 pleca $2 + +pornea $2 povestea $2 prepara $3 +prelungea $3 răbda $2 răcea $2 rămânea $3 @@ -503,9 +560,16 @@ repera $3 respira $3 reuşea $3 revenea $2 + +rostea $2 săpa $2 + +sărea $2 +semăna $3 scotea $2 sfărâma $3 + +sosea $2 spăla $2 spera $2 stăpânea $2 @@ -528,7 +592,7 @@ zbura $2 (să l) s@l $u (să i) s@I $u (să şi) s@S;I^ $u -(care l) carel $u +(care l) karel $u (să mi) s@m;I^ $u (te am) team $u (te ai) teaj $u @@ -542,6 +606,11 @@ zbura $2 (l am) lam $u (l aţi) lats;I^ $u (v aţi) vats;I^ $u + +(v au) vaU $u +(v am) vam $u +(s o) so $u +(nu i) nui $u (i am) jam $u (a şi) aS;I^ $u (într o) ynt@-*o @@ -556,13 +625,38 @@ abil $2 abzice $2 acelaş $2 adventice $3 +africa $1 +africii $1 + aer aIer aici a'itSI^ + +alegem $2 +alegeţi $2 altceva $3 + +altcuiva $3 +altcumva $3 +amic $2 +amici $2 +amice $2 +amicii $2 +amicul $2 +amicului $2 +amicilor $2 +amicelor $2 +inamic $3 +inamicul $3 +inamicului $3 +inamicilor $3 america $2 americii $2 americile $2 apoi $2 + +aprig $1 +aprige $1 +aprigi $1 artefice $3 asemenea $2 adu $1 @@ -577,15 +671,29 @@ câteva $3 câtorva $3 cerbice $2 ceva $2 -cicatrice $3 // @- +cicatrice $3 cineva $3 chimi $alt chimic $1 complice $2 contrazice $3 consideră $3 -creier $1 // @- +creier $1 +credem $1 +credeţi $1 +crivăt $1 +crivătul $1 +crivătului $1 +cuiva $2 + +cumva $2 +dădu $2 +deget $1 +degetul $1 +degetele $1 +degetului $1 +degetelor $1 deja $2 denzic $2 denzice $2 @@ -600,9 +708,15 @@ edit $1 egale $2 energi $alt elice $2 + +expedia $3 exista $3 factice $2 +facem $1 +faceţi $1 +făcu $2 + fenicşi $1 fenix $1 ferice $1 @@ -622,9 +736,17 @@ gimnaziu dZimn'azju imagin $2 înainte yna'inte + +întotdeauna yntotdea'una +încăpere $3 +încăperea $3 +încăperile $3 +încăperii $3 +încăperilor $3 legături $3 -legătură $3 legăturile $3 + +legăturilor $3 înjurătură $4 înjurături $4 înjurăturile $4 @@ -639,6 +761,9 @@ logic $1 matrice $2 maxim $1 maximum $1 + +mergem $1 +mergeţi $1 merit $1 mia m'ia mie m'ie @@ -647,8 +772,14 @@ minimum $1 murdărie murd@*'ie muzik $1 mării $1 -mişto $1 -metri met*i +mijloc $1 +mijloace $1 +mijlocul $1 +mijlocului $1 +mijloacele $1 +mijloacelor $1 +minus $1 +mişto $2 nimic $2 novice $2 @@ -657,10 +788,20 @@ număr $1 numărul $1 oameni $1 -oareşice oa*eSTSe $4 + +oamenii $1 +oamenilor $1 +oareşice oa*eStSe $4 obişnuit obiSnw'it ocol $2 + +omăt $2 ordin $1 + +ordinul $1 +ordinului $1 +ordinelor $1 +ordinele $1 dezordine $2 orice o*I^tSe $2 oricare o*I^ka*e $3 @@ -677,6 +818,8 @@ plăcerilor $2 polonic $3 polonicul $3 politic $2 + +pretutindeni $3 pricin $1 prieten $2 prietenie p@-*jeten'ie @@ -684,7 +827,16 @@ privi $3 propice $2 protocol $4 promitem $2 +promiteţi $2 +putere $2 +puteri $2 +puterea $2 +puterii $2 +puterilor $2 +răcnet $1 +răcnete $1 +răcnetelor $1 regul $1 reguli $1 repede $1 @@ -706,19 +858,40 @@ secolelor $1 sergiu s'ergju sigur $1 simbolic $2 + +singur $1 +şosea $2 spaţiu spatsju spuneţi sp'unetsI^ tanti tanti + târcol $2 târziu tyrz'iu terapi $alt terapii $3 +trecu $2 +trecem $1 +treceţi $1 +trebuie $1 +trebuia $3 + ultim $1 + +ultimul $1 +ultimele $1 +umăr $1 +umărul $1 undeva $3 veder $2 +vehicul $2 +vehiculul $2 +vehicului $2 +vehicule $2 +vehiculelor $2 + vineri $1 vinovăţi $alt vinovăţii $4 @@ -727,3 +900,4 @@ virus $1 zarzări $1 + diff --git a/dictsource/ro_rules b/dictsource/ro_rules index 9730cb74..f074b2d2 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -1,4 +1,3 @@ - // translation rules for Romanian // This file is UTF-8 encoded @@ -29,7 +28,19 @@ ăi (t_ @'i ăi (ţi_ @'i - &) ă (_S1 @ + +ăi (te @'i +ăi (n_ @'i +ăi (na_ @'i +ăi (ni_ @'i +ăi (ne_ @'i +@) ăt (_S2t @t +//@) ătă (_S3t @t@ +@) ătul (_S4t @tul +@) ătele (_S5t @tele +@) ătului (_S6t @tuluI +@) ătelor (_S6t @telor +&) ă (_S1 @ ări (A_ @*'i ării (_ @*'iI ări (AA_ @*'i @@ -57,8 +68,11 @@ ch k @@) col (_ =kol @@) coli (_S1t =I^ - @@) cole (_S1t =e + @@) cole (_S1t e + +@) cni (_ kn'i +@) cnea (_ kne'a .group d d d @) d (i_ d; @@ -74,11 +88,16 @@ &) ea (_S2q ea &) eSi eaj eau eaw - eoa 'eOa + eo eo e (AAA e - @) eş (_S2t eS + @) eş (_ =eS + +@) eşul (_ =eSul +@) eşi (_ =eSI^ +@) eşului (_ =eSuluI +@) eşilor (_ =eSilor // &) es (_S1q e &C) e (re_ %e @@ -94,6 +113,8 @@ i) e (rea_ e + +eoa eO'a .group f f f @) f (i_ f; @@ -118,16 +139,21 @@ &C) i (_N$1q i/ &) i (_N$1q i &) i (-N$1q i // don't reduce to [I^] if a hyphen follows - &') i (_ i + +ţ) i (-Că i +ţ) i (-Ci i +&') i (_ i ţi-) i (_ _ // combined with previous word as [iI] Cr) i (_ i V&) i (_ 'i // verb ăC) ia (_ 'ia âC) ia (_ 'ia - ăC) ie (_ 'ie + +ăC) ie (_ 'ie âC) ie (_ 'ie - @) ie (_S1q =ie - iei (_ 'ieI + @) ie (_S1q ie + +iei (_ 'ieI ii iI &) ii (_S2q iI iii iji @@ -144,12 +170,15 @@ i (t_ 'i + +ioa iO'a .group î î y @) î (_ 'y + .group j j Z @) j (i_ Z; @@ -181,6 +210,7 @@ i (t_ 'i -) mi (_ mi/ + .group n _) n (_ ne n n @@ -192,6 +222,8 @@ i (t_ 'i _) n (-a n + +-) n (_ n .group o o o oa Oa @@ -203,6 +235,11 @@ i (t_ 'i o (AAA o + +@) oi (t_ o'i +@) oi (tă_ o'i +@) oi (ţi_ o'i +@) oi (te_ o'i .group p p p @) p (i_ p; @@ -227,6 +264,11 @@ i (t_ 'i @u) rile (_S4t rile + +C) ri (_ @-*i +@) răm (_S1t m +@) răţi (_S4t *@tsI^ + .group s _) s (_ se _) s (-a s @@ -235,19 +277,25 @@ i (t_ 'i &) sprezece (_S8t sp@-*ez,etSe - @) sem (_S1t sem - @) seră (_S2t se*@ - @) serăm (_S3t se*@m - @) serăţi (_S4t se*@tsI^ - @) seşi (_S2t seSI^ + @) sem (_S1t m + @) seră (_S2t *@ + @) serăm (_S3t *@m + +@) serăţi (_S4t *@tsI^ +@) seşi (_S2t SI^ + +@) sni (_ sn'i .group ş ş S @) ş (i_ S; + +@) şni (_ Sn'i +-) şi (_ SI^ .group t t t tt (_ t @@ -270,11 +318,13 @@ i (t_ 'i u (A w ui uI ui (e wi - V&) ui (_ w2'i - ui (m_ w2'i - ui (t_ w2'i - ui (ţi_ w2'i - &) ul (_S2t ul + V&) ui (_ u'i + ui (m_ u'i + ui (t_ u'i + ui (ţi_ u'i + +ui (se_ u'i +&) ul (_S2t ul @ic) ul (_S2 ul @ic) uri (_S3 urI^ @@ -282,6 +332,7 @@ i (t_ 'i @ic) urilor (_S6 urilor + .group v v v @) v (i_ v; @@ -344,3 +395,4 @@ i (t_ 'i **) * (_ _:: + diff --git a/phsource/compile_report b/phsource/compile_report index 0e0a9bb9..570ebc2a 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -9,13 +9,13 @@ en_wm 30 142 af 37 126 cy 29 121 - de 28 118 + de 29 119 eo 13 107 fi 40 126 fr 32 117 fr_ca 11 117 hi 49 130 - hu 23 112 + hu 24 113 nl 26 116 pl 15 106 sk 26 123 @@ -221,7 +221,7 @@ 2 ufric/hu_fi fi 2 ufric/ll base is 3 ufric/s base es pt - 11 ufric/s_ base fi fr hu es pt ro + 13 ufric/s_ base fi fr hu es pt ro 15 ufric/s! base fi hu es pt 2 ufric/s_continue fi hu 2 ufric/sh base pt_pt @@ -397,8 +397,8 @@ 6 vocw/v base ro 4 vocw/zh base ro 2 vocw/zh_rfx base - 3 voc/z base fr ro - 3 voc/z_ base fr ro + 4 voc/z base fr hu ro + 4 voc/z_ base fr hu ro 4 voc/zh base sk ro 3 voc/zh_ base ro 1 voc/zh_2 sk @@ -432,7 +432,7 @@ 1 vowel/aa_3 af 2 vowel/aa_4 sv vi 2 vowel/aa_5 en_n - 1 vowel/aa_6 de + 2 vowel/aa_6 de 1 vowel/aa_7 nl 4 vowel/a_en en fr 1 vowel/@_bck hi diff --git a/phsource/ph_german b/phsource/ph_german index fa51ff16..96238463 100755 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -87,6 +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 + formants vowel/aa_6 endphoneme diff --git a/phsource/ph_hungarian b/phsource/ph_hungarian index 581b7e42..194148c4 100644 --- a/phsource/ph_hungarian +++ b/phsource/ph_hungarian @@ -189,4 +189,12 @@ phoneme s2 // second part of geminated [s:] endphoneme +phoneme z2 // [z] but without switchvoicing + vcd alv frc sibilant + vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 + formants voc/z+ufric/s_ + before _ voc/z_+ufric/s_%80 + lengthmod 6 +endphoneme + diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 56b31b22..e9baae1c 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1445,10 +1445,12 @@ char *Translator::DecodeRule(const char *group, char *rule) int match_type; int finished=0; int value; + int flags; + int suffix_char; int condition_num=0; char buf[60]; char buf_pre[60]; - char suffix[12]; + char suffix[20]; static char output[60]; static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', @@ -1495,11 +1497,19 @@ char *Translator::DecodeRule(const char *group, char *rule) if(rb == RULE_ENDING) { - if(rule[0] & (SUFX_P>>8)) - sprintf(suffix,"P%d",rule[1] & 0x7f); - else - sprintf(suffix,"$%d(%x)",rule[1] & 0x7f,rule[0] & 0x7f); - rule += 2; + static char *flag_chars = "ei vtfq t"; + flags = ((rule[0] & 0x7f)<< 8) + (rule[1] & 0x7f); + suffix_char = 'S'; + if(flags & (SUFX_P >> 8)) + suffix_char = 'P'; + sprintf(suffix,"%c%d",suffix_char,rule[2] & 0x7f); + rule += 3; + for(ix=0;ix<9;ix++) + { + if(flags & 1) + sprintf(&suffix[strlen(suffix)],"%c",flag_chars[ix]); + flags = (flags >> 1); + } strcpy(p,suffix); p += strlen(suffix); c = ' '; diff --git a/src/espeakedit.cpp b/src/espeakedit.cpp index 570f5078..d6eb9d0c 100755 --- a/src/espeakedit.cpp +++ b/src/espeakedit.cpp @@ -209,6 +209,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame) EVT_MENU(MENU_VOWELCHART2, MyFrame::OnTools) EVT_MENU(MENU_VOWELCHART3, MyFrame::OnTools) EVT_MENU(MENU_LEXICON_RU, MyFrame::OnTools) + EVT_MENU(MENU_LEXICON_DE, MyFrame::OnTools) EVT_MENU(MENU_TO_UTF8, MyFrame::OnTools) EVT_MENU(MENU_COUNT_WORDS, MyFrame::OnTools) EVT_MENU(MENU_TEST, MyFrame::OnTools) @@ -428,6 +429,7 @@ void MyFrame::OnTools(wxCommandEvent& event) break; case MENU_LEXICON_RU: + case MENU_LEXICON_DE: CompareLexicon(event.GetId()); // Compare a lexicon with _rules translation break; diff --git a/src/extras.cpp b/src/extras.cpp index 0680aa02..201a96b5 100644 --- a/src/extras.cpp +++ b/src/extras.cpp @@ -193,6 +193,216 @@ static const unsigned short KOI8_R[0x60] = { #define N_CHARS 34 int *p_unicode; int unicode[80]; +#define PH(c1,c2) (c2<<8)+c1 // combine two characters into an integer for phoneme name + + + +void DecodePhonemes2(const char *inptr, char *outptr) +//=================================================== +// Translate from internal phoneme codes into phoneme mnemonics +{ + unsigned char phcode; + unsigned char c; + unsigned int mnem; + PHONEME_TAB *ph; + const char *p; + int ix; + int j; + 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}; + + + start = 1; + for(ix=0; (phcode = inptr[ix]) != 0; ix++) + { + if(phcode == 255) + continue; /* indicates unrecognised phoneme */ + if((ph = phoneme_tab[phcode]) == NULL) + continue; + + if((ph->type == phSTRESS) && (ph->std_length <= 4) && (ph->spect == 0)) + { + if(ph->std_length > 3) + *outptr++ = stress_chars[ph->std_length]; + } + else + { + mnem = ph->mnemonic; + if(ph->type == phPAUSE) + { + if(start) + continue; // omit initial [?] + + if(inptr[ix+1] == phonSCHWA_SHORT) + continue; // omit [?] before [@-*] + } + + start = 0; + p = NULL; + + for(j=0;;j++) + { + if(replace_ph[j] == 0) + break; + + if(mnem == replace_ph[j]) + { + p = replace_ph2[j]; + if(p == NULL) + mnem = 0; + break; + } + } + + if(p != NULL) + { + while((c = *p++) != 0) + { + *outptr++ = c; + } + } + else + if(mnem != 0) + { + while((c = (mnem & 0xff)) != 0) + { + *outptr++ = c; + mnem = mnem >> 8; + } + } + } + } + *outptr = 0; /* string terminator */ +} // end of DecodePhonemes + + +void Lexicon_De() +{//============== +// Compare eSpeak's translation of German words with a pronunciation lexicon + FILE *f_in; + FILE *f_out; + int ix; + int c; + char *p; + int stress; + int count=0; + int start; + int matched=0; + char buf[120]; + char word[80]; + char word2[80]; + char type[80]; + char pronounce[80]; + char pronounce2[80]; + char phonemes[80]; + WORD_TAB winfo; + + static char *vowels = "aeiouyAEIOU29@"; + + wxString fname = wxFileSelector(_T("German Lexicon"),wxString(path_home,wxConvLocal), + _T(""),_T(""),_T("*"),wxOPEN); + + strcpy(buf,fname.mb_str(wxConvLocal)); + if((f_in = fopen(buf,"r")) == NULL) + { + wxLogError(_T("Can't read file ")+fname); + return; + } + + if((f_out = fopen("compare_de","w")) == NULL) + { + wxLogError(_T("Can't write file ")); + return; + } + LoadVoice("de",0); + + word2[0] = ' '; + while(!feof(f_in)) + { + count++; + + if(fgets(buf,sizeof(buf),f_in) == NULL) + break; + + sscanf(buf,"%s\t%s\t%s",word,type,pronounce); + + // convert word to lower-case + for(ix=0, p=&word2[1];;) + { + ix += utf8_in(&c,&word[ix],0); + c = towlower(c); + p += utf8_out(c,p); + if(c == 0) + break; + } + strcpy(word,&word2[1]); + strcat(&word2[1]," "); + + // remove | syllable boundaries + stress=0; + start=1; + for(ix=0, p=pronounce2;;ix++) + { + c = pronounce[ix]; + if(c == '\'') + { + stress=4; + continue; + } + if(c == ',') + { + stress=3; + continue; + } + if(c == '|') + continue; + + if((c == '?') && start) + continue; // omit initial [?] + + start =0; + if(stress && (strchr(vowels,c) != NULL)) + { + if(stress == 4) + *p++ = '\''; + if(stress == 3) + *p++ = ','; + stress = 0; + } + + *p++ = c; + if(c == 0) + break; + + if(strchr("eiouy",c) && pronounce[ix+1] != ':') + *p++ = ':'; // ensure [;] after these vowels + } + + // translate + memset(&winfo,0,sizeof(winfo)); + translator->TranslateWord(&word2[1],0,&winfo); + + DecodePhonemes2(translator->word_phonemes,phonemes); // also need to change some phoneme names + + 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); + } + } + + fclose(f_in); + fclose(f_out); + wxLogStatus(_T("Completed, equal=%d different=%d"),matched,count-matched); +} void Lexicon_Ru() @@ -497,6 +707,9 @@ void CompareLexicon(int id) case MENU_LEXICON_RU: Lexicon_Ru(); break; + case MENU_LEXICON_DE: + Lexicon_De(); + break; } } // end of CompareLexicon diff --git a/src/main.h b/src/main.h index ae772a1a..82a075b7 100755 --- a/src/main.h +++ b/src/main.h @@ -157,6 +157,7 @@ enum { MENU_VOWELCHART3, MENU_LEXICON, MENU_LEXICON_RU, + MENU_LEXICON_DE, MENU_TO_UTF8, MENU_COUNT_WORDS, MENU_TEST, diff --git a/src/menus.cpp b/src/menus.cpp index 02f189c7..e744cd15 100755 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -106,6 +106,7 @@ wxMenuBar *MakeMenu(int type) lexicon_menu = new wxMenu; lexicon_menu->Append(MENU_LEXICON_RU, _T("Russian (lexicon.dict)")); + lexicon_menu->Append(MENU_LEXICON_DE, _T("German")); tools_menu = new wxMenu; tools_menu->Append(MENU_VOWELCHART, _T("Make &Vowels Chart"), vowelchart_menu); diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 6e37afed..e2596c4b 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.25.16 02.Jun.07"; +const char *version_string = "1.25.17 04.Jun.07"; const int version_phdata = 0x012514; int option_device_number = -1;