diff --git a/Makefile.am b/Makefile.am index 861a1bea..a5c6ec91 100644 --- a/Makefile.am +++ b/Makefile.am @@ -143,6 +143,7 @@ dictionaries: src/espeak \ espeak-data/af_dict \ espeak-data/am_dict \ espeak-data/an_dict \ + espeak-data/az_dict \ espeak-data/bg_dict \ espeak-data/bn_dict \ espeak-data/ca_dict \ @@ -220,6 +221,12 @@ dictsource/an_extra: espeak-data/an_dict: src/espeak espeak-data/phontab dictsource/an_list dictsource/an_rules dictsource/an_extra cd dictsource && ../src/espeak --compile=an && cd .. +az: espeak-data/az_dict +dictsource/az_extra: + touch dictsource/az_extra +espeak-data/az_dict: src/espeak espeak-data/phontab dictsource/az_list dictsource/az_rules dictsource/az_extra + cd dictsource && ../src/espeak --compile=az && cd .. + bg: espeak-data/bg_dict dictsource/bg_extra: touch dictsource/bg_extra diff --git a/dictsource/an_list b/dictsource/an_list index 65a0ee0c..8894fe5d 100644 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -57,6 +57,7 @@ _y je y je $atend ch tSe ll 'El^e +ny n^e á 'a||akTEntw'aDa é 'e||akTEntw'aDa í 'i||akTEntw'aDa @@ -118,9 +119,10 @@ _x#º %o // for 1º 2º 3º _x#ª %a º orDin'al||maskul'in ª orDin'al||femen'in -ºc gr'aUs||T'e -ºf gr'aUs||'Efe -ºk gr'aUs||k'a +(1 ºc) un||gr'aU||T'e +ºc gr'aUs||Tentigr'aUs +ºf gr'aUs||f'arEnxeI +ºk gr'aUs||k'elBin _1ox prim'Er _2ox seQ'und @@ -183,6 +185,7 @@ $ d'olar \ kontraBaRRa | b'aRRaBertik'al ° graUs +(1 °) un||gr'aU _- gj'on ! TaRR'ar||eksklamaTj'on @@ -471,40 +474,56 @@ witsa $abbrev // exceptions -barça b'arsa -holio x'olio -jazz dZ'as +banjo Banjo +barça barsa +desenyermar DesenjErmar +halar xalar +halma xalma +harcia xarTja +hibo xiBo +hoder xoDer +holgorio xolg'orio +holio x'olio +hopar xopar +huerga xuerga +huerza xuerTa +jacuzzi jakusi +jazz jas +jet jet +judo juDo // Foreign words -android andr'oId -apple 'apEl -at 'at -chat tS'at -chrome kr'ome -espeak isp'ik -(e speak) isp'ik -facebook f'eIsbuk -firefox f'aIrfoks -google g'ugEl -hotmail xotm'eIl +android androId +apple 'apEl +at at +chat tSat +chrome krome +espeak ispik +(e speak) ispik +facebook f'eIsbuk +firefox f'aIrfoks +google g'ugEl +hardware x'ardwer +hockey xokeI +hotmail xotmeIl (i phone) 'aIfon -iphone 'aIfon -(i pod) 'aIpod -ipod 'aIpod -hardware x'ardwer -linux $1 -live l'aIB -messenger m'esendZer -mozilla moT'ila -nvda ene|be|de|'a -office 'ofis -skype esk'aIp +iphone 'aIfon +(i pod) 'aIpod +ipod 'aIpod +junior j'unior +linux $1 +live laIB +messenger m'esendZer +mozilla moTila +nvda ene|be|de|'a +office ofis +skype eskaIp software s'oftwer -thunderbird Tanderb'ird -twitter tw'iter -unix j'uniks -whatsapp was'app -windows w'indows +thunderbird Tanderbird +twitter tw'iter +unix j'uniks +whatsapp wasap +windows w'indows //mobile _^_EN diff --git a/dictsource/an_rules b/dictsource/an_rules index 731e9acc..797547a0 100644 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -1,3 +1,4 @@ + // Aragon translation rules // This file is UTF-8 encoded @@ -111,6 +112,7 @@ i i i (u_ i i (A j + .group j @@ -168,6 +170,7 @@ .group q +q k qu (A kw qü kw qu (e k @@ -204,6 +207,9 @@ u) t (_ t# ei) t (_ t# n) t (_ = // silent, but stress on last vowel + n) t (m // Silent + _pos) t (h t + _pos) t (C // Silent tz T ue) t (_ t# ui) t (_ t# diff --git a/dictsource/az_list b/dictsource/az_list new file mode 100644 index 00000000..cd4b0495 --- /dev/null +++ b/dictsource/az_list @@ -0,0 +1,110 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Azerbaijani + + +// Numbers +_0 s@f'@R +_1 b'iR +_2 ic'i +_3 'ytS +_4 d'WRd +_5 b'eS +_6 alt'@ +_7 jedd'i +_8 s&Cc'iz +_9 dogg'uz +_1X 'on +_2X ijiRm'i +_3X ot'uz +_4X g'@Rx +_5X &ll'i +_6X altm'@S +_7X jetm'iS +_8X s&Cs'&n +_9X doxs'an +_0C j'yz +_0M1 m'in +_0M2 milj'on +_0M3 milj'aRd +_dpt _t,am_| // ?? + + +// Function words + // personal pronouns +mən $u+ +sən $u+ +o $u+ +biz $u+ +siz $u+ +onlar $u+ + + // possessive pronouns +mənim $u+ +sənin $u+ +onun $u+ +bizim $u+ +sizin $u+ +onların $u+ + +bu $u+ + + +// conjunctions +və $u+ +isə $u+ +də $u+ +həm $u+ +ya $u+ +da $u+ + +// prepositions +aid $u+ // about +ilə $u+ // with, by, in +dair $u+ // about + +// postpositions +ci $u +cı $u +cü $u +de $u +dir $u +li $u +in $u +nə $u +ya $u +yə $u + +// Character names +b be +c dZe +ç tSe +_ə & +d de +f fe +g Je +ğ Qe +h he +x xe +j Ze +k ka +q ge +l el +m em +n en +_o o +p pe +r eR +s se +ş Se +t te +v ve +w dubElv'E +y je +z ze + +* ulduz $text +% faiz $text + + + diff --git a/dictsource/az_rules b/dictsource/az_rules new file mode 100644 index 00000000..695d6171 --- /dev/null +++ b/dictsource/az_rules @@ -0,0 +1,137 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Azerbaijani + +// Stress rule: Right-most vowel, but stop before the vowel which is +// marked as unstressed [%]. + +.L02 ı a o u // back vowels +.L03 i e ö ü + +.group a + a a + ai (K aI + -) a (_ a + +.group b + b b + +.group c + c dZ + +.group ç + ç tS + +.group d + d d + + -) dan (_ d%an + -) dən (_ d%&n + -) dək (_ d%&k + +.group e + e e + +.group ə + ə & + @) ə (_ %& + -) ə (_ %& + +.group f + f f + +.group g + g J + +.group ğ + ğ Q + A) ğ : + a) ğa : + o) ğo : + u) ğu : + ö) ğö : + ü) ğü : + i) ğ j + e) ğ j + +.group h + h h + +.group x + x x + +.group ı + ı @ + +.group i + i i + + @) iya (_ =i;a + +.group j + j Z + +.group k + k c + k (K C + +.group q + q g + q (_ x + +.group l + l l + l (L02 L + L02) l (K L + +.group m + m m + +.group n + n n + +.group o + o o + +.group ö + ö W + +.group p + p p + +.group r + r R + A) r (A * + ğ) r (A * + C) r (_ @-r + +.group s + s s + +.group ş + ş S + +.group t + t t + L03) t (L03 ts + +.group u + u u + +.group ü + ü y + +.group v + v v + +.group w + w w + +.group y + y j + +.group z + z z + +.group + ä & diff --git a/dictsource/bn_list b/dictsource/bn_list index 11a5429b..e2ab79c7 100644 --- a/dictsource/bn_list +++ b/dictsource/bn_list @@ -1,4 +1,6 @@ -// Translation rules for Bengali + +// Translation rules for Bengali +// Improvement input by Him Prasad gautam (Nepal). // This file is UTF8 encoded // Numbers @@ -7,7 +9,7 @@ _0 S'unjO _1 '&k _2 d'uj _3 t'in -_4 tS'ar +_4 tSh'ar _5 p'a~tS _6 tS#'Oj _7 S'at @@ -15,7 +17,7 @@ _8 'at.# _9 n'Oj _2a d'u // with hundreds etc. -_6a tS#'a +_6a tS#'O _9a n'O @@ -23,7 +25,7 @@ _10 d'OS _11 '&garo _12 b'arO _13 t'erO -_14 tS'oddO +_14 tSh'oddO _15 p'OnerO _16 S'olO _17 S'OterO @@ -39,86 +41,86 @@ _25 p'O~tSiS _26 tSh'abbiS _27 Sat'aS _28 'at.#aS -_29 unOtr'iS +_29 'unOtr'iS _30 tr'iS -_31 ekOtr'iS -_32 bOtr'iS -_33 tetr'iS -_34 tSowtr'iS -_35 pO~jtr'iS +_31 'ekOtr'iS +_32 b'Otr'iS +_33 t'etr'iS +_34 tS'owtr'iS +_35 p'O~jtr'iS _36 tS#'Otr'iS -_37 Sa~itr'iS -_38 at.tr'iS +_37 S'a~itr'iS +_38 'at.tr'iS _39 'unOtSOll'iS _40 tSOll'iS -_41 ektSOll'iS -_42 biall'iS -_43 tetall'iS -_44 tSoall'iS -_45 pO~jtall'iS -_46 tSetSOll'iS -_47 SatSOll'is -_48 atSOll'iS -_49 unOpO~tSaS +_41 'ektSOll'iS +_42 b'iall'iS +_43 t'etall'iS +_44 tS'oall'iS +_45 p'O~jtall'iS +_46 tS'etSOll'iS +_47 S'atSOll'is +_48 'atSOll'iS +_49 'unOpO~tSaS -_50 pO~tS'aS -_51 &kann'o -_52 bajann'o -_53 tepann'o -_54 tSujann'o -_55 pontSann'o -_56 tS#apann'o -_57 Satann'o -_58 at.ann'o -_59 unOS'at. +_50 p'O~tS'aS +_51 '&kann'o +_52 b'ajann'o +_53 t'epann'o +_54 tS'ujann'o +_55 p'ontSann'o +_56 tS#'apann'o +_57 S'atann'o +_58 'at.ann'o +_59 'unOS'at. _60 s'at. -_61 ekSOt.t.'i -_62 baSOt.t.'i -_63 teSOt.t.'i -_64 tSowSOt.t.'i -_65 pojSOt.t.'i -_66 SeSOt.t.'i -_67 SatSOt.t.'i -_68 at.SOt.t.'i -_6X sat.t.'i -_69 unOSOtt'ur +_61 'ekSOt.t.'i +_62 b'aSOt.t.'i +_63 t'eSOt.t.'i +_64 tS'owSOt.t.'i +_65 p'ojSOt.t.'i +_66 S'eSOt.t.'i +_67 S'atSOt.t.'i +_68 'at.SOt.t.'i +_6X s'at.t.'i +_69 'unOSOtt'Or -_70 SOtt'Or -_71 ekatt'Or -_72 bahatt'Or -_73 tehatt'Or -_74 tSuhatt'Or -_75 pOtSatt'Or -_76 tS#ijatt'Or -_77 Satatt'Or -_78 at.att'Or -_79 unOaS'i +_70 S'Ott'Or +_71 'ekatt'Or +_72 b'ahatt'Or +_73 t'iatt'Or +_74 tS'uhatt'Or +_75 p'OtSatt'Or +_76 tS#'ijatt'Or +_77 S'atatt'Or +_78 'at.att'Or +_79 'unOaS'i _80 aS'i -_81 &kaS'i -_82 beraS'i -_83 teraS'i -_84 tSuraS'i -_85 po~tSaS'i -_86 tS#ijaS'i -_87 SataS'i -_88 at.aS'i -_89 ,unOnObb'oj +_81 '&kaS'i +_82 b'eraS'i +_83 t'eraS'i +_84 tS'uraS'i +_85 p'o~tSaS'i +_86 tS#'ijaS'i +_87 S'ataS'i +_88 'at.aS'i +_89 'unOnObb'oj _90 nObb'oj -_91 &kanObb'oj -_92 beranObb'oj -_93 teranObb'oj -_94 tSuranObb'oj -_95 pOtSanObb'oj -_96 tS#ijanObb'oj -_97 SatanObb'oj -_98 at.anObb'oj -_99 niranObb'oj +_91 '&kanObb'oj +_92 b'eranObb'oj +_93 t'eranObb'oj +_94 tS'uranObb'oj +_95 p'OtSanObb'oj +_96 tS#'ijanObb'oj +_97 S'atanObb'oj +_98 'at.anObb'oj +_99 n'iranObb'oj _0C S'o _0M1 h'ajar @@ -133,7 +135,7 @@ _dpt _d'Osomik_ খ k#O গ gO ঘ g#O -ঙ 'uNO~ +ঙ 'uNgO~ চ tSO ছ tShO // [h] to distinguish from [tS] জ JO @@ -174,9 +176,9 @@ _dpt _d'Osomik_ অ O আ a ই hrOS:o'i -ঈ dirg#o'i +ঈ d'i:rg#o'i উ hrOS:o'u -ঊ dirg#o'u +ঊ d'i:rg#o'u ঋ ri ঔ ow @@ -190,10 +192,10 @@ _ও o // combining vowel signs া 'akar -ি r'oS:ikar -ী d'irg#ikar -ূ r'oS:ukar -ু d'irg#ukar +ি hrOS:o'ikar +ী d'i:rg#ikar +ূ hrOS:o'ukar +ু d'i:rg#ukar ৃ r'ikar ে 'ekar ৈ 'ojkar diff --git a/dictsource/bn_rules b/dictsource/bn_rules index 66b685af..c3077287 100644 --- a/dictsource/bn_rules +++ b/dictsource/bn_rules @@ -1,4 +1,5 @@ - +// Pronounciation rule for Bengali. +// Improvement input by Him Prasad Gautam (Nepal). // This file is UTF8 encoded // letter groups: @@ -97,56 +98,58 @@ // Vowel Signs .group া - া a - াঁ a~ - + C) া a + C) াঁ a~ + .group ি - ি i - িঁ i~ - + C) ি i + C) িঁ i~ + .group ী - ী i - ীঁ i~ + C) ী i + C) ীঁ i~ .group ূ - ূ u - ূঁ u~ + C) ূ u + C) ূঁ u~ .group ু - ু u - ুঁ u~ - + C) ু u + C) ুঁ u~ + .group ৃ - ৃ ri - ৃঁ ri~ + C) ৃ r'i + C) ৃঁ r'i~ - .group ে - ে e - েঁ e~ - েউ ew - + C) ে e + C) েঁ e~ + C) েউ ew .group ৈ - ৈ oj - ৈঁ o~j - + C) ৈ oj + C) ৈঁ o~j + .group ো - ো o - োঁ o~ - + C) ো o + C) োঁ o~ + .group ৌ - ৌ ow - ৌঁ o~w - - + C) ৌ ow + C) ৌঁ o~w + + + // Consonants .group ক ক kV ক (B k - + ক্ষ k#k#V // or [k#:] ? + ক্ষ (B k#k# + + .group খ খ k#V খ (B k# @@ -164,7 +167,7 @@ .group ঙ ঙ NV - ঙ্ (B N + ঙ (B N .group চ @@ -173,8 +176,8 @@ .group ছ - ছ tS#V - ছ (B tS# + ছ tShV + ছ (B tSh .group জ @@ -194,7 +197,7 @@ .group ঞ ঞ nV - ঞ্ (B n + ঞ (B n .group ট @@ -232,6 +235,7 @@ .group ত ত tV ত (B t + ত (_ to .group থ @@ -281,7 +285,8 @@ .group য় য় jV - য় (B j + _) য় (B j + য় (B // used to separate 2 vowels .group য @@ -289,7 +294,8 @@ য (B dZ য় jV // nukta - য় (B j + _) য় (B j + য় (B ্) য (C & // ব্যস্ত [bæsto] ্) যা & // ব্যাকরণ [bækɔron] @@ -333,6 +339,7 @@ .group হ হ hV হ (B h + হ (_ ho .group হ্ব @@ -352,21 +359,24 @@ .group ঢ় // can be ঢ plus nukta ঢ় hr.V ঢ় (B hr. + ঢ় (_ hr.o .group ঁ - ঁ O~ // candrabindu, nasalize the previous vowel + C) ঁ O~ // candrabindu, nasalize the previous vowel/Consonants .group ং - ং N // anusvara/onushshor - + A) ং N // anusvara/onushshor + C) ং N // anusvara/onushshor + .group ঃ // visarga/bishorgo ঃ // doubles the following consonant ঃ (_ H .group ্ // virama/hoshonto - ্ + C) ্ + .group ় ় // nukta, modifies a consonant diff --git a/dictsource/da_rules b/dictsource/da_rules index 3f891bf8..3d4b593c 100644 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -37,10 +37,14 @@ .group a a & // changed from [a?] + _) at (_ & h) al (fback A aaron ArVn // name zol) a '& // name m) ary &ri // name + _t) ate Ejt // name +shangh) ai Aj + bl) a (zer E vin) ai (gre 'E // stressed _gymn) a (st '& // stressed _gymn) a (sti & // avoid secondary stress in gymnastik @@ -51,15 +55,16 @@ // Short vowel before double consonant r) a (C%++ ?A // trappe a (C%+ ?& // pladder, basser, masser - a (ld+ &# // kalde, falde - ld => l double consonant + a (dt+ ?& // uskadte - dt => d + a (ld+ ?& // kalde, falde - ld => l double consonant C) a (L06% ?A // tapper, tappen, lapper, lappen v) a (cc ?A // vaccinere a (ffald+ A s) a (bbat ?& grim) a (sse '?& // stressed _c) annes &:n: // French city - a (cc+ A // accent - b) accarat AkAr'A + a (cc+ ?A // accent + b) accarat ?Ak?Ar'?A st) a (ccato & // Short followed by 2 consonants = 1 phoneme: lg=>[l], ds=>[s] @@ -74,20 +79,34 @@ pl) a (n ?& // plan pl) a (ner ?& // planer pl) a (nen ?& // planen + bef) a (l ?& // befale // long & before de(n) - made long in ph_danish a (de & // gade a (den & //gaden +// combinations with "lade = l& + l) ade (_være & + l) ader (_være A + l) ade (_dig & + l) ade (_sig & + // Have = "oceans" vs. the verb have - _vi_h) ave & // hvad skal vi have? - _du_h) ave & // hvad skal du have? - _de_h) ave & // hvad skal de have? - _i_h) ave & // hvad skal I have? - vil_h) ave & - må_h) ave & -kunne_h) ave & // kunne have sagt -burde_h) ave & // burde have sagt + _vi_h) ave (_ & // hvad skal vi have? + _du_h) ave (_ & // hvad skal du have? + _de_h) ave (_ & // hvad skal de have? + _i_h) ave (_ & // hvad skal I have? +_jeg_h) ave (_ & // hvad skal jeg have? +_vil_h) ave (_ & + _må_h) ave (_ & +_kunne_h) ave (_ & // kunne have sagt +_kan_h) ave (_ & // kunne have sagt +_burde_h) ave (_ & // burde have sagt +_også_h) ave (_ & +_nok_h) ave (_ & +_nødig_h) ave (_ & +_ikke_h) ave (_ & +_stadig_h) ave (_ & t) abernak abVn'ak // tabernakel, tabernakler mil) a (no '&: // stressed @@ -95,11 +114,12 @@ burde_h) ave & // burde have sagt past) a & // tandpastareklame - r) a (CK+ A // drab, Rasmus, rask + r) a (CK+ ?A // drab, Rasmus, rask r) a (CA+ A // drabelig, brase, gratis + r) a (Ci+ ?A // tradition, radio r) a (len+ ?A // gralen TEST r) a (le+ A // morale, prale - r) a (dio++ A: // shortend too much by ph_danish + r) a (dio++ A // shortend too much by ph_danish br) ady Ejdi // name br) adbury &db@-re // name a (dress+ & // afsenderadresse @@ -150,9 +170,9 @@ burde_h) ave & // burde have sagt _br) ando &ndOw // Marlon Brando r) a (n A // ran, ransage _r) anda (l &ndO // Randall - name - tr) a (C A // straf, traf, trav + tr) a (L02 ?A // straf, traf, trav r) a (nd+ ?A // strand - short A - str) a A // ekstra +// str) a A // ekstra r) a (L06 A // trappe r) a (CL04 A // generation vibr) a (to 'A // stressed @@ -180,11 +200,11 @@ burde_h) ave & // burde have sagt r) a (nsigt & // pokeransigt // a followed by t + a or o: &: - a (ta &: // data TEST - a (to &: // dato TEST + d) a (ta &: // data TEST + d) a (to &: // dato TEST -// general rule: [&:] after m/n before L02 followed by e - L09) a (L02e+ &: // mave +// general rule: [&] after m/n before L02 followed by e + L09) a (L02e+ & // mave can) averal '&v3r3l // Cape Canaveral gn) av (pot Aw // gnavpotte torn) ad (o '&d // stressed @@ -192,7 +212,7 @@ burde_h) ave & // burde have sagt kan) ape &p'e // kanape kan) apé &p'e // kanapé n) a (palm & // - d) a (vid &: // name + d) a (vid & // name // General rule &: followed by -tus a (tus &: // status TEST @@ -249,8 +269,8 @@ burde_h) ave & // burde have sagt // general rule: consonant + a + labial + front vowel C) a (mi+ & // vitamin, dynamit, kamin, familie - gest) a (po 'A // - kad) a (ver '& // stressed + gest) a (po '?A // + kad) av (er '?Aw // stressed r) a (L02L04+ A // bravo f) a (vo+ & // favorit willi) a (m A // name @@ -263,22 +283,25 @@ burde_h) ave & // burde have sagt f) a (mle+ A // // general rule: [&] after k - k) a (+ & // kage, kaste - k) a (jak &' // kajak + k) a (+ & // kage + k) a (CC ?& // kaste + k) a (jak ?&' // kajak mik) ad (o '&:d // stressed - k) a (kao+ & // kakao + k) a (kao+ ?& // kakao _chik) a (ne '& // stressed - sk) a (k A // skak - k) abaret abar'E // - _b) are (t ar'&# // stressed - _mak) a (b '& // makaber - stressed + sk) a (k ?A // skak + k) abaret AbAr'E // + _b) are (t Ar'&# // stressed + _mak) a (b '?& // makaber - stressed + _stak) a (ter '?& // stressed _alk) a (li '& // alkalisk stressed k) atie Ejti // name -narkotik) a & // narkotikaproblemer - k) athy &Te // name +narkotik) a ?& // narkotikaproblemer + k) athy ?&Te // name // general rule: [&:] after consonant before "ne" - C) a (ne &: // "mane" opposed to "mande" + C) a (ne & + C) a (nd ?& // "mane" opposed to "mande" C) a (nen & // banen - too long with &: + n@-n form) a (ne & // formane C) a (ner & // glaner @@ -390,16 +413,19 @@ gammeld) a (gs & // // general rule: [A] before r ar (K++ A: // skar, barsk - ar (Ce++ A // farten + ar (CA++ A // farten, kartofler ar (Ci++ A // farlig + C) ar (A+ Ar // karikere ar (k+ A: // marken - ar (A+ AR // tarif TEST + t) ar (L04+ AR // tarif TEST + C) are (+ AA // klare, bare + C) arer (_ AA // klarer _) ar (i+ A: // arier, arisk - are (++ A?A // skare, sparepenge + L08) are (++ AA // skare, sparepenge aret (+ A?A@-D // advaret ar (ne+ A // barnet - ar (e+ AR // reparere, parere TEST - f) are (++ A:A // fare + p) ar (e+ AR // reparere, parere TEST + f) are (++ AA // fare f) ar (et++ A3- // faret f) arer (++ A:V // farer, søfarer f) arere (++ A:VR@- // søfareren @@ -430,16 +456,18 @@ _longob) a (rd 'A // stressed _mon) a (rki A' // stressed _bulg) a (r 'A // bulgarer - stressed -// general rule: [a] before velars - a (L01++ A // planke, slanke, anke, flanke, gang, hank, aksel, maj, blanko +// general rule: [A] before velars + a (L01++ ?A // planke, slanke, anke, flanke, gang, hank, aksel, maj, blanko a (L01%++ ?A // bakken + a (L01L04++ ?& // Patagonien TEST +// v) a (Cu++ ?& // evakuere TEST a (x A // Axel _ig) a (ng@ 'A // igangværende es) aj (as 'aI // name pizz) a & // pizzakæde b) a (jonet & // l) a (gune & // - C) a (L10L04++ A // pakistan + C) a (kL04++ A // pakistan afrik) a (+ & // Afrikakorpset f) a (cL04++ & // facon, facilitet kap) a (cit & // kapacitet @@ -468,7 +496,7 @@ _longob) a (rd 'A // stressed r) a (L01++ A // tragisk boomer) a (ng 'A // stressed r) angoon &ng'u:n // - a (kadem++ & // militærakademi + aka (dem++ ?&k?& // militærakademi a (ggres++ & // aggression spr) ag (let Aw // _) a (gA++ & // agere @@ -524,7 +552,7 @@ snakkes) ag (lig '& // tax) a & // taxachauffør f) a (cL11 & // facade att) ache &S'e // - C) a (L10L04 & // pacifist - maybe not a valid rule c = s here + C) a (L10L04 ?& // pacifist - maybe not a valid rule c = s here k) atakomb &t&k'omb // C) a (L10e A // race sperm) a & // spermacethval @@ -573,30 +601,30 @@ bloody_m) ary &ri // r) a (cerbane E // r) a (cervogn E // r) a (cerkør E // - _okt) a (v '& // stressed - _konk) a (v '& // stressed + _okt) a (v '?& // stressed + _konk) a (v '?& // stressed _det) a (lje '& // stressed nev) ad (a '&d // - _pol) a (k 'A // stressed polak - _kos) a (k 'A // stressed - kosak -_milli) a (r 'A // stressed - milliard -_trilli) a (r 'A // stressed - trilliard - _sejl) ad (s '& // stressed - silent d - sejl) ad (s & // unstressed - silent d + _pol) a (k '?A // stressed polak + _kos) a (k '?A // stressed - kosak +_milli) ar '?A // stressed - milliard +_trilli) a 'AA // stressed - trilliard + _sejl) ad (s '?& // stressed - silent d + sejl) ad (s ?& // unstressed - silent d _sah) a (ra 'A // stressed metast) a (se '& // stressed - pic) a (sso '& // stressed -supped) a (s '& // stressed + pic) a (sso '?& // stressed +supped) a (s '?& // stressed _o) a (se '& // stressed - salam) a (nder '& // stressed -_propag) a (nd '& // stressed - propaganda - bals) a (mi '& // stressed - balsamico - _fas) a (n '& // stressed + salam) a (nder '?& // stressed +_propag) a (nd '?& // stressed - propaganda + bals) a (mi '?& // stressed - balsamico + _fas) a (n '?& // stressed _entusi) a (s '& // stressed - entusiast bah) a (ma '& // stressed L08) av (C A?u // stavn - st) av (nin &v // stavning - bogst) av &v // bogstavrim - not [Au] + st) av (nin ?&v // stavning + bogst) av ?&v // bogstavrim - not [Au] h) av (_ & // hav - problem with the noun "hav" [hAu] iske_h) av (_ A?u // Kaspiske hav, Karibiske Hav @h) av (_ A?u // flammehav @@ -662,10 +690,10 @@ ginger_) ale Ejl // _d) ave _^_en // name _w) aco Ejkow // US city r) aw (+ O // OB Rawlins - l) awrence 0r@ns // name + l) awrence ?0r@ns // name b) ach Ax // name - _) ahab Ejh&b // name - _) allie (_ &li // name + _) ahab Ejh?&b // name + _) allie (_ ?&li // name C) ayes Ejs // name Hayes en_l) a (ser Ej // l) a (serst Ej // laserstråle @@ -683,29 +711,30 @@ ginger_) ale Ejl // r) al ($p_alt++ '?Al // [?A] after "r" - general, neutral, koral &) al (ism$p_alt+ &l' // socialisme // exception - no stress because of stressed -ion - r) a (l@@+ A // centralisation NEEDS MORE WORK + r) a (l@@+ ?A // centralisation NEEDS MORE WORK an) al (fabet =&l // - an) al (y+ &l' // analytiker - form) aldehyd &ld@-h'yD // + an) al (y+ ?&l' // analytiker + form) aldehyd ?&ld@-h'yD // // words in da_list with final -ance - stressed a - &) ance ($p_alt 'ANs@ // balance, romance - &) ance (r$p_alt 'ANsV // nuancer + &) ance ($p_alt '?ANs@ // balance, romance + &) ance (r$p_alt '?ANsV // nuancer voy) ance ($p_alt ''ANs // clairvoyance - &) anche ($p_alt 'ANs@ // revanche - &) ance (+ ANs@ // unstressed after a syllable - ferieromance - &) ance (re+ ANse // afbalancere - &) ance (re$p_alt ANs'e // avancere + &) anche ($p_alt '?ANs@ // revanche + &) ance (+ ?ANs@ // unstressed after a syllable - ferieromance + &) ance (re+ ?ANse // afbalancere + &) ance (re$p_alt ?ANs'e // avancere // stressed "a" in words with -ant in da_list - &) ant ($p_alt ''&nt // interessant - &r) ant ($p_alt 'Ant // [A] after "r" - kurant - &r) ans ($p_alt 'Ans // tolerans - &) ans ($p_alt '&ns // varians + &) ant ($p_alt ''?&nt // interessant + &r) ant ($p_alt '?Ant // [A] after "r" - kurant + &r) ans ($p_alt '?Ans // tolerans + &) ans ($p_alt '?&ns // varians // stressed a in final -at - words in da_list - &) at ($p_alt '?&d // attentat + &) at (_$p_alt '?&d // attentat + &) at (e$p_alt '?&d // attentater &) at (t$p_alt ''?& // fregatter - only one t &) ation ($p_alt &S''?on // delegation - 2*'' because of ventil-ventilation &r) ation ($p_alt AS'?on // koncentration @@ -723,20 +752,20 @@ _oblig) atio (n &S'o // clash with "obligat" in da_list // nouns with final -ade in da_list - stressed a &) ade ($p_alt '&:D@ // hystade &) ade (r$p_alt '&:DV // hystader - &) ader (e$p_alt &d'er // barrikaderede - er(e) words in da_list + &) ader (e$p_alt ?&d'er // barrikaderede - er(e) words in da_list &r) ade ($p_alt 'A:D@ // parade &r) ade (r$p_alt 'A:DV // parader - &r) ader (e$p_alt Ad'er // paraderede - er(e) words in da_list - &) adent ($p_alt &d'ent // don't spoil the -ent rule - dekad'ent + &r) ader (e$p_alt ?Ad'er // paraderede - er(e) words in da_list + &) adent ($p_alt ?&d'?ent // don't spoil the -ent rule - dekad'ent // nouns with final -an in da_list - stressed a // alt2 is used in order not to stress -ner words in da_list // where "er" has been removed eg. J'apan which becomes jap'ansk, jap'aner - &) an ($p_alt2+ '&n // leguan, velan - &) an (i$p_alt2+ &n' // pyromani, nymfomani - &r) an ($p_alt2+ 'An // varan - &r) an (i$p_alt2+ An' // tyrani - &r) an (ne$p_alt2+ 'A // tyrannen - one n + &) an ($p_alt2+ '?&n // leguan, velan + &) an (i$p_alt2+ ?&n' // pyromani, nymfomani + &r) an ($p_alt2+ '?An // varan + &r) an (i$p_alt2+ ?An' // tyrani + &r) an (ne$p_alt2+ '?A // tyrannen - one n // final -abel in da_list - stressed a &) ab (el$p_alt '?&b // aimabel @@ -835,7 +864,7 @@ _chimp) a (n '& // stressed - chimpanse tj) a (_ &: // j) avert A?uVd // javert l) ave (ment Aw // lavement - also [l&v@-mAN] - l) ave (_ &v@ // lave + l) ave (_ &v@- // lave l) aver (_ &vV // laver sl) ave &v@- // slavearbejde sl) aver &vV // @@ -973,6 +1002,7 @@ restaur) ant '?AN // added stress kålr) a (bi 'A // kålrabi - stressed a au (++ Aw // auto, autoritet aubergin oberS'i:n // + auggie O:gI // name vagin) a ?& // vaginaudvider l) aurie Ori // name astron) au (t 'Aw // stressed @@ -984,7 +1014,7 @@ astron) au (t 'Aw // stressed m) aureen OR'i:n // name _dinos) aur 'A?uV // stressed _dinos) aurer 'A?urV // stressed - ch) au (vin o // chauvinist + ch) au (vin ?o // chauvinist _p) au (l O // name p) au (lus Aw // name _biss) au 'A:w // Guinea-Bissau @@ -994,7 +1024,8 @@ _dinos) aurer 'A?urV // stressed s) au (terne o // wine @h) av_ A?u // ildhav -[Au] = [&v] followed by syllable: ['ilh&:v@D] en_k) ar (l ?& // "sikke en karl" - @k) ar (l ?& // bøssekarl, forkarl + @k) ar (l+ ?& // bøssekarl, forkarl + @k) ar (le+ & // bøssekarle, forkarle k) ar (lene & // afrik) aa (n A: // afrikaaner action &kSj@n // actionfilm @@ -1113,14 +1144,14 @@ hjemmeb) ag (_ &j // l) ag (re+ &j // PO overskudslagre pell) ag (ra &g // sl) agg (e ?Ak // slagger - C) ag (t+ Ag // venskabspagt, smagte, sagt + C) ag (t+ ?Ag // venskabspagt, smagte, sagt b) ag (tal Aw // bagtalt - sl) ag (ne &j // rædselsslagne - l) ag (_ &j // lag - forl) ag %&j // forlagsvirksomhed - opsl) ag &j // + sl) ag (ne ?&j // rædselsslagne + l) ag (_ ?&j // lag + forl) ag %?&j // forlagsvirksomhed + opsl) ag ?&j // f) ag (@ A?u // fagsnak, ufaglært, fagarbejde - f) ag (ter Ag // + f) ag (ter ?Ag // l) ag (C A?u // flagstang, lagkage fl) ag (afbrænd A?u // flagafbrænding gall) agh 3g // name @@ -1128,18 +1159,18 @@ hjemmeb) ag (_ &j // _sl) ag (sen ?Ag // slagsen gennemsl) ag (+ &j // gennemslagskraft sl) ag (sværd A?u // - pl) ag &j // plagsom - pl) ag (i &g // plagiere, plagiat - fl) ag (rant &g // flagrante delicto - l) ag (re &j // oplagres + pl) ag ?&j // plagsom + pl) ag (i ?&g // plagiere, plagiat + fl) ag (rant ?&g // flagrante delicto + l) ag (re ?&j // oplagres fl) ag (re+ A?u // esl) ag (lA A?u // beslaglægge - sl) ag (te+ Ag // slagter - sl) ag (tn+ Ag // slagtning - sv) ag (t &j // svagt, åndssvagt -sikkerhedsv) ag (t Ag // -åndssv) ag &j // -evnesv) ag &j // + sl) ag (te+ ?Ag // slagter + sl) ag (tn+ ?Ag // slagtning + sv) ag (t ?&j // svagt, åndssvagt +sikkerhedsv) ag (t ?Ag // +åndssv) ag ?&j // +evnesv) ag ?&j // parkeringsv) ag (t Ag // æresv) ag (t Ag // butiksv) ag (t Ag // @@ -1153,27 +1184,42 @@ hospitalsv) ag (t Ag // r) ag (e+ A?u // drage, rage C) age (++ &j@- // bage, kage fl) age (ne ?&j@- // flagene - C) age (nK++ ?&j@- // sagen, kagen + C) age (nK++ &j-@- // sagen, kagen _t) age (_+ &j@- // tage _t) age (_sig & _t) age (_imod & - du_t) age (_ & + _du_t) age (_ & +_det_t) age (_ & + _vi_t) age (_ & + _i_t) age (_ & +_jeg_t) age (_ & +_vil_t) age (_ & +_ville_t) age (_ & +_kunne_t) age (_ & +_skulle_t) age (_ & +_måtte_t) age (_ & +_ikke_t) age (_ & + _at_t) age (_ & + _må_t) age (_ & +_godt_t) age (_ & + _t) age (_på_ & + _t) age (_mig_ & voldt) age (_ & - voldt) ager (_ Ar - cart) age (na &g'e: // name - b) ag (efter++ &j // + voldt) ager (_ ?Ar + cart) age (na ?&g'e: // name + b) ag (efter++ ?&j // age (lig '&j@- // uindtagelig, behagelig - stressed - arm) aged &g'Ed // Armageddon - arm) agedd &g'Ed // Harmagedon + arm) aged ?&g'Ed // Armageddon + arm) agedd ?&g'Ed // Harmagedon mut) age (n &g'e // stressed affut) age &:S@- // missilaffutage _b) ag (el+ Ejg // - age (rn &jV // "acorn" - _) age (_ &j@- // "age med heste" - _) ager (_ &jV // "field" - ager (høn &jV // agerhøne/høns - l) ag (n &j // lagner - sl) ag (ni+ &j // rådslagning + age (rn ?&jV // "acorn" + _) age (_ ?&j@- // "age med heste" + _) ager (_ ?&jV // "field" + ager (høn ?&jV // agerhøne/høns + l) ag (n ?&j // lagner + sl) ag (ni+ ?&j // rådslagning ass) age &S@- // rygmassage plant) age &S@- // citronplantage on) age &S@- // kontraspionage @@ -1324,7 +1370,7 @@ _trienn) al (e '&l _) be (@ b%?e // besta'and // exceptions to the "be" rule - _) be (dste b?E // bedstefar, bedstemor + _) be (dste bE // bedstefar, bedstemor _) be (dring bE _) be (nmel be _) be (gge b?E @@ -1335,6 +1381,8 @@ _trienn) al (e '&l _) be (nchmark bE _) be (nedder be _) be (nende be + _) be (nene b?e + _) be (ner be _) be (net be _) be (nfisk be _) be (nfedt be @@ -1406,7 +1454,7 @@ diskvalifi) cer ser // c (y s // s followed by y - cykel cyper kypV // Cypern - curler kWlV // + curler kWlV _) clarence kl&R@-ns // name _) capone k&p'Own // name A) c (e s // race, procent @@ -1416,28 +1464,28 @@ cadilla) c k // Cadilacen ce (rt s'E // koncert corn (f kV:n // cornflakes c (i s -frederi) c (ia =ks // +frederi) c (ia =ks _pa) c (ino tS' // name scor) c (ese tS' // name c (embalo tS // music instrument ch (loe k // Chloe c (k - c (ølibat s // + c (ølibat s ch (+ S // check, chokolade ch (i tS // chili ch (eese tS // cheeseburger _ma) ch (_ k // sound barrier chaplin tS&plin // name - challenge tS&lendZ // - chelsea tSElsi // - cheyenne SaI'En // + challenge tS&lendZ + chelsea tSElsi + cheyenne SaI'En maso) ch (is k // sadomasochisme, masochist wi) ch tS // sandwich chicago Sik'AgOw // child tSaIld // Fairchild chopin SopEN // name ch (ip tSj // mikrochip - te) ch (no k // + te) ch (no k mi) ch (a k S ch (r k c (ha S @@ -1447,82 +1495,83 @@ frederi) c (ia =ks // cigaret sig3r'&#t cigarett sig3r'&#t cc ks // accent + be) cca %k?& // Rebecca yu) cc (a k ro) cc (o k // name pu) ccini S'ini // name rebe) cc (a =k // name so) cc (er k // European football - sta) cc (ato k' // + sta) cc (ato k' pi) cc (o k // piccolo - cappu) cc (ino tSj' // + cappu) cc (ino tSj' fa) c (ad s fa) c (on s - ceylon saIl/2Vn // - cornichon kVrniS'VN // - charlie tSAli // - charles tSA:ls // + ceylon saIl/2Vn + cornichon kVrniS'VN + charlie tSAli + charles tSA:ls cynthia senTi& // name - c (æsar s // - cordelia kVd'ili-& // + c (æsar s + cordelia kVd'ili-& ni) ch (ol k // Nicholas - computer kVmpj'utV // + computer kVmpj'utV cha (t tj& // chatte - ch (ateau S // - chianti kj'&nti // - chokeren (_ SOwkVr@n // - callgirl kVlgW:l // + ch (ateau S + chianti kj'&nti + chokeren (_ SOwkVr@n + callgirl kVlgW:l cowboy kaubOj _) custer kVstV // name - _) ciao (_ tSjAw // + _) ciao (_ tSjAw claude klO:d // name claudette klOd'et // name - churchill tSW:Sil // - cambridge kejmbRidZ // - canterbury k&ntVbri // - connecticut kVn'etikVd // - carlisle kAlaIl // - china tjaIn& // + churchill tSW:Sil + cambridge kejmbRidZ + canterbury k&ntVbri + connecticut kVn'etikVd + carlisle kAlaIl + china tjaIn& _) cape (_town kEjp // name _) chuck tSVk // name - cleveland kli:vl&n // - croissant kroas'AN // - _) cartier kArtj'e // + cleveland kli:vl&n + croissant kroas'AN + _) cartier kArtj'e clair (voy klEr // clairvoyance co (nrad kV // name country kVntri // chagall S&g'&l // name - _ali) ce s // - connie kVni // - chablis S&bl'i // - creme kr?Em // - creme (n kr?Em@ // - catering kEit@riN // -piccadilly_) circus sWk@s // - coleridge kOwlridZ // - colada kol'AD& // - creek kri:k // - camembert kAmANb'Er // + _ali) ce s + connie kVni + chablis S&bl'i + creme kr?Em + creme (n kr?Em@ + catering kEit@riN +piccadilly_) circus sWk@s + coleridge kOwlridZ + colada kol'AD& + creek kri:k + camembert kAmANb'Er crazy kREjsi // Crazy Horse - cincinnati sensin'&ti // - chihuahua tSiw'awa // + cincinnati sensin'&ti + chihuahua tSiw'awa connor kVnV // name creasy krisi // name - c (ello Sj // - c (ellofan s // + c (ello Sj + c (ellofan s cutler kVtlV // name cajun kEdZ3n // English pronunciation - courtney kO:tni // -north_) carolina k&rol'aIn& // + courtney kO:tni +north_) carolina k&rol'aIn& _) cathy k&Ti // name _) cagney k&gni // name - cottage kVtidZ // + cottage kVtidZ cheryl SErel/2 cohen kOu@-n // name cieux sj'W // Bonacieux _) cardin kArd'&N // name cézanne ses'&n // Cézanne cézannen ses'&n@-n // Cézannen - cockney kVkni // + cockney kVknI clerk klA:k // Clerkenwell carmine kA:maIn // name @@ -1531,10 +1580,10 @@ north_) carolina k&rol'aIn& // d d A) de (_ D@-_! // hade, lade - a) de (@ D@- // hadefuld + ha) de (@ D@- // hadefuld a) der (@ DV // skaderne ski) de (@ D@- // skidefuld - ski) der DV // skideren + ski) der (@ DV // skideren ski) der (ik DVR // skiderik ba) de (@ D@- // badeforhæng ga) de (@ D@- // gadebetjent @@ -1553,7 +1602,7 @@ north_) carolina k&rol'aIn& // vene) d (ig d d (øm+ d // idømme i) d (ol d - u) d (i D // + u) d (i D hou) di (ni d'i // name _pro) du (kt d'O // produkt _pro) du (ktiv du // produktiv @@ -1590,6 +1639,7 @@ tourne) dos d'o // stressed d (om d // PN trældom d (ronning d // Snedronningen d (ufte d // lavendelduftende + d (amp d // keddeldamp el) dorado dor'Ado // stressed vel) d (rej d // veldrejede _hil) d (a d // name @@ -1616,7 +1666,8 @@ turtel) d (ue d sal) d (o d C) d (etA d // metaldetektor ol) d (ing d // holdingfirma, olding - d (ag d // gammeldags + d (ag+ d // gammeldags, junidag + ul) d // uldagtig - silent al) d (rig d // aldrig il) d (ring d // skildring kil) d (re d // skildre @@ -1655,17 +1706,17 @@ stikor) d // exception - silent d in 'stikord' // exceptions fe) dt (@ t // fedtet, fedtsyl - ski) dt t // + ski) dt t tu) ds (e s // silent d bi) d (sk // silent d _ma) d (sen // silent d spre) dt t // spredtes sta) ds (_ s // flitterstads - stru) ds s // + stru) ds s i) d (ti+ D // hidtil - bu) d (apest d // + bu) d (apest d d (rama d // melodramatisk - æ) d (ru d // + æ) d (ru d pe) d (ro d // name e) d (gar d // name be) d (ford d // name @@ -1680,7 +1731,7 @@ stikor) d // exception - silent d in 'stikord' _u) d (++ D // udse A) ds (el s // fødsel, brændsel, bidsel A) ds (le s // gidsler, fødsler - ræ) d (sel D // + ræ) d (sel D ned) d (s D // nedsmelte ø) d (s++ D // dødscelle, nødspor, ødsel, nødstilfælde fø) d (s++ // fødsel @@ -1690,10 +1741,10 @@ stikor) d // exception - silent d in 'stikord' svær) d // silent d - sværdfisk vær) d (i d // bemærkelsesværdigt hi) ds (e s // ophidse - pla) ds s // + pla) ds s pu) ds s // pudse stu) ds s // studs, studse - smu) ds s // + smu) ds s dø) d (+ D // dødtræt lfre) ds s // tilfreds fjer) di (ng e // silent d - forfjerding (1/4 of an animal ) @@ -1701,7 +1752,7 @@ stikor) d // exception - silent d in 'stikord' // general rule: silent d before st d (st++ // silent d - sidste, mindst mo) d (st+ D // modstand, modstå - u) d (styr+ D // + u) d (styr+ D bu) d (s++ D // forbudstiden gla) dstone dst0wn // name y) d (stat+ D // sydstaterne @@ -1710,25 +1761,27 @@ stikor) d // exception - silent d in 'stikord' // general rule: [D] after a vowel A) d (A D ste) d D // sted - aci) d (ose d // + aci) d (ose d fi) d (us d ø) d (em_ d // ødem ø) d (emer_ d // ødemer ø) d (emet_ d // ødemet A) dd D // skuddene - _i) d (e d // - _i) d (é d // + d (åd+ d // heltedåd + melo) d (i d // nationalmelodi + _i) d (e d + _i) d (é d ra) di (o dj evi) d (en d // evident bi) d (e D // bider - ri) de D@- // rideskole + ri) de (@ D@- // rideskole ri) der DV - si) de D@- // sidemand + si) de (@ D@- // sidemand vi) d (er D // videre ti) d (e D // tider ti) de (@ D@- // tidevand salva) dor d'O: // El Salvador - via) du (kt d'O // + via) du (kt d'O bermu) d (a d // name ju) dæ (a d'E: // name ju) d (as d // name @@ -1816,7 +1869,7 @@ stikor) d // exception - silent d in 'stikord' _) dean di:n // name dubois dybw'A // name dorothy _^_en // name - debbie dEbi // name + debbie d?Ebi // name download dAwnlowd // down dAwn // Downs syndrom detroit detr'Vjt // US city @@ -1857,6 +1910,9 @@ stikor) d // exception - silent d in 'stikord' // Short e - various words sk) e (d ?e // besked + C) e (en '?e // armeen, alleen - stressed + ch) e (C ?E // chef + p) e (ter ?e // name // Short e followed by st, st, sk - made short in ph_danish C) e (L08 E // fest, fester, hest, heste @@ -1864,15 +1920,20 @@ stikor) d // exception - silent d in 'stikord' m) e (st e m) e (ster E // politimester nærm) e @- // nærmeste + kort) e @- // korteste ån) e (C @- // månestråle rav) e (@ @- // travesko + ilk) e (@ @- // silkestrømper skad) e (@ @- // skadestue hyld) e (s @- // hyldest + lamp) e (@ @- // lampeskærm arv) e (@ @- // farvestof ugl) e (@ @- // fugleskræmsel ønn) e (st @- // kønneste rn) e (ste @- // fjerneste av) e (@ @- // pavestolt + sen) e (st @- + flott) e (st @- // exceptions cyk) e (lløb @- @@ -1896,7 +1957,7 @@ stikor) d // exception - silent d in 'stikord' t) eur 'W:r // agent provocateur // E after r - r) e E // reaktion - VERY BROAD + r) e ?E // reaktion, regiment - VERY BROAD @r) es (_ Vs // koncentreres TEST // E before n - VERY BROAD @@ -1929,44 +1990,45 @@ stikor) d // exception - silent d in 'stikord' // stress on second syllable after initial "be" in .group be // Secondary stress after a syllable - &b) e (s@ e, // hv'alrosbest,and + &b) e (s@ ?e, // hv'alrosbest,and &Ab) er V // fibersprængning - b) e (ret+ e // stemmeberettiget - ib) er (ia+ 'er // Iberia, Liberia + b) e (ret+ ?e // stemmeberettiget + ib) er (ia+ '?er // Iberia, Liberia rob) er (ta 'Er // name - forb) e e // forberede - b) e (rig e // våbenberiget - b) e (rg+ E // herberg + forb) e ?e // forberede + b) e (rig ?e // våbenberiget + b) e (rg+ ?E // herberg fab) ergé ErS'e // name bomb) e (r@ @- // bomberydder + snobb) e @- // snobbeskole dobb) e (l // silent e - reb) e (kka 'E // name + reb) e (kka '?E // name - e (fter E // efter, efterse + e (fter ?E // efter, efterse leg) e @- // legeværelse leg) e (nd E // legende (myth, not playing) dag) e @- // dagevis op) e (r @- // operere, opera _halvf) e (ms 'E // stressed - d) e (pr e // depressiv + d) e (pr ?e // depressiv _emfys) e (m 'e // stressed - kn) e (b e - kn) eb (re Eu // "knebre med næbbet" + kn) e (b ?e + kn) eb (re ?Eu // "knebre med næbbet" C) e (L02a e // tema jert) e (@ @- // hjertebarn ød) e (+ @- // ødemark // herr) e @- // herremand bed) e @- // bedemand _still) e (ben ='e - fr) e (m &# // fremad - _eks) e (mpel 'E // stressed + fr) e (m ?&# // fremad + _eks) e (mpel '?E // stressed entr) e (pr V // entreprise ordr) e @- // ordrebog - r) e (L02s &# // revse, krebs - TEST + r) e (L02s ?&# // revse, krebs - TEST br) ev (+ Ew // brevstemt br) eve Ev@- // breve Cr) evet ?Ev@-D_! // brevet, skrevet - L03) e (L02i e // akademiker + L03) e (L02i ?e // akademiker åd) e (++ @- // gådefuld åd) er (++ V // gåder nd) e @- // yndefuld @@ -1978,7 +2040,7 @@ _still) e (ben ='e kol) e (C @- // skolebog pol) e (re+ e // finpolere kol) e (st E // kolesterol - t) e (d E // sted - TEST + st) e (d E // sted - TEST st) ed (fa e // stedfar st) ed (mo e // stedmor st) ed (sø e // stedsøm @@ -1992,7 +2054,7 @@ _still) e (ben ='e kass) e (tte '?E // stresed h) e (dd ?e // hedde m) e (dalje e // medalje - v) e (de @- // helvedes + lv) e (de @- // helvedes hv) ede eD@- // hvedebrød tol) ed (o 'ed // toledostål val) e (ncia 'E // name @@ -2033,11 +2095,14 @@ banglad) esh 'ES // stressed udsl) e (t++ E // familieudslettelse, udslet (not [uDsl@D]) varsl) et @-D // ål) e (C @- // strålekrans - el) e (@ @- // seletøj + sel) e (@ @- // seletøj l) e (der e // apacheleder + simp) e (l @- // simpelthen // general rule: E before l e (lC E // heldig, held og lykke, helvede + kedd) e (l @- + sjof) e (l @- // sjofelhed // general rule: E before m e (m E // slem, slemt, hjem - short in ph_danish @@ -2045,6 +2110,7 @@ banglad) esh 'ES // stressed k) e (mo e: // kemo, kemoterapi nal) e (@ @- // Personalemøde old) e (@ @- // oldemor + bedst) e (@ @- // bedstemor d) e (ment e // E before r + consonant @@ -2056,9 +2122,12 @@ banglad) esh 'ES // stressed @C) er (C@ V // hypermoderne - TEST hj) er (t+ Er // hjerte b) er (l+++ Er // Berlin + s) er (gent Er // chefsergent + eks) er (c Er // kampeksercits // general rule: [E] after r before consonant - r) e (d E // rede, fred + r) e (d E // rede + r) e (dC ?E // redning r) e (ds ?E // tilfreds ds => s r) e (C% ?E // short e before double consonant - redde adr) e (sse ?&# // afsenderadresse @@ -2107,9 +2176,10 @@ himstr) eg (ims Vg // avoid aI // general rule: [&#] after pr followed by double consonant TEST pr) e (C%+ ?&# // presse - pr) e (s+ ?&# // - pr) e (sserende E' // - pr) estige (_ Est'iS // + pr) e (s+ ?&# +_ekspr) e (s '?&# // stressed + pr) e (sserende E' // stressed + pr) estige (_ Est'iS // stressed depr) e (ss E // depressiv // general rule: [&#] after r before ns/ms @@ -2158,19 +2228,19 @@ kriminalr) e (t &# // fr) e (l &# // frelse r) e (nse &# // nyrenset r) e (h @- // general rule: [@-] after r before h - fårehyrde, varehus - _tr) e (+ e // treholdsskift - r) e (habil e // rehabilitering + _tr) e (+ ?E // treholdsskift + r) e (habil ?E // rehabilitering r) e (nd_ &# // r) e (nde &# // -stikir) e (nddreng '&# // - @n) e (d @- // general rule: [3] after @+n before d - måned - men) e (d e // - n) e (dslag e // lynnedslag - n) e (dgang e // - n) e (dsæt e // nedsætte - n) e (dstig e // nedstigning - m) e (di+ e // medicin - rn) e (d+ ,e // derned +stikir) e (nddreng '?&# // + @n) e (d @- // general rule: [@-] after @+n before d - måned + men) e (d ?e // + n) e (dslag ?e // lynnedslag + n) e (dgang ?e // + n) e (dsæt ?e // nedsætte + n) e (dstig ?e // nedstigning + m) e (di+ ?e // medicin + rn) e (d+ ,?e // derned forn) eden 'eD@-n // an) er (@ V // anerkende L09) e (de e // nede, nederlag @@ -2178,27 +2248,28 @@ stikir) e (nddreng '&# // arkim) e (des 'e // name mus) e (um 'E // stressed mus) e (et 'E // stressed - L09) e (ta e // metal - n) etop Ed\,Vb // -heavy_m) etal Et@-l // - L09) e (l E // mellem + L09) e (ta ?e // metal + n) etop ?Ed\,Vb // +heavy_m) etal ?Et@-l // + L09) e (l ?E // mellem + m) e (CL04 ?e // melodi TEST mell) e (m @- // mellem - L06) e (rl E // perle + L06) e (rl ?E // perle rob) e (rto 'E // name - r) e (re E // operere + r) e (re ?E // operere sup) er V // superagenten - sup) er (lativ 'Er // stressed + sup) er (lativ '?Er // stressed _arl) es _^_fr // French town - _m) e (l_ e // + _m) e (l_ E // ed) er V // nederlag - tr) e (ma E' // trema + tr) e (ma ?E' // trema s) e (dd ?E // seddel s) ek (sten aI // seksten, sekstende ell) er V // ellers fr) edag Ed& // fredag - not [d&j) - nov) e (mber 'e // - dec) e (mber 'e // - sept) e (mber 'e // + nov) e (mber 'E + dec) e (mber 'E + sept) e (mber 'E eus Wws // for Greek names - Zeus, Achilleus m) euse W:z // French river st) ew ju // Stewart @@ -2383,11 +2454,20 @@ stoneh) enge EndZ // kk) e (@ @- // vækkeur TEST studi) e (@ @- // studiegruppe apach) e (@ @- // apacheleder -handsk) e @- // handskerum + kæmp) e (@ @- // kæmpestor + ys) e (@ @- // lysekrone + øs) e (@ @- // løsepenge + alk) e (@ @- // malkeko + rupp) e (@ @- // gruppemodel + ban) e (@ @- //jernbanefolk +handsk) e (@ @- // handskerum bøvs) e @- // bøvsesen + fisk) e (@ @- // fiskeforhold studi) er V // Catt) e (@ @- // skatteår + ro) e (@ @- // roesukker ell) e @- // cellevæg + _lill) e @_! ytt) e (@ @- // skytteforbundet klog) e @- // klogeste vi) e (@ @- // vievand @@ -2395,21 +2475,24 @@ handsk) e @- // handskerum næs) e (@ @- // næseblod øv) e (@ @- // prøveperiode al) e (@ @- // malebog + eng) e (@ @- // sengetid dans) e (@ @- // dansebal + rus) e (@ @- // brusetablet ås) e @- // dåse, gåsehud, Åse ån) e (@+ @- // låneansøgning, månestråle _lev) e (@++ @- // levevis arn) e (@ @- // barnebarn - kam) e (ra @- // + kam) e (ra @- ørv) e (@ @- // tørvetriller ull) e (@ @- // rullebræt od) e (@ @- // modetøj hest) e (@ @- // hestehår + els) e (@ @- // vielsesattest + knogl) e (@ @- // knoglepark ant) e (@ @- // plantesaft ørn) e (@ @- // børnebog mm) e (@ @- // dømmekraft ab) e (@ @- // abekat - e (dere @- // torpedere øl) e (@+ @- // køleskab aff) e (@ @- // straffeattest @@ -2563,8 +2646,11 @@ _sakram) e (nte 'e // words with final -ende &) ende (_++ @-n@- // troende + @r) ende (_++ ?Vn@- // glimrende // exceptions to the -ende rule - k) end (e_+++ E-n // genkende, kende, anerkende + genk) end (e_+++ E-n // genkende + anerk) end (e_+++ E-n // anerkende + _k) end (e_+++ E-n // kende søsk) end (e++ @-n _erk) end (e_++ 'En // erkende k) ender (_ E-nV // genkender, kender, anerkender @@ -2580,7 +2666,7 @@ _sakram) e (nte 'e omv) ende (+ E-n@- // omvende omv) ender (+ E-nV // omvender v) ende (tta End'E // stressed - lav) ende (l 'En@- // satressed + lav) ende (l 'En@- // stressed fj) ende e-n@- // dødsfjende fj) ender e-nV // dødsfjender @@ -2643,6 +2729,8 @@ selskabsl) eg aI // engag (e aNg&S // engagere _) en (tre aN en (tré aN // + _at_) entre (_ EntrV // entre et skib + entre (hag EntrV // entrehage c) en (t En // koncentrere c) en (tA En p) en (sion aN @@ -2675,15 +2763,16 @@ selskabsl) eg aI // lus) e (++ @- // væggelusejæger lus) er (+ ?V // bluser syg) e (++ @- // sygejournal - avoid [s'yaj,urn&:l] - v) ej (r_+ E // gråvejr - v) ej (ret_+ E // gråvejret - _v) ej (rC+ E // vejrsituationen + v) ej (r_+ ?E // gråvejr + v) ej (ret_+ ?E // gråvejret + _v) ej (rC+ ?E // vejrsituationen + _v) ej (rud+ ?E // vejrudsigt v) ejr (e_ aIR // vejre v) ejr (er_ aIR // vejrer _offic) e (_ // office (officepakke) - st) edet (_ ED@-t // værkstedet + st) edet (_ ?ED@-t // værkstedet Ad) en (@ @-n // udenlandsk, udenad - Ad) en (ti en // identificere + Ad) en (ti ?En // identificere sir) ene (+ '?En@- // gr) ene (+ En@- // grene rr) ed @-D // lærred, ørred @@ -2706,6 +2795,7 @@ _parent) e (s '?e // stressed _kat) e (der '?e // stressed ekst) e (rn '?E // stressed int) e (rn+ '?E // stressed +splint) er V // splinterny bod) e (ga '?e // stressed halvfj) e (rds '?& // stressed _konc) e (rn '?E // @@ -2723,6 +2813,7 @@ vietnam) e (ser '?e // stressed id) ee (l e'?E // ideelle, ideelt havann) e (ser '?e // stressed _malt) e (s '?e // malteser + sudan) e (ser '?e // a few words with final -es - stressed e abc) e (s '?E @@ -2768,7 +2859,7 @@ stript) ease i:s // eau (to @Au // hæveautomat empire (_state EmpaI3 // _t) e (_ e // te - kin) e (s 'e // kineser + kin) e (s '?e // kineser d) e (s_ @- // mødes _d) e (s_ e // des = desto, jo var) e @- // vareprøve, varevogn TEST @@ -2899,22 +2990,23 @@ marksk) el el evang) el el // evangelie d) el (t+ el // tildelt @f) el (t El // oliefelt - lob) el (ia 'el // + lob) el (ia '?el // d) el (e+ el // dele særd) el (es 'el // særdeleshed - stressed bind) ele (d @-le // bindeledder kvind) el (A @-l // kvindelejr djæv) el @-l // Djævelen + sjof) el @-l d) eler (+ elV // deler -bestandd) el el // - halvd) el el // -landsd) el el // - medd) el el // meddelsom, meddele -nederd) el el // +bestandd) el ?el // + halvd) el ?el // +landsd) el ?el // + medd) el ?el // meddelsom, meddele +nederd) el ?el // d) el (ing el // -_offici) el (+ 'el // officiel - verbi) el 'El // adverbiel - mod) el El // fotomodel +_offici) el (+ '?el // officiel + verbi) el '?El // adverbiel + mod) el ?El // fotomodel u) el (_+ 'El // aktuel, seksuel, visuel u) el (t_++ ''el // aktuelt, seksuelt, visuelt _samu) el El // name @@ -2924,97 +3016,96 @@ gennemsku) el (ig =el and) el (se @-l // forbandelse hand) el @-l // handel spani) el @-l // cockerspaniel - dani) el El // Daniel - ford) el el // fordel - h) el (t@+ El // tøffelhelt + dani) el ?El // Daniel + ford) el ?el // fordel + h) el (t@+ ?El // tøffelhelt _h) el (t_ el // problem with helt = hero - h) el (st El // allerhelst - r) el (at el // relateret + h) el (st ?El // allerhelst + r) el (at ?el // relateret public_r) elation il'EjS@-n t) el (ef el // telefon - ed) el (+ el // femtedel - words where "del" means 'part of' + ed) el (+ ?el // femtedel - words where "del" means 'part of' led) el (se @-l // ledelse ked) el (+ @-l // grukedel - doesn't mean 'part of' - benm) el el // benmel - uform) el El // uformel - gabri) el El // name -hvedem) el el -brillest) el El -servantest) el El -spisest) el El -landingsst) el El -underst) el (+ El - _st) el (_ El - ond) el el // milliondel - jav) el 'el // stressed e in 'javel' + benm) el ?el // benmel + uform) el ?El // uformel + gabri) el ?El // name +hvedem) el ?el +brillest) el ?El +servantest) el ?El +spisest) el ?El +landingsst) el ?El +underst) el (+ ?El + _st) el (_ ?El + ond) el ?el // milliondel + jav) el '?el // stressed e in 'javel' _v) el ?El // velkommen icha) el l // Michael ika) el l // Mikael - brøkd) el el - bagd) el el // - byd) el el - _for) el '&#l // forel - fish + brøkd) el ?el + bagd) el ?el // + byd) el ?el + _for) el '?&#l // forel - fish _for) el (ig @-l // foreligge _for) el (æg @-l // forelægge - for) el (s 'El // forelsket - citad) el 'el - ejend) el el - ent) el El // eksperimentel - fid) el 'el - ded) el el // tiendedel, niendedel - farv) el 'El - s) el (ska El // selskab - juv) el 'el - kam) el 'el + for) el (s '?El // forelsket + citad) el '?el + ejend) el ?el + ent) el ?El // eksperimentel + fid) el '?el + ded) el ?el // tiendedel, niendedel + farv) el '?El + s) el (ska ?El // selskab + juv) el '?el + kam) el '?el kap) el '?El -// kap) ell '?El -legemsd) el el - løsd) el el - _makr) el (+ '&#l -materi) el 'El -medikament) el 'El -mortad) el 'El - mot) el 'El - nuv) el 'El - ovend) el el -parall) el 'El - parc) el 'El // parcelhus - past) el 'El - ped) el (+ 'El -procentd) el el -programm) el 'el - prop) el 'el - reb) el 'el - re) el 'el -reserved) el el - rism) el el - rond) el 'El - rugm) el el - rundd) el el - sagom) el el - sard) el 'El +legemsd) el ?el + løsd) el ?el + _makr) el (+ '?&#l +materi) el '?El +medikament) el '?El +mortad) el '?El + mot) el '?El + nuv) el '?El + ovend) el ?el +parall) el '?El + parc) el '?El // parcelhus + past) el '?El + ped) el (+ '?El +procentd) el ?el +programm) el '?El + prop) el '?El + reb) el '?El + re) el '?El +reserved) el ?el + rism) el ?el + rond) el '?El + rugm) el ?el + rundd) el ?el + sagom) el ?el + sard) el '?El s) el (e_ el // sikkerhedssele s) el (er_ el // sikkerhedsseler s) el (ers_ el // sikkerhedsselers -sigtem) el el -_skalp) el 'El - sport) el 'el +sigtem) el ?el +_skalp) el '?El + sport) el '?el stikked) el el - såv) el 'El - _tab) el 'El - tab) el El + såv) el '?El + _tab) el '?El + tab) el ?El respektab) el @-l // irritab) el @-l // -tarant) el 'el -univers) el 'el -_frikad) el (l 'El // stressed - frikadelle -frikad) el (l El // -verdensd) el el +tarant) el '?El +univers) el '?El +_frikad) el (l '?El // stressed - frikadelle +frikad) el (l ?El // +verdensd) el ?el @) el (øs+++ @-l // mageløs, kasteløs jul) eleg @-laI // juleleg dr) el (+ Vl // ældre, forældreløs - alleh) elg (ens 'Elj // stressed - allehelgensdag - elliot EljVt // name + alleh) elg (ens '?Elj // stressed - allehelgensdag + elliot ?Elj?Vt // name .group en // noun suffix -en (perlen - the pearl), -ens (perlens - the pearl's) @@ -3095,7 +3186,7 @@ galdest) en ?en grundst) en ?en gråst) en ?en hinkest) en ?en -hjørnest) en ?en +hjørnest) en (+ ?en holst) en ?en kalkst) en ?en kampest) en ?en @@ -3164,33 +3255,34 @@ _en_syr) en '?en // problem with "syren" = "the acid" rev) en (che AN // not stressed after a syllable // $alt words with final -ent in da_list - stressed e - &) ent ($p_alt++ 'Ent // student + &) ent ($p_alt++ '?Ent // student &es) ent ($p_alt+ 'AN // present (gift) &cc) ent ($p_alt+ 'AN // accent - &r) ent ($p_alt+ ''&#nt // omtrent - &) ent (ur$p_alt+ ent' // agentur - stressed u - &) ent (alsk$p_alt+ Ent' // + "alsk" - stressed a - orientalsk + &r) ent ($p_alt+ ''?&#nt // omtrent + &) ent (ur$p_alt+ ?ent' // agentur - stressed u + &) ent (alsk$p_alt+ ?Ent' // + "alsk" - stressed a - orientalsk // exceptions acc) ent (+ AN // - ev) ent (A++ @-nt // eventyr, eventuel - v) enti (on+ enSj // konvention + _ev) ent (A++ @-nt // eventyr, eventuel + v) enti (on+ ?EnSj // konvention engros ANgr'o // engroshandler // $alt words with final -enser in da_list - stressed e - &) enser ($p_alt ''EnsV // palæstinenser - &p) enser (_$p_alt Ens'er // kompenser - &) enser (e$p_alt Ens'er // kondensere - &g) ense ($p_alt g''EnsV // ålborgenser + &) enser ($p_alt ''?EnsV // palæstinenser + &p) enser (_$p_alt ?Ens'er // kompenser + &) enser (e$p_alt ?Ens'er // kondensere + &g) ense ($p_alt g''?EnsV // ålborgenser - // $alt words with final -ent in da_list - stressed e - @) ens ($p_alt+ 'ens // frekvens - @r) ens ($p_alt+ '&#ns // kohærens - kv) ens ens // inkonsekvens + // $alt words with final -ens in da_list - stressed e + @) ens (_$p_alt+ '?Ens // frekvens + @) ens (e$p_alt+ ?'Ens // frekvenser + @r) ens ($p_alt+ '?&#ns // kohærens + kv) ens ?Ens // inkonsekvens // $alt words with final -ence in da_list - stressed e &) ence ($p_alt ''ANs-@ // kadence &) ence (r$p_alt ''ANsV // referencer - emin) ence ($p_alt 'Ens-@ // exception -excell) ence ($p_alt 'Ens-@ // exception + emin) ence ($p_alt '?Ens-@ // exception +excell) ence ($p_alt '?Ens-@ // exception // common affix -ender &) ender (_ En?V // anliggender, foretagender @@ -3237,10 +3329,12 @@ infant) eri ($p_alt @-r''i // infanteri @) ers (tat Ers // skadeserstatning wien) er V // wienerbrød + spejd) er V // spejderuniform od) er V // moderinstinkt hyp) er (@ V // hyperaktiv æd) er (@ V // læderindtræk sortep) er er // + rødl) er er vigtigp) er er // beh) er (sk Er // beherske _t) er (_ er // "de ter sig underligt" @@ -3382,41 +3476,41 @@ toplant) erne (++ Ern@- // Exceptions to the suffix rules // Words ending with -ere - stressed e - around 1.600 words in list file - @) ere (_$p_alt+++ ''e:V // stressed - manipulere, protestere (not parfum'ereklame) - @) ere (r$p_alt++ ''e:V // stressed - generer, kasserer - @) ere (re$p_alt+++ ''e:V // stressed - polerere - @) ere (ren$p_alt++ ''e:V // stressed - kassereren - @) ere (t$p_alt++ ''e:V // motiveret + @) ere (_$p_alt+++ ''?eV // stressed - manipulere, protestere (not parfum'ereklame) + @) ere (r$p_alt++ ''?eV // stressed - generer, kasserer + @) ere (re$p_alt+++ ''?eV // stressed - polerere + @) ere (ren$p_alt++ ''eV // stressed - kassereren + @) ere (t$p_alt++ ''?eV // motiveret @n) ere (re$p_alt+++ @-r'e // stressed - generere - @) ere (de$p_alt++ ''e:V // stressed - appellerede - @) ere (s_$p_alt++ ''e:V // stressed - pensioneres - @i) ere (n_$p_alt++ ''e:V // stressed - karrieren - @) er ($p_alt+++ ''er // stressed - repeter, kurer - @) er (er$p_alt+++ ''e // stressed - adopterer - @) er (e_$p_alt+++ ''e // stressed - acceptere - @r) er (e_$p_alt+++ ''E3- // stressed - reparere - @r) er (er_$p_alt+++ ''E3- // stressed - reparerer - @) er (_$p_alt++ ''er // stressed - repeter - ion) er (_$p_alt++ V // unstressed - missioner, kommissioner - @) er (et$p_alt++++ ''er // stressed - orienteret - &ik) er (_$p_alt++ =V // stressed - politiker - &ik) er (s_$p_alt++ =V // stressed - politikers + @) ere (de$p_alt++ ''?eV // stressed - appellerede + @) ere (s_$p_alt++ ''?eV // stressed - pensioneres + @i) ere (n_$p_alt++ ''?EV // stressed - karrieren + @) er ($p_alt+++ ''?er // stressed - repeter, kurer + @) er (er$p_alt+++ ''?e // stressed - adopterer + @) er (e_$p_alt+++ ''?e // stressed - acceptere + @r) er (e_$p_alt+++ ''?E3- // stressed - reparere + @r) er (er_$p_alt+++ ''?E3- // stressed - reparerer + @) er (_$p_alt++ ''?er // stressed - repeter + ion) er (_$p_alt++ ?V // unstressed - missioner, kommissioner + @) er (et$p_alt++++ ''?e // stressed - orienteret + &ik) er (_$p_alt++ =?V // stressed - politiker + &ik) er (s_$p_alt++ =?V // stressed - politikers // exceptions - fing) er (en VR // fingeren - clsashes with 'fing'ere' + fing) er (en ?VR // fingeren - clsashes with 'fing'ere' _barb) er (+ '?er // barber _barb) er (e+ 'er // barberen lev) er (eg+ @-r // leveregel fabrik) ere (+++++++'?eV - brod) er (en Vr // - lev) er (en+ Vr // the liver - _not) er (_det 'er // - _not) er (_den 'er // + brod) er (en ?Vr // + lev) er (en+ ?Vr // the liver + _not) er (_det '?er // + _not) er (_den '?er // report) er (en+ @-r // clash with "reportere" = "rapportere" report) er (e+ @-r // clash with "reportere" = "rapportere" - @cit) er (e er // fejlcitere -orient) eret er@-D // venstreorienteret - _kap) er (s++ V // + @cit) er (e ?er // fejlcitere +orient) eret ?er@-D // venstreorienteret + _kap) er (s++ ?V // // stressed e in words with -ering (1.100) in da_ list - likvidering &) ering ($p_alt++ ''e3-eN @@ -3447,7 +3541,7 @@ reserv) ert 'e3-t alt) er (nativ 'ER // stressed LOOK FOR MORE ff) er (At V // probably way too broad - offeret - c) er (e+ er // velkvalificeret + c) ere eV // velkvalificeret, ceremoni v) er (et er // kultiverret bl) er (e er // genetablere desp) er (at 3R // desperat @@ -3458,6 +3552,7 @@ reserv) ert 'e3-t _v) er (s_ Er v) er (@++ Er // verden, kontroversiel v) er (anda+ er // veranda + v) ermont ?W:m'Vnt salv) er (++ V // kvaksalverbutik snæv) er (++ V // snæversynet ov) er (++++ V // overbevisende, sover, ovenover, overfald @@ -3562,20 +3657,21 @@ der_man) er (_ V // der er intet land, der maner ... // verb suffix - ede (elskede - lovede) // not treated as a suffix any more - too many exceptions @) ede (_ @-D@- // elskede - &r) ede (_ VD@- // pikerede, spekulerede - &r) ede (s_ VD@- // placeredes + &r) ede (_ ?VD@- // pikerede, spekulerede + &r) ede (s_ ?VD@- // placeredes - hov) ed @-'D // hoved + hov) ed @-D // hoved mark) ed @-D // supermarked mm) ed @-D // fremmed - afst) ed (kom 'eD // afstedkomme + afst) ed (kom '?eD // afstedkomme opf) ede (++ eD@- // opfede f) eder (_+ eDV // feder gf) ed (e+ eD // blegfede h) ede (+ eD@- // glohede sm) ede eD@- // guldsmede -velocip) ed (e 'eD // stressed - h) eder (+ eDV // muligheder + sandh) ed ?eD // sandheden +velocip) ed (e '?eD // stressed + h) eder (+ ?eDV // muligheder vildr) ede (_+ ED@- // vildrede ørner) ede ED@- // err) ede (+ ED@- // forbryderrede, røverrede @@ -3632,6 +3728,7 @@ rotter) ede (_+ ED@- // rotterede // not treated as a suffix any more @) et (_+ @-D // elsket @r) et (_+ VD // placeret + ord) et (_ VD // bordet @) ets (_+ @-Ds // målets - noun ending int) et @-D // tilintetgøre @@ -3678,6 +3775,7 @@ gennems) et et // spl) et (+ Et // skønhedsplet guldpl) et Et // sølvpl) et Et // +rustpl) et Et Apl) et (+ Et // kaffeplet pl) ett (+ Et // kaffepletter _geb) et (+ 'et // @@ -3828,6 +3926,7 @@ _nicol) ette 'Et@- // Nicolette a) ff (initet f // affinitet a) ff (ære f // affære a) ff (age f // staffage + bla) ff (e f a) ff (utage f // ra) ff (e f // straffe ra) f (le f // rafle @@ -3926,6 +4025,7 @@ _nicol) ette 'Et@- // Nicolette l) g (s // udsalgsfeber - silent g øl) g (e j // bølge, selvfølgelig A) g (n j // tegn, regne + si) gn (A nj // signatur, signere - only n according to DDO pa) gn (on Nj // kompagnon kampa) gn Nj // valgkampagnen pa) gn (er Nj // akkompagnerer @@ -3933,7 +4033,7 @@ _nicol) ette 'Et@- // Nicolette mu) g (n g // mugne hu) g (ning g // halshugning ty) g (ning g // - si) gn (er N // signere + // si) gn (er N // signere velsi) gn jn // velsigner a) g (nos g // diagnose sky) g (ni g // afskygning @@ -4286,13 +4386,13 @@ proktolo) ge (n @- // ge (nom ge' ge (ntil ge' ge (nuin ge' - ge (pard ge' + _) ge (pard ge' ge (ranie ge' ge (ranium ge' ge (råde ge' ge (sandt ge' ge (sims ge' - ge (sjæft ge' + _) ge (sjæft ge' ge (skæftig ge' ge (spenst ge' ge (stagen ge' @@ -4304,7 +4404,7 @@ proktolo) ge (n @- // ge (valt ge' ge (vandt ge' ge (vind ge' - ge (vinst ge' + _) ge (vinst ge' ge (vir ge' føl) ge j@- // følgevirkning ge (vækst ge' @@ -4364,18 +4464,12 @@ proktolo) ge (n @- // // Short i followed by double consonant i (C% ?i // svirret, fisse i (dt ?i // skridt, skridtet - short i before dt - br) i (te ?i // person from GB i (ds ?i // gidsel - short before 2 consonants ild ?il // ilden, vildlede b) ild (ør ild // bildør v) ild (ig ild // uvildig math) ild 'ild // name - - d) i (kt+ i // diktere - t) i (l+ e // tilknytte, stille -dansk_st) i (l+ i // -engelsk_st) i (l+ i // - indst) i (l e // indstille + d) i (kt+ ?i // diktere // short i - general rules? h) i (ls ?i // hils, hilsen - short i @@ -4391,22 +4485,39 @@ engelsk_st) i (l+ i // b) i (son ?i skr) i (ver ?i fr) i ?i // befrielseshær + br) i (te ?i // person from GB + br) i (tis ?i // britisk, britiske + t) i (l+ ?e // tilknytte, stille +dansk_st) i (l+ ?i // +engelsk_st) i (l+ ?i // + indst) i (l ?e // indstille // exceptions - dr) i (nk e // - + dr) i (nk ?e // + _p) ie (_ Aj // "lide" - "like" versus "suffer" l) ide (_dig i l) ide (_mig i l) ide (_jer i l) ide (_dem i + l) ide (_det i l) ide (_os i l) ide (_andre i l) ide (_deres i l) ide (_jeres i l) ide (_vores i + l) ide (_ham i + l) ide (_hende i _godt_l) ide i +_ikke_l) ide i +_kan_l) ide i +_kunne_l) ide i +_kunnet_l) ide i +_kan_du_l) ide i +_kan_i_l) ide i +_kan_vi_l) ide i +_kan_jeg_l) ide i // general rule: initial in- : [e] _) i (n+ ?e // instinkt, ineffektiv @@ -4427,14 +4538,15 @@ _godt_l) ide i // general rule: [e] before double consonant L03) i (L01%+ ?e // ligge, dikke - i (ggør++ i // legemliggøre - i (ggjo++ i // legemliggjort/gjorde - r) i (L01% e // drikke, prikke + i (ggør++ ?i // legemliggøre + i (ggjo++ ?i // legemliggjort/gjorde + led) i (g++ ?i // lediggang + r) i (L01% ?e // drikke, prikke L08) i (ll++ ?e // skille, stille, spille - st) illads il'&s // + st) illads il'?&s // bast) ille 'ilj3 // - sp) i (l e // lotterispil - sp) ilop il'Vp // stressed + sp) i (l ?e // lotterispil + sp) ilop ?il'?Vp // stressed L09) i (L03%a+ ?e // middag L02) i (pp ?e // svippe, vippe L09) i (pp ?e // nippe, knippe, knippel, snippe @@ -4443,6 +4555,7 @@ mississ) i (ppi 'i // stressed musl) i (n_ 'i // stressed v) i (ss ?e // visse + v) i (sselulle ?i vr) i (ss ?e // vrisse v) i (sh ?e // uvished n) i (sse ?e // @@ -4464,10 +4577,11 @@ mississ) i (ppi 'i // stressed but) i (k ?i // videobutikken // general rule: [i] after k, [e] followed by n/m + k) i (L09++ ?e // kind, skinke, skimme, skimte k) i (k ?i // kik, kikkert k) i (Ce++ i // skide + k) i (derik++ ?i // skiderik - short i sk) i (bet++ ?i // skibet - k) i (L09++ ?e // kind, skinke, skimme, skimte k) i (L09L11++ i // kime k) i (mning+ i // bik) i (ni ?i // @@ -4486,73 +4600,73 @@ mississ) i (ppi 'i // stressed h) imalaya ?em&l'aI& // stressed // general rule: [e] before mp - i (mp e // imperium, impuls - impromptu _^_fr // + i (mp ?e // imperium, impuls + impromptu _^_fr - fr) i (g i // frigav, frigid, frigøre - l) i (nk e // flink, link, blink - hell) ig ij // helligånd - r) ig (C i // rigdom - silent g - r) ig (ning eg // - r) igg eg // boreriggen - ig (ruppe ig // smuglerigruppe - fr) ig (jo ig // frigjorde - f) i (kCL04 i // fiktiv - f) i (ks e // fikse, fiks - f) i (kserbad i' // - f) i (kservæske i' // - f) i (kserbilled i' // - f) i (ksering i' // - f) i (ksere i' // - _f) i (k_ e // - s) i (nk++ e // sinke, sinkadus - L07) i (fte e // stifte, stifter, vifte TEST - _v) i (ft_ e // - kv) i (L07++ i // kvit, kvittere, kvik, kvikt + fr) i (g ?i // frigav, frigid, frigøre + l) i (nk ?e // flink, link, blink + hell) ig ?ij // helligånd + r) ig (C ?i // rigdom - silent g + r) ig (ning ?eg + r) igg ?eg // boreriggen + ig (ruppe ?ig // smuglerigruppe + fr) ig (jo ?ig // frigjorde + f) i (kCL04 ?i // fiktiv + f) i (ks ?e // fikse, fiks + f) i (kserbad ?i' + f) i (kservæske ?i' + f) i (kserbilled ?i' + f) i (ksering ?i' + f) i (ksere ?i' + _f) i (k_ ?e + s) i (nk++ ?e // sinke, sinkadus + L07) i (fte ?e // stifte, stifter, vifte TEST + _v) i (ft_ ?e // + kv) i (L07++ ?i // kvit, kvittere, kvik, kvikt v) i (ste+ i // afviste, viste - sk) i (Ct i // skift, beskidt - k) i (ste+ i // - v) i (L01C++ e // vikle, forvikle, afvikle, svigt - v) i (nglas++ i // - v) i (nstok i // - t) i (ka+ i // distika, Vatikanet - v) i (L01a i // vikar - v) i (L10i i // viking - v) i (ck i // Vicki, Vicky - v) i (ktL04++ i // Viktor, viktualiehandel - t) ig (+ i // stig, stige, artig + sk) i (Ct ?i // skift, beskidt + k) i (ste+ i: // long i in spite of st + v) i (L01C++ ?e // vikle, forvikle, afvikle, svigt + v) i (nglas++ ?i + v) i (nstok ?e + t) i (ka+ ?i // distika, Vatikanet + v) i (L01a ?i // vikar + v) i (L10i ?i // viking + v) i (ck ?i // Vicki, Vicky + v) i (ktL04++ ?i // Viktor, viktualiehandel + t) ig (+ ?i // stig, stige, artig _t) ight aIt // tight (English) - st) ig (ma ig // - _t) i (g_+ e // - t) i (gg+ e // tigge, tigger - pl) i (gt+ e // pligt - pl) i (L01L11+ i // komplikation + st) ig (ma ig + _t) i (g_+ e + t) i (gg+ ?e // tigge, tigger + pl) i (gt+ ?e // pligt + pl) i (L01L11+ ?i // komplikation s) i (L01L07 ?e // sigte, sigt, udsigt - l) ig (C ij // lighus - fil) ig (ran ig // - l) igi igj // relegiøs, religion - _n) i (L10 e // nikke, nik, Nick - n) i (kL04 i // nikotin - n) i (che i // + _l) ig (C ij // lighus + fil) ig (ran ?ig + l) igi ?igj // relegiøs, religion + _n) i (L10 ?e // nikke, nik, Nick + n) i (kL04 ?i // nikotin + n) i (che ?i k) ikset (_ egs@-D // f) i (nkul i // finkulturel // miscellaneous sv) i (L09C ?e // svimle, svimmel, svindle, svind, sving - sv) i (ns i // svins, svinsk (not [svensk]) + sv) i (ns ?i // svins, svinsk (not [svensk]) L02) i (p ?e // vip, svip, fipskæg -spirrev) i (p 'i // stressed +spirrev) i (p '?i // stressed sylf) i (de 'i // stressed L02) i (L06e i // pibe L02) i (L06re i // fibre - b) i (bel ?i // - C) i (mL06 e // simpel, vimpel - sl) i (m i // slimprøve - p) ibe (tøj iw // + b) i (bel ?i + C) i (mL06 ?e // simpel, vimpel + sl) i (m ?i // slimprøve + p) ibe (tøj iw p) i (p+ ?i // pipfugl b) i (p+ ?i // bipper, biperson - v) i (b+ i // vibrere + v) i (b+ ?i // vibrere C) i (mC ?e // fims, gesims, vimse, bims, dims, bimle l) i (mni+ i // limning himstreg) i (ms '?e // stressed @@ -4565,31 +4679,31 @@ himstreg) i (ms '?e // stressed kor) i (nt ?e // korinterne str) i (nt ?e // strinte s) i (dde ?e // sidde - s) i (dning e // eftersidning -læbest) i (ft e // -tegnest) i (ft e // - limst) i (ft e // -blyantsst) i (ft e // -blyantst) i (ft e // -slagst) i (ft e // -blækst) i (ft e // + s) i (dning ?e // eftersidning +læbest) i (ft ?e +tegnest) i (ft ?e + limst) i (ft ?e +blyantsst) i (ft ?e +blyantst) i (ft ?e +slagst) i (ft ?e +blækst) i (ft ?e bes) i (dde ?i // våbenbesiddelse Cr) i (ll ?e // drille, brille tr) i (ll ?i // trille -eskadr) ille 'ilj@- // -espadr) ille 'ilj@- // - kvadr) ille 'ilj@- // - _dr) i (l e // dril, drilagtig +eskadr) ille '?ilj@- // +espadr) ille '?ilj@- // + kvadr) ille '?ilj@- // + _dr) i (l ?e // dril, drilagtig L01r) i (ll ?i // kriller, grill jun) i (or j // b) i (tter ?e // b) i (tre e // m) iav jaw // miav - _rad) i (se 'i // stressed + _rad) i (se '?i // stressed tils) i (de 'i // tilsidesætte - stressed _kal) i (ber 'i // tob) i (as '?i // name - stressed - ros) i (ta 'i // name + ros) i (ta '?i // name // [e] after gr - exception gr) i (m e // grimrian @@ -4671,13 +4785,13 @@ _ventr) i (k 'i // ventrikel, ventrikler r) i (L08++ ?e // riste, frisk, brist, vrist, Kristus, dristig r) i (skage+ ?i // riskager r) i (L08L04++ ?i // aristokrat, periskop - dr) i (stig ?e // + dr) i (stig+ ?e // dumdristig r) i (stik+ ?i // karakteristik fr) i (stad ?i // fr) i (spark ?i // kr) i (sti_ ?e // Kristi genkomst - kr) i (stus ?e // - L10r) i (stin i' // Christine, Kristine + kr) i (stus+ ?e + L10r) i (stin+ ?i' // Christine, Kristine tr) i (L08++ ?i // trist pr) i (s ?i // fr) i (sted ?i // @@ -4776,9 +4890,9 @@ austral) ier =jV &) ik (k$p_alt+ ''?i // antikke, trafikken - only one k &r) ik (k$p_alt ''e // fabrikker - only one k @) ik (ant$p_alt+ ik' // praktikant, musikant - C) ik (er+ ik // mimiker, spastiker, musiker - C) ik (aner++ ik // republikaner - mus) i (k i // folkemusik + C) ik (er+ ?ik // mimiker, spastiker, musiker + C) ik (aner++ ?ik // republikaner + mus) i (k ?i // folkemusik // words with final -ti in da_list - stressed i &t) i ($p_alt+ 'i // politi, parti, profeti @@ -4789,8 +4903,8 @@ austral) ier =jV &) isme (r$p_alt 'ismV // organismer // words with final -inde in da_list - stressed i - &) inde ($p_alt 'en@- // malerinde - &) inde (r$p_alt 'enV // malerinder + &) inde ($p_alt++ '?en@- // malerinde + &) inde (r$p_alt++ '?enV // malerinder // put stress on the syllable before final 'ium' - words in da_list &) ium ($p_alt =iOm // territorium @@ -4808,7 +4922,9 @@ austral) ier =jV kalor) i (us =i // // stressed i in words with final -mi in da_list - &m) i ($p_alt 'i // økonomi, kemi - only one stress-marker because of 'kemikalier' + &m) i (_$p_alt 'i // økonomi, kemi - only one stress-marker because of 'kemikalier' + &m) i (er$p_alt 'i // økonomier + &m) i (en$p_alt 'i // økonomien &k) i ($p_alt 'i // anarki &m) i (sk$p_alt =i // stress on the previous syllable - økonomisk @@ -4847,57 +4963,58 @@ particul) ier j'e // various exceptions _) idel (_ i:D@-l // idel - israel isrA:l // Israel - israeler isrA'elV // israelsk - israelsk isrA'elsk // + israel ?isrA:l // Israel + israeler ?isrA'?elV // israelsk + israelsk ?isrA'?elsk // _d) israel (i isrA'el // name irving WveN // name - smok) i (ng e // + smok) i (ng ?e // sen) ior jV // iew j'u - _t) i (n e // tinfolie + _t) i (n ?e // tinfolie t) i (nL11 i // Tina, Tine - b) ingo engo // + b) ingo ?engo // _m) id (t ?e // midt - silent d - i (mpo e // imponerende -special) i (st i // stålspecialist - gev) i (nst e // - f) i (nte_ e // + i (mpo ?e // imponerende +special) i (st ?i // stålspecialist + gev) i (nst ?e // + f) i (nte ?e r) idge idZ // Coleridge, bridge br) idget idZit // name r) isik (e esik // risikere r) isiko isiko // risiko - gl) i (m e // glimt, glimrende - l) i (nned e // - klin) i (k i // fødeklinik - unstressed after syllable - @t) i (k_++ i // ferieromantik, finanspolitik - best) i (k++ e // bestikke - bist) i (k++ e // -knivst) i (k e // -spadest) i (k e // -myggest) i (k e // -nålest) i (k+ e // - plast) i (L10 i // plastik/c -tændst) i (k+ e // + gl) i (m ?e // glimt, glimrende + l) i (nned ?e // + klin) i (k ?i // fødeklinik - unstressed after syllable + @t) i (k_++ ?i // ferieromantik, finanspolitik + best) i (k++ ?e // bestikke + bist) i (k++ ?e + solst) i (k++ ?e +knivst) i (k ?e // +spadest) i (k ?e // +myggest) i (k ?e // +nålest) i (k+ ?e // + plast) i (L10 ?i // plastik/c +tændst) i (k+ ?e // gudhjælpem) ig =Aj // i (owa aI // US state t) i (ming aI // - n) i (tten e // the number 19 - problem with noun "nitte" - kl) i (k_ e // museklik - f) i (x e // fixe - L09) i (ks e // mikse, niks - L09) i (x e // Nixon - m) i (kstur i // - m) i (kler e // skvatmikler - p) i (lr e // pilrådden - l) i (ns e // linse - l) i (lla e // + n) i (tten ?e // the number 19 - problem with noun "nitte" + kl) i (k_ ?e // museklik + f) i (x ?e // fixe + L09) i (ks ?e // mikse, niks + L09) i (x ?e // Nixon + m) i (kstur ?i // + m) i (kler ?e // skvatmikler + p) i (lr ?e // pilrådden + l) i (ns ?e // linse + l) i (lla ?e // t) ime (out aIm // r) i (ley aI // name - s) i (d_ e // sid + s) i (d_ ?e // sid s) i (den_ ?i // siden - s) i (lk e // silke - sl) i (k e // slik + s) i (lk ?e // silke + sl) i (k ?e // slik impoten empotEn // impotens _en_st) i (l_ i // stil - noun _st) i (l_over_hende i // "der er stil over hende" @@ -5116,112 +5233,112 @@ offentl) ig i // // stressed i mussol) i (ni 'i // - _præc) i (s 'i // stressed - _konc) i (s 'i // stressed - _av) i (s 'i // stressed -_krucif) i (ks 'i // stressed - _grav) i (d 'i // stressed + _præc) i (s '?i // stressed + _konc) i (s '?i // stressed + _av) i (s '?i // stressed +_krucif) i (ks '?i // stressed + _grav) i (d '?i // stressed _test) i (kel 'i // PM stressed - _test) i (kl 'i // PM plur. stressed -_molev) i (t 'i // stressed - molevitten -_marskand) i (s 'i // stressed - marskandiser -_princ) i (p 'i // stressed - _cyl) i (nd 'e // cylinder - stressed - fil) i (st 'i // filister + _test) i (kl '?i // PM plur. stressed +_molev) i (t '?i // stressed - molevitten +_marskand) i (s '?i // stressed - marskandiser +_princ) i (p '?i // stressed + _cyl) i (nd '?e // cylinder - stressed + fil) i (st '?i // filister _el) i (te ''i // stressed - elitesoldat _salv) ie 'i: // stressed - sort) ie (_ 'i // stressed, silent e - sort) i (e 'i // stressed sortien + sort) ie (_ '?i // stressed, silent e + sort) i (e '?i // stressed sortien _ol) i (ven 'i // stressed _ol) i (via 'i // name - stressed - _int) i (m 'i // -_legit) i (m 'i // stressed -_algor) i (tme 'i // stressed - _utop) i 'i // stressed -brintover) i (lte 'i // stressed - kam) i (lle 'i // stressed - mar) i (a 'i // stressed - dom) ing (o 'eng // stressed Santa Domingo - _rem) i (s 'i // stressed - remis, remise + _int) i (m '?i // +_legit) i (m '?i // stressed +_algor) i (tme '?i // stressed + _utop) i '?i // stressed +brintover) i (lte '?i // stressed + kam) i (lle '?i // stressed + mar) i (a ?'i // stressed + dom) ing (o '?eng // stressed Santa Domingo + _rem) i (s '?i // stressed - remis, remise kampan) i (le 'i // stressed _ekspert) i (se ''i // _entrepr) i (se 'i // _mark) i (se 'i // -_muffed) i (se 'i // +_muffed) i (se '?i // _repr) i (se 'i // _astero) i (de 'i // - rem) is (_ 'i // silent s (chess) + rem) is (_ '?i // silent s (chess) _mess) i (as 'i // _mart) i (ni 'i // cocktail _alb) i (no 'i // stressed - nuskr) i (pt 'E // stressed - manuskript - L10am) i (lla 'i // Camilla, Kamilla - _alib) i 'i // alibi - _fob) i 'i // fobi -_konfl) i (kt 'i // stressed - _pap) i (r 'i // stressed - _tap) i (r 'i // stressed - _vels) i (gn 'i // stressed - _part) i (sk 'i // stressed - tah) i (ti 'i // - _just) i (ts 'i // - im) i (dlertid 'i // - _kul) i (ss 'i // kulisse - _abs) i (nt 'e // stressed - _musl) i (m 'i // stressed - _mag) i (_ 'i // magi - stressed i - _mag) i (en_ 'i // magien - stressed i -_polit) i 'i // politi, politik - stressed i - _civ) i (l 'i // stressed - civil + nuskr) i (pt '?E // stressed - manuskript + L10am) i (lla '?i // Camilla, Kamilla + _alib) i '?i // alibi + _fob) i '?i // fobi +_konfl) i (kt '?i // stressed + _pap) i (r '?i // stressed + _tap) i (r '?i // stressed + _vels) i (gn '?i // stressed + _part) i (sk '?i // stressed + tah) i (ti '?i // + _just) i (ts '?i // + im) i (dlertid '?i // + _kul) i (ss '?i // kulisse + _abs) i (nt '?e // stressed + _musl) i (m '?i // stressed + _mag) i (_ '?i // magi - stressed i + _mag) i (en_ '?i // magien - stressed i +_polit) i '?i // politi, politik - stressed i + _civ) i (l '?i // stressed - civil all) igevel 'i@-vEl // stressed i - alligevel - _band) i (t 'i // bandit + _band) i (t '?i // bandit _vedl) ige 'i@- // vedligeholde -dispon) i (bel 'i // stressed - eksig) i (bel 'i // stressed - fleks) i (bel 'i // stressed - fung) i (bel 'i // stressed - horr) i (bel 'i // stressed -irrevers) i (bel 'i // stressed -kompat) i (bel 'i // stressed - _inst) i (nkt 'e // -konvert) i (bel 'i // stressed - pen) i (bel 'i // stressed -perfekt) i (bel 'i // stressed - plaus) i (bel 'i // stressed -revers) i (bel 'i // stressed - sens) i (bel 'i // stressed -suggest) i (bel 'i // stressed - vis) i (bel 'i // stressed +dispon) i (bel '?i // stressed + eksig) i (bel '?i // stressed + fleks) i (bel '?i // stressed + fung) i (bel '?i // stressed + horr) i (bel '?i // stressed +irrevers) i (bel '?i // stressed +kompat) i (bel '?i // stressed + _inst) i (nkt '?e // +konvert) i (bel '?i // stressed + pen) i (bel '?i // stressed +perfekt) i (bel '?i // stressed + plaus) i (bel '?i // stressed +revers) i (bel '?i // stressed + sens) i (bel '?i // stressed +suggest) i (bel '?i // stressed + vis) i (bel '?i // stressed _pyram) i (d 'i // pyramide - _medl) i (denhed 'i // medlidenhed - stressed - _omkr) i (ng ''e // stressed e in 'omkring' -_tyver) i 'i // stressed - kn) i (v i // kniv - _min) i (ster 'i // minister - stressed i - _mag) i (ster 'i // magister- stressed - _re) i (ster 'i // register - stressed ii -_distr) i (kt 'e // stressed + _medl) i (denhed '?i // medlidenhed - stressed + _omkr) i (ng++ ''?e // stressed e in 'omkring' +_tyver) i '?i // stressed + kn) i (v ?i // kniv + _min) i (ster '?i // minister - stressed i + _mag) i (ster '?i // magister- stressed + _reg) i (ster '?i // register - stressed ii +_distr) i (kt '?e // stressed am) i (go 'i // amigo - magas) i 'i // magasin - _kap) i (tel 'i // stressed - _kap) i (tl 'i // kapitlet - stressed - _mask) i (n 'i // stressed - maskinskrive - asp) i (c 'i // aspic - only this word -_krokod) i (ll 'i // stressed - _sol) i (d 'i // solid - labyr) i (nt 'e // stressed - par) i (s 'i // - wal) i (s 'i // waliser -portug) i (s 'i // portugiser - kirg) i (s 'i // kirgiser - ryk) i (nd 'e // stressed - _art) i (k 'i // stressed - artikkel -_franc) i (sco 'i // -benzedr) i (n 'i // -_ekserc) i (ts 'i // - madr) i (d 'i // stressed - aspir) i (n 'i // stressed -ampicill) i (n 'i // stressed + magas) i '?i // magasin + _kap) i (tel '?i // stressed + _kap) i (tl '?i // kapitlet - stressed + _mask) i (n+ '?i // stressed - maskinskrive + asp) i (c '?i // aspic - only this word +_krokod) i (ll '?i // stressed + _sol) i (d '?i // solid + labyr) i (nt '?e // stressed + par) i (s '?i // + wal) i (s '?i // waliser +portug) i (s '?i // portugiser + kirg) i (s '?i // kirgiser + ryk) i (nd '?e // stressed + _art) i (k '?i // stressed - artikkel +_franc) i (sco '?i // +benzedr) i (n '?i // +_ekserc) i (ts '?i // + madr) i (d '?i // stressed + aspir) i (n '?i // stressed +ampicill) i (n '?i // stressed valent) i (no ''i // name _sus) ie i // name michel) in EN // Michelinguide @@ -5233,6 +5350,8 @@ michel) in EN // Michelinguide // general rule: final -ig [i] - silent g ig (_ i // dejlig, rig @) igt (_ it // dejligt + @l) ig i // tydeligvis + // exceptions ops) ig (t+ eg // opsigt pl) ig (t+ eg // tavshedspligt @@ -5243,6 +5362,7 @@ michel) in EN // Michelinguide hids) ig i smuds) ig i stad) ig i // stadigvæk +naturl) ig i // naturligvis ns) ig (t+ eg // ansigt døgen) igt ikt // puds) ig (t i // pudsigt @@ -5268,12 +5388,12 @@ skæmted) ig (t eg // l) ight aIt // m) ighty aIti // fr) igea (r igi // frigear - ig (hed+ i // vittighed, evighed - _k) ig (_ ig // kig + ig (hed+ ?i // vittighed, evighed + _k) ig (_ ?ig // kig l) ig (ram ig // milligram l) ig (a++ ig // liga, obligat - ig (s i // silent g -rigsret - n) igger egV // nigger + ig (s ?i // silent g -rigsret + n) igger ?egV // nigger // stress on previous syllable - around 400 words in da_list // -ig words with the prefix be- are handled by group b - the be- rule. @@ -5338,10 +5458,10 @@ intell) ige (n ig'?E // intelligent // words ending with "in" in da_list with $alt - stressed i @) in ($p_alt+ '?in // baldakin, bekkasin, appelsin - @) in (a$p_alt+ 'i:n // marina - &) in (ar$p_alt in' // disciplinarmiddel - &ass) in ($p_alt 'EN // bassin - &at) in ($p_alt 'EN // satin + @) in (a$p_alt+ 'in // marina + &) in (ar$p_alt ?in' // disciplinarmiddel + &ass) in ($p_alt '?EN // bassin + &at) in ($p_alt '?EN // satin &lat) in ($p_alt '?in // latin byzant) in '?in // byzantinsk vel) in (formeret en // @@ -5361,12 +5481,12 @@ byzant) in '?in // byzantinsk &) it (t$p_alt '?i // avoid double t - bakelitten [ b,ak@l'it@-n] .group iv - // stressed final -iv +// stressed final -iv _abort) iv 'iv -_adapt) iv 'iv +_adapt) iv 'iw _adhæs) iv 'iv - _ark) iv 'iv -_assert) iv 'iv // stressed s'er ? + _ark) iv 'iw +_assert) iv 'iv _decis) iv 'iv _detekt) iv 'iv _digest) iv 'iv @@ -5380,7 +5500,7 @@ _kontrast) iv 'iv _kurs) iv 'iv _lasc) iv 'iv _lokomot) iv 'iv - _mass) iv 'iv + _mass) iv 'iw _mot) iv 'iv _na) iv 'iv _perspekt) iv 'iv @@ -5396,39 +5516,39 @@ _adopt) iv 'iw fi) j (i dZ // ja (ck dZ& _) jarvis dZA:ves // name - jitterbug dZidVbVg // - jingle dZeng3l // + jitterbug dZ?id?Vb?Vg // + jingle dZ?eng3l // jewel dZu:l // - jihad dZih'&t // + jihad dZ?ih'?&t // j (ennifer dZ // name - jenny dZEni // name + jenny dZ?Eni // name janey dZEjni // name - jennie dZEni // name + jennie dZ?Eni // name joy dZVj // joystick - _) josh dZVS // name - ja (mal dZ& // name - jerry dZeri // - jekyll dZek@-l // name dr. Jekyll + _) josh dZ?VS // name + ja (mal dZ?& // name + jerry dZ?eri // + jekyll dZ?Ek@-l // name dr. Jekyll junction dZVnkS@n // jamie dZEjmi // name jerome Ser'om // name - French version jacques Zak // name - French version _) jolene dZOwl'i:n // name joule dZu:l // - jambalaya dZAmb&l'aI& // + jambalaya dZ?Amb?&l'aI& // _) jake dZEjk // name - _) jakel j&k@l // PM mester Jakel + _) jakel j?&k@l // PM mester Jakel _) jill dZIl // name j (ob dZ john dZVn - johnny dZVni // name + johnny dZ?Vni // name joe dZ0w - jackie dZ&ki // + jackie dZ?&ki // jones dZ0wns // - junkie dZVnki // + junkie dZ?Vnki // j (unk dZ // junkaktie j (unkt j // junktur, konjunktion - jo (ckey dZV // + jo (ckey dZ?V // _) ji (m_ dZI // _) ji (ms_ dZI // jimmy dZImi // @@ -5471,6 +5591,7 @@ _adopt) iv 'iw jamaica S&m'aIk& // joint dZVjnt // _) james dZEjms // + _) jameson dZEjm@-s3n jay dZEj // name jess dZEs // Jess jessie dZEsi // Jessie @@ -5605,9 +5726,9 @@ forgle) mmigej m||mAj_!Aj // forglemmigejer _gour) mand m''AN // gourment _) mannequin m&n@-k'EN // mannequin m&n@-kEN // - _) mere (_ mer // mere + _) mere (_ mer // mere - DDO: [ˈmeːʌ] matine m&tin'e // - _) meget (_ mAj@-D // meget + _) meget (_ mA:@-D // meget _) megen (_ mAj@-n // megen _) medea med'E:& // Medea montgomery mVndg'Vmri // @@ -5621,7 +5742,7 @@ forgle) mmigej m||mAj_!Aj // forglemmigejer montre mO:ntrV mayday mEjdE:j // miami maI'&mi // - milwaukee melw'Oki // + milwaukee mIlw'Oki // machete m&S'Ed // miguel _^_ES // madero _^_ES // @@ -5741,19 +5862,19 @@ _bombarde) ment m'AN // bombardement n n // words with final -ni in da_list - stressed i - &) ni ($p_alt+ 'ni // ironi - &n) ni ($p_alt+ ''i // tyranni - only one n - &) ni (sk$p_alt+ =ni // ironisk - stress on pervious syllable before sk -_harmo) nika =nik& // stressed o - biki) ni =ni // - ma) ni (o+ =ni // maniodepressiv + &) ni ($p_alt+++ 'n?i // ironi + &n) ni ($p_alt++ '?i // tyranni - only one n + &) ni (sk$p_alt+ =n?i // ironisk - stress on pervious syllable before sk +_harmo) nika =n?ik?& // stressed o + biki) ni =n?i // + ma) ni (o+ =n?i // maniodepressiv // nouns with final -ner ("er" has been removed) in da_list // stressed previous syllable &) n (er$p_alt+ =n // italiener, amerikaner &) n (sk$p_alt =n // italiensk, amerikansk &) n (istan$p_alt =n // Afghanistan -ceremo) n (i n /// not a -ner word +//ceremo) n (i n // not a -ner word // General rule: N after ko before k ko) n (k N // konkurrence, konkret @@ -5767,6 +5888,7 @@ ceremo) n (i n /// not a -ner word gra) n n // grannål 2 * n @) nien =nj@-n // Albanien, Rumænien - stress on previous syllable @) nier =njV // armenier - stress on previous syllable + @mo) nien ni@-n // kærlighedsceramonien newton nj'u:t@-n nylon naIlVn neglige negliS'e @@ -5806,6 +5928,7 @@ james_bo) nd nd // James Bond gwe) nd (a nd // name pa) nd (ora nd' // name ama) nd (a =nd // name + arla) nd (a nd // airport // hacie) nd (a nd spa) ndex ndEgs a) nd (esbj nd // Andesbjergene @@ -5887,7 +6010,7 @@ salama) nd nd // salamander ferna) nd (o =nd // name ve) ndig ndi // udvendig å) nd (eli n // åndelig - nd (ig nd // behændig + nd (ig+++ nd // behændig, bestandigt nd (yr nd // dovendyr ha) nd (el n // y) ndig ndi // @@ -6068,8 +6191,11 @@ _noget_r) o (s_ ?V // b) oogie ugi // boogie-woogie w) oogie ugi // w) oo u // Hollywood + fl) owerpower AwVpAwV + g) oethe Wt@- // name oonagh un& // name c) ochise OwS'i:s // name + h) owie ?Awi // name kl) oro (form oo shamp) oo ?o // nark) o o // narkoopgør @@ -6129,6 +6255,7 @@ _elektr) o (de 'o C) o (rr ?V // korrekt gon) o (rr o // gonnorré L06) o (t ?V // pot + L06) o (tL04 ?o // botulisme TEST sab) o (t o // sabotør tr) o (ssætning o // tr) o (ts V // trotskist @@ -6197,6 +6324,8 @@ _elektr) o (de 'o // general rule consonant + o + velars: V C) o (L01+ V // fjong, knokle C) o (L01%+ ?V // sokker jogger + gong) o (ng 'V // stressed + _kr) oket (_ ?Vk@-t // game C) o (g+ O // bogmærke, bedrog, krog, tog (verb "took", noun "train") C) o (gA+ O // toge @@ -6277,65 +6406,67 @@ melank) o (lsk 'o // wimp) ole Owl // name st) o (d_ o // L09) o (d+ o // mod - m) o (de+ o: // modefænomen + m) o (de+ o // modefænomen m) oder or // pronounced like "mor" m) oderen o3-Vn // pronounced like "moren" m) oder (@ o:DV // compunds - moderkage m) oder (ne od'Er - l) o (L03+ o // forlod, blod, efterlod + anm) oder oDV + l) o (L03+ ?o // forlod, blod, efterlod fl) o (d_ ?o // short o fl) o (den ?o // short o fl) o (der o // long o - j) o (d+ o // - j) odle Vdl@- // - jordl) o (d V // - l) o (dtræk V // lodtrækning -trukket_l) o (d V // -træk_l) o (d V // -trække_l) o (d V // -trækker_l) o (d V // -trækkes_l) o (d V // + j) o (d+ ?o // + j) odle ?Vdl@- // + jordl) o (d ?V // + l) o (dtræk ?V // lodtrækning +trukket_l) o (d ?V // +træk_l) o (d ?V // +trække_l) o (d ?V // +trækker_l) o (d ?V // +trækkes_l) o (d ?V // trak_l) o (d // - r) o (d+ o // - br) o (d+ V // + r) o (d+ ?o // + br) o (d+ ?V // _br) o (dy 0w // name br) o (der o // - forl) o (ds V // PP + forl) o (ds ?V // PP g) o (d+ o // - g) o (dt+ V // - sk) o (t V // Skotland + g) o (dt+ ?V // + g) o (tte ?V + sk) o (t ?V // Skotland sk) o (tøj ?o // g) odfather VdfADV // - b) o (d+ o // isbod + b) o (d+ ?o // isbod camb) o (dj 'o // Cambodja - b) ody Vdi // bodystocking + b) ody ?Vdi // bodystocking b) odybuilder VdibildV // bodybuilder _k) o (d+ o // kodning - sk) o (d+ V // + sk) o (d+ ?V // k) o (de++ o // sikkerhedskode, tidskode l) odret (+ VDr&#t // // general rule o + velar + front vovel: [o] - o (L01L04 o // okular - C) o (kL04+ o // kokosnød, dokument + o (L01L04 ?o // okular + C) o (kL04+ ?o // kokosnød, dokument rok) o (ko 'V // stressed - Cr) o (L01L04 O // frokost - ch) o (k+ V // - ch) o (ko+ o // chokolade - k) okon ok'VN // stressed + Cr) o (L01L04+ ?0 // frokost + ch) o (k+ ?V // + ch) o (ko+ ?o // chokolade + k) okon ok'?VN // stressed // general rule o + p/b/d + front vowel: [o] - o (L06L04+ o // topografi, utopi, opinion - o (pofre+ V // opofrelse - o (pildne+ V // + o (L06L04+ ?o // topografi, utopi, opinion + o (pofre+ ?V // opofrelse + o (pildne+ ?V // // general rule o + p/b: [V] - o (L06+ V // op, opdrage, obstruere + o (L06+ ?V // op, opdrage, obstruere o (L06%+ ?V // oppe - short -kommand) o o // kommandobroen - s) ophia of'i& // name +kommand) o ?o // kommandobroen + s) ophia ?of'i& // name o (pposit ?o // opposition - o (L06L11+ o // oktober, global, Robert, oberst + o (L06L11+ ?o // oktober, global, Robert, oberst psyk) o (+ ?o // psykogen o (pefter+ ?V // o (parbejde+ ?V // @@ -6381,6 +6512,7 @@ kommand) o o // kommandobroen Ca) o (s V // kaos Laos L08) o (f V // stof + sk) o (fab o // skofabrik kask) o o // kaskoforsikring tr) o (CL04 o // antropolog, tropisk, troperne fortr) o (lig ?o // @@ -6435,6 +6567,7 @@ rekogn) o (scere o // C) o (m V // tomhændet, kedsomhed, tomt, udenoms C) o (mL04 V // bomuld salt) o (mor o // saltomortale + r) o (mulus o // name at) o (m o // iltatom C) o (mL11 o // tomat ar) o (ma 'o // stressed @@ -6471,47 +6604,47 @@ rekogn) o (scere o // gn) o (m o // kr) o (m o // krom _l) o (s V // los - _p) o (t_ V // - fall) o (s V // - _kol) o (s 'V // kolos - stressed - kol) o (st o // kolostomi - st) o (mL04 o // stomi - kol) o (ssa o // kolossal - k) o (ntor o // - h) o (spice V // hospice - v) od (ka Vd // - o (ttawa V // - term) o (sta o // termostat + _p) o (t_ ?V // + fall) o (s ?V // + _kol) o (s '?V // kolos - stressed + kol) o (st ?o // kolostomi + st) o (mL04 ?o // stomi + kol) o (ssa ?o // kolossal + k) o (ntor ?o // + h) o (spice ?V // hospice + v) od (ka ?Vd // + o (ttawa ?V // + term) o (sta ?o // termostat r) o (st++ o // rost, skamrost, prostitueret, roste f) oged o:@-D // silent g - bank) o (sp o // bankospil - k) o (sko o // bronkoskop - kok) o (s o // kokosnød - k) o (st_ o // kost (broom) Problem with kost = food -skrap_k) o (st V // - k) o (stskole V // - k) o (stplan V // - k) o (stråd V // - k) o (stvane V // - k) o (stpris V // - k) o (sttilskud V // -hverdagsk) o (st V // -sundhedsk) o (st V // - k) o (st_og_logi V // board and lodging - k) o (stbar V // -helsek) o (st V // - frok) o (st V // - omko (st VmkV // omkostninger, leveomkostninger + bank) o (sp ?o // bankospil + k) o (sko ?o // bronkoskop + kok) o (s ?o // kokosnød + k) o (st_ ?o // kost (broom) Problem with kost = food +skrap_k) o (st ?V // + k) o (stskole ?V // + k) o (stplan ?V // + k) o (stråd ?V // + k) o (stvane ?V // + k) o (stpris ?V // + k) o (sttilskud ?V // +hverdagsk) o (st ?V // +sundhedsk) o (st ?V // + k) o (st_og_logi ?V // board and lodging + k) o (stbar ?V // +helsek) o (st ?V // + frok) o (st ?V // + omko (st ?Vmk?V // omkostninger, leveomkostninger k) otele (t Vt@-l'E // svinekotelet - boyk) o (t V // boycotte + boyk) o (t ?V V // boycotte h) o (st++ ?o // host h) o (ste++ o // hoste - fC) o (t V // flot, fjot - fC) o (tL04 o // flotille + fC) o (t ?V // flot, fjot + fC) o (tL04 ?o // flotille - o (x V // oxyd - t) o (mas_ V // - th) o (mas_ V // + o (x ?V // oxyd + t) o (mas_ ?V // + th) o (mas_ ?V // t) ow (er Au // Tower Bridge mikr) oovn oVwn // _) o' ou' // for Irish names - O'Grady @@ -6570,11 +6703,11 @@ katastr) ofer 'ofV // katastrofer lit) o (te 'o: // stressed en) or (m+ 'O: // stressed abn) or (m 'O: // stressed - def) or (m 'O: // stressed + _def) or (m 'O: // stressed klorof) or (m 'O: // stressed - konf) or (m 'O: // stressed - ref) or (m 'O: // stressed - unif) or (m 'O: // stressed + _konf) or (m 'O: // stressed + _ref) or (m 'O: // stressed + _unif) or (m 'O: // stressed _rev) o (lv '?V // stressed - revolver _kart) o (f '?V // stressed - kartofler am) o (k '?V // amok @@ -6591,13 +6724,13 @@ _horis) o (n '?V // horisont er) o (b 'o // erobre - stressed o _er) o (t 'o // erot - stressed o _pil) o (t '?o // stressed - pilot - _idi) o (t 'o: // stressed -_patri) o (t 'o: // stressed -_cypri) o (t 'o: // stressed - _matr) o (s 'o: // stressed -_metad) o (n 'o: // stressed -_batalj) o (n 'o: // stressed - ang) o (la 'o: // stressed + _idi) o (t 'o // stressed +_patri) o (t 'o // stressed +_cypri) o (t 'o // stressed + _matr) o (s 'o // stressed +_metad) o (n 'o // stressed +_batalj) o (n 'o // stressed + ang) o (la 'o // stressed pepper) o (ni 'o: // stressed _pr) ovi (ns ov'e // provins - stressed i filos) o (f_ 'V // @@ -6620,7 +6753,8 @@ _paran) oia 'Vj& // stressed c) o (ck V // cockerspaniel // terr) or Vr // terror b) or (nholm Vr // - o (tto V // + o (tto V // name + ris) o (tto '?V // stressed o (ttende V // r) o (ck V // jackp) o (t V // @@ -6632,19 +6766,22 @@ _paran) oia 'Vj& // stressed hvalr) o (s V // _) obo ob'o // org (+ O:w // sorg, morgen, Norge + org (er Ow // borger org (el Ow // orgelet org (i V:g // georgisk org (ie Vg // ge) org (ine og // - o (rga+ V // organ + or (ga+ O // organ r) or (g oR // rorgænger ov (e+ Ow // over, oven, sove s) ove (@ Ow@- // soveværelse - h) o (vere o // - ren) ov (er ov // renovering - ov (n Ow // brændeovn - ov (re Ou // derovre - C) ov (+ Ow // sjov, lov, skov, plov, provst + h) o (vere ?o // + ren) ov (er ?ov // renovering + ov (n ?Ow // brændeovn + ov (re ?Ou // derovre + C) ov (+ ?Vw // sjov, lov, skov, plov - doesn't sound right with [Ow] + C) ov (L08 ?0w // provst + C) ov (er ?Ow // sover - short o C) ov (en+ ?Ow // skoven - short O j) ov (ist ov' // jovist t) ov (ør ov // tatovør @@ -6654,6 +6791,7 @@ _paran) oia 'Vj& // stressed s) ovjet Vwj'Et // kr) o (væ o // krovært ov (erhead Ouv // overhead + over (hoved+ ?OwV // overhoved at) ov (er ov // tatovere k) ov (end ov // kovending ov (ærn+ ov // autoværn @@ -6699,7 +6837,7 @@ artisk) o (k 'V // stressed g) od (tAg oD // godtage, godtog d) o (g_+ V // dog bulld) og V:g // - v) o (g V // vogn, vogte + v) o (gt V // vogte sv) o (ger O // _v) og (_ ow // "han vog den kullede greve" C) ogn Vwn // sogn, vogn @@ -6707,51 +6845,51 @@ artisk) o (k 'V // stressed bast) ogne 'VNj@- // French gasc) ogne 'VNj@- // French rek) og (noscere V // - pr) ogn (o ogn // prognose + pr) ogn (o ?ogn // prognose col) ogn (e l'VNj // boul) ogn (e ''VNj // Bois de Boulogne - s) or =V // professor + s) or =?V // professor s) orer ''o:V // professorer, processorer - _l) o (g_ V // log - l) o (gfil V // - l) o (gbog Vg // + _l) o (g_ ?V // log + l) o (gfil ?V // + l) o (gbog ?V // l) ov (e+ o?u // love, forlover l) ov (en++ Ov // lovende ov (ers++ Ow // tilovers, overstå - kontr) ov (ers ov // kontroversiel - pl) ov (++ Vw // sneplove - l) ondon VndVn // London - bl) ond Vnd // Keep the d - blondine, blonde - bl) ond (e Vn // den blonde pige - problem with noun [blVnd3] - bl) ond (en_ Vnd // PN noun with d -_en_bl) ond (e_ Vnd // noun with d - bl) ond (er Vnd // noun with d, plur. - k) ors O:s // kors, korsage - k) or (stol o3- // + kontr) ov (ers ?ov // kontroversiel + // pl) ov (++ Vw // sneplove + l) ondon ?Vnd?Vn // London + bl) ond ?Vnd // Keep the d - blondine, blonde + bl) ond (e ?Vn // den blonde pige - problem with noun [blVnd3] + bl) ond (en_ ?Vnd // PN noun with d +_en_bl) ond (e_ ?Vnd // noun with d + bl) ond (er ?Vnd // noun with d, plur. + k) ors ?O:s // kors, korsage + k) or (stol ?o3- // et_k) orset Os'Et // k) orsett Os'Et // korsettet, korsetter c) o (rs O // corsage - k) o (gl+ O // kogle, kogleri - _d) o (n_ V // don juan - pr) o (vA+ o // provokere + k) o (gl+ ?O // kogle, kogleri + _d) o (n_ ?V // don juan + pr) o (vA+ ?o // provokere, proviant h) oved o:@-D // hoved - kn) o (tn V // knotne - tr) od (s V // silent d - trods - kl) od (s V // silent d - klods - g) od (s O // silent d - gods - tr) o (j+ V // trojka, Troja -perestr) o (jka 'V // stressed - tr) o (jan o // trojanerne - p) olish VliS // møbelpolish - tr) o (kl V // trokle - t) or (_ V // faktor, rotor - st) or (+ o3- // kæmpestor, historie + kn) o (tn ?V // knotne + tr) od (s ?V // silent d - trods + kl) od (s ?V // silent d - klods + g) od (s ?O // silent d - gods + tr) o (j+ ?V // trojka, Troja +perestr) o (jka '?V // stressed + tr) o (jan ?o // trojanerne + p) olish ?VliS // møbelpolish + tr) o (kl ?V // trokle + t) or (_ ?V // faktor, rotor + st) or (+ ?o3- // kæmpestor, historie t) or (en V // faktoren or (k++ O: // orke, morkel, stork or (kester+ O k) or (kåbe or // - _st) o (r_ o // stor - past) or V // + _st) o (r_ ?o // stor + past) or ?V // mot) or V // startmotor t) or (s O: // torsdag, torsk - long to compensate for silent r t) or (ny V // tornyster @@ -6765,10 +6903,10 @@ perestr) o (jka 'V // stressed p) or (n O: // porno p) orce Os@- // porcelæn m) oskva Vskv'& // - _im) o (d 'o // stressed + _im) o (d '?o // stressed m) ontana Vnt'&n& // - m) o (nitor V // - _C) o (_ o // jo, ko, lo, so + m) o (nitor ?V // + _C) o (_ ?o // jo, ko, lo, so f) o (d+ ?o // fodre C) oe (de o // boede, troede betr) oe (de o@- // betroede midler @@ -6777,7 +6915,7 @@ perestr) o (jka 'V // stressed t) o (gt+ V // togt t) og (tur ow // kl) og (+ Ow // klog, klogt - kn) og Vu // knogle + kn) og ?Ow // knogle t) oi (l o& // toilet repert) oire 'wA: // f) o (rL04+ o // aforisme, eufori @@ -6917,11 +7055,11 @@ noblesse_) oblige _^_fr // noblesse oblige &if) on ($p_alt '?VN // sifon &lef) on ($p_alt '?on // telefon &of) on ($p_alt '?on // grammofon - &l) on ($p_alt '?VN // bouillon, talon + &l) on ($p_alt++ '?VN // bouillon, talon, salon &æs) on ($p_alt++ '?VN // sæson bet) on ($p_alt++ '?VN // beton &j) on ($p_alt++ '?VN // medaljon - &el) on ($p_alt '?on // melon + &el) on ($p_alt++ '?on // melon &) on (el$p_alt++ on // rationel // exceptions to the -on rule (and other -on exception) @@ -7004,7 +7142,7 @@ helsingf) or (s 'V // stressed k) or (tA ?O: // korte t) or (L06 O: // torpedere or (to O: // ortodoks, ortopæd - m) orge OO@- // morgen + m) orge O?O@- // morgen dek) or (_ 'V:r // dekor rapp) or (t 'O: // rapport f) or (t_ O: // fort @@ -7022,7 +7160,7 @@ helsingf) or (s 'V // stressed st) or (t or // stort sv) or (e+ or // svoret _) or (i O // orientere, original - orien (ter Oi3n // venstreorienterede + orien (ter Oj@n // venstreorienterede _) or (a or // orange orm orm // f) or (m_ O: // form @@ -7031,8 +7169,11 @@ helsingf) or (s 'V // stressed f) or (mere V // formere _h) ormon Om'on // n) or (m O // normal - st) or (m O: // + st) or (m O // b) or (t O: // bortforklare + p) or (t Or // port + imp) or (te O: // importere + imp) or (t_ 'O // import - stressed _ab) or 'O:d // stressed or (al oR // oral _esk) or (te 'V: // eskorte @@ -7050,13 +7191,13 @@ _transp) or (t_ 'O: // stressed - transport rekt) or V // rektorforening // when "ord" means 'word', the d isn't pronunced - ord (++ or // ord , forord + ord (++ ?or // ord , forord orde (_ o:V // komme til orde // Exceptions to the or rule - "ord" doesn't mean "word" k) ord (el Vrd // kordel v) ord (e Vrd // helliget vorde dit navn h) ord (e O:d // - b) ordeaux oRd'o // + b) ordeaux ORd'o // conc) ord (e 'V:d // Concorde g) ord (on V:d // name n) ordisk ordisg // @@ -7073,7 +7214,7 @@ _transp) or (t_ 'O: // stressed - transport ord (en+ Od // orden, ordensmagt n) orden OVn // Norden - silent d b) orde (nde orE // - ord (ene+ oR // ordene + orde (ne+ ?oV // ordene, bordene ord (enen+ O:d // ordenen t) ord (enen+ ord // tordenen _t) ord (++ ord // torden, tordne @@ -7118,7 +7259,7 @@ _transp) or (t_ 'O: // stressed - transport // _f) or (mL11++ %V // formane, formaning, formene f) or (køl ?V, // s'ommerfork,ølet f) or (bund O: // skytteforbundet - _f) ore (@++ O:O // foregå, foregive, foretage + _f) ore (@++ O?O // foregå, foregive, foretage misf) or (stå ?V // exceptions to initial 'for' below - 'for' means "front/fore" @@ -7364,7 +7505,7 @@ _transp) or (t_ 'O: // stressed - transport _f) or (trins+ 'O: // fortrinsret _f) or (trop+ 'O: // fortrop _f) or (tryk+ 'O: // fortryk - _f) ort (sætte+ 'O:d // fortsætte + _f) ort (sætte+ 'Od // fortsætte _f) or (tunge+ 'O: // fortunge _f) or (tæppe+ 'O: // fortæppe _f) or (ud++ 'O: // ud, forud, forudsætte @@ -7397,7 +7538,7 @@ _transp) or (t_ 'O: // stressed - transport sym) p (tom // silent p cam) pb (el b // silent p - Campbell pipeline paIplaIn // - pitchpine peTSpA:jn // pb + pitchpine peTSpA:jn // praline pRAlin'e // punchline pVnSlaIn // parfait pAf'E // @@ -7417,19 +7558,20 @@ _transp) or (t_ 'O: // stressed - transport _) pearl (_ pW:l // Pearl Harbor pierre pjE:r // French name perkins pWkens // name - pissoir pesw'A: // + pissoir p?esw'A: // peace pi:s // Greenpeace - paille (t p&j'E // stressed - peru per'u // stressed - pasadena p&s&d'in& // + paille (t p&j'?E // stressed + peru p?er'?u // stressed + pasadena p?&s?&d'in?& // perth pW:T // pincenez pa:Nsn'e // ra) phael f&'El // name ral) ph f // name - picku (p pik'V // - peignoir pEnjw'A: // + mem) ph (is f + picku (p p?ik'?V // + peignoir p?Enjw'A: // palm (_beach pA:m // - paintball pEjntbO:l // + paintball p?EjntbO:l // jose) ph f // percy pWsi // name _) piggy pigi // Miss Piggy @@ -7470,7 +7612,7 @@ _transp) or (t_ 'O: // stressed - transport rre (_ 3-V // tørre, herre rrer (_ 3-V // tørrer, herrer rrer (ne_ 3-V // tørrerne, herrerne - A) re (_++ V // hore, store - silent r + A) re (_++ V_! // hore, store - silent r A) re (n_ 3-V // frisøren, fyren A) re (ns_ 3-V // frisørens, fyrens C) re (_ R?V // after consonant: ad the r - sejre, venstre, ældre @@ -7479,6 +7621,7 @@ _transp) or (t_ 'O: // stressed - transport C) re (ste_ R?V // tapreste æld) re RV // forældreløs dy) re RV // dyrefoder + mind) re (@ RV // mindreværdig y) re (@+ V // myretue, dyrehold A) res (_ Vs C) rer (_++ rV // beundrer @@ -7495,10 +7638,10 @@ _transp) or (t_ 'O: // stressed - transport A) rene (_ Vn@- // hærene A) rene (s_ Vn@- // hærenes æ) re (+ V // ærefrygt, kæreste - æ) re (C+ 3-V // væremåde, værelse +// æ) re (C+ 3-V // væremåde, værelse myld) re (@ V // myldretid stue) re (n RE - ad) re (@ rV // sladrehank + lad) re (@ rV // sladrehank re (tion++++ R@- // diskretion høj) re (@ rV // højresving @@ -7524,7 +7667,7 @@ sædvane) ret (++ r&#t // tale) ret (++ r&#t // veto) ret (++ r&#t // borger) ret r&#t // - ind) ret (++ r&#t // + _ind) ret (++ r&#t // regel) ret (++ r&#t // hen) ret (_ r&#t // _ord) ret (++ r&#t // ordret oversættelse @@ -7569,6 +7712,7 @@ gøre_u) ret (++ r&#t // gøre uret en_u) ret (++ r&#t // begå en uret _u) ret (_mod_++ r&#t // begå uret mod dig_u) ret (++ r&#t // har alle andre end dig uret +_ret_eller_u) ret (_++ r&#t _) rhode RWwd // Rhodes rheu (ma RVj // rheumatoid @@ -7955,7 +8099,7 @@ kompromi) s ' // stress added twostep tu:stEp // dance toastmaster tOwstm,A:stV // toastmaster _) très (_ trE // French (very) - terry teri // + _) terry teri // name e) tt (id t|t // ettiden e) tt (al t|t // ettal tt (øj t|t // ballettøjet @@ -8008,14 +8152,16 @@ world_) trade trEjd // _ar) t (_deco // silent t // final -te: D@- - te (_ d@- // smerte, hjerte + te (_ d@-_! // smerte, hjerte lyg) te (@ t@- // lygtepæl sor) te (@ d@- // sorteper + hel) te (@ d@- // heltedåd tor) t (ere t // tortere - nes) te (@ d@- // tjenestepige + enes) te (@ d@- // tjenestepige _) te (_ te // tea por) tefø (lje t@-f'?W // stressed ø + _is) te (_ te // ice tea // final -tek - stressed e _apo) tek t'ek @@ -8054,7 +8200,7 @@ _video) tek t'ek til (ligemed tel' til (lykke tel' til (overs tel' - til (pas tel' + til (pas_ tel' til (rettelægge tel' til (rettevise tel' til (rettevisning tel' @@ -8099,21 +8245,29 @@ meningi) ti (s =ti // short u followed by double consonant u (C%+ ?u // blusse L03) u (ff+ ?O // bluffe - sk) u (L02% ?O // skuffe, skubbe + sk) u (L02% ?0 // skuffe, skubbe f) u (L06% ?O // fuppede r) u (L06% ?O // siruppen - C) u (kk+ ?O // sukker, lukker - C) u (gg ?O // hugge - b) ug (gjord u: + C) u (kk+ ?0 // sukker, lukker, stukket + k) u (kk+ ?u // kukke + C) u (gg ?0 // hugge + visel) u (lle '?u + l) u (der ?u // also spelled "ludder" + +// Short u. General rules? r) u (mmy ?V // card game u (ds ?u // pludselig + br) u (d ?u // brud, bruden - short + br) u (de_ u // brude - long + + b) ug (gjord u: h) utton ?Vt@n // name b) unny ?Vni // name // General rule: l/d + u + f: O L03) u (f ?O // luft, duft - u (se u: // muse, huse + u (se u // muse, huse u (set ?u // huset - "hus" made short by ph_danish ur (gt o3- // spurgt @@ -8125,7 +8279,8 @@ meningi) ti (s =ti j) u (L01L04 u // Jugoslavien gl) u (kose y // C) u (L01L11 u // halleluja - tr) u (ktL04 u // struktur +// tr) u (ktL04 u // struktur + C) u (ktL04 u // konduktør, struktur C) u (L01e+ O // lunge t) ucker VkV // name h) u (je+ u // @@ -8164,6 +8319,7 @@ meningi) ti (s =ti f) unk (tion 0N // funktionsfejl _p) u (nk V // punker L06) u (nkt O // punkt + h) un (ge++ ?un // hunged, hungepard // general rule: [O] followed by nd u (nd+ ?O // grund, rund, underligt, undtage @@ -8198,16 +8354,18 @@ meningi) ti (s =ti // remove u in order to make the -ig/elig rule (group i) work with u + -ig list words // e.g. u+erværdig [uErv'Erdi] will keep its stress on the next to last syllable. - _) u (@@+P1 u_! // _" = no link with next vowel + _) u (@@+P1 u_! // _" = no link with next vowel + _) ube (+ 'ube // uberørt - "be" gives the next vowel stress _) ufor '?ufV: // uforskyldt, uforfalsket, uforandret _) uud '?u|'?uD // uudforsket - _) u (lækker '?u - + _) u (lækker '?u + // exceptions - u isn't a prefix uppercut VpVkVt // _) u (nd+ ?O // underfuld, undtage _) u (ng+ ?O // ungdommelig u (gle+ u // ugle + u (ld+ u // uld u (lv+ ?u // ulvene _) ubeset (_ ubesed // _p) u (b_ ?V // @@ -8217,30 +8375,29 @@ meningi) ti (s =ti uformel ufOm'el // u (ltima ?u // ultimatum u (ltra ?u // ultraviolet - u (denfor+ u // - u (dgrundelig+ u // - u (imodståelig u // - u (surp u // usurpator - u (ni++ u // uniform, universitet + u (defra+ ?u // + u (dgrundelig+ ?u // + u (imodståelig ?u // + u (surp ?u // usurpator + u (ni++ ?u // uniform, universitet t) u (ning+ ju // t) u (ne ju // prod) u (ceren ju // _st) u (art ju // name g) u (den+ ?u // u is shorter in "guden" than in "gud" (glottal stop) u (ge++ u // ugerne, sluge - uger (+ u:V // sluger, slugere + uger (+ uV // sluger, slugere s) uge (rør u3 // silent g - _) u (r++ u // ur, urrem, uret + _) u (r++ ?u // ur, urrem, uret _) u (retfæ++P1 u: // uretfærdig - prefix - _) u (ds+ u // udsætte + _) u (ds+ ?u // udsætte et) u (de+ 'y // stressed - u (topi u // - uskyldig usg'yldi // + u (topi ?u // + uskyldig ?usg'yldi // d) u (blin V // city - st) u (kket O // - ukulele ukul'el@- // + ukulele ?uk?ul'el@- // acap) u (lco 'u // stressed - m) u (pperne V // + m) u (pperne ?V // // nouns with final -um in da_list - stress on previous syllable &) um ($p_alt =Om // jubilæum @@ -8381,6 +8538,7 @@ stand_) u (p V // stand-up-komiker vind) uer uV // vind) uet u@-D // ue (_ u:u // due, statue + d) ue (lig u@- skr) ue (C u: // skruenøgle TEST fond) ue 'y // ostefondue infl) ue (nza u'E // stressed @@ -8516,8 +8674,8 @@ mudderh) u (l O // val) u (ta 'u // stressed _der) u (d 'u // stressed - derud _instr) u (ks 'u // stressed - valp) u (rgis 'u // stressed valpurgisnat - gr) u (p u // gruppe + valp) u (rgis 'u // stressed - valpurgisnat + gr) u (pp ?u // gruppe r) u (m ?O tr) u (man u // name _st) urgis WdZis // name @@ -8580,6 +8738,7 @@ proven) u 'y v v vv v A) v (_ w // væv + A) v (s w // snøvsen TEST i) v (_ w // stativ i) v (t_ w // effektivt ra) v (C w // gravkammer @@ -8604,7 +8763,7 @@ proven) u 'y &A) v (_A v // gav ordre ti) v (A v // fiktive v (n w // jævn, levne - tvi) v (l u // + tvi) v (l w // &r) v v al) v (e v // halve el) v (C @@ -8705,6 +8864,7 @@ udeble) v w // pl) y (ss ?y // plysset h) y (ld ?y // hyldest C) y (ll ?y // gylle + L08) y (rr ?y /forstyrrelsen // short y Cl) y ?y // fly, bly TEST @@ -8713,6 +8873,9 @@ udeble) v w // l) y (d ?y l) y (de_ y l) y (den_ ?y + bet) y (d ?y // betyde + y (der ?y // skyder - short y + geb) y (r ?y // general rule: [W] before (some) velars y (nk+ W // ynk, ynkelig, klynke @@ -8722,7 +8885,7 @@ udeble) v w // l) y (kø ?W // lykønske l) y (ksalig W // l) y (n_ ?y // lyn, kuglelyn - _l) y (n ?y // lynkarriere + _l) y (n+ ?y // lynkarriere, lynkursus l) yng (limt yng // l) yng WN // sm) y (kn W // udsmykning @@ -8743,7 +8906,7 @@ udeble) v w // // general rule: consonant + y + sp/st/sk: [?y] - glottal C) y (L08+ ?y // kysk C) y (se+ y // kyse - l) y (set+ ?y // + l) y (seC+ ?y // lyset, lysekrone c) y (kel ?y // short y l) y (stgård ?W // kr) y (bb+ ?y // krybbe @@ -8831,7 +8994,7 @@ virkel) y (st W // fl) y (tn W // flytning m) y (nte 'W // mynte, pebermynte (stressed) afl) y (tt ?y // aflytning - L08) y (tt+ ?W // spyt, skyts, beskytte + L08) y (t+ ?W // spyt, skyts, beskytte sk) y (ti y // Skytien, skytisk sk) y (ter y // skyter s) yv yw // @@ -8984,9 +9147,10 @@ _stereot) y (p 'y // stressed æ E -// glottal æ followed by double consonant +// short æ followed by double consonant æ (C%+ ?E // læsse æ (CC ?E // hænder - nd=>n + æ (ble E // long E æv (de ?Ew // hævde æ (gypt E' // ærre ?E3-V // spærreballon @@ -9006,31 +9170,32 @@ _hun_l) æ (ste E: // general rule &# after r r) æ (+ &# // frækt - very broad + r) æ (CC ?&# // brænd suver) æ (n 'E // stressed - kr) æ (_ E? // - r) æ (t+ &# // åndedræt - spr) æ (C+ &# // sprængt + kr) æ (_ ?E // + r) æ (t+ ?&# // åndedræt + spr) æ (C+ ?&# // sprængt pr) æ (C+ ?E // prætendere, præsentere, prækvalificere - rør) æg Eg // - pr) æ (gn E // prægnans, prægnant + rør) æg ?Eg // + pr) æ (gn ?E // prægnans, prægnant for) æ (dle ?E // æ (ld+ ?E // forældet, ældre, forældre æ (lpe+ ?E // hjælpe - lp = double consonant? r) æ (s E // kræsen, ræsson r) æ (CL04 E // prærie, præcis - L08r) æ (C &# // skræk, skrælle, sprælle - gr) æ (s &# // græsplæne - pr) æ (st_ &# // - pr) æ (ster &# // - pr) æ (sten &# // - pr) æ (sterne &# // - pr) æ (stin &# // præstinde - pr) æ (sta E // præstation + L08r) æ (C ?&# // skræk, skrælle, sprælle + gr) æ (s ?&# // græsplæne + pr) æ (st_ ?&# // + pr) æ (ster ?&# // + pr) æ (sten ?&# // + pr) æ (sterne ?&# // + pr) æ (stin ?&# // præstinde + pr) æ (sta ?E // præstation // general rule E after tr tr) æ (+ ?E // juletræ - tr) æ (e E // træet + tr) æ (e ?E // træet tr) æg (_ Ej // tr) æg (e_ Ej // @@ -9043,14 +9208,14 @@ _hun_l) æ (ste E: r) æ (L02% ?&# // TEST r + æ + double labial - skræppe r) æ (L02t+ ?&# // TEST r + æ + labial + t - dræbt, kræft r) æ (m ?&# // fugleskræmsel - tr) æ (C+ ?&# // træværk + tr) æ (C+++ ?&# // træværk, træhest tr) æg (hed Ej // r) æ (d+ ?&# // fortræd, ræd _portr) æ (t '?&# // stressed // general rule r + æ + consonant + e: E tr) æ (Ce++ E // træne, træde - rr) æ (Cer+ &# // forræderi + rr) æ (Cer+ ?&# // forræderi dr) æ (ber E // _mor) æ (ne+ 'E // stressed _tr) æ (ben++ ?&# // træben @@ -9059,54 +9224,54 @@ _portr) æ (t '?&# // stressed r) æ (de++ &# // græde // final -æer: stressed æ - _aram) æ (er 'E -_athen) æ (er 'E -_epikur) æ (er 'E -_europ) æ (er 'E -_faris) æ (er 'E -_galil) æ (er 'E - _hebr) æ (er 'E -_kanaan) æ (er 'E -_kanaan) æ (er 'E -_nasir) æ (er 'E -_nazar) æ (er 'E -_propyl) æ (er 'E -_pythagor) æ (er 'E + _aram) æ (er '?E +_athen) æ (er '?E +_epikur) æ (er '?E +_europ) æ (er '?E +_faris) æ (er '?E +_galil) æ (er '?E + _hebr) æ (er '?E +_kanaan) æ (er '?E +_nasir) æ (er '?E +_nazar) æ (er '?E +_propyl) æ (er '?E +_pythagor) æ (er '?E - æld (r+ Eld // forældre, ældre - k) æld (r El // kældre + æld (r+ ?Eld // forældre, ældre + k) æld (r ?El // kældre pr) æ (k E // præke pr) ædi ED // silent i - prædiken - pr) ædi (kant Edi // - pr) æ (stere E // - spr) æ (kk &# // sprække + pr) ædi (kant ?Edi // + pr) æ (stere ?E // + spr) æ (kk ?&# // sprække sp) æ (ne E: // opposed to "spænde" with a short æ _migr) æ (ne 'E // stressed _dom) æ (ne 'E // stressed f) æ (re 'E: // affære, atmosfære, sfære - gev) ær 'E3- // gevær, geværet - besv) ær (_ 'E3- // besvær + gev) ær '?E3- // gevær, geværet + besv) ær (_ '?E3- // besvær afh) æ (ngig 'E: // stressed - _omst) æ (nd ''E // stressed - omstændighed - _pal) æ 'E // stressed -_porcel) æ (n 'E // stressed - _pygm) æ 'E // stressed - trof) æ 'E // stressed + _omst) æ (nd ''?E // stressed - omstændighed + _pal) æ '?E // stressed +_porcel) æ (n '?E // stressed + _pygm) æ '?E // stressed + trof) æ '?E // stressed _fad) æ (se 'E // stressed refr) æn '&N // stressed _font) æ (ne 'E // stressed - ortop) æ (d 'E // stressed - _iv) æ (rksæt 'E // stressed - iværksætter + ortop) æ (d '?E // stressed + _iv) æ (rksæt '?E // stressed - iværksætter _karant) æ (ne 'E // stressed _jubil) æ 'E // jubilæet galil) æ 'E // Galilæa, galilæerne t) æge E:j@- // tæge - t) æer E3- // tæer + t) æer ?E3- // tæer C) ærge E:r?u@- // sværge, færge, værge v) ærger E:r?uV // sværger ævl Eul // majest) æ (t 'E // stressed æ - ærinde ERn@- // + ærinde -n@- // svinkeærinde + ærinder -nV sj) æ (l ?E // sjæl sj) æ (leC E // sjælefred sj) æ (len ?E // sjælen, sjælens @@ -9122,42 +9287,47 @@ majest) æ (t 'E // stressed æ ø (ds ?W // ødsel, fødsel - short before 2 consonants b) ø (n ?W // bønder ø (dt ?W // mødtes + ø (ns ?W // ønske // words with short ø bel) ø (b ?W -// ø (rn ?W // ørne, børn + s) ø ?W // søfolk -_chauff) ø (r 'W // stressed in 'chauffør' - _milj) ø 'W // stressed - miljø +_chauff) ø (r '?W // stressed in 'chauffør' + _milj) ø '?W // stressed - miljø obsk) ø (n 'W: // stressed - _nev) ø 'W // stressed + _nev) ø '?W // stressed _am) ø (be 'W // stressed - h) ø (j V - ø (je W# // øje + h) ø (j ?V + ø (je V // øje øre W?V // snørebånd, gøren ører (n W?V // ørerne ører (_ W?V // kører i) øre (faldende 'WV // stressed s) øre (dni WrE // søredningstjeneste - øjer W#jV // bøjer - ø (jn W# // øjne - l) øg 'Vj // løgn, løg + øjer Vj?V // bøjer + ø (jn ?V // øjne + l) øg '?Vj // løgn, løg kl) øg (t ?Wg // kløgtig - gl) øgg Wg // gløgg - g) øg (l Vj // gøgler - l) ø (s W - C) ø (j+ V // søjle, bøjle, sprøjte - _hall) ø (j 'W# // stressed - burg) ø (js 'W# // burgøjser, burgøjsisk - stressed -oberstl) ø (jtnant 'W# // stressed + kl) ø (e_ W: + gl) øgg ?Wg // gløgg + g) øg (l ?Vj // gøgler + l) ø (s ?W + C) ø (j ?V // fløj TEST +// C) ø (jC+ ?V // søjle, bøjle, sprøjte +// t) ø (j ?V +// fl) ø (j ?V + _hall) ø (j '?V // stressed + burg) ø (js '?V // burgøjser, burgøjsisk - stressed +oberstl) ø (jtnant '?V // stressed L09) ø (g+ V // m => L09 (m + n) - møg, smøg, nøgen - n) øg (tern Wg // + n) øg (tern ?Wg // sm) øg (_sig Wj // "katten smøg sig om benet" _n) ø (d@ 'W // nød- stressed - nødsituation - _n) ødt (_ Wd // nødt - r) ø (d+ W // brød + _n) ødt (_ ?WD // nødt + r) ø (d+ ?W // brød fr) ø (+ ?W // frø, frøer - short even if followed by [V] - r) ø (L09 W# // grøn, strøm + r) ø (L09 ?W# // grøn, strøm r) ø (L09e W // skrøne dr) ø (n ?W // drøn dr) ø (ne W // drøne @@ -9166,14 +9336,15 @@ oberstl) ø (jtnant 'W# // stressed d) ø (den ?W // døden r) ø (mer ?W // strømere L08) ø (ge W // skøge - sp) øg (en Vj // - sp) øg (_ Vj // spøg = joke + sp) øg (en ?Vj // + sp) øg (_ ?Vj // spøg = joke s) ø (g ?W // søgte - sp) ørg Wr // spørg + s) øg (_ ?Wj // forsøg + sp) ørg ?Wr // spørg sp) ørge W3-V sp) ørger (_ W3- // sp) ør (gs Wr // spørgsmål - r) ø (g+ ?W# // røg + r) øg ?W#j // røg, strøg r) ø (gte W // misrøgte r) ø (gelse W // for) ø (g W // forøge @@ -9184,13 +9355,15 @@ oberstl) ø (jtnant 'W# // stressed bedr) ø (v W // bedrøvede r) ø (ver W: // røver r) ø (veri W // røveri - narr) ø (v W# // narrøve -bonder) ø (v W# // bonderøve + narr) ø (v ?W# // narrøve +bonder) ø (v ?W# // bonderøve +hænger) ø (v ?W# pr) ø (v ?W // short pr) ø (vA W // _r) ø (ven ?W# // dr) ø (vet W // bedrøvet k) ød ?WD // skød, kød + sk) ø (de W _) øg (_ ?Wj // 'øg' noun and verb d) øg (n Vj øj+ V:j // changet from [Oj] @@ -9202,14 +9375,14 @@ bonder) ø (v W# // bonderøve .group øs // (mostley French -eux/-euse) adjectives ending with -øs in da_list - stressed ø - &) øs ($p_alt 'W:s // dubiøs + &) øs ($p_alt 'Ws // dubiøs .group ør // (mostley French -eur) nouns ending with -ør - stressed ø - around 150 words &) ør ($p_alt ''?W3- // hønnør, frisør &) ør (er$p_alt ''?W3- // sympatisører &g) ør ($p_alt ''W:3- // vigør - &) ør (en$p_alt ''?WV // hønnøren, frisøren + &) ør (en$p_alt ''?W // hønnøren, frisøren .group å å O // changed from O:? @@ -9219,14 +9392,14 @@ bonder) ø (v W# // bonderøve å (Ce O // måned år (@ O: // dårlig, årsag @) år (_ ?O: // skatteår - _) år (_ O: // år + _) år (_ O // år C) år (_ ?O: // sår, kår, skår, får år (s O: // årstid s) år (C O: // sårbar - åre O:?O // Pb åre, årelang, båre, båren - året O:?OD // året, håret + åre O:?O // åre, årelang, båre, båren + året O?OD // året, håret n) å (et ?O // short glottal o - @n) å (et O // opnået + @n) å (et ?O // opnået // Short o v) å (gn ?0 // vågne diff --git a/dictsource/de_list b/dictsource/de_list index 56d91fe4..071a62a7 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -63,6 +63,8 @@ _#32 l'e:rts'aIC@n _?? zymb'o:l _?A b'u:xstA:b@ _cap gr'o:s +_sub 'Unt@R|3_!,IndEks|| +_sup 'o:b@R|3_!,IndEks|| // accent names diff --git a/dictsource/en_list b/dictsource/en_list index 92b93d45..1ff69b6a 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -16,9 +16,10 @@ // ?7 Scottish // ?8 Use full vowel, not schwa in some word endings -// $alt1 use strong ending (-table, -inal) -// $alt2 use weak ending +// $alt1 use strong ending (-an, -table, -inal, -ier) +// $alt2 use weak ending (ard, ate, ery, ess, ile, men) // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] +// $alt4 separate 'h', not 'th' // $alt6 'to' @@ -105,6 +106,8 @@ _hok h'Uk // character names _cap k,ap@-t@L +_sub s,VbskrIpt|| +_sup s,u:p3skrIpt|| _?A l,Et3 _?? sImb@L _braille br'eIl @@ -148,19 +151,14 @@ _} raItbreIs _¡ %Inv,3:tI2dEkskl@m'eIS@n _¦ broUk@nb'A@ _¨ daIa#r'i:sIs -_ª fEmI2nIn'O@dI2n@L _« lEft'gIl@mEt _­ makr0n -² tu: -³ Tri: -_¹ su:p@skrIptw'0n -_² su:p@skrIptt'u: -_³ su:p@skrIptT'ri: +² tu: $native +³ Tri: $native + _´ a#kju:taksEnt _· mId@Ld0t _¸ sEd'Il@ -//_º maskjUlIn'O@dI2n@L -_º dI2gr'i:z _» raIt'gIl@mEt _¿ %Inv,3:tI2dkw'EstS@n @@ -284,42 +282,42 @@ _ja dZ'ap@ni:z _zh tS'aIni:z // Cyrillic letters -а a -б bE -в vE -г gE -д dE -е jE -ё jo -ж ZE -з zE -и I +а a: +б bE: +в vE: +г gE: +д dE: +е jE: +ё jo: +ж ZE: +з zE: +и I: й ,Ik@-*'atkOji -к ka +к ka: л El/1 м Em н En -о o -п pE +о o: +п pE: р Er с Es -т tE -у u +т tE: +у u|: ф Ef -х xa -ц tsE -ч tSE -ш Sa -щ StSa +х xa: +ц tsE: +ч tSE: +ш Sa: +щ StSa: ъ jEr ы j'Eru ь j'eri -э E -ю ju -я ja -ћ tS;E -ђ djE -ќ kjE +э E: +ю ju|: +я ja: +ћ tS;E: +ђ djE: +ќ kjE: // Arabic letters @@ -507,7 +505,7 @@ _3o T'3: _5o f'If _20o tw'Enti@ _30o T'3:ti@ -?3 _30o T'IRti@ +?5 _30o T'IRti@ _40o f'o@ti@ _50o f'Ifti@ _60o s'Iksti@ @@ -567,8 +565,10 @@ ie aIi:_! $pause $only i.e aIi:_! $pause imo $abbrev inlb $abbrev +ios $abbrev irc $abbrev irs $abbrev +isbn $abbrev itx $abbrev (km ²) skw,e@kIl'0mIt3z lapd $abbrev @@ -593,6 +593,7 @@ oem $abbrev ok $abbrev omg $abbrev os $abbrev +osx $abbrev otoh $abbrev pcie $abbrev pcmcia $abbrev @@ -661,8 +662,7 @@ ability a#bIl@ti ablaut ablaUt aborigine ab@r'IdZ@ni abracadabra abr@k@d'abr@ -absence abs@ns -absent $1 +absentee $3 absent abs'Ent $verb absentia abs'Ent2i:@ absinthe absInT @@ -694,6 +694,7 @@ adieu a#dju: adieus a#dju:z adieux a#dju:z adios aDj'o:s +adjective $1 admirable adm@r@b@L admirably adm@r@bli admonition adm@n'IS@n @@ -730,7 +731,7 @@ agog a#g0g agressive a#grEsIv // misspell aground a#graUnd ague eIgju: -aha A:hA: +aha A:h'A: ahem a#h'Em ahoy a#hOI airbus e@bVs @@ -758,6 +759,7 @@ allover O:l'oUv3 alm A:m almost O:lmoUst allspice $1 +alt 0lt // not abbrev alternate O:lt'3:n@t $only alternate O:lt3neIt $verb alternately O:lt'3:n@tlI $verbf @@ -791,7 +793,6 @@ anemometer anIm'0mI2t3 anew a#nju: ?3 anew a#nu: anime anImeI -anion aneI@n anise anIs anniversary anIv'3:s@ri anon a#n0n @@ -804,7 +805,7 @@ antibody $1 antichrist $1 anticline $1 antidote $1 -antifreze $1 +antifreeze $1 antigen $1 antihero $1 antilog $1 @@ -874,6 +875,7 @@ attribute atrIbju:t attribute $alt3 $verb au ,oU aubergine oUb3Zi:n +audi aUdi auger O:g3 augmentation O:gmEnt'eIS@n august O:g@st @@ -972,6 +974,7 @@ blurry bl3:rI boing bOIN bolognese b0l@n'eIz bombard $2 +bombardier b0mb3d'i@3 (bon voyage) b0n||vOI'A:Z bonbon b0nb0n bonhomie b0n@mi: @@ -1054,7 +1057,7 @@ capita kapIt@ capitol kapIt@L caprice ka#pri:s carafe ka#raf -caramel kar@mEl +?!3 caramel kar@mEl $onlys caravan kar@van carburetor kA@b@r'Et3 ?3 carburetor kA@b@reIt3 @@ -1075,7 +1078,7 @@ cathedral $alt3 catholic kaTlIk carotid $alt3 cartel kA@t'El -cavalier $3 +cavalier $alt1 caveat kavIat ?3 caveat kavIA:t caviar kavIA@ @@ -1089,6 +1092,7 @@ celebre sEl'Ebr@ censure sEnS3 ceres si@ri:z certificate s3tIfIk@t +c'est seI $u chagrin SagrIn ?3 chagrin Sa#grIn chalet SaleI @@ -1151,6 +1155,7 @@ closely kloUslI $verbf // not kloUzlI closet kl0zI2t cloth kloUD $verb c'mon k@m0n +coathanger $alt4 coauthor koU'O:T3 coaxial koU'aksI@l cobol koUb0l @@ -1170,6 +1175,7 @@ coincide koUIns'aId cojones k@hoUneIs coliseum k0l@s'i:@m collage k0l'A:Z +collarbone k0l3boUn college k0lI2dZ collegiate k@li:dZI@t colloquial k@loUkwI@L @@ -1266,6 +1272,7 @@ corral k@r'al cosmos k0zm0s ?3 cosmos k0zmoUs cougar ku:g3 +counteract $3 countered kaUnt3d (coup de grâce) ku:d@||gr'A: coupon ku:p0n @@ -1441,6 +1448,7 @@ edwardian Edw'O@di@n efile i:faIl egg Eg // egging egregious Igr'i:dZ@s +?!3 egret i:gr@t eh eI eid i:d el ,El $only @@ -1537,6 +1545,7 @@ eyrie i@ri facade f@sA:d façade f@sA:d facetious $alt3 +faculty fak@Lt2i faeces fi:si:z fahrenheit far@nhaIt fairest fe@r@st @@ -1598,11 +1607,11 @@ fortune fO@tSu:n foyer fOIeI freelance fri:laans freon fri:0n -frequent frI2kwEnt $verb fricassee frIka#seI frigate frIg@t fringer frIndZ3 // infringer fringing frIndZIN +frisson fri:s'O~ frontend fr'Vnt,End frontier frVnti@3 ?3 frontier frVnt'i@3 @@ -1641,6 +1650,7 @@ gentlemen dZEnt@Lm@n genuine dZEnju:I#n geode dZi:oUd geologist $2 +gettin gEt#n- geyser gi:z3 ?3 geyser gaIz3 gibbon gIb@n @@ -1651,6 +1661,7 @@ gimme gImi giraffe dZI2raaf github gIthVb glacier gleIS3 +?3 goddess $alt2 goin ,goUI2n $only // for goin' gonna g,@n@ goodbye $2 @@ -1672,6 +1683,7 @@ griffon grIf@n grosvenor groUv@n3 groupie gru:pi guacamole gwA:ka#m'oUli: +guarantee $3 gucci gu:tSi gui gu:i $onlys guinea gIni @@ -1680,6 +1692,8 @@ gurus gu:ru:z habitual $alt3 haggis hagIs haha hA:h'A: +halation $alt3 // in- +halberdier $alt1 halleluiah halI2'lu:j@ hallelujah halI2'lu:j@ halloween $3 @@ -1703,6 +1717,7 @@ hello h@loU henceforth hEnsfo@T ?3 herb 3:b hercules h3:kjUli:z +heredity h3rEdI2ti ?3 hereford h3:f3d heretical hI2rEtI2k@L hereto hi@3'tu: @@ -1878,6 +1893,7 @@ kosher koUS3 kowtow kaUt2aU la ,la $only +(la vie) la||v'i: laboratory la#b'0r@trI ?3 laboratory labr@tO:ri labor leIb3 @@ -2072,9 +2088,10 @@ mixer mIks3 moccasin m0k@sI#n mocha moUk@ modem moUdEm -?3 modem moUd@m +?3 modem moUd@m moderate m0d@reIt $verb mogul moUg@L +moi mwA: mojito moUh'i:toU molass $alt3 molybdenum $2 @@ -2154,10 +2171,11 @@ nothing nVTIN notwithstanding $3 noway noUweI nowhere noUwe@ -?3 nuance nu:0ns +?3 nuance nu:0ns oases oU'eIsi:z oasis oU'eIsI2s +obdurate $alt2 obelisk 0b@lI2sk obesity oUb'i:s@ti obey oUb'eI @@ -2296,6 +2314,7 @@ persona p3:s'oUn@ perspex p3:spEks perus p@ru:z peruse p@ru:z +petit p@ti: petite p@ti:t petroleum p@troUli:@m petunia $alt3 @@ -2336,6 +2355,7 @@ plethora plET3r@ plicate $2 plumber plVm3 plus plVs +pois pwA: poly p0lI politer p@l'aIt3 politic p0l@tIk $onlys @@ -2378,6 +2398,7 @@ pretext pri:t2Ekst pretrial pri:tr'aI|@L pretty prIti pretzel prEts@L +?3 priestess $alt2 primeval praIm'i:v@L pristine $2 ?3 privacy praIv@si @@ -2419,6 +2440,7 @@ puny pju:ni purist pju:r-Ist purport $2 purportedly $2 +puttin pUt#n- pyjama p@dZA:m@ pyrites paIr'aIti:z pythagoras paIT'ag@r@s @@ -2442,6 +2464,7 @@ radish radIS ragged ragI#d raiment reIm@nt rainforest r'eInf,0rI2st +(raison d'être) reIz0n||d'Etr@- rajah rA:dZA: rapier reIpi@3 rapport rap'o@ @@ -2519,6 +2542,7 @@ rendevous r0ndI2vu: rendezvous r0ndI2vu: renegade rEn@geId reo ri:oU +repartee rEpA@t'eI repel rI2pEl replay ri:pleI reply rI2plaI // for replied @@ -2652,6 +2676,7 @@ sesame sEsa#mi settee $2 severe sI2v'i@3 $only severely sI2v'i@3lI $verbf +sewn soUn sex sEks // sexism several sEvr@L shallow SaloU @@ -2827,9 +2852,8 @@ telephon tElI2foUn // for telephoning temperature tEmprI2tS3 ?!3 temporary tEmpr@rI ?3 template tEmpl@t -thereof ,De@'0v -thereon ,De@'0n -thereto ,De@'tu: +therefore $1 +thereof De@r'0v thermos T3:m@s thermostable $alt1 thesis Ti:sIs @@ -2952,7 +2976,6 @@ useful ju:sf@L utan u:t'an utensil ju:t'Ens@L -valentine val@ntaIn valet valeI ?3 valet val'eI valise va#li:s @@ -3083,6 +3106,7 @@ Cheadle tSi:d@L Cheshire tSES3 Chiswick tSIzIk Clwyd klu:Id +Conway $1 Dagenham dag@n@m Devon dEv@n Dolgellau d0lg'EClaI @@ -3159,6 +3183,7 @@ Belgrade $2 Belize bEl'i:z Bengal b,Eng'O:l Benin bEnIn +Berkeley b3:kli Bhutan bu:t'an Bideford bIdIf@d Bogota b0g@t'A: @@ -3195,6 +3220,7 @@ Cruz kru:z Cyprus saIpr@s Dahomey $alt3 Dallas dal@s +Dagestan dA:gIst'A:n Damascus $alt3 Dakota $alt3 Danish deInIS @@ -3208,6 +3234,8 @@ Egyptia IdZ'IpS@ Egyptian IdZ'IpS@n Eire e@r@ Elysee eIl'i:zeI +Elysée eIl'i:zeI +Erebus ErI#b@s Erie i@ri Euphrates ju:fr'eIti:z Eyjafjalla eIja#fjatla# @@ -3222,6 +3250,7 @@ Gomera goUm'e@r@ Gurmukhi gU@mUki Harare ha#rA:ri Hanoi han'OI +Harvard $alt2 Havana ha#van@ Hawaii h@w'aIi: Hawai'i h@w'aIi: @@ -3229,6 +3258,7 @@ Hawaiian h@w'aI@n Hebrew hi:bru: Hebrides hEbr@di:z Honduras h0nd'jU@r@s +Honolulu $3 Houston hju:st@n Idaho $1 Illinois Il@n'OI @@ -3257,7 +3287,10 @@ Korean kOr'i:@n ?3 Korean k3r'i:@n Kosovo k0s@voU Kuala kwA:la# +Kyrgyz k3:rgIz +Kyrgyzstan k3:rgIst'A:n Lagos leIg0s +Lahore $alt3 Lebanon lEb@n0n Leipzig laIpsIg Leone li:'oUn @@ -3340,6 +3373,7 @@ Punjabi pVndZ'A:bi Pyrenees pIr@n'i:z Qatar katA@ Quebec kwI2bEk +Québec kwI2bEk Raleigh rA:li Reno ri:noU Rio ri:oU @@ -3417,6 +3451,8 @@ Ada eId@ $onlys Andrea $2 Adrian eIdri@n Agatha aga#T@ +Angela andZ@l@ +Angelika $2 Aggie agi Agnes agn@s Aguilera agi:l'e@r@ @@ -3441,12 +3477,13 @@ Amy eImi Andre 0ndreI Andrea andri@ Andreas A:ndr'eI@s -Angela $1 +Angela ang@l@ Anita $alt3 Anthony ant@ni Anton ant0n Aoife i:f@ Aoiffe i:f@ +Aphrodite afr@d'aIti Archibald A@tSIbO:ld Archie A@tSi Ares e@ri:z @@ -3523,6 +3560,7 @@ Duane dweIn Duncan dVnk@n Dvina d@vi:n@ Dylan dIl@n +Ebenezar Eb@n'i:z3 Edith i:dIT Eduardo Edw'A@doU Elijah I2laIdZ@ @@ -3559,10 +3597,13 @@ Giordino dZO@d'i:noU Giovanni dZ@v'A:ni Graeme greI@m Graham greI@m +Gruffydd grIfIT Guido gwi:doU +Guinevere gwInI#vi@3 Hadrian heIdri:@n Hamish heImIS Harriet hari@t +Harvey hA@vi Heidi haIdi Hecate hEk@teI Hekate hEk@teI @@ -3620,6 +3661,7 @@ Louise lu:w'i:z Luigi lu:'i:dZi Luis lu:Is Lupe lu:peI +Luther lu:T3 Madeleine mad@lI2n Madeline mad@lI2n Maeve meIv @@ -3681,6 +3723,7 @@ Persephone p3s'Ef@ni Phoebe fi:bi: Rachael reItS@L Rachel reItS@L +Rae reI Rafael rA:faI'El Rashid rA:S'i:d Raul raU'u:l @@ -3701,6 +3744,7 @@ Samantha sa#manT@ (Santa claus) s'ant@||kl'O:z Saoirse si@S@ Sarah se@r@ +Sarisa $alt3 Seamus SeIm@s Sean SO:n Sebastian $alt3 @@ -3713,6 +3757,7 @@ Siobhán S@vO:n Sonia s0nj@ Sophie soUfi Stephen sti:v@n +Stevie sti:vi Stewart stju:3t ?3 Stewart stu:3t Stuart stju:3t @@ -3736,6 +3781,7 @@ Vanessa $alt3 Wallace w0lI#s Wally w0li ?3 William wIlj@m +Yerevan jEr@v'an Yves i:v Yvonne $2 Zoe zoUi @@ -3753,6 +3799,7 @@ Campbell kamb@l Capone ka#poUn Carnegie kA@n@gi Cohen koU@n +Connolly $1 Cthulhu k@-Tu:l#u: Chrysler kraIsl3 (da vinci) da#vIntSi @@ -3769,6 +3816,7 @@ Folger foUldZ3 Genghis dZENgIs Gibson gIbs@n Guinness gInIs +Gutierrez gu:tj'ErEz Hades heIdi:z Hamilton ham@Lt@n Hoosier hu:Z3 @@ -3874,6 +3922,7 @@ at at $nounf $only $u (at once) a#t_w0ns ?6 (at once) a#t_wVns (at will) a#t_w'Il +(at & t) 'eIt2i:@nt'i: with wID $u (with the) w%IDD@2 $nounf @@ -4153,7 +4202,7 @@ someone sVmw0n //conjunctions -although OlD'oU $pause +although 0lD'oU $pause and and $u $pause $only as %az $only (as is) ,az,Iz $pause @@ -4219,6 +4268,7 @@ that Dat $u $nounf $strend2 $verbsf these Di:z $u $nounf $strend2 $only those DoUz $u $nounf $strend2 $only there De@ $u $strend2 $only +there've De@v $u (there are) D%e@,A@ $strend (there be) De@b'i: (there were) D%e@,w3: $strend diff --git a/dictsource/en_rules b/dictsource/en_rules index 4683f324..ec5ad6b7 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -239,14 +239,15 @@ ab (ruc ab ab (sce ab ab (sei ab - absen (t ,abs@n + _) ab (sen ab + _) abse (ntC ,abs@ ab (solu ab ab (sti ab ab (ular 'ab b) ab (y eIb b) ab (yl ab &) able (_S4iev @b@L // suffix - &) able (_$w_alt eIb@L + &) able (_$w_alt1 eIb@L &c) able (_ @b@L @ct) able (_ =@b@L &) ability (S7iev @b'IlI2t%i // suffix @@ -302,7 +303,7 @@ f) ac (ilit @s _m) ace (d asI m) achi (nA# @Si: - m) achina (t aSI2neI + m) achina (t akI2neI ach (rom ak ac (id_ as _) ac (i a#s @@ -516,13 +517,16 @@ _) alber (tA alb'3: _) al (c al alco (h alk@ + &) al (cy_ @l _) al (d O:l alde (hy 'aldI ale (_ eIl ale (h eIl X) al (ed al k) alei (d @laI + _v) alen (t al@n aleph alEf + _op) al (es @l _) alexan alIgz'aan _) alfa alf@ _) al (g al @@ -634,9 +638,8 @@ t) all (e O:l thr) all O:l Av) al (en @l - w) all (A 0l + w) all (A+ 0l w) alle O:l - w) all (et 0l w) all O:l w) all (a 0l al (tAr 0l @@ -686,6 +689,7 @@ amer (ic a#mEr c) am (ero am c) am (el am + car) am (el @m am (i_ 'A:m ami (g a#mi: _d) am (i eIm @@ -754,8 +758,8 @@ hum) an (_ @n &) an (ty_ @n &) an (t_ @n - &) an (t_$w_alt an -?3 &) an (t_$w_alt A:n + &) an (t_$w_alt1 an +?3 &) an (t_$w_alt1 A:n ?8 &) an (t_ a#n _f) an (at a#n pl) an (t_ an @@ -782,7 +786,10 @@ &) an (ese @n _) ane (s anI an (gul 'an + _) ani anI + _) ani (on anaI &) ani (_ 'A:nI + @st) ani (_S1 =i an (ia 'eIn ania (c_ 'eInIa ania (c a#naI@ @@ -912,6 +919,7 @@ _t) ar (_ A@ &) ar (dis 3 &) ar (diz 3 + &) ar (d_$w_alt2 3 &d) ar (d_ 3 gg) ar (d_ 3 &h) ar (d_ 3 @@ -960,7 +968,7 @@ sp) ar (enC ar ar' (nt A@ ar (et ar - ar (iaC_ 'e@ + ar (iaB_ 'e@ ar (ia_ 'e@ @) arily (_ 'Er@l%I ?3 @) arily (_ 'e@r@l%I @@ -979,6 +987,7 @@ u) ar (ish e@r ?3 _) ar (istocrat a#r log) ar (i @r + marg) ar (AtA_ 3r' m) ar (it ar p) ar (i ar p) ar (in e@ @@ -1015,6 +1024,7 @@ _w) ar (d O@ sw) ar (d O@ chw) ar (d O@ + &) arye (_ 3ri .group as _) as (@ a#s @@ -1223,11 +1233,10 @@ av (eng a#v _) av (erC a#v av (oA a#v - d) av (en av d) av (id eIv j) av (a A:v j) av (el av - l) av (en av + _B) av (en av al) av (er 'A:v sc) av (en av _) avi (A eIvI @@ -1350,7 +1359,7 @@ bi (ry bI bi (sc bI bi (sec b%aI - bi (sh bI + _) bi (sh bI bi (sm bI bi (sq bi: bi (str bi: @@ -1492,6 +1501,7 @@ bron) ch k ch (ute S ch (ure S + za) ch k .group co _) co (ag k%oU @@ -1621,7 +1631,7 @@ co (rro k@ co (rrup k@ _) costar koUstA@ - _) counter (@P7 k'aUnt@ // prefix + _) counter (@P7 k'aUnt3 // prefix .group d d d @@ -1978,7 +1988,7 @@ st) ea (k eI w) eapo Ep@ eager i:g3 - j) ealou El@ + j) ea (lou E &) eal (_ i@l z) ea (lo E C) ea (lt E @@ -2472,16 +2482,18 @@ s) er (van 3: ery (_ @r%i ?3 ery (_++$w_alt2 @rI -?3 @@AC) ery (_ e@ri +?3 @@AC) ery (_ ,e@ri ery (A 3j _v) ery ErI2 qu) ery i@rI + _x) er (o i@r z) er (o i@r _C) er (o_ i@r er (rA E err (_N e@ .group es + ess (_$w_alt2 @s &) es (_S1i z &es) es (_ i:z ese (_ i:z @@ -2648,6 +2660,8 @@ ex (erc Eks _) ex (A %Egz _) exh %Egz + _) ex (hal %Eks + _) exh (ibiti %Eks ?3 _) exhu %Egzu: _) ex (it Egz exor (c Eks3 @@ -2715,6 +2729,7 @@ g (eek g _) g (ert g _) g (ek g + g (eld g ge (nic_ dZ'E genesis dZ'EnI2sIs geous dZ=@s @@ -2950,7 +2965,9 @@ iza (tion aIzeI ?3 iza (tion @zeI ize (_ aIz - ial) ize (_S3 aIz + &l) ize (_S3 aIz + &l) ized (_S4 aIzd + &l) izing (_S5 ,aIzIN ize (d_ aIz i (zen I iz (er_ aIz @@ -3036,7 +3053,7 @@ &n) iel (_ j@L &r) iel (_ =i:@L ie (n i@ - &) ie (n_ =i@n + &) ie (n_ =i@ d) iene (_ 'aIi:n ie (ntal I'E g) ie (n i: @@ -3053,7 +3070,7 @@ ier i@3 ier (a I'e@r &) ier (_NS2i 3 - &) ier's (_NS4i 3z + ier (_$w_alt1 'i@3 _h) ie (r aI3 pl) ier (_ aI3 _Cr) ier aI3 @@ -3190,7 +3207,7 @@ impo (ten Imp@ _) im (pre@P2 %Im impreg Impr'Eg - impreg (nat ImprEg +?!3 impreg (nat Impr,Eg im (presa ,Im im (provis Im im (pulse_ Im @@ -3200,7 +3217,7 @@ .group in @) ing (_+S3dve %IN - @) ings (_S4dve %INz + @) ings (_S1m z @) ingly (_S5dve %INl%I @) ingment (_S7dve %INm@nt logu) ing (_S4v %IN @@ -3267,7 +3284,6 @@ _) inno (ce In@ _) inno (v In@ _) inn (um %In - _) in (of In _) in (org In _) in (p In _) in (que In @@ -3321,7 +3337,7 @@ adm) ini InI m) iniatur InItS3 m) inera (l In@r@ - in (al_$w_alt 'aIn + in (al_$w_alt1 'aIn &m) in (al_ =In f) in (a aIn @g) in (a_ aIn @@ -3357,6 +3373,7 @@ v) ine (g InI# in (ea In in (ee In + in (esc In c) in (e In inc) in (e In g) in (e In @@ -3495,6 +3512,7 @@ is (er+_ aIz iser (_ aIz3 &) ish (_ I2S + ish (A_ 'i:S is (ive aIs _) island aIl@nd _) is (le aI @@ -3508,8 +3526,8 @@ iss (a_ 'Is issimo (_ 'IsImoU chr) is (t_ aIs - @) istan (_ =Istan - @) istani (_ Ist'A:nI + @) istan (_ =IstA:n + @) istan (_N =Istan @) iste (_ 'i:st @) is (tic_ 'Is r) is (y_ =@s @@ -3997,7 +4015,7 @@ oea (_ 'i@ _) oe (d i: p) oe (m oUI - oer oU@ + oer oU3 _) oe (s i: &) oe (s_S2 z oesopha I2s0f@ @@ -4102,7 +4120,7 @@ o (tion oU m) o (tiv oU r) o (to oU - pr) oto oUtoU + pr) oto (C oUtoU pr) oto (n oUt0 m) otor oUt3 n) o (tor oU @@ -4167,6 +4185,7 @@ olt oUlt w) olv Ulv N_p) oly ,0lI + _) ol (ym @l .group om &) om (_ @m @@ -4179,6 +4198,7 @@ t) omb (K u:m w) omb (_ u:m c) ombe (_ u:m + _tr) ombo (n %0mboU c) om (e Vm c) omm (e Vm _d) om (a @m @@ -4217,6 +4237,7 @@ Cd) on (_ @n ?3 ag) on (_ 0n rg) on (_ @n + &k) on (_ @n &s) on (_ @n &t) on (_ @n &tr) on (_ 0n @@ -4235,6 +4256,7 @@ pers) on (i '0n postp) on 'oUn _sp) on 0n + &s) on (an @n on (ald 0n &) on (age_ @n d) on (at %oUn @@ -4346,6 +4368,7 @@ nt) or (_ o@ vent) or (_ 3 y) or (k O@ + &) or (ant_ 3r or (arL02 3r &) or (ation 3r _) ora (to 0r@ @@ -4420,7 +4443,7 @@ w) or (e o@ or (um_ 'o@r &) ory (_ @r%I -?3 @@At) ory (_ o:ri +?3 @@At) ory (_ ,o:ri _st) ory o@rI .group os @@ -4661,7 +4684,7 @@ _all) ow aU isall) ow aU cl) ow aU - fl) ow (er aU + fl) ower aU|3 gl) ow (er aU pl) ow aU _n) ow (_ aU @@ -4788,6 +4811,8 @@ prede (ces pri:dI _) pre (diP3 pr%i: _) pre (dic pr%I + _) predi (lec pr,i:dI2 +?3 _) predi (lec prEd@ _) pre (em pr%i: _) pre (fec pri: _) pre (feren prE @@ -4955,7 +4980,6 @@ _) re (arm %ri: _) re (au@P2 ,ri: re (ck rE - reckon rEk@n reco (g rEk@ _) re (comP2 r,i: _) re (conP2 ,ri: @@ -5091,6 +5115,7 @@ m) s (i z a) s (el_ z m) s (y z + n) s (y_ z a) s (e s pha) s (e z la) s (e z @@ -5129,7 +5154,7 @@ @) s (hill_ s @) s (hous s _) she' %Si: - A) sh (i_ =S + A) sh (A_ =S &) ship (_S4 SIp &) ships (_S5 SIps &) shire (_S5 S3 @@ -5210,6 +5235,7 @@ _) sus (A su:z su (al Zu: n) su (al sju: +?3 n) su (al Su: _) su (b sV _) su (bdi s,V su (bdue s%V @@ -5265,6 +5291,7 @@ _) t (sY t _) t (wY t _) tz (ar ts + t (h$w_alt4 t tch tS _) tele tElI2 @@ -5293,6 +5320,7 @@ tse (_ tsi _) tsk t'@sk _) tsu tsu: + tt (i_ =t _) two tu: ttu (r t@ tz ts @@ -5335,6 +5363,7 @@ th (ern_ D _) thio T,aIoU th (ith D + th (old th th (ole th _) th (om@ t ph) th T @@ -5346,6 +5375,7 @@ ear) th (y T _) there De@ _) them D%Em + _) there (@ D%e@ _) the (mA Ti: .group ti @@ -5367,7 +5397,8 @@ &s) tion tS@n ?8 &) tion S=Vn ?8 &s) tion tSVn - tion (al S=@-n + tion (al_ S=@-n + tion (al S@-n &) tious S=@s AC) tive (_ =tIv @@ -5383,7 +5414,7 @@ @) tu (lat =tSU ?3 tu (Ant tSu: ?3 tu (Ancy tSu: - tu (ous tSu: + tu (ous =tSu: @) tur (A tS@r @) tur (al_ tS=@r &) tur (y tS@r @@ -5503,7 +5534,7 @@ d) u (ly ju: z) u (l_ 'u: &) um (_ @m - vol) u (m ju: + vol) u (me ju: u (ma_ 'u: h) u (man ju: u (me ju: @@ -5712,6 +5743,7 @@ ?3 _) vibra (t v'aIbreI vivi (@ vIvI viv (_ vaIv + _) vo (lC v0 .group w w w @@ -5856,6 +5888,7 @@ C) yes (_ aIz _) yes jEs yeah jEh + yew ju: @C) y (gen I ?!3 d) y (nas I s) ynch Ink @@ -5963,7 +5996,7 @@ E (ntu 'E E (ntous 'E E (o_ I2 - Eous (_ =j@s + Eous (_ =i@s l) E (ps E l) E (pt E Eri (A 'i@rI2 @@ -6009,19 +6042,19 @@ .group ' - 's (_S2 z - f) 's (_S2 s - p) 's (_S2 s - t) 's (_S2 s - k) 's (_S2 s - se) 's (_S2 I2z - s) 's (_S2 I2z - ce) 's (_S2 I2z - ch) 's (_S2 I2z - och) 's (_S2 s - sh) 's (_S2 I2z - x) 's (_S2 I2z - z) 's (_S2 I2z + 's (_S2m z + f) 's (_S2m s + p) 's (_S2m s + t) 's (_S2m s + k) 's (_S2m s + se) 's (_S2m I2z + s) 's (_S2m I2z + ce) 's (_S2m I2z + ch) 's (_S2m I2z + och) 's (_S2m s + sh) 's (_S2m I2z + x) 's (_S2m I2z + z) 's (_S2m I2z 6_) 's (_ I2z 16_) 's (_ z 're (_S3 @ diff --git a/dictsource/es_rules b/dictsource/es_rules index e040bb71..da00ea93 100644 --- a/dictsource/es_rules +++ b/dictsource/es_rules @@ -50,8 +50,10 @@ A) ck k _) d (rA d _) d (A d d (A D + d (_ D d (cY D d (L03 D + d (v D m) d d n) d d l) d d @@ -85,6 +87,7 @@ A) ck k _) gn (A n _) g (A g g (A Q + g (_ Q g (cY Q g (L03 Q m) g g diff --git a/dictsource/fr_rules b/dictsource/fr_rules index a8c085ef..e31034c2 100644 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -698,7 +698,7 @@ _quatrevin) gts (_ z2 _) game (X _^_en girl _^_en // girl gh (K _^_en - gy (_ _^_en + @) gy (_ _^_en .group h @@ -1497,7 +1497,7 @@ A) wn _^_en y (nn i // group y: English section -_C) y (_ _^_en +//_C) y (_ _^_en AC) y (_ _^_en C) y (e_ _^_en %C) y (_ _^_en diff --git a/dictsource/ga_list b/dictsource/ga_list index e67f39c9..d2ea684d 100644 --- a/dictsource/ga_list +++ b/dictsource/ga_list @@ -1,7 +1,9 @@ // Irish Gaeilge dictionary // written by Ronan McGuirk -// January 2013 -// version 2.5 +// 2013 +// version 2.6.1 +// Please send comments and suggestions to espeak.gaeilge@gmail.com + // This file is UTF8 encoded // letters @@ -47,7 +49,7 @@ _cap m'o:r // accent names // names of symbols -ª_. pO#nk +_. pO#nk _, k0m@ _; semI _: ko:l0n @@ -152,22 +154,26 @@ amárach @m'A:r@x amuigh @mu1'I amháin @w'A:in am aUm -an @n +anaithnid '0nah@nIdZ anois @nIS anonn @naUn ann aUn anseo @nS'O +anuas a#n'u@s aodh e: aodha e: aon e:@n (ar ais) Er'aS arís @r'i:S as 0s +aschurtha '0sxUrh@ + atá @t['A: $u baill bu1'i:l bhaill vu1'i:l beidh bEg bhfuil w'Il +bheas v'e:@s bhuel w'El ceithre kEr@ cathair k'0h@r @@ -176,6 +182,7 @@ clainne kl'InE chlainne xl'InE chun xUn $u crainn kri:n +chrainn xri:n de dE $u+ des dEs $u @@ -184,6 +191,7 @@ di dI $u+ do dO# $u domhnach d[aUn@x domhnaigh d[aUnig +dúghorm d['u:Q"Or@m eile 'El@ euro ju:ro: faic f@ak @@ -214,6 +222,7 @@ le lE $u (muigheo) mu1'i:||'o: mhuigh vu1'i: (mhaigh eo) vu1'i:||'o: +mhama w'0m@ maith m'0 mhaith w'0 mbeadh m;O#X @@ -230,8 +239,10 @@ orthu O#rhu os o:s rabh raU raibh rEv +raidió r'adi:o: réamhrá r'e:@vr,a: réidh re: +'s s samhain saUIn san s@n seo S@_ diff --git a/dictsource/ga_rules b/dictsource/ga_rules index af166ccb..cef882c0 100644 --- a/dictsource/ga_rules +++ b/dictsource/ga_rules @@ -1,8 +1,10 @@ // translation rules for Irish Gaeilge // This file is UTF-8 encoded -// written by Ronan McGuirk January 2013 -// Version 2.5B +// written by Ronan McGuirk 2013 +// Version 2.6.1 +// Please send comments and suggestions to espeak.gaeilge@gmail.com + // Conditional rules // ?1 allow eclipsis as 2 separate words @@ -12,7 +14,7 @@ .L03 b bh mb c ch f m mh dh // used for words likemuir or cuid .L04 b bh mb // for words like beag .L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a -.L06 aidh idh aí á eá eadh adh ad imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h +.L06 aidh idh aí á eá eadh adh ad adsa imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h .L07 b c g ch bh gh mb .L08 lc ll nt bhse // for words like cailc .L09 cl cr chr f @@ -21,14 +23,14 @@ .L12 á é ó eo ua // when followed by i .L13 oc omb .L14 río dún gnío // followed with mh -.L15 c ch f m d dh g gc gh mh // aoi following +.L15 c ch f bhf m d dh g gc gh mh // aoi following .L16 b c bh ch gr ghr // for inn word ending .L17 l le li niste nn -.L18 n nt nte neann neadh ntear nim nfear nfinn +.L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar .L19 na nea ra rea la llea arga // word endings with silent dh .L20 eo eoir eá eabh io iu iú // slender m .L21 ll nn ndán nntán -.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine +.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann .L23 ea eo i .L24 b mb bh g gh p ph bp m mh @@ -40,14 +42,16 @@ abht aU#t[ amhr aUr // words like amhras K) amhl aUl - abhra aUr@ // words like slabhra + abh (C aU // words like slabhra aghaidh aIg t) abhair u:@r th) abhair u:@r t) abhar u:@r th) abhar u:@r _) an (sL01 @n - _) an (- 0n // an prefix + _) a (nA @ + _) an (_ @n + _) an (- '0n // an prefix é) a @ // words like féach X) a (nn_ aU# X) a (ll_ aU# @@ -77,8 +81,9 @@ _) ao e: ae e: amhna (_ aUn@ + arraing arIng + _) ath (@@P3 ,0_ - .group á á A: @) á ,A: @@ -89,7 +94,7 @@ áinig A:nIg ái 'A:i - + .group ai ai a# L04) ai (L17 0# @@ -99,6 +104,7 @@ m) ai (n 0# c) ai (th 0# ch) ai (th 0# + ai (tín 0# ai (d 0# p) ai (l 0# @) ai (L11_ I @@ -112,8 +118,9 @@ X) aigh 'aI aigh aI# L04) aill (_ wi:l aing (_ Ing + ai (llimh '0 // words like Gaillimh + - .group b b b // broad L01) b b; // slender @@ -122,7 +129,7 @@ bh (_ vv bh (L22 vj // slender L01) bh v -?1 _m_) b (@ +?1 _m_) b (@ _) bhf v // urú broad _) bhf (L22 v; // urú slender _) bp b // urú broad @@ -134,8 +141,10 @@ a) bh (a U // for example cabhair ear) bha u: // words like Cearbhall bhfaigh v'aI + _) beann (@ ba#n + _) bheann (@ va#n + _) bun (C@P3 b,Un - .group c c k c (L01 k; // slender @@ -143,19 +152,20 @@ ch (L01 C; ch (é+ C; ch (ei+ x; -?1 _g_) c (@ -?1 _g_) c (L01 +?1 _g_) c (@ +?1 _g_) c (L01 _) cabhr k'aUr _) chabhr x'aUr + _) ceann (C@P5 k;,aUn + _) cheann (C@P6 C;,aUn - .group d d d[ // broad L01) d dZ // slender d (L22 dZ // slender d (L01 d; // slender i) d (i dZ -?1 _n_) d (@ +?1 _n_) d (@ dh Q // broad dh (ui Q // broad dh (ao Q // broad @@ -165,6 +175,11 @@ ?1 _) d (_t d[ ?1 _) d (_tL01 dZ _) d' (@P2 d + + _) d' d + _) d (_'fh d + + d'fh (L01 d i) dh (_ g a) dh (_ X o) dh (_ X @@ -174,8 +189,9 @@ dheartháir gr@h'A:r deirfiúr d;r@f'u:r dheirfiúr g;r@f'u:r + _) do (Ch@@P2 d[,U_ + _) dí (@@P2 d,i: - .group e e E# eá A: @@ -184,29 +200,39 @@ r) ei (m aI eighea aI eighea aI + s) ei (nn aI + sh) ei (nn aI eigh aI eo o: - eogh o: + eoi o: + eogha o: + eoghai o: d) eo (ch O# + dh) eo (ch O# _) eo (ch O# s) eo (_ @ - + .group é é 'e: éi 'e: + éa 'e: _) éi (rig aI // words like éirigh + _h) éi (rí aI _) éi (rí aI // words like éirí _) éireoidh aIro:Ig éacs e:@ks - + .group ea ea a# + eai a# X) ea (L21_ aU ea (ltaine aU g) ea (ll aU + l) eamh (n aU + dr) ea (m aU X) ea (ch 0 _L04) ea (g @ _L04) ea (dh_ @ @@ -217,7 +243,7 @@ eanbhean 'an@v,an eadhb aIb - + .group f f f // broad f (L22 f; // slender @@ -225,14 +251,16 @@ fh (éin_ h fh (L22 ; // slender @) f (L06_ h -?1 _bh_) f (@ -?1 _bh_) f (L22 ; + _) fo (C@@P2 f,U + _) fogh f'aU +?1 _bh_) f (@ +?1 _bh_) f (L22 ; + - .group g g g // broad g (L01 g; // slender -?1 _n_) g (@ +?1 _n_) g (@ _) gh Q" _) gh (L01 Q"j _) gc g // urú broad @@ -245,19 +273,24 @@ gh (n X@ gheobh j'o: gabh gaU + _) gearr (C@P5 g;,aR + _) ghearr (C@P6 Q"j,aR - .group h h h // silent - + .group i i I _) i I ia i@ ia (tha i: io O# + io (dá I _) io (nadh u:// words like ionadh + s) io (mb I + sh) io (mb I + _pr) io (n u: L16) inn (_ i:n iai i:i @@ -266,12 +299,18 @@ L12) i i // non syllabic short i after long vowel iú u: m) i (d_ i: // verb ending + _) in (@@P2 ,In_ + _) ionad (C@@P5 ,Ona#d[ - .group í í 'i: + íomh 'i:v + íochn 'i:xn + í (_ i: + ín (_ i:n + ío i:@ + - .group l l l // broad L01) l l; // slender @@ -280,8 +319,9 @@ ll (L23 l; l (g l@ l (b l@ + _) lorg (@@P4 l,Or@g + _) lán (C@@P3 l,A:n - .group m m m // broad m (L20 m; //slender @@ -296,8 +336,8 @@ _) mh (n v@ léir) mheas vas r) m @m // words like gorm + _) mear (@@P4 m,ar - .group n n n // broad n (L01 n; // slender @@ -318,8 +358,8 @@ n (ch n@ c) n @n ch) n @n + _) nasc (C@@ n,0sk - .group o o O# _) o 'O @@ -342,12 +382,13 @@ odl (a O#l oí i: - + .group ó ó 'o: ómhai o:@ - + ói (p@ 'o: + .group oi oi O _L15) oi (+ @'I @@ -369,15 +410,16 @@ _) oi (leá 'I oidh aI oir (_ 'ERR + _sc) oi (r O oigh (ea aI - + .group p p p // broad ph f // broad p (L22 p; // slender ph (L20 f; // slender -?1 _b_) p (@ +?1 _b_) p (@ .group r @@ -388,13 +430,13 @@ L12i) r (t_ Z rr R rg r@g + rgh rQ" L01) rg R@g // slender r (bh r@ - ríomh ri:@v s) r (A R _) ramh raU - + .group s s s // broad L01) s S // slender @@ -402,13 +444,14 @@ s (cL01 S s (CCL01 S // slender s (pCé s // broad -?1 _t_) s (@ +?1 _t_) s (@ sh h sh (CL01 h sh (L01 h; s (lL01 S + _') s (_ s // 's in poems etc + _) sain (@P4 s,an - .group t t t[ // broad L01) t c // slender @@ -418,7 +461,7 @@ ?1 _) t (_L01 c L01C) t tS // slender after consonant t (CL01 tS // slender with following consonant before vowels -?1 _d_) t (@ +?1 _d_) t (@ th h th (L01 h; L01C) th h @@ -432,7 +475,7 @@ thne (_ h@nE A) th (_ // silent th at word end - + .group u u U# ua u@ @@ -441,11 +484,14 @@ uai (d ui uá u:'A: ui I + ui (s U + ui (sce_ I uinn (_ 'i:n uinti U#'i:ntI _b) uí wi: _bh) uí wi: g) uí wi: + gh) uí wi: umh u: L03) ui @I _d) u (l_ O# @@ -453,8 +499,9 @@ gh) ui (gh_ @i: uí i: uachai 'ux@ + _) uimhir (C@P6 ,IvIR + - .group ú ú u: únmh u:nv diff --git a/dictsource/hi_rules b/dictsource/hi_rules index 5b6ccf83..992967df 100644 --- a/dictsource/hi_rules +++ b/dictsource/hi_rules @@ -49,8 +49,8 @@ .group ऊ ऊ u - ऊं u~ // + anusvara - ऊँ u~ // + candrabinbu + ऊं (_ u~ // + anusvara + ऊँ (_ u~ // + candrabinbu .group ऋ ऋ rI @@ -63,14 +63,19 @@ .group ऎ ऎ e + ऎं (_ e~ + ऎँ (_ e~ .group ए ए e: + एँ e~: + एं (_ e~: + ा) एँ (_ j .group ऐ ऐ E: // ?? [aI] [E:] [&:] - ऐं E~ - ऐँ E~ + ऐं (_ E~ + ऐँ (_ E~ ?2 ऐ aI // ?? [aI] [E:] [&:] @@ -79,16 +84,21 @@ .group ऒ ऒ o + ऒं (_ o~ + ऒँ (_ o~ .group ओ ओ o: - ओं o~ // +anusvara - ओँ o~ // +candrabindu + ओं (_ o~ // +anusvara + ओँ (_ o~ // +candrabindu + ा) ओं (_ w // +anusvara + ा) ओँ (_ w + .group औ औ O: // ?? [aU] [O:] - औं O~ // +anusvara - औँ O~ // +candrabindu + औं (_ O~ // +anusvara + औँ (_ O~ // +candrabindu ?3 औ aU // ?? [aU] [O:] @@ -96,6 +106,9 @@ .group ा ा a: + ा (ँ a~ + ाँ (_ a~ + ां (_ a~ ाव aU .group ि @@ -106,14 +119,21 @@ .group ी ी i: ी (_ i + ी (ँ i~ + ीँ (_ i~ + ीं (_ i~ .group ु - ु u + ु U + ु (ँ u~ + ुं (_ u~ + ुँ (_ u~ .group ू ू u: - ूं u~ // or O~ ?? - ूँ u~ + ू (ँ u~ + ूं (_ u~ // or O~ ?? + ूँ (_ u~ .group ृ ृ rI @@ -126,14 +146,21 @@ .group ॆ ॆ e + ॆ (ँ e~ + ॆं (_ e~ + ॆँ (_ e~ .group े े e: + े (ँ e~ + ें (_ e~: + ेँ (_ e~: .group ै ै E: // ?? [aI] [E:] [&:] - ैं E~ - ैँ E~ + ै (ँ E~ + ैं (_ E~ + ैँ (_ E~ ?2 ै aI // ?? [aI] [E:] [&:] .group ॉ @@ -141,16 +168,21 @@ .group ॊ ॊ o + ॊ (ँ o~ + ॊं (_ o~ + ॊँ (_ o~ .group ो ो o: - ों o~ - ोँ o~ + ो (ँ o~ + ों (_ o~ + ोँ (_ o~ .group ौ ौ O: // [O:] or [aU] ?? - ौं O~ - ौँ O~ + ौ (ँ O~ // [O:] or [aU] ?? + ौं (_ O~ + ौँ (_ O~ ?3 ौ aU // [O:] or [aU] ?? .group ॢ // vowel sign l @@ -171,6 +203,9 @@ क़ qV क़ (B q + क्ष kSV + क्ष (B kS + .group ख ख k#V ख (B k# @@ -206,15 +241,20 @@ ज (B J ज़ zV ज़ (B z + + ज्ञ gjV + ज्ञ (B gj .group झ झ J#V झ (B J# + .group ञ ञ n^V ञ (B n^ - ्) ञ (_ n^ + ्) ञ (_ n^@ + .group ट ट t.V @@ -239,7 +279,7 @@ ढ़ (B r.h // nukta .group ण - ण n.V // (temporary) same as dental [n] + ण n.V ण (B n. ्) ण (_ n.@ @@ -297,17 +337,19 @@ न्) म (_ m // n +virama .group य - य j@ + य jV य (B j + C) य (_ Ej // [Ej] not [@j] ्) य (_ j@ .group र र rV र (B r + र (_ r ्) र (_ r@ .group ऱ // rra - ऱ rV // (temporary) same as [r] + ऱ rV // (temporary) same as [r] should this be [r.] or perhaps [z.] ? ऱ (B r ्) ऱ (_ r@ @@ -332,21 +374,22 @@ _) व wV _) व (B w _) व (् v // +virma + व (_ w .group श श SV श (B S .group ष - ष s.V //?? or retroflex [S] - ष (B s. //?? + ष s.V + ष (B s. .group स स sV स (B s .group ह - ह H + ह HV ह (B H diff --git a/dictsource/hu_list b/dictsource/hu_list index 9ebe03be..269dbdf2 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -4390,7 +4390,7 @@ elnökét $unstressend (emelte ki) EmEltE_||ki $unstressend tagságát $unstressend (a szakadékot) A'||sAkAde:kot $unstressend -(az országban) Az_'||orsa:gbAn $unstressend +(az országban) Az_'||oR2sa:gbAn $unstressend eszközét $unstressend méretű $unstressend ketyeg $unstressend diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 9b6ff0e7..fad10694 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -609,7 +609,7 @@ arcüre) g (gyulladás g orszá) g (gyarapod g anya) g (gyár g anya) g (gyűjt g - végi) g (gya g + végi) g (gy g me) ggy (mag J me) ggy (íz J: bádo) g (gy g @@ -624,7 +624,7 @@ imádsá) g (gyűjt g ro) ggyj (ék J: rá) g (gyűjt g //for example virággyűjtés, virággyűjteményt words _lo) g (gyűjt g //for example loggyűjtemény word - dro) g (gyanú g + dro) g (gy g le) gg (roteszk g: _agya) g (gy g anya) g (győz g @@ -649,6 +649,9 @@ csilla) g (gy g hazugsá) g (gy g tőze) g (gy g doppin) g (gy g +baromsá) g (gy g +tehetsé) g (gy g + bete) g (gy g .group gy gy J @@ -773,6 +776,7 @@ _egyszere) gy (e J: _huszone) gy (e J: száze) gy (edik J: védje) gy (straté J + na) gy (sor J .group h h h @@ -827,6 +831,7 @@ progressz) í (ve i: sz) í (veré i: sz) í (verő i: sz) í (vevő i: +expressz) í (v i: .group j j j @@ -1040,6 +1045,7 @@ teljesítmé) ny (j n^ nem-lts n'Em||_!'Ellt,e:,ES //without this rule Espeak spokening the nem LTS text with one word, because general in hu_list have a $combine attribute the nem word. n'Em _!'Ellt,e:,ES +porcelá) n (ny n .group o o o @@ -1203,7 +1209,7 @@ juventu) ss s: juventu) ssz s: //a radio station name farka) ssz (em Ss villamo) ssz (ék Ss - titko) ssz (olgál Ss + titko) ssz (olg Ss karo) ssz (ék Ss hú) ssz (elet Ss vörö) ssz (em Ss @@ -1722,6 +1728,29 @@ visszaélé) ssz Ss esé) ssz (erű Ss webe) ssz Ss beleve) ssz (en s: +tengeré) ssz (ürk s: +hirdeté) ssz S|s + _ki) ssz (éri S|s + _ki) ssz (ersz S|s + _fűté) ssz S|s +_kontaktu) ssz S|s + _dió) ssz (ilá S|s +_konszenzu) ssz S|s + forgá) ssz (er S|s +mérkőzé) ssz S|s +művelődé) ssz S|s +_nyomá) ssz (in S|s + _oko) ssz S|s +oktatá) ssz (er S|s +pszichózi) ssz S|s +realitá) ssz S|s +szerződé) ssz S|s +születé) ssz (ám S|s + tölté) ssz (ak S|s + utazá) ssz (er S|s +zsarolá) ssz (er S|s + dőlé) ssz (ab S|s + .group sz @@ -1932,6 +1961,7 @@ szögle) t (szob t diva) t (cirk t álla) t (cirk t szen) t (szob t +koncer) t (jeg t .group tj C) tj c diff --git a/dictsource/hy_list b/dictsource/hy_list index 6b07d71e..97a09844 100644 --- a/dictsource/hy_list +++ b/dictsource/hy_list @@ -2,6 +2,8 @@ // This file is UTF8 encoded // Spelling-to-phoneme words for Armenian +// ?1 West Armenian + // names of letters _ա aIb բ ben @@ -20,7 +22,7 @@ _ը '@t# կ ken հ ho ձ dza -ղ r"ad +ղ r"at ճ ce մ men յ hi @@ -30,15 +32,16 @@ _ը '@t# չ tSa պ pe ջ dZe -ռ **a +ռ R2a ս se վ vev տ tyn ր re -ց tso +ց ts#o ւ hyn փ p#yr ք k#e +և jev _օ o ֆ fe @@ -52,6 +55,24 @@ d di e e f ef +// symbols +$ dolar +% տոկոս $text +* աստղանիշ $text ++ գումարած $text += հավասար $text + + +_՝ b'ut# +_՞ harts#ak'an +_՛ S'eSt +_։ verdZak'et // U+0589 +_: verdZak'et +_, storak'et +_. midZak'et +_֊ jent#amn'a // hyphen +_՜ bats#akantSut#j'un +_՟ pat'iw // numbers @@ -82,5 +103,41 @@ _dpt _sto**ak'el_ // function words +ես $u+ // pronouns +դու $u+ +եք $u+ +Դուք $u+ +նա $u+ +այն $u+ +մենք $u+ +նրանք $u+ + +դուք $u+ +ենք $u+ +են $u+ + +այդ $u+ +այս $u+ +դա $u+ +որ $u+ +էր $u+ + +մի $u+ +է $u+ + +հետ $u+ // prepositions + +եվ $u+ // and +իսկ $u+ $brk // and, but +կամ $u+ // or +որը $u+ // which + +կարող $u+ // can + + + +// exceptions +ով ov +ովքեր ovk#er diff --git a/dictsource/hy_rules b/dictsource/hy_rules index 09453c2f..a0ef6020 100644 --- a/dictsource/hy_rules +++ b/dictsource/hy_rules @@ -2,8 +2,10 @@ // (consonants are changed for Armenian-West in the voice file "hy-west") // This file is UTF-8 encoded +// ?1 West Armenian + .L01 բ գ թ կ պ տ ք -.L02 ու այ իւ իյ ոյ // other vowel sounds +.L02 ու այ իւ իյ ոյ ա ե ը ի ո օ // vowel sounds // ligature .replace @@ -12,7 +14,7 @@ .group ա ա a - այ aI + այ (K aI այ (_ a .group բ @@ -41,7 +43,7 @@ .group է է e էօ W - էյ eI + էյ (K eI .group ը ը @ @@ -57,7 +59,7 @@ ի i իւ y իւ (_ iv - իյ i@ + իյ (K i@ .group լ լ l @@ -97,8 +99,9 @@ L02) մ (_ m .group յ - յ h // ?? [j] + _) յ h // ?? [j] _) յ (C h@ + յ j .group ն ն n @@ -133,8 +136,8 @@ _) ջ (C dZ@ .group ռ - ռ ** - _) ռ (C **@ + ռ R2 + _) ռ (C R2@ .group ս ս s @@ -151,6 +154,7 @@ .group ր ր r + L02) ր (L02 * _) ր (C r@ C) ր (_ @r L02) ր (_ r @@ -178,7 +182,5 @@ ֆ f _) ֆ (C f@ -.group - $ dol@ diff --git a/dictsource/nl_list b/dictsource/nl_list index 1a0f4cea..c3cfbe86 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -36,6 +36,8 @@ _s Es _t te: _cap h'o:fdlEt@r +_sub s'8pskrIpt|| +_sup s'yp@rskrIpt|| _?A l'Et@r _?? s'imbo:l @@ -112,7 +114,7 @@ _6X z'Est@x _7X z'e:v@nt@x _8X t'Axt@x _9X n'e:g@nt@x -_0C h'OndErt +_0C h'Ond@rt _0M1 d'WyzEnt _0M2 m'iljun _0M3 m'iljArt @@ -377,6 +379,7 @@ keten $alt loochen $alt oefen $alt open $alt +reden $alt regen $alt reken $alt schepen $alt @@ -687,6 +690,7 @@ wapper $alt water $alt wedijver $alt wegwijzer $alt +weiger $alt wester $alt wijder $alt wilder $alt @@ -1097,6 +1101,7 @@ gijzel $alt gispel $alt gniffel $alt goochel $alt +googel $alt gorgel $alt grabbel $alt grendel $alt @@ -1403,6 +1408,7 @@ vondel $alt accessoire aksEsw'ar@ accessoires aksEsw'ar@s actiepunt Aksip8nt +actieve Akt'iv@ adhesie Ath'e:zi agenda $2 aldus Ald'8s @@ -1452,6 +1458,7 @@ december $2 desillusie dEsIlyzi dieet $2 diesel diz@l +diner din'e: //discussie $2 divers div'Ers diftongering dIft,ON'e:rIN @@ -1461,6 +1468,7 @@ eensgelijks e:nsQ@l'EIks elfstedentocht ,Elf'ste:d@ntoQt embouchuur A~buS'yr // embouchure enorm $2 +enquête A~k'Et@ $alt2 erosie e:r'o:zi eucharistie $4 explosie $2 @@ -1484,6 +1492,9 @@ informatie $3 invasie $2 januari $3 kadaster $2 +leesregel le:sre:Q@l +lunch l8nS +lunches l8nS@s mangat $alt3 materie ma:t'e:ri maatregel ma:tre:Q@l $alt2 @@ -1529,6 +1540,7 @@ ongerieflijk $3 partijvoorzitters $2 periferie pI:rifI:r'i pistache pist'AS +privilege privil'e:Z@ $alt2 proces $2 projectielen $3 renaissance rEne:s'A~s@ @@ -1546,13 +1558,16 @@ serie sI:ri sms'jes EsEm'Es_j@s spektakel $2 tegennatuur $4 +tralie $1 travestie $3 verderop $3 +vergezicht vErQ@zIxt verre vEr@ verrekijker vEr@kEIk@r verste vErst@ verte vErt@ volledig $2 +voordeel $1 vrouwengek $alt3 waarschijnlijk $2 wanen v#a:n@n diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 4035a054..9431fd84 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -20,15 +20,17 @@ @@C) a (_ =a: _) aan (@P3 'a:n - @) aar (_S3 a:r - @) aard (_S4 a:rt + &) aar (_S3 a:r + &) aard (_S4 a:rt aa (rd_ 'a: aa (C_ 'a: z) aa (m_ a: t) a (bleau a: @) abel (_ 'a:b@l @) abele (_ 'a:b@l@ + @) ace (_ e:s // ?? interface m) ach (in %a:S + _) actie (@P5 'Aksi _) af (C@P2 'Af _) affich %AfiS age (_ 'a:Z@ @@ -64,11 +66,16 @@ baan ba:n &) baar (_S4 =ba:r &) bare (_S4 =ba:r@ + _) bedrijfs (@P8 b@dr'EIfs + _) belasting (@P9 b@l'AstIN + _) beleids (@P7 b@l'EIts _) bij (C@P3 b'EI bij (zond b%i _) bijeen bEI'e:n _) binnen (P6 b'In@n + _) boek (@P4 b'uk _) boven (P5 b'o:v@n + _) braille (@P7 br'Aj@ _) brand br'And _) buiten (P6 b'Wyt@n _) buurt (@@P5 b'yrt // buurtbewoner @@ -100,6 +107,7 @@ _) be (zem be: _) be (zig be: _) beu bY: + _) bezoekers (@P9 b@z'uk@rs .group c @@ -114,9 +122,12 @@ @) ci (ë S ci (o S ck k + + ces (_ s'Es coach ko:tS - + _) computer (@P8 kOmpj'ut@r _) congres kOnQr'Es + _) concentratie (@P12 kOnsEntr'a:tsi co (ncert k%O @@ -239,7 +250,7 @@ &) end (_ @nd &) ende (_S1 @ &) enden (_S2 @n - eden e:d@n + eden (_ e:d@n // ?? @) ent (_ 'Ent @) ent (e_ 'Ent @) ent (en_ 'Ent @@ -253,6 +264,7 @@ @z) es (_S1 s @) es (_S2qd 'Es // double the previous vowel @) es (_$w_alt2S1 s // just remove 's' + @) e (s_$p_alt2+S1 s KAC) es (_S2e @s mb) es (_S1 s nd) es (_S1 s @@ -273,6 +285,7 @@ @) eur (_ 'Y:r &) e (nB@ E2 + &) e (ntig @ _p) e (nibel e: id) e (nt E pres) e (nt E @@ -315,11 +328,14 @@ er (ij_ @r tol) er (abel @r mis) er (abel @r + hond) er (d_ @r _) erger ErQ@r // ergeren &) era (_ @ra: @) er (aar_ @r &) er (C@ E2r +.group ê + ê E .group f f f @@ -334,17 +350,21 @@ @) gi (eus Z @) gi (euz Z reli) gi (eu Qij + _) goog (el gu:g .group ge _) ge (@P2 Q@ ge (bied Q@ + _) gebruikers (@P10 Q@br'Wyk@rs _) gee Qe: _) gei QEI gener (aal Q,e:n@r _) gelijk Q@lEIk _) ge (lC QE _) ge (rC QE + _) ge (lenL02 Qe: + _) ge (tenL02 Qe: _) geu QY: _) ge (ven Qe: _) ge (ver Qe: @@ -365,6 +385,7 @@ _) herinn h%ErIn // herinneren _) hersen h'Ers@n &) heid (_S4 hEIt + _) honden (@P6 h'Ond@n _) hulp (@@P4 h'8lp @@ -425,10 +446,11 @@ &) ika (_ =ika: &) iko (_ =iko: _) in (C@P2 'In -// _) in (gP2 'In _) in (do In ine (_ 'in@ ines (_ 'in@s + _) inn (@P2 'I // ?? inneren + _) inter Int@r io (nage iO io (de_ i'o: iodes (_ i'o:d@s @@ -439,10 +461,12 @@ @) isme (_ 'Ism@ @) ist (_ 'Ist @) isten (_ 'Ist@n -_) inn (@P2 'I // ?? inneren .group j j j + + _) jaar (@P4 j'a:r + jaar (lijk ja:r jou (rna Zu @@ -451,6 +475,9 @@ _) inn (@P2 'I // ?? inneren k) k _) kale (nde ka:l'E + _) kantoor (@P7 kAnt'o:r + _) keuze (@P5 k'Y:z@ + _) kinder (@P6 k'Ind@r kokkerel kOk@r'El _) koning k'o:nIN // in compounds _) koningin ko:nIQ'In @@ -465,10 +492,14 @@ _) inn (@P2 'I // ?? inneren &) lijker (_S6 l@k@r &) lijkere (_S7 l@k@r@ &) lijkheid (_S8 l@khEIt + &) lijkheden (_S9 l@khe:d@n +// &) lijks@ (_ l@ks@ &) lijkst (_S6 l@kst &) lijkste (_S7 l@kst@ + &) laan (_S4 la:n _) lange (@P5 laN@ + _) liefdes (@P7 l'ifd@s @) loog (_ lo:x @) loos (_S4 lo:s @) loze (_S4 lo:z@ @@ -482,6 +513,7 @@ _) inn (@P2 'I // ?? inneren management ma:nIdZm@nt _) mee (@P3 m'e: + _) mee (rC mI: menu (_ m@ny _) mi (cro mi _) mi (s@ m%I @@ -498,6 +530,7 @@ _) inn (@P2 'I // ?? inneren _) mis (loP3 m'Is _) mis (tA m'Is _) misver (@ m'Isf@r + _) muziek (@P6 myz'ik .group n n n @@ -512,6 +545,7 @@ _) inn (@P2 'I // ?? inneren _) na (C@N n'a: _) na (C% nA _) na (cht nA + _) najaars (@P7 n'a:ja:rs _) narci (s n%ArsI _) na (rc n%A _) na (der na: @@ -524,10 +558,11 @@ _) inn (@P2 'I // ?? inneren na (vig n%a: _) na (vr na: _) na (volg@ n%a: - _) noord (@P5 no:rd _) nieuws (@P6 n'iws @@) nis (_S3 nIs @@) nisen (_S5 nIs@n + _) noord (@P5 no:rd + _) notitie (@P7 no:t'itsi .group o @@ -571,6 +606,8 @@ _) inn (@P2 'I // ?? inneren tr) ou (vail u ouve (rtu uvE _) over (@P4 ,o:v@r + _) overigen o:v@r@Q@n + _) overheid 'o:v@rhEIt t) ou (r u: @@ -628,20 +665,25 @@ _) inn (@P2 'I // ?? inneren C) r (A r rr *r - recherch r@SErS - revanch r@vA~nS route rut@ // route(s) .group re _) re (geren r@ _) re (geer r@ + _) regel re:Q@l _) re (cent r@ _) re (cept r@ _) re (ceptief re: + _) re (ces r@ _) re (clam r@ + _) register r@Q'Ist@r + reme (die r@m'e: _) re (serve_ r@ _) re (cord re' + _) regering r@Q'I:rIN repre (saill re:pre: + recherch r@SErS + revanch r@vA~nS .group s @@ -677,7 +719,10 @@ _) inn (@P2 'I // ?? inneren @) ssi (o S CAr) sie (_ =zi + _) stads (@P5 st'Ats + _) stage (@P5 st'a:Z@ _) standaard (@P9 st'Anda:rt + _) start (@P5 st'Art @) straat (_S6 stra:t _vre) s (e s @@ -767,9 +812,12 @@ _) inn (@P2 'I // ?? inneren _) ver (@P3 v@r _) ver (sie_ vEr _) verder vErd@r - _) verge (@P5 vErg@ - _) verge (le v@rQ'e: + _) verkeers (@P8 v@rk'I:rs +// _) verge (@P5 vErg@ +// _) verge (le v@rQ'e: + _) voorjaars (@P9 v'O:rja:rs _) voort (@P5 v'O:rt + _) vrijwilligers (@P13 vrEIv#'Il@Q@rs .group w @@ -788,11 +836,15 @@ _) inn (@P2 'I // ?? inneren _) wanstaltig v#Anst'Alt@Q _) wantrouwig v#Antr'VU@Q _) wanvoeglijk v#Anv'uxl@k + _) water (@P5 v#'a:t@r + _) weers (@P5 v#'I:rs _) weg (@P3 v#'EQ _) weg (en v#e:Q _) weg (e_ v#e:Q // bewegelijk + _) werk (@P4 v#'Erk _) west (@P4 v#Est - _) wr vr + _) woon (@P4 v#'o:n + _) wr (@ vr .group x diff --git a/dictsource/pa_rules b/dictsource/pa_rules index 5a160b57..f44574bf 100644 --- a/dictsource/pa_rules +++ b/dictsource/pa_rules @@ -371,12 +371,12 @@ ੱ) ਯ (_ j: .group ਰ - ਰ RV - ਰ (B R - @) ਰ (_ R - ੱ) ਰ R:V - ੱ) ਰ (B R: - ੱ) ਰ (_ R: + ਰ rV + ਰ (B r + @) ਰ (_ r + ੱ) ਰ r:V + ੱ) ਰ (B r: + ੱ) ਰ (_ r: .group ਲ ਲ lV diff --git a/dictsource/pl_list b/dictsource/pl_list index 2ecf158b..90cbd0dc 100644 --- a/dictsource/pl_list +++ b/dictsource/pl_list @@ -121,8 +121,8 @@ _w vu x iks y 'igREk _z zEt -ż Z;Et -ź ZEt +ż ZEt +ź Z;Et ä $accent ö $accent diff --git a/dictsource/pt_list b/dictsource/pt_list index c4400fd9..8e3eb0a0 100644 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -23,8 +23,8 @@ // accent names _lig ligad'u*& -_acu &g'udU -_ac2 &g'udUd'uplU +_acu ag'udU +_ac2 ag'udUd'uplU _brv bR'Evi _ced sedZ'ilj& ?1 _ced syd'il^& @@ -69,6 +69,8 @@ v ve // not Roman numbers x Sis# _cap maI'uskulU +_sub ||subskR'itU +_sup ||sob*eskR'itU _?A l'etR&_ _?? s'imbolU_ _#32 esp'asU @@ -81,9 +83,10 @@ _#9 tab + maIs# $max3 % pors'eINtU $max3 & _'e_ -@ &x'ob& +@ ax'ob& ¤ 'eU*U € 'eU*U +£ l'ibR& § p&*'agRafU @@ -115,8 +118,9 @@ _[ ,abRikowS'etSi _\ b,ax&,iNvertS'id& _] f,ES&kowS'etSi _^ s,irku~Nfl'Eksu +_´ as'eINtu,ag'udU __ s,ublin^'adu -_` gR'avi + _` gR'avi _{ ,abRiS'avi ?1 _| b,ax&v,ertSik'al ?2 _| b,ax&v,ertSik'aU @@ -127,8 +131,10 @@ _¡ ,eskl&mas,&U~,iNvertS'id& _¿ ,iNtex,ogas,&U~,iNvertS'id& _" 'abRi;'asp&||d'upl&s# -_º Oz'in^U -_ª az'in^U +?1 º O*@-din'almaskul'i~nU +?2 º o*@-dZin'aUmaskul'i~nU +?1 ª O*@-din'alfemin'i~nU +?2 ª o*@-dZin'aUfemin'i~nU ° gR'aU @@ -182,12 +188,12 @@ _8X oIt'eINt& ?2 _9X nov'eINt& _1C0 s'eIN ?1_0C s'eINtus# -?2_0C s'eINtUs# +?2_0C s'eINtUz _1C s'eINtu ?1_2C duz'eINtus# ?2_2C duz'eINtUz -?1_3C tryz'eNtus# -?2_3C tRez'eNtUz +?1_3C tryz'eINtus# +?2_3C tRez'eINtUz ?1_5C kin^'eINtus# ?2_5C kin^'eINtUz ?1_0M1 m'il_ @@ -293,13 +299,16 @@ unts $abbrev usb $abbrev -dr $dot -dra $dot -mr $dot -mrs $dot -prof pr'Of $dot +dr dowtor $dot +dra dowt'o*& $dot +mr m'ister $dot +mrs m'irsys $dot +prof pR'Of $dot profº pR,ofes'or profª pR,ofes'o*& +engº eInZen^'eI*U +engª eInZen^'eI*& +nº n'u~me*U sr $dot ?1 sra ,Es;'Errj'a $dot ?2 sra $dot @@ -333,7 +342,7 @@ me $u $verbf // reflexive te $u $verbf nos $u $nounf la $u -lo $u +lo lU $u las $u los $u se $u @@ -348,11 +357,10 @@ essa 'Es& $u+ $noun desse $u+ $nounf desta $nounf nesse n'esy $u+ $nounf -aquele &k'ely $u+ $nounf // that aquela $u+ $nounf -daquele d&k'ely $u+ $nounf +aquele $alt2 $nounf daquela $u+ $nounf - +daquele $alt2 $nounf que $u // pronunciation is in pt_rules // possessive adjectives @@ -374,7 +382,7 @@ nele nely $u1+ // prepositions de $u $nounf // of,from -do $u $nounf +do du $u $nounf da $u $nounf dos $u $nounf das $u $nounf @@ -384,7 +392,7 @@ duns $u $nounf dumas $u $nounf em $u $noun // in,on,at -no nu $u $nounf +no nU $u $nounf na $u $nounf num $u $nounf numa $u $nounf @@ -402,7 +410,7 @@ aos $u $nounf às ,a:s $nounf para $u // for,to -pro $u $nounf +pro pRU $u $nounf pra $u $nounf pros $u $nounf pras $u $nounf @@ -426,7 +434,7 @@ com $u // with // conjunctions ?1 e i $u // and ?2 e i $u // and -se $u+ $verbf // if +se $u+ // if ?2 mas $u // but @@ -592,10 +600,10 @@ pôde $u+ pudemos $u+ puderam $u+ -poderei $u3+ -poderá $u3+ -poderemos $u+ -poderão $u+ +poderei p%ode*eI $u+ +poderá p%ode*a $u+ +poderemos p%ode*'emUs $u+ +podeão p%ode*&U~ $u+ // ir - to go (used to make future tense) @@ -636,8 +644,10 @@ jamais $u+ $verbf abacaxi abakaSy abordo $alt aborto $alt $verb +absorta $alt2 acerto $alt2 $noun acertos $alt2 +acocho $alt2 $noun acordo $alt $verb acervo $alt2 adepto $alt @@ -645,14 +655,19 @@ adore $alt adorno $alt $verb aeroporto $alt2 aeroportos $alt -albatrozes $alt alcateia $alt alcova $alt2 +alegro $alt2 $noun alferes $alt -algozes $alt almoço $alt $verb ameba $alt amores $alt2 +amorno $alt +amuleto $alt2 +ampere $alt +ampola $alt2 +ampulheta $alt2 +andorra $alt2 antonieta $alt2 apego $alt2 $noun apelo $alt2 $noun @@ -662,25 +677,31 @@ apneia $alt apoio $alt $verb arredores $alt arremesso $alt2 $noun +arrocho $alt2 $noun +arroto $alt2 $noun arroz $alt2 assembleia $alt +assopro $alt2 $noun ateia $alt aterro $alt2 aterro $alt $verb -atmosfera $alt -atrozes $alt autora $alt2 avesso $alt2 axé aSE azeda $alt $verb azedo $alt $verb +bairro b'aIxU baqueta $alt2 +banqueta $alt2 +banquete $alt2 +bastonete $alt2 beco $alt2 besta $alt2 bilhete $alt2 +bissulfeto $alt2 boca $alt2 boceta $alt2 -bochecha $alt2 +bofe $alt bojo $alt2 boleia $alt bolero $alt @@ -691,36 +712,47 @@ bordo $alt borra $alt2 $noun bosque $alt boto $alt2 $noun -boxe $alt +boxe $alt brejo $alt bromelha $alt +broto $alt2 $noun cabelo $alt2 cabresto $alt2 cacete $alt2 cachorra $alt2 caderneta $alt2 cadete $alt2 +cãibra k'&~IbR& +caibro k'aIbRU +caixeta $alt2 camelha $alt camelo $alt2 -caminhonete $alt camiseta $alt2 +canaleta $alt2 +canhoto $alt2 cantora $alt2 capacete $alt2 caractere $alt carbureto $alt2 careta $alt2 +carrapeta $alt2 carreta $alt2 carroça $alt casebre $alt cateto $alt2 catorze $alt2 cebola $alt2 +cedro $alt cefaleia $alt +cerebelo $alt2 centopeia $alt cerca $alt cerca $alt2 $noun cerco $alt $verb -chamego $alt2 +cerda $alt +cetro $alt +chamego $alt2 $verb +chaveta $alt2 chefe $alt checam $alt choro $alt2 $noun @@ -728,10 +760,11 @@ chovesse $alt2 chupeta $alt2 clamores $alt2 clero $alt +cloreto $alt2 +coche $alt2 coco $alt2 cofre $alt coice $alt2 -colabore $alt colete $alt2 colchete $alt2 colher $alt $noun @@ -746,6 +779,7 @@ concordo $alt conforto $alt $verb console $alt2 $noun consolo $alt2 $noun +constroem $alt controle $alt2 $noun controles $alt2 controles $alt $verb @@ -754,24 +788,32 @@ coreia $alt coreto $alt2 corneta $alt2 cornos $alt +coro $alt2 +coro $alt $verb corpos $alt corto $alt corveta $alt2 corvos $alt +costeleta $alt2 coto $alt2 cotovelo $alt2 cratera $alt crede $alt2 +credo $alt crepe $alt decore $alt +decoro $alt2 $noun degelo $alt2 desapego $alt2 $noun descordo $alt desemprego $alt2 desemprego $alt $verb -desespero $alt2 $noun +desespero $alt2 +desespero $alt $verb desfecho $alt2 desmantelo $alt2 $noun +despojo $alt2 $noun +despojos $alt desporto $alt2 desportos $alt desprezo $alt2 $noun @@ -786,10 +828,13 @@ dez $alt diarreia $alt diego $alt2 discordo $alt -dobro $alt2 $noun +dissabores $alt2 +dispneia dZIspyn'EI& +dobro $alt2 +dobro $alt $verb doce $alt2 doutora $alt2 -droga $alt +doze $alt2 dueto $alt2 elixir eliSir emprego $alt2 $noun @@ -801,9 +846,9 @@ engordo $alt enredo $alt $verb enrosco $alt $verb enterro $alt2 $noun -enumerem $alt +entorto $alt +entroso $alt envelope $alt -envolto $alt2 enxaqueca $alt2 enxerto $alt2 $noun epopeia $alt @@ -812,10 +857,10 @@ erro $alt2 erro $alt $verb esboço $alt $verb escopeta $alt2 -escova $alt2 $noun -escovas $alt2 +escore $alt +escova $alt2 +escova $alt $verb escovo $alt -escroto $alt2 esforço $alt $verb esforços $alt esgoto $alt2 @@ -827,27 +872,30 @@ espoleta $alt2 esposa $alt2 esqueleto $alt2 estilete $alt2 -estrela $alt2 -estrofe $alt estorno $alt $verb estorvo $alt $verb +estrela $alt2 +estrofe $alt +estrogonofe $alt +eta $alt2 etiqueta $alt2 europa $alt europeia $alt exagero $alt $verb explore $alt faceta $alt2 -fantoche $alt +falangeta $alt2 farofa $alt -farolete $alt2 +farolete $alt2 febre $alt fera $alt feitora $alt2 -ferozes $alt fezes $alt filete $alt2 ?1 fixe fiSy +flerte $alt2 $noun foda $alt2 $verb +fodo $alt2 fogos $alt foguete $alt2 foice $alt2 @@ -855,56 +903,72 @@ folheto $alt2 fora $alt fora $alt2 $verb forca $alt2 -força $alt2 $noun -forças $alt2 +força $alt2 +força $alt $verb forço $alt formos $alt2 forro $alt $verb frevo $alt2 fulgores $alt2 galera $alt +galeto $alt2 +galhofa $alt galileia $alt -gameta $alt2 -garçonete $alt2 +gangorra $alt2 geleia $alt gelo $alt2 gelo $alt $verb genebra $alt gesso $alt2 -golpe $alt +gloso $alt gonorreia $alt +gol gow +golpe $alt gorda $alt2 +gorjeta $alt2 gosto $alt $verb gota $alt2 -governo $alt2 $noun +governo $alt2 +governo $alt $verb gozo $alt2 $noun graveto $alt2 grelha $alt groselha $alt grosso $alt2 -grozo $alt $verb +groso $alt +gueto $alt2 hemorroida $alt hoje $alt2 horrores $alt2 +humores $alt2 ideia $alt -imberbe $alt interesse $alt2 interesse $alt $verb -jogo $alt2 $noun +iodo $alt2 +ioga $alt +jereba $alt +jogo $alt2 +jogo $alt $verb +jogos $alt joguete $alt2 lagosta $alt2 lambreta $alt2 -lanchonete $alt lebre $alt +leitora $alt2 lembrete $alt2 lepra $alt leste $alt2 $verb +?2 lhe l^y lingueta $alt2 +lisboeta $alt2 +lodo $alt2 +logro $alt lopes $alt macete $alt2 maior $alt maleta $alt2 -marionete $alt +maniçoba $alt +marieta $alt2 marreta $alt2 megera $alt melhor $alt @@ -914,16 +978,13 @@ merda $alt meta $alt $noun meteoro $alt metro $alt -mexa m'eS& -mexi meS'i -mexo m'eSU minueto $alt2 miolo $alt2 miolos $alt modelo $alt2 modelo $alt $verb moeda $alt -moem $alt +moem $alt mofo $alt $verb molho $alt2 $noun monera $alt @@ -933,10 +994,7 @@ moreia $alt mortos $alt motora $alt2 mui mwi -muito mw'iNtU // -s is included as a suffix -muita mw'iNt& -mulher $alt -mulheres $alt +muleta $alt2 mureta $alt2 mutreta $alt2 namoro $alt2 $noun @@ -946,11 +1004,10 @@ nervo $alt2 nojo $alt2 novelo $alt2 novos $alt -obstetra $alt odisseia $alt onu $1 -olho $alt2 $noun -olhos $alt +olho $alt2 $noun +olhos $alt onomatopeia $alt opereta $alt2 ordens $alt @@ -961,29 +1018,39 @@ ovelha $alt2 ovos $alt pachorra $alt2 paexa paeSa +paella pa'el^& palacete $alt2 +paleta $alt2 palheta $alt2 panfleto $alt2 pangeia $alt pantera $alt +papoco $alt2 $noun parede $alt2 pastora $alt2 -patinete $alt +peba $alt pedra $alt pela $alt $verb pelo $alt2 pelo $alt $verb +pereba $alt +peroba $alt +peseta $alt2 peso $alt $verb piloto $alt2 $noun pintora $alt2 pior $alt +pipoco $alt2 $noun pirueta $alt2 plaqueta $alt2 plateia $alt plebeia $alt polca $alt +pompeia $alt porcos $alt +porque $alt2 porra $alt2 +porreta $alt2 porrete $alt2 porto $alt2 portos $alt @@ -991,13 +1058,19 @@ pose $alt2 povos $alt poxa p'oS& primavera $alt +primores $alt2 +proso $alt prosopopeia $alt +proveta $alt2 quarteto $alt2 queda $alt quede $alt2 +quitinete $alt quinteto $alt2 +ramalhete $alt2 raposa $alt2 recomeço $alt $verb +reconstroem $alt recordo $alt recorto $alt rede $alt2 @@ -1006,23 +1079,29 @@ reembolso $alt $verb reforço $alt $verb reforços $alt refresco $alt $verb +rego $alt2 $noun reitora $alt2 -rejo $alt relevo $alt2 $noun +remoem $alt remorso $alt renovo $alt $verb retorno $alt $verb -reuva x'EUv& +reuva x'EUv& rigores $alt2 -rixa x'iS& -rocha $alt +risoto $alt2 rock $alt -roem $alt +roem $alt rola $alt2 $noun +roleta $alt2 +rolete $alt2 rolo $alt2 $noun rota $alt2 rota $alt $noun +rubores $alt2 rumores $alt2 +sabonete $alt2 +sabores $alt2 +saibro s'aIbRU saleta $alt2 sarjeta $alt2 seborreia $alt @@ -1047,27 +1126,32 @@ sossego $alt2 $noun suborno $alt $verb sufoco $alt2 $noun sufocos $alt2 +sulfeto $alt2 +sulfureto $alt2 +super s'Uper suporto $alt suor swOr +sutiã sutSi'&~N tapete $alt2 temores $alt2 tempero $alt2 $noun -tenores $alt2 +tenores $alt2 terrores $alt2 teta $alt2 -tetra $alt -tocha $alt toga $alt -topo $alt $verb +topo $alt2 $noun torno $alt $verb tornozelo $alt2 torre $alt2 $noun torres $alt2 torro $alt tortos $alt +toso $alt +transtorno $alt $verb traqueia $alt travesso $alt2 tremores $alt2 +treta $alt2 trevo $alt2 troco $alt2 $noun tropa $alt @@ -1076,23 +1160,26 @@ trombeta $alt2 tumores $alt2 valeta $alt2 vanessa $alt2 -velozes $alt +vareta $alt2 +vera $alt verbete $alt2 violeta $alt2 violoncelo $alt voga $alt -vozes $alt xarope $alt +xereta $alt2 zelo $alt2 $noun zorra $alt2 // foreign words ?1 alt 'alt -?2 agosto &g'ostU +?2 agosto ag'ostU ?1 back b'Ek ?2 backup bEk'&p ?2 backups bEk'&ps +beatle b'itow +beatles b'itows blind bl'aind book buk ?1 braille b:r'aily @@ -1108,11 +1195,12 @@ book buk ?1 dj d,i:dZ'eI ?1 down d'a,wn ?1 download d'a,wnl'oud -?2 download daUNl'owd +?2 download daUNl'owd +?2 downloads daUNl'owds ?3 download dau~Nl'owd -drive dR'aivy -driver dR'aiver -drivers dR'aiveRs +drive dR'aIv +driver dR'aIver +drivers dR'aIveRs ?1 end 'end ?2 esc 'Esk ?3 esc 'EskI @@ -1139,7 +1227,7 @@ drivers dR'aiveRs laptop lEptOp ?1 line l'ain layout l'eI,aUt -?2 logo l'OgU + ?2 login logiN ?1 lock l'Ok mail m'eIl mails m'eIls @@ -1158,22 +1246,28 @@ python p'aIT&~N ?1 readme r'i:dmi: ?1 sapi s,ap'i ?1 scanner sk'En&r +sky sk'ay +shake S'eIk ?1 shift S'ift ?1 scroll sk:r'ol ?1 site s'aIt ?2 site s'aItSi +?2 shampoo S&mpu ?1 software s'Oft,w'Er- símbolo s'imbolU ?4 símbolo s'iNbolU ?2 software s'Oftwe@- ?1 space sp'eIsy +?2 space sp'eIs ?1 sporting sp'Ort,ing tab t'aby tablet t'ablet ?1 telemóvel t,El,Em'OvEl ?1 telemóveis t,El,Em'OveIs# ?1 up &p -?1 upload &pl'oud +update &pd'eIt +upgrade &pgR'eId +upload &pl'oud ?2 web w'Eb ?1 yahoo 'i,ah'u ?2 yahoo iah'u @@ -1181,13 +1275,14 @@ símbolo s'imbolU // common person names -alan 'al@n +alan 'al@N louis _^_FR // foreign product names ?1 access 'aks,Es ?1 adobe &d'Oby + android &NdR'Oid apple 'Epow chrome kR'owmi debian d'Ebj&~N @@ -1195,22 +1290,27 @@ chrome kR'owmi ?1 express ,Ekspr'Es espeak isp'i:k ?1 espeakedit isp'i:kEd,it -facebook feisybuk +facebook feIsybuk ?1 fedora _^_EN firefox f'ai@fOks ?1 front fr'ont ?1 jaws dZ'au:z ?1 linux l,in'uks ?2 linux l'inUks -?1 live l'aiv + live l'aiv ?1 maker m'eIk&r- +mac mEk ?1 media m'Ed,i& ?1 messenger m'Es&ndZ&r- ?1 microsoft m,ik:r'os,Oft ?2 microsoft m'aIkRows'Oft ?1 movie m'uvi ?1 nero n'Eru -/1 office 'Of,is +?2 netbook nEtbUk +?2 netbooks nEtbUks +?2 notebook nowtbUk +?2 notebooks nowtbUks +?1 office 'Of,is ?2 office 'Ofsy openoffice 'opeIN|'Ofis ?1 outlook 'autl'uk @@ -1245,15 +1345,16 @@ twitter tw'iter ?2 window w'iNdow -// historical/famous person names +// historical/famous person s babbage b'abidZ bernhard bern'ard darwin d'Arwin dijkstra d'ijkstrA: einstein _!'aInSt,aIn +?2 einstein _!'aInst,aIn feynman f'ainm@n -freud fr'OId -friedrich fr'i:driS +freud fR'OId +friedrich fR'i:dRiS gauss g'aUs geisel g'aIzEU gottfried g'Otfri:t @@ -1270,7 +1371,7 @@ oppenheimer _!'Op@nh,aImar richard x'iS&rd riemann r'i:man rijndael x'ain;d'al -rousseau Rus'o +?2 rousseau xus'o schrödinger Sr'edinger stephen st'i:v@n steve st'i:v @@ -1281,30 +1382,27 @@ von f%On // foreign common names/surnames ?1 alison &l'is&N +anderson '&ndersoN +antonio &~nt'onIU ?1 cleverson kl'Evyrs&N ?2 cleverson kl'EversoN ?1 elton 'Elt&N +emerson 'emE*@-soN ?1 halison &l'is&N klein kl'aIn // Very common on southern Brazil. ?1 kleverson kl'Evers&N krueger kR'iZer krüger kR'iZer kühl k'il -?1 nelson n'Els&N mueler m'iler mueller m'iler müler m'iler müller m'iler +?1 nelson n'Els&N ronchi r'OnCi: +valter v'aUter vogel f'o:g@l volkmann f'Olkman - - - - - - - - - +washington w'OSinton +wellington w'Elynton diff --git a/dictsource/pt_rules b/dictsource/pt_rules index d2f26045..df452595 100644 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -1,5 +1,3 @@ - // translation rules Brazilian -// translation rules Brazilian // translation rules Brazilian // This file is UTF-8 encoded @@ -33,6 +31,7 @@ &) a (_ =& // in final unstressed syllable &) a (s_ =& &) a (_a =&/ // ?? elide final a before a + A_l) a (_ & &) a (_à =&/ ?1 a (_ =& // in final unstressed syllable ?1 a (s_ =& @@ -43,6 +42,7 @@ a (r_ 'a ?1 p) a (d_ =E a (CC_ & + a (h_ a ?1 a (l_ 'A // eg: Portugal, capital, etc. ?1 a (lK ,A // Algarve, Almerinda, etc... ?2 al (K aU @@ -51,6 +51,7 @@ a (mAr_ & a (mA@ & a (n &~ + a (ñ &~ a (nA@ & a (nAr_ & am (_ =&~N @@ -59,6 +60,8 @@ an (K+ &~N anh (A &~n^ am (_ =&U~ + a (t_ a + a (x_ a a (z_ 'a //eg: paz, rapaz, capaz, etc... ?1 C) acç 'a's // eg: selecção, etc... @@ -71,6 +74,24 @@ au aU au (s aU a (uCK a + âB) a (CA_ & + âBC) a (CA_ & + êC) a (CA_ & + êCC) a (CA_ & + ôB) a (CA_ & + ôBC) a (CA_ & + áC) a (CA_ & + áCC) a (CA_ & + éC) a (CA_ & + í) a (CA_ & + íC) a (CA_ & + íCC) a (CA_ & + óC) a (CA_ & + óCC) a (CA_ & + óC) a (CCA_ & + úC) a (CA_ & +?2 ation (_ 'eIS&~N +?2 action (_ 'EkS&~N .group â @@ -99,7 +120,7 @@ ái (s ''aI á (iCK ''a áy ''aI - ál (C ''aU + ál (B ''aU áu ''aU áu (s ''aU ?1 ál ''Al @@ -129,6 +150,7 @@ ?3 c (t k ?3 c (_C k_ ch S + chr kR ck k ?1 c (c //drop “c” in European Portuguese (eg: seleccionar) ?1 A) ct t //drop “c” in European Portuguese (eg: exacto) @@ -145,6 +167,7 @@ ?2 d (i dZ ?2 d (í dZ ?2 d (e_ dZ +?2 A) de (o_ dZj .group e @@ -163,115 +186,88 @@ e (lh+ e v) e (lhA_ E - e (be_ E - e (bem_ E + e (bL02_ E - e (ca_ E - e (ce_ E - e (cem_ E + e (cL04_ E + + e (chL04_ E - e (chA_ E - e (chAm_ E r) e (cho_ e - e (clA_ E - e (clAm_ E - e (co_ E - e (ctA_ E - e (ctAm_ E + e (clL04_ E - e (de_ E - e (dem_ E + e (ctL04_ E + + e (dL02_ E e (fa_ E - e (gA_ E - e (gAm_ E + e (gL04_ E - e (grA_ E - e (grAm_ E + e (grL04_ E - h) e (gA_ e - h) e (gAm_ e + h) e (gL04_ e - e (gue_ E - e (guem_ E + e (guL02_ E - e (lA_ E - e (lo_ E - e (lAm_ E + e (lL04_ E i) e (r_ E @s) e (r_ E - u) e (r_ E + qu) e (r_ E - ib) e (rA_ E - d) e (rA_ E - ed) e (rAm_ e - m) e (rA_ E - iv) e (rAm_ E + ib) e (rL04_ E + d) e (rL04_ E + ed) e (rL04_ e + m) e (rL04_ E + iv) e (rL04_ E pod) e (rA_ e - d) e (rAm_ E - ib) e (rAm_ E - @s) e (rA_ E - @s) e (rAm_ E - sp) e (rA_ E - sp) e (rAm_ E - f) e (re_ E - f) e (rem_ E - e (que_ E - e (quem_ E + @s) e (rL04_ E - e (rgA_ E - e (rgAm_ E + sp) e (rL04_ E + f) e (rL02_ E - e (rgue_ E - e (rguem_ E + e (quL02_ E + e (rbL04_ E + e (rgL04_ E - e (rsA_ E - e (rsAm_ E + e (rsL04_ E - e (se_ E - e (sem_ E + e (sL02_ E - e (ssA_ E - e (ssAm_ E + e (ssL04_ E + e (ss_ E // stress and english words +?2 ection (_ 'EkS&~N +?2 ee (n_ i + e (stL04_ E - e (stA_ E - e (stAm_ E - e (strA_ E + e (strL04_ E e (rme_ E - e (rnA_ E - e (rnAm_ E + e (rnL04_ E - e (rtA_ E - e (rtAm_ E + e (rtL04_ E - e (rrA_ E - e (rrAm_ E + e (rrL04_ E - e (rvA_ E - e (rvAm_ E + e (rvL04_ E - e (tA_ E + e (tL04_ E + m) e (tL04_ e An) e (tA_ e + on) e (te_ E gaz) e (ta_ e - e (tAm_ E - e (vA_ E + e (vL04_ E t) e (ve_ e - e (vi_ e - e (vê_ e - e (vAm_ E e (rrAs_ E e (x_ E - e (xA_ E - e (xAm_ E + e (xL04_ E + ?2 _n) e (t E em (C eIm en (K eIN @@ -302,8 +298,6 @@ ?1 d) e (CCACCA y ?1 d) e (nCACCA ,e - j) e (tA_ E - j) e (tAm_ E _r) eex (A eez ?1 _) es (C@@ S // drop initial "e". @@ -317,6 +311,7 @@ ?1 C) e (o 'i // eg: geologia, etc... ?1 C) e (ú i // conteúdo, etc. ?1 Cã) e j // cães, mãe, etc... +?2 ã) e (z y // mãezinha, etc. ?1 c) e (rea y // cereais ?1 d) e (fici y // deficiênte, deficiência, etc... ?1 _d) e (fini y //definições. @@ -348,155 +343,149 @@ ?1 v) e (l_ ,E // eg: possível, amovível, disponível, etc... ?1 l) e (ta 'E // eg: bicicleta, atleta. - sf) e (ra_ E // esfera, biosfera + ef) e (tuL02_ e + t) e (tra E + + âC) e (CA_ e + âCC) e (CA_ e + êC) e (CA_ e + êCC) e (CA_ e + ôC) e (CA_ e + áC) e (CA_ e + áCC) e (CA_ e + íC) e (CA_ e + íCC) e (CA_ e + óC) e (Ca_ e + óCC) e (CA_ e + úC) e (CA_ e + úC) el (_ eU //sort _d) e (L05_ E + em) e (L05_ e // temeram, etc. + rd) e (L05_ e // perderam, etc. _vi) e (L05_ E + end) e (L05_ e // entenderam, etc. fiz) e (L05_ E pus) e (L05_ E // com- im- de- tiv) e (L05_ E // es- + viv) e (L05_ e _com) e (L05_ e + _cos) e (L05_ e _pud) e (L05_ E - _tem) e (L05_ e _coub) e (L05_ E _exag) e (L05_ E _houv) e (L05_ E - _perd) e (L05_ e + _mulh) e (L05_ E _quis) e (L05_ E _soub) e (L05_ E _talh) e (L05_ E - _trem) e (L05_ e +_escond) e (L05_ e +_troux) e (L05_ E +respond) e (L05_ e diss) e (L06_ E // contra- - fend) e (L06_ e // de- o- - tend) e (L06_ e // a- con- en- es- - vend) e (L06_ e // re- - _mord) e (L06_ e - _rend) e (L06_ e - prend) e (L06_ e // a- rea- des- desa- -_arrepend) e (L06_ e -_depend) e (L06_ e -_escond) e (L06_ e -preend) e (L06_ e // com- a- re- sur- -respond) e (L06_ e // cor- + m) e (L07_ e // comeste, etc. + eb) e (L07_ e // recebeste, etc. + ec) e (L07_ e // pareceram, etc. + eg) e (L07_ e // elegeste, etc. + _cr) e (L07_ e + _do) e (L07_ e + _mo) e (L07_ e + _ro) e (L07_ e bat) e (L07_ e // re- com- - ceb) e (L07_ e // re- per- con- ced) e (L07_ e // pro- con- su- + end) e (L07_ e // vendeste, etc. + esc) e (L07_ e // cresceste, etc. met) e (L07_ e // co- pro- arre- re- intro- compro- sub- + mex) e (L07_ e mov) e (L07_ e // re- co- + olv) e (L07_ e // devolveste, etc. + ond) e (L07_ e // escondeste, etc. + orr) e (L07_ e // correste, etc. viv) e (L07_ e // re- - _beb) e (L07_ e - _com) e (L07_ e - _tem) e (L07_ e + _ard) e (L07_ e + _cos) e (L07_ e + _coz) e (L07_ e colh) e (L07_ e // & es- - corr) e (L07_ e // per- con- in- so- dis- ench) e (L07_ e // pre- - fend) e (L07_ e // de- o- nasc) e (L07_ e // re- - tend) e (L07_ e // en- con- a- es- torc) e (L07_ e // con- venc) e (L07_ e // con- - vend) e (L07_ e // re- vert) e (L07_ e // in- re- con- - volv) e (L07_ e // de- en- re- - _eleg) e (L07_ e _ergu) e (L07_ e _mord) e (L07_ e - _morr) e (L07_ e _perd) e (L07_ e + _remo) e (L07_ e _sofr) e (L07_ e - _trem) e (L07_ e - merec) e (L07_ e // des- - padec) e (L07_ e // com- - parec) e (L07_ e // a- rea- com- desa- - prend) e (L07_ e // a- rea- des- screv) e (L07_ e // e- in- ree- pre- de- -_aborrec) e (L07_ e -_absolv) e (L07_ e -_adoec) e (L07_ e -_adormec) e (L07_ e -_agradec) e (L07_ e -_amanhec) e (L07_ e -_amolec) e (L07_ e -_anoitec) e (L07_ e -_arrepend) e (L07_ e _atrev) e (L07_ e -_cresc) e (L07_ e -_depend) e (L07_ e -_desguarnec) e (L07_ e -_emagrec) e (L07_ e -_endurec) e (L07_ e -_enlouquec) e (L07_ e -_enraivec) e (L07_ e -_entorpec) e (L07_ e -_entristec) e (L07_ e -_envaidec) e (L07_ e -_envelhec) e (L07_ e -_esclarec) e (L07_ e -_escond) e (L07_ e -_escurec) e (L07_ e -_espairec) e (L07_ e -_esquec) e (L07_ e -_estremec) e (L07_ e +_corro) e (L07_ e _interromp) e (L07_ e -_perec) e (L07_ e -_rejuvenec) e (L07_ e -_resolv) e (L07_ e -_suspend) e (L07_ e -abastec) e (L07_ e // re- -conhec) e (L07_ e // & re- des- -estabelec) e (L07_ e // re- -favorec) e (L07_ e // des- -obedec) e (L07_ e // des- -preend) e (L07_ e // sur- com- -proteg) e (L07_ e // des- -respond) e (L07_ e // cor- +_troux) e (L07_ E + _ens) e (bL03_ E +_amanc) e (bL03_ E qu) e (brL04_ E _cel) e (brL04_ E + _boch) e (chL04_ e + _ex) e (crL04_ E _enr) e (dL01_ E + _v) e (dL03_ E _arr) e (dL03_ E _depr) e (dL03_ E _hosp) e (dL03_ E +_enver) e (dL03_ E _gr) e (gL03_ e _gal) e (gL03_ e _pel) e (gL03_ e _n) e (grL03_ e - _ch) e (guL02_ e estr) ei (L04_ EI + _r) e (jL03_ E _inv) e (jL04_ E +?2 el (ton_ 'EU tr) e (pL04_ E // es- _dec) e (pL04_ E _in) e (ptL03_ E ad) e (quL04_ E - _imp) e (rL03_ E _sev) e (rL03_ E _reit) e (rL03_ E _sinc) e (rL03_ E _g) e (rL04_ E _z) e (rL04_ E qu) e (rL04_ E // re- + _on) e (rL04_ E _op) e (rL04_ E gen) e (rL04_ E // de- re- _alt) e (rL04_ E _enc) e (rL04_ E + _imp) e (rL04_ E + _min) e (rL04_ E _sug) e (rL04_ E _sup) e (rL04_ E _tol) e (rL04_ E _ven) e (rL04_ E acel) e (rL04_ E // des- + eson) e (rL04_ E _apod) e (rL04_ E _coop) e (rL04_ E + _exub) e (rL04_ E _temp) e (rL04_ E +_adult) e (rL04_ E +_persev) e (rL04_ E _recup) e (rL04_ E _refrig) e (rL04_ E - _v) e (rbL03_ E + _ex) e (rcL02_ E _alic) e (rcL02_ E _p) e (rdL02_ E _l) e (rdL03_ E _h) e (rdL04_ E + _des) e (rdL04_ E +s_colh) e (res_ E + _) e (rgL03_ e + _re) e (rgL03_ e + _so) e (rgL03_ e _bez) e (rrL03_ e - _inv) e (rtL03_ e + v) e (rtL03_ e // con- re- in- _f) e (rvL03_ e _alic) e (rçL03_ E _p) e (sL01_ E @@ -512,24 +501,24 @@ _refrig) e (rL04_ E _l) e (ssL02_ e _esp) e (ssL03_ e _c) e (stL03_ e - _m) e (tL03_ e _pr) e (tL03_ e - _com) e (tL03_ e + _bol) e (tL03_ e _rem) e (tL03_ e - prom) e (tL03_ e // com- _derr) e (tL03_ e _obsol) e (tL03_ e _sol) e (trL03_ E _pen) e (trL04_ E + _n) eu (trL03_ 'eU _d) e (vL03_ e scr) e (vL03_ e // e- in- pre- ree- de- _atr) e (vL03_ e + m) e (xL03_ e _r) e (zL04_ E _pr) e (zL04_ E + spr) e (zL04_ E + _enf) e (zL04_ E _rev) e (zL04_ E -_despr) e (zL04_ E _embel) e (zL04_ E -_menospr) e (zL04_ E com) e (çL01_ E p) e (çL03_ E _m) e (çL03_ E @@ -544,7 +533,7 @@ _entorp) e (çL03_ e éi (s ''EI é (iCK ''E éy ''eI - él (C ''EU + él (B ''EU éu ''EU éu (s ''EU é (uCK ''E @@ -566,7 +555,7 @@ _entorp) e (çL03_ e .group f ?1 _) f (_W Ef; // within an acronym ?1 _) f (_ Ef // individual letter or end-of-acronym - _) f (_ 'Efe + _) f (_ 'Efy f f f (f ?3 f (B fI @@ -611,6 +600,11 @@ _entorp) e (çL03_ e _) i (_ i i i i (A j + i (a i + i (e i + i (ã i + i (õ i + i (ú i i (o i Cr) i i Cl) i i @@ -658,6 +652,8 @@ _entorp) e (çL03_ e ?1 _) i (ntern 'i //inter ?1 @) ing (_ _^_EN ?1 @) ings (_ _^_EN +?2 il (ton_ 'iU +?2 i (rton_ 'i .group í @@ -668,7 +664,7 @@ _entorp) e (çL03_ e ím (C ''im ín (K ''iN ính ''in^ - íl (C ''IU + íl (B ''IU .group j @@ -692,12 +688,12 @@ _entorp) e (çL03_ e .group l ?1 _) l (_W El; // within an acronym ?1 _) l (_ El - _) l (_ 'Ele + _) l (_ 'Ely l l l) l - lh lj - A) lh lj - A) lh l^ +?1 lh l^ +?2 lh lj + ?4 A) lh l^ @@ -723,15 +719,27 @@ _entorp) e (çL03_ e ?1 A) nn n //drop “n” (eg: connosco). +.group ñ + _) ñ (_ 'enjE +?1 _) ñ (_ enetil + ñ n^ + + + .group o o o @) o (_ =U o (s_ =U + _) o (_C U + _) o (_A u +?2 _) os (_ Us +?2 _) os (_A Uz +?2 _) os (_G Uz ou ow oi oI oi ($w_alt OI oi ($w_alt2++ oI - oi (a_ OI // ?? + oi (a_ OI oi (cA_ OI oi (de_ OI oi (s oI @@ -739,55 +747,46 @@ _entorp) e (çL03_ e ?1 C) oo (_ ow // eg: voo, enjoo, etc... oy OI - o (cA_ O - o (cAm_ O + o (cL04_ O - o (que_ O - o (quem_ O + o (chL04_ O - p) o (dA_ O - p) o (dAm_ O + o (quL02_ O + + A_l) o (_ U o (g_ O o (gs_ O - o (ge_ O - o (gem_ O + o (gL02_ O - o (jA_ O - o (jAm_ O + o (jL04_ O - o (ldA_ O - o (ldAm_ O + o (ldL04_ O - o (lA_ O - o (lAm_ O + o (lL04_ O - o (lhe_ O - o (lhem_ O + o (lhL02_ O - o (ltA_ O - o (ltAm_ O + o (ltL04_ O - o (lve_ O - o (lvem_ O + o (lvL02_ O o (sA_ O o (so_N o // not for osos_ o (sAm_ O - o (ssA_ O - o (ssAm_ O + o (ssL04_ O o (va_ O o (vAm_ O o (ve_ O - m) o (va_ o - m) o (vam_ o + m) o (vL01_ o + o (veCs_ O -?1 o (l_ 'O -?2 ol (_ Ow + o (l_ 'O +?2 ol (B ow om (_ oN o (ma_ o @@ -796,43 +795,40 @@ _entorp) e (çL03_ e ?4 om (C oN on (K oN @s) on (_ %oN // words ending in -son - o (na_ o + onh on^ - o (brA_ O - o (brAm_ O - o (dA_ O - o (dAm_ O + o (brL04_ O + + o (dL04_ O + t) o (dA_ o - o (rCA_ O + o (rCL04_ O + o (rCo_ o - o (rCAm_ O - o (stA_ O + o (stL04_ O + o (sto_ o - o (stAm_ O - o (strA_ O - o (strAm_ O - o (tA_ O - o (tAm_ O + o (strL04_ O + + o (tL04_ O ?2 o (x_ O ?1 oz (_ Os# -?2 oz (_ Oz - o (zes_ O - o (rA_ O - b) o (re_ o +?2 o (z_ O + o (ze_ O + o (rL04_ O c) o (re_ o d) o (re_ o l) o (re_ o t) o (re_ o v) o (re_ o - o (rAm_ O - b) o (rA_ O - @@) o (rA_ o + @@) o (rA_ o + b) o (rL04_ O o (p_ O ?1 _) o (C O // eg: olá, orla, opção, etc... ?1 _C) o (CACAC u // Documento, documentação, localizar, etc. @@ -843,6 +839,23 @@ _entorp) e (çL03_ e ?1 interr) o (g u // eg: interrogação ?1 f) o (rmulá u // eg: formulário, formulários. ?1 v) o (lt O + o (luem_ o + o (ssuem_ o + êC) o (CA_ o + êCC) o (CA_ o + ôC) o (CA_ o + áC) o (CA_ o + + éC) o (CA_ o + éCC) o (CA_ o + í) o (CA_ U + íC) o (CA_ o + íCC) o (CA_ o + óC) o (CA_ o + óCC) o (CA_ o + úC) o (CA_ o + úCC) o (CA_ o +?2 otion (_ 'owS&~N //sort _f) o (L05_ o @@ -852,15 +865,16 @@ _pormen) o (L05_ O _af) o (bL04_ O _esn) o (bL04_ O _engl) o (bL04_ O - br) o (chL04_ O - _deb) o (chL04_ O + _sal) o (brL03_ o + _) o (cL03_ o _m) o (fL01_ O _m) o (fL02_ O _s) o (frL02_ O + l) o (gL04_ O // dialoga, etc. r) o (gL04_ O // inter- + v) o (gL04_ O // advoga, etc. _j) o (gL04_ O - _af) o (gL04_ O - _adv) o (gL04_ O + af) o (gL04_ O // des- _ref) o (gL04_ O _ap) oi (L01_ OI _ap) oi (L02_ OI @@ -870,10 +884,15 @@ _pormen) o (L05_ O _emp) o (lgL04_ O _) o (lhL04_ O m) o (lhL04_ O + _env) o (ltL03_ o ent) o (pL02_ O _c) o (pL03_ O + _t) o (pL04_ O _ens) o (pL04_ O + _gal) o (pL04_ O _s) o (prL04_ O + _al) o (prL04_ O + _ass) o (prL04_ O _) o (ptL04_ O p) o (rL02_ o _dev) o (rL02_ O @@ -882,25 +901,29 @@ _pormen) o (L05_ O _inod) o (rL03_ O _inson) o (rL03_ O _comem) o (rL04 O + _enam) o (rL04_ O +_aprim) o (rL04_ O _remem) o (rL04_ O f) o (rmL03_ O - _enf) o (rquL02_ O - _ext) o (rquL02_ O - c) o (rrL01_ o // escorra, incorra, corra, recorra + c) o (rrL01_ o // incorra, corra, etc. _m) o (rrL01_ o p) o (rtL03_ O // im- trans- de- re- com- a- ex- - t) o (rçL01_ O // con- + t) o (rçL03_ o // con- _r) o (snL04_ O _c) o (spL02_ O _enr) o (squL02_ O p) ostos (_ Ost=Us# // dispostos etc. _gar) o (tL03_ o + _mar) o (tL03_ o + _escr) o (tL03_ o + _ch) o (vL01_ o pr) o (vL03_ O _g) o (zL04_ O _esb) o (çL01_ O _r) o (çL03_ O tr) o (çL03_ O // des- _ad) o (çL03_ O + _emp) o (çL03_ O _end) o (çL03_ O //endsort @@ -935,8 +958,7 @@ _remem) o (rL04_ O ?3 p (s p ?3 p (t p ?3 p (_C p_ -?1 ph f //Didn’t use in European Portuguese (eg: English) -?1 ple (_ _^_EN + ph f .group q @@ -952,17 +974,18 @@ _remem) o (rL04_ O ?1 _) qua kwa // quatro, etc. ?1 _) que ke // quente, etc. ?1 _) quei (C k'eI // queira, queima, etc - quên kw'eN // quinquênio, etc. + A) quên kw'eIN // frequência, etc. + C) quên kw'eIN // delinquência, etc. ade) qu (e kw - _a) qu (idade_ kw + A) qu (idade_ kw _a) qu (ífero_ kw e) qu (estr kw ese) qu (ív kw _e) qu (in kw fre) qu (ent kw - _ini) qu (idade_ kw li) qu (id kw lí) qu (id kw + lo) qu (en kw n) qu (en kw _) qu (inqu kw se) qu (en kw @@ -988,11 +1011,10 @@ _remem) o (rL04_ O r (C *@- A) r (A * A) r (_A * + C) r (A R rr x - XC) r (A R - C) r (A * _) r x - l) r x + l) r (A x n) r (+ x s) r x ?1 A) r (_ r- // [r-] is English linking-r @@ -1001,7 +1023,7 @@ _remem) o (rL04_ O .group s ?1 _) s (_W Es|; // within an acronym [s]+[;] not [s;] phoneme ?1 _) s (_ Es -?2 _) s (_ 'Ese +?2 _) s (_ 'Esy s s ss s sc (Y s @@ -1011,11 +1033,12 @@ _remem) o (rL04_ O A) s (A z ?1 @) s (_ s# ?2 s (_ s# - @) s (_A z // next word starts with vowel + ?!4 @) s (_G z // next word starts with voiced consonant A) s (_S1 s A) s (_AS1 z // next word starts with vowel + ese) s (_ s ?!4 A) s (_GS1 z // next word starts with voiced consonant @@ -1024,16 +1047,12 @@ _remem) o (rL04_ O ?1 A) s (G+ Z ?1 A) s (_KS1 s# ?1 A) s (_G+S1 Z - s (b z - s (d z - s (g z - s (l z - s (m z - s (n z + s (G z + s (w+ s sr zx - s (v z _) sobre (@P5 sob*e + _tran) s (A z .group t @@ -1047,6 +1066,7 @@ _remem) o (rL04_ O ?2 t (e_ tS ?1 th _^_EN ?1 tion (_ _^_EN +?2 A) te (o_ tSj .group u @@ -1055,15 +1075,20 @@ _remem) o (rL04_ O u (A w u (_A w r) u (A u + u (a u + g) u (a+ w + q) u (a+ w + u (eC u + u (ei u r) u (_A u - u (A_ 'u + u (L04_ 'u - u (am_ 'u - u (em_ 'u ui uI ui (_ 'uI u (iu w u (iCK u + u (éC u + u (íC u uy uI ul (K uw u (lh+ u @@ -1075,12 +1100,15 @@ _remem) o (rL04_ O unh u~n^ g) u (Y + _m) ui (tA_ 'wiN +?2 ution (_ 'uS&~N .group ú ú ''u úm (_ ''u~N úm (C ''u~m + úm (A ''u~m ?4 úm (C ''u~N ún (K ''u~N únh ''u~n^ @@ -1106,6 +1134,7 @@ _remem) o (rL04_ O _e) x (A z _ê) x (A z _ine) x (A z + _ine) x (oráv ks e) x (A ks ?1 e) x (CA S ai) x (A S @@ -1132,10 +1161,12 @@ _remem) o (rL04_ O _ca) x (A S _co) x (A S _coe) x (A z + _e) x (u_ S _fa) x (i S _fle) x (a S gra) x (A S _he) x (A z +?2 _he) x (A ks _li) x (A S _lu) x (A S _mar) x ks @@ -1155,8 +1186,9 @@ _remem) o (rL04_ O ri) x (A S rela) x (A S _ro) x (A S + _ta) x (e S + _te) x (ugo_ S _trou) x (e s - _trou) xe (@ sE _ve) x (A S _xi) x (A S ?1 i) x (a_ S diff --git a/dictsource/sk_list b/dictsource/sk_list index 61480f8a..6c67ef9f 100644 --- a/dictsource/sk_list +++ b/dictsource/sk_list @@ -69,6 +69,8 @@ _tld s_v'l-novkoU // character names _cap vel^ke: +_sub d,olni:||'indeks|| +_sup h,oRni:||'indeks|| _?? simbol _#9 t'ab _#32 'medzeRa @@ -76,76 +78,100 @@ _?A znak * hviezda $max3 + plus $max3 -= Rovna:sa $max3 += Rovna:||sa $max3 @ zavina:tS & ampeRsand # kRi:Zik $max3 _! vi:kRitSn^i:k -_" u:vodzovki +_" u:vodzowki _$ dola:R _' apostRof _( za:tvoRka _) zatvoRit; _, tSiaRka -_- poml-tSka -__ podtSiaRknutie +_- spojovn^i:k +__ podtSiaRkovn^i:k _. bodka -_/ lomeno +_/ lomka _: dvojbodka _; bodkotSiaRka _< menSi: -_> vetSSi: +_> v&tSSi: _? ota:zn^ik -_[ hRanata:||za:tvoRka -_\ opatSne:||lomeno -_] hRanata:||zatvoRit; -_^ stRieZka +_[ hRanata:||z'a:tvoRka +_\ opatSna:||l'omka +_] hRanata:||z'atvoRit; +_^ voka:n^ _` aktsent -_{ zloZena:||za:tvoRka -_| zvisla:||tSiaRa -_} zloZena:||zatvoRit; +_{ zloZena:||z'a:tvoRka +_| zvisla:||tS'iaRa +_} zloZena:||z'atvoRit; _~ vl-novka -_ tvr-da:m'edzeRa // U+00A0 no-break-space -_¡ obra:t;eni:v'i:kRitSn^i:k -_¦ pReRuSena:'tSiaRa -_ª hoRni:indeks'a: -_« dvojita:lomena:||za:tvoRka -_­ mekka:poml-tSka -_² nadRuhu: -_³ natRetju -_´ dl:Zen^ -_· bodka'vpRostRjedku -_¸ tsedila -_¹ napRvu: -_» dvojita:lomena:||zatvoRit; -_¿ obRa:t;eni:'ota:zn^ik -_– dl-ha:'poml-tSka -_‘ l^ava:'u:vodzovka -_’ prava:'u:vodzovka -_“ horne:'u:vodzovki -_” dolne:'u:vodzovki -_‡ dvojiti:kRi:Z -_• odRa:Zka -_‣ tRojuholni:kova:'odRa:Zka +_ tvr-da:||m'edzeRa // U+00A0 no-break-space +_¡ obra:t;eni:||v'i:kRitSn^i:k +_¦ pReRuSena:||tS'iaRa +_¨ pRehla:ska +_« dvojita:||l'omena:||z'a:tvoRka +_­ Rozd;el^ovn^i:k +_´ dl:Zen^ +_· bodka||'v||pRostRjedku +_¸ tsedila +_» dvojita:||l'omena:||z'atvoRit; +_¿ obRa:t;eni:||'ota:zn^ik +_– poml-tSka +_‘ hoRne:||j'ednoduche:||'u:vodzowki +_’ odsuvn^i:k +_“ hoRne:||'u:vodzowki +_” dvojita:||h'oRna:||'opatSna:||'u:vodzowka +_„ dolne:||'u:vodzowki +_‚ dolne:||j'ednoduche:||'u:vodzowki +_‡ dvojkRi:Z +_• odRa:Zka +_‣ odRa:Zka||t'Rojuholn^i:k +_⁃ odRa:Zka||'v||tvaRe||p'oml-tSki ‰ pRomile € euRo § paRagRaf ÷ d;eleno × kRa:t ° stupn^ou -¢ tsentou -£ libjeR -¤ znatSkameni +¢ tsent +£ libRa +¤ mena +© kopiRajt +® Registrovane: +¥ jen − mi:nus -± plus'mi:nus -µ mu: -¼ Stvr-tina +± plus||m'i:nus +µ mi: +¼ Stvr-t;ina ½ polovitsa -¾ tri_Stvr-tini -¬ logitske:not -æ a'e: -þ poml-tSkanad +¾ t'@-*i||S'tvr-t;ini +¬ logitski:||z'a:poR +æ otvoRene:||'e: +þ soRn +¯ pRuh||n'at +ð ed +ƒ floRe:n +_† kRi:Z +_≈ pRibliZn^e||sa||R'ovna: +_≠ n^eRovna:||s'a +_≤ menSi:||'alebo||sa||R'ovna: +_≥ v&tSSi:||'alebo||sa||R'ovna: +_√ dRuha:||'odmotsn^ina +_∛ tRet;ia||'odmotsn^ina +_∞ n^ekon^etSno +_■ tSieRni||S'tvoRets +_□ bieli||S'tvoRets +_◆ tSieRni||d'iamant +_○ bieli||kR'uh +_● tSieRni||kR'uh +_◦ odRa:Zka||'v||tvaRe||b'ielej||b'odki +_✓ zaSkr-tnut;ie +_✔ tutSne:||z'aSkr-tnut;ie +_➔ Si:pka||'vpRavo +_➢ odRa:Zka||'v||tvaRe||S'i:pki // Numbers diff --git a/dictsource/tr_list b/dictsource/tr_list index af361878..b08cb817 100644 --- a/dictsource/tr_list +++ b/dictsource/tr_list @@ -43,16 +43,16 @@ _?A haRf //_lig _acu vURg'UimI _ac2 tS'IftvURg'UimI -_brv k@s'altmaimI +_brv k@s'aLtmaimI _ced h'aRf _cir Sapk'a -_dia Umla'Ut +_dia UmLa'Ut _dot YstnOkt'a _grv 'aksanimI _hac t'ERsSapk'a _mcn uz'atmaimI _ogo ogon'Ek -_rng halk'a +_rng haLk'a //_stk _tld tIld'E @@ -60,7 +60,7 @@ _tld tIld'E // symbols _. nOkt'a _, vIRJ'Yl -_; nOktal'@vIRJ'Yl +_; nOktaL'@vIRJ'Yl _: ik'InOkt'a _… 'YtSnOkt'a _? soR'UiSa*et,I @@ -73,7 +73,7 @@ _' apOstR'Of _^ IndZ'EltmEiSa*et'I & _!v'E _& v'EiSa*et'I -_@ kUjRUkl'U'a +_@ kUjRUkL'U'a _\ t'ERs||ej,IktSIzg'I _( atSpa*ant'Ez _) kapapa*ant'Ez @@ -84,9 +84,9 @@ _‘ tEkt@Rn'ak § tSEnJ'El ° de*edZ'E _# dij'Ez -_~ jaklaS'@k -__ ,alttSIzg'I -* j'@ld@z $max3 +_~ jakLaS'@k +__ ,aLttSIzg'I +* j'@Ld@z $max3 = ESIt $max3 % jYzdE $max3 + aRt@ $max3 @@ -99,7 +99,7 @@ _2 ic'i _3 'ytS _4 d'WRt _5 b'ES -_6 alt'@ +_6 aLt'@ _7 jed'i _8 sec'Iz _9 d'okuz @@ -111,7 +111,7 @@ _2X jiRm'i _3X ot'uz _4X k'@Rk _5X ell'i -_6X altm'@S +_6X aLtm'@S _7X jetm'iS _8X seks'En _9X doks'an @@ -260,13 +260,13 @@ Düzce $1 Edirne $2 Hakkari $1 Hatay $1 -Iğdır $1 -İngiltere $3 -İskenderun $2 +ığdır $1 +ingiltere $3 +iskenderun $2 Isparta $2 -İstanbul $2 -İsveç $1 -İzmir $1 +istanbul $2 +isveç $1 +izmir $1 Kastamonu $1 Kayseri $1 Kilis $1 diff --git a/dictsource/tr_rules b/dictsource/tr_rules index aa03ae1b..8ae84901 100644 --- a/dictsource/tr_rules +++ b/dictsource/tr_rules @@ -9,8 +9,10 @@ // ?1 mbrola voices -// unvoiced consonants -.L01 ç f h k p q s ş t +.L01 ç f h k p q s ş t // unvoiced consonants + +.L02 ı a o u // back vowels +.L03 i e ö ü î â ô û // not-back vowels .replace ` ' @@ -23,7 +25,7 @@ @) acak (_S4 adZak @) acakmış (_S7 adZakm%@S @) ayım (_S4 aj@m - @) alım (_S4 al@m + @) alım (_S4 aL@m @) asın (_S4 as@n @) avru (pa avr'u @@ -33,9 +35,11 @@ .group c c dZ + ce (_S2 dZ%E .group ç ç tS + çe (_S2 tS%E .group d d d @@ -57,13 +61,13 @@ dın (_S3 d@n dınız (_S5 d@n@z dı (_S2 d@ - dılar (_S5 d@laR + dılar (_S5 d@LaR dum (_S3 dum duk (_S3 duk dun (_S3 dun dunuz (_S5 dunuz du (_S2 du - dular (_S5 dular + dular (_S5 duLar düm (_S3 dym dük (_S3 dyk dün (_S3 dyn @@ -96,18 +100,24 @@ .group g g g - g (i J - g (e J - g (ü J - g (ö J + g (L03 J + L03) g (K J + .group ğ ğ Q - A) ğ :|| -?1 A) ğ G // mbrola + A) ğ : +?1 A) ğ (+ G // mbrola + + a) ğa : + o) ğo : + u) ğu : + ö) ğö : + ü) ğü : i) ğ j e) ğ j + .group h h h @@ -135,37 +145,40 @@ @) ıyor (_S4 @j%oR @) ın (_S2 @n +.group î + î @ + .group j j Z .group k k k - k (i c - k (e c - k (ü c - k (ö c + k (L03 c + L03) k (K c ken (_S3 %cen .group l l l + l (L02 L + L02) l (K L - la (_S2 %la + la (_S2 %La le (_S2 %le - lar (_S3 laR + lar (_S3 LaR ler (_S3 leR li (_S2 li - lı (_S2 l@ - lu (_S2 lu + lı (_S2 L@ + lu (_S2 Lu lü (_S2 ly lik (_S3 lik - lık (_S3 l@k - luk (_S3 luk + lık (_S3 L@k + luk (_S3 Luk lük (_S3 lyk @@ -204,6 +217,7 @@ .group r r R A) r (A * + ğ) r (A * ra (_S2 %Ra re (_S2 %Re @@ -308,7 +322,7 @@ yunuz (_S5 %junuz yünüz (_S5 %jynyz - yla (_S3 %jla + yla (_S3 %jLa yle (_S3 %jle yacak (_S5 jadZak @@ -317,7 +331,7 @@ yecekmiş (_S8 jedZekm%iS yayım (_S5 jaj@m - yalım (_S5 jal@m + yalım (_S5 jaL@m yasın (_S5 jas@n yeyim (_S5 jejim yelim (_S5 jelim diff --git a/dictsource/vi_rules b/dictsource/vi_rules index 2c7eb3e1..e0479fb7 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -79,40 +79,48 @@ ỵ ỵ //================================ .L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge .L02 n - +.L03 t ch nh .group b b b _) b _b //b($w_alt2 _^_EN - + + .group c c g //k c (_ kh - ch c // try [tS;] [tS] [c] + _) ch tS; // try [tS;] [tS] [c] c +?2 _) ch c +?1 _) ch c + ch (_ c ce (_ _^_EN _) cl _^_EN - - - + + + + .group d d J^ // try [z] [J] [dZ] [dZ;] [J^] d (_ _^_EN - - - + + + + .group đ đ d _) đ _d - - - + + + + .group f //f f _) f _^_EN f (_ _^_EN - - + + + .group g g Q // try [g] [Q] gh Q // or [g] [Q] @@ -131,110 +139,134 @@ ỵ ỵ giệc J^'iE6kh _) gol _^_EN _) gat _^_EN - ght (_ _^_EN - - + ght (_ _^_EN + + + .group h h h - - + + + .group j j Z - - + + + .group k k k //k (_ kh kh x k (_ _^_EN - - + + + .group l l l l (_ _^_EN le (_ _^_EN - - + + + .group m m m - - + + + .group n n n ?1 n (_ N //n +?2 n (_ N ng N ngh N nh n^ nd (_ _^_EN - - + + + .group ñ ñ n^ - - + + + .group p p p ph f - - + + + .group q q k q (_ kh qu w //kw - - + + + .group r - r z. // try [z] [z.] [r] [z;] + r z // try [z] [z.] [r] [z;] +?2 r Q +?1 r z. r (_ _^_EN rm (_ _^_EN - - + + + .group s s s. // try [s.] [s] [S] _) sh _^_EN s (_ _^_EN st (_ _^_EN se (_ _^_EN - - + + + .group t t t[ -?1 t (_ g +?1 t (_ kh +?2 t (_ kh th t - tr cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;] + tr tS //cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;] +?1 tr cr +?2 tr c ts (_ _^_EN te (_ _^_EN th (_ _^_EN tt (_ _^_EN - - + + + .group v v v +?2 v J^ ve (_ _^_EN - - + + + .group w w w _) w _^_EN w (_ _^_EN - - + + + .group x x s x (_ _^_EN - - + + + .group z z z z (_ _^_EN - - + + //================================ // Vowels //================================ - - - + + + + .group a a a: ai a:I @@ -244,6 +276,8 @@ ỵ ỵ aĩ a:I5 aị a:I6 ay aI +?2 ay a:I + aỳ aI2 aý aI3 aỷ aI4 @@ -256,6 +290,7 @@ ỵ ỵ aõ a:U5 aọ a:U6 au aU +?2 au a:U aù aU2 aú aU3 aủ aU4 @@ -263,120 +298,145 @@ ỵ ỵ aụ aU6 a (L01 _^_EN ai (L02 _^_EN - - + + + .group à à a:2 ài a:I2 ày aI2 +?2 ày a:I2 + + + + ào a:U2 àu aU2 - - +?2 àu a:U2 + + .group á á a:3 ái a:I3 áy aI3 áo a:U3 áu aU3 - - +?2 áu a:U3 +?2 áy a:I3 + .group ả ả a:4 ải a:I4 ảy aI4 ảo a:U4 ảu aU4 - - +?2 ảu a:U4 +?2 ảy a:I4 + .group ã ã a:5 ãi a:I5 ãy aI5 ão a:U5 ãu aU5 - - +?2 ãu a:U5 +?2 ãy a:I5 + .group ạ ạ a:6 ại a:I6 ạy aI6 ạo a:U6 ạu aU6 - - +?2 ạu a:U6 +?2 ạy a:I6 + //================================ .group ă ă a - - - + + + + .group ằ ằ a2 - - - + + + + .group ắ ắ a3 - - - + + + + .group ẳ ẳ a4 - - - + + + + .group ẵ ẵ a5 - - - + + + + .group ặ ặ a6 - - + + //================================= .group â â @ ây @I âu @U1 - - - +?2 â (L03 a +?1 â (L03 a + + + .group ầ ầ @2 ầy @I2 ầu @U2 - - - +?2 ầ (L03 a2 +?1 ầ (L03 a2 + + + .group ấ ấ @3 ấy @I3 ấu @U3 - - - +?2 ấ (L03 a3 +?1 ấ (L03 a3 + + + .group ẩ ẩ @4 ẩy @I4 ẩu @U4 - - - + + + + .group ẫ ẫ @5 ẫy @I5 ẫu @U5 - - - + + + + .group ậ ậ @6 ậy @I6 ậu @U6 - - +?2 ậ (L03 a6 +?1 ậ (L03 a6 + //=========================== .group e e E @@ -388,76 +448,89 @@ ỵ ỵ eọ EU6 e (L01 _^_EN ey (_ _^_EN - - + + + .group è è E2 èo EU2 - - - + + + + .group é é E3 éo EU3 - - - + + + + .group ẻ ẻ E4 ẻo EU4 - - - + + + + .group ẽ ẽ E5 ẽo EU5 - - - + + + + .group ẹ ẹ E6 ẹo EU6 - - + + //============================ - + + .group ê ê e êu eU1 - - - +?2 ê (L03 @: +?2 ê (L02 @: + + .group ề ề e2 ều eU2 - - - +?2 ề (L03 @:2 +?2 ề (L02 @:2 + + .group ế ế e3 ếu eU3 - - - + +?2 ế (L03 @:3 +?2 ế (L02 @:3 + .group ể ể e4 ểu eU4 - - - +?2 ể (L03 @:4 +?2 ể (L02 @:4 + + .group ễ ễ e5 ễu eU5 - - - +?2 ễ (L03 @:5 +?2 ễ (L02 @:5 + + .group ệ ệ e6 ệu eU6 - - +?2 ệ (L03 @:6 +?2 ệ (L02 @:6 + //============================ - + + .group i i i //i (A j @@ -486,45 +559,60 @@ ỵ ỵ iễu iU5 iệu iU6 i (L01 _^_EN - - +?2 i (L03 @ +?1 i (L03 @ +?2 i (L02 @ + .group ì ì i2 ì (A j2 ìa i@2 ìu iU2 - - +?2 ì (L03 @2 +?1 ì (L03 @2 +?2 ì (L02 @2 + .group í í i3 í (A j3 ía i@3 íu iU3 - - +?2 í (L03 @3 +?1 í (L03 @3 +?2 í (L02 @3 + .group ỉ ỉ i4 ỉ (A j4 ỉa i@4 ỉu iU4 - - +?2 ỉ (L03 @4 +?1 ỉ (L03 @4 +?2 ỉ (L02 @4 + + .group ĩ ĩ i5 ĩ (A j5 ĩa i@5 ĩu iU5 - - +?2 ĩ (L03 @5 +?1 ĩ (L03 @5 +?2 ĩ (L02 @5 + + .group ị ị i6 ị (A j6 ịa i@6 ịu iU6 - - +?2 ị (L03 @6 +?1 ị (L03 @6 +?2 ị (L02 @6 + //========================= - + + .group o o O oa o@ // modify oa sound example: hoa,khoa // o (A w @@ -537,142 +625,165 @@ ỵ ỵ ong O# oe o& // Adding oe sound example: lóe sáng,toét mắt o (L01 _^_EN - - + oai Oi // oai sound + oại Oi6 + oài Oi2 + oái Oi3 + oải Oi4 + oãi Oi5 + + .group ò ò O2 òi OI2 òa o@2 //ò (A w2 òng O#2 òe o&2 - - - + + + + .group ó ó O3 ói OI3 óa o@3 //ó (A w3 óng O#3 óe o&3 - - - + + + + .group ỏ ỏ O4 ỏi OI4 ỏa o@4 //ỏ (A w4 ỏng O#4 ỏe o&4 - - - + + + + .group õ õ O5 õi OI5 õa o@5 //õ (A w5 õng O#5 õe o&5 - - - + + + + .group ọ ọ O6 ọi OI6 ọa o@6 //ọ (A w6 ọng O#6 ọe o&6 - - - + + + //============================= - + + .group ô ô o ôi oI ông o# // ông sound - - +?2 ôi O- //south dialect + + .group ồ ồ o2 ồi oI2 ồng o#2 - - - +?2 ồi O-2 + + + .group ố ố o3 ối oI3 ống o#3 - - - +?2 ối O-3 + + + .group ổ ổ o4 ổi oI4 ổng o#4 - - - +?2 ổi O-4 + + + .group ỗ ỗ o5 ỗi oI5 ỗng o#5 - - - + +?2 ỗi O-5 + + .group ộ ộ o6 ội oI6 ộng o#6 - - - +?2 ội O-6 + + //============================= - + + .group ơ ơ @: ơi @:I ơu @:U - - - +?2 ơi @- //south dialect + + + .group ờ ờ @:2 ời @:I2 ờu @:U2 - - - +?2 ời @-2 + + + .group ớ ớ @:3 ới @:I3 ớu @:U3 - - - +?2 ới @-3 + + + .group ở ở @:4 ởi @:I4 ởu @:U4 - - - +?2 ởi @-4 + + + .group ỡ ỡ @:5 ỡi @:I5 ỡu @:U5 - - - +?2 ỡi @-5 + + + .group ợ ợ @:6 ợi @:I6 ợu @:U6 - - - +?2 ợi @-6 + + //============================= - + + .group u u u u (A w @@ -705,54 +816,60 @@ ỵ ỵ u (L01 _^_EN ui (L01 _^_EN ua (L01 _^_EN - - +?2 u u- + + .group ù ù u2 ù (A w2 ùi uI2 ùa u@2 //ùng u#2 - - - + +?2 ù u-2 + + .group ú ú u3 ú (A w3 úi uI3 úa u@3 //úng u#3 - - - +?2 ú u-3 + + + .group ủ ủ u4 ủ (A w4 ủi uI4 ủa u@4 //ủng u#4 - - - + +?2 ủ u-4 + + .group ũ ũ u5 ũ (A w5 ũi uI5 ũa u@5 //ũng u#5 - - - +?2 ũ u-5 + + + .group ụ ụ u6 ụ (A w6 ụi uI6 ụa u@6 //ụng u#6 - - +?2 ụ u-6 + //============================= - + + .group ư ư y ưi yI @@ -776,50 +893,56 @@ ỵ ỵ ưởu y@w4 ưỡu y@w5 ượu y@w6 - - - + + + + .group ừ ừ y2 ừi yI2 ừa y@2 ừu yw2 - - - + + + + .group ứ ứ y3 ứi yI3 ứa y@3 ứu yw3 - - - + + + + .group ử ử y4 ửi yI4 ửa y@4 ửu yw4 - - - + + + + .group ữ ữ y5 ữi yI5 ữa y@5 ữu yw5 - - - + + + + .group ự ự y6 ựi yI6 ựa y@6 ựu yw6 - - + + //============================= - + + .group y y i // y (A j @@ -836,49 +959,55 @@ ỵ ỵ yễ i@5 yệ i@6 // yêu i@U - + y (L01 _^_EN - + + .group ỳ ỳ i2 ỳ (A j2 ỳa i@2 - - - + + + + .group ý ý i3 ý (A j3 ýa i@3 - - - + + + + .group ỷ ỷ i4 ỷ (A j4 ỷa i@4 - - - + + + + .group ỹ ỹ i5 ỹ (A j5 ỹa i@5 - - - + + + + .group ỵ ỵ i6 ỵ (A j6 ỵa i@6 - - + + //============================= - + + .group 0xce // Greek letters // 0xce is the first byte of the utf-8 code for these characters - - + + α a:1n_|f'a:1 ά a:1n_|f'a:1 β b'e1_|t['a:1 @@ -898,12 +1027,13 @@ ỵ ỵ ν nw'i1 ξ s'i7 ο o1_|m'i1_|kz.'O7n - - - + + + + .group 0xcf // Greek letters - - + + π p'i1 ρ z.'o1 σ s'i3c_|m'a:1 @@ -917,11 +1047,12 @@ ỵ ỵ ω o1_|m'e1_|Q'a:7 ώ o1_|m'e1_|Q'a:7 ό o1_|m'i1_|kz.'O7n - - - - - + + + + + + .group % f'@2n||cr'am ! _:c'@3m_|t'a:7n_: @@ -932,14 +1063,14 @@ ỵ ỵ != x'o#_|_b'a2N_ >= l'@:3n_|h'@:1n_|hw,a6kh_b'a2N <= n^'O4_|h'@:1n_|hw,a6kh_b'a2N - - + + __) - (_D cr'y2 A_) - (_D _ C_) - (_D _ - + . c'@3m_ . (. _: \.) . - - + + diff --git a/espeak-data/mbrola_ph/fr1_phtrans b/espeak-data/mbrola_ph/fr1_phtrans index 72b605c6..dc0fcef7 100644 Binary files a/espeak-data/mbrola_ph/fr1_phtrans and b/espeak-data/mbrola_ph/fr1_phtrans differ diff --git a/espeak-data/voices/!v/m3 b/espeak-data/voices/!v/m3 index 581cd883..00479dc3 100644 --- a/espeak-data/voices/!v/m3 +++ b/espeak-data/voices/!v/m3 @@ -13,4 +13,5 @@ formant 6 100 100 100 formant 7 100 100 100 formant 8 100 100 100 +consonants 100 stressAdd 10 10 0 0 0 0 -30 -30 diff --git a/espeak-data/voices/asia/hy-west b/espeak-data/voices/asia/hy-west index e3cab09e..bf6f5f07 100644 --- a/espeak-data/voices/asia/hy-west +++ b/espeak-data/voices/asia/hy-west @@ -3,6 +3,8 @@ language hy-west language hy 8 gender male +dictrules 1 + // change consonants for West Armenian pronunciation replace 00 b p# replace 00 d t# @@ -16,5 +18,5 @@ replace 00 ts dz replace 00 c dZ replace 00 k g -replace 00 ** R // ?? -replace 00 r R +replace 00 R2 R // ?? + diff --git a/espeak-data/voices/asia/ko b/espeak-data/voices/asia/ko new file mode 100644 index 00000000..74f98ab3 --- /dev/null +++ b/espeak-data/voices/asia/ko @@ -0,0 +1,6 @@ +name Korean +language ko +gender male +pitch 80 118 +intonation 2 + diff --git a/espeak-data/voices/asia/vi-sgn b/espeak-data/voices/asia/vi-sgn new file mode 100644 index 00000000..07c4a12e --- /dev/null +++ b/espeak-data/voices/asia/vi-sgn @@ -0,0 +1,12 @@ +name vietnam_sgn +language vi-sgn +phonemes vi-sgn +dictrules 2 +gender male + +words 1 +pitch 82 118 //80 118 +//breath 75 75 60 40 15 10 + //breathw 150 150 200 200 400 400 + voicing 90 //18 + flutter 20 diff --git a/espeak-data/voices/europe/ga b/espeak-data/voices/europe/ga index 27e5f8b9..30d32e07 100644 --- a/espeak-data/voices/europe/ga +++ b/espeak-data/voices/europe/ga @@ -1,4 +1,4 @@ -name Irish Gaeilge +name irish-gaeilge language ga dictrules 1 // fix for eclipsis diff --git a/espeak-data/voices/other/en-n b/espeak-data/voices/other/en-n index 7f8ef32a..755bf5f7 100644 --- a/espeak-data/voices/other/en-n +++ b/espeak-data/voices/other/en-n @@ -1,4 +1,4 @@ -name lancashire +name english-north language en-uk-north language en-uk 3 language en 5 @@ -10,6 +10,6 @@ stressLength 160 150 180 180 220 220 290 290 replace 00 i@3 i@ replace 03 N n -//replace 03 I i -//replace 03 I2 i +replace 03 i I2 + diff --git a/espeak-data/voices/pt b/espeak-data/voices/pt index 64a073d6..10d62711 100644 --- a/espeak-data/voices/pt +++ b/espeak-data/voices/pt @@ -4,4 +4,5 @@ language pt gender male dictrules 2 +stressLength 200 115 230 230 0 0 250 270 diff --git a/espeak-data/voices/test/az b/espeak-data/voices/test/az new file mode 100644 index 00000000..6fdf3827 --- /dev/null +++ b/espeak-data/voices/test/az @@ -0,0 +1,3 @@ +name azerbaijani-test +language az + diff --git a/phsource/envelopes.png b/phsource/envelopes.png index aac09caa..5876f8bc 100644 Binary files a/phsource/envelopes.png and b/phsource/envelopes.png differ diff --git a/phsource/intonation b/phsource/intonation index 8bc10510..072c66ba 100644 --- a/phsource/intonation +++ b/phsource/intonation @@ -16,7 +16,16 @@ nucleus0 fall-rise 80 18 nucleus fall-rise2 78 22 34 52 endtune -tune q1 +tune q1 // small change for version 1.47.05 +prehead 45 56 +headenv fall 16 +head 3 75 43 -7 0 +headextend 20 60 35 11 0 +nucleus0 fall-rise 89 21 +nucleus fall-rise2 86 21 34 68 +endtune + +tune q1a // previous version prehead 46 57 headenv fall 16 head 4 75 43 -7 0 diff --git a/phsource/mbrola/fr1 b/phsource/mbrola/fr1 index 8a06e133..58553a08 100644 --- a/phsource/mbrola/fr1 +++ b/phsource/mbrola/fr1 @@ -1,3 +1,4 @@ +volume 17 0 l/2 NULL 0 l 0 l/ NULL 0 l @@ -10,7 +11,6 @@ 0 j/ NULL 0 j 0 ; NULL 0 NULL 0 g- NULL 0 NULL -0 @- NULL 0 NULL 0 @3 NULL 0 NULL 0 * NULL 0 R 0 : NULL 0 NULL @@ -43,6 +43,7 @@ 0 z2 NULL 0 z 0 z3 NULL 0 z +0 @- NULL 0 @ 0 a- NULL 0 a 0 e- NULL 0 e 0 y- NULL 0 y diff --git a/phsource/ph_azerbaijani b/phsource/ph_azerbaijani index 4acc8485..42e3cac9 100644 --- a/phsource/ph_azerbaijani +++ b/phsource/ph_azerbaijani @@ -1,19 +1,22 @@ phoneme i vowel starttype #i endtype #i - length 160 + length 180 FMT(vowel/ii_5) endphoneme phoneme e vowel starttype #e endtype #e - length 160 + length 200 FMT(vowel/e_mid2) endphoneme phoneme & vowel starttype #e endtype #e - length 160 + length 200 + IF thisPh(isWordEnd) THEN + FMT(vowel/&_3) + ENDIF FMT(vowel/&) endphoneme @@ -25,32 +28,35 @@ endphoneme phoneme W vowel starttype #@ endtype #@ - length 180 + length 200 FMT(vowel/y#_2) endphoneme phoneme u vowel starttype #u endtype #u - length 160 - FMT(vowel/u_5) + length 180 + FMT(vowel/u_2) endphoneme phoneme o vowel starttype #o endtype #o - length 160 - FMT(vowel/o_mid) + length 200 + FMT(vowel/o_mid2) endphoneme phoneme a vowel starttype #a endtype #a length 200 - FMT(vowel/aa) + IF thisPh(isWordEnd) THEN + FMT(vowel/a#) + ENDIF + FMT(vowel/aa_9) endphoneme phoneme @ vowel starttype #@ endtype #@ ipa ɯ - length 160 + length 180 FMT(vowel/u#_7) endphoneme diff --git a/phsource/ph_base2 b/phsource/ph_base2 index a77bacfd..26f1126f 100644 --- a/phsource/ph_base2 +++ b/phsource/ph_base2 @@ -7,7 +7,7 @@ phoneme a vowel starttype #a endtype #a - length 180 + length 190 IF thisPh(isDiminished) THEN ChangePhoneme(a/) FMT(vowel/a#) @@ -18,28 +18,28 @@ endphoneme phoneme a/ vowel starttype #@ endtype #@ - length 180 + length 190 FMT(vowel/a#) endphoneme phoneme e vowel starttype #e endtype #e - length 170 + length 180 FMT(vowel/e) endphoneme phoneme E vowel starttype #e endtype #e - length 170 + length 180 FMT(vowel/ee_1) endphoneme phoneme i vowel starttype #i endtype #i - length 150 + length 170 IfNextVowelAppend(;) FMT(vowel/i) endphoneme @@ -47,42 +47,42 @@ endphoneme phoneme o vowel starttype #o endtype #o - length 170 + length 180 FMT(vowel/o) endphoneme phoneme O vowel starttype #o endtype #o - length 170 + length 180 FMT(vowel/oo_4) endphoneme phoneme u vowel starttype #u endtype #u - length 160 + length 180 FMT(vowel/u_bck) endphoneme phoneme U vowel starttype #u endtype #u - length 160 + length 180 FMT(vowel/uu_2) endphoneme phoneme y vowel starttype #i endtype #i - length 160 + length 180 FMT(vowel/y) endphoneme phoneme Y vowel starttype #@ endtype #@ - length 160 + length 180 FMT(vowel/y#) endphoneme diff --git a/phsource/ph_bengali b/phsource/ph_bengali index f7863016..abd9c057 100644 --- a/phsource/ph_bengali +++ b/phsource/ph_bengali @@ -17,8 +17,11 @@ phoneme V // inherent vowel, can be [O] or [o] ChangePhoneme(o) ENDIF - IF prevPhW(r) THEN - ChangePhoneme(o) + IF prevPhW(r) AND nextVowel(isVowel) THEN + IF nextVowel(isWordEnd) AND nextVowel(V) THEN + ELSE + ChangePhoneme(o) + ENDIF ENDIF ENDIF diff --git a/phsource/ph_danish b/phsource/ph_danish index bd92210e..16791eb1 100644 --- a/phsource/ph_danish +++ b/phsource/ph_danish @@ -8,113 +8,213 @@ // AC + @- OR V: Long "pile" [pi:l@-] // AC[i]: Long "smidig" [smi:Di] -// Change the length of short vowels (?+vowel) +// Change the length of SHORT vowels (?+vowel) procedure ShortVowelLength -// "endelig" - Short initial vowel sounds too short -IF thisPh(isWordStart) THEN - length 160 - RETURN -ENDIF -// "slutte" t/d + @- makes the u too long -IF next2PhW(@-) THEN - IF nextPhW(t) OR nextPhW(d) THEN - //length 100 - LengthAdd -50 +// "endelig", "ånder" - Short initial vowel sounds too short TEST + IF thisPh(isWordStart) AND nextPhW(n) THEN + IF next2PhW(@-) OR next2PhW(V) THEN + length 160 + RETURN + ENDIF + ENDIF +// "slutte" t/d + @- makes the vowel too long +// Problem with compounds like "spildedamp" + IF next2PhW(@-) OR next2PhW(V) THEN + IF nextPhW(t) OR nextPhW(d) THEN +// length 100 + LengthAdd -45 // Don't shorten it further if it comes after an "r" sound // Exit the procedure - RETURN - ENDIF -ENDIF -// "bygget" - consonant + [@-D] makes the vowel too long -IF next2PhW(@-) THEN - IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN - LengthAdd -50 - // Don't shorten it further if it comes after an "r" sound ("brygget") - // Exit the procedure - RETURN - ENDIF -ENDIF + RETURN + ENDIF + ENDIF +// "bygget", "byggede" - consonant + [@-D] makes the vowel too long + IF next2PhW(@-) THEN + IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN + IF thisPh(isFirstVowel) THEN // NOT "cellof'anet" + IF NOT thisPh(?V) THEN // NOT "fjollet" + LengthAdd -40 + // Don't shorten it further if it comes after an "r" sound ("brygget") + // Exit the procedure + RETURN + ENDIF + ENDIF + ENDIF + ENDIF // "bygger" - consonant + [V] makes the vowel too long -IF nextPhW(isNotVowel) AND next2PhW(V) THEN - LengthAdd -50 + IF nextPhW(isNotVowel) AND next2PhW(V) THEN + IF NOT thisPh(isWordStart) THEN // NOT "eller" +// LengthAdd -45 // Don't shorten it further if it comes after an "r" sound ("brygger") // Exit the procedure - RETURN -ENDIF + RETURN + ENDIF + ENDIF // "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long - IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN // length 100 - LengthAdd -50 - ENDIF -// "ring", "ringe", "fængsel" - IF nextPhW(N) THEN + LengthAdd -40 + RETURN + ENDIF +// "ring", "ringe", "fængsel", "spinkel", "vindspejl" + IF nextPhW(isNasal) THEN // length 100 - LengthAdd -10 - ENDIF -// "sigte" t/d + @- makes the vowel too long - IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN - IF next3PhW(@-) THEN + LengthAdd -30 + RETURN + ENDIF +// "sigte", "bælte", "henter" t/d + @-/V makes the vowel too long + IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN + IF next3PhW(@-) OR next3PhW(V) THEN + IF thisPh(isFirstVowel) THEN // NOT [i] in "forsp'ildte" // length 100 - LengthAdd -50 - ENDIF - ENDIF + LengthAdd -30 + ENDIF + ENDIF + ENDIF +// "forbandelse" [n@-] makes the vowel too long? +// nasal eg: m, n, N + IF nextPhW(isNasal) AND next2PhW(@-) THEN + IF NOT thisPh(isFirstVowel) AND thisPh(isStressed) THEN + // NOT LengthAdd since [R] might have shortend the vowel above + length 100 + ENDIF + ENDIF +// "himlen" l/3 makes the vowel too long + IF nextPhW(isNotVowel) AND next2PhW(l/3) AND next3PhW(@-) OR next3PhW(V) THEN + length 100 + ENDIF +// "lænkerne" l/3 makes the vowel too long + IF prevPh(l/3) AND nextPhW(isNotVowel) AND next3PhW(V) THEN + length 120 + ENDIF +//"musikken" consonant + [@-n] makes the vowel too long +// Probably wrong. Only k? + IF nextPhW(k) AND next2PhW(@-) AND next3PhW(n) THEN + length 100 + ENDIF +//"svælge" [svElj@-] vowel + 2 consonants but length 100 is too short + IF nextPhW(isNotVowel) AND next2PhW(j) THEN + length 140 + ENDIF endprocedure -// Change the length of normal vowels (without ? in front of them) +// Change the length of NORMAL vowels (without ? in front of them) procedure LongVowelLength -// "alene" - Short initial vowel sounds too short at length 140 -IF thisPh(isWordStart) THEN - length 160 - RETURN -ENDIF -// "forlade" - [D@-] makes the vowel too long -IF nextPhW(D) AND next2PhW(@-) THEN - length 180 - RETURN -ENDIF -// PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] - IF nextPhW(@-) OR nextPhW(V) THEN - length 225 - ENDIF -// PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] - IF nextPhW(isNotVowel) AND next2PhW(i) THEN - length 225 - ENDIF -// "ræve", "dele", "mene", "røve", "møve" -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN - length 225 -ENDIF -// "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants - IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN - // Don't make "møve" [m'Ww_!@-_!] short - IF NOT next2PhW(_!) THEN - length 140 - ENDIF - ENDIF -// "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long - IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN - IF next2PhW(@-) OR next2PhW(V) THEN -// length 180 - LengthAdd -70 +// "guldmine" [ul/3] makes the vowel extremely short + IF prevVowel(u) AND prev2PhW(l/3) THEN + length 350 + RETURN ENDIF - ENDIF - // "syste", "sylte" t/d/D + @- makes the vowel too long - // "international", - added [V] TEST - IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) OR next2PhW(D) THEN - IF next3PhW(@-) OR next3PhW(V) THEN +// "guldur" [ul/3] makes the vowel extremely short + IF prevVowel(u) AND prevPhW(l/3) THEN + IF NOT thisPh(isWordEnd) THEN // NOT "umulig" + length 325 + RETURN + ENDIF + ENDIF +// "alene" - Short initial vowel sounds too short at length 140 + IF thisPh(isWordStart) THEN + length 160 +// "ønske" The vowel should have been made short becauce og 2 x consonant. +// Take care of it here + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(isNotVowel) THEN + length 140 + ENDIF +// "ære" + IF nextPhW(V) AND nextPhW(isFinalVowel) THEN + length 240 + ENDIF + RETURN + ENDIF +// "huske" - hACC@- vowel too long + IF prevPhW(h) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(@-) THEN length 110 - ENDIF - ENDIF -// "glimrende" [l/3] makes the following vowel too long + RETURN + ENDIF +// PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] + IF nextPhW(@-) OR nextPhW(V) THEN + length 225 + ENDIF +// PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] + IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 225 + ENDIF +// "dele", "mene", "møve" + IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN + length 225 + ENDIF +// "sveder", "deler" + IF nextPhW(isNotVowel) AND next2PhW(V) THEN + length 225 + ENDIF +// "maskinen" consonant + [@-n]: vowel too long + IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(n) THEN + length 160 + ENDIF +// "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + // Don't make "møve" [m'Ww_!@-_!] short + IF NOT next2PhW(_!) THEN + length 140 + ENDIF + ENDIF +// "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + IF NOT thisPh(V) AND next2PhW(@-) OR next2PhW(V) THEN + length 140 + ENDIF + ENDIF +// "føden" + IF nextPhW(D) AND next2PhW(@-) AND next3PhW(n) THEN + length 180 + ENDIF +// "glimrende", "glemte" [l/3] makes the following vowel too long // LengthAdd doesn't work here. The length could be 225 or 140 - 30 - IF prevPhW(l/3) THEN -// LengthAdd -30 - length 110 - ENDIF + IF prev2PhW(g) AND prevPhW(l/3) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 110 + RETURN + ENDIF +// l/3 makes the vowel too long (+ voiced?) +// isVoiced = b, d, g, v, z + IF prevPhW(l/3) AND nextPhW(isVoiced) THEN + // "klub", "klud" + // The vowel should have been short but we fix it here + IF NOT next2PhW(@-) AND NOT next2PhW(V) THEN + length 100 + ELSE + // "slæde", "lader" + length 160 + ENDIF + ENDIF // "længe" - short - 2 consonants => 1 consonant (ng => [N]) -IF nextPhW(N) THEN - length 140 -ENDIF + IF nextPhW(isNasal) THEN + IF NOT prevPhW(R) AND NOT prevPhW(r) AND NOT prevPhW(3-) THEN + length 140 + // "omkring", "ring" - both prev. N and next R + ELIF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN + length 110 + ENDIF + ENDIF +// "buskene", "krøbling" The vowel should have been made short becauce og 2 x consonant. +// Take care of it here + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + IF NOT nextPhW(l/3) THEN + IF NOT nextPhW(r) AND NOT prevPhW(R) AND NOT prevPhW(3-) THEN // NOT "Maria" + length 110 + ENDIF + ENDIF + ENDIF +// "barnet" - consonant + [@-D]: too long vowel + IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(D) THEN + length 160 + ENDIF +// "trin", "trit", "ring" - vowel too long +// IF prevPhW(isRhotic) THEN + IF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN + IF nextPhW(isNotVowel) AND nextPhW(isWordEnd) THEN + length 110 + ENDIF + ENDIF endprocedure // A bit longer than [@-] @@ -167,22 +267,6 @@ endphoneme phoneme i vowel starttype #i endtype #i length 140 -// Long vowel followed by consonant and @- "gide", "pile" -IF nextPhW(isNotVowel) AND next2PhW(@-) THEN -// length 225 -ENDIF -// "gider", vrider" -IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN - length 140 -ENDIF -//"skider" short -IF nextPhW(D) AND next2PhW(V) THEN - length 140 -ENDIF -//"skideren" long -IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN - length 225 -ENDIF CALL LongVowelLength FMT(vowel/i_4) endphoneme @@ -209,7 +293,7 @@ phoneme e vowel starttype #e endtype #e length 140 CALL LongVowelLength - CALL ShortVowelLength +// CALL ShortVowelLength FMT(vowel/e) endphoneme @@ -257,7 +341,7 @@ endphoneme phoneme & vowel starttype #e endtype #e - ipa æ + ipa a length 140 // "same", "sale", "bade" - consonant + @-: long // but NOT "hinanden" @@ -279,8 +363,10 @@ endphoneme // e.g. the last a in "staldkarl" // "sale" vs. "sal" phoneme ?& +ipa a vowel starttype #e endtype #e length 140 + CALL ShortVowelLength FMT(vowel/ee_2) endphoneme @@ -298,6 +384,7 @@ endphoneme // "revl" vs. "tremme" phoneme ?&# vowel starttype #e endtype #e + ipa ?a length 140 CALL ShortVowelLength FMT(vowel/&) @@ -372,11 +459,11 @@ phoneme O ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ // "sove", "sover" - consonant + @ or V: long IF next2PhW(@-) OR next2PhW(V) THEN - length 225 +// length 225 ENDIF // PB "gået" - ThisPh + V or @- IF nextPhW(V) OR nextPhW(@-) THEN - length 225 +// length 225 ENDIF // "såre", "sårede" [s'O:?OD@-] IF nextPhW(O) OR nextPhW(?O) THEN @@ -391,6 +478,7 @@ endphoneme phoneme ?O vowel starttype #o endtype #o length 140 + CALL ShortVowelLength FMT(vowel/o_5) endphoneme @@ -406,6 +494,7 @@ endphoneme phoneme ?V vowel starttype #@ endtype #@ length 140 + CALL ShortVowelLength FMT(vowel/V_4) endphoneme @@ -416,34 +505,19 @@ phoneme 0 FMT(vowel/oo_2) endphoneme -// Short 0 "sukker" +// Short 0 "sukker", "provst" phoneme ?0 vowel starttype #o endtype #o length 140 ipa ɔ + CALL ShortVowelLength FMT(vowel/oo_2) endphoneme phoneme y vowel starttype #i endtype #i length 140 -// PB long vowel followed by consonant and certain vowels -// "gyde", "gyder" -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN - // not "gebyret" TEST - IF NOT nextPhW(3-) AND NOT nextPhW(R) AND NOT nextPhW(r) THEN - length 225 - ENDIF -ENDIF -// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] -IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN - length 225 -ENDIF -// "tyve" -IF nextPhW(w) AND next2PhW(@-) THEN - length 225 -ENDIF -CALL LongVowelLength + CALL LongVowelLength FMT(vowel/y) endphoneme @@ -468,15 +542,7 @@ endphoneme phoneme W vowel starttype #@ endtype #@ length 140 -// "røveri" but NOT "surfer" [sWfV] TEST -IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN - length 140 -ENDIF -// "børnebog" - short -IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN - length 140 -ENDIF -CALL LongVowelLength + CALL LongVowelLength FMT(vowel/oe) endphoneme @@ -492,11 +558,8 @@ endphoneme // Added for the ø in "røv", "røg", "øje" instead of [V3] phoneme W# vowel starttype #@ endtype #@ - length 140 //225 -// PB long vowel followed by consonant and certain vowels -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN - length 225 -ENDIF + length 140 +CALL LongVowelLength FMT(vowel/V) endphoneme @@ -540,7 +603,7 @@ phoneme l lengthmod 7 // [ll] => [-l] - avoid double l IF nextPhW(l) THEN -// ChangePhoneme(-) +// ChangePhoneme(NULL) ENDIF ChangePhoneme(l/3) // CALL base/l @@ -565,6 +628,10 @@ phoneme r // used for 'r' after a vowel (to create a diphthong) IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN ChangePhoneme(R) ENDIF +// "generer" [Sen'e:Vr], "mysterier" - delete the r + IF prevPhW(V) AND thisPh(isWordEnd) THEN + ChangePhoneme(NULL) + ENDIF FMT(r/a_) endphoneme @@ -637,7 +704,7 @@ IF thisPh(isWordEnd) THEN ENDIF IF nextPhW(isVowel) THEN NextVowelStarts - VowelStart(j/j@) + VowelStart(j/j@,-45) // jøderne VowelStart(j/ja) VowelStart(j/je,-35) VowelStart(j/ji) @@ -655,4 +722,5 @@ Vowelout len=70 Vowelout len=70 FMT(j/j_) ENDIF -endphoneme \ No newline at end of file +endphoneme + diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 760ede5e..e1449dce 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -263,8 +263,8 @@ endphoneme phoneme OI vowel starttype #o endtype #i - length 280 - FMT(vdiph/ooi_4) + length 270 + FMT(vdiph/ooi_3) endphoneme diff --git a/phsource/ph_hindi b/phsource/ph_hindi index 461bbb44..f922c77b 100644 --- a/phsource/ph_hindi +++ b/phsource/ph_hindi @@ -13,7 +13,7 @@ phoneme @ length 130 ChangeIfDiminished(@-) - IF nextPh(H) THEN + IF nextPh(H) OR prevPh(H) THEN FMT(vowel/@_low) ENDIF FMT(vowel/@_bck) @@ -24,6 +24,11 @@ phoneme V vowel flag1 starttype #@ endtype #@ length 130 + IF thisPh(isWordStart) THEN + FMT(vowel/V_3) + RETURN + ENDIF + IF thisPh(isNotStressed) THEN IF prevPh(H) THEN ChangePhoneme(@) @@ -33,15 +38,11 @@ phoneme V ChangePhoneme(NULL) ENDIF - IF NOT nextVowel(isFlag1) THEN - IF thisPh(isSeqFlag1) THEN - // delete the last inherent vowel of a sequence - ChangePhoneme(NULL) + IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN + IF nextPhW(isNotVowel) AND nextPh(isWordEnd) THEN + // don't delete schwa before a word-final consonant ELSE - IF NOT thisPh(isFirstVowel) THEN - // delete if not the first vowel, and is an isolated 'a' - ChangePhoneme(NULL) - ENDIF + ChangePhoneme(NULL) ENDIF ENDIF ENDIF @@ -55,7 +56,7 @@ phoneme V ChangePhoneme(@) ENDIF - IF nextPh(H) THEN + IF nextPh(H) OR prevPh(H) THEN FMT(vowel/@_low) ENDIF ENDIF @@ -135,6 +136,9 @@ endphoneme phoneme a: vowel long starttype #a endtype #a length 190 + IF nextPhW(j) THEN + FMT(vowel/a_5) + ENDIF FMT(vowel/aa_9) endphoneme @@ -208,25 +212,25 @@ endphoneme phoneme E~ vowel long starttype #e endtype #e - length 230 + length 220 FMT(vnasal/ee_n2) endphoneme phoneme a~ vowel long starttype #a endtype #a - length 250 - FMT(vnasal/aa_n) + length 220 + FMT(vnasal/&_n) endphoneme phoneme V~ vowel long starttype #@ endtype #@ - length 250 + length 220 FMT(vnasal/V_n) endphoneme phoneme O~ vowel long starttype #o endtype #o - length 230 + length 220 FMT(vnasal/oo_n2) endphoneme @@ -244,7 +248,7 @@ endphoneme phoneme u~ vowel long starttype #u endtype #u - length 230 + length 220 FMT(vnasal/u_n) endphoneme @@ -513,3 +517,22 @@ phoneme #X2 // click, use for indicating combining long vowels endphoneme +phoneme r + liquid rhotic + lengthmod 3 + + IF thisPh(isWordEnd) THEN + CALL base/r/ + ELSE + IF prevPhW(isVowel) THEN + IF nextPhW(isNotVowel) OR nextPhW(V) THEN + ChangePhoneme(*) + ENDIF + ENDIF + + CALL base/r + ENDIF + ipa ɾ +endphoneme + + \ No newline at end of file diff --git a/phsource/ph_portugal b/phsource/ph_portugal index 5635da19..762663b2 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -113,7 +113,7 @@ endphoneme phoneme U vowel starttype #u endtype #u length 130 - IF nextPh(isVowel) THEN + IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN ChangePhoneme(w) ENDIF FMT(vowel/u_6) diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index 2d86b1c9..82769f42 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -135,7 +135,7 @@ endphoneme phoneme U vowel starttype #u endtype #u length 140 - IF thisPh(isWordEnd) AND nextPh(isVowel) THEN + IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN ChangePhoneme(w) ENDIF FMT(vowel/uu_bck) diff --git a/phsource/ph_spanish b/phsource/ph_spanish index 702dd86e..10b3eaf6 100644 --- a/phsource/ph_spanish +++ b/phsource/ph_spanish @@ -6,44 +6,44 @@ phoneme a vowel starttype #a endtype #a - length 180 + length 200 FMT(vowel/a_4) endphoneme phoneme e vowel starttype #e endtype #e - length 190 + length 200 FMT(vowel/e_mid2) endphoneme phoneme E vowel starttype #e endtype #e - length 190 + length 200 FMT(vowel/e_mid2) endphoneme phoneme i vowel starttype #i endtype #i - length 170 + length 190 IfNextVowelAppend(;) FMT(vowel/i) endphoneme phoneme o vowel starttype #o endtype #o - length 190 + length 200 FMT(vowel/oo) endphoneme phoneme O vowel starttype #o endtype #o - length 190 + length 200 FMT(vowel/oo) endphoneme phoneme u vowel starttype #u endtype #u - length 180 + length 200 FMT(vowel/u_bck2) endphoneme @@ -107,11 +107,16 @@ phoneme D voicingswitch T CALL base/D IF nextPh(isPause2) THEN - FMT(voc/dh_) addWav(vocw/dh, 40) // weaker + FMT(voc/dh_) addWav(vocw/dh, 35) // weaker ENDIF endphoneme +phoneme t // dental variant of /t/ + import_phoneme base/t[ +endphoneme + + phoneme s vls alv frc sibilant lengthmod 3 diff --git a/phsource/ph_turkish b/phsource/ph_turkish index 596401fd..424d6ce5 100644 --- a/phsource/ph_turkish +++ b/phsource/ph_turkish @@ -2,7 +2,7 @@ phoneme i vowel starttype #i endtype #i - length 150 + length 180 IF thisPh(isTranslationGiven) THEN // don't reduce the vowel if phonemes are explicitly given ELSE @@ -18,14 +18,14 @@ endphoneme phoneme I vowel starttype #i endtype #i - length 150 + length 180 FMT(vowel/ii_5) endphoneme phoneme y vowel starttype #u endtype #u - length 155 + length 180 IF thisPh(isTranslationGiven) THEN // don't reduce the vowel if phonemes are explicitly given ELSE @@ -41,7 +41,7 @@ endphoneme phoneme Y vowel starttype #u endtype #u - length 155 + length 180 FMT(vowel/u#) endphoneme @@ -49,10 +49,16 @@ endphoneme phoneme e vowel starttype #e endtype #e - length 180 + length 200 IF thisPh(isTranslationGiven) THEN // don't reduce the vowel if phonemes are explicitly given ELSE + IF nextPh(isWordEnd) OR next2PhW(isNotVowel) THEN + IF nextPh(isRhotic) OR nextPh(isNasal) OR nextPh(l) OR nextPh(L) THEN + ChangePhoneme(&) + ENDIF + ENDIF + IF thisPh(isFinalVowel) THEN ChangePhoneme(E) ENDIF @@ -65,21 +71,27 @@ endphoneme phoneme E vowel starttype #e endtype #e - length 180 + length 200 FMT(vowel/e_mid) endphoneme +phoneme & + vowel starttype #a endtype #a + length 200 + FMT(vowel/ee_6) +endphoneme + phoneme W vowel starttype #@ endtype #@ - length 180 + length 200 FMT(vowel/y#) endphoneme phoneme a vowel starttype #a endtype #a - length 190 + length 200 FMT(vowel/a#_4) endphoneme @@ -87,7 +99,7 @@ endphoneme phoneme u vowel starttype #u endtype #u - length 150 + length 180 IF thisPh(isTranslationGiven) THEN // don't reduce the vowel if phonemes are explicitly given ELSE @@ -103,7 +115,7 @@ endphoneme phoneme U vowel starttype #u endtype #u - length 150 + length 180 FMT(vowel/uu_2) endphoneme @@ -111,7 +123,7 @@ endphoneme phoneme @ vowel starttype #@ endtype #@ ipa ɯ - length 150 + length 180 FMT(vowel/u#_7) endphoneme @@ -119,7 +131,7 @@ endphoneme phoneme o vowel starttype #o endtype #o - length 190 + length 200 IF thisPh(isTranslationGiven) THEN // don't reduce the vowel if phonemes are explicitly given ELSE @@ -135,7 +147,7 @@ endphoneme phoneme O vowel starttype #o endtype #o - length 190 + length 200 FMT(vowel/oo) endphoneme @@ -179,12 +191,20 @@ phoneme J endphoneme -phoneme l -import_phoneme en/l -endphoneme - phoneme G import_phoneme en/r/ lengthmod 7 endphoneme + +phoneme R + vcd alv flp rhotic + IF prevPhW(isVowel) AND nextPhW(isVowel) THEN + CALL base/* +// ELIF prevPhW(isNotVowel) THEN +// CALL base/R + ELSE + CALL base/r + ENDIF + ipa ɾ +endphoneme diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 52a9e567..95ddc9c6 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -18,13 +18,13 @@ endphoneme phoneme 3 // sắc Tone(rising stress - Tone(25, 50, envelope/p_rise, NULL) // 25 + Tone(30, 60, envelope/p_rise, NULL) // 25 50 endphoneme phoneme 4 // hỏi Tone(curve (dipping rising) stress - Tone(30, 5, envelope/p_fallrise, NULL) + Tone(40, 5, envelope/p_fallrise, NULL) //30 endphoneme @@ -54,33 +54,33 @@ endphoneme phoneme a vowel starttype #@ endtype #@ - length 120 + length 140 FMT(vowel/a_6) //a_4) endphoneme phoneme a: vowel starttype #a endtype #a - length 200 //280 - FMT(vietnam/a) //FMT(vowel/a_6) + length 240 //280 + FMT(vowel/a_8) endphoneme phoneme E vowel starttype #e endtype #e - length 200 + length 240 FMT(vowel/ee_3) endphoneme phoneme e vowel starttype #e endtype #e - length 200 + length 140 FMT(vowel/e) endphoneme phoneme i vowel starttype #i endtype #i - length 190 + length 240 IfNextVowelAppend(;) IF prevPhW(w) THEN VowelStart(w/wi) @@ -100,7 +100,7 @@ phoneme O ELSE length 200 ENDIF - FMT(vowel/aa_4) + FMT(vowel/0_2) //aa_4) endphoneme phoneme o @@ -110,7 +110,7 @@ phoneme o ELSE length 200 ENDIF - FMT(vowel/o_2) + FMT(vowel/o) // o_2) endphoneme @@ -119,9 +119,9 @@ phoneme u IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound length 120 ELSE - length 200 + length 240 ENDIF - FMT(vnasal/u_n) //vowel/u_7) + FMT(vowel/u_5) endphoneme phoneme y @@ -129,7 +129,7 @@ phoneme y IF nextPh(kh) OR nextPh(N) THEN length 120 ELSE - length 200 + length 180 ENDIF FMT(vowel/u#_5) endphoneme @@ -138,10 +138,10 @@ endphoneme phoneme @ vowel starttype #@ endtype #a - IF nextPh(kh) OR nextPh(N) THEN + IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN length 120 ELSE - length 170 + length 200 ENDIF FMT(vowel/V) //vowel/@_2) endphoneme @@ -149,7 +149,7 @@ endphoneme phoneme @: vowel starttype #@ endtype #@ - length 280 + length 200 FMT(vowel/@_2) endphoneme @@ -160,8 +160,8 @@ endphoneme phoneme aI vowel starttype #a endtype #i - length 200 //250 - FMT(vdiph/&y) + length 140 //250 + FMT(vdiph/&i_2) endphoneme @@ -188,14 +188,14 @@ endphoneme phoneme eI vowel starttype #e endtype #i - length 200 + length 140 FMT(vdiph/ei) endphoneme phoneme EI vowel starttype #e endtype #i - length 200 + length 140 FMT(vdiph/eei) endphoneme @@ -203,7 +203,7 @@ endphoneme phoneme OI vowel starttype #o endtype #i length 200 - FMT(vdiph/0i) + FMT(vdiph/ooi_3) endphoneme @@ -231,14 +231,14 @@ endphoneme phoneme aU vowel starttype #a endtype #u - length 210 + length 200 FMT(vdiph/aau_4) endphoneme phoneme a:U vowel starttype #a endtype #u - length 230 //270 + length 200 //270 FMT(vdiph/au) endphoneme @@ -258,19 +258,19 @@ endphoneme phoneme iU vowel starttype #i endtype #u - length 200 + length 140 FMT(vdiph2/iu) endphoneme phoneme @U vowel starttype #@ endtype #u - length 200 + length 140 FMT(vdiph/@u_3) endphoneme phoneme @:U vowel starttype #@ endtype #u - length 270 + length 140 FMT(vdiph/@u) endphoneme @@ -278,19 +278,19 @@ endphoneme phoneme i@ vowel starttype #i endtype #@ - length 240 + length 140 FMT(vdiph2/ii@_3) endphoneme phoneme y@ vowel starttype #i endtype #@ - length 200 + length 140 FMT(vdiph2/y-y#) endphoneme phoneme u@ vowel starttype #u endtype #@ - length 150 //200 + length 100 //200 FMT(vdiph2/uu@) endphoneme @@ -298,39 +298,67 @@ endphoneme phoneme o# // ông vowel starttype #o endtype #o - length 200 + length 140 FMT(vnasal/a#u_n) endphoneme phoneme O# // ong vowel starttype #o endtype #o - length 200 + length 140 FMT(vnasal/&u_n) endphoneme phoneme o@ vowel starttype #o endtype #o - length 160 + length 140 FMT(vdiph2/oa) endphoneme phoneme o& vowel starttype #o endtype #o - length 160 + length 140 FMT(vietnam/oe) endphoneme phoneme iE // iê : viết, giệc vowel starttype #i endtype #e - length 190 + length 140 FMT(vietnam/ie_2) endphoneme +phoneme Oi // oai sound + vowel starttype #o endtype #i + length 140 + FMT(vdiph/ooi_3) +endphoneme + +// Vowel and Dipthong for south dialect + +phoneme O- // ôi southern sound + vowel starttype #o endtype #i + length 150 + FMT(vnasal/oi_n) +endphoneme + +phoneme @- // ơi southern sound + vowel starttype #o endtype #i + length 150 + FMT(vdiph/@i_3) +endphoneme + +phoneme u- // u southern sound + vowel starttype #u endtype #u + length 150 + FMT(vowel/u_3,70) +endphoneme + + + phoneme kh vls vel frc lengthmod 3 - Vowelin f1=0 f2=2300 200 400 f3=200 80 + Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 WAV(vietnam/_c,5) //ufric/x, 50) endphoneme @@ -338,11 +366,11 @@ endphoneme phoneme l liquid - lengthmod 7 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30 + //lengthmod 7 //IF nextPh(isNotVowel) THEN // ChangePhoneme(l/2) //ENDIF - //CALL vowelstart_l FMT(l/l_vi) @@ -352,7 +380,7 @@ phoneme t vls alv stop //voicingswitch d lengthmod 2 - Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(vietnam/th, 50) @@ -362,7 +390,7 @@ phoneme cr vls pla afr sibilant //voicingswitch dZ lengthmod 2 - Vowelin f1=0 f2=2300 200 400 f3=-100 80 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=30 WAV(vietnam/tr,10) @@ -370,10 +398,10 @@ endphoneme phoneme d vcd alv stop - lengthmod 5 + // lengthmod 5 - Vowelin f1=1 f2=1700 -300 300 f3=-100 80 - Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=30 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 WAV(vietnam/dd) endphoneme @@ -381,9 +409,9 @@ WAV(vietnam/dd) vls pal stop palatal //voicingswitch J lengthmod 2 - length 75 - Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 - Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1 + length 2 + Vowelin f1=0 f2=2700 400 600 f3=300 80 len=30 brk + Vowelout f1=1 f2=2700 400 600 f3=200 70 len=30 colr=1 WAV(vietnam/ch,5) @@ -402,18 +430,20 @@ endphoneme phoneme n vcd alv nasal - Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 - Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 brk len=30 + Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk len=30 lengthmod 4 -FMT(n/n#_) + length 75 +FMT(n/nr_) endphoneme phoneme t[ // dental variant of /t/ vls dnt stop voicingswitch d[ lengthmod 2 - Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 - Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 + length 5 + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=30 + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=30 IF nextPh(isPause2) THEN WAV(ustop/t_unasp2, 5) diff --git a/phsource/ph_vietnam_hue b/phsource/ph_vietnam_hue index 373364b0..ee843f33 100644 --- a/phsource/ph_vietnam_hue +++ b/phsource/ph_vietnam_hue @@ -6,31 +6,31 @@ phoneme 1 // ngang tone: level stress - Tone(30, 2, envelope/p_level, NULL) // similar Hue dialect tone + Tone(40, 5, envelope/p_level, NULL) // similar Hue dialect tone endphoneme phoneme 2 // huyền tone: low falling stress - Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 8 + Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 25 endphoneme phoneme 3 // sắc Tone(rising stress - Tone(2, 10, envelope/p_rise, NULL) // 25 50 45 75 + Tone(2, 10, envelope/p_fallrise, NULL) // 2 10 endphoneme phoneme 4 // hỏi Tone(curve (dipping rising) stress - Tone(20, 5, envelope/p_512,NULL) //Tone(55, 5, envelope/p_fallrise, NULL) //30 5 m 55 5 + Tone(5, 10, envelope/p_512,NULL) //20 5 endphoneme phoneme 5 // ngã tone: broken (creaking rising) stress - Tone(50,2, envelope/p_214, envelope/vi_5amp) // 28,58 m20 85 + Tone(10, 15, envelope/p_512, envelope/vi_6amp) // 40 20 endphoneme @@ -46,4 +46,41 @@ phoneme 7 // Tone(1 (ngang) at end of clause Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20 endphoneme +// Redefine the length of vowels +phoneme i + CALL vi/i + length 150 +endphoneme + +phoneme E + CALL vi/E + length 150 +endphoneme + +phoneme a: + CALL vi/a: + length 150 +endphoneme + +phoneme @ + CALL vi/@ + length 150 +endphoneme + +phoneme @: + CALL vi/@: + length 150 +endphoneme + +phoneme O + CALL vi/O + length 150 + FMT(vowel/0) +endphoneme + +phoneme Oi + CALL vi/Oi + length 100 + FMT(vdiph/ooi_2) +endphoneme diff --git a/phsource/ph_vietnam_sgn b/phsource/ph_vietnam_sgn new file mode 100644 index 00000000..fdf27ee2 --- /dev/null +++ b/phsource/ph_vietnam_sgn @@ -0,0 +1,97 @@ + +//==================================================== +// Vietnamese Phonemes - Make Sài gòn Dialect +//==================================================== + + +phoneme 1 // ngang tone: level + stress + Tone(32, 34, envelope/p_level, NULL) +endphoneme + + +phoneme 2 // huyền tone: low falling + stress + Tone(35,20 , envelope/p_fall, NULL) //20 +endphoneme + + +phoneme 3 // sắc Tone(rising + stress + Tone(40,60, envelope/p_rise, NULL) // 25 50 +endphoneme + + +phoneme 4 // hỏi Tone(curve (dipping rising) + stress + Tone(30,50, envelope/p_rise, NULL) //envelope/vi_5amp) // 28,58 +endphoneme + + +phoneme 5 // ngã tone: broken (creaking rising) + stress + Tone(30,50, envelope/p_rise, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58 +endphoneme + + +phoneme 6 // nặng Tone(drop (constricted) + stress + //length 150 // ignore because it make too short sound 75 // reduce the length of the vowel + Tone(10,5, envelope/p_512,NULL) // envelope/vi_6amp) +endphoneme + + +phoneme 7 // Tone(1 (ngang) at end of clause + stress + Tone(40, 20, envelope/p_fall, NULL) +endphoneme + +// Redefine the length of vowels + +phoneme i + CALL vi/i + length 150 +endphoneme + +phoneme E + CALL vi/E + length 150 +endphoneme + +phoneme a: + CALL vi/a: + length 150 + FMT(vietnam/a) +endphoneme + +phoneme @ + CALL vi/@ + length 150 +endphoneme + +phoneme @: + CALL vi/@: + length 150 +endphoneme + +phoneme O + CALL vi/O + length 150 + FMT(vowel/0) +endphoneme + +phoneme Oi + CALL vi/Oi + length 100 + FMT(vdiph/ooi_2) +endphoneme + +phoneme y + CALL vi/y + FMT(vowel/u#_4) +endphoneme + +phoneme o + CALL vi/o + FMT(vowel/o_5) +endphoneme \ No newline at end of file diff --git a/phsource/phonemes b/phsource/phonemes index 22f593bd..c5bb7480 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -616,8 +616,8 @@ phoneme w VowelEnding(w/xw, -30) - IF prevPh(isPause) THEN - FMT(w/_w) + IF prevPhW(isNasal) THEN + FMT(w/w) ELSE FMT(w/_w) ENDIF @@ -634,7 +634,7 @@ endphoneme phoneme j - liquid palatal + liquid palatal starttype #i lengthmod 7 IF nextPhW(isVowel) THEN @@ -1610,7 +1610,7 @@ phoneme x Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 IF nextPh(isPause) THEN - WAV(ufric/x, 110) + WAV(ufric/x_, 60) ENDIF WAV(ufric/x_hr, 20) endphoneme @@ -1745,9 +1745,6 @@ include ph_kannada phonemetable ml hi include ph_malayalam -phonemetable te hi -include ph_telugu - phonemetable hu base @@ -1833,6 +1830,9 @@ include ph_vietnam phonemetable vi-hue vi include ph_vietnam_hue +phonemetable vi-sgn vi +include ph_vietnam_sgn + phonemetable zhy base include ph_zh_yue @@ -1867,31 +1867,14 @@ include ph_georgian phonemetable fa base include ph_farsi -// experimental - -phonemetable ko base -include ph_korean - -phonemetable kl base -include ph_greenlandic - -phonemetable am base -include ph_amhari - //************************************************************************************** // The following lines are experimental, for future additions. // These langauges are not in a usable state. // These lines can be deleted. -phonemetable si hi -include ph_sinhala - -phonemetable sl sk -include ph_slovenian - -//phonemetable rw base2 -//include ph_kinyarwanda +phonemetable rw base2 +include ph_kinyarwanda //phonemetable mr hi //include ph_marathi @@ -1902,42 +1885,67 @@ include ph_slovenian //phonemetable mn base //include ph_mongolian -//phonemetable prs base -//include ph_dari +phonemetable prs base +include ph_dari -//phonemetable gd base -//include ph_s_gaelic +phonemetable sl sk +include ph_slovenian -//phonemetable nso base -//include ph_northern-sotho +phonemetable gd base +include ph_s_gaelic -//phonemetable ht fr -//include ph_haitian +phonemetable nso base +include ph_northern-sotho -//phonemetable az tr -//include ph_azerbaijani +phonemetable ht fr +include ph_haitian -//phonemetable ak base -//include ph_akan +phonemetable az tr +include ph_azerbaijani -//phonemetable wo base -//include ph_wolof +phonemetable ak base +include ph_akan -//phonemetable dv hi -//include ph_divehi +phonemetable am base +include ph_amhari -//phonemetable tn base -//include ph_setswana +phonemetable wo base +include ph_wolof -//phonemetable mt base -//include ph_maltese +phonemetable dv hi +include ph_divehi -//phonemetable bo hi -//include ph_tibetan +phonemetable te hi +include ph_telugu -//phonemetable kk base -//include ph_kazakh +phonemetable si hi +include ph_sinhala -//phonemetable tt base -//include ph_tatar +phonemetable tn base +include ph_setswana + + +phonemetable mt base +include ph_maltese + +phonemetable bo hi +include ph_tibetan + +phonemetable kk base +include ph_kazakh + +phonemetable tt base +include ph_tatar + +phonemetable ko base +include ph_korean + +phonemetable kl base +include ph_greenlandic + +phonemetable ar base +include ph_arabic + +phonemetable gu hi +include ph_gujarati diff --git a/phsource/ufric/x_.wav b/phsource/ufric/x_.wav new file mode 100644 index 00000000..ad7a1398 Binary files /dev/null and b/phsource/ufric/x_.wav differ diff --git a/phsource/ustop/t_hi.wav b/phsource/ustop/t_hi.wav index c60bbcc1..635ac6dd 100644 Binary files a/phsource/ustop/t_hi.wav and b/phsource/ustop/t_hi.wav differ diff --git a/phsource/vdiph/ooi b/phsource/vdiph/ooi index b7837cce..37a7fbbe 100644 Binary files a/phsource/vdiph/ooi and b/phsource/vdiph/ooi differ diff --git a/phsource/vdiph/ooi_2 b/phsource/vdiph/ooi_2 index 0edfae58..7398a2bf 100644 Binary files a/phsource/vdiph/ooi_2 and b/phsource/vdiph/ooi_2 differ diff --git a/phsource/vdiph/ooi_3 b/phsource/vdiph/ooi_3 index f512113d..750eac6b 100644 Binary files a/phsource/vdiph/ooi_3 and b/phsource/vdiph/ooi_3 differ diff --git a/phsource/vdiph/ooi_4 b/phsource/vdiph/ooi_4 index c0b8bb97..2b15dcb2 100644 Binary files a/phsource/vdiph/ooi_4 and b/phsource/vdiph/ooi_4 differ diff --git a/phsource/vowel/a_4 b/phsource/vowel/a_4 index 3fcbda42..ca4d963f 100644 Binary files a/phsource/vowel/a_4 and b/phsource/vowel/a_4 differ diff --git a/phsource/vowel/u#_5 b/phsource/vowel/u#_5 index d0b86ae1..eb4ce8f9 100644 Binary files a/phsource/vowel/u#_5 and b/phsource/vowel/u#_5 differ diff --git a/phsource/vowel/u#_7 b/phsource/vowel/u#_7 index aaba5ebf..2680d256 100644 Binary files a/phsource/vowel/u#_7 and b/phsource/vowel/u#_7 differ diff --git a/phsource/vwl_en_us/aU@ b/phsource/vwl_en_us/aU@ index 63ee0e09..f1c1759d 100644 Binary files a/phsource/vwl_en_us/aU@ and b/phsource/vwl_en_us/aU@ differ diff --git a/phsource/w/_w b/phsource/w/_w index 863e2a13..aab2856f 100644 Binary files a/phsource/w/_w and b/phsource/w/_w differ diff --git a/phsource/w/w b/phsource/w/w index 65cbe6e4..71ea65b9 100644 Binary files a/phsource/w/w and b/phsource/w/w differ diff --git a/platforms/riscos/Makefile b/platforms/riscos/Makefile index 3522e043..7a98ce18 100644 --- a/platforms/riscos/Makefile +++ b/platforms/riscos/Makefile @@ -2,8 +2,8 @@ # Toolflags: -CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41 -C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41 +CCflags = -c -C90 -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 +C++flags = -c -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 Linkflags = -rmf -c++ -o $@ ObjAsmflags = -throwback -NoCache -depend !Depend CMHGflags = @@ -27,38 +27,64 @@ Squeezeflags = -o $@ # User-editable dependencies: # Static dependencies: -@.o.speak_riscos: @.cpp.speak_riscos - c++ $(c++flags) -o @.o.speak_riscos @.cpp.speak_riscos -@.o.compiledict: @.cpp.compiledict - c++ $(c++flags) -o @.o.compiledict @.cpp.compiledict -@.o.dictionary: @.CPP.dictionary - c++ $(c++flags) -o @.o.dictionary @.CPP.dictionary -@.o.intonation: @.CPP.intonation - c++ $(c++flags) -o @.o.intonation @.CPP.intonation -@.o.numbers: @.CPP.numbers - c++ $(c++flags) -o @.o.numbers @.CPP.numbers -@.o.phonemelist: @.CPP.phonemelist - c++ $(c++flags) -o @.o.phonemelist @.CPP.phonemelist -@.o.readclause: @.CPP.readclause - c++ $(c++flags) -o @.o.readclause @.CPP.readclause -@.o.setlengths: @.CPP.setlengths - c++ $(c++flags) -o @.o.setlengths @.CPP.setlengths -@.o.synthdata: @.CPP.synthdata - c++ $(c++flags) -o @.o.synthdata @.CPP.synthdata -@.o.synth_mbrola: @.CPP.synth_mbrola - c++ $(c++flags) -o @.o.synth_mbrola @.CPP.synth_mbrola -@.o.synthesize: @.CPP.synthesize - c++ $(c++flags) -o @.o.synthesize @.CPP.synthesize -@.o.translate: @.CPP.translate - c++ $(c++flags) -o @.o.translate @.CPP.translate -@.o.tr_languages: @.CPP.tr_languages - c++ $(c++flags) -o @.o.tr_languages @.CPP.tr_languages -@.o.voices: @.CPP.voices - c++ $(c++flags) -o @.o.voices @.CPP.voices -@.o.wavegen: @.CPP.wavegen - c++ $(c++flags) -o @.o.wavegen @.CPP.wavegen +@.o.speak_riscos: @.c.speak_riscos + cc $(ccflags) -o @.o.speak_riscos @.c.speak_riscos +@.o.compiledict: @.c.compiledict + cc $(ccflags) -o @.o.compiledict @.c.compiledict +@.o.dictionary: @.c.dictionary + cc $(ccflags) -o @.o.dictionary @.c.dictionary +@.o.intonation: @.c.intonation + cc $(ccflags) -o @.o.intonation @.c.intonation +@.o.numbers: @.c.numbers + cc $(ccflags) -o @.o.numbers @.c.numbers +@.o.phonemelist: @.c.phonemelist + cc $(ccflags) -o @.o.phonemelist @.c.phonemelist +@.o.readclause: @.c.readclause + cc $(ccflags) -o @.o.readclause @.c.readclause +@.o.setlengths: @.c.setlengths + cc $(ccflags) -o @.o.setlengths @.c.setlengths +@.o.synthdata: @.c.synthdata + cc $(ccflags) -o @.o.synthdata @.c.synthdata +@.o.synth_mbrola: @.c.synth_mbrola + cc $(ccflags) -o @.o.synth_mbrola @.c.synth_mbrola +@.o.synthesize: @.c.synthesize + cc $(ccflags) -o @.o.synthesize @.c.synthesize +@.o.translate: @.c.translate + cc $(ccflags) -o @.o.translate @.c.translate +@.o.tr_languages: @.c.tr_languages + cc $(ccflags) -o @.o.tr_languages @.c.tr_languages +@.o.voices: @.c.voices + cc $(ccflags) -o @.o.voices @.c.voices +@.o.wavegen: @.c.wavegen + cc $(ccflags) -o @.o.wavegen @.c.wavegen @.o.assemb: @.s.assemb objasm $(objasmflags) -from @.s.assemb -to @.o.assemb # Dynamic dependencies: - +o.wavegen: c.wavegen +o.wavegen: h.StdAfx +o.wavegen: h.speak_lib +o.wavegen: h.speech +o.wavegen: h.phoneme +o.wavegen: h.synthesize +o.wavegen: h.voice +o.wavegen: h.sintab +o.speak_riscos: c.speak_riscos +o.speak_riscos: C:h.kernel +o.speak_riscos: h.speech +o.speak_riscos: h.speak_lib +o.speak_riscos: h.phoneme +o.speak_riscos: h.synthesize +o.speak_riscos: h.voice +o.speak_riscos: h.translate +o.synthdata: c.synthdata +o.synthdata: h.StdAfx +o.synthdata: h.wctype +o.synthdata: h.speak_lib +o.synthdata: h.speech +o.synthdata: h.phoneme +o.synthdata: h.synthesize +o.synthdata: h.voice +o.synthdata: h.translate +o.synthdata: h.wave +o.synthdata: C:h.stdint diff --git a/platforms/riscos/cpp/speak_riscos b/platforms/riscos/c/speak_riscos similarity index 89% rename from platforms/riscos/cpp/speak_riscos rename to platforms/riscos/c/speak_riscos index 420137be..ed7dc795 100644 --- a/platforms/riscos/cpp/speak_riscos +++ b/platforms/riscos/c/speak_riscos @@ -38,7 +38,7 @@ #define os_X 0x20000 // interface to the assembler section -extern "C" { +//extern "C" { extern void DMA_Handler(void); @@ -51,7 +51,7 @@ extern int callback_entry(_kernel_swi_regs *r, void *pw); extern int sound_handler(_kernel_swi_regs *r, void *pw); extern int sound_entry(_kernel_swi_regs *r, void *pw); -} +//} extern int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); extern void RiscosOpenSound(); @@ -75,12 +75,13 @@ char path_home[N_PATH_HOME] = ""; char wavefile[120]; char textbuffile[L_tmpnam]; int sample_rate_index; // current value -int current_voice_num=0; +int sample_rate_doubled = 0; // 1= write audio data at 2x sample rate +char current_voice_name[40] = {0}; int n_voice_files = 0; int n_voice_variant_files = 0; // output sound buffer, 2 bytes per sample -static unsigned short SoundBuf[4096]; +static short SoundBuf[4096]; static void *module_data; static int callback_inhibit = 0; static int more_text=0; @@ -131,9 +132,10 @@ static const char *help_text = "--punct=\"\"\n" "\t Speak the names of punctuation characters during speaking. If\n" "\t = is omitted, all punctuation is spoken.\n" -"--voices=\n" -"\t List the available voices for the specified language.\n" -"\t If is omitted, then list all voices.\n" +"--voices=\n" +"\t List the available voices. (More voices can be installed from the main eSpeak distribution)\n" +"--voices=variant\n" +"\t List the available voice variants which can be combined with voices, eg. en+f3\n" "-k \n" "\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" "\t higher values = a pitch increase (try -k20).\n"; @@ -169,9 +171,6 @@ int GetFileLength(const char *filename) } /* end of GetFileLength */ -void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) -{ -} void ReadVoiceNames2(char *directory) {//================================== @@ -194,6 +193,9 @@ void ReadVoiceNames2(char *directory) path_len = strlen(directory); + voice_variant_names[0] = "(none)"; + n_voice_variant_files = 1; + while(regs.r[3] > 0) { error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ @@ -363,8 +365,8 @@ static void CloseWaveFile(int rate) -void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) -{//====================================================================================== +void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) +{//================================================================================================= // Do nothing in the command-line version. } // end of MarkerEvent @@ -452,6 +454,7 @@ void speak_text_string(char *data, int terminator, int len, int wait, int voice_ { int c; int ix; + char *vname; static static_length=0; static int user_token=0; /* increment for each call of translate() */ _kernel_swi_regs regs; @@ -462,12 +465,13 @@ void speak_text_string(char *data, int terminator, int len, int wait, int voice_ option_endpause = 1; - if((voice_num >= 0) && (voice_num != current_voice_num) && (voice_num < N_VOICE_NAMES)) + vname = voice_names[voice_num]; + if((voice_num >= 0) && (strcmp(vname, current_voice_name) != 0) && (voice_num < N_VOICE_NAMES)) { SetVoiceByName(voice_names[voice_num]); - WavegenSetVoice(voice); + WavegenSetVoice(voice); } - current_voice_num = voice_num; + strcmp(current_voice_name, vname); /* don't count CR as terminator if length is specified */ if(len > 0) terminator = 0; @@ -593,8 +597,16 @@ void set_say_options(int reg2, int reg3) option_waveout = 0; option_multibyte = 0; // auto option_capitals = 0; - option_punctuation = 0; - option_punctlist[0] = 0; + if(reg2 >= 0) + { + // not using SWI_SPEAK+14 to set voice and punctiation option + option_punctuation = 0; + option_punctlist[0] = 0; + } + else + { + SetParameter(espeakPUNCTUATION,option_punctuation,0); + } } /* end of set_say_options */ @@ -621,7 +633,7 @@ void jsd_swi_functions(int *r) case 3: // translate into phonemes use_ipa = 0; - if((r[2] >= 1) && (use_ipa <= 3)) + if((r[2] >= 1) && (r[2] <= 5)) use_ipa = r[2]; TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); @@ -641,7 +653,7 @@ void jsd_swi_functions(int *r) if(r[1] < N_VOICE_NAMES) { SetVoiceByName(voice_names[r[1]]); - current_voice_num = r[1]; + strcmp(current_voice_name, voice_names[r[1]]); WavegenSetVoice(voice); } break; @@ -675,6 +687,8 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) int value; int value2; int q_length; + char *p; + int ix; value = r[0]; switch(swi_no) @@ -682,16 +696,17 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) case 0: // ready ? // returns the index into the source text of the currently speaking word - if(current_source_index > 0) - r[1] = current_source_index-1; + ix = current_source_index & 0x7ff; + if(ix > 0) + r[1] = ix-1; else - r[1] = current_source_index; /* source index */ + r[1] = ix; /* source index */ r[2] = 0; /* source tag */ r[3] = 0; /* for future expansion */ r[4] = 0; r[5] = 0; - if(WcmdqUsed() < 5) + if((WcmdqUsed() < 5) && (more_text == 0)) { r[0] = -1; /* ready, or nearly */ } @@ -774,8 +789,30 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) break; case 14: // set voice by name - SetVoiceByName((char *)r[0]); - WavegenSetVoice(voice); + p = (char *)r[0]; + if(strcmp(p, current_voice_name) != 0) + { + SetVoiceByName(p); + WavegenSetVoice(voice); + strcpy(current_voice_name, p); + } + option_punctuation = 0; + if(r[1] != 0) + { + p = (char *)r[1]; + if(p[0] == 0) + option_punctuation = 1; + else + { + for(ix=0; ix < N_PUNCTLIST; ix++) + { + if((option_punctlist[ix] = p[ix]) == 0) + break; + } + option_punctlist[N_PUNCTLIST-1] = 0; + option_punctuation = 2; + } + } break; } return(NULL); @@ -814,7 +851,7 @@ void DisplayVoices(FILE *f_out, char *language) const espeak_VOICE **voices; espeak_VOICE voice_select; - static char genders[4] = {' ','M','F',' '}; + static char genders[4] = {'-','M','F','-'}; if(language[0] == '=') { @@ -837,11 +874,24 @@ void DisplayVoices(FILE *f_out, char *language) { count = 0; p = v->languages; + if(memcmp(language,"=variant",8)==0) + { + if(strcmp(p+1,"variant") != 0) + continue; + } + else + if(language[0] == 0) + { + if(strcmp(p+1,"variant") == 0) + continue; + } + while(*p != 0) { len = strlen(p+1); lang_name = p+1; + if(v->age == 0) strcpy(age_buf," "); else @@ -859,8 +909,6 @@ void DisplayVoices(FILE *f_out, char *language) count++; p += len+2; } -// if(scores) -// fprintf(f_out,"%3d ",v->score); fputc('\n',f_out); } } // end of DisplayVoices @@ -910,9 +958,9 @@ void command_line(char *arg_string, int wait) int option_index = 0; int c; int value; - int speed; - int amp; - int wordgap; + int speed = 175; + int amp = 100; + int wordgap = 0; int speaking = 0; int flag_stdin = 0; int flag_compile = 0; @@ -923,15 +971,15 @@ void command_line(char *arg_string, int wait) char command[80]; char *p; int ix; - int quiet; + int quiet = 0; voicename[0] = 0; wavefile[0] = 0; filename[0] = 0; + option_ssml = 0; option_linelength = 0; option_phonemes = 0; option_waveout = 0; - quiet = 0; option_multibyte = 0; // auto option_capitals = 0; option_punctuation = 0; @@ -963,7 +1011,6 @@ void command_line(char *arg_string, int wait) case 'k': option_capitals = param_number(&p); - SetParameter(espeakCAPITALS,option_capitals,0); break; case 'x': @@ -996,17 +1043,14 @@ void command_line(char *arg_string, int wait) case 'a': amp = param_number(&p); - SetParameter(espeakVOLUME,amp,0); break; case 's': speed = param_number(&p); - SetParameter(espeakRATE,speed,0); break; case 'g': wordgap = param_number(&p); - SetParameter(espeakWORDGAP,wordgap,0); break; case 'v': @@ -1049,7 +1093,6 @@ void command_line(char *arg_string, int wait) option_punctlist[N_PUNCTLIST-1] = 0; option_punctuation = 2; } - SetParameter(espeakPUNCTUATION,option_punctuation,0); } else if(memcmp(command,"version",7)==0) @@ -1080,6 +1123,12 @@ void command_line(char *arg_string, int wait) } } + SetParameter(espeakCAPITALS,option_capitals,0); + SetParameter(espeakWORDGAP,wordgap,0); + SetParameter(espeakPUNCTUATION,option_punctuation,0); + SetParameter(espeakRATE,speed,0); + SetParameter(espeakVOLUME,amp,0); + if((option_phonemes > 1) && !option_waveout) quiet = 1; // can't call sprintf() during callback @@ -1241,17 +1290,39 @@ int sound_handler(_kernel_swi_regs *r, void *pw) int size; int *dma_buf; int x; + int x2; int ix; module_data = (int *)pw; dma_buf = (int *)r->r[1]; size = (r->r[2] - r->r[1])/4; - FillSoundBuf(size); - - for(ix=0; ix= (sample_rate*1024)) + srate = regs.r[2] / 1024; + if(srate == sample_rate) { return(ix); } + if(srate == sample_rate*2) + { + double_rate_ix = ix; + } + if((diff = abs(sample_rate - srate)) < nearest_diff) + { + nearest_diff = diff; + nearest_ix = ix; + } } } - return(14); // this was the index for 22050 + if(double_rate_ix >= 0) + { + // matching sample rate is not available, but double this rate is. + sample_rate_doubled = 1; + return(double_rate_ix); + } + else + { + return(nearest_ix); + } } // end of InitSound16 @@ -1369,7 +1463,7 @@ _kernel_oserror *user_init(char *cmd_fail, int podule_base, void *pw) // other characters give the correct results with iswalpha() etc. static char *locale = "ISO8859-1"; - setlocale(LC_CTYPE,locale); + setlocale(LC_CTYPE,locale); module_data = pw; diff --git a/platforms/riscos/copysource b/platforms/riscos/copysource index b63ca50e..d887bf32 100644 --- a/platforms/riscos/copysource +++ b/platforms/riscos/copysource @@ -1,17 +1,17 @@ -copy .^.src.compiledict/cpp .cpp.compiledict fq~c -copy .^.src.dictionary/cpp .cpp.dictionary fq~c -copy .^.src.intonation/cpp .cpp.intonation fq~c -copy .^.src.numbers/cpp .cpp.numbers fq~c -copy .^.src.phonemelist/cpp .cpp.phonemelist fq~c -copy .^.src.readclause/cpp .cpp.readclause fq~c -copy .^.src.setlengths/cpp .cpp.setlengths fq~c -copy .^.src.synthdata/cpp .cpp.synthdata fq~c -copy .^.src.synth_mbrola/cpp .cpp.synth_mbrola fq~c -copy .^.src.synthesize/cpp .cpp.synthesize fq~c -copy .^.src.translate/cpp .cpp.translate fq~c -copy .^.src.tr_languages/cpp .cpp.tr_languages fq~c -copy .^.src.voices/cpp .cpp.voices fq~c -copy .^.src.wavegen/cpp .cpp.wavegen fq~c +copy .^.src.compiledict/cpp .c.compiledict fq~c +copy .^.src.dictionary/cpp .c.dictionary fq~c +copy .^.src.intonation/cpp .c.intonation fq~c +copy .^.src.numbers/cpp .c.numbers fq~c +copy .^.src.phonemelist/cpp .c.phonemelist fq~c +copy .^.src.readclause/cpp .c.readclause fq~c +copy .^.src.setlengths/cpp .c.setlengths fq~c +copy .^.src.synthdata/cpp .c.synthdata fq~c +copy .^.src.synth_mbrola/cpp .c.synth_mbrola fq~c +copy .^.src.synthesize/cpp .c.synthesize fq~c +copy .^.src.translate/cpp .c.translate fq~c +copy .^.src.tr_languages/cpp .c.tr_languages fq~c +copy .^.src.voices/cpp .c.voices fq~c +copy .^.src.wavegen/cpp .c.wavegen fq~c copy .^.src.phoneme/h .h.phoneme fq~c copy .^.src.sintab/h .h.sintab fq~c diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index ec9bca85..c43183f0 100644 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.47.04 +AppVerName=eSpeak version 1.47.08 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index 235aa67d..9521f0e6 100644 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.47.04 +AppVerName=eSpeakEdit version 1.47.08 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit diff --git a/src/compiledata.cpp b/src/compiledata.cpp index c410d1b6..b845cbae 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -2727,7 +2727,6 @@ static void DecThenCount() static void InstnPlusPhoneme(int instn) {//==================================== int phcode; - DecThenCount(); phcode = NextItemBrackets(tPHONEMEMNEM,0); *prog_out++ = instn + phcode; @@ -2835,16 +2834,19 @@ int CompilePhoneme(int compile_phoneme) case i_CHANGE_IF+2: case i_CHANGE_IF+3: InstnPlusPhoneme(keyword << 8); + DecThenCount(); break; case i_PAUSE_BEFORE: value = NextItemMax(255); *prog_out++ = (i_PAUSE_BEFORE << 8) + value; + DecThenCount(); break; case i_PAUSE_AFTER: value = NextItemMax(255); *prog_out++ = (i_PAUSE_AFTER << 8) + value; + DecThenCount(); break; case i_SET_LENGTH: @@ -2936,6 +2938,7 @@ int CompilePhoneme(int compile_phoneme) { *prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); } + DecThenCount(); break; } break; @@ -3018,6 +3021,7 @@ int CompilePhoneme(int compile_phoneme) case kCALLPH: CallPhoneme(); + DecThenCount(); break; case kFMT: @@ -3049,6 +3053,7 @@ int CompilePhoneme(int compile_phoneme) break; case kTONESPEC: + DecThenCount(); endphoneme = CompileToneSpec(); break; diff --git a/src/compiledict.cpp b/src/compiledict.cpp index eb4e1409..fe054cc7 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -133,6 +133,7 @@ MNEM_TAB mnem_flags[] = { {"$stem", 0x30}, // must have a suffix {"$atend", 0x31}, // use this pronunciation if at end of clause {"$atstart", 0x32}, // use this pronunciation at start of clause + {"$native", 0x33}, // not if we've switched translators // doesn't set dictionary_flags {"$?", 100}, // conditional rule, followed by byte giving the condition number @@ -700,9 +701,9 @@ static int compile_line(char *linebuf, char *dict_line, int *hash) ix = utf8_in(&c2,p); if(c2 == 0) break; - if(iswupper(c2)) + if(iswupper2(c2)) { - utf8_out(towlower(c2),p); + utf8_out(towlower2(c2),p); } else { diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 706b4f05..c330d35c 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -524,7 +524,7 @@ void DecodePhonemes(const char *inptr, char *outptr) unsigned short ipa1[96] = { 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, - 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254, + 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254, 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f @@ -633,10 +633,13 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int -void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) -{//========================================================================= - /* Can be called after a clause has been translated into phonemes, in order +void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode) +{//=============================================================================== + /* Called after a clause has been translated into phonemes, in order to display the clause in phoneme mnemonic form. + + phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator + bit 4: 0=eSpeak phoneme names, 1=IPA */ int ix; @@ -649,6 +652,9 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) char *buf; int count; int flags; + int use_ipa; + int use_tie; + int separate_phonemes = 0; char phon_buf[30]; char phon_buf2[30]; PHONEME_LIST *plist; @@ -656,6 +662,16 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) static const char *stress_chars = "==,,''"; static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner + use_ipa = phoneme_mode & 0x10; + use_tie = phoneme_mode & 0x0f; + + if(use_tie >= 3) + { + // separate individual phonemes with underscores + separate_phonemes = '_'; + use_tie = 0; + } + if(phon_out != NULL) { for(ix=1; ix<(n_phoneme_list-2); ix++) @@ -663,8 +679,21 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) buf = phon_buf; plist = &phoneme_list[ix]; + + WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); if(plist->newword) *buf++ = ' '; + else + { + if((separate_phonemes != 0) && (ix > 1)) + { + utf8_in(&c, phon_buf2); + if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter + { + *buf++ = separate_phonemes; + } + } + } if(plist->synthflags & SFLAG_SYLLABLE) { @@ -687,22 +716,23 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) if(c != 0) { buf += utf8_out(c, buf); +// if(separate_phonemes) +// *buf++ = separate_phonemes; } } } flags = 0; - WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); count = 0; for(p=phon_buf2; *p != 0;) { p += utf8_in(&c, p); - if(use_ipa > 1) + if(use_tie > 0) { // look for non-inital alphabetic character, but not diacritic, superscript etc. - if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) + if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c)) { - buf += utf8_out(char_tie[use_ipa-2], buf); + buf += utf8_out(char_tie[use_tie-1], buf); } } buf += utf8_out(c, buf); @@ -894,7 +924,13 @@ int Unpronouncable(Translator *tr, char *word, int posn) if(count==0) c1 = c; - count++; + + if((c == '\'') && (tr->langopts.param[LOPT_UNPRONOUNCABLE] == 3)) + { + // don't count apostrophe + } + else + count++; if(IsVowel(tr, c)) { @@ -902,7 +938,7 @@ int Unpronouncable(Translator *tr, char *word, int posn) break; } - if((c != '\'') && !iswalpha(c)) + if((c != '\'') && !iswalpha2(c)) return(0); } @@ -1624,8 +1660,11 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, if(!(control & 1) && ((ph = phoneme_tab[*p]) != NULL)) { - if(ph->type == phSTRESS) - ph = phoneme_tab[p[1]]; + while((ph->type == phSTRESS) || (*p == phonEND_WORD)) + { + p++; + ph = phoneme_tab[p[0]]; + } #ifdef deleted int gap = tr->langopts.word_gap & 0x700; @@ -2078,7 +2117,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ break; case RULE_NONALPHA: - if(!iswalpha(letter_w)) + if(!iswalpha2(letter_w)) { add_points = (21-distance_right); post_ptr += letter_xbytes; @@ -2322,7 +2361,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ break; case RULE_NONALPHA: - if(!iswalpha(letter_w)) + if(!iswalpha2(letter_w)) { add_points = (21-distance_right); pre_ptr -= letter_xbytes; @@ -2639,7 +2678,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c if(tr->letter_bits_offset > 0) { // not a Latin alphabet, switch to the default Latin alphabet language - if((letter <= 0x241) && iswalpha(letter)) + if((letter <= 0x241) && iswalpha2(letter)) { sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language); return(0); @@ -3240,6 +3279,11 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor continue; } } + if(dictionary_flags2 & FLAG_NATIVE) + { + if(tr != translator) + continue; // don't use if we've switched translators + } if(dictionary_flags & FLAG_ALT2_TRANS) { // language specific @@ -3505,9 +3549,9 @@ int LookupFlags(Translator *tr, const char *word) {//============================================== char buf[100]; static unsigned int flags[2]; + char *word1 = (char *)word; flags[0] = flags[1] = 0; - char *word1 = (char *)word; LookupDictList(tr, &word1, buf, flags, 0, NULL); return(flags[0]); } diff --git a/src/espeak.cpp b/src/espeak.cpp index 5fd81d45..2e769e0b 100644 --- a/src/espeak.cpp +++ b/src/espeak.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #ifndef NEED_GETOPT #include #endif @@ -67,7 +68,7 @@ static const char *help_text = "\t Compile pronunciation rules and dictionary from the current\n" "\t directory. specifies the language\n" "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" -"\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" +"\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" "--path=\"\"\n" "\t Specifies the directory containing the espeak-data directory\n" "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" @@ -221,14 +222,17 @@ int OpenWavFile(char *path, int rate) if(path == NULL) return(2); - if(path[0] == 0) - return(0); - - if(strcmp(path,"stdout")==0) - f_wavfile = stdout; - else - f_wavfile = fopen(path,"wb"); + while(isspace(*path)) path++; + f_wavfile = NULL; + if(path[0] != 0) + { + if(strcmp(path,"stdout")==0) + f_wavfile = stdout; + else + f_wavfile = fopen(path,"wb"); + } + if(f_wavfile == NULL) { fprintf(stderr,"Can't write to: '%s'\n",path); @@ -620,7 +624,7 @@ int main (int argc, char **argv) { value = -1; sscanf(optarg2,"%d",&value); - if((value<0) || (value>2)) + if((value<0) || (value>3)) { fprintf(stderr,"Bad value for -ipa=\n"); value = 0; diff --git a/src/espeakedit.cpp b/src/espeakedit.cpp index b6f9baf6..156047aa 100644 --- a/src/espeakedit.cpp +++ b/src/espeakedit.cpp @@ -199,6 +199,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions) EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions) EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions) + EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions) EVT_MENU(MENU_PATH0, MyFrame::OnOptions) EVT_MENU(MENU_PATH1, MyFrame::OnOptions) EVT_MENU(MENU_PATH2, MyFrame::OnOptions) @@ -625,6 +626,12 @@ void OnOptions2(int event_id) break; case MENU_OPT_SPELL: + transldlg->t_source->SetValue(_T("\n")); + transldlg->t_source->SetInsertionPointEnd(); + notebook->SetSelection(1); + break; + + case MENU_OPT_SPELL2: transldlg->t_source->SetValue(_T("\n")); transldlg->t_source->SetInsertionPointEnd(); notebook->SetSelection(1); @@ -632,7 +639,7 @@ void OnOptions2(int event_id) case MENU_PATH0: string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), - _T(""),_T(""),_T("*"),wxOPEN); + _T("phonemes"),_T(""),_T("*"),wxOPEN); if(!string.IsEmpty()) { path_phfile = string; diff --git a/src/extras.cpp b/src/extras.cpp index 7fb5c348..89e7cad3 100644 --- a/src/extras.cpp +++ b/src/extras.cpp @@ -1564,8 +1564,8 @@ void CountWordFreq(wxString path, wcount **hashtab) for(k=0; k 0) + value = c - ix; + + if((value < 0) || (value > 0xfc)) + { + exceptions[ex] = ix; + exceptions[ex+1] = c; + ex+=2; + value = 0xfd; + } + } + + } + + if(value > 0xfc) + fprintf(f," 0x%.2x,", value); + else + fprintf(f," %4d,", value); + + + if((ix % 16) == 15) + { + fprintf(f," // %.3x\n", ix & 0xfff0); + } + + } + + fprintf(f, "\nstatic const short wchar_tolower[] = {\n"); + + for(ix=0; ixAppend(MENU_PATHS, _("Set &paths"), paths_menu); option_menu->Append(MENU_OPT_SPEED, _("Speed...")); - option_menu->Append(MENU_OPT_PUNCT, _("Speak punctiation")); - option_menu->Append(MENU_OPT_SPELL, _("Speak character names")); + option_menu->AppendSeparator(); + option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation")); + option_menu->Append(MENU_OPT_SPELL, _("Speak characters")); + option_menu->Append(MENU_OPT_SPELL2, _("Speak character name")); // TOOLS vowelchart_menu = new wxMenu; diff --git a/src/numbers.cpp b/src/numbers.cpp index 8c9df1f5..ba99ca82 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -582,7 +582,103 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b } // end of LookupLetter -static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'Ef"}; // using phonemes available to all languages +// unicode ranges for non-ascii digits 0-9 +static const int number_ranges[] = { + 0x660, 0x6f0, // arabic + 0x966, 0x9e6, 0xa66, 0xae6, 0xb66, 0xbe6, 0xc66, 0xce6, 0xd66, // indic + 0xe50, 0xed0, 0xf20, 0x1040, 0x1090, + 0 }; // these must be in ascending order + + +int NonAsciiNumber(int letter) +{//============================ +// Change non-ascii digit into ascii digit '0' to '9', (or -1 if not) + const int *p; + int base; + + for(p=number_ranges; (base = *p) != 0; p++) + { + if(letter < base) + break; // not found + if(letter < (base+10)) + return(letter-base+'0'); + } + return(-1); +} + +#define L_SUB 0x4000 // subscript +#define L_SUP 0x8000 // superscript + +static const char *modifiers[] = {NULL, "_sub", "_sup", NULL}; + +// this list must be in ascending order +static unsigned short derived_letters[] = { + 0x00aa, 'a'+L_SUP, + 0x00b2, '2'+L_SUP, + 0x00b3, '3'+L_SUP, + 0x00b9, '1'+L_SUP, + 0x00ba, 'o'+L_SUP, + 0x02b0, 'h'+L_SUP, + 0x02b1, 0x266+L_SUP, + 0x02b2, 'j'+L_SUP, + 0x02b3, 'r'+L_SUP, + 0x02b4, 0x279+L_SUP, + 0x02b5, 0x27b+L_SUP, + 0x02b6, 0x281+L_SUP, + 0x02b7, 'w'+L_SUP, + 0x02b8, 'y'+L_SUP, + 0x02c0, 0x294+L_SUP, + 0x02c1, 0x295+L_SUP, + 0x02e0, 0x263+L_SUP, + 0x02e1, 'l'+L_SUP, + 0x02e2, 's'+L_SUP, + 0x02e3, 'x'+L_SUP, + 0x2070, '0'+L_SUP, + 0x2071, 'i'+L_SUP, + 0x2074, '4'+L_SUP, + 0x2075, '5'+L_SUP, + 0x2076, '6'+L_SUP, + 0x2077, '7'+L_SUP, + 0x2078, '8'+L_SUP, + 0x2079, '9'+L_SUP, + 0x207a, '+'+L_SUP, + 0x207b, '-'+L_SUP, + 0x207c, '='+L_SUP, + 0x207d, '('+L_SUP, + 0x207e, ')'+L_SUP, + 0x207f, 'n'+L_SUP, + 0x2080, '0'+L_SUB, + 0x2081, '1'+L_SUB, + 0x2082, '2'+L_SUB, + 0x2083, '3'+L_SUB, + 0x2084, '4'+L_SUB, + 0x2085, '5'+L_SUB, + 0x2086, '6'+L_SUB, + 0x2087, '7'+L_SUB, + 0x2088, '8'+L_SUB, + 0x2089, '9'+L_SUB, + 0x208a, '+'+L_SUB, + 0x208b, '-'+L_SUB, + 0x208c, '='+L_SUB, + 0x208d, '('+L_SUB, + 0x208e, ')'+L_SUB, + 0x2090, 'a'+L_SUB, + 0x2091, 'e'+L_SUB, + 0x2092, 'o'+L_SUB, + 0x2093, 'x'+L_SUB, + 0x2094, 0x259+L_SUB, + 0x2095, 'h'+L_SUB, + 0x2096, 'k'+L_SUB, + 0x2097, 'l'+L_SUB, + 0x2098, 'm'+L_SUB, + 0x2099, 'n'+L_SUB, + 0x209a, 'p'+L_SUB, + 0x209b, 's'+L_SUB, + 0x209c, 't'+L_SUB, + 0,0}; + + +static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) {//========================================================================= @@ -596,15 +692,18 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) int letter; int len; int ix; + int c; char *p2; char *pbuf; + const char *modifier; ALPHABET *alphabet; int al_offset; int al_flags; int language; + int number; int phontab_1; int speak_letter_number; - char capital[20]; + char capital[30]; char ph_buf[80]; char ph_buf2[80]; char ph_alphabet[80]; @@ -626,21 +725,61 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) if(control & 2) { // include CAPITAL information - if(iswupper(letter)) + if(iswupper2(letter)) { Lookup(tr, "_cap", capital); } } letter = towlower2(letter); - LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); + if(ph_buf[0] == 0) + { + // is this a subscript or superscript letter ? + for(ix=0; (c = derived_letters[ix]) != 0; ix+=2) + { + if(c > letter) + break; + if(c == letter) + { + c = derived_letters[ix+1]; + letter = c & 0x3fff; + if((modifier = modifiers[c >> 14]) != NULL) + { + Lookup(tr, modifier, capital); + if(capital[0] == 0) + { + capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2 + Lookup(translator2, modifier, &capital[3]); + if(capital[3] != 0) + { + capital[0] = phonPAUSE; + capital[1] = phonSWITCH; + len = strlen(&capital[3]); + capital[len+3] = phonSWITCH; + capital[len+4] = phontab_1; + capital[len+5] = 0; + } + } + } + } + } + LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); + } + if(ph_buf[0] == phonSWITCH) { strcpy(phonemes,ph_buf); return(0); } + + if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0)) + { + // convert a non-ascii number to 0-9 + LookupLetter(tr, number, 0, ph_buf, control & 1); + } + al_offset = 0; al_flags = 0; if((alphabet = AlphabetFromChar(letter)) != NULL) @@ -766,7 +905,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) speak_letter_number = 1; if(!(al_flags & AL_NO_SYMBOL)) { - if(iswalpha(letter)) + if(iswalpha2(letter)) Lookup(translator, "_?A", ph_buf); if((ph_buf[0]==0) && !iswspace(letter)) @@ -784,8 +923,8 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) speak_letter_number = 0; } - if((ph_alphabet[0] != 0) && speak_letter_number) - ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name +// if((ph_alphabet[0] != 0) && speak_letter_number) +// ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name if(speak_letter_number) { @@ -2216,8 +2355,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) utf8_in(&next_char,p); - if(!iswalpha(next_char) && (thousands_exact==0)) -// if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) + if(!iswalpha2(next_char) && (thousands_exact==0)) +// if(!iswalpha2(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. } diff --git a/src/readclause.cpp b/src/readclause.cpp index f8ffd92b..9f8909b1 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -76,6 +76,8 @@ static int ssml_ignore_l_angle = 0; // punctuations symbols that can end a clause static const unsigned short punct_chars[] = {',','.','?','!',':',';', + 0x00a1, // inverted exclamation + 0x00bf, // inverted question 0x2013, // en-dash 0x2014, // em-dash 0x2026, // elipsis @@ -124,6 +126,8 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';', // bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket static const unsigned int punct_attributes [] = { 0, CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, + CLAUSE_SEMICOLON | 0x8000, // inverted exclamation + CLAUSE_SEMICOLON | 0x8000, // inverted question CLAUSE_SEMICOLON, // en-dash CLAUSE_SEMICOLON, // em-dash CLAUSE_SEMICOLON | PUNCT_SAY_NAME | 0x8000, // elipsis @@ -214,50 +218,91 @@ const int param_defaults[N_SPEECH_PARAM] = { 0, // voice type }; -#ifdef NEED_WCHAR_FUNCTIONS -// additional Latin characters beyond the Latin1 character set -#define MAX_WALPHA 0x233 -// indexed by character - 0x100 -// 0=not alphabetic, 0xff=lower case, 0xfe=special case +// additional Latin characters beyond the ascii character set +#define MAX_WALPHA 0x24f +// indexed by character - 0x80 +// 0=not alphabetic, 0xff=lower case, 0xfe=no case, 0xfd=use wchar_tolower // other=value to add to upper case to convert to lower case -static unsigned char walpha_tab[MAX_WALPHA-0xff] = { - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 100 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 110 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 120 - 0xfe,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130 - 0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, // 140 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 150 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 160 - 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, // 170 - 0xff, 210, 1,0xff, 1,0xff, 206, 1,0xff, 205, 205, 1,0xff,0xff, 79, 202, // 180 - 203, 1,0xff, 205, 207,0xff, 211, 209, 1,0xff,0xff,0xff, 211, 213,0xff, 214, // 190 - 1,0xff, 1,0xff, 1,0xff, 218, 1,0xff, 218,0xff,0xff, 1,0xff, 218, 1, // 1a0 - 0xff, 217, 217, 1,0xff, 1,0xff, 219, 1,0xff,0xff,0xff, 1,0xff,0xff,0xff, // 1b0 - 0xff,0xff,0xff,0xff, 2, 1,0xff, 2, 1,0xff, 2, 1,0xff, 1,0xff, 1, // 1c0 - 0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, // 1d0 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1e0 - 0xff, 2, 1,0xff, 1,0xff,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1f0 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 200 - 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 210 - 0xff, 0, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 220 - 1,0xff, 1,0xff }; // 230 +static unsigned char walpha_tab[MAX_WALPHA-0x7f] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 080 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 090 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0a0 + 0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0b0 + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // 0c0 + 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0xff, // 0d0 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0e0 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0f0 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 100 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 110 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 120 + 0xfd, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, // 130 + 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, // 140 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 150 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 160 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, // 170 + 0xff, 210, 1, 0xff, 1, 0xff, 206, 1, 0xff, 205, 205, 1, 0xff, 0xfe, 79, 202, // 180 + 203, 1, 0xff, 205, 207, 0xff, 211, 209, 1, 0xff, 0xff, 0xfe, 211, 213, 0xff, 214, // 190 + 1, 0xff, 1, 0xff, 1, 0xff, 218, 1, 0xff, 218, 0xfe, 0xfe, 1, 0xff, 218, 1, // 1a0 + 0xff, 217, 217, 1, 0xff, 1, 0xff, 219, 1, 0xff, 0xfe, 0xfe, 1, 0xff, 0xfe, 0xff, // 1b0 + 0xfe, 0xfe, 0xfe, 0xfe, 2, 0xff, 0xff, 2, 0xff, 0xff, 2, 0xff, 0xff, 1, 0xff, 1, // 1c0 + 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, 1, 0xff, // 1d0 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1e0 + 0xfe, 2, 0xff, 0xff, 1, 0xff, 0xfd, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1f0 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 200 + 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 210 + 0xfd, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 220 + 1, 0xff, 1, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd, 1, 0xff, 0xfd, 0xfd, 0xfe, // 230 + 0xfe, 1, 0xff, 0xfd, 69, 71, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff}; // 240 + +static const short wchar_tolower[] = { + 0x130, 0x069, + 0x178, 0x0ff, + 0x1f6, 0x195, + 0x1f7, 0x1bf, + 0x220, 0x19e, + 0x23a, 0x2c65, + 0x23d, 0x19a, + 0x23e, 0x2c66, + 0x243, 0x180, + 0,0 }; + +static const short wchar_toupper[] = { + 0x0b5, 0x39c, + 0x0df, 0x0df, + 0x0ff, 0x178, + 0x131, 0x049, + 0x17f, 0x053, + 0x180, 0x243, + 0x195, 0x1f6, + 0x19a, 0x23d, + 0x19e, 0x220, + 0x1bf, 0x1f7, + 0x1c6, 0x1c4, + 0x1c9, 0x1c7, + 0x1cc, 0x1ca, + 0x1dd, 0x18e, + 0x1f3, 0x1f1, + 0,0 }; + + +#ifdef NEED_WCHAR_FUNCTIONS // use ctype.h functions for Latin1 (character < 0x100) int iswalpha(int c) { - if(c < 0x100) + if(c < 0x80) return(isalpha(c)); if((c > 0x3040) && (c <= 0xa700)) return(1); // japanese, chinese characters if(c > MAX_WALPHA) return(0); - return(walpha_tab[c-0x100]); + return(walpha_tab[c-0x80]); } int iswdigit(int c) { - if(c < 0x100) + if(c < 0x80) return(isdigit(c)); return(0); } @@ -272,50 +317,67 @@ int iswalnum(int c) int towlower(int c) { int x; - if(c < 0x100) + int ix; + + if(c < 0x80) return(tolower(c)); - if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff)) - return(c); // already lower case - if(x == 0xfe) + + if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x80]) >= 0xfe)) + return(c); + + if(x == 0xfd) { - // special cases - if(c == 0x130) // uppercase i-dot - return('i'); + // special cases, lookup translation table + for(ix=0; wchar_tolower[ix] != 0; ix+=2) + { + if(wchar_tolower[ix] == c) + return(wchar_tolower[ix+1]); + } } return(c + x); // convert to lower case } int towupper(int c) { - // check whether the previous character code is the upper-case equivalent of this character - if(tolower(c-1) == c) - return(c-1); // yes, use it + int ix; + // check whether a previous character code is the upper-case equivalent of this character + if(towlower(c-32) == c) + return(c-32); // yes, use it + if(towlower(c-1) == c) + return(c-1); + for(ix=0; wchar_toupper[ix] != 0; ix+=2) + { + if(wchar_toupper[ix] == c) + return(wchar_toupper[ix+1]); + } return(c); // no } int iswupper(int c) { int x; - if(c < 0x100) + if(c < 0x80) return(isupper(c)); - if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x100])==0) || (x == 0xff)) + if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x80])==0) || (x == 0xff)) return(0); return(1); } int iswlower(int c) { - if(c < 0x100) + if(c < 0x80) return(islower(c)); - if((c > MAX_WALPHA) || (walpha_tab[c-0x100] != 0xff)) + if((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff)) return(0); return(1); } int iswspace(int c) { - if(c < 0x100) + if(c < 0x80) return(isspace(c)); + if(c == 0xa0) + return(1); return(0); } @@ -367,23 +429,96 @@ float wcstod(const wchar_t *str, wchar_t **tailptr) } #endif + +// use internal data for iswalpha up to U+024F +// iswalpha() on Windows is unreliable (U+AA, U+BA). +int iswalpha2(int c) +{ + if(c < 0x80) + return(isalpha(c)); + if((c > 0x3040) && (c <= 0xa700)) + return(1); // japanese, chinese characters + if(c > MAX_WALPHA) + return(iswalpha(c)); + return(walpha_tab[c-0x80]); +} + +int iswlower2(int c) +{ + if(c < 0x80) + return(islower(c)); + if(c > MAX_WALPHA) + return(iswlower(c)); + if(walpha_tab[c-0x80] == 0xff) + return(1); + return(0); +} + +int iswupper2(int c) +{ + int x; + if(c < 0x80) + return(isupper(c)); + if(c > MAX_WALPHA) + return(iswupper(c)); + if(((x = walpha_tab[c-0x80]) > 0) && (x < 0xfe)) + return(1); + return(0); +} + int towlower2(unsigned int c) { + int x; + int ix; + // check for non-standard upper to lower case conversions if(c == 'I') { - if(translator->translator_name == L('t','r')) + if(translator->langopts.dotless_i) { c = 0x131; // I -> ı } } -#ifdef __WIN32__ - if(c == 0x130) // uppercase i-dot - return('i'); -#endif - return(towlower(c)); + + if(c < 0x80) + return(tolower(c)); + + if(c > MAX_WALPHA) + return(towlower(c)); + + if((x = walpha_tab[c-0x80]) >= 0xfe) + return(c); // this is not an upper case letter + + if(x == 0xfd) + { + // special cases, lookup translation table + for(ix=0; wchar_tolower[ix] != 0; ix+=2) + { + if(wchar_tolower[ix] == (int)c) + return(wchar_tolower[ix+1]); + } + } + return(c + x); // convert to lower case } +int towupper2(unsigned int c) +{ + int ix; + if(c > MAX_WALPHA) + return(towupper(c)); + + // check whether a previous character code is the upper-case equivalent of this character + if(towlower2(c-32) == (int)c) + return(c-32); // yes, use it + if(towlower2(c-1) == (int)c) + return(c-1); + for(ix=0; wchar_toupper[ix] != 0; ix+=2) + { + if(wchar_toupper[ix] == (int)c) + return(wchar_toupper[ix+1]); + } + return(c); // no +} static int IsRomanU(unsigned int c) {//================================ @@ -2261,7 +2396,7 @@ f_input = f_in; // for GetC etc c2 = ' '; } else - if((c2 == '/') || iswalpha(c2)) + if((c2 == '/') || iswalpha2(c2)) { // check for space in the output buffer for embedded commands produced by the SSML tag if(ix > (n_buf - 20)) @@ -2444,10 +2579,10 @@ f_input = f_in; // for GetC etc } } - if(iswupper(c1)) + if(iswupper2(c1)) { tr->clause_upper_count++; - if((option_capitals == 2) && (sayas_mode == 0) && !iswupper(cprev)) + if((option_capitals == 2) && (sayas_mode == 0) && !iswupper2(cprev)) { char text_buf[40]; char text_buf2[30]; @@ -2464,7 +2599,7 @@ f_input = f_in; // for GetC etc } } else - if(iswalpha(c1)) + if(iswalpha2(c1)) tr->clause_lower_count++; if(option_phoneme_input) @@ -2533,8 +2668,8 @@ if(option_ssml) parag=1; if(!iswspace(c1)) { - if(!IsAlpha(c1) || !iswlower(c1)) -// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1))) + if(!IsAlpha(c1) || !iswlower2(c1)) +// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower2(c1))) { UngetC(c2); ungot_char2 = c1; @@ -2633,7 +2768,7 @@ if(option_ssml) parag=1; if(nl_count==0) { - if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next)))) + if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower2(c_next)))) { // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number c1 = CHAR_COMMA_BREAK; @@ -2652,7 +2787,7 @@ if(option_ssml) parag=1; } else { - if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) + if (iswlower2(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) } } @@ -2661,7 +2796,7 @@ if(option_ssml) parag=1; { is_end_clause = 0; // eg. u.s.a.'s } - if(iswlower(c_next)) + if(iswlower2(c_next)) { // next word has no capital letter, this dot is probably from an abbreviation // c1 = ' '; diff --git a/src/speak.cpp b/src/speak.cpp index e1fa4b55..be869a09 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #ifndef PLATFORM_DOS #ifdef PLATFORM_WINDOWS @@ -101,7 +102,7 @@ static const char *help_text = "\t Compile pronunciation rules and dictionary from the current\n" "\t directory. specifies the language\n" "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" -"\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" +"\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" "--path=\"\"\n" "\t Specifies the directory containing the espeak-data directory\n" "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" @@ -243,16 +244,22 @@ static int OpenWaveFile(const char *path, int rate) if(path == NULL) return(2); - if(strcmp(path,"stdout")==0) + while(isspace(*path)) path++; + + f_wave = NULL; + if(path[0] != 0) { + if(strcmp(path,"stdout")==0) + { #ifdef PLATFORM_WINDOWS // prevent Windows adding 0x0d before 0x0a bytes - _setmode(_fileno(stdout), _O_BINARY); + _setmode(_fileno(stdout), _O_BINARY); #endif - f_wave = stdout; + f_wave = stdout; + } + else + f_wave = fopen(path,"wb"); } - else - f_wave = fopen(path,"wb"); if(f_wave != NULL) { @@ -739,7 +746,7 @@ int main (int argc, char **argv) { value = -1; sscanf(optarg2,"%d",&value); - if((value<0) || (value>2)) + if((value<0) || (value>3)) { fprintf(stderr,"Bad value for -ipa=\n"); value = 0; diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index 6c5d6bc3..c0d197c5 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -1164,6 +1164,17 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) } // end of espeak_SetPhonemes +ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode) +{//============================================================================================================== + /* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator + bits 4-7: 0=eSpeak phoneme names, 1=IPA + */ + option_multibyte = textmode & 7; + TranslateClause(translator, NULL, text, NULL, NULL); + GetTranslatedPhonemeString(buffer, size, phonememode); +} + + ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) {//============================================================================= ENTER("espeak_CompileDictionary"); diff --git a/src/speak_lib.h b/src/speak_lib.h index 1cc15bc1..d39dba8c 100644 --- a/src/speak_lib.h +++ b/src/speak_lib.h @@ -55,6 +55,9 @@ Revision 7 24.Dec.2011 Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. +Revision 8 26.Apr.2013 + Added function espeak_TextToPhonemes(). + */ /********************/ /* Initialization */ @@ -94,7 +97,7 @@ typedef struct { char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. } id; } espeak_EVENT; -/* +/* When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. @@ -102,16 +105,16 @@ typedef struct { In PLAYBACK mode, the callback function is called as soon as an event happens. - For example suppose that the following message is supplied to espeak_Synth: + For example suppose that the following message is supplied to espeak_Synth: "hello, hello." * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : ** Block 1: -