diff --git a/.gitignore b/.gitignore index c3403abf..88fabfd7 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,7 @@ praat-mod/ ChangeLog.txt License.txt ReadMe +Makefile # espeak-data diff --git a/Makefile.am b/Makefile.am index 232f9ba7..fc5f42f9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -160,6 +160,7 @@ dictionaries: src/espeak \ espeak-data/fa_dict \ espeak-data/fi_dict \ espeak-data/fr_dict \ + espeak-data/ga_dict \ espeak-data/grc_dict \ espeak-data/hbs_dict \ espeak-data/hi_dict \ @@ -248,6 +249,12 @@ dictsource/bg_extra: espeak-data/bg_dict: src/espeak espeak-data/phontab dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra cd dictsource && ../src/espeak --compile=bg && cd .. +bn: espeak-data/bn_dict +dictsource/bn_extra: + touch dictsource/bn_extra +espeak-data/bn_dict: src/espeak espeak-data/phontab dictsource/bn_list dictsource/bn_rules dictsource/bn_extra + cd dictsource && ../src/espeak --compile=bn && cd .. + bo: espeak-data/bo_dict dictsource/bo_extra: touch dictsource/bo_extra @@ -338,6 +345,12 @@ dictsource/fr_extra: espeak-data/fr_dict: src/espeak espeak-data/phontab dictsource/fr_list dictsource/fr_rules dictsource/fr_extra cd dictsource && ../src/espeak --compile=fr && cd .. +ga: espeak-data/ga_dict +dictsource/ga_extra: + touch dictsource/ga_extra +espeak-data/ga_dict: src/espeak espeak-data/phontab dictsource/ga_list dictsource/ga_rules dictsource/ga_extra + cd dictsource && ../src/espeak --compile=ga && cd .. + grc: espeak-data/grc_dict dictsource/grc_extra: touch dictsource/grc_extra diff --git a/dictsource/bg_list b/dictsource/bg_list index 132080a0..a2311072 100644 --- a/dictsource/bg_list +++ b/dictsource/bg_list @@ -48,6 +48,10 @@ _у u v _^_EN // not Roman number x _^_EN // not Roman number +_?? znak +_?A b'ukva + + // symbols % prots'ent $max3 + plus $max3 diff --git a/dictsource/bn_list b/dictsource/bn_list new file mode 100644 index 00000000..cedd2668 --- /dev/null +++ b/dictsource/bn_list @@ -0,0 +1,278 @@ +// Translation rules for Bengali +// This file is UTF8 encoded + +// Numbers + devanagari numbers are changed to latin characters before translation +_0 S'u:n.nV'o: +_1 a'k +_2 d:UI +_3 t'i:n +_4 c'a:@'r +_5 ,pa~c +_6 c#'O:j +_7 S'a:t +_8 'a:t.# +_9 n'O:j + +_10 d'O:S +_11 a'g'a:rO: +_12 b'a:rO: +_13 t'a:rO: +_14 c#:O:d'dO: +_15 p'O:n'e:rO: +_16 S'o:lO: +_17 SO:t'e:rO: +_18 a:t#'e:rO: +_19 U'n'IS + +_20 kU:'ri +_21 e:kU'S +_22 b'a:IS +_23 t'e:IS +_24 c'O:b'bIS +_25 pa~O:c'IS +_26 c#'a:'bb'IS +_27 Sa:ta:S +_28 at#'a:S +_29 Unt'rIs +_30 t'i:rIS + +_31 e:k't:rIS +_32 bat:'rIS +_33 tE't'rIS +_34 ca~o:u:t'rIS +_35 pa~O:it'rIS +_36 c#a'trIS +_37 Sa~it'rIS +_38 at'tr'IS +_39 U'nO:cO:l'IS + +_40 co:l'lIS +_41 e:k'co:l'lIS +_42 bi'al'lIS +_43 te:ta:l'lIS +_44 cu:a:l'lIS +_45 paI'nta:l'lIS +_46 c#e:co:l'lIS +_47 Sat'co:l'lIs +_48 at'co:l'lIS +_49 Uno:pan'ca:S + +_50 p@n'ca:s +_51 e:ka:n'no: +_52 ba:h@n'no: +_53 t'Ip'pan'no: +_54 cu:wan'no: +_55 po:n'ca:n'no: +_56 c#h@p:'an'no: +_57 Sa:ta:n'no: +_58 at#'a:n'no: +_59 Uno:s'at# + +_60 s'a:t.# +_61 e:k'so:t'tI +_62 ba:so:t'tI +_63 te:so:t'tI +_64 ca~o:u:so:t'tI +_65 pa~I'so:t'tI +_66 c#e:so:t'tI +_67 Sat'so:t'tI +_68 atso:t'ti +_69 ,Uno:Sat'to:r + +_70 So:t'to:r +_71 e:kat'to:r +_72 ba:hat'to:r +_73 tIat'to:r +_74 cu:at'to:r +_75 pa~c#at'to:r +_76 c#I'at:to:r +_77 Sa:t@'t:o:r +_78 atat'to:r +_79 ,Uno:a:Si: + +_80 a:Si +_81 e:ka:Si: +_82 bI'ra:Si: +_83 tIra:Si: +_84 cu:ra:Si: +_85 pa~ca:Si: +_86 c#Ia:Si: +_87 Sa:ta:Si: +_88 O:sto:a:Si: +_89 Uno:no:b'bo:I + +_90 no:b:bo:I +_91 e:ka:no:b'bo:I +_92 bIra:no:b'bo:I +_93 tIr'a:no:b'bo:I +_94 cu:r'a:no:b'bo:I +_95 pa~ca:no:b'bo:I +_96 c#Ia:no:b'bo:I +_97 S@ta:no:b'bo:I +_98 ata:no:b'bo:I +_99 nIra:no:b'bo:I + +_0C SO: +_0M1 h@z'a:r +_0M2 l'a:k# +_0M3 ko:tI +_0M4 o:r'bu:d +_dpt d@so:mIk + +// Single consonants +ক k@ +খ k#@ +গ g@ +ঘ g#@ +ঙ N'g +চ c@ +ছ c#@ +জ J@ +ঝ J#@ +ঞ n^@ +ট t.@ +ঠ t.#@ +ড d.@ +ঢ d.#@ +ণ n.@ // retroflex n.@ +ত t@ +থ t#@ +দ d@ +ধ d#@ +ন n@ +প p@ +ফ p#@ +ব b@ +ভ b#@ +ম m@ +য় O:j +য J@ +র r@ +ড় r-@ +ঢ় hr@ +ল l@ +শ S@ +ষ s.@ // retroflex [S] +স s@ +হ H@ +ৎ t@ + + +// combining vowel signs +ा #X2a: +ि #X1I +ी #X2i: +ূ #X1U +ू #X2u: +ृ #X1rI +ে #X1e: +ৈ #X2E: +ো #X1o: +ৌ #X1O: +ॐ #X1o~m + + +// Punctuation +। dVn.d.V + +// Pronouns +আমি $u // main: I +আমায় $u +আমার $u + +আমরা $u // we +আমাদের $u + +আপনি $u // you(formal) +আপনাকে $u +আপনার $u + +তুমি $u // you (informal) +তোমায় $u +তোমার $u +তোমাদের $u + +তুই $u // you (informal) +তোকে $u +তোর $u + +এ $u // he/she/it +একে $u +এটার $u +এর $u + +ইনি $u // they +এনাকে $u +এনার $u + +ও $u // he/she/it +সে $u +ওর $u +তার $u + +ওরা $u // they +তারা $u +ওদের $u // unheṃ: them +তাদের $u + +এই $u // e:I this/it +এটা $u // e:ta: this/it +এটার $u // e:ta:'r this/it +এর $u // e:r this/it + +ওটা $u // o:ta: that +ওটাকে $u // o:ta:ke: to that +ওটার $u // o:ta:'r of that + +ওগুলো $u // o:gu:lo: those +ওগুলোকে $u // o:gu:lo:ke: to those +ওগুলোর $u // o:gu:lo:'r of those + + + +// Prepositions/Postpositions +মধ্যে $u // moddhe in +উপর $u // upor on, above +নীচে $u // niche below + +পূর্ব্বে $u // purbe before, prior +পর্য্যন্ত $u // parjonto till +অব্দি $u // abdi till +বিনা $u // bina without + + + +// Questions +কেন $u $pause // kano why interrogative particle +কি $u $pause // ki what +কোথায় $u $pause // kothaay where +কখন $u $pause // kakhon when +কে $u $pause // ke who + +// Conjunctions + +এবং $u $pause // ebong: and +আর $u $pause // aar: and +অথবা $u $pause // athoba: or +কিন্তু $u $pause // kintu: but +যদি $pause // jodi: if +তবু $pause // tobu: still, yet +তবে $pause // tabe: if...then +অথচ $u // athacho: yet + + +// Verbs + +ছিল $u // chilo: past aux +ছিলেন $u // chilen + + +করছি $u // korchi: continuous +করছিলাম $u // korchilam: past indefinite +করেছি $u // korechi: past + + +// Exceptions +ক্রিকেট krIk'Et +সাইবার s'aIb@r diff --git a/dictsource/bn_rules b/dictsource/bn_rules new file mode 100644 index 00000000..862261c0 --- /dev/null +++ b/dictsource/bn_rules @@ -0,0 +1,317 @@ + +// This file is UTF8 encoded + +// letter groups: +// A vowel letters and vowel signs +// B vowel signs and virama ् +// C consonants +// Y vowel letters and vowel signs + +// conditional rules +// ?2 use diphthong for "ai" +// ?3 use diphthong for "au" + + +.replace + ০ 0 + ১ 1 + ২ 2 + ৩ 3 + ৪ 4 + ৫ 5 + ৬ 6 + ৭ 7 + ৮ 8 + ৯ 9 + + +// Vowels + + +.group অ + অ a + + +.group আ + আ a: + +.group ই + ই I + ইঁ i~ + ইং I'ng + +.group ঈ + ঈ i: + ঈ (_ i + +.group উ + উ U + +.group ঊ + ঊ u: + ঊং u~ // + anusvara + ঊঁ u~ // + candrabinbu + +.group ঋ + ঋ rI + +.group এঁ + এঁ E // candra e + +.group ঐ + ঐ e + +.group এ + এ e: + +.group ঐ + ঐ E: // ?? [aI] [E:] [&:] + ঐং E~ + ঐঁ E~ +?2 ঐ aI // ?? [aI] [E:] [&:] + + +.group ওঁ + ওঁ O // candra O + +.group ঔ + ঔ o + +.group ও + ও o: + ওং o~ // +anusvara + ওঁ o~ // +candrabindu + +.group ঔ + ঔ O: // ?? [aU] [O:] + ঔঁ O~ // +candrabindu + + +// Vowel Signs + +.group া + া a: + +.group ি + ি I + +.group ী + ী i: + ী (_ i + +.group ূ + ূ U + +.group ু + ু u: + +.group ৃ + ৃ rI + +.group ে + ে e: + +.group ৈ + ৈ E: // ?? [aI] [E:] [&:] + +.group ো + ো o: + +.group ৌ + ৌ O: // [O:] or [aU] ?? + +.group ॐ + ॐ o~m + +// Consonants + +.group ক + ক k@ + ক (B k + ক্য (्য kja: + ক্ষ k#'@ + +.group খ + খ k#V + খ (B k#@ + +.group গ + গ gV + গ (B g@ + ঈ)গ (ল g@ + +.group ঘ + ঘ g#V + ঘ (B g# + +.group ঙ + ঙ N'g + ঙ্ (B N + গা)ঙ (চি Ng@ + +.group চ + চ cV + চ (B c + ্য) চ্য c'j@ + +.group ছ + ছ c#V + ছ (B c#@ + +.group জ + জ J@ + জ (B J@ + ্) জ zV + জ (B J@ + +.group ঝ + ঝ J#@ + ঝ (B J#@ + +.group ঞ + ঞ n^V + ঞ্ (B n^ + + +.group ট + ট t.V + ট (B t.V + ট (्য় t.j@ + +.group ঠ + ঠ t.#V + ঠ (B t.# + +.group ড + ড d.V + ড (B d. + +.group ঢ + ঢ d.#V + ঢ (B d.# +.group ণ + ণ n.V // (temporary) same as dental [n] + ণ (B n. + ণ্ম n.m + + +.group ত + ত t@ + ত (B t@ + +.group থ + থ t#@ + থ (B t# + ক) থ (ন t#@ + +.group দ + দ d@ + দ (B d + ব) দ (ল d@ + +.group ধ + ধ d#@ + ধ (B d# + সা) ধ (ন d#@ + +.group ন + ন n@ + ন (B n@ + ্) ন (্ n@ + র্) ন (_ r.n // r +virama অর্ণব + + +.group ন + ন n: // should this be a long [n] ? + +.group প + প p@ + প (B p + প্য (्য p: + +.group ফ + ফ p#@ + ফ (B p#@ + ফ p#@ + + +.group ব + ব b@ + ব (B b@ + +.group ভ + ভ b#@ + ভ (B b#@ + +.group ম + ম mV + ्) ম (_ mV + র্) ম (_ r.m@ // r +virama + ন্) ম (_ n.m // n +virama + +.group য় + য় jV + য় (B jV + +.group য + য J@ + য (B J@ + ्) য (_ ja + +.group র + র rV + র (B r + ्) র (_ r@ + + +.group ল + ল l + ল (B l@ + ক) ল (ম l@ + + +.group শ + শ S@ + শ (B S@ + +.group ষ + ষ s + ষ (B s //?? + +.group স + স s@ + স (B s. + +.group হ + হ H@ + হ (B H@ + হ্ব v@ +.group হ্ব + B) হ্ব (B v@ + +.group ৎ + ৎ (B t@t + + + + // nukta, modifies a consonant + +.group ্যা // ja'falaa + ্যা a + +.group ँ + ँ n // candrabindu + +.group ং + ং aN'g // anusvara + +.group ः + ः H // visarga + +.group ্ // virama + ্ + + + + + diff --git a/dictsource/bo_rules b/dictsource/bo_rules index 5a0efa1a..3dd786ea 100644 --- a/dictsource/bo_rules +++ b/dictsource/bo_rules @@ -21,9 +21,9 @@ @) ཀ (_ k .group ཁ - ཁ kha - ཁ (B kh - @) ཁ (_ kh + ཁ k#a + ཁ (B k# + @) ཁ (_ k# .group ག ག ga @@ -31,9 +31,9 @@ @) ག (_ g .group གྷ - གྷ gha - གྷ (B gh - @) གྷ (_ gh + གྷ g#a + གྷ (B g# + @) གྷ (_ g# .group ང ང Na @@ -46,9 +46,9 @@ @) ཅ (_ c .group ཆ - ཆ cha - ཆ (B ch - @) ཆ (_ ch + ཆ c#a + ཆ (B c# + @) ཆ (_ c# .group ཇ ཇ Ja @@ -66,9 +66,9 @@ @) ཊ (_ t. .group ཋ - ཋ th.a - ཋ (B th. - @) ཋ (_ th. + ཋ t.#a + ཋ (B t.# + @) ཋ (_ t.# .group ཌ ཌ d.a @@ -76,9 +76,9 @@ @) ཌ (_ d. .group ཌྷ - ཌྷ dh.a - ཌྷ (B dh. - @) ཌྷ (_ dh. + ཌྷ d.#a + ཌྷ (B d.# + @) ཌྷ (_ d.# .group ཎ ཎ n.a @@ -91,9 +91,9 @@ @) ཏ (_ t .group ཐ - ཐ tha - ཐ (B th - @) ཐ (_ th + ཐ t#a + ཐ (B t# + @) ཐ (_ t# .group ད ད da @@ -101,9 +101,9 @@ @) ད (_ d .group དྷ - དྷ dha - དྷ (B dh - @) དྷ (_ dh + དྷ d#a + དྷ (B d# + @) དྷ (_ d# .group ན ན na @@ -116,9 +116,9 @@ @) པ (_ p .group ཕ - ཕ pha - ཕ (B ph - @) ཕ (_ ph + ཕ p#a + ཕ (B p# + @) ཕ (_ p# .group བ བ ba @@ -126,9 +126,9 @@ @) བ (_ b .group བྷ - བྷ bha - བྷ (B bh - @) བྷ (_ bh + བྷ b#a + བྷ (B b# + @) བྷ (_ b# .group མ མ ma @@ -141,9 +141,9 @@ @) ཙ (_ ts .group ཚ - ཚ tsha - ཚ (B tsh - @) ཚ (_ tsh + ཚ ts#a + ཚ (B ts# + @) ཚ (_ ts# .group ཛ ཛ dza @@ -151,9 +151,9 @@ @) ཛ (_ dz .group ཛྷ - ཛྷ dzha - ཛྷ (B dzh - @) ཛྷ (_ dzh + ཛྷ dz#a + ཛྷ (B dz# + @) ཛྷ (_ dz# .group ཝ ཝ wa @@ -245,16 +245,16 @@ ྐ (B k @) ྐ (_ k - ྑ kha - ྑ (B kh - @) ྑ (_ kh + ྑ k#a + ྑ (B k# + @) ྑ (_ k# ྒ ga ྒ (B g @) ྒ (_ g - ྒྷ gha - @) ྒྷ (_ gh + ྒྷ g#a + @) ྒྷ (_ g# ྔ Na ྔ (B N @@ -264,9 +264,9 @@ ྕ (B c @) ྕ (_ c - ྖ cha - ྖ (B ch - @) ྖ (_ ch + ྖ c#a + ྖ (B c# + @) ྖ (_ c# ྗ Ja ྗ (B J @@ -280,17 +280,17 @@ ྚ (B t. @) ྚ (_ t. - ྛ th.a - ྛ (B th. - @) ྛ (_ th. + ྛ t.#a + ྛ (B t.# + @) ྛ (_ t.# ྜ d.a ྜ (B d. @) ྜ (_ d. - ྜྷ dh.a - ྜྷ (B dh. - @) ྜྷ (_ dh. + ྜྷ d.#a + ྜྷ (B d.# + @) ྜྷ (_ d.# ྞ n.a ྞ (B n. @@ -300,17 +300,17 @@ ྟ (B t @) ྟ (_ t - ྠ tha - ྠ (B th - @) ྠ (_ th + ྠ t#a + ྠ (B t# + @) ྠ (_ t# ྡ da ྡ (B d @) ྡ (_ d - ྡྷ dha - ྡྷ (B dh - @) ྡྷ (_ dh + ྡྷ d#a + ྡྷ (B d# + @) ྡྷ (_ d# ྣ na ྣ (B n @@ -320,17 +320,17 @@ ྤ (B p @) ྤ (_ p - ྥ pha - ྥ (B ph - @) ྥ (_ ph + ྥ p#a + ྥ (B p# + @) ྥ (_ p# ྦ ba ྦ (B b @) ྦ (_ b - ྦྷ bha - ྦྷ (B bh - @) ྦྷ (_ bh + ྦྷ b#a + ྦྷ (B b# + @) ྦྷ (_ b# ྨ ma ྨ (B m @@ -340,17 +340,17 @@ ྩ (B ts @) ྩ (_ ts - ྪ tsha - ྪ (B tsh - @) ྪ (_ tsh + ྪ ts#a + ྪ (B ts# + @) ྪ (_ ts# ྫ dza ྫ (B dz @) ྫ (_ dz - ྫྷ dzha - ྫྷ (B dzh - @) ྫྷ (_ dzh + ྫྷ dz#a + ྫྷ (B dz# + @) ྫྷ (_ dz# ྭ wa ྭ (B w diff --git a/dictsource/da_list b/dictsource/da_list index 76106749..7f7f18a5 100644 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -67,7 +67,7 @@ _? spWrgsmVlstajn _! udRVbstejn _- binnesdrai __ b'Onsdrai -& Vw +& _Vw £ pun? € euro © kVpirajt @@ -102,23 +102,23 @@ _9 n'i _10 t'i _11 'Elv@ _12 t'Vl -_13 tR'&#d@-n // PB & changed to &# +_13 tR'?&#d@-n // PB & changed to &# _14 fj'ord@-n -_15 f'emt@-n +_15 f'Emd@-n _16 s'ajsd@-n _17 s'Wd@-n // PP Y changed to W -_18 '&d@-n // PB a changed to & +_18 '?&d@-n // PB a changed to & _19 n'ed@-n -_2X t'y:w +_2X t'y:?u _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] -_4X f'W:V //PB [f'W:*3] changed to [ f'W:V] +_4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V] _5X h&l't*Es // PB [a] changed to [&], e changed to E _6X t*'Es // PB changed from e to E _7X h&lfj'&rs // PV a changed to & _8X f'irs _9X h&lf'Ems // PB a changed to & -_0C h'un*@:D -_1C ed||h'unR@:D // PB added 'et hundrede' +_0C h'un*VD +_1C ed||h'unRV:D // PB added 'et hundrede' _0M1 t'u:s@-n _1M1 ed||t'u:s@-n // PB added 'et' to tusind _1M2 'e:n||milij'o:n @@ -177,8 +177,8 @@ for fordi fVd'i $pause // because - PB: changed stress når nVr $pause // while der dEr $u+ $u // PB changed from [dA] -hvor v'Vr // where -hvorfor vVf'V // why - final r deleted +hvor v'O // where +hvorfor v?Of'?V // why - final r deleted // prepositions på pO $u @@ -189,14 +189,14 @@ om $u+ $brk // about, within med $u+ // with af & // PB changed from [a?] to [&] - sound too short in a sentence // Also removed $u from 'af' and other words. They disappeared. -ad &: // PB added 'ad' +ad & // PB added 'ad' ad &D $atend $sentence // PB "Det må ikke skille os ad." -at &: $u // PB changed from [at] to [&:] +at & $u // PB changed from [at] to [&:] hos // at - PB: removed [$u+] som sVm $u // which / that - PB: removed [$u+] // pronouns -jeg jai $u+ // I +jeg jaj $u+ // I du du $u de $u han $u @@ -221,10 +221,10 @@ hvis ves $u+ // PB - whose // possessive pronouns min min $u mit mit $u -mine m'in@ +mine m'in3 din d'in $u+ dit d'it $u -dine d'ine +dine d'in3 deres dE:Vs $u hans $u+ hendes $u+ @@ -272,11 +272,11 @@ q ku r Er s es //t te: mooved to da_rules because of clash with T-shirt -u u? +u u v ve w d'Vbeltve: x Eks -y Y? +y y z sEt ø W @@ -288,7 +288,6 @@ night _^_EN the _^_EN skinhead _^_EN skinheads _^_EN -street _^_EN boy _^_EN square _^_EN apple _^_EN @@ -7197,6 +7196,7 @@ suffler $alt suggerer $alt sulfoner $alt summere $alt +opsummere $alt superviser $alt suppler $alt supponer $alt @@ -7304,7 +7304,7 @@ valuter $alt vandaliser $alt varedeklarer $alt varier $alt -vatter $alt +vattere $alt vegeter $alt ventilere $alt verbaliser $alt @@ -11125,25 +11125,25 @@ tournure $alt // exceptions alene &l'en@ // alone -egen a:j@n +egen _|aj@-n mc mak' $capital // PB McDonald -egne a:in@ +egne ajn@- enter entV ide id'e // idea idé id'e // idea tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune] ny ny // new -også Vs@ // also +også Vs@- // also idet id'e // in so far as (rub og stub) R'Ob||V||sd'Ob -tre tr'e // the number 3 +tre tr'E // the number 3 rejicere rejis'eV // PB should not be pronounced [raje] rejicerer rejis'eV // PB rejiceres rejis'eVs // PB rejicering rejis'eRiN // PB nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' nogen n'o:@-n // PB -ligesom lisVm // PB +ligesom l?isVm // PB bliver blir // PB konfirmand kVnferm'&nd // PB konfirmander kVnferm'&nd3 // PB @@ -11151,6 +11151,7 @@ konfirmanderne kVnferm'&nd3-n@ // PB konfirmandernes kVnferm'&nd3-n@s // PB giv g'i // PB the v shouldn't be pronounced giver gir // PB the v shouldn't be pronounced +opgiver Vpgir // PB jaloux sj&'lu // PB jaloux aficionado afisjo'na:do // PB breakdance brEig'da:ns // PB breakdance @@ -11184,7 +11185,7 @@ shampu Sjambo // PB Danish pronunciation - oo has been replaced b wien v'i:n // PB Wien - the town of Vienna calais kal'E // PB Calais - town in France date dejt // PB date - stævnemøde -siger sir // PB silent d +//siger sir // PB silent d (tids nok) tis||n'Vk // PB silent d skateboardet sk'eitbo@d3D // PB (hole in one) h'oulinw,0n // PB English golf expression used in Danish @@ -11253,10 +11254,15 @@ ikes ajks // PB (deres kvarter) dE:Vs||kvA'ter // PB (det kvarter) de||kvA'ter // PB (i kvarter) i||kv'A:dV -(at have) &||h&: // PB the verb 'have', not the noun 'have' = garden -(vil have) vel||h'&: // PB -(du have) du||h&: // PB -(må have) m'O:||h&: // PB +(at have) &||h& // PB the verb 'have', not the noun 'have' = garden +(vil have) vel||h'& // PB +(ville have) v?il3||h'& // PB +(du have) du||h& // PB +(må have) mO:||h& // PB +(skal have) sk?&||h& // PB +(helst have) h'Elst||h& +(gerne have) g'Ern3||h& +(kan have) k?&n||h& // PB (ikke have) ege||h& // PB // PB 'hav' = ocean - 'hav' = have (a nice day) (et hav) ed||hAu @@ -11281,12 +11287,12 @@ steget ste@d // PB problem with noun "hav" = ocean and verb "hav(e)" = to have [hAu]/[h&v] (et hav) ed||h'Au // PB "et hav" = an ocean - not "hav en god dag" - have a nice day // PB legende = legend/myth and = playing -(en legende) en||leg'End@ -legenden leg'End@n +(en legende) en||leg'End@- +legenden leg'End@-n legender leg'EndV legenders leg'EndVs -legenderne leg'EndVn3 -legenderne leg'EndVn3s +legenderne leg'EndVn@- +legendernes leg'EndVn@-s // PB verb "forsyne" noun "forsyn" - stress problem (et forsyn) ed||f'Vrsyn (forsynet har) f'Vrsyn@d||hAr diff --git a/dictsource/da_rules b/dictsource/da_rules index ffd9245b..abc1516b 100644 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -2,8 +2,8 @@ // This file is UTF8 encoded // Spelling-to-phoneme rules for Danish -// Rules and comments marked //PB -// have been made by Peter Bjarkov pbj1234@hotmail.com + +// Peter Bjarkov pbj1234@hotmail.com // Most of the rules are commented with at least one word // which shuld use that particular rule. @@ -22,9 +22,9 @@ .L02 p b f v m // fortungekonsonanter experimental .L03 l d -// PB fortungevokaler - front vowels +// fortungevokaler - front vowels .L04 u y i ø o -// PB bagtungevokaler - not finished, not used yet +// bagtungevokaler - not finished, not used yet .L05 a æ å // pande, bande - pege, bege - passe, basse .L06 p b @@ -36,631 +36,646 @@ .group a - a & // PB changed from [a?] - h) al (fback a // PB - aaron ArVn // PB name - zol) a '& // PB name - vin) ai (gre 'E // PB stressed - _gymn) a (st '& // PB stressed - stigm) a (ta '& // PB stressed - avondale _^_en //PB + a & // changed from [a?] + h) al (fback a // + aaron ArVn // name + zol) a '& // name + m) ary &ri // name + vin) ai (gre 'E // stressed + _gymn) a (st '& // stressed + _gymn) a (sti & // avoid secondary stress in gymnastik + stigm) a (ta '& // stressed + arm) ad (a '&:d // stressed + avondale _^_en -// PB consonant + a + consonant => a: - C) a (Ce & // PB plade, base, mase - C) a (rL04 a // PB karismatisk - t) abernak abVn'ak // PB tabernakel, tabernakler - mil) a (no '&: // PB stressed - C) a (rL11 a // PB bare - past) a & // PB tandpastareklame - r) a (C+ A // PB drab - br) ady Ejdi // PB name - br) adbury &db@-re // PB name - a (dress+ & // PB afsenderadresse - _der) af (_ ,& // PB - a (nstreng+ & // PB overanstreng - a (ntal+ & // PB meterantal - a (ttach+ & // PB militærattache - hvor) af =,& // PB - a (nlæg+ & // PB militæranlæg - oreg) a (no '&: // PB stressed - laud) a (num '& // PB stressed - w) a (ter O // PB - w) ade Ejd // PB Wade, waders - arapahoe &r'&p&hOw // PB +// Short vowel before double consonant + r) a (C%++ ?A // trappe + a (C%+ ?& // pladder, basser, masser + a (ld+ ?& // kalde, falde - TEST ld = 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 // + st) a (ccato & // -// PB consonant + a + double consonant => ?& (glottal a) - C) a (C% ?& // PB pladder, basser, masser - C) a (rr a // PB narrøv, narre - C) a (L06% a // PB tapper, tappen, lapper, lappen - v) a (cc a // PB vaccinere - s) a (bbat & // PB - grim) a (sse '& // PB stressed - _c) annes &:n: // PB French city +// Short followed by 2 consonants = 1 phoneme: lg=>[l], ds=>[s] + a (lg ?& // valg, valget, alge - TEST + a (ls ?& // hals, halsen + a (ds ?& // plads + a (nd ?& // manden + d) an (dy &:n // dandy + br) an (dy &:n // brandy -// PB amm => [a] - a (mm+ a // PB kammerat, amme -// PB k/c + ame => [&] - L10) a (me+ & // PB kamel, kamera, Camelot +// short & - more specific rule(s) needed + pl) a (n ?& // plan + pl) a (ner ?& // planer + pl) a (nen ?& // planen - au (_revoir %o // PB au revoir - au (_pair %o // PB au pair-pige - a (lt & // PB alt, overalt - w) a (lt O // PB name - vr) a (lt A // PB vralte - aserbajdsjan &sVb&S'&n // PB - opst) a (ndelse '& // PB stressed -// PB general rule: [A] after r - r) a (_ A // PB jura, zebra - tr) a A // PB kontraordre - r) aer (_ AV // PB fakturaer, zebraer - fr) a A // PB bagfra - fr) aiche 'ES // PB cremefraiche - laur) a A // PB name - r) a (en A // PB rivieraen - Cr) a (n A // PB transport - br) a (C A // PB Abraham - _br) ando &ndOw // PB M [A] + a (mm++ ?A // kammerat, amme + +// k/c + ame => [&] + L10) a (me+ & // kamel, kamera, Camelot + + s) a (me+ & // person from Lapland + s) a (mer+ ?& // plur. + + au (_revoir %o // au revoir + au (_pair %o // au pair-pige + a (lt ?& // alt, overalt, altid - short + w) a (lt O // name + vr) a (lt A // vralte + aserbajdsjan &sVb&S'&n // + opst) a (ndelse '& // stressed + +// general rule: [A] after r + r) a (_ A // jura, zebra + tr) a A // kontraordre + r) aer (_ AV // fakturaer, zebraer + fr) a A // bagfra + fr) aiche 'ES // cremefraiche + laur) a A // name + r) a (en A // rivieraen + Cr) a (n A // transport + br) a (C A // Abraham + _br) ando &ndOw // Marlon Brando + r) a (n A // ran, ransage + _r) anda (l &ndO // Randall - name + tr) a (C A // straf, traf, trav + str) a A // ekstra + r) a (L06 A // trappe + r) a (CL04 A // generation + vibr) a (to 'A // stressed + r) afae Af&'e // Rafael + r) a (ting Ej // + r) a (d A // rad, radmager + r) adar AdAr // + r) azzia (+ AdS& // razzia + L01r) a A // grad, gral + r) a (l A // cerebral, bralre, general, ralle + kamer) a A // + _hurr) a 'A // stressed + a (dvar & // terroradvarsel + a (nst & // overanstrengt + a (nvend+ & // bruseranvendelse + _madr) a (s 'A // stressed + cr) a (ck+ & // + efter) a (b & // efterabe for) a (n & // foran - for) a (nd A // PB forandre - for) a (nk A // PB forankre - r) a (nch & // PB - br) an (ch AN // PB branche - d) and (ere ANd // PB dendere - r) a (nsigt & // PB pokeransigt + for) a (nd A // forandre + for) a (nk A // forankre + r) a (nch+ & // + br) an (ch AN // branche + d) and (ere ANd // dendere + r) a (nsigt & // pokeransigt -// PB general rule: [a] after r followed by sp/st/sk - r) a (L08 a // PB rask +// a followed by t + a or o: &: + a (ta &: // data TEST + a (to &: // dato TEST -// PB general rule: [&:] after m/n before L02 followed by e - L09) a (L02e &: // mave - can) averal '&v3r3l // PB Cape Canaveral - gn) av (pot Aw // PB gnavpotte - torn) ad (o '&d // PB stressed - n) a (p A // PB - kan) ape &p'e // PB kanape - kan) apé &p'e // PB kanapé - n) a (palm & // PB +// 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 + n) a (p A // + kan) ape &p'e // kanape + kan) apé &p'e // kanapé + n) a (palm & // + d) a (vid &: // name -// PB General rule a between L02: [A] - L02) a (L02 A // PB mappe - too broad? - L02) a (L02e & // PB hvabehar - too broad? - _b) abe (_ Ejp // PB Babe Ruth - f) a (L02rL04 & // PB fabrik - L02) a (L02le & // PB vable - v) a (f++ a // PB vafler - prim) a & // PB primaballerina - L02) a (L02ser A // PB babser - m) amelu (k Am3l'u // PB - p) apegøje ap@g'Vj3 // PB - p) a (v+ & // PB pave, pavillon - sv) a (b & // PB svabre +// General rule &: followed by -tus + a (tus &: // status TEST - sn) a (vs A // PB - L09) a (j a // PB maj - m) a (jo+ & // PB major, majonæse +// General rule a between L02: [A] + L02) a (L02+ ?A // mappe, pap - too broad? + _p) a (m_+ & // Pam - name + L02) a (L02e+ & // hvabehar - too broad? + _b) abe (_ Ejp // Babe Ruth + f) a (brL04+ & // fabrik + L02) a (ble & // vable + prim) a & // primaballerina + L02) a (L02ser A // babser + m) amelu (k Am@-l'u // + p) apegøje Ab@-g'Vj@- // + p) a (v+ & // pave, pavillon + sv) a (b & // svabre -// PB general rule: [a] after l before n - l) a (n & // land - l) an (ce AN // PB lancere - pl) an (ch AN // PB planche - cas) ablan (ca &bl'AN // PB Casablanca - atl) a (ntis '& // PB stressed + sn) a (vs A // + m) a (jo+ & // major, majonæse -// PB general rule: [a] after consonant before m - C) a (m+ a // PB ham, gamle, lam, Sam, samarbejde - s) a (muel & // PB Samuel - _im) a (m '& // PB stressed - s) amurai &mur'aj // PB samurai - k) a (mufl+ a // PB kamuflage - a (mulet a // PB - C) a (mæ+ & // PB kamæleon TEST - C) a (mL04+ & // PB famøs TEST - g) ama (ch &m'& // PB gamacher - pan) a (ma & // PB - _dyn) a (mo '& // PB stressed - inf) a (m '& // PB stressed - h) a (mburger & // PB junkfood - s) a (mant & // PB Samantha - a (ms a // PN Amsterdam - pyj) a (ma '& // PB pyjamas - c) amaro &m'Ero // PB Camaro (car) - lig) a & // PB ligamester - a (mn a // PB amning +// general rule: [a] after l before n + l) a (nd ?& // land, lande, landlig - short & + l) an (cer AN // lancere + pl) an (ch AN // planche + cas) ablan (ca &bl'AN // Casablanca + atl) a (ntis '& // stressed -// PB general rule: [&] after l before m + vowel - l) a (mA+ & // PB lama, reklame - _rekl) a (me '& // PB stressed +// general rule: [A] after consonant before m + C) a (m+ A // ham, gamle, lam, Sam, samarbejde + s) a (muel & // Samuel + _im) a (m '& // stressed + s) amurai &mur'aI // samurai + c) a (mp+ & // camping + a (mulet A // + C) a (mæ+ & // kamæleon TEST + C) a (mø+ & // famøs TEST + g) ama (ch &m'& // gamacher + pan) a (ma & // + _dyn) a (mo '& // stressed + inf) a (m '& // stressed + h) a (mburger & // junkfood + s) a (mant & // Samantha + a (ms A // PN Amsterdam + pyj) a (ma '& // pyjamas + c) amaro &m'Ero // Camaro (car) + lig) a & // ligamester + a (mn A // amning -// PB general rule: consonant + a + labial + front vowel - C) a (mi+ & // PB vitamin, dynamit, kamin, familie - gest) a (po 'a // PB - kad) a (ver '& // PB stressed - r) a (L02L04+ A // PB bravo - f) a (vo+ & // PB favorit - willi) a (m a // PB name - alab) a (m '& // PB Alabama - a (mf A // PB amfetamin, amfora +// general rule: [&] after l before m + vowel + l) a (mA+ & // lama, reklame + _rekl) a (me '& // stressed -// PB general rule: [&] after f before m/n - f) a (L09 & // PB familie, fane - f) a (mle+ A // PB +// general rule: consonant + a + labial + front vowel + C) a (mi+ & // vitamin, dynamit, kamin, familie + gest) a (po 'A // + kad) a (ver '& // stressed + r) a (L02L04+ A // bravo + f) a (vo+ & // favorit + willi) a (m A // name + alab) a (m '& // Alabama + a (mf A // amfetamin, amfora -// fan) a (tL04 '& // PB fanatiker, fanatisk +// general rule: [&] after f before m/n + f) a (L09 & // familie, fane + f) a (nd ?& // fandens + f) a (mle+ A // -// PB general rule: [&] after k - k) a (+ & // PB kage, kaste - k) a (kao+ & // PB kakao - _chik) a (ne '& // PB stressed - sk) a (k A // PB skak - k) abaret abar'E // PB - _b) are (t ar'&# // PB stressed - _mak) a (b '& // PB makaber - stressed - _alk) a (li '& // PB alkalisk stressed - k) atie Ejti // PB name -narkotik) a & // PB narkotikaproblemer +// general rule: [&] after k + k) a (+ & // kage, kaste + k) a (jak &' // kajak + mik) ad (o '&:d // stressed + 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 + _alk) a (li '& // alkalisk stressed + k) atie Ejti // name +narkotik) a & // narkotikaproblemer + k) athy &Te // name // general rule: [&:] after consonant before "ne" - C) a (ne &: // PB "mane" opposed to "mande" - r) a (ne A // PB krigsveteraner + C) a (ne &: // "mane" opposed to "mande" + form) a (ne & // formane + C) a (ner & // glaner + r) a (ne A // krigsveteraner -// PB general rule: [a] after k before p - L10) a (p+ a // PB kappe, kaptajn, handicap - L10) a (pL04+ & // PB kapitel - dac) a (po '& // PB stressed - k) a (pL11+ & // PB [&] before a/e - kapacitet, kapere - k) a (pre+ & // PB - k) a (pring & // PB +// general rule: [A] after k before p + L10) a (p+ A // kaptajn, handicap + L10) a (pp+ ?A // kappe + L10) a (pL04+ & // kapitel + dac) a (po '& // stressed -// PB general rule: [a] after sk before f - sk) a (f+ a // PB skaffe +// general rule: [&] before a/e + k) a (pL11+ & // kapacitet, kapere + k) a (pre+ &: // kapre + k) a (pring &: // -// PB general rule: [&] after sk before p/b - sk) a (L06+ & // PB skab, beredskab +// general rule: [&] after sk before p/b + sk) a (L06+ & // skab, beredskab -// PB general rule: [A] after L01+ p/b + t - L01) a (L06t+ A // PB skabt, gabt +// general rule: [A] after L01+ p/b + t + L01) a (L06t+ A // skabt, gabt -// PB general rule: [a] after k before m - k) a (m a // PB kam, kamp - c) a (mp+ & // PB camping +// general rule: [&] after d + d) a (mL11+ & // dame, damask + _endd) a (_ '& // + _med) a (lje '& // stressed +underd) a (nig '& // stressed + a (fbryd A // nødafbryder + a (fvi A // afvise + ad) a (m A // name +dommed) ag &j // dommedagsprædikant +gammeld) a (gs & // + d) agger (t AgV // + mand) ag (s & // mandagsmiddag + tirsd) ag (s & // tirsdagsmiddag + onsd) ag (s & // onsdagsmiddag + torsd) ag (s & // torsdagsmiddag + fred) ag (s & // fredagsmiddag + lørd) ag (s & // lørdagsmiddag + sønd) ag (s & // søndagsmiddag + hverd) ag & // hverdagskost + dd) a (g+ & // middagstid -// PB general rule: [&] after d - d) a (mL11+ & // PB dame, damask - _endd) a (_ '& // PB - _med) a (lje '& // PB stressed -underd) a (nig '& // PB stressed - a (fbryd A // PB nødafbryder - a (fvi A // PB afvise - ad) a (m A // PB name - d) a (g@+ a // PB dagbog, daggry -dommed) ag &j // PB dommedagsprædikant - d) a (gs@ a // PB dagsorden, dagsaktuel, dagslys -gammeld) a (gs & // PB - d) agger (t AgV // PB - mand) ag (s & // PB mandagsmiddag - tirsd) ag (s & // PB tirsdagsmiddag - onsd) ag (s & // PB onsdagsmiddag - torsd) ag (s & // PB torsdagsmiddag - fred) ag (s & // PB fredagsmiddag - lørd) ag (s & // PB lørdagsmiddag - sønd) ag (s & // PB søndagsmiddag - hverd) ag & // PB hverdagskost - dd) a (g+ & // PB middagstid - _d) a (m_ a // PB dam - _d) a (mm a // PB dammen - d) a (fn a // PB dafnie +// general rule: [A] after d before mp + d) a (mp A // damp -// PB general rule: [A] after d before mp - d) a (mp A // PB damp +// general rule: [A] after a followed by k/g plus t + a (L01t+ A // ak, aktionær, aktuar -// PB general rule: [A] after a followed by k/g plus t - a (L01t+ A // PB ak, aktionær, aktuar +// general rule: [A] after k before g (au) + k) a (g A // kagle -// PB general rule: [A] after k before g (au) - k) a (g A // PB kagle +// general rule: [Au] after m/n before g (au) + L09) ag (+ Au // nagle + m) agn (on &nj // Cro-Magnon + n) agasaki ag&s'aki // + m) agne (t Aun'e // magnet + m) ag (i+ &g // magi + arm) agna (c &N'A // + m) ag (re &j // radmagre + m) ag (asi Ag // magasin + syn) ag (oge &g // + m) agazine &g&s'i:n // magazine + aggie &gi // Maggie + flan) ag (an &g // Flanagan + m) aggiore adZ'o:R3e // -// PB general rule: [a] after j before g - k) a (j a // PB kaj - k) a (jak &' // PB kajak -// PB general rule: [A] after k before p - k) a (ps a // PB kapsel +// general rule: [Au] after b before v + b) av (++ A?u // forbavset + b) a (vian+ ?& // exception -// PB general rule: [a] before b + conconant + i - a (bCi a // PB abrikos - g) a (briel & // PB name +// general rule: [A] before mb/mt + _) a (mb A // ambition + a (mt A // amtskommune + test) a (m & // testamente -// PB general rule: [Au] after m/n before g (au) - L09) ag (+ Au // PB nagle - m) agn (on &nj // PB Cro-Magnon - n) agasaki ag&s'aki // PB - m) agne (t Aun'e // PB magnet - m) ag (i+ &g // PB magi - arm) agna (c &N'A // PB - m) ag (re &j // PB radmagre - m) ag (asi ag // PB magasin - syn) ag (oge &g // PB - m) agazine &g&s'i:n // PB magazine - aggie &gi // PB Maggie - flan) ag (an &g // PB Flanagan - m) aggiore adZ'o:R3e // PB - -// PB general rule: [ak] after m/n before gt - L09) ag (t ak // PB løgnagtig - -// PB general rule: [A] before vl (au) - a (vl A // PB avle - -// PB general rule: [A] before kt - a (kt A // PB aktuar, aktivitet - -// PB general rule: [A] before cc - a (cc A // accent - b) accarat akar'a // PB - st) a (ccato & // PB - -// PB general rule: [Au] after b before v - b) av (++ Au // PB forbavset - b) a (vian+ & // PB exception - -// PB general rule: [a] after sp/st/sk before m - L08) a (m a // skam - _) a (mb A // PB ambition - a (mt A // PB amtskommune - test) a (m & // PB testamente - -// PB general rule: [A] after sp/st/sk before v - L08) a (v & // stav - -// PB general rule: af = [Au] before s +// general rule: af = [Au] before s af (s Aw // afstand -// PB general rule: [Au] before l - av (l+ Aw // savle, tavle, travl +// general rule: [Aw] before l + av (l++ Aw // savle, tavle, travl, avl -// PB general rule: [Au] after l +// general rule: [Aw] after s before consonant + s) av (C Aw // savklinge + +// general rule: [Au] after l _l) av Aw // lavenergi, lavteknologi, lavadel, lavtryk - _l) av (v Aw // PB lavvandet + _l) av (v Aw // lavvandet l) a (vendel & // exception: lavendel - sl) a (v &: // exception: slaver - l) av (et &:v // exception: lave - _l) av (_ &v // PB lav - l) av (er &v // PB laver, lavere - l) av (ed &v // PB lavede - l) av (es &v // PB laves - l) av (t_ &v // PB lavt - l) av (ni &v // PB madlavning - l) av (a_ &v // PB lava - l) av (ae &v // PB lavaen - l) av (aC &v // PB lavalampe - l) av (ine &v // PB lavine - b) alaklav (a &l&kl'&:v // PB - g) av (mi Au // PB gavmild + sl) a (v & // exception: slaver + l) av (et &v // exception: lave + _l) av (_ &v // lav + l) av (er &v // laver, lavere + l) av (ed &v // lavede + l) av (es &v // laves + l) av (t_ &v // lavt + l) av (ni &v // madlavning + l) av (a_ &v // lava + l) av (ae &v // lavaen + l) av (aC &v // lavalampe + l) av (ine &v // lavine + b) alaklav (a &l&kl'&:v // + g) av (mi Au // gavmild -// PB general rule: [Au] after t before s +// general rule: [Au] after t before s t) av (s Aw // tavshed - _t) av (_ Aw // PB han tav stille + _t) av (_ Aw // han tav stille -// PB general rule: [A] before r - a (r+ A // skar - hav) a (rti 'A // PB stressed - e) a (rL04+ & // PB stearin - a (rrest a // PB - b) arry &ri // PB name - saf) a (ri 'A // PB stressed - _has) a (rd 'A // PB stressed - _bast) a (rd 'A // PB stressed - _foul) a (rd 'A // PB stressed -_helleb) a (rd 'A // PB stressed - _lomb) a (rd 'A // PB stressed - _mans) a (rd 'A // PB stressed - _poul) a (rd 'A // PB stressed -_longob) a (rd 'A // PB stressed - _mal) a (ria 'A // PB stressed - _al) a (rm 'A // PB stressed - _mon) a (rk 'A // PB stressed - _mon) a (rki A' // PB stressed - _bulg) a (r 'A // PB bulgarer - stressed +// general rule: [A] before r + ar (++ A: // skar, fare, faren, barsk + ar (ne+ A // barnet + ar (e+ AR // reparere, parere TEST + f) are (++ A:A // fare + f) ar (et++ A3- // faret + f) arer (++ A:V // farer, søfarer + f) arere (++ A:VR@- // søfareren + ar (a+ AR // arabisk, ara + ar (_++ Ar // sårbar + C) ara (k AA // karakteristika + a (rr++ ?A // narren - short A + ti) a (ra 'A: // stressed + m) arokko ar'Vko // stressed + hav) a (rti 'A // stressed + e) a (rL04+ & // stearin + a (rrest a // + b) arry &rI // name + @b) a (rlig 'A // ufejlbarlig - stressed + saf) a (ri 'A // stressed + _has) a (rd 'A // stressed + _bast) a (rd 'A // stressed + _foul) a (rd 'A // stressed +_helleb) a (rd 'A // stressed + _lomb) a (rd 'A // stressed + _mans) a (rd 'A // stressed + _poul) a (rd 'A // stressed +_longob) a (rd 'A // stressed + _mal) a (ria 'A // stressed + _al) a (rm 'A // stressed + _mon) a (rk 'A // stressed + _mon) a (rki A' // stressed + _bulg) a (r 'A // bulgarer - stressed -// PB general rule: [a] before velars - a (L01++ a // planke, slanke, anke, flanke, gang - es) a (jas 'a // PB name - pizz) a & // PB pizzakæde - a (L01L04++ & // PB bajonet, lagune - t) a (ng+ a // PB tango - C) a (L10L04++ a // PB pakistan - afrik) a (+ & // PB Afrikakorpset - f) a (cL04++ & // PB facon, facilitet - kap) a (cit & // PB kapacitet - s) a (ng+ a // PB sangundervisning - ag (gregat & // PB - ang (ul++ ang // PB rektangulær - m) ang (o ang // PB - j) a (L10o+ A // PB Jakob, Jacob - C) a (nL10L04++ a // PB blankocheck - h) a (nkøn++ & // PB - h) a (j++ a // PB hajøjne - sp) a (nkuler a // PB - akryl &kr'yl // PB - mal) a (L01a & // PB Malaga TEST - beh) a (g & // PB - big_b) a (ng & // PB - airb) a (g & // PB - di) a (L01+ & // PB diakon - h) a (nkat & // PB -// l) a (gune & // PB - _m) ag (_+ &j // PB - f) ag (_ &j // PB hovedfag -//naturf) ag (_ &j // PB - _mass) a (kre 'a // PB stressed - _gal) a (kse 'a // PB stressed +// general rule: [a] before velars + a (L01++ A // planke, slanke, anke, flanke, gang, hank, aksel, maj, blanko + a (x A // Axel + es) aj (as 'aI // name + pizz) a & // pizzakæde + b) a (jonet & // + l) a (gune & // + C) a (L10L04++ A // pakistan + afrik) a (+ & // Afrikakorpset + f) a (cL04++ & // facon, facilitet + kap) a (cit & // kapacitet + ag (gregat & // + ang (ul++ Ang // rektangulær - not a silent g + j) a (L10o+ A // Jakob, Jacob + h) a (nkøn++ & // + h) a (nkanin & // + sp) a (nkuler A // + akryl &kr'yl // + mal) a (L01a & // Malaga TEST + beh) a (g & // + big_b) a (ng & // + airb) a (g & // + di) a (L01+ & // diakon + h) a (nkat & // + _m) ag (_+ &j // + f) ag (_ &j // hovedfag + _mass) a (kre 'A // stressed + _gal) a (kse 'A // stressed _) a (L01L04++ & // angive, ankomme - selv) a (ngiv & // PB selvangivelse - p) a (gn+ & // PB kompagniskab - p) a (gL11+ & // PB propaganda - @) a (krL04+ & // PB anakronisme TEST - r) a (L01++ A // PB tragisk -boomer) a (ng 'A // PB stressed - r) angoon &ng'u:n // PB - a (kadem++ & // PB militærakademi - a (ggres++ & // PB aggression - spr) ag (let Aw // PB - a (L01e++ a // bange - _) a (gA++ & // PB agere - tilf) a (nge 'a // PB tilfangetagelse -michel) angelo 'andZ3lo // PB name - firm) a (+ & // OB firmajet - re) a (g+ & // PB reagere, reagensglas - a (kaC++ & // PB akavet, akademiker, akacie - f) a (nklub+ & // PB - a (nho++ & // PB anholde - a (ngav++ & // PB angav - a (ngå++ & // PB - b) a (gage++ & // PB bagage - s) a (g+ & // PB ankesag, sag, sago, heksagon - s) ag (C+ Au // PB sagfører - s) ag (s_+ &j // PB for den sags skyld - s) a (gsma++ & // PB sagsmappe - s) a (gsan++ & // PB sagsanlæg - s) a (gsom++ & // PB sagsomkostninger - s) a (gsbehandl++ & // PB sagsbehandler -snakkes) ag (lig '& // PB - s) ag (sø Au // PB sagsøge - sl) a (ng+ & // PB - sl) a (nge+ a // PB - livsl) a (ng+ a // PB livslang - skav) a (nk 'A // PB - a (nklag++ & // PB anklage - ang (re aN // PB angre - _) ang (eC aN // PB anger, angelsaksisk - _) ang (ol ang // PB Angola - ang (ina ang // PB - ang (iogr ang // PB angiografi - ang (reb &ng // PB angreb + selv) a (ngiv & // selvangivelse + p) a (gn+ & // kompagniskab + p) a (gL11+ & // propaganda + @) a (krL04+ & // anakronisme TEST + r) a (L01++ A // tragisk +boomer) a (ng 'A // stressed + r) angoon &ng'u:n // + a (kadem++ & // militærakademi + a (ggres++ & // aggression + spr) ag (let Aw // + _) a (gA++ & // agere + tilf) a (nge 'A // tilfangetagelse +michel) angelo 'andZ3lo // name + firm) a (+ & // OB firmaet + re) a (g+ & // reagere, reagensglas + a (kaC++ & // akavet, akademiker, akacie + f) a (nklub+ & // + a (nho++ & // anholde + a (ngav++ & // angav + a (ngå++ & // + b) a (gage++ & // bagage + s) a (g+ & // ankesag, sag, sago, heksagon + +// General rule: sag => sAu + s) ag (C+ Au // sagfører + s) ag (s_+ &j // for den sags skyld + s) ag (sma++ &j // sagsmappe + s) ag (san++ &j // sagsanlæg + s) ag (som++ &j // sagsomkostninger + s) ag (sbehandl++ &j // sagsbehandler +snakkes) ag (lig '& // + s) ag (sø Au // sagsøge + + sl) a (ng+ & // + sl) a (nge+ A // + livsl) a (ng+ A // livslang + skav) a (nk 'A // + a (nklag++ & // anklage + ang (re AN // angre + _) ang (eC AN // anger, angelsaksisk + _) ang (ol Ang // Angola + ang (ina Ang // + ang (iogr Ang // angiografi + ang (reb &ng // angreb ang (ri+ &ng // angribe - _) angela &ndZ@l& // PB name + _) angela &ndZ@l& // name a (gt A // agt - l) a (gt+ A // PB lagt - avoid [au] - forl) a (gt_ ''A // PB stressed - _bat) a (lje '& // PB stressed + l) a (gt+ A // lagt - avoid [au] + forl) a (gt_ ''A // stressed + _bat) a (lje '& // stressed + alfie &lfi // name -// PB general rule: [A] before vn +// general rule: [A] before vn a (vn+ A // favn, savn, avner - gn) a (vne & // PB + gn) a (vne & // -// PB general rule: [a] after kl before consonant - kl) a (L06 a // PB klap + // general rule: consonant + a + c/k: [A] + C) a (L10 A // makværk, Jacob + l) acrosse &kr'Vs // game + tax) a & // taxachauffør + f) a (cL11 & // facade + att) ache &S'e // + C) a (L10L04 & // pacifist - maybe not a valid rule c = s here + k) atakomb &t&k'omb // + C) a (L10e A // race + _p) alace &l&s // Buckingham Palace + L08) a (L10L04 & // stakit + pl) a (ka & // plakat + pl) a (ce & // placere + st) a (ka & // stakat + k) a (ka++ A // kakadue -// PB general rule: consonant + a + c/k: [a] - C) a (L10 a // PB makværk, Jacob - tax) a & // PB taxachauffør - f) a (cL11 & // PB facade - att) ache &S'e // PB - C) a (L10L04 & // PB pacifist - maybe not a valid rule c = s here - k) atakomb &t&k'omb // PB - C) a (L10e a // PB race - _p) alace &l&s // PB Buckingham Palace - L08) a (L10L04 & // PB stakit - pl) a (ka & // PB plakat - pl) a (ce & // PB placere - st) a (ka & // PB stakat - - a (k%L04+ & // PB akkord, akkompagnerer TEST - a (kvA+ & // PB akvarium - a (ppetit a // PB appetit - a (bnorm a // PB - abdo (m Abd'o // PB abdomen - stressed - _) a (bC A // PB Abdul, abdicere - s) a (bl & // PB nedsable - t) a (blet & // PB sprittabletter - a (bb & // PB abbedi - a (bra & // PB Abraham - a (bru & // PB abrupt - h) a (cienda _^_es // PB - l) a (kr %& // PB lakrids - e) a & // PB Korea, azalea - b) ayer ajV // PB bayersk, Bayern - _b) ay (_ Ej // PB Thunder Bay - ayatollah aj&t'Vl& // PB - b) ayreuth ajR'Vjt // PB German town - m) anhattan &nh'&t@n // PB -bloody_m) ary &ri // PB - gu) ay aj // PB Paraguay - a (mp %A // PB ampul - _) aage Ou3 // PB name - _) a (men_ A // PB - _) amager AmAr // PB Amager - _) amy Ejmi // PB name - g) aux 'o // PB Margaux - a (ppar a // PB apparat - a (ppelsin a // PB appelsin - ae (ro E // PB aerobic, aerosol - _st) a (ll O // PB about airplane "stall" - t) alk (show Ok // PB - r) a (cerbil E // PB - r) a (cercyk E // PB - r) a (cerbane E // PB - r) a (cervogn E // PB - r) a (cerkør E // PB + a (k%o+ ?& // akkord, akkompagnerer + a (k%u+ ?A // akkurat + a (kvA+ & // akvarium + a (ppetit ?A // appetit + a (bnorm A // + abdo (m Abd'o // abdomen - stressed + _) a (bC A // Abdul, abdicere + s) a (ble &: // nedsable + t) a (blet & // sprittabletter + a (bb & // abbedi + a (bra & // Abraham + a (bru & // abrupt + h) a (cienda _^_es // + l) a (kr %& // lakrids + e) a & // Korea, azalea + b) ayer aIV // bayersk, Bayern + _b) ay (_ Ej // Thunder Bay + ayatollah aI&t'Vl& // + b) ayreuth aIR'Vjt // German town + m) anhattan &nh'&t@n // +bloody_m) ary &ri // + gu) ay aI // Paraguay + a (mp %A // ampul + _) aage O:?u@- // name + _) a (men_ A // + _) amager AmAr // Amager + _) amy Ejmi // name + g) aux 'o // Margaux + a (ppar+ A // apparat + a (ppelsin+ A // appelsin + ae (ro E // aerobic, aerosol + _st) a (ll O // about airplane "stall" + t) alk (show Ok // + r) a (cerbil E // + r) a (cercyk E // + r) a (cerbane E // + r) a (cervogn E // + r) a (cerkør E // _okt) a (v '& // stressed _konk) a (v '& // stressed - _det) a (lje '& // PB stressed - nev) ad (a '&d // PB - _pol) a (k 'a // PB stressed polak - _kos) a (k 'a // PB stressed - kosak -_milli) a (r 'A // PB stressed - milliard -_trilli) a (r 'A // PB stressed - trilliard - _sejl) ad (s '& // PB stressed - silent d - sejl) ad (s & // PB unstressed - silent d - _sah) a (ra 'A // PB stressed -metast) a (se '& // PB stressed - pic) a (sso '& // PB stressed -supped) a (s '& // PB stressed - _o) a (se '& // PB stressed - salam) a (nder '& // PB stressed -_propag) a (nd '& // PB stressed - propaganda - bals) a (mi '& // PB stressed - balsamico - _fas) a (n '& // PB stressed -_entusi) a (s '& // PB stressed - entusiast - bah) a (ma '& PB stressed - L08) av (C Au // stavn - s) av (C Au // PB savklinge - st) av (nin &v // PB stavning - bogst) av &v // PB bogstavrim - not [Au] - h) av (_ & // PB hav - problem with the noun "hav" [hAu] -iske_h) av Au // PB Kaspiske hav, Karibiske Hav - @h) av (_ Au // PB flammehav - h) av (C Au // PB havbund -københ) av (n 'Aw // PB - h) av (over Au // PB havoverfladen - h) av (is Au // PB -himmel_og_h) av Au // PB "sea/ocean" not "have" = "garden" - øde_h) av Au // PB Det Røde Hav -åbne_h) av Au // PB det åbne hav -åbent_h) av Au // PB på åbent hav - h) av (aborr Au // PB havaborre - h) av (ud Au // PB havudsigt - h) ag (l Au // PB - ag (n+ Au // PB agn, Agnes - r) ag (na+ Au // PB ragnarok - ag (new &g // PB name - champ) agne '&nj@ // PB champagne - ag (nos %ag // PB agnostiker - hav) a (nna '& // PB Havanna - h) a (ck+ & // PB hacke - color) ado 'Ado // PB US state - _) av (_ Au // PB av - _f) akultet &kult'et // PB fakultet - f) akultet &kultet // PB idrætsfakultet - _) absolution AbsoluS'on // PB - absolution AbsoluSon // PB - _) attribution &tRibuS'on // PB - attribution &tRibuSon // PB - C) a (x+ a // PB fax, taxa + _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 + _sah) a (ra 'A // stressed +metast) a (se '& // 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 +_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] + h) av (_ & // hav - problem with the noun "hav" [hAu] +iske_h) av A?u // Kaspiske hav, Karibiske Hav + @h) av (_ A?u // flammehav + h) av (C A?u // havbund, havre +københ) av (n 'Aw // + h) av (over A?u // havoverfladen + h) av (is A?u // +himmel_og_h) av A?u // "sea/ocean" not "have" = "garden" + øde_h) av A?u // Det Røde Hav +åbne_h) av A?u // det åbne hav +åbent_h) av A?u // på åbent hav + h) av (aborr A?u // havaborre + h) av (ud A?u // havudsigt + h) ag (l A?u // + ag (n+ A?u // agn, Agnes + r) ag (na+ A?u // ragnarok + ag (new &g // name + champ) agne '&nj@- // champagne + _kamp) agne '&nj@- // stressed + ag (nos %Ag // agnostiker + hav) a (nna '& // Havanna + h) a (ck+ & // hacke + color) ado 'Ado // US state + _) av (_ Au // av + _f) akultet &kult'et // fakultet + f) akultet &kultet // idrætsfakultet + _) absolution AbsoluS'on // + absolution AbsoluSon // + _) attribution &tRibuS'on // + attribution &tRibuSon // + C) a (x+ A // fax, taxa m) a (ka & // PN makaber - klim) a & // PB klimarelateret - klim) a (ks a // PB - C) a (ck a // PB tackle - sn) a (ck & // PB - bl) a (ck & // PB blackout - s) a (x a // PB saxofon - @l) a (g &j // PB nederlag - _v) ag (_ &j // PB - _v) ag (e_ &j // PB -lidt_v) ag (t &j // PB - gr) ape Eb // PB grapefrugt - astaire &sd'E:r // PB name - albuquerque &l/2b3kWki // PB US city - l) arge AdZ // PB - a (merikan a // PB amerikansk - aids Eids // PB - air Er // PB airbag - n) ai (robi aj' // PB - _k) airo ajro // PB Kairo - c) ai (ro aj // PB - det) ai (l 'aj // PB detailhandel - _sin) ai aj // PB Sinai - cl) aire E:r // PB name - aubrey O:bri // PB name - audrey O:dRi // PB name - agency EjdZ@nsi // PB - ambrose &mbR0us // PB -ginger_) ale Ejl // PB - playm) ate Ejt // PB - appeal &p'il // PB sexappeal - _d) ave _^_en // PB name - _w) aco Ejkow // PB US city + klim) a & // klimarelateret + klim) a (ks A // + C) a (ck A // tackle + sn) a (ck & // + bl) a (ck & // blackout +// s) a (x A // saxofon + @l) a (g &j // nederlag + _v) ag (_ &j // + _v) ag (e_ &j // +lidt_v) ag (t &j // + gr) ape Eb // grapefrugt + astaire &sd'E:r // name + albuquerque &l/2b3kWki // US city + l) arge AdZ // + a (merikan A // amerikansk + aids Eids // + air E:3- // airbag, fair + n) ai (robi aI' // + _k) airo aIro // Kairo + c) ai (ro aI // + det) ai (l 'aI // detailhandel + _sin) ai aI // Sinai + cl) aire E:r // name + aubrey O:bri // name + audrey O:dRi // name + agency EjdZ@nsi // + ambrose &mbR0us // +ginger_) ale Ejl // + playm) ate Ejt // + appeal &p'il // sexappeal + _d) ave _^_en // name + _w) aco Ejkow // US city r) aw (+ O // OB Rawlins - l) awrence 0r@ns // PB name - b) ach ax // PB name - _) ahab Ejh&b // PB name - _) allie (_ &li // PB name - C) ayes Ejs // PB name Hayes - en_l) a (ser Ej // PB - l) a (serst Ej // PB laserstråle - l) a (serpr Ej // PB laserprinter - l) a (seren Ej // PB - l) a (sernes Ej // PB - m) ay (a aj // PB - _indi) a (na '& // PB stressed - U.S. state + l) awrence 0r@ns // name + b) ach Ax // name + _) ahab Ejh&b // name + _) allie (_ &li // name + C) ayes Ejs // name Hayes + en_l) a (ser Ej // + l) a (serst Ej // laserstråle + l) a (serpr Ej // laserprinter + l) a (seren Ej // + l) a (sernes Ej // + m) ay (a aI // + _indi) a (na '& // stressed - U.S. state -// PB stressed a in final -al in $alt words in da_list +// stressed a in final -al in $alt words in da_list &) al ($p_alt+ ''&l // fatal, monumental, krystalklar, regional - &) al (ist$p_alt+ &l // PB specialist - &) al (e_$p_alt+ ''&l // PB anale - &r) al (e_$p_alt+ 'Al // PB liberale + &) al (ist$p_alt+ &l // specialist + &) al (e_$p_alt+ ''&l // anale + &r) al (e_$p_alt+ 'Al // liberale, morale r) al ($p_alt++ 'Al // [A] after "r" - general, neutral, koral - &) al (ism$p_alt+ &l' // PB socialisme + &) al (ism$p_alt+ &l' // socialisme // exception - no stress because of stressed -ion - r) a (l@@+ A // PB centralisation NEEDS MORE WORK - an) al (fabet =&l // PB - an) al (y+ &l' // PB analytiker - form) aldehyd &ld3h'yD // PB + r) a (l@@+ A // centralisation NEEDS MORE WORK + an) al (fabet =&l // + an) al (y+ &l' // analytiker + form) aldehyd &ld@-h'yD // -// PB words in da_list with final -ance - stressed a +// words in da_list with final -ance - stressed a &) 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@ // PB unstressed after a syllable - ferieromance - &) ance (re+ ANse // PB afbalancere - &) ance (re$p_alt ANs'e // PB avancere + &) ance (+ ANs@ // unstressed after a syllable - ferieromance + &) ance (re+ ANse // afbalancere + &) ance (re$p_alt ANs'e // avancere -// PB stressed "a" in words with -ant in da_list +// 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 -// PB stressed a in final -at - words in da_list - &) at ($p_alt '&t // attentat +// stressed a in final -at - words in da_list + &) at ($p_alt '&d // attentat &) 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 @@ -668,14 +683,14 @@ ginger_) ale Ejl // PB &r) at (i$p_alt At // [A] after "r" - demokrati &r) at (ur$p_alt At' // [A] after "r", stressed u - littteratur intern) atio (nal &So // clash with "internat" -_oblig) atio (n &S'o // PB clash with "obligat" in da_list - oblig) atio (n &S'o // PB statsobligation +_oblig) atio (n &S'o // clash with "obligat" in da_list + oblig) atio (n &S'o // statsobligation -// PB (stressed a in final -ar - words in da_list - &) ar ($p_alt ''Ar // antikvar, dinar - &) ar (iat$p_alt Ar // antikvariat +// (stressed a in final -ar - words in da_list + &) ar ($p_alt+ ''A // antikvar, dinar + &) ar (iat$p_alt ''A // antikvariat -// PB nouns with final -ade in da_list - stressed a +// 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 @@ -684,33 +699,35 @@ _oblig) atio (n &S'o // PB clash with "obligat" in da_list &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 -// PB nouns with final -an in da_list - stressed a +// 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 ($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 -// PB final -abel in da_list - stressed a - &) ab (el$p_alt '&b // aimabel - &r) ab (el$p_alt 'Ab // kurabel +// final -abel in da_list - stressed a + &) ab (el$p_alt '?&b // aimabel + &r) ab (el$p_alt '?Ab // kurabel &) ab (le$p_alt '&b // konstabler -// PB nouns with final -agtig in da_list - stressed a - &) agtig ($p_alt+ 'agti // tyvagtig +// nouns with final -agtig in da_list - stressed a + &) agtig ($p_alt+ 'Agti // tyvagtig -// PB nouns with final -gram in da_list - stressed a - &gr) am ($p_alt+ 'am // program - &gr) am (m$p_alt+ 'a // programmet - only one m +// nouns with final -gram in da_list - stressed a + &gr) am ($p_alt+ 'Am // program + &gr) am (m$p_alt+ '?A // programmet - only one m - erf) a (r 'A // PB erfaren, erfaring - erst) a (tning '& // PB - åbenb) a (ring 'A // PB - bef) a (ring *A // PB - besp) a (ring 'A // PB - forv) a (ring 'A PB + erf) a (r 'A // erfaren, erfaring + erst) a (tning '& + åbenb) a (ring 'A + bef) a (ring *A + besp) a (ring 'A + forv) a (ring 'A -// PB final -na - stressed previous syllable +// final -na - stressed previous syllable _aren) a =& _bandan) a =& _angin) a =& @@ -740,548 +757,547 @@ _retsin) a =& _tsarin) a =& _zarin) a =& -// PB a few words with -akt - stressed a -_abstr) a (kt 'a - _eks) a (kt 'a -_ekstr) a (kt 'a - _int) a (kt 'a -_katar) a (kt 'a - _komp) a (kt 'a - _kont) a (kt 'a -_kontr) a (kt 'a +// a few words with -akt - stressed a +_abstr) a (kt 'A + _eks) a (kt 'A +_ekstr) a (kt 'A + _int) a (kt 'A +_katar) a (kt 'A + _komp) a (kt 'A + _kont) a (kt 'A +_kontr) a (kt 'A - v) a (nlig '& // PB usædvanlig - stressed a - pal) ad (s '& // PB palads - stressed a, silent d - kart) a (go '&: // PB Kartago - stressed a - komm) a (nd '& // PB kommando - stressed - bogot) a '& // PB - kast) a (nje '& // PB stressed + v) a (nlig '& // usædvanlig - stressed a + pal) ad (s '& // palads - stressed a, silent d + kart) a (go '&: // Kartago - stressed a + komm) a (nd '& // kommando - stressed + bogot) a '& // + kast) a (nje '& // stressed foranst) a (lt '& // PN stressed - foranstaltning - org) a (s '& // PB orgasme - stressed -_psyki) a (t ''& // PB psykiater - stressed + org) a (s '& // orgasme - stressed +_psyki) a (t ''& // psykiater - stressed _bratisl) a (v '& // PM Bratislava -skandin) a (v '& // PB skandinav -jugosl) a (v '& // PB jugoslav -_vatik) a (n '& // PB Vatikanet - _prim) a (l '& // PB stressed - primalterapi - lumb) a (go '& // PB stressed - lumbago - _kapt) a (jn 'a // PB kaptajn - tilsk) a (de '& // PB tilskadekommne - al) a (sk '& // PB Alaska -_radio) a (kti 'A // PB stressed - radioaktiv -_impres) a (rio 'A // PB stressed - _rab) arber 'AbV // PB stressed - _ar) a (ber 'A // PB stressed - eng) a (ng 'a // PB stressed -_karav) a (ne '& // PB stressed -_chimp) a (n '& // PB stressed - chimpanse - pastr) a (mi 'A // PB stressed - _bar) a (k 'A // PB stressed - _kak) a (o '& // PB stressed - _can) a (dier '& // PB stressed - a (sme '& // PB orgasme, entusiasme - bl) a (d & // PB blad - h) a (n & // PB han - tj) a (_ &: // PB - j) avert aurt // PB javert - l) ave (ment &@ // PB lavement - l) ave (_ &v@ // PB lave - l) aver (_ &vV // PB laver - sl) ave &v@ // PB slavearbejde - sl) aver &vV // PB - _enkl) a (ve+ '& // PB stressed - _enkl) aver '&vV // PB stressed - pal) a (ver+ '& PB stressed - also [aw] -kanonl) avet &vet // PB exception - French origin - freel) ance A:Ns // PB - kl) aver (_ &v'er // PB klaver - g) a (v &: // PB gav, opgave - g) avflab awfl&b // PB - g) av (tyv au // PB - b) a (jer a // PB - b) aby (+ eibi // PB baby - _) a (nder a // PB anderledes - _) anderson &ndVsVn // PB name - _) angie &ndZi // PB name - _) a (ndet & // PB andet - _) a (nden & // PB anden - t) a (bt a // PB tabte - l) a (b_+ a // PB suge på labben - fl) a (b_+ & // PB - l) a (bb a // PB labben - l) a (be & // PB laber - L08) a (bL11 &: // PB skabe - _) a (bs A // PB absolut, abstrakt, absurd - a (bc A // PB abces - ai (mabel E // PB aimabel - mir) abel Ab'El // PB mirabel(le) - p) ace eis // PB motorpace, pacemaker - pacem) a (k ei // PB pacemaker -interf) a (ce ei // PB interface - L08) a (d &: // PB stadig - busk) ad (s '& // PB - _) a (e_ &: // PB ae - a (fC+ a // PB af = au and exceptions in the f group - vodk) a & // PB vodkaflaske - a (ffære+ & // PB - st) a (ffage & // PB - a (ffutage & // PB - aftershave aftVSEjv // PB - gir) a (f 'A // PB - ri) a (m A // PB Miriam - sof) a & // PB sofafjeder - _) a (ffekt+ & // PB affekt - a (fsted+ & // PB afstedkomme - col) a & // PB colaflaske - C) a (ft A // PB haft, saft - af (tal Aw // PB frokostaftale - sl) a (L06 a // PB slap -// a (iK a - mount) ai (n e // PB mountain - cockt) ail Ejl // PB - cont) ai (n 'Ej // PB container - cr) aw V // PB Crawford - d) ay Ej // PB holyday, Holliday - h) a (sting Ej // PB Hasting -cornfl) akes Ejgs // PB - w) al (k V: // PB walkie-talkie, walkman - w) all V:l // PB WQall street - n) aise 'E:s@ // PB mayonnaise - br) ai (s E // PB braisere - k) ai (n &|'i: // PB kokain - _k) ai (n aj // PB name Kain - ld) a (k & // PB baldakin - mir) a (k 'A // PB mirakel - stressed a - t) a (lA &: // PB tale - t) a (p a // PB tap - kat) a (pult &' // PB - t) a (pL11 & // PB tapet, tapas - _et) a (pe 'a // PB - t) a (pi & // PB tapir - _) aha (_ ah'a // PB - p) a (pi & // PB papir - replace with: p) a (CL04 ?? - p) a (pri+ a // PB paprika - L09) a (l &: // PB male -guatem) a (l '& PB - m) alaj &l'aj // PB stressed - L09) a (ld & // PB knald - _) a (ldrig a // PB aldrig - a (lde & // PB alder - aldetha &ld'iT& // PB name - skr) a (l a // PB skrald -rappenskr) a (lde 'a // PB stressed - over) a (lt '& // PB stressed a in 'overalt' - _eks) a (m+ '& // PB stressed - eksamen, eksaminere -parmes) a (n '& // PB stressed - ekst) a (s '& // PB ekstase - stressed - &eks) a (m & // PB - sh) a (mL11 & // PB shaman - sh) ah & // PB silent h - sh) ahen &3n // PB - sp) a (m &: // PB - isl) a (m 'a: // PB islam - isl) a (mi & // PB islamist - hav) a (na '& // PB stressed - j) a (men & // PB exception jamen = ja men - ch) a (n a // PB chance - v) a (j a // PB svajende, vaje -// PB general rule: [&] after p/b/d before n - L06) a (n & // PB tand, tante, band, bande, spand, spade - ban) a (n '& // PB banan -kontrab) ande '&nd3 // PB - hvord) a (n '& // PB stressed a in 'hvordan' - g) a (ngster+ & // PB - m) anchet ANS'Ed // PB manchet - hin) a (n '& // PB stressed - hinanden - _ap) a (ch '& // PB apache - pil) a (tus '& // PB Pontius Pilatus - L06) a (nk A // PB bank - sp) a (nking &: // PB - an (cien aN - a (ndre A // PB andre - t) a (nd & // PB tandrensning - _) andrea &ndr'e& // PB name - andrew &ndru // PB name - v) a (ndr A // PB vandre - v) a (ndrør & // PB - a (pote a // PB apotek - n) apoleon &p'oljVn // PB name -// L06) a (nk a // PB banke - eng) a (ng 'a // PB stressed - h) a (L01 a // PB hank, hang, bank - h) a (j a // PB haj -restaur) ant 'AN // PB added stress - l) a (p+ a // PB slap, lap - h) a (p a // PB haps - h) a (ppA & // PB happy end, happening - j) a (pp a // PB jappe - j) a (ps a // PB japser - t) a (nk A // PB tankstation - mj) a (v A // PB - kålr) a (bi 'A // PB kålrabi - stressed a - au (++ aw // PB auto, autoritet - aubergin oberS'i:n // PB - vagin) a & // PB vaginaudvider - l) aurie Ori // PB name -astron) au (t 'aw // PB stressed - _f) aux o // PB faux pas - g) auguin og'&N // PB Gauguin - au (_naturel o // PB - s) au (tere O // PB - firm) a & // PB firmaudfordring - m) aureen OR'i:n // PB name -_dinos) aur 'auV // PB stressed -_dinos) aurer 'aurV // PB stressed - ch) au (vin o // PB chauvinist - _p) au (l O // PB name - _biss) au 'a:w // PB Guinea-Bissau - s) au (ce O: // PB sauce, bearnaisesauce +skandin) a (v '& // skandinav +jugosl) a (v '& // jugoslav +_vatik) a (n '& // Vatikanet + _prim) a (l '& // stressed - primalterapi + lumb) a (go '& // stressed - lumbago + _kapt) a (jn 'a // kaptajn + tilsk) a (de '& // tilskadekommne + al) a (sk '& // Alaska +_radio) a (kti 'A // stressed - radioaktiv +_impres) a (rio 'A // stressed + _rab) arber 'AbV // stressed + _ar) a (ber 'A // stressed + eng) a (ng 'A // stressed +_karav) a (ne '& // stressed +_chimp) a (n '& // stressed - chimpanse + pastr) a (mi 'A // stressed + _bar) a (k 'A // stressed + _kak) a (o '& // stressed + _can) a (dier '& // stressed + a (sme '& // orgasme, entusiasme + bl) a (d & // blad + h) a (n & // han + a (nsk ?& // dansk, danske - short vowel + a (ndsk ?& // handske + h) a (ndl ?& // handle + tj) a (_ &: // + j) avert A?uVd // javert + l) ave (ment &@ // lavement + l) ave (_ &v@ // lave + l) aver (_ &vV // laver + sl) ave &v@- // slavearbejde + sl) aver &vV // + sl) averi &vVr'i // + _enkl) a (ve+ '& // stressed + _enkl) aver '&vV // stressed + pal) a (ver+ '& // stressed - also [aw] +kanonl) avet &vEd // exception - French origin + freel) ance A:Ns // + kl) aver (_ &v'er // klaver + g) a (v &: // gav, opgave + g) avflab awfl&b // + g) av (tyv a?u // + b) a (jer A // + b) aby (+ Ejbi // baby + _) a (nder A // anderledes + _) anderson &ndVsVn // name + _) angie &ndZi // name + _) a (ndet & // andet + _) a (nden & // anden + t) a (bt A // tabte + l) a (b_+ A // lab + fl) a (b_+ & // + l) a (bb ?A // labben + l) a (be & // laber + L08) a (bL11 &: // skabe + _) a (bs A // absolut, abstrakt, absurd + a (bc A // abces + ai (mabel E // aimabel + mir) abel Ab'El // mirabel(le) + p) ace Eis // motorpace, pacemaker + pacem) a (k Ei // pacemaker +interf) a (ce Ei // interface + busk) ad (s '& // + _) a (e_ & // ae + a (fC+ A // [Af] = [au] and exceptions in the f group + st) af (f & // staffet, staffeli + k) aff (e+ ?Af // skaffe, kaffe + vodk) a & // vodkaflaske + a (ffære+ & // + st) a (ffage & // + a (ffutage & // + aftershave aftVSEjv // + gir) a (f 'A // + ri) a (m A // Miriam + sof) a & // sofafjeder + _) a (ffekt+ & // affekt + a (fsted+ & // afstedkomme + col) a & // colaflaske + C) a (ft A // haft, saft + af (tal Aw // frokostaftale + sl) a (L06 A // slap + mount) ai (n e // mountain + cockt) ail Ejl // + cont) ai (n 'Ej // container + cr) aw V // Crawford + d) ay Ej // holyday, Holliday + h) a (sting Ej // Hasting +cornfl) akes Ejgs // + w) al (k V: // walkie-talkie, walkman + w) all V:l // WQall street + n) aise 'E:s@- // mayonnaise + br) ai (s E // braisere + k) ai (n &|'i: // kokain + _k) ai (n aI // name Kain + ld) a (k & // baldakin + mir) a (k 'A // mirakel - stressed a + t) a (lA & // tale + t) a (p A // tap + kat) a (pult &' // + t) a (pL11 & // tapet, tapas + _et) a (pe 'A // + t) a (pi & // tapir + _) aha (_ Ah'A // + p) a (pi+ & // papir - replace with: p) a (CL04 ?? + p) a (pri+ A // paprika +guatem) a (l '& + m) alaj &l'aI // stressed + L09) a (ld & // knald + _) a (ldrig+ A // aldrig + a (lde & // alder + aldetha &ld'iT& // name + skr) a (l A // skrald +rappenskr) a (lde 'A // stressed + over) a (lt '& // stressed a in 'overalt' + _eks) a (m+ '& // stressed - eksamen, eksaminere +parmes) a (n '& // stressed + ekst) a (s '& // ekstase - stressed + &eks) a (m & // + sh) a (mL11 & // shaman + sh) ah & // silent h + sh) ahen &@-n // + sp) a (m &: // + isl) a (m 'A: // islam + isl) a (mi & // islamist + hav) a (na '& // stressed + j) a (men & // exception jamen = ja men + ch) a (n A // chance + v) a (j A // svajende, vaje +// general rule: [&] after p/b/d before n + L06) a (n & // tand, tante, band, spand, spade + L06) a (nd ?& // bande + ban) a (n '& // banan +kontrab) ande '&nd@- // + hvord) a (n '& // stressed a in 'hvordan' + g) a (ngster+ & // + m) anche (t ANS'E // manchet + hin) a (n '& // stressed - hinanden + _ap) a (ch '& // apache + pil) a (tus '& // Pontius Pilatus + L06) a (nk A // bank + sp) a (nking &: // + an (cien AN + a (ndre A // andre + t) a (nd & // tandrensning + _) andrea &ndr'e& // name + andrew &ndru // name + v) a (ndr A // vandre + v) a (ndrør & // + a (pote A // apotek + n) apoleon &p'oljVn // name + eng) a (ng 'A // stressed + h) a (L01 A // hank, hang, bank +restaur) ant 'AN // added stress + l) a (p+ A // slap, lap + h) a (p A // haps + l) a (pL04+ & // volapyk + h) a (ppA ?& // happy end, happening + j) a (pp A // jappe + j) a (ps A // japser + t) a (nk A // tankstation + mj) a (v A // + kålr) a (bi 'A // kålrabi - stressed a + au (++ Aw // auto, autoritet + aubergin oberS'i:n // + vagin) a & // vaginaudvider + l) aurie Ori // name +astron) au (t 'Aw // stressed + _f) aux o // faux pas + g) auguin og'&N // Gauguin + au (_naturel o // + s) au (tere O // + firm) a & // firmaudfordring + m) aureen OR'i:n // name +_dinos) aur 'A?uV // stressed +_dinos) aurer 'W?urV // stressed + ch) au (vin o // chauvinist + _p) au (l O // name + _biss) au 'A:w // Guinea-Bissau + s) au (ce O: // sauce, bearnaisesauce ch) au (f o rest) au (r o - s) au (terne o // PB wine - @h) av_ Au // PB ildhav -[Au] = [&v] followed by syllable: ['ilh&:v@D] - @k) ar (l ?& // PB bøssekarl, forkarl - k) ar (lene & // PB - afrik) aa (n A: // PB afrikaaner - action &kSj@n // PB actionfilm + 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 (lene & // + afrik) aa (n A: // afrikaaner + action &kSj@n // actionfilm aircondition E:rkVndi:S@n akkordeon &k'V:deVn attention at'EnS@n - athen &t'en // PB Athen - andrews &ndRu:s // PB - angeles &ndZ3lEs // PB - arrow &Rou // PB - abilene &bili:n // PB - _) abby &bi // PB name - avery Ejvri // PB name - r) andolph &ndVlf // PB name - sp) alding Old,eN // PB name - r) a (oul A' // PB name - alejandro _^_es // PB name - arkansas Ak@nsO: // PB - s) ally &li // PB - sar) ah A // PB name - th) a (nks & // PB thanksgiving - all (_right Ol // PB - str) abads Ab'&s // PB stressed a, silent d -disput) a (ts '& // PB stressed -amsterd) a (m 'a // PB + athen &t'en // Athen + andrews &ndRu:s // + angeles &ndZ3lEs // + arrow &Rou // + abilene &bili:n // + _) abby &bi // name + avery Ejvri // name + r) andolph &ndVlf // name + sp) alding Old,eN // name + r) a (oul A' // name + alejandro _^_es // name + arkansas Ak@nsO: // + s) ally ?&li // + sar) ah A // name + th) a (nks & // thanksgiving + all (_right Ol // + str) abads Ab'&s // stressed a, silent d +disput) a (ts '& // stressed +amsterd) a (m 'A // seb) a (stian '& // PN stressed - _te) a (ter '& // PB stressed - byz) a (ns_ '& // PB stressed -_domin) a (n '& // PB stressed - dominans - top) a (s '& // PB stressed - sm) a (ck & // PB - aw (K aw - ay (K Ej // PB a changed to E - p) ayne Ejn // PB name - bookm) a (ker Ej // PB - _v) agas Ejg@s // PB Las Vegas - b) acon (+ EjkVn // PB - taleb) a (n '& // PB - sm) aragd ar'Awd // PB gem stone - _klo) a (k+ 'A: // PB -volleyb) all O:l // PB -dovenl) ar (s & // PB - st) ation (car EjS3n // PB - avantgarde &vANg'ard3 // PB - -.group af - - k) aff (e af // retskaffen - l) aff (e af // blaffe, plaffe - t) aff (e af // taffel - st) aff (e &f // PB staffeli - _p) af af // -// PB final -graf in da_list - stressed a, stressed i when i is added - &gr) af ($p_alt 'Af // biograf - &gr) af (i$p_alt Af' // biografi + _te) a (ter '& // stressed + byz) a (ns_ '& // stressed +_domin) a (n '& // stressed - dominans + top) a (s '& // stressed + sm) a (ck & // + aw (K Aw + ay (K Ej // a changed to E + p) ayne Ejn // name + bookm) a (ker Ej // + _v) agas Ejg@s // Las Vegas + b) acon (+ EjkVn // + taleb) a (n '& // + sm) aragd Ar'Awd // gem stone + _klo) a (k+ 'A: // +volleyb) all O:l // +dovenl) ar (s & // + st) ation (car EjS@-n // + avantgarde &vANg'Ad@- // .group ag -// PB (French) nouns with final -age and with $alt flag in da_list +// (French) nouns with final -age and with $alt flag in da_list // stressed a, "age" pronounced [aS@] &) age ($p_alt+++ '&:S@ // ravage, bagage &) age (r$p_alt++ '&:SV // reportager, plamager &r) age ($p_alt++ 'A:S@ // [A] after "r" - garage &) age (re$p_alt+ &S'e@ // not for the "age" words - gagere -hjertemass) age &:S@ // hjertemassage - et) age &S3 // PB stueetage - t) age (t &j3 // PB kirketaget - t) age (lse &j@ // PB tilfangetagelse - foret) age &j@ // PB - bet) age &j@ // PB betaget - varet) age &j@ // PB +hjertemass) age &:S@- // hjertemassage + et) age (+ &:S@- // stueetage + t) aget (+ &@D // kirketaget - [@-] is too short here + t) age (lse &@- // tilfangetagelse + foret) age & // + bet) age &@- // betaget + varet) age & // -//PB general rule: "ag" words silent g - d) ag (_ &j // PB dag - d) ag (e+ &j // PB dage - d) ag (s_ &j // PB en dags tid - d) ag (l@+ Au // PB daglejer - d) ag (insti Au // PB daginstitution - @d) ag (_++ & // PB dommedag - sd) ag (+ & // PB fødselsdagsgave, fødselsdagsbarn - d) ag (og+ &g // PB pædagog - _j) ag (_ &j // PB - j) ag (e+ &: // PB jage - j) ag (uar ag // PB - j) ag (t ag // PB jagt - b) ag (h+ Au // PB baghold - b) ag (l Au // baglader, baglæns - b) ag (L01 Au // bagklog, baggård - b) ag (f Au // bagflikke - b) ag (b Au // bagbutik - b) ag (rud Au // PB bagrude - b) ag (d Au // bagdør - b) ag (v Au // bagvendt, bagværk - b) ag (trap Au // PB bagtrappe - b) ag (An Au // Bagindien, baginder - b) agend (e AuEn // PB bagende "rear end" - problem with "bagende varm" - b) agend (e_varm &j3n // PB - b) agend (e_sol &j3n // PB - b) agend (e_hed &j3n // PB - b) ag (k Au // bagklog, bagkrop - b) ag (m Au // bagmand - b) ag (p Au // PB bagparti - b) ag (s Au // PB bagside - b) ag (t@ Au // PB bagtøj - s) ag (sø Au // PB sagsøge - b) ag (te Ag // PB nybagte - _L06) ag (_ &j // PB bag - single word -hjemmeb) ag (_ &j // PB +// general rule: "ag" words silent g + d) ag (_ &j // dag + d) ag (e++ &: // dage + d) ag (s_ & // en dags tid + d) ag (l@+ Aw // daglejer + d) ag (insti Aw // daginstitution + @d) ag (_++ & // dommedag + sd) ag (+ & // fødselsdagsgave, fødselsdagsbarn + d) ag (og+ &g // pædagog + _j) ag (_ &j // + j) ag (e+ &: // jage + j) ag (uar Ag // + j) ag (t Ag // jagt + b) ag (h+ Aw // baghold + b) ag (l Aw // baglader, baglæns + b) ag (L01 Aw // bagklog, baggård + b) ag (f Aw // bagflikke + b) ag (b Aw // bagbutik + b) ag (rud Aw // bagrude + b) ag (d Aw // bagdør + b) ag (v Aw // bagvendt, bagværk + b) ag (trap Aw // bagtrappe + b) ag (An Aw // Bagindien, baginder + b) agend (e AwEn // bagende "rear end" - problem with "bagende varm" + b) agend (e_varm &j3n // + b) agend (e_sol &j3n // + b) agend (e_hed &j3n // + b) ag (k Aw // bagklog, bagkrop + b) ag (m Aw // bagmand + b) ag (p Aw // bagparti + b) ag (s Aw // bagside + b) ag (t@ Aw // bagtøj + s) ag (sø Aw // sagsøge + b) ag (te Ag // nybagte + _L06) ag (_ &j // bag - single word +hjemmeb) ag (_ &j // b) ag (fr &, // bagfra - b) ag (i &, // PB bagi - b) ag (ved &_: // PB bagved - b) ag (efter &j // PB bagefter - b) ag (på &, // PB bagpå - b) ag (over &_: // PB bagover - b) ag (til &, // PB bagtil - b) ag (ud &_: // PB bagud - b) ag (udgang Au // PB bagudgang - p) age (++ &:S@ // PB page, pagehår - band) age &:S@ // PB gipsbandage - sC) ag (+ &j // PB slag, slaget, Skagen, smag, forslagskasse - st) agn AuN // PB stagnere - sp) ag (at &g // PB - sk) ag (ler Aw // PB - kast) agn (et &nj' // PB kastagnetter - sl) ag (C@ au // PB slagskib - sl) ag (_kort aw // PB "et slag kort" + b) ag (i &, // bagi + b) ag (ved &_: // bagved + b) ag (efter &j // bagefter + b) ag (på &, // bagpå + b) ag (over &_: // bagover + b) ag (til &, // bagtil + b) ag (ud &_: // bagud + b) ag (udgang Au // bagudgang + p) age (++ &:S@- // page, pagehår + band) age &:S@- // gipsbandage + sC) ag (+ &j // slag, slaget, Skagen, smag, forslagskasse + st) agn AwN // stagnere + sp) ag (at &g // + sk) ag (ler Aw // + kast) agn (et &nj' // kastagnetter + sl) ag (C@ Aw // slagskib + sl) ag (_kort Aw // "et slag kort" l) ag (re+ &j // PO overskudslagre - sl) agg (e ak // PB slagger - C) ag (t+ ag // PB venskabspagt, smagte, sagt - sl) ag (ne &j // PB rædselsslagne + pell) ag (ra &g // + sl) agg (e ?Ak // slagger + 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 // PB forlagsvirksomhed - opsl) ag &j // PB - f) ag (@ au // PB fagsnak, ufaglært, fagarbejde - f) ag (ter ag // PB - l) ag (C au // PB flagstang, lagkage - fl) ag (afbrænd au // PB flagafbrænding - gall) agh 3g // PB name - _sl) ag (s_ ag // PB slags - _sl) ag (sen ag // PB slagsen -gennemsl) ag (+ &j // PB gennemslagskraft - sl) ag (sværd au // PB - pl) ag &j // PB plagsom - pl) ag (i &g // PB plagiere, plagiat - l) ag (re &j // PB oplagres - fl) ag (re au // PB - esl) ag (lA Au // PB beslaglægge - sl) ag (te+ ag // PB slagter - sl) ag (tn+ ag // PB slagtning - sv) ag (t &j // PB svagt, åndssvagt -sikkerhedsv) ag (t ag // PB -åndssv) ag &j // PB -evnesv) ag &j // PB -parkeringsv) ag (t ag // PB - æresv) ag (t ag // PB -butiksv) ag (t ag // PB -hospitalsv) ag (t ag // PB -// m) ag (t ag // PB verdensmagt - sl) ag (smål Au // slagsmål - sl) ag (tilf Au // PB slagtilfælde - sl) ag (side Au // PB slagside - sp) ag (ett &g' // PB spagetti - sp) agh (ett &g' // PB spaghetti - sp) ag (num Au // PB - r) ag (e+ Au // PB drage, rage - C) age (+ &:j@ // PB tage, bage, kage - arm) aged &g'Ed // PB Armageddon - arm) agedd &g'Ed // PB Harmagedon - mut) age (n &g'e // PB stressed - affut) age &:S@ // PB missilaffutage - bag) age &:S3 // PB håndbagage - _b) ag (el+ Ejg // PB - age (rn &jV // PB "acorn" - _) age (_ &j3 // PB "age med heste" - _) ager (_ &jV // PB "field" - ager (høn &jV // PB agerhøne/høns - l) ag (n &j // PB lagner - sl) ag (ni+ &j // PB rådslagning - ass) age &S@ // PB rygmassage - plant) age &S@ // PB citronplantage - on) age &S@ // PB kontraspionage - C) ager (+ &:jV // PB bagerst, kager - b) age (rul &j@ // PB bagerulle - b) ag (eri+ &j // PB bager'i - et) ager &SV // PB treetagers - foret) ager Ar // PB - g) age (_+ &:S@ // PB - fl) ager (mus AuV // PB - l) agd (e &:j // PB lagde - g) ager (e+ &S'e // PB gagere - r) age (++ Aw@ // PB rage, fremragende - _) age (nt++ &g'E // PB agent, agenten - stressed - age (nt++ &gE // PB superagenten, dobbeltagent, forsikringsagent -rædselssl) age (n &j@ // PB rædselsslagent - suffr) age (tte AS'E // PB suffragette - stressed - r) ager (++ AwV // PB rager - tr) agedie Ag'eDj@ // PB - _t) ager (_ Ar // PB tager [t'Ar] - iagtt) ager (_ &jV // PB iagttager - noun - t) ag (_ &j // PB tag - t) ag (C aw // PB tagvindue - ag (ning &j // PB gidseltagning - ag (tig ag // PB rustagtig - art) agnan &NAN // PB d'Artagnan - t) ag (ne &j // PB tilfangetagne - t) ag (fat & // PB - t) agetes &g'et3s // PB - t) ag (selv &' // PB tagselvbord - t) agg (e &g // PB - t) ag (liatelle _^_it // PB -// s) ag (t+ ag // PB sagt - _s) ag (te_ &j // PB - s) ag (n Au // PB sagn - rans) ag (n &j // PB ransagning - las) agn (e '&nj // PB - bret) agn (e '&nj // PB - s) agd (e+ &: // PB sagde - tilb) ag (e '&: // PB stressed a in 'tilbage' + forl) ag %&j // forlagsvirksomhed + opsl) ag &j // + f) ag (@ A?u // fagsnak, ufaglært, fagarbejde + f) ag (ter Ag // + l) ag (C A?u // flagstang, lagkage + fl) ag (afbrænd A?u // flagafbrænding + gall) agh 3g // name + _sl) ag (s_ ?Ag // slags + _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 + 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 // +parkeringsv) ag (t Ag // + æresv) ag (t Ag // +butiksv) ag (t Ag // +hospitalsv) ag (t Ag // +// m) ag (t Ag // verdensmagt + sl) ag (smål A?u // slagsmål + sl) ag (tilf A?u // slagtilfælde + sl) ag (side A?u // slagside + sp) ag (ett &g' // spagetti + sp) agh (ett &g' // spaghetti + sp) ag (num A?u // + r) ag (e+ A?u // drage, rage + C) age (++ &:j@- // bage, kage + C) age (nK++ &j@- // sagen, kagen + _t) age (_+ &j@- // tage + 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 + mut) age (n &g'e // stressed + affut) age &:S@- // missilaffutage +// bag) age &:S3 // håndbagage + _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 + ass) age &S@- // rygmassage + plant) age &S@- // citronplantage + on) age &S@- // kontraspionage + C) ager (++ &jV // bagerst, kager, opdager + b) age (rul &j@- // bagerulle + b) ag (eri+ &j // bager'i + et) ager &SV // treetagers + foret) ager Ar // + g) age (_+ &:S@- // + fl) ager (mus A?uV // + l) agde &:@- // lagde + g) ager (e+ &S'e // gagere + r) age (++++ Aw@- // rage, fremragende, uddragene + _) age (nt++ &g'E // agent, agenten - stressed + age (nt++ &gE // superagenten, dobbeltagent, forsikringsagent +rædselssl) age (n &j@- // rædselsslagent + suffr) age (tte AS'E // suffragette - stressed + r) ager (+++ AwV // rager + tr) agedie Ag'eDj@- // + _t) ager (_ Ar // tager [t'Ar] + iagtt) ager (_ &jV // iagttager - noun + t) ag (_ &j // tag + t) ag (C Aw // tagvindue + ag (ning &j // gidseltagning + ag (tig Ag // rustagtig + art) agnan &NAN // d'Artagnan + t) ag (ne &j // tilfangetagne + t) ag (fat & // + t) agetes &g'et3s // + t) ag (selv &' // tagselvbord + t) agg (e &g // + t) ag (liatelle _^_it // + _s) ag (te_ &j // + s) ag (n A?u // sagn + rans) ag (n &j // ransagning + las) agn (e '&nj // + bret) agn (e '&n; // + s) agd (e+ &: // sagde + tilb) ag (e '&:; // stressed a in 'tilbage' .group al - // PB final -ale - stressed a -_bienn) al '&:l -_differenti) ale '&:l@ - _fin) al (e '&:l - _forh) al (e '&:l - _form) al (e '&:l - _fort) al (e '&:l -_gradu) al (e '&:l -_grati) al (e '&:l - _kab) al (e '&:l - _lok) al (e '&:l - _manu) al (e '&:l -_materi) al (e '&:l - _miss) al (e '&:l + // final -ale - stressed a +_bienn) al '&l +_differenti) ale '&l@- + _fin) al (e '&l + _forh) al (e '&l + _form) al (e '&l + _fort) al (e '&l +_gradu) al (e '&l +_grati) al (e '&l + _kab) al (e '&l + _lok) al (e '&l + _manu) al (e '&l +_materi) al (e '&l + _miss) al (e '&l _mor) al (e 'A:l _numer) al (e 'A:l _pastor) al (e 'A:l -_person) al (e ''&:l -_potenti) al (e '&:l -_ration) al (e ''&:l - _reg) al (e '&:l -_saltomort) al (e '&:l -_skand) al (e '&:l -_speci) ale (_ '&:l@ - _timb) al (e '&:l -_trienn) al (e '&:l - _urin) al ''&:l - seksu) al '&l // PB seksualliv +_person) al (e ''&l +_potenti) al (e '&l +_ration) al (e ''&l + _reg) al (e '&l +_saltomort) al (e '&l +_skand) al (e '&l +_speci) ale (_ '&l@ + _timb) al (e '&l +_trienn) al (e '&l + _urin) al ''&l + seksu) al '&l // seksualliv sped) al (sk '&l .group b b b - b (_ p // PB klub - [b] almost disappears bb b - ko) bb (er w // PB - pe) b (re w // PB - kø) b (ma // PB købmand - silent b - kø) b (mæ // PB købmænd - silent b - beagle bi:g@l //PB beagle - dog - braille braj: // PB - bouill (on bulj // PB - bloody blVdi // PB - bonsoir _^_fr // PB - byron _^_en // PB name - _) beat b'i:t // PB beat - music - bea (tri be&' // PB Beatrice - beaujolais boSjol'E // PB wine, district - bebop bi:bVp // PB music - babylon b&bylVn // PB - babylon (isk b&bylon // PB - babylon (er b&byl'on // PB babylonerne - stressed - backgammon b&g'&m3n // PB - baryton baitVn // PB - brintion brendjo:n // PB - bonkammerat b'VNkam@rAt // PB - brown _^_EN // PB name - birmingham bWmiN@m // PB city - bingham beN3m // PB name - bellevue bEl@v'y // PB - _) backup b&k'Vb // PB - bourgogne burg'Vnj@ // PB - pe) b (er w // PB peber - _) buffet byf'e // PB - @) buffet byf'e // PB - _) balkon b&lk'VN // PB - balkon b&lkVN // PB + ko) bb (er w // + pe) b (re w // + kø) b (ma // købmand - silent b + kø) b (mæ // købmænd - silent b + beagle bi:g@l // beagle - dog + braille braI: // + bouill (on bulj // + bloody blVdi // + bonsoir _^_fr // + byron _^_en // name + _) beat b'i:t // beat - music + bea (tri be&' // Beatrice + beaujolais boSjol'E // wine, district + bebop bi:bVp // music + babylon b&bylVn // + babylon (isk b&bylon // + babylon (er b&byl'on // babylonerne - stressed + backgammon b&g'&m3n // + baryton baitVn // + brintion brendjo:n // + bonkammerat b'VNkam@rAt // + brown _^_EN // name + birmingham bWmiN@m // city + bingham beN3m // name + bellevue bEl@v'y // + _) backup b&k'Vb // + bourgogne burg'Vnj@ // + pe) b (er w // peber + _) buffet byf'e // + @) buffet byf'e // + _) balkon b&lk'VN // + balkon b&lkVN // &) bassin b&s'EN // svømmebassin - basketball bAsgetbO:l // PB - baseball bejsBO:l/2 // PB - butterfly bVtVflaj // PB - beach bi:tS // PB Beach Boys - _) blake blEjk // PB name - _) bligh blAj // PB name - burton bWtVn // PB name - bugsy bVgsi // PB name - baltimore bOltimV: // PB US city - burgh bW:g // PB Pittsburgh - bike bajk // PB mountainbike, bikermiljø - _) buic bjuik // PB car brand - t_) bone bOwn // PB T-bone-steak - bernie bWni // PB name - beverly bEvVli // PB - bei (rut baj // PB - fris) bee bi // PB - burgess bWdZes // PB name - borough bVrV // PB Peterborough - buffalo bVf3lOw // PB - barbie bArbi // PB name - billie bil/2i // PB name - bovary bovar'?i // PB name - bodyguard bVdigA:d // PB - bodystocking bVdistVkeN // PB - broad brOd // PB Broadway - boudoir budw'A: // PB - bouillabaisse bujab'Es // PB - board bO:d // PB keyboard - _) bruce bRu:s // PB name - business besnEs // PB - beijing bEjdZ'eN // PB - bui (lding be // PB - browser bRAwsV // PB - _) butte (_ bju:t // PB city in Montana + basketball bAsgetbO:l // + baseball bejsBO:l/2 // + butterfly bVtVflaI // + beach bi:tS // Beach Boys + _) blake blEjk // name + _) bligh blaI: // name + burton bWtVn // name + bugsy bVgsi // name + baltimore bOltimV: // US city + burgh bW:g // Pittsburgh + bike baIk // mountainbike, bikermiljø + _) buic bjuik // car brand + t_) bone bOwn // T-bone-steak + bernie bWni // name + beverly bEvVli // + bei (rut baI // + fris) bee bi // + burgess bWdZes // name + borough bVrV // Peterborough + buffalo bVf3lOw // + barbie bArbi // name + billie bil/2i // name + bovary bovar'?i // name + bodyguard bVdigA:d // + bodystocking bVdistVkeN // + broad brOd // Broadway + boudoir budw'A: // + bouillabaisse bujab'Es // + board bO:d // keyboard + _) bruce bRu:s // name + business besnEs // + beijing bEjdZ'eN // + bui (lding be // + browser bRAwsV // + _) butte (_ bju:t // city in Montana .group be -// PB words beginning with "be" with stress on the second syllable (850) +// words beginning with "be" with stress on the second syllable (850) // They have secondary stress on the second syllable with a preceeding syllable - _) be (@ b%e // PB besta'and + _) be (@ b%?e // besta'and -// PB exceptions to the "be" rule - _) be (dste bE // bedstefar, bedstemor +// exceptions to the "be" rule + _) be (dste b?E // bedstefar, bedstemor _) be (dring bE _) be (nmel be - _) be (gge bE + _) be (gge b?E _) be (narbejde be _) be (nbrud be - _) be (nbræk bE + _) be (nbræk be _) be (nbbuk be _) be (nchmark bE _) be (nedder be - _) be (nende bE + _) be (nende be _) be (net be _) be (nfisk be _) be (nfedt be @@ -1302,371 +1318,393 @@ _trienn) al (e '&:l _) be (nv bE _) be (de be _) be (dre bE - _) be (dding be - _) beg (blende baj - _) beg (mand baj - _) beg (ning baj + _) be (dding b?e + _) beg (blende baI + _) beg (mand baI + _) beg (ning baI _) be (jds bE - _) be (jle ba + _) be (jle bA _) be (lgi bE _) be (rb bE _) be (rgen_ bE + _) be (sk_ b?e + _) be (ske_ b?e _) be (tastrål be _) be (eta_ be _) be (tatron be _) be (taversion be _) be (tel be _) be (tl be - _) beige bE:S // PB colour - _) be (lla bE + _) be (ta be // betablokker + _) be (tal %be // betale, betalt + _) beige bE:S // colour + _) be (lla bEE _) beech bitS - _) beau %bo // PB Beaulieu, Beaumont - beethoven betov3n // PB name - berkeley bWkl/2i // PB + _) beau %bo // Beaulieu, Beaumont + beethoven betov@-n // name + berkeley bWkl/2i // .group c c k - fran) cs k // PB French currency - silent s - c (e s // PB chance - s) cene en3 // PB forførelsescene - s) cener enV // PB forførelsescener + fran) cs k // French currency - silent s + c (e s // chance + s) cene en@- // forførelsescene + s) cener enV // forførelsescener -// PB nouns in da_list with final -ce - stress on previous syllable - &) ce (_$p_alt =s@ // ekspeditrice - &) ce (n$p_alt =s@ // ekspeditricen +// nouns in da_list with final -ce - stress on previous syllable + &) ce (_$p_alt =s@- // ekspeditrice + &) ce (n$p_alt =s@- // ekspeditricen &) ce (r$p_alt =sV // ekspeditricer - &) cer ($p_alt =s''er // annoncere + &) cer ($p_alt =s''er // placér + &) cer (e$p_alt =s''e // placere + &) cer (edes$p_alt =s''e // placeredes + &) cer (er$p_alt =s''e // placerer dedi) cer ($p_alt =k''er // dedicere - &) cere ($p_alt =s''er3 // annoncerede + &) cere ($p_alt =s''eV // annoncerede &) cér (_ s'er // annoncér &) cør (_ s'Wr // annoncør -diskvalifi) cer ser // PB - produ) ceren =sV3n // PB +diskvalifi) cer ser // + produ) ceren =sVVn // - c (y s // PB s followed by y - cykel - cyper kypV // PB Cypern - curler kWlV // PB - _) clarence kl&R@ns // PB name - _) capone k&p'Own // PB name - A) c (e s // PB race, procent -cadilla) c k // PB Cadilacen - _offi) ce (r s'e // PB officer - offi) ce (r se // PB sprogofficer - ce (rt s'E // PB koncert - corn (f kV:n // PB cornflakes + c (y s // s followed by y - cykel + cyper kypV // Cypern + curler kWlV // + _) clarence kl&R@-ns // name + _) capone k&p'Own // name + A) c (e s // race, procent +cadilla) c k // Cadilacen + _offi) ce (r s'e // officer + offi) ce (r se // sprogofficer + ce (rt s'E // koncert + corn (f kV:n // cornflakes c (i s -frederi) c (ia =ks // PB - _pa) c (ino tS' // PB name - scor) c (ese tS' // PB name - ch (loe k // PB Chloe +frederi) c (ia =ks // + _pa) c (ino tS' // name + scor) c (ese tS' // name + ch (loe k // Chloe c (k - c (ølibat s // PB - ch (+ S // PB check, chokolade - ch (i tS // PB chili - ch (eese tS // PB cheeseburger - _ma) ch (_ k // PB sound barrier - chaplin tS&plin // PB name - challenge tS&lendZ // PB - chelsea tSElsi // PB - cheyenne Saj'En // PB - maso) ch (is k // PB sadomasochisme, masochist - wi) ch tS // PB sandwich - chicago Sik'AgOw // PB - child tSajld // PB Fairchild - chopin SopEN // PB name - ch (ip tSj // PB mikrochip - te) ch (no k //& PB + 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 // + 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 // mi) ch (a k S ch (r k c (ha S - r) ch S // PB march - chaucer tSO:sV // PB name - s) c (ha // PB no extra S in 'schalburtage' + r) ch S // march + chaucer tSO:sV // name + s) c (ha // no extra S in 'schalburtage' cigaret sig3r'&#t cigarett sig3r'&#t - cc ks // PB accent - ro) cc (o k // PB name - pu) ccini S'ini // PB name - rebe) cc (a =k // PB name - so) cc (er k // PB European football - sta) cc (ato k' // PB - pi) cc (o k // PB piccolo - cappu) cc (ino tSj' // PB + cc ks // accent + 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' // + pi) cc (o k // piccolo + cappu) cc (ino tSj' // fa) c (ad s fa) c (on s - ceylon sajl/2Vn // PB - cornichon kVrniS'VN // PB - charlie tSAli // PB - charles tSA:ls // PB - cynthia senTi& // PB name - c (æsar s // PB - cordelia kVd'ili-& // PB - ni) ch (ol k // PB Nicholas - computer kVmpj'u:tV // PB - cha (t tj& // PB chatte - ch (ateau S // PB - chianti kj'&nti // PB - chokeren (_ SOwkVr@n // PB - callgirl kVlgW:l // PB + ceylon saIl/2Vn // + cornichon kVrniS'VN // + charlie tSAli // + charles tSA:ls // + cynthia senTi& // name + c (æsar s // + cordelia kVd'ili-& // + ni) ch (ol k // Nicholas + computer kVmpj'u:tV // + cha (t tj& // chatte + ch (ateau S // + chianti kj'&nti // + chokeren (_ SOwkVr@n // + callgirl kVlgW:l // cowboy kaubOj - _) custer kVstV // PB name - _) ciao (_ tSjAw // PB - claude klO:d // PB name - claudette klOd'et // PB name - churchill tSW:Sil // PB - cambridge kejmbRidZ // PB - canterbury k&ntVbri // PB - connecticut kVn'etikVd // PB - carlisle kAlajl // PB - china tjajn& // PB - _) cape (_town kEjp // PB name - _) chuck tSVk // PB name - cleveland kli:vl&n // PB - croissant kroas'AN // PB - _) cartier kartj'e // PB - clair (voy klEr // PB clairvoyance - co (nrad kV // PB name - country kVntri // PB - chagall S&g'&l // PB name - _ali) ce s // PB - connie kVni // PB - chablis S&bl'i // PB - creme kr?Em // PB - creme (n kr?Em@ // PB - catering kEit@riN // PB -piccadilly_) circus sWk@s // PB - coleridge kOwlridZ // PB - colada kol'AD& // PB - creek kri:k // PB - camembert kamANb'Er // PB - crazy kREjsi // PB Crazy Horse - cincinnati sensin'&ti // PB - chihuahua tSiw'awa // PB - connor kVnV // PB name - creasy krisi // PB name - c (ello Sj // PB - c (ellofan s // PB - cutler kVtlV // PB name - cajun kEdZ3n // PB English pronunciation - courtney kO:tni // PB -north_) carolina k&rol'ajn& // PB - _) cathy k&Ti // PB name - _) cagney k&gni // PB name - cottage kVtidZ // PB + _) custer kVstV // name + _) 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& // + _) cape (_town kEjp // name + _) chuck tSVk // name + 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 // + crazy kREjsi // Crazy Horse + cincinnati sensin'&ti // + chihuahua tSiw'awa // + connor kVnV // name + creasy krisi // name + c (ello Sj // + c (ellofan s // + cutler kVtlV // name + cajun kEdZ3n // English pronunciation + courtney kO:tni // +north_) carolina k&rol'aIn& // + _) cathy k&Ti // name + _) cagney k&gni // name + cottage kVtidZ // cheryl SErel/2 - cohen kOu@n // PB name - cieux sj'W // PB Bonacieux - _) cardin kArd'&N // PB name - cézanne ses'&n // PB Cézanne - cézannen ses'&n3n // PB Cézannen - cockney kVkni // PB - clerk klA:k // PB Clerkenwell - carmine kA:majn // PB name + 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 // + clerk klA:k // Clerkenwell + carmine kA:maIn // name .group d d d - A) de (_ D3 - orki) de d'e // PB stressed - d (i d // PB redigere, hindi - ly) d D // PB lydisolering - drome) d (ar d // PB - floy) d d // PB name - mel) d (ing // PB - A) d (ig D // PB stadig - vene) d (ig d // PB - d (øm d // PB idømme - i) d (ol d // PB - u) d (i D // PB - hou) di (ni d'i // PB name - _pro) du (kt d'O // PB produkt - _pro) du (ktiv du // PB produktiv - bo) d (ega d // PB - d (us d // PB fidus - d (ok d // PB paradoks, tørdok - a) de (Cr D3 // PB badedragt - not tested - y) de D3 // PB brydehold - sy) de (ng DE // PB sydengland - by) de (l de // PB bydel - indby) de D3 // PB indbydelse - by) d (elig D // PB modbydelig - y) der (_ DV // PB betyder - @) d (elt d // PB udelt, tildelt - æ) de (l+ D3 // PB ædelt - mo) d (em d // PB - d (onna d // PB madonna - dil) d (o d // PB -tourne) dos d'o // PB - re) dund (ant dOnd // PB - _) dorset dO:sEt // PB name - _) drysdale dRajsdEjl // PB name + A) de (_ D@-_| // hade, lade + ski) de D@- // skidefuld + ba) de D@- // badeforhæng + ga) de D@- // gadebetjent + ga) der DV // + væ) dde (+ D@- // væddeløb + orki) de d'e // stressed + d (i d // redigere, hindi + ly) d D // lydisolering + drome) d (ar d // + floy) d d // name + mel) d (ing // + A) d (ig D // stadig + vene) d (ig d // + d (øm d // idømme + i) d (ol d // + u) d (i D // + hou) di (ni d'i // name + _pro) du (kt d'O // produkt + _pro) du (ktiv du // produktiv + bo) d (ega d // + d (us d // fidus + d (ok d // paradoks, tørdok + a) de (Cr D@- // badedragt - not tested + y) de D@- // brydehold + y) der DV // yderligere + gry) de (ret D@- // gryderet + sy) de (ng DE // sydengland + by) de (l de // bydel + indby) de D@- // indbydelse + by) d (elig D // modbydelig + y) der (_ DV // betyder + @) d (elt d // udelt, tildelt + æ) de (l+ D@- // ædelt + mo) d (em d // + d (onna d // madonna + dil) d (o d // +tourne) dos d'o // + re) dund (ant dOnd // + _) dorset dO:sEt // name + _) drysdale dRaIsdEjl // name + dreyfus drEf'?ys // name -// PB general rule: silent d in final ærd - ær) d (_ // PB færd, sværd - svær) d (et // PB sværdet - lær) d (_ d // PB højlærd -// fær) d (_ // PB +// general rule: silent d in final ærd + ær) d (_ // færd, sværd + svær) d (et // sværdet + lær) d (_ d // højlærd -// PB general rule: silent d after l - l) d // PB hold, skjold +// general rule: silent d after l + l) d // hold, skjold d (om d // PN trældom - d (ronning d // PB Snedronningen - d (ufte d // PB lavendelduftende - el) dorado dor'Ado // PB - vel) d (rej d // PB veldrejede - _hil) d (a d // PB name - _mil) dred drEd // PB name - imel) d (a =d // PB name - _) degas _^_fr // PB name - bull) d (o d // PB bulldozer -formal) d (e d // PB formaldehyd - d (åse d // PB øldåse - d (rys d // PB kaneldrys - sol) d (æk d // PB - bil) d (æk d // PB -radial) d (æk d // PB - d (emens d // PB senilodemens -turtel) d (ue d // PB - l) d (ug d // PB meldug - d (ør d // PB bildør - gul) d // PB guldøreringe - d (ele d // PB tildele - a) de (l D@ // PB adelen - morta) de (l d'E // PB stressed - ba) d (e D // PB badelegetøj - d (rev d // PB soldrevne - sal) d (o d // PB - C) d (etA d // PB metaldetektor - ol) d (ing d // PB holdingfirma, olding - d (ag d // PB gammeldags - al) d (rig d // PB aldrig - il) d (ring d // PB skildring - kil) d (re d // PB skildre - l) d (ig d // PB skyldig - bal) de l3 // PB silent d - balde - l) d (akin d // PB keep d in "baldakin" - hel) d (i d // PB keep d in "heldig" - mo) d (ern d // PB moderne, moderniteter + d (ronning d // Snedronningen + d (ufte d // lavendelduftende + el) dorado dor'Ado // + vel) d (rej d // veldrejede + _hil) d (a d // name + _mil) dred drEd // name + imel) d (a =d // name + _) degas _^_fr // name + bull) d (o d // bulldozer +formal) d (e d // formaldehyd + d (åse d // øldåse + d (rys d // kaneldrys + sol) d (æk d // + bil) d (æk d // +radial) d (æk d // + d (emens d // senilodemens +turtel) d (ue d // + l) d (ug d // meldug + d (ør d // bildør + gul) d // guldøreringe + d (ele d // tildele + a) de (l D@- // adelen + morta) de (l d'E // stressed + ba) d (e D // badelegetøj + d (rev d // soldrevne + sal) d (o d // + C) d (etA d // metaldetektor + ol) d (ing d // holdingfirma, olding + d (ag d // gammeldags + al) d (rig d // aldrig + il) d (ring d // skildring + kil) d (re d // skildre + l) d (ig d // skyldig + bal) de l@- // silent d - balde + l) d (akin d // keep d in "baldakin" + hel) d (i d // keep d in "heldig" + mo) d (ern d // moderne, moderniteter fær) d // silent d in færd, færdsel - vær) d (s // PB værdsætte - silent d - fær) d (eC d // PB færdes, færden - fær) dig di // PB keep d in "færdig" - @) d (yr d // PB keep d in "muldyr" - o) dds ds // PB odds + vær) d (s // værdsætte - silent d + fær) d (eC d // færdes, færden + fær) dig di // keep d in "færdig" + @) d (yr d // keep d in "muldyr" + o) dds ds // odds bol) d d - hva) d // PB silent d in 'hvad' - _tur) d (e // PB silent d - or) d (e // PB silent d in mordet, bordet, gjorden, ordet + hva) d // silent d in 'hvad' + _tur) d (e // silent d + or) d (e // silent d in mordet, bordet, gjorden, ordet or) d (er d // morder, mordere - rekor) d d // PB exception - pronounce d in 'rekord' - akor) d d // PB exception - pronounce d in 'akord' - hjor) d d // PB exception - pronounce d in 'hjord' -stikor) d // PB exception - silent d in 'stikord' - d' d //PB d'Aviano - e.g. French and Italian names - woo) d t // PB Hollywood ([d] sounds like [D] - dawson dV:s3n // PB name - dwight dwajt // PB name - _) doreen d0r'in // PB name - daumier _^_fr // PB name + rekor) d d // exception - pronounce d in 'rekord' + akor) d d // exception - pronounce d in 'akord' + hjor) d d // exception - pronounce d in 'hjord' +stikor) d // exception - silent d in 'stikord' + d' d // d'Aviano - e.g. French and Italian names + woo) d t // Hollywood ([d] sounds like [D] + dawson dV:s?Vn // name + dwight dwaIt // name + _) doreen d0r'in // name + daumier _^_fr // name // general rule: [D] after vowel and before consonant A) d (C D // adkomst + +// final d: D + A) d (_ D // lad + // exceptions - fe) dt (@ t // PB fedtet, fedtsyl - ski) dt t // PB - tu) ds (e s // PB silent d - bi) d (sk // PB silent d - _ma) d (sen // PB silent d - spre) dt t // PB spredtes - sta) ds s // PB - stru) ds s // PB - i) d (ti+ D // PB hidtil - bu) d (apest d // PB - d (rama d // PB melodramatisk - æ) d (ru d // PB - pe) d (ro d // PB name - e) d (gar d // PB name - bu) ddh d // PB buddhist - y) ds s // PB kryds - pi) ds s // PB spids - hi) ds s // PB hidse - kra) ds s // PB kradse - spa) ds (er s // PB spadsere - ri) ds s // PB ridse - A) ds (æt Ds // PB hidsætte - _u) d (++ D // PB udse - A) ds (el s // PB fødsel, brændsel, bidsel - ræ) d (sel D // PB - ned) d (s D // PB nedsmelte - ø) d (s++ D // PB dødscelle, nødspor, ødsel, nødstilfælde + fe) dt (@ t // fedtet, fedtsyl + 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 // + i) d (ti+ D // hidtil + bu) d (apest d // + d (rama d // melodramatisk + æ) d (ru d // + pe) d (ro d // name + e) d (gar d // name + bu) ddh d // buddhist + y) ds s // kryds + pi) ds s // spids + hi) ds s // hidse + kra) ds s // kradse + spa) ds (er s // spadsere + ri) ds s // ridse + A) ds (æt Ds // hidsætte + _u) d (++ D // udse + A) ds (el s // fødsel, brændsel, bidsel + 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 - ø) d (sel++ // PB silent d - gi) d (s+ // PB silend d - gidsel - kre) d (s // PB silent d - kredsløb - ø) d (t // PB silent d - mødtes - svær) d // PB silent d - sværdfisk - vær) d (i d // PB bemærkelsesværdigt - hi) ds (e s // PB ophidse - pla) ds s // PB - pu) ds s // PB pudse - stu) ds s // PB studs, studse - smu) ds s // PB - dø) d (+ D // PB dødtræt - lfre) ds s // PB tilfreds - fjer) di (ng e // PB silent d - forfjerding (1/4 of an animal ) + ø) d (sel++ // silent d + kre) d (s // silent d - kredsløb + ø) d (t // silent d - mødtes + svær) d // silent d - sværdfisk + vær) d (i d // bemærkelsesværdigt + hi) ds (e s // ophidse + pla) ds s // + pu) ds s // pudse + stu) ds s // studs, studse + 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 ) -// PB general rule: silent d before st - d (st++ // PB silent d - sidste, mindst - mo) d (st+ D // PB modstand, modstå - u) d (styr+ D // PB - bu) d (s++ D // PB forbudstiden - gla) dstone dst0wn // PB name - y) d (stat+ D // PB sydstaterne - fre) d (s D // PB fredstid +// general rule: silent d before st + d (st++ // silent d - sidste, mindst + mo) d (st+ D // modstand, modstå + u) d (styr+ D // + bu) d (s++ D // forbudstiden + gla) dstone dst0wn // name + y) d (stat+ D // sydstaterne + fre) d (s D // fredstid -// PB general rule: [D] after a vowel - A) d D // PB sted - way too broad? - aci) d (ose d // PB - A) dd D // PB skuddene - _i) d (e d // PB - _i) d (é d // PB - evi) d (en d // PB evident - bi) d (e D // PB bider - ri) d (e D // PB - vi) d (er D // PB videre - ti) d (e D // PB tider - salva) dor d'O: // PB El Salvador - via) du (kt d'O // PB - bermu) d (a d // PB name - ju) dæ (a d'E: // PB name - ju) d (as d // PB name - a) d (am d // PB name - d (oll d // PB babydoll - d (obl d // PB tidoble - a) d (opter d // PB adoptere - me) d (alj d // PB medalje +// general rule: [D] after a vowel + A) d (A D + ste) d D // sted + aci) d (ose d // + ø) d (em_ d // ødem + ø) d (emer_ d // ødemer + ø) d (emet_ d // ødemet + A) dd D // skuddene + _i) d (e d // + _i) d (é d // + evi) d (en d // evident + bi) d (e D // bider + ri) de D@- // rideskole + si) de D@- // sidemand + vi) d (er D // videre + ti) d (e D // tider + salva) dor d'O: // El Salvador + via) du (kt d'O // + bermu) d (a d // name + ju) dæ (a d'E: // name + ju) d (as d // name + a) d (am d // name + d (oll d // babydoll + d (obl d // tidoble + a) d (opter d // adoptere + me) d (alj d // medalje -// PB general rule: dd between two vowels: [D] - A) dd (A+ D // PB redder +// general rule: dd between two vowels: [D] + A) dd (A+ D // redder - gu) dd (++ Dd // PB guddommelig, guddatter - lu) dd (ov Dd // PB luddovne - u) dd (ann Dd // PB veluddannet - ly) dd (æmp Dd // PB lyddæmper - sku) dd (u+ Dd // PB skudduel - me) dd (el Dd // PB meddeleren, meddelsom - u) dd (ø+ Dd // PB - blø) dd (yr Dd // PB - spi) d (steg D // PB spidstege - ne) d (st D // PB nedstemme, nedstirre - ti) ds (nok s' // PB silent d - tidsnok - hår) d // PB silend d - hård, hårdere - stri) d (s D // PB but not silent d in e.g. 'stridsvogn' - u) dt (+ t // PB brudt - plu) dsel sl/2 // PB silentg d - pludselig [pl'usli] + gu) dd (++ Dd // guddommelig, guddatter + lu) dd (ov Dd // luddovne + u) dd (ann Dd // veluddannet + ly) dd (æmp Dd // lyddæmper + sku) dd (u+ Dd // skudduel + me) dd (el Dd // meddeleren, meddelsom + u) dd (ø+ Dd // + blø) dd (yr Dd // + spi) d (steg D // spidstege + ne) d (st D // nedstemme, nedstirre + ti) ds (nok s' // silent d - tidsnok + hår) d // silend d - hård, hårdere + stri) d (s D // but not silent d in e.g. 'stridsvogn' + u) dt (+ t // brudt + plu) dsel s@-l/2 // silentg d - pludselig [pl'usli] in) d (C ir) d (_ d pæ) d (a d @@ -1675,17 +1713,15 @@ stikor) d // PB exception - silent d in 'stikord' å) d (an d kandi) d (at 'd mi) dd (a d - nø) dde (+ D3 // PB jordnøddesmør - an) d (e // PB manden, anden - silent d - _fan) de (me // PB fandeme - skip de, only this word - gær) de V // PB silent d - si) d (ent d // PB præsident + nø) dde (+ D@- // jordnøddesmør + an) d (e // manden, anden - silent d + _fan) de (me // fandeme - skip de, only this word + gær) de V // silent d + si) d (ent d // præsident mo) d (el d or) d (el d or) d (en d - gui) de (n de - ver) d (en d - gui) der dV + ver) den d@-n // verdenskrig klu) d (ere d // konkludere A) d (es D bu) d (get @@ -1693,960 +1729,1096 @@ stikor) d // PB exception - silent d in 'stikord' An) d (rA d ma) d (ras d An) d (re d - bu) ddh (ist d // PB silent h - buddhist - _a) d (r d // PB adresse, adrenalin - hon) d (ura d // PB Honduras + bu) ddh (ist d // silent h - buddhist + _a) d (r d // adresse, adrenalin + hon) d (ura d // Honduras ti) d (s+ D // tidstabel - ti) d (sel // PB silent d - A) d (t_++ // PB silent d - forbudt, skudt, ladt, godt - A) d (te_++ // PB silent d - beskidte, godte - A) d (ter_++ // PB silent d - godter - i) d (t // PB skridtet, skoleridtet - fo) d (C++ D // PB fodtøj - fjer) d (e // PB silent d - fjerde - L09A) d (ta D // PB modtage, medtage, nedtage + ti) d (sel // silent d + A) d (t_++ // silent d - forbudt, skudt, ladt, godt, vådt + A) d (te++ // silent d vådte, vådtet + A) d (te_++ // silent d - beskidte, godte + A) d (ter_++ // silent d - godter + i) d (t // skridtet, skoleridtet + fo) d (C++ D // fodtøj + fjer) d (e // silent d - fjerde + L09A) d (ta D // modtage, medtage, nedtage in) d (u d - pro) ducer (_ dj'usV // PB - pro) ducer (assistent dj'usV // PB + pro) ducer (_ dj'usV // + pro) ducer (assistent dj'usV // in) d (uC d mo) d (ul d' - pen) d (ul d' // PB pendul - dendron d'endrVn // // PB filodendron - doubleton dVb@ltVn // PB from bridge (card game) - double dVb@l // PB mixed double - deuce dZu:s // PB - _) dav (_ dAw // PB dav - _) davs (_ dAws // PB davs - detente det'A:Nt // PB - doughnut downVd // PB - _) doc (_ dVk // PB Doc - name - dodge dVdZ // PB city - daiquiri d&k@ri // PB drink - _) duke dZu:k // PB Duke - name - _) drive (- dRAjv // PB drive-in - _) dean di:n // PB name - dubois dybw'A // PB name - dorothy _^_en // PB name - debbie dEbi // PB name - download dawnlowd // PB - down dawn // PB Downs syndrom - detroit detr'Vjt // PB US city - daryl d&r3l/2 // PB name - drisco _^_en // PB name Driscoll - dutch dVtS // PB name - darlene dAl'in // PB name - doubtfire dawdfajV // PB name (movie) - dickie deki // PB name - dicky deki // PB name - dewey djui // PB name + pen) d (ul d' // pendul + dendron d'endrVn // // filodendron + doubleton dVb@ltVn // from bridge (card game) + double dVb@l // mixed double + deuce dZu:s // + _) dav (_ dAw // dav + _) davs (_ dAws // davs + detente det'A:Nt // + doughnut downVd // + _) doc (_ dVk // Doc - name + dodge dVdZ // city + daiquiri d&k@ri // drink + _) duke dZu:k // Duke - name + _) drive (- dRAIv // drive-in + _) dean di:n // name + dubois dybw'A // name + dorothy _^_en // name + debbie dEbi // name + download dAwnlowd // + down dAwn // Downs syndrom + detroit detr'Vjt // US city + daryl d&r3l/2 // name + drisco _^_en // name Driscoll + dutch dVtS // name + darlene dAl'in // name + doubtfire dAwdfaIV // name (movie) + dickie deki // name + dicky deki // name + dewey djui // name -.group é // added by PB - é 'e // idé, entré +.group é + é '?e // idé, entré .group e - e e // PB e: => e -// PB stress on second syllable after initial "be" in .group be + e e // e: => e + +// short (glottal) e before double consonant + e (C% ?e // leddet + l) e (L07% ?E // lettede + e (nn ?E // denne, henne + e (L02%+ ?E // modemmet, slemme + C) e (rr ?E // herre + C) e (ll% ?E // celle + e (ks ?E // heks + ek (t ?Eg // kontakt + _konf) ek (t '?Eg // stressed + +// Short e followed by st, st, sk - made short in ph_danish + C) e (L08 E // fest, fester, hest, heste + sl) e (sk e // slesk, sleske + m) e (st e // + nærm) e @- // nærmeste + ån) e (C @- // månestråle + rav) e @- // travesko + skad) e @- // skadestue + hyld) e (s @- // hyldest + +// exceptions + cyk) e (lløb @- // + sku) e (@ @- // skuespil + menn) e @- // menneske + æl) e (@ @- // sjælefred + ill) e (@ @- // lillebror + r) e (v E // brev + år) e (@+ @- // årevis + Ass) e (@ @- // klasseværelse + r) e (Ce+ E // breve + str) ee (t i: // street + _d) e (m_ E // + f) e (m E // femten + e (dith e: // name + +// E after r + r) e E // reaktion - VERY BROAD + @r) es (_ Vs // koncentreres TEST +// @r) et (_+ Vd // koncentreret TEST + +// E before n - VERY BROAD + e (nK ?E // send, end, men + e (ns e // ensrette + _) e (n_ e // + b) e (n e // + ov) e (n @- // ovenpå + os) e (n @- // rosenknop + sjæld) e (n @- // sjældent + _) e (ne e // ene, eneste + e (net_ @- // bækkenet + gen) e (ral @- // + _s) e (n_ e // sen + _s) e (nt_ e // sent + _l) e (n_ e // len + _m) e (nt e // ment, mente + +// e followed by ne - VERY BROAD + e (ne_ e // sene, mene + +// e followed by ner - VERY BROAD + e (ner_ e // scene, mener + +// stress on second syllable after initial "be" in .group be // Secondary stress after a syllable - &b) e (s@ e, // PB hv'alrosbest,and - &Ab) er V // PB fibersprængning - b) e (ret+ e // PB stemmeberettiget - ib) er (ia+ 'er // PB Iberia, Liberia - rob) er (ta 'Er // PB - forb) e e // PB forberede - b) e (rig e // PB våbenberiget - b) e (rg+ E // PB herberg - fab) ergé ErS'e // PB name - bomb) e (r@ 3 // PB bomberydder - dobb) e (l @ // PB - reb) e (kka 'E // PB name + &b) e (s@ e, // hv'alrosbest,and + &Ab) er V // fibersprængning + b) e (ret+ e // stemmeberettiget + ib) er (ia+ 'er // Iberia, Liberia + rob) er (ta 'Er // + forb) e e // forberede + b) e (rig e // våbenberiget + b) e (rg+ E // herberg + fab) ergé ErS'e // name + bomb) e (r@ @- // bomberydder + dobb) e (l // + reb) e (kka 'E // name - C) e (L02 E // PB stemme, lefle -_halvf) e (ms 'E // PB stressed - d) e (p e // PB depressiv -_emfys) e (m 'e // PB stressed - kn) e (b e // PB - C) e (L02L11 e // PB tema - TEST - herr) e 3 // PB herremand - bed) e 3 // PB bedemand -_still) e (ben ='e // PB - fr) e (m &# // PB fremad - _eks) e (mpel 'E // PB stressed - entr) e (pr 3 // PB entreprise - spar) e 3 // PB sparebøsse - ordr) e 3 // PB ordrebog - ær) e (+ 3 // PB ærefrygt - r) e (L02s &# // PB revse, krebs - TEST - br) e (v E // PB brevstemt - L03) e (L02L04 e // PB akademiker - andr) e V // PB vandrefalk, andres - r) e (nsning &# // PB tandrensning - tub) e (rku E // PB tuberkulose + l) e (fl ?E // lefle + p) e (ng ?E // penge + 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 +_emfys) e (m 'e // stressed + kn) e (b e // + kn) eb (re Eu // "knebre med næbbet" + C) e (L02a e // tema + ød) e (+ @- // ødemark + herr) e @- // herremand + bed) e @- // bedemand +_still) e (ben ='e // + fr) e (m &# // fremad + _eks) e (mpel 'E // stressed + entr) e (pr V // entreprise + spar) e @- // sparebøsse + ordr) e @- // ordrebog + r) e (L02s &# // revse, krebs - TEST + br) ev (+ Ew // brevstemt + br) eve E:?u@- // breve + Cr) evet E:?u@-D_! // brevet, skrevet + L03) e (L02i e // akademiker + åd) e (++ @- // gådefuld + åd) er (++ V // gåder + nd) e @- // yndefuld + ind) er V // inder + andr) e V // vandrefalk, andres + r) e (nsning &# // tandrensning + tub) er (ku E3- // tuberkulose - kol) e (C @ // PB skolebog - pol) e (re+ e // PB finpolere - kol) e (st E // PB kolesterol - t) e (d E // PB sted - TEST - st) ed (fa e // PB stedfar - st) ed (mo e // PB stedmor - st) ed (sø e // PB stedsøm - st) ed (da e // PB steddatter - e (dt e // PB fedtet - C) e (C% ?E // PB celle, redde TEST - gaz) e (lle 'E // PB stressed - van) e (ssa 'E // PB stressed - ard) e (nner 'E // PB Ardennerne - stressed - _konf) e (tti 'E // PB stressed - kass) e (tte 'E // PB stresed - h) e (dd e // PB hedde - C) e (dA e // PB medalje, rede TEST - tol) ed (o 'ed // PB toledostål - val) e (ncia 'E // PB - mal) er V // PB maler - end) er V // PB afsenderadresse - mål) er V // PB måleraflæser - mal) e (ri V // PB - val) e (ri++ @ // PB kavaleri - perl) e @ // PB - aml) e @ // PB samlestykke - kons) e (kv @ // PN inkonsekvens - l) e (ve e // PB samlever - _dil) e (mma 'E // PB - ll) e (de // PB silent e - billede - CAs) e (ner // PB silent e - væsener (also spelled "væsner") - midl) er V // PB midlertidig - elleve elv@ // PB - _koll) e (ga 'e // PB stressed - _koll) eg (e 'ej // PB stressed kolleger - strat) eg (_ 'ej // PB strateg - _sem) e (ster 'E // PB stressed -_borgm) e (st 'E // PB borgmester - stressed -_kompl) e (ks 'E // PB stressed - _grot) e (s 'E // PB stressed - grotesk - _pres) e (nning 'E // PB stressed -philad) elphi (a 'Elfj // PB stressed - _inc) e (st 'E // PB stressed - sankt) e (lmsild 'E // PB stressed -banglad) esh 'ES // PB stressed - _p) errier eri'e // PB brand name - eddike Edk3 // PB + kol) e (C @- // skolebog + pol) e (re+ e // finpolere + kol) e (st E // kolesterol + t) e (d E // sted - TEST + st) ed (fa e // stedfar + st) ed (mo e // stedmor + st) ed (sø e // stedsøm + st) ed (da e // steddatter + e (dt e // fedtet + gaz) e (lle '?E // stressed + van) e (ssa '?E // stressed + ard) e (nner '?E // Ardennerne - stressed + _konf) e (tti '?E // stressed + kass) e (tte '?E // stresed + h) e (dd ?e // hedde + m) e (dalje e // medalje + v) e (de @- // helvedes + tol) ed (o 'ed // toledostål + val) e (ncia 'E // + mal) er V // maler + end) er V // afsenderadresse + mål) er V // måleraflæser + mal) e (ri V // + val) e (ri++ @- // kavaleri + perl) e @- // + aml) e @- // samlestykke + kons) e (kv @- // PN inkonsekvens + l) e (ve e // samlever + _dil) e (mma 'E // + ll) e (de // silent e - billede + ll) e (det @- // billedet + CAs) e (ner // silent e - væsener (also spelled "væsner") + midl) er V // midlertidig + elleve Elv@- // + ellever ElvV // elleverne + _koll) e (ga 'e // stressed + _koll) eg (e 'ej // stressed kolleger + strat) eg (_ 'ej // strateg + _sem) e (ster 'E // stressed +_borgm) e (st 'E // borgmester - stressed +_kompl) e (ks 'E // stressed + _grot) e (s 'E // stressed - grotesk + _pres) e (nning 'E // stressed +philad) elphi (a 'Elfj // stressed + _inc) e (st 'E // stressed + sankt) e (lmsild 'E // stressed +banglad) esh 'ES // stressed + _p) errier eri'e // brand name + eddike Edk@- // -// PB general rule: [E] after l before t/k - l) e (L07 E // PB lektor, let - sl) e (t++ E // PB familieudslettelse, udslet (not [uDsl@D]) - varsl) et @D // PB +// general rule: [E] after l before t/k + l) e (t E // let + l) e (k E // lektor + udsl) e (t++ E // familieudslettelse, udslet (not [uDsl@D]) + varsl) et @-D // + ål) e (C @- // strålekrans -// PB general rule: [E] after r before consonant - r) e (dA E // PB rede - r) e (C% ?E // PB short e before double consonant - redde - r) e (sse &# // PB afsenderadresse - L02r) e (C% &# // PB labial + r - fremmed - aggr) e (ssor &# // PB - L07r) e (m &# // PB tremme - ekstr) e (m 'e // PB stressed - r) e (vl &# // PB trevl, revle - dr) e (des_ V // PB ændredes, undredes - TEST - fr) eddie Edi // PB name - fr) eddy Edi // PB name - tr) e (mile e // PB tremilegrænse +// general rule: E before l + e (lC E // heldig, held og lykke, helvede - r) ee (l e|E // PB reelle - r) ey Ej // PB greyhound - ndr) e (A V // PB mindreårig - gr) e (l &# // PB grel - stor) e V // PB storebror - str) eg aj // PB streg, stregkode - tr) eg (en_ aj // PB stregen - tr) eg (er_ aj // PB streger - tr) eg (e_ aj // PB understrege - tr) eg (es_ aj // PB streges - tr) eg (ede_ aj // PB understregede - overj) eg aj // PB - sj) eg aj // PB fremtidsjeg - tuar) eg Eg // PB - r) e (ndt a // PB røvrendt - r) e (nte &# // PB - r) e (st &# // PB restlager - r) e (stL11 e // PB restaurere - klatr) e V // PB - hor) e V // PB horeunge - r) e (vn &# // PB revne - leder) e (vne E // PB - dr) e (vn E // PB overdrevne - skr) e (v e // PB skrevne - r) e (kto &# // PB rektor - &or) e (pl V // PB boreplatform - ur) e (ne @ // PB murene - r) e (s_ @ // PB forhindres - _tr) e (s E // PB tres (60) - opr) e (v E // PB oprevet - pr) e (m E // PB premiere - spr) e (d E // PB spredt +// general rule: E before m + e (m E // slem, slemt, hjem - short in ph_danish + genn) e (m @- // igennem -// PB general rule: [&#] after pr followed by double consonant TEST - pr) e (C%+ &# // PB presse - pr) e (s+ &# // PB - pr) e (sserende E' // PB - pr) estige (_ Est'iS // PB - depr) e (ss E // PB depressiv +// E before r + consonant + e (rCe E // hjerte, smerte TEST -//PB general rule: [&#] after r before ns/ms - r) e (L09s &# //PB rensetøj - r) e (nsku E // PB exception ren = clean - renskure - r) e (nskr E // PB renskrive, renskrevet + _d) er (@+ E3- // derinde -//PB general rule: [&#] after r before m - r) e (m &# //PB rem, frem +// compound with eiding -er + another word + @C) er (C@ V // hypermoderne - TEST -//PB general rule: [e] after r before m + front vowel - r) e (mL04 e // PB remoulade, remisse - ældr) e (+ 3 // PB forældremyndighed - fr) e (mov &# // PB fremover +// general rule: [E] after r before consonant + r) e (d E // rede, fred + r) e (C% ?E // short e before double consonant - redde + r) e (sse ?&# // afsenderadresse + L02r) e (C% ?&# // labial + r - fremmed + aggr) e (ssor ?&# // + L07r) e (mm ?&# // tremme + ekstr) e (m 'e // stressed + r) e (vl ?&# // trevl, revle + dr) e (des_ V // ændredes, undredes - TEST + fr) eddie Edi // name + fr) eddy Edi // name + tr) e (mile e // tremilegrænse -//PB general rule: [&#] after r before ng - r) e (ng &# //PB streng, dreng - mar) e (ng '&# // PB stressed - marengs - r) e (ngø E // PB rengøre + r) ee (l e|E // reelle + r) ey Ej // greyhound + ndr) e (A V // mindreårig + gr) e (l &# // grel + stor) e V // storebror + str) eg aI // streg, stregkode + tr) eg (en_ aI // stregen + tr) eg (er_ aI // streger + tr) eg (e_ aI // understrege + tr) eg (es_ aI // streges + tr) eg (ede_ aI // understregede + overj) eg aI // +himstr) eg (ims Vg // avoid aI + sj) eg aI // fremtidsjeg + tuar) eg Eg // + r) e (ndt a // røvrendt + r) e (nte &# // + r) e (st &# // restlager + r) e (stau e // restaurere + klatr) e V // + r) e (vn &# // revne + leder) e (vne E // + dr) e (vn E // overdrevne + skr) e (v e // skrevne + r) e (kto &# // rektor + &or) e (pl V // boreplatform + ur) e (ne @- // murene + _tr) e (s E // tres (60) + opr) e (v E // oprevet + pr) e (m E // premiere + spr) e (d E // spredt -//PB general rule: [&#] after r before t - r) e (t &# //PB ret - ber) e (t++ &# // PB beret, indberet -karryr) e (t+ &# // PB - forr) e (t++ &# // PB - opr) e (t++ &# // PB -kriminalr) e (t &# // PB - gr) e (t E // PB Greta +// general rule: [&#] after pr followed by double consonant TEST + pr) e (C%+ ?&# // presse + pr) e (s+ ?&# // + pr) e (sserende E' // + pr) estige (_ Est'iS // + depr) e (ss E // depressiv -// PB exceptions (re = prefix e.g. reanimate) - r) e (tab e // PB retablere - r) e (tard e // PB retarderet - r) e (tention e // PB - r) e (ti e // PB retirere - r) e (tor e // PB retorik - r) e (tou e // PB retouchere - r) e (tran e // PB retreansmittere - r) e (tro e // PB retospekt - r) e (træ e // PB retræte - r) e (tsina e // PB - r) e (tur e // PB returnere +// general rule: [&#] after r before ns/ms + r) e (L09s &# // rensetøj + r) e (nsku E // exception ren = clean - renskure + r) e (nskr E // renskrive, renskrevet - forr) e (tning+ '&# PB stressed - teor) e (t e // PB teoretisk - _tr) e (t e // PB tretal - kr) e (ta e // PB Kreta +// general rule: [&#] after r before m + r) e (m &# // rem, frem + +// general rule: [e] after r before m + front vowel + r) e (mL04 e // remoulade, remisse + ældr) e (+ @- // forældremyndighed + fr) e (mov &# // fremover + +// general rule: [&#] after r before ng + r) e (ng ?&# // streng, dreng + mar) e (ng '&# // stressed - marengs + r) e (ngø E // rengøre + +// general rule: [&#] after r before t + r) e (t+ &# // ret, efterretning + ber) e (t++ &# // beret, indberet +karryr) e (t+ &# // + forr) e (t++ &# // forret + opr) e (t++ &# // +kriminalr) e (t &# // + gr) e (t E // Greta + +// exceptions (re = prefix e.g. reanimate) + r) e (tab e // retablere + r) e (tard e // retarderet + r) e (tention e // + r) e (ti e // retirere + r) e (tor e // retorik + r) e (tou e // retouchere + r) e (tran e // retreansmittere + r) e (tro e // retospekt + r) e (træ %?E // retræte - stressed æ + r) e (tsina e // + r) e (tur e // returnere + + forr) e (tning+ '&# // stressed + teor) e (t e // teoretisk + _tr) e (t e // tretal + kr) e (ta e // Kreta fr) e (l &# // frelse - yr) e (+ @ // PB myretue, dyrehold - r) e (nse &# // PB nyrenset - r) e (h 3 // PB general rule: [3] after r before h - fårehyrde, varehus - _tr) e (+ e // PB treholdsskift - r) e (habil e // PB rehabilitering - r) e (nd_ &# // PB - r) e (nde &# // PB -stikir) e (nddreng '&# // PB - @n) e (d 3 // PB general rule: [3] after @+n before d - måned - men) e (d e // PB - n) e (dslag e // PB lynnedslag - n) e (dgang e // PB - n) e (dsæt e // PB nedsætte - n) e (dstig e // PB nedstigning - m) e (di+ e // PB medicin - rn) e (d+ ,e // PB derned - forn) eden 'eD3n // PB - an) e (r @ // PB anerkende + yr) e (@+ @- // myretue, dyrehold + 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 + 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 + forn) eden 'eD@-n // + an) e (r @- // anerkende L09) e (de e // nede, nederlag - arkim) e (des 'e // PB name - mus) e (um 'E // PB stressed - mus) e (et 'E // PB stressed + mån) e (d @- // måneder + arkim) e (des 'e // name + mus) e (um 'E // stressed + mus) e (et 'E // stressed L09) e (t e // metal -heavy_m) etal Et3l // PB + n) etop Ed\,Vb // +heavy_m) etal Et@-l // L09) e (l E // mellem - L06) e (r E // PB perle - rob) e (rto 'E // PB name - r) e (re 3 // PB operere - sup) er V // PB superagenten - sup) er (lativ 'Er // PB stressed - @) es (_N 3s // elskes, skabes - _arl) es _^_fr // PB French town - _m) e (l_ e // PB - ed) e (r @ // nederlag + mell) e (m @- // mellem + L06) e (rl E // perle + rob) e (rto 'E // name + r) e (re E // operere + sup) er V // superagenten + sup) er (lativ 'Er // stressed + _arl) es _^_fr // French town + _m) e (l_ e // + ed) er V // nederlag tr) e (ma E' // trema - s) e (dd E // PB seddel - s) ek (sten aj // PB seksten, sekstende + s) e (dd ?E // seddel + s) ek (sten aI // seksten, sekstende ell) er V // ellers - fr) edag Ed& // PB fredag - not [d&j) - nov) e (mber 'e // PB - dec) e (mber 'e // PB - sept) e (mber 'e // PB - eus Wws // PB for Greek names - Zeus, Achilleus - m) euse W:z // PB French river - st) ew ju // PB Stewart - tel) e 3 // PB tele - ele) eg (+ aj // PB gætteleg - del) eg (A @g // PB delegation - tel) eg (r 3g // PB telegram - l) eg (iti eg // PB legitim - l) eg (an++ @g // PB elegant - tel) e (x E // PB - afl) e (v @ // PB aflevere - ri) e 3 // PB ferie - bri) e (f // PB briefing - silent e - _a) e (_ 3 // PB ae - ød) e 3 // PB øde - hav) e 3 // PB - god) e @ // PB - kod) e @ // PB kodeord - pl) e (men 3 // PB supplement - øbl) e (m 3 // PB møblement - hvab) e (har_ 3 // PB hvabehar - Ar) e (s_ 3_: // PB gøres - r) eau o // PB bureaukratiske - _m) ead (_ i:d // PB name - Lake Mead - ee (r 'e: // PB ideer, cafeer - k) eefe 'i:f // PB name - sh) ee (la i: // PB name - _r) eed (K i:d // PB name - toup) e 'e // PB stressed - fr) ee i: // PB Freeman - w) ee (k i: // PB Newsweek - g) ee (k i: // PB - k) ee (per i: // PB - ee (jer @a // PB hundeejer - gr) ee (n i: // PB evergreen - kathl) ee (n 'i: // PB name - gr) ea (t Ej // PB English word - sw) ea (ter E // PB - sw) ea (tre E // PB - easy isi // PB - h) ead Ed // PB overhead - ch) eese i:s // PB cheeseburger - h) ea (l i: // PB healer - _n) eal i:l/2 // PB name - fr) ee (lan i: // PB freelance - b) ee (d ee // PB beedige - _en) e @ // PB ene, eneste - en) e (m E // PB pærenem - en) e (rgi E // PB - br) e (L09 &# // PB bremse - br) enda End& // PB name - sn) e (K+ e // PB sne, snebold, nysne - lAsn) e (+ 3 // PB lysne, løsne - lAsn) er (+ V // PB lysner, løsner - visn) e (+ 3 // PB visne - visn) er (+ V // PB visner - gisn) e (+ 3 // PB gisne - gisn) er (+ V // PB gisner - _isn) e (+ 3 // PB isne - _isn) er (+ V // PB isner - voksn) e 3 // PB - sn) eg (l aj // PB - _sn) e (r_ e // PB det sner - _sn) ee (de_ e@ // PB det sneede - sn) e (rp E // PB snerpet - sn) e (rre &# // PB snerre - sn) edker ekV e // PB silent d - snedker -papmach) e e // PB - _s) e (_ e? // PB se - e (mball A // PB emballere, emballage - dir) e (kt &# // PB direkte, direktør - n) eu Wu // PB neuron, neutral - n) e (unge 3 // PB ørneunge - ed) e (- @ - g) e (js aj - _ni) e // PB changed from [ni)e] to[_ni)e] - niende, nier, niendedel - _ni) e (ce 'E: // PB exception from the rule above (_ni)e) - _fl) ee (ce+ i: // PB fleece, fleecejakka - material for clothing - fleec) e // PB fleece - skip the final e -freelanc) e // PB freelance - skip the final e -freelanc) e (r V // PB the word 'freelancer' -hospic) e (_ // PB hospice - skip the final e -hospic) et 3D // PB - penc) e // PB pence - skip the e -interfac) e // PB interface - skip the final e - sauc) e // PB sauce, bearnaisesauce - juic) e // PB juice - skip the e -servic) e (fag // PB servicefag -servic) e (med // PB servicemedarbejder -servic) e (sektor // PB servicesektor -servic) e (station // PB servicestation -servic) e (ydelse // PB serviceydelse -softic) e // PB softice -motorpac) e // PB motorpace - skip the e - s) e (rviceeftersyn '@ // PB serviceeftersyn -motorpac) e (n @ // PB motorpacen - pac) e (maker // PB pacemaker - skip the e -provenc) e // PB Provence - skip the e - prov) e (nce 'A: // PB Provence - bl) eg aj // PB bleg - e (gsot a // PB blegsot - e (gfi a // PB blegfis - bl) egem (id aj@m // PB blegemiddel, blegemidler - eg (rød aj // PB blegrød - _b) eg (_ aj // PB - æbl) e (grød 3 // PB æblegrød - bobl) e 3 // PB boblegummi - nothing to do with "bleg" - _) egen (@ ej@n // PB egenrådig, egennyttig - eg (enbeskyd+ aj // PB egenbeskydning - r) e (ste &# // PB resten - nyr) e (+ V // PB nyresten + fr) edag Ed& // fredag - not [d&j) + 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 + tel) e @- // tele + ele) eg (+ aI // gætteleg + del) eg (A @-g // delegation + tel) eg (r @-g // telegram + l) eg (iti eg // legitim + l) eg (an++ @-g // elegant + tel) e (x E // + afl) e (v @- // aflevere + bri) e (f // briefing - silent e + hav) e @- // havesyg + e (ment @- // supplement, møblement + hvab) e (har_ @- // hvabehar + v) ek (s Eg // veksle + r) eau o // bureaukratiske + _m) ead (_ i:d // name - Lake Mead + eer 'eV // ideer, cafeer, veer + k) eefe 'i:f // name + sh) ee (la i: // name + _r) eed (K i:d // name + toup) e 'e // stressed + fr) ee i: // Freeman + w) ee (k i: // Newsweek + g) ee (k i: // + k) ee (per i: // + ee (jer @-A // hundeejer + gr) ee (n i: // evergreen + kathl) ee (n 'i: // name + gr) ea (t Ej // English word + sw) ea (ter E // + sw) ea (tre E // + easy isi // + h) ead Ed // overhead + ch) eese i:s // cheeseburger + h) ea (l i: // healer + _n) eal i:l/2 // name + fr) ee (lan i: // freelance + b) ee (d ee // beedige + _en) e @- // ene, eneste + en) e (m E // pærenem + en) e (rgi+ E // + br) e (L09 &# // bremse + br) enda End& // name + sn) e (K+ e // sne, snebold, nysne + frosn) e @- // fastfrosne + lAsn) e (+ @- // lysne, løsne + lAsn) er (+ V // lysner, løsner + visn) e (+ @- // visne + visn) er (+ V // visner + gisn) e (+ @- // gisne + _isn) e (+ @- // isne + voksn) e @- // + sn) eg (l aI // + _sn) e (r_ e // det sner + _sn) ee (de_ e@- // det sneede + sn) e (rp E // snerpet + sn) e (rre &# // snerre + sn) edker ekV e // silent d - snedker +papmach) e e // + _s) e (_++ ?e // se + e (mball A // emballere, emballage + dir) e (kt &# // direkte, direktør + n) eu Wu // neuron, neutral + n) e (unge @- // ørneunge + ed) e (- @- + g) e (js aI + _ni) e // changed from [ni)e] to[_ni)e] - niende, nier, niendedel + _ni) e (ce 'E: // exception from the rule above (_ni)e) + _fl) ee (ce+ i: // fleece, fleecejakka - material for clothing + fleec) e // fleece - skip the final e +freelanc) e // freelance - skip the final e +freelanc) e (r V // the word 'freelancer' +hospic) e (_ // hospice - skip the final e +hospic) et @-D // + penc) e // pence - skip the e +interfac) e // interface - skip the final e + sauc) e // sauce, bearnaisesauce + juic) e // juice - skip the e +softic) e // softice +motorpac) e // motorpace - skip the e +motorpac) e (n @- // motorpacen + pac) e (maker // pacemaker - skip the e +provenc) e // Provence - skip the e + prov) e (nce 'A: // Provence + bl) eg aI // bleg + e (gsot a // blegsot + e (gfi a // blegfis + bl) egem (id aI@m // blegemiddel, blegemidler + eg (rød aI // blegrød + _b) eg (_ aI // + æbl) e (grød @- // æblegrød + bobl) e @- // boblegummi - nothing to do with "bleg" + _) egen (@ ej@-n // egenrådig, egennyttig, egentlig + eg (enbeskyd+ aI // egenbeskydning + _r) e (sten_ &# // resten + nyr) e (+ V // nyresten r) e (staurant E - e (gansigt &# // PB blegansigt -_kongr) e (s '&# // PB kongres - stressed but not after a syllable - _regr) e (s '&# // PB regres - _regr) e (ssiv &# // PB regressiv - kongr) e (s &# // PB lægekongres - _rødb) e (de 'e // PB stressed e in 'rødbede' -_aller) e (de_ E // PB allerede - otherwise the E is changed by another rule - _im) e (ns+ 'e // PB stressed - _magn) e (t 'e // PB stressed - _refl) e (ks 'E // PB stressed - divan) e (ser 'e // PB stressed - lar) e (do 'e // PB - l) ew (is u: // PB name - p) eabody ibVdi // PB name - exchange _^_en // PB - eagle i:g@l // PB - p) ea (co i: // PB Peacock - _p) ea (k_ i: // PB - dr) ea (m i: // PB English - _d) ee (p i: // PB Deep Throat - _p) each i:tS // PB - _) eton i:t@n // PB university + e (gansigt &# // blegansigt +_kongr) e (s '&# // kongres - stressed but not after a syllable + _regr) e (s '&# // regres + _regr) e (ssiv &# // regressiv + kongr) e (s &# // lægekongres + _rødb) e (de 'e // stressed e in 'rødbede' +_aller) e (de_ E // allerede - otherwise the E is changed by another rule + _im) e (ns+ 'e // stressed + _magn) e (t 'e // stressed + _refl) e (ks 'E // stressed + divan) e (ser 'e // stressed + lar) e (do 'e // + l) ew (is u: // name + p) eabody ibVdi // name + exchange _^_en // + eagle i:g@-l // + p) ea (co i: // Peacock + _p) ea (k_ i: // + dr) ea (m i: // English + _d) ee (p i: // Deep Throat + _p) each i:tS // + _) eton i:t@-n // university -// PB final -em - stressed e - &) em (_$p_alt+ 'em // PB problem - &) em (et$p_alt+ 'em // PB problemet - &) em (er$p_alt+ 'em // PB problemer - &) em (s$p_alt+ 'em // PB problems +// final -em - stressed e + &) em (_$p_alt+ 'em // problem + &) em (et$p_alt+ 'em // problemet + &) em (er$p_alt+ 'em // problemer + &) em (s$p_alt+ 'em // problems // various exceptions - el) e (ndig E // PB møgelendig - steressed with $alt rule - leb) e (ndig 'E // PB steressed with $alt rule - _ball) e (t@ 'E // PB balletdanser -_en_ball) e (t 'E // PB -_vor_ball) e (t 'E // PB -_vores_ball) e (t 'E // PB -_jeres_ball) e (t 'E // PB -_deres_ball) e (t 'E // PB -_hans_ball) e (t 'E // PB -_hendes_ball) e (t 'E // PB - _r) e (ndyr+ e // PB rendyrke + el) e (ndig ?E // møgelendig - steressed with $alt rule + leb) e (ndig 'E // steressed with $alt rule + _ball) e (t@ 'E // balletdanser +_en_ball) e (t 'E // +_vor_ball) e (t 'E // +_vores_ball) e (t 'E // +_jeres_ball) e (t 'E // +_deres_ball) e (t 'E // +_hans_ball) e (t 'E // +_hendes_ball) e (t 'E // + _r) e (ndyr+ e // rendyrke øjest) e (n+ e // øjesten -skorst) e (n e // PB - murst) e (n e // PB -bautast) e (n // PB -meterst) e (n e // PB kilometersten - h) e (n_+ e // hen - carst) e (n @ - karst) e (n @ - hest) e (n+ @ // PB hestene - serv) e @ // PB reservehjul - tr) edive &#Dv@ // PB tredive - tr) edivete &#Dft@ // PB tredivete - entente ANt'ANt // PB - prof) essionel 'eSonel // PB - eisenhower ajs@nhAuV // PB - st) ei (nK aj // -stein in German names - _h) ei (l_ aj // PB heil Hitler - s) ei (smol aj // PB seismolog - t) eint EN // PB - eiger ajgV // PB Eiger mountain - sp) eed i:d // PB speedbåd - t) ech Ek // PB hightech -stoneh) enge EndZ // PB - pal) e (rmo 'E // PB - w) ee i: // PB Sweeney, weekend, tweed - tw) eed i:d // PB - _h) ei (di aj // PB name - _d) ei (dre i: // PB name - trap) ez 'Ets // PB stressed - l) eague i:g // PB Champions League +skorst) e (n e // + murst) e (n e // +bautast) e (n // +meterst) e (n ?e // kilometersten + h) e (n++ ?E // hen, hente, derhen + h) e (nde+ ?e // + carst) e (n @- + karst) e (n @- + hest) e (n+ @- // hestene + serv) e @- // reservehjul + off) e (n @- // offentliggøre + tr) edive &#Dv@ // tredive + tr) ediver &#DvV // trediverne + tr) edivete &#Dft@ // tredivete + entente ANt'ANt // + prof) essionel 'eSonel // + eisenhower aIs@nhAuV // + st) ei (nK aI // -stein in German names + _h) ei (l_ aI // heil Hitler + s) ei (smol aI // seismolog + t) eint EN // + eiger aIgV // Eiger mountain + sp) eed i:d // speedbåd + t) ech Ek // hightech +stoneh) enge EndZ // + pal) e (rmo 'E // + w) ee i: // Sweeney, weekend, tweed + tw) eed i:d // + _h) ei (di aI // name + _d) ei (dre i: // name + trap) ez 'Ets // stressed + l) eague i:g // Champions League + _m) e (d E // med, medgift -// PB Words ending with e - general rule - @) e (_+ 3 // PB husleje - @iker) e (_N V // PB fabrikere - @iker) et (_ VD // PB fabrikeret -groupi) e // PB silent e - _jani) e // PB name - silent e - _arti) e // PB name - silent e - ud) e 3 // PB studehandel - ul) e 3 // PB juleaften, gulerod -konsul) e (nt e // PB sikkerhedskonsulent - afs) e (_ e // PB afse - afs) e (t_+ e // PB afset - tils) e e // PB tilset -foruds) e e // PB - godes) e e // PB tilgodese -efters) e e // PB - _) e (_speak i // PB eSpeak - capital s makes the e one word - _) e (_mail i // PB e-mail - hjemv) e e // PB - hjemv) ej aj // PB - _uds) e (_+ e // PB udse - _uds) e (r_+ e // PB udser - puds) er (+ V // PB - turn) e 'e // PB - kup) e (+ 'e // PB stressed - stud) e (re 'e // PB studerende - joyc) e // PB name - silent e - joyc) e (s 3 // PB name - keep the e +// Words ending with e - general rule + @) e (_+ @-_! // husleje, vække + @) e (s_ @- // føles + s) e (_+ @_! // galakse, skose + @r) e (_+ ?V // tørre + nerv) e (C @- // nervesammenbrud + urg) ere (_++ VV // burgere + r) e (re_ E // operere + kk) e (@ @- // vækkeur TEST + studi) e (@ @- // studiegruppe + studi) er V // + Catt) e (@ @- // skatteår + klog) e @- // klogeste + vi) e (@ @- // vievand + næs) e (@ @- // næseblod + dans) e (@ @- // dansebal + ås) e @- // dåse, gåsehud, Åse + ån) e (@ @- // låneansøgning + ev) e (@ @- // levevis + arn) e (@ @- // barnebarn + kam) e (ra @- // + ull) e (@ @- // rullebræt + od) e (@ @- // modetøj + hest) e (@ @- // hestehår + nt) e (@ @- // plantesaft + ørn) e (@ @- // børnebog + mm) e (@ @- // dømmekraft + ab) e (@ @- // abekat + øl) e (@+ @- // køleskab + Aff) e (@ @- // straffeattest + Alj) e (@ @- // patruljevogn + Avn) e (@ @- // navneordbog + yv) e (@ @- // flyveplads + App) e (@ @- // tæppeforretning + @iker) e (_N V // fabrikere + @iker) et (_ VD // fabrikeret +groupi) e // silent e + _jani) e // name - silent e + _arti) e // name - silent e + ud) e (@+ @- // studehandel, brudepige + øj) e (@ @- // øjeblik + ukk) e @ // smukkeste + ol) e @- // tolerant TEST + ul) e (@ @- // juleaften, gulerod + is) e (@ @- // spisetid, fisefornem + im) e (@ @- // timevis + åb) e (n @- // åbenbart + Arr) e (@ @- // tørresnor - TEST +konsul) e (nt E // sikkerhedskonsulent + afs) e (_ e // afse + afs) e (t_+ e // afset + tils) e e // tilset +foruds) e e // + godes) e e // tilgodese +efters) e e // + _) e (_speak i // eSpeak - capital s makes the e one word + _) e (_mail i // e-mail + hjemv) e e // + hjemv) ej aI // + _uds) e (_+ e // udse + _uds) e (r_+ e // udser + puds) er (+ V // + turn) e 'e // + kup) e (+ 'e // stressed + stud) e (re 'e // studerende + joyc) e // name - silent e + joyc) e (s @- // name - keep the e -// PB Words ending with -te - t) e (_ @ - _ist) e e // PB iste (cold tea) - urtet) e e // PB herbal tea -kamillet) e e // PB -middagst) e e // PB eftermiddagste - komit) e 'e // PB - komit) ee (n 'e@ // PB -variet) e 'e // PB +// Words ending with -te + t) e (_ @- + _ist) e e // iste (cold tea) + urtet) e e // herbal tea +kamillet) e e // +middagst) e e // eftermiddagste + komit) e 'e // + komit) ee (n 'e@- // +variet) e 'e // -// PB Words ending with -se or -ce - s) e (_ @ - c) e (_ @ +// Words ending with -se or -ce + s) e (_ @- + c) e (_ @- + c) e (rin @- // nitroglycerin overs) e (_ e - _ans) e (++ e // PB avoid [V] in "anser" and [@] in "anse" -velans) e (t e // PB + overs) e (s_ e + _ans) e (++ e // avoid [V] in "anser" and [@] in "anse" +velans) e (t e // -// PB Words ending with -ske (and ste, spe) - L08) e (_ @ // PB påske, forske +// Words ending with -ske (and ste, spe) + L08) e (_ @- // påske, forske // exceptions to the -ske rule mosk) e 'e // moske, moskeen, moskeer - måsk) e (_ 'e // PB måske - _sk) e (_ e // PB ske - _sp) e (_ e // PB in spe - _sk) e (er e // PB skeer -dessertsk) e e // PB dessertske -fugesk) e e // PB fugeske -grydesk) e e // PB grydeske -grødsk) e e // PB grødske - hulsk) e e // PB hulske - kansk) e e // PB kanske - mursk) e e // PB murske -målesk) e e // PB måleske -strøsk) e e // PB strøske -støbesk) e e // PB støbeske -dessertsk) e e // PB -strøsk) e e // PB -spisesk) e e // PB -sølvsk) e e // PB -potagesk) e e // PB -suppesk) e e // PB -morgent) e e // PB - tesk) e e // PB teske - borts) e (+ e // PB - gourm) e 'e // PB gourmet - _rod) e (o 'e // PB stressed + måsk) e (_ 'e // måske + _sk) e (_ e // ske + _sp) e (_ e // in spe + _sk) e (er e // skeer +dessertsk) e e // dessertske +fugesk) e e // fugeske +grydesk) e e // grydeske +grødsk) e e // grødske + hulsk) e e // hulske + kansk) e e // kanske + mursk) e e // murske +målesk) e e // måleske +strøsk) e e // strøske +støbesk) e e // støbeske +dessertsk) e e // +strøsk) e e // +spisesk) e e // +sølvsk) e e // +potagesk) e e // +suppesk) e e // +morgent) e e // + tesk) e e // teske + borts) e (+ e // + gourm) e 'e // gourmet + _rod) e (o 'e // stressed -// PB stressed e in words with -ekt - konfekt - _aff) e (kt 'E -_arkit) e (kt 'E - _asp) e (kt 'E - _def) e (kt 'E - _desp) e (kt 'E - _dial) e (kt 'E - _eff) e (kt_ 'E -_idiol) e (kt 'E - _ins) e (kt 'E -_intell) e (kt 'E - _koll) e (kt_ 'E - _koll) e (kte 'E kollekten - _konf) e (kt 'E - _korr) e (kt '&# - _obj) e (kt 'E - obj) e (ktiv E - _perf) e (kt 'E - _proj) e (kt 'E - _proj) e (ktil E -_prosp) e (kt 'E - _præf) e (kt 'E - _resp) e (kt 'E - resp) e (ktabel E -_sociol) e (kt 'E - _subj) e (kt 'E - _susp) e (kt 'E +// stressed e in words with -ekt - konfekt + _aff) eg (t 'E +_arkit) eg (t 'E + _asp) eg (t 'E + _def) eg (t 'E + _desp) eg (t 'E + _dial) eg (t 'E + _eff) eg (t_ 'E +_idiol) eg (t 'E + _ins) eg (t 'E +_intell) eg (t 'E + _koll) eg (t_ 'E + _koll) eg (te 'E kollekten + _konf) eg (t 'E + _korr) eg (t '&# + _obj) eg (t 'E + obj) eg (tiv E + _perf) eg (t 'E + _proj) eg (t 'E + _proj) eg (til E +_prosp) eg (t 'E + _præf) eg (t 'E + _resp) ek (t 'Eg + resp) eg (tabel E +_sociol) eg (t 'E + _subj) eg (t 'E + _susp) eg (t 'E - // PB stressed e in words with -cept - konfekt + // stressed e in words with -cept - konfekt _rec) e (pt 'E _konc) e (pt 'E _acc) e (pt 'E -// PB stressed e in a few words inding with -est +// stressed e in a few words inding with -est _arr) e (st 'a _asb) e (st 'e _att) e (st 'e _manif) e (st 'e _mol) e (st 'e _prot) e (st 'e + _prot) e (ster @- // protesterede _reg) e (st 'e - // PB stressed e in some words with final -ente/-ende + // stressed e in some words with final -ente/-ende _testam) e (nte 'e _divid) e (nte 'e _regim) e (nte 'e _sakram) e (nte 'e -// PB words with final -ende - &) ende (_ @n@ // troende +// words with final -ende + &) ende (_++ @-n@- // troende // exceptions to the -ende rule - k) end (e_+ E-n // genkende, kende, anerkende - _) erk) end (e_ 'En // PB erkende + k) end (e_+++ E-n // genkende, kende, anerkende + _erk) end (e_++ 'En // erkende k) ender (_ E-nV // genkender, kender, anerkender - sv) ende (_ E-n@ // PB not a -ende suffix - svende - henv) ende (_ E-n@ // PB - henv) ender (_ E-nV // PB - anv) ende (_ E-n@ // PB - anv) ender (_ E-nV // PB - fuld) ende E-n3 // PB - ops) ende E_n@ // PB - røvr) ende (_ a-n@ // PB røvrende - røvr) ender (_ a-nV // PB røvrender - v) ende (+ E-n@ // PB omvende - v) ender (+ E-nV // PB omvender - v) ende (tta End'E // PB stressed - lav) ende (l 'En3 // PB satressed - fj) ende e-n@ // PB dødsfjende - fj) ender e-nV // PB dødsfjender + henv) ende (_ E-n@- // + henv) ender (_ E-nV // + sv) ende (++ En@- // følgesvende + anv) ende (_ E-n@- // + anv) ender (_ E-nV // + fuld) ende E-n@- // + ops) ende E_n@- // + røvr) ende (_ a-n@- // røvrende + røvr) ender (_ a-nV // røvrender + omv) ende (+ E-n@- // omvende + omv) ender (+ E-nV // omvender + v) ende (tta End'E // stressed + lav) ende (l 'En@- // satressed + fj) ende e-n@- // dødsfjende + fj) ender e-nV // dødsfjender - L08) e (gt e // PB stegt - L08) eg aj // PB steg, spegepølse - fisk) eg 3g // PB tunfiskegryde - torsk) eg 3g // PB torskegilde + L08) e (gt e // stegt + L08) eg aI // steg, spegepølse + fisk) eg @-g // tunfiskegryde + torsk) eg @-g // torskegilde _st) eg (_ e // steg - verb, problem with noun = "roast" - eg (angs 3g // PB førstegangsforbrydere. - best) eg (_ 'e // PB besteg - best) eg (et_ 'e // PB besteget -overst) eg ej // PB - st) eg (å @g // PB præstegård - eg (affel @g // PB fiskegaffel - _sk) eg (affel eg // PB skegaffel - rel) eg (ion -@g // PB - n) egl ajl // PB negl - r) egel Ejl // PB regel - r) egl Ejl // PB regler - k) eg (le aj // PB keglebane - h) eg (le aj // PB gennemhegle - br) ea (k Ej // PB breakdance - res) e (rve 'e // PB reserve - stressed - res) erver (_en Erv'er // PB reserver en plads + eg (angs @-g // førstegangsforbrydere. + best) eg (_ 'e // besteg + best) eg (et_ 'e // besteget +overst) eg ej // + st) eg (å @-g // præstegård + eg (affel @-g // fiskegaffel + _sk) eg (affel eg // skegaffel + rel) eg (ion @-g // + n) egl aIl // negl + r) egel Ejl // regel + r) egl Ejl // regler + k) eg (le aI // keglebane + h) eg (le aI // gennemhegle + br) ea (k Ej // breakdance + res) e (rve 'e // reserve - stressed + res) erver (_en Erv'er // reserver en plads m) eg (a eg // mega, omega - _) eget (_ a:j@D // PB eget - r) eg (er Eg // PB e=> E - eg (n aj // PB regn, tegning, lege - _v) eg (_ ej // PB - _v) eg (et_ ej // PB - skr) eg aj // PB -underl) eg ej // PB underlegen - p) eg aj // PB pegefinger - eg (å+ @g // PB oppegående - eg (rund @g // PB klippegrund - p) eg (asus eg // PB - p) egmatit Egm&t'it // PB - s) eg (l aj // PB segl, forsegle - t) eg (l aj // PB teglværk - p) eggy Egi // PB name - ll) ey i // PB volley - _) ege (_ e:j@ // PB added _ - ege(træer) - _) ege (træ e:j@ // PB added _ - egetræe - _) ege (løv e:j@ // PB - _) ege (blad e:j@ // PB - L06) eg (e aj // PB p) changed to L06 to include b - l) ege (me Ej-@ // PB fornedrelseslegeme - l) eg (e+ aj // PM julelege, blege - coll) ege idZ // PB - l) eg (ere eg // PB legere, priviligeret - l) egende (_børn aj@n@ // PB - l) egende (_let aj@n@ // PB - l) eg (enda eg // PB legendarisk - _l) egende (_ eg'End3 // PB "myth" -selskabsl) eg aj // PB - l) eg (er eg // PB delegere - eg (evinst+ eg // PB spillegevinst - overl) eg Ej // PB overlegen - r) ej (s aj + _) eget (_ aI@-D // eget + r) eg (er Eg // e=> E + eg (n aI // regn, tegning, lege + _v) eg (_ ej // + _v) eg (et_ ej // + skr) eg aI // +underl) eg ej // underlegen + p) eg aI // pegefinger + eg (å+ @-g // oppegående + eg (rund @-g // klippegrund + p) eg (asus eg // + p) egmatit Egm&t'it // + s) eg (l aI // segl, forsegle + t) eg (l aI // teglværk + p) eggy Egi // name + ll) ey i // volley + _) ege (_ e:j@- // added _ - ege(træer) + _) ege (træ e:j@- // added _ - egetræe + _) ege (løv e:j@- // + _) ege (blad e:j@- // + L06) eg (e aI // p) changed to L06 to include b + l) ege (me Ej-@- // fornedrelseslegeme + l) eg (e+ aI // PM julelege, blege + coll) ege idZ // + l) eg (ere i-g // priviligeret + l) egende (_børn aI@-n@- // + l) egende (_let aI@-n@- // + l) eg (enda eg // legendarisk + _l) egende (_ eg'End@- // "myth" +selskabsl) eg aI // + eg (evinst+ @-g // spillegevinst + overl) eg Ej // overlegen + r) ej (s aI engag (e aNg&S // engagere _) en (tre aN - en (tré aN // PB - c) en (t En + en (tré aN // + c) en (t En // koncentrere c) en (tA En - c) en (tC en p) en (sion aN r) en (ce AN // reference - Cr) e (d E // PB seinebred, flodbred -// r) edd ED // PB redder - br) edd Ed // PB bredde - _tr) e (tten a // tretten + br) e (d E // seinebred, flodbred + br) edd Ed // bredde _tr) e (d E // tredje - ej (++ aj // PB changed from ai to aj - nej, arbejde - e (job+ 3 // PB ønskejob - e (jæger+ 3 // PB skalpejæger - e (jour+ 3 // PB sygejournal - dr) ej (+ aj // PB fordrejet - ykk) e (C 3 // PB lykkejæger - skørt) e (C 3 // PB skørtejæger - hygi) ej (ne 'aj // PB stressed - ej (aku ej // PB ejakulere - gal) ej 'aj // PB stressed - ejer (C ajV // PB grundejerforening - mælk) e 3 // PB mælkejunge - m) ejern 3jErn // PB stemmejern - v) ejern 3jErn // PB rivejern - ej (agt @j // PB menneskejagt - e (jul+ @ // PB lillejuleaften - _pleb) ej (er 'aj // PB stressed - nd) ej (ob 3dZ // PB mandejob, kvindejob - m) ej (ob 3dZ // PB drømmejob - lort) e @ // PB lortejob - avoid "aj" - lus) e (++ @ // PB væggelusejæger - lus) er (+ V // PB bluser - syg) e (+ @ // PB sygejournal - v) ej (r E - v) ejr (e_ ajR // PB vejre - v) ejr (er_ ajR // PB vejrer + ej (+++ Aj // changed from ai to aj - nej, arbejde + eje (n++ aI@- // ejendom + e (job+ @- // ønskejob + e (jæger+ @- // skalpejæger + dr) ej (+ aI // fordrejet + ykk) e (C @- // lykkejæger + skørt) e (C @- // skørtejæger + hygi) ej (ne 'aI // stressed + ej (aku ej // ejakulere + gal) ej 'aI // stressed + ejer (C aIV // grundejerforening + mælk) e @- // mælkejunge + m) ejern @-jErn // stemmejern + v) ejern @-jErn // rivejern + ej (agt++ @-j // menneskejagt + e (jul+ @- // lillejuleaften + _pleb) ej (er 'aI // stressed + nd) ej (ob @-dZ // mandejob, kvindejob + m) ej (ob @-dZ // drømmejob + lort) e @- // lortejob - avoid "aj" + 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) ejr (e_ aIR // vejre + v) ejr (er_ aIR // vejrer _offic) e (_ // office (officepakke) - fl) e (de+ e // PB aflede - ov) edet (_ @D3d // PB hovedet - l) edet (+ eD@t // PB håndledet - r) edet (_ ED3d // PB helbredet - st) edet (_ ED3t // PB værkstedet + st) edet (_ ED@-t // værkstedet Ad) en (@ @-n // udenlandsk, udenad - Ad) en (t en // PB identificere - sir) ene (+ 'En@ // PB - gr) ene (+ En@ // PB grene - rr) ed @D // PB lærred, ørred - rr) ed (A @d // PB herredømme - fingr) ene Vn@ // PB - _st) evie ivi // PB name + Ad) en (ti en // identificere + sir) ene (+ 'En@- // + gr) ene (+ En@- // grene + rr) ed @-D // lærred, ørred + rr) ed (A @-d // herredømme + fingr) ene Vn@- // + _st) evie ivi // name ucc) es 'e - nog) et (_ D // PB noget - _ir) e (ne 'e // PB name + nog) et (_ D // noget styr) e (n 'e // styren - diskr) e (t+ 'e // PB stressed - ork) ester 'estV // PB stressed e in 'orkester' - borgm) e (ster 'e // PB stressed - prot) e (se 'e // PB stressed - forur) e (ne 'e // PB stressed - forurene -_terap) eut 'Wwd // PB stressed - terap) eut Wwd // PB synsterapeut - _torp) e (do 'e // PB stressed - _cel) e (ber 'e // PB stressed -_parent) e (s 'e // PB stressed - _kat) e (der 'e // PB stressed - ekst) e (rn 'E // PB stressed - int) e (rn+ 'E // PB stressed - bod) e (ga 'e // PB stressed -halvfj) e (rds '& // PB stressed - _konc) e (rn 'E // PB - merc) e (des 'e // PB car -vietnam) e (ser 'e // PB stressed - _ant) e (nne 'E // PB stressed - _el) e (v 'e // PB stressed - el) e (v e // PB kostelev, skoleelev - el) e (vat 3 // PB elevator - sydv) e (st 'E // PB stressed - nordv) e (st 'E // PB - musk) e (t+ 'E // PB stressed - all) e (gro 'e // PB stressed - _id) e 'e // PB ide, ideen - id) ee (l e'E // PB ideelle, ideelt -havann) e (ser 'e // PB stressed - _malt) e (s 'e // PB malteser + diskr) e (t+ 'e // stressed + ork) ester 'estV // stressed e in 'orkester' + borgm) e (ster 'e // stressed + prot) e (se 'e // stressed + forur) e (ne 'e // stressed - forurene +_terap) eut 'Wwd // stressed + terap) eut Wwd // synsterapeut + _torp) e (do 'e // stressed + _cel) e (ber 'e // stressed +_parent) e (s 'e // stressed + _kat) e (der 'e // stressed + ekst) e (rn 'E // stressed + int) e (rn+ 'E // stressed + bod) e (ga 'e // stressed +halvfj) e (rds '& // stressed + _konc) e (rn 'E // + merc) e (des 'e // car +vietnam) e (ser 'e // stressed + _ant) e (nne 'E // stressed + _el) e (v 'e // stressed + el) e (v e // kostelev, skoleelev + el) e (vat @- // elevator + sydv) e (st 'E // stressed + nordv) e (st 'E // + musk) e (t+ 'E // stressed + all) e (gro 'e // stressed + _id) e 'e // ide, ideen + id) ee (l e'E // ideelle, ideelt +havann) e (ser 'e // stressed + _malt) e (s 'e // malteser -// PB a few words with final -es - stressed e +// a few words with final -es - stressed e abc) e (s 'E cypr) e (s '&# rec) e (s 'E exc) e (s 'E proc) e (s 'E - k) ea (ton i: // PB name - ompet) en (ce aN - ress) en (timent aN // PB ressentiment + k) ea (ton i: // name + ompet) en (ce AN + ress) en (timent AN // ressentiment m) edie 'edj3 // medie, kommedie m) edier 'edjV // medier, kommedier - inds) e e // PB indse - linds) ey i // PB name - inds) e (r_ e // PB indser - rak) e (t+ E // PB bremseraket - _rak) e (t+ 'E // PB raket - etagere et&S'E:R // PB - espeak ispi:k // PB - eindhoven ajnh'o:f@n // PB - einstein ajnstajn - eyeliner ajlajnV // PB - _) edie (_ idi // PB name - k) ey i // PB jockey - eiffel ajf3l // PB Eiffeltårnet - eileen ajl'i:n // PB name - ecstacy Est&si // PB - s) ei (s aj // PB seismograf - rev) eill (e 'Elj // PB - ef) eu Vj // PB plant - _) earl W:l/2 // PB Earl - _) earp W:b // PB name - _) east i:sd // PB Eastwood - ecstasy Est&si // PB -stript) ease i:s // PB - l) ea (se i // PB - l) ea (sing i // PB - eu (ro Ww // PB Europa, euro - eau 'o // PB bureau, niveau - eau (kti @au // PB pladeauktion - eau (to @au // PB hæveautomat - empire (_state Empaj3 // PB - _t) e (_ e // PB te - kin) e (s 'e // PB kineser - d) e (s_ @ // PB mødes - _d) e (s_ e // PB des = desto, jo - var) e 3 // PB vareprøve, varevogn TEST - _) eddie Edi // PB name - C) ey (_ i // PB names with final ey - TEST - harv) ey i // PB name - disn) ey i // PB name + inds) e e // indse + linds) ey i // name + inds) e (r_ e // indser + rak) e (t+ E // bremseraket + _rak) e (t+ 'E // raket + _rak) e (tt+ '?E // raketten + etagere et&S'E:R // + espeak ispi:k // + eindhoven Ajnh'o:f@-n // + einstein AjnstAjn + eyeliner AjlAjnV // + _) edie (_ idi // name + k) ey i // jockey + eiffel aIf@-l // Eiffeltårnet + eileen aIl'i:n // name + ecstacy Est&si // + s) ei (s aI // seismograf + rev) eill (e 'Elj // + ef) eu Vj // plant + _) earl W:l/2 // Earl + _) earp W:b // name + _) east i:sd // Eastwood + ecstasy Est&si // +stript) ease i:s // + l) ea (se i // + l) ea (sing i // + eu (ro Ww // Europa, euro + eau 'o // bureau, niveau + eau (kti @Au // pladeauktion + eau (to @Au // hæveautomat + empire (_state EmpaI3 // + _t) e (_ e // te + kin) e (s 'e // kineser + d) e (s_ @- // mødes + _d) e (s_ e // des = desto, jo + var) e @- // vareprøve, varevogn TEST + _) eddie Edi // name + C) ey (_ i // names with final ey - TEST + harv) ey i // name + disn) ey i // name _barn) ey i // PN name - jess) e i // PB name - m) ey (er aj // PB name - sylv) e (ster 'E // PB name -magdal) e (n 'e // PB Magdalena - name - ebay ibEj // PB eBay - budap) e (st 'E // PB stressed - h) ei (del aj // PB Heidelberg - r) eaux O // PB Devereaux - eugene judZ'i:n // PB name - _ir) e (ne+ 'E // PB name - e (legi e // PB - ven) e (dig 'e // PB - t) ea (m i: // PB teamwork - h) eart A:d // PB Ourple Heart - _d) e (_la_ 3 // PB creme de la creme - _d) e (_gaulle 3 // PB name - _d) e (_ i // PB -venstr) e V // PB venstreorienterede - e (venty E: // PB eventyr + jess) e i // name + m) ey (er aI // name + sylv) e (ster 'E // name +magdal) e (n 'e // Magdalena - name + ebay ibEj // eBay + budap) e (st 'E // stressed + h) ei (del aI // Heidelberg + r) eaux O // Devereaux + eugene judZ'i:n // name + _ir) e (ne++ 'E // name + e (legi++ e // elegi, relegion + ven) e (dig 'e // + t) ea (m i: // teamwork + h) eart A:d // Ourple Heart + _d) e (_la_ W // creme de la creme + _d) e (_gaulle @- // name + _d) e (_ i_! // +venstr) e V // venstreorienterede + e (venty E: // eventyr -// PB plural suffix -ene - @) ene (_ @n@ // benene - @) enes (_ @n@s // benenes - @r) ene (_ Vn@ // brødrene - @r) enes (_S4 Vn@s // brødrenes - @gg) ene (_S4 @n@ // væggene - tj) ene (++ En@ // PB betjene - tj) ener (+ EnV // PB - forl) ene 'en@ // PB stressed - ur) ene (_tanker 'en@ // PB - marl) ene 'en3 // PB name - _hel) ene 'en3 // PB name -at_form) ene 'en3 // PB +// plural suffix -ene + @) ene (_ @-n@- // benene, pengene + @) enes (_ @-n@-s // benenes + @r) ene (_ Vn@- // brødrene + @r) enes (_S4 Vn@-s // brødrenes + @gg) ene (_S4 @-n@- // væggene + tj) ene (++ En@- // betjene + tj) ener (+ EnV // + forl) ene 'en@- // stressed + ur) ene (_tanker 'en@- // + marl) ene 'en@- // name + _hel) ene 'en@- // name +at_form) ene 'en@- // -// PB stressed e in nouns with final -esse in da_list - &) esse ($p_alt ''Es3 // finesse - &) esse (r$p_alt ''EsV // finesser - &r) esse ($p_alt '&#s3 // adresse +// stressed e in nouns with final -esse in da_list + &) esse ($p_alt ''?Es@- // finesse + &) esse (r$p_alt ''?EsV // finesser + &r) esse ($p_alt '&#s@- // adresse &r) esse (r$p_alt '&#sV // adresser @r) esse (re$p_alt &#s'e // adresseret &ch) esse ($p_alt ''Es // duchesse -// PB stressed e in nouns with final -ese in da_list - &) ese ($p_alt 'es3 // hypotese +// stressed e in nouns with final -ese in da_list + &) ese ($p_alt 'es@- // hypotese &) ese (r$p_alt 'esV // hypoteser - &r) ese ($p_alt 'Es3 // parese + &r) ese ($p_alt 'Es@- // parese &r) ese (r$p_alt 'EsV // pareser .group el -// PB GENERAL RULE FOR WORDS ENDING WITH -EL - 1.182 words - @) el (_ @l // fødsel - @) el (s @l // fødselsdag, fødselstal - @) el (Ar @l // fødselar - @) el (t_ @l // ædelt - @r) el (_+ &#l // PB multikulturel - t) el (t_ el // PB ilttelt +// GENERAL RULE FOR WORDS ENDING WITH -EL - 1.182 words + @) el (_ @-l // fødsel + @) el (s @-l // fødselsdag, fødselstal + @) el (se @-l // forstoppelse + @) el (Ar @-l // fødselar + @) el (t_ @-l // ædelt + @r) el (_+ &#l // multikulturel + t) el (t_ el // ilttelt + jub) el @-l // jubelidiot - p) el (s El // PB rævepels -// PB exceptions to the -el rule -// PB final -el in da_list - stressed e + p) el (s El // rævepels +// exceptions to the -el rule +// final -el in da_list - stressed e &) el ($p_alt+++ ''El // model &) el (t$p_alt ''El // kommercielt &r) el ($p_alt++ ''&#l // multikulturel - &) el (l$p_alt+++ ''E // modellen - only one l + &) el (l$p_alt+++ ''?E // modellen, hotellet - only one l &r) el (l$p_alt+++ ''&# // kulturelle - only one l &) elet ($p_alt @l'Et // kotelet - korn) el (evator el // PB not [korn'El3v,&tV] - _app) el (sin El // PB -person) el El // PB -dysfunktion) el El // PB - isab) el El // PB name - marc) el 'El // PB name - form) el (t 'El // PB - form) el (l 'El // PB formelle - m) el (on el // PB vandmelon -venezu) el (a 'el // PB - hall) el (uja 'el // PB stressed - t) el (e el // PB sangtelegram - @hot) el El // PB møghotel -ration) el El // PB -krimin) el El // PB småkriminel - ti) el El // PB vækstpotentiel - el (iksir el // PB ungdomseliksir + korn) el (evator el // not [korn'El3v,&tV] + _app) el (sin El // +person) el El // +dysfunktion) el El // + _s) elv (e ?Elv // selve, selveste + _s) elv El // selv, selvkørende - silent d + _s) elv (om_ El // selvom - silent d + isab) el El // name + marc) el 'El // name + form) el (t 'El // + form) el (l 'El // formelle + m) el (on el // vandmelon +venezu) el (a 'el // + hall) el (uja 'el // stressed + t) el (e el // sangtelegram + @hot) el ?El // møghotel +ration) el El // +krimin) el El // småkriminel + ti) el El // vækstpotentiel + el (iksir el // ungdomseliksir -// PB final -elig in da_list - stress on previous syllable - &) elig ($p_alt =@li // PB jomfruelig - &s) elig ($p_alt 'eli // PB foruselig +// final -elig in da_list - stress on previous syllable + &) elig ($p_alt =@-li // jomfruelig + &s) elig ($p_alt '@-li // foruselig - _) el El // elkedel - _) ell El // PB eller -muskat) el ''El // PB - el (sk+ El // PB naturelsker -intellektu) el El // // PB - _pan) el 'el // PB - pan) el el // PB - sk) el (_ El // PB vandskel +// final -elig without stress on previous syllable + C) el (ig+ @-l // kedelig, drabelig, fredelig + r) el (igi+ El // + + _) el (C El // elkedel + _) ell El // eller +muskat) el ''El // + el (sk+ ?El // naturelsker +intellektu) el El // // + _pan) el 'el // + pan) el el // + sk) el (_ El // vandskel orsk) el el // forskel - rsk) el @l // tærskel - flosk) el @l // PB + rsk) el @-l // tærskel + flosk) el @-l // grænsesk) el el marksk) el el - h) el (ikopt El // PB kamphelikopter - &p) el (s_ El // PB fåreskindspels - &) el (ev el // PB mønsterelev - evang) el el // PB evangelie - d) el (t+ el // PB tildelt - @f) el (t El // PB oliefelt - lob) el (ia 'el // PB - d) el (e+ el // PB dele - særd) el (es 'el // PB særdeleshed - stressed - bind) ele (d 3le // PB bindeledder - kvind) el (A 3l // PB kvindelejr - d) eler (+ elV // PB deler -bestandd) el el // PB - halvd) el el // PB -landsd) el el // PB - medd) el el // PB meddelsom, meddele -nederd) el el // PB - d) el (ing el // PB -_offici) el (+ 'el // PB officiel + h) el (ikopt El // kamphelikopter + &p) el (s_ El // fåreskindspels + &) el (ev el // mønsterelev + evang) el el // evangelie + d) el (t+ el // tildelt + @f) el (t El // oliefelt + 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 + d) eler (+ elV // deler +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 // PB fotomodel + mod) el El // fotomodel u) el (_+ 'El // aktuel, seksuel, visuel u) el (t_++ ''el // aktuelt, seksuelt, visuelt - _samu) el El // PB name - unds) el (ig 'el // PB + _samu) el El // name + unds) el (ig 'el // gennemsku) el (ig =el and) el el // andel - and) el (se @l // PB forbandelse - hand) el @l // handel - spani) el @l // PB cockerspaniel + 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 // PB tøffelhelt - h) el (st El // PB allerhelst - r) el (at el // PB relateret - public r) elation il'EjS@n + h) el (t+ el // tøffelhelt + 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' - led) el (se @l // PB ledelse - ked) el (+ @l // grukedel - doesn't mean '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 @@ -2656,19 +2828,19 @@ underst) el (+ El _st) el (_ El ond) el el // milliondel jav) el 'el // stressed e in 'javel' - v) el El // velkommen + _v) el El // velkommen icha) el l // Michael ika) el l // Mikael brøkd) el el - bagd) el el // PB + bagd) el el // byd) el el _for) el '&#l // forel - fish - _for) el (ig @l // foreligge - _for) el (æg 3l // forelægge - for) el (s 'El // PB forelsket + _for) el (ig @-l // foreligge + _for) el (æg @-l // forelægge + for) el (s 'El // forelsket citad) el 'el ejend) el el - nt) el El // eksperimentel + ent) el El // eksperimentel fid) el 'el ded) el el // tiendedel, niendedel farv) el 'El @@ -2711,164 +2883,162 @@ stikked) el el såv) el 'El _tab) el 'El tab) el El -respektab) el @l // PB +respektab) el @-l // +irritab) el @-l // tarant) el 'el univers) el 'el -_frikad) el (l 'El // PB stressed - frikadelle -frikad) el (l El // PB +_frikad) el (l 'El // stressed - frikadelle +frikad) el (l El // verdensd) el el - @) el (øs+++ @l // PB mageløs, kasteløs - jul) eleg @laj // PB juleleg - dr) el (+ Vl // PB ældre, forældreløs - alleh) elg (ens 'Elj // PB stressed - allehelgensdag - elliot EljVt // PB name + @) 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 .group en -// PB noun suffix -en (perlen - the pearl), -ens (perlens - the pearl's) +// noun suffix -en (perlen - the pearl), -ens (perlens - the pearl's) // not a suffix any more - too many exceptions - &) en (_N @n - &ier) en (_N @n // PB bankieren - avoid the r generated by [V] - &r) en (_N Vn // frisøren - &) ens (_+ @-ns // PB ungdommens - &r) ens (_ V-ns // frisørens + &) en (_N @-n // brien + d) en (t_ @-n // beredent + kier) en (_N @-n // bankieren - avoid the r generated by [V] +// &r) en (_N Vn // frisøren + &) ens (_+ @-ns // ungdommens +// &r) ens (_ Vns // frisørens // exceptions - aft) en @n // PB avoid [Au] when aft(en) is translated - _ag) en (t 'en // PB agent - fænom) en 'en // PB stressed - _gem) en 'en // PB stressed - _form) en (e 'en // PB formene - stressed - ag) en (t en // PB agent - _ad) en (_ 'en // PB stressed - &g) en (st en // PB genstand - &g) en (kend en // PB genkende + aft) en @-n // avoid [Au] when aft(en) is translated + _ag) en (t 'en // agent + fænom) en 'en // stressed + _gem) en 'en // stressed + _form) en (e 'en // formene - stressed + ag) en (t en // agent + _ad) en (_ 'en // stressed + &g) en (st en // genstand + &g) en (kend en // genkende &g) enn (em en // ugennemskuelig - _ur) en (_ en // PB uren hud -//kuglep) en En // PB -afløbsr) en (s &#n // PB - ord) en @n + _ur) en (_ en // uren hud +//kuglep) en En // +afløbsr) en (s &#n // + ord) en @-n anci) enn EN // anciennitet -_persi) enn 'En // PB - _pol) en (ta 'En // PB stressed - en (tusias AN // PB entusiasme - en (dos AN // PB endossement, endosere - en (_gros AN // PB en gros - dep) en En // PB fyldepen -kuglep) en En // PB - filtp) en En // PB -sportsgr) en En // PB sportsgren +_persi) enn 'En // + _pol) en (ta 'En // stressed + en (tusias AN // entusiasme + en (dos AN // endossement, endosere + en (_gros AN // en gros + dep) en En // fyldepen +kuglep) en En // + filtp) en En // +sportsgr) en En // sportsgren oliegr) en En - app) en (diks 'En // PB stressed - susp) en (sion en // PB suspension -retskaff) en @n - sid) en @n // PB not a suffix - siden + app) en (diks 'En // stressed + susp) en (sion en // suspension +retskaff) en @-n + sid) en @-n // not a suffix - siden præsid) en (t en // vicepræsident -skyldsr) en en // PB uskyldsren -ædelst) en en // PB +skyldsr) en en // uskyldsren +ædelst) en en // _præsid) en (t 'en // præsidentfrue - @sv) en (_ en // PB barndomsven -bøssev) en En // PB -pennev) en En // PB - dyrev) en En // PB -metalp) en En // PB - v) en (sk+ en // PB venskab - dov) en (++ @n // PB dovenskab - &b) en (_+ en // PB koben, nøgleben - læb) en (++ @n // PB overlæben - kæb) en @n (++ // PB - stab) en (+ @n // PB generalstaben -elfenb) en (+ en // PB elfenbensbande - skab) en (+ @-n // PB ondskaben, morskaben - _åb) en (_+ @n // PB åben - _åb) en (t_+ @n // PB åbent - våb) en (++ @n // PB våben - bb) en (_++ @n // PB klubben - bomb) en (+ @n // PB - ribb) en (++ en // PB ribbenssteg - gribb) en (e+ @n // PB gribbene + @sv) en (_ en // barndomsven +bøssev) en En // +pennev) en En // + dyrev) en En // +metalp) en En // + v) en (sk+ en // venskab + dov) en (++ @n // dovenskab + kob) en en // koben + øgleb) en en // nøgleben + læb) en (++ @-n // overlæben + kæb) en @-n (++ // +elfenb) en (+ en // elfenbensbande + bomb) en (+ @-n // + ribb) en (++ en // ribbenssteg + gribb) en (e+ @-n // gribbene -// PB sten = "stone" -gravst) en en // PB -nyrest) en en // PB -bautast) en en // PB - brost) en en // PB -byggest) en en // PB -drypst) en en // PB - dækst) en en // PB -fedtst) en en // PB -flintest) en en // PB -flintst) en en // PB -galdest) en en // PB -grundst) en en // PB - gråst) en en // PB -hinkest) en en // PB -hjørnest) en en // PB - holst) en en // PB -kalkst) en en // PB -kampest) en en // PB -kantst) en en // PB -kedelst) en en // PB -kværnst) en en // PB -kvaderst) en en // PB - limst) en en // PB -marmorst) en en // PB -meteorst) en en // PB -mindest) en en // PB -molerst) en en // PB -munkest) en en // PB - murst) en en // PB -møllest) en en // PB -månest) en en // PB -pimpst) en en // PB -prøvest) en en // PB -rendest) en en // PB -ranglest) en en // PB -rhinst) en en // PB -rokkest) en en // PB -rullest) en en // PB -runest) en en // PB -sandst) en en // PB -skorst) en en // PB -slibest) en en // PB -smutst) en en // PB -slutst) en en // PB -smykkest) en en // PB - småst) en en // PB -sveskest) en en // PB - tagst) en en // PB -tandst) en en // PB -teglst) en en // PB -trappest) en en // PB -trædest) en en // PB - tufst) en en // PB -tungst) en en // PB - vinst) en en // PB -ædelst) en en // PB - øjest) en en // PB - tj) en (st En // PB fortjenstmedalje - m) en (s+ En // PB menstruation - g) en (st en // PB genstand - g) en (sk en // PB genskabe - t) en (å @n // PB TEST - femtenårig - st) en (A en // PB stenograf - småst) en en // PB -eksist) en (s 'en // PB eksistens -_resid) en (s 'en // PB residens - resid) en (s en // PB residens -_acetyl) en 'en // PB - mæc) en 'en // PB -_influ) en (za 'En // PB -skizofr) en 'En // PB - til) end (ebr 'En // PB tilendebringe -_en_syr) en 'en // PB problem with "syren" = "the acid" - syr) en (en_ 'en // PB syrenen - syr) en (er_ 'en // PB syrener - syr) en (edsættende 3n // PB syrenedsættende +// sten = "stone" +gravst) en en // +nyrest) en en // +bautast) en en // + brost) en en // +byggest) en en // +drypst) en en // + dækst) en en // +fedtst) en en // +flintest) en en // +flintst) en en // +galdest) en en // +grundst) en en // + gråst) en en // +hinkest) en en // +hjørnest) en en // + holst) en en // +kalkst) en en // +kampest) en en // +kantst) en en // +kedelst) en en // +kværnst) en en // +kvaderst) en en // + limst) en en // +marmorst) en en // +meteorst) en en // +mindest) en en // +molerst) en en // +munkest) en en // + murst) en en // +møllest) en en // +månest) en en // +pimpst) en en // +prøvest) en en // +rendest) en en // +ranglest) en en // +rhinst) en en // +rokkest) en en // +rullest) en en // +runest) en en // +sandst) en en // +skorst) en en // +slibest) en en // +smutst) en en // +slutst) en en // +smykkest) en en // + småst) en en // +sveskest) en en // + tagst) en en // +tandst) en en // +teglst) en en // +trappest) en en // +trædest) en en // + tufst) en en // +tungst) en en // + vinst) en en // +ædelst) en en // + øjest) en en // + st) en (gulv en // + tj) en (st En // fortjenstmedalje + m) en (s+ En // menstruation + g) en (st en // genstand + g) en (sk en // genskabe + t) en (å @-n // TEST - femtenårig + st) en (A en // stenograf + småst) en en // +eksist) en (s 'en // eksistens +_resid) en (s 'en // residens + resid) en (s en // residens +_acetyl) en 'en // + mæc) en 'en // +_influ) en (za 'En // +skizofr) en 'En // + til) end (ebr 'En // tilendebringe +_en_syr) en 'en // problem with "syren" = "the acid" + syr) en (en_ 'en // syrenen + syr) en (er_ 'en // syrener + syr) en (edsættende @-n // syrenedsættende - s) en (sib AN // PB sensibel - _rev) en (che 'An // PB stressed - rev) en (che An // PB not stressed after a syllable + s) en (sib AN // sensibel + _rev) en (che 'An // stressed + rev) en (che An // not stressed after a syllable -// PB $alt words with final -ent in da_list - stressed e +// $alt words with final -ent in da_list - stressed e &) ent ($p_alt++ 'ent // student &es) ent ($p_alt+ 'AN // present (gift) &cc) ent ($p_alt+ 'AN // accent @@ -2876,991 +3046,969 @@ _en_syr) en 'en // PB problem with "syren" = "the acid" &) ent (ur$p_alt+ ent' // agentur - stressed u &) ent (alsk$p_alt+ ent' // + "alsk" - stressed a - orientalsk // exceptions - acc) ent (+ AN // PB - ev) ent (A++ Ent // PB eventyr, eventuel - v) enti (on+ enSj // PB konvention - engros ANgr'o // PB engroshandler -// PB $alt words with final -enser in da_list - stressed e - &) enser ($p_alt ''EnsV // PB palæstinenser - &p) enser (_$p_alt Ens'er // PB kompenser - &) enser (e$p_alt Ens'er // PB kondensere - &g) ense ($p_alt g''EnsV // PB ålborgenser + acc) ent (+ AN // + 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 - // PB $alt words with final -ent in da_list - stressed e + // $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 // PB inkonsekvens + kv) ens ens // inkonsekvens -// PB $alt words with final -ence in da_list - stressed e - &) ence ($p_alt ''ANs@ // PB kadence - &) ence (r$p_alt ''ANsV // PB referencer - emin) ence ($p_alt 'Ens@ // PB exception -excell) ence ($p_alt 'Ens@ // PB exception +// $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 // common affix -ender - &) ender (_ EnV // anliggender, foretagender - &r) ender (_ anV // røvrender - _kal) ender 'EnV // PB - bart) ender EndV // PB + &) ender (_ En?V // anliggender, foretagender + &r) ender (_ an?V // røvrender + _kal) ender 'En?V // + bart) ender End?V // .group er - r) er (_ V // PB final "er": V after r - murer - t) er (_ V // PB final "er": V after t - frygter - t) er (et_ V // PB final "er": V after t - centeret - r) ere (_ 3V // PB general rule: plural ending - murere - relat) ere er3 // PB arbejdsrelaeret - oper) ere er3 // PB hasteoperere -diskut) ere er3 // PB omdiskuteret + C) er (_ ?V // final "er": V after consonant - handler- TEST + _p) er (_ Er // per + t) er (et_ ?V // final "er": V after t - centeret + r) ere (_ V?V // general rule: plural ending - murere + relat) ere e?V // arbejdsrelaeret + oper) ere ?EV // hasteoperere +diskut) ere e?V // omdiskuteret -// PB -ri words in da_list preceeded by e: stressed i - @) eri ($p_alt++ Vr'i // røveri, bedrageri - @) eri (sk$p_alt =Vri // røverisk, bedragerisk -infant) eri ($p_alt 3r''i // infanteri - vask) eri ($p_alt 3r''i // vaskeriet +// -ri words in da_list preceeded by e: stressed i + @) eri ($p_alt++ ?Vr'i // røveri, bedrageri + @) eri (sk$p_alt =?Vri // røverisk, bedragerisk +infant) eri ($p_alt @-r''i // infanteri + vask) eri ($p_alt @-r''i // vaskeriet st) eri (sk$p_alt 'eri // hysterisk - @røv) eri Vri // PB bankrøveri + @røv) eri ?Vri // bankrøveri -// PB noun suffix -er (perler - pearls), -ers (perlers - pearls') -erne (perlerne - the pearls), -ernes (perlernes - the pearls') +// noun suffix -er (perler - pearls), -ers (perlers - pearls') -erne (perlerne - the pearls), -ernes (perlernes - the pearls') // Also verb suffix (hun elsker - she loves) - not to mention Peter // NB suffix takes away the stres from "italiener/italienere" and since // it isn't possible to mark the rule "not for $alt words" -er and -ere a not suffixes any more. - @) er (_N V // elsker - @) ere (_ 3V // elskere - @) eren (_ Vr3n // elskeren - @) erens (_ Vr3ns // elskerens - @) ers (_ Vs // elskers - @) erne (_++ Vn@ // elskerne - @) ernes (_ Vn@s // elskernes - @) erste (_ Vst@ // midterste - @) ert (_ Vt // lummert, slubbert - @) ert (s_ Vt // PB Alberts - slamb) ert Vt // slamberter - @) er (sC V // PB Petersborg, tiggerske - TEST - f) ers (k Ers // PB dåseferskner - @) ers (tat Ers // PB skadeserstatning + @) er (_N ?V // elsker + @) ere (_+ ?VV // elskere + @) eres (_ ?V@-Vs // elskeres + @) eren (_ ?Vr@-n // elskeren + @) erens (_ ?Vr@-ns // elskerens + @) ers (_ ?Vs // elskers + @) erne (_++ ?Vn@- // elskerne + @) ernes (_ ?Vn@-s // elskernes + @) erste (_ ?Vsd@- // midterste + @) ert (_ ?Vd // lummert, slubbert + @) ert (s_ ?Vt // Alberts + slamb) ert ?Vd // slamberter + @) er (sC V // Petersborg, tiggerske - TEST + f) ers (k Ers // dåseferskner + @) ers (tat Ers // skadeserstatning - wien) er V // PB wienerbrød -sortep) er er // PB -vigtigp) er er // PB - beh) er (sk Er // PB beherske - _t) er (_ er // PB "de ter sig underligt" + wien) er V // wienerbrød + od) er V // moderinstinkt +sortep) er er // +vigtigp) er er // + beh) er (sk Er // beherske + _t) er (_ er // "de ter sig underligt" g) er (_++ V // våger, læger [l'EjV] - _g) er (ta+ er // PB Gerta - xavi) er 'e // PB name - ys) er V // PB gyserafdeling - dans) er V // PB danserinde - rom) er V // PB romertal -genfotograf) er (e er // PB røntgenfotografere - fing) erne (m Vne // PB fingernem - @d) erne (++ Vn@ // let the nd rule kick in - inderne + _g) er (ta+ er // Gerta + xavi) er 'e // name + gys) er V // gyserafdeling + lys) er (ød @-R // lyserød + dans) er V // danserinde + rom) er V // romertal +genfotograf) er (e er // røntgenfotografere + fing) erne (m VnE // fingernem + @d) erne (++ Vn-@ // let the nd rule kick in - inderne g) er (n++ Er // gerning - reag) ere (_ er3 // overreagere - _reag) ere (_ 'er3 // reagere - vurd) ere (_ er3 // overvurdere - tr) ere (+ er3 // indregistrere -@dramatis) ere er3 // PB overdramatisere -opsumm) ere er3 // PB -_overs) er er // PB - fj) er (_ er // PB falkefjer - ov) ere (ns+ V'e // PB uoverensstemmelse, overens - stressed + reag) ere (_ eV // overreagere + _reag) ere (_ 'eV // reagere + vurd) ere (_ eV // overvurdere + tr) ere (++ EV // indregistrere +@dramatis) ere eV // overdramatisere +_overs) er er // + fj) er (_ er // falkefjer + ov) ere (ns++ V'e // uoverensstemmelse, overens - stressed g) er (+ V // unger, borgerkrig - g) er (t er // PB Gert/Gerd - g) er (rig Er // PB gerrig - g) er (da Er // PB name - g) er (harK Er // PB Gerhard, Gerhart - g) er (e+ er // PB overreagerede, omarrangere - gg) er (e+ V // PB indbyggere - sug) er (e V // PB blodsugere - læng) er (e V // PB - borg) er (e V // PB - g) er (ani er // PB geranium - g) er (mans er // PB germansk - aflev) er er // PB aflevere - mm) er (et V // PB nummeret - nysg) er (ri er // PB nysgerrig -revolv) er (+ V // PB - int) er (@ V // PB interaktiv - smugl) er V // PB smuglergods - _int) er (n_++ 'Er // PB intern - _int) er (ne_++ 'Er // PB interne - int) erne (t+ VnE // PB - skid) er Vr // PB - ønst) er (+ V // PB mønsterelev - st) er (i er // PB ministerium - st) er (eo er // PB stereoanlæg - st) er (ol Er // PB kolesterol - st) er (ling er // PB sterling - ist) er V // PB minister - TEST - s) er (vicestation W // PB - s) ervicemindet Wvismajnd@D - s) er (vicemed W // PB servicemedarbejder -kundes) ervice Wvis // PB - s) er (vicen W // PB - v) ernon (++ Wn3n // PB name - t) er (a+ er // PB synsterapeut - met) er (+ V // PB materantal - dent) er V // PB studentereksamen - _all) er V // PB allersidst - pill) er V // PB spiller, piller - brus) er V // PB bruseranvendelse - eft) er V // PB efteruddanne - s) er (v+ Er // PB reservat, servo - s) er (t+ Er // PB dessertere - _kons) er (vativ 'Er // PB stressed - _præs) er (vativ 'Er // PB - _kons) er (ves 'Er // PB stressed - bas) ere eV // PB behovbaseret - tn) er V // PB partnerskab - all) er (g er // PB allergisk - j) er (n+++++ Er // jern, stjerne - talj) er (K+++ V // PB detaljer - linj) er (+++ V // PB telefonlinjer - lej) er V // PB sygeplejerske - bunk) er V // PB not a -er suffix -alexand) er =dV // PB Alexander + g) er (t er // Gert/Gerd + g) er (rig Er // gerrig + g) er (da Er // name + g) er (harK Er // Gerhard, Gerhart + g) er (e+ eV // overreagerede, omarrangere + gg) ere (+ @-V // indbyggere + sug) er (e V // blodsugere + læng) ere V?V // + borg) er (e V // + g) er (ani er // geranium + g) er (mans er // germansk + aflev) er er // aflevere + mm) er (et V // nummeret + nysg) er (ri er // nysgerrig +revolv) er (+ V // + int) er (@ V // interaktiv + smugl) er V // smuglergods + smugl) ere V?V // smuglere + _int) er (n_++ 'Er // intern + _int) er (ne_++ 'Er // interne + int) erne (t+ VnE // + skid) er Vr // + ønst) er (+ V // mønsterelev + st) er (i er // ministerium + ast) er (i -@R // madkasteri + st) er (eo er // stereoanlæg + st) er (ol Er // kolesterol + st) er (ling er // sterling + ist) er V // minister - TEST + s) ervicemindet WvismAjnd@-D +kundes) ervice Wvis // + s) er (vicen W // + v) ernon (++ Wn@-n // name + t) er (a+ er // synsterapeut + met) er (+ V // materantal + dent) er V // studentereksamen + _all) er V // allersidst + pill) er V // spiller, piller + brus) er V // bruseranvendelse + eft) er V // efteruddanne + s) er (v+ Er // reservat, servo + s) ervice (fag Wvis // servicefag + s) ervice (med Wvis // servicemedarbejder + s) ervice (sektor Wvis // servicesektor + s) ervice (station Wvis // servicestation + s) ervice (ydelse Wvis // serviceydelse + s) ervice (eftersyn+ 'Wvis // serviceeftersyn + s) er (t+ Er // dessertere + _kons) er (vativ 'Er // stressed + _præs) er (vativ 'Er // + _kons) er (ves 'Er // stressed + bas) ere eV // behovbaseret + tn) er V // partnerskab + all) er (g er // allergisk + j) er (n+++++ E3- // jern, stjerne + talj) er (K+++ V // detaljer + trulj) er (n+++ V // patruljerne + linj) er (+++ V // telefonlinjer + lej) er V // sygeplejerske + bunk) er V // not a -er suffix +alexand) er =dV // Alexander report) er (+ V // PN not a suffix - scept) er V // PB scepteret - kvart) er er // PB nabokvarter -_kvart) er 'er // PB kvarter, kvarterarrest - fin) er er // PB krydsfiner - _fin) er 'er // PB finerplade -delfin) er V // PB -_karakt) er 'er // PB karakter - mort) er 'er // PB morterild -karakt) er er // PB topkarakter - _klav) er (++ 'er // PB stressed -_kaval) er 'er // PB stressed - _tall) er (k 'Er // PB tallerken -_perif) er 'er // PB stressed - perif) er er // PB not stressed after a syllable - klav) er (++ er // PB after a syllable - værtshusklaver - _univ) er (s+ 'Er // PB stressed - univ) er Er // PB after a syllable - skoleunivers - flatt) er (ende 'er // PB - _rivi) er (a 'er // PB stressed - pass) er (sed 'er // PB passersedlen - park) er (_bil 'er // PB "parker bilen" verb, not noun = "parks" - pass) er (_gaden 'er // PB - n) er (_+ V // PB italiener - _sn) er (_ er // PB "det sner" - "it snows" - up) er (C V // PB superfølsom - @d) er (C V // PB hæderlig - TOO BROAD? - Amm) er (C V // PB sommerhilsen, tømmerflåde - r) er (C V // PB frimurerloge - komm) er (ciel er // PB -// amm) er (C V // PB hammersej - &nf) eren (c @rAN // PB konference, konferencier - &nf) er (er@ @r // PB konferere - vid) ere 3V // PB viderekomne + scept) er V // scepteret + kvart) er er // nabokvarter +_kvart) er 'er // kvarter, kvarterarrest + fin) er er // krydsfiner + _fin) er 'er // finerplade +delfin) er V // +_karakt) er 'er // karakter + mort) er 'er // morterild +karakt) er er // topkarakter + _klav) er (++ 'er // stressed +_kaval) er 'er // stressed + _tall) er (k 'Er // tallerken +_perif) er 'er // stressed + perif) er er // not stressed after a syllable + klav) er (++ er // after a syllable - værtshusklaver + _univ) er (s+ 'Er // stressed + univ) er Er // after a syllable - skoleunivers + flatt) er (ende 'er // + _rivi) er (a 'er // stressed + pass) er (sed 'er // passersedlen + park) er (_bil 'er // "parker bilen" verb, not noun = "parks" + pass) er (_gaden 'er // + n) er (_+ V // italiener + _sn) er (_ er // "det sner" - "it snows" + up) er (C V // superfølsom + @d) er (C V // hæderlig - TOO BROAD? + Amm) er (C V // sommerhilsen, tømmerflåde + r) er (C V // frimurerloge + komm) er (ciel er // + &nf) eren (c @-rAN // konference, konferencier + &nf) er (er@ @-r // konferere + vid) ere VV // viderekomne // not a -erne suffix - _mod) erne (++ 'ern@ - mod) erne (++ ern@ + _mod) erne (++ 'Ern@- + mod) erne (++ Ern@- mod) ern (i+ Ern // PM moderniteter - _cist) erne (+ 'ern@ - cist) erne (+ ern@ -fascist) erne (+ Vn@ // exception to "&cist) erne" - _kas) erne (+ 'ern@ - _kas) erner (+ 'ernV - kas) erne (+ ern@ - _lant) erne (+ 'Ern@ -toplant) erne (++ Ern@ -// lant) erne (_+ ern@ - plant) erne (++ Vn@ - _luc) erne (+ 'ern@ - luc) erne (+ ern@ - _saut) erne (+ 'ern - saut) erne (+ ern - _tav) erne (+ 'ern@ - tav) erne (+ ern@ - stav) erne (+ Vn@ // PB bogstaverne + _cist) erne (+ 'Ern@- + cist) erne (+ Ern@- +fascist) erne (+ Vn@- // exception to "&cist) erne" + _kas) erne (+ 'Ern@- + _kas) erner (+ 'ErnV + kas) erne (+ Ern@- + _lant) erne (+ 'Ern@- +toplant) erne (++ Ern@- + plant) erne (++ Vn@- + _luc) erne (+ 'Ern@- + luc) erne (+ Ern@- + _saut) erne (+ 'Ern + saut) erne (+ Ern + _tav) erne (+ 'Ern@- + tav) erne (+ Ern@- + stav) erne (+ Vn@- // bogstaverne // Exceptions to the suffix rules // Words ending with -ere - stressed e - around 1.600 words in list file - @) ere (_$p_alt++ ''e:V // PB stressed - manipulere, protestere (not parfum'ereklame) - @) ere (r$p_alt++ ''e:V // PB stressed - generer, kasserer - @) ere (re$p_alt+++ ''e:V // PB stressed - polerere - @) ere (ren$p_alt++ ''e:V // PB stressed - kassereren - @) ere (t$p_alt++ ''e:V // PB motiveret - @) ere (re$p_alt++ 3r'e // PB stressed - generere - @) ere (de$p_alt++ ''e:V // PB stressed - appellerede - @) ere (s_$p_alt++ ''e:V // PB stressed - pensioneres - @i) ere (n_$p_alt++ ''e:V // PB stressed - karrieren - @) er ($p_alt+++ ''er // PB stressed - repeter, kurer - @) er (e_$p_alt+++ ''er // PB stressed - vurdere - @) er (_$p_alt++ ''er // PB stressed - repeter - ion) er (_$p_alt++ V // PB unstressed - missioner, kommissioner - @) er (et$p_alt++++ ''er // PB stressed - orienteret - &ik) er (_$p_alt++ =V // PB stressed - politiker - &ik) er (s_$p_alt++ =V // PB stressed - politikers + @) 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 + @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 // exceptions fing) er (en VR // fingeren - clsashes with 'fing'ere' - _barb) er (+ 'er // PB barber, barberen - lev) er (eg+ @r // PB leveregel -fabrik) ere (+++++++'eV - brod) er (en Vr // PB - lev) er (en+ Vr // PB the liver - _not) er (_det 'er // PB - _not) er (_den 'er // PB -report) er (en+ 3r // PB clash with "reportere" = "rapportere" -report) er (e+ 3r // PB clash with "reportere" = "rapportere" - @cit) er (e er // PB fejlcitere -orient) eret er3D // PB venstreorienteret - _kap) er (s++ V // PB + _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 // +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 // -// PB stressed e in words with -ering (1.100) in da_ list - likvidering - &) ering ($p_alt++ ''ereN - @C) ering (++ ,ereN // PB lydisolering, hjertetatovering +// stressed e in words with -ering (1.100) in da_ list - likvidering + &) ering ($p_alt++ ''e3-eN + @C) ering (++ ,e3-eN // lydisolering, hjertetatovering -// PB final -eret: stressed e ['er3D] - &) eret ($p_alt++ ''er3D // PB detaljeret, pikeret +// final -eret: stressed e ['er3D] + &) eret ($p_alt++ ''er@-D // detaljeret, pikeret -// PB stressed e in finial -ert -affekt) ert 'ert - blas) ert 'ert +// stressed e in finial -ert +affekt) ert 'e3-t + blas) ert 'e3-t born) ert 'ert dess) ert 'Ert -diskontinu) ert 'ert +diskontinu) ert 'e3-t eksp) ert 'Ert ethv) ert 'Ert - fork) ert 'ert - gen) ert 'ert - in) ert 'ert + fork) ert 'e3-t + gen) ert (+ 'e3-t + in) ert 'e3-t introv) ert 'Ert konc) ert 'Ert -kontinu) ert 'ert +kontinu) ert 'e3-t kuv) ert (++ 'Ert -reform) ert 'ert -reserv) ert 'ert +reform) ert ''e3-t +reserv) ert 'e3-t // fire stavelser, den sidste -tiv, tryk på anden - alt) er (nativ 'ER // PB stressed LOOK FOR MORE + alt) er (nativ 'ER // stressed LOOK FOR MORE - ff) er (At V // PB probably way too broad - offeret - c) er (e+ er // PB velkvalificeret - v) er (et er // PB kultiverret - bl) er (e er // PB genetablere - desp) er (at 3R // PB desperat - alt) eret @r3D // PB - d) er (fra er // PB derfra - urd) er (et er // PB vurderet - udd) er V // PB mudderet - v) er (C+++ Er // PB vers, verden, kontroversiel - salv) er (++ V // PB kvaksalverbutik - snæv) er (++ V // PB snæversynet - ov) er (+++ V // PB overbevisende, sover, ovenover, overfald - farv) er (s+ V // PB -_kontrov) er (s 'Er // PB kontrovers - yv) er (+ V // PB flyver - flyv) er (ute 3r // PB flyverute - øv) er (st++ V // PB øverst, røver - perv) er (s+ 'Er // PB stressed e - pervers - &t) er (C V // PB teatervidenskab - isot) er (m 'Er // PB - t) er (rier Er // PB - t) er (ni+ Er // PB fraternisere - t) er (ror &#r // PB antiterrorgruppe - Cav) er (_+ V // PB laver, saver - @grav) er (e er // PB indgravere -guldgrav) er (e V // PB + ff) er (At V // probably way too broad - offeret + c) er (e+ er // velkvalificeret + v) er (et er // kultiverret + bl) er (e er // genetablere + desp) er (at 3R // desperat + alt) eret @-r@-D // + d) er (fra er // derfra + urd) er (et er // vurderet + udd) er V // mudderet + v) er (C+++ Er // vers, verden, kontroversiel + salv) er (++ V // kvaksalverbutik + snæv) er (++ V // snæversynet + ov) er (++++ V // overbevisende, sover, ovenover, overfald + farv) er (s+ V // +_kontrov) er (s 'Er // kontrovers + yv) er (+ V // flyver + flyv) er (ute @-r // flyverute + øv) er (st++ V // øverst, røver + perv) er (s+ 'Er // stressed e - pervers + &t) er (C V // teatervidenskab + isot) er (m 'Er // + t) er (rier Er // + t) er (ni+ Er // fraternisere + t) error ?&3-V // antiterrorgruppe [ˈtæɐ̯ʌ] + t) erro (rist ?&3-O // terrorist [tæɐ̯ɒˈʁisd] + Cav) er (_+ V // laver, saver + @grav) er (e er // indgravere +guldgrav) er (e V // lev) er (C++ V // levertran, leverplet led) er (@ V // lederkursus - pans) er V // PB panserdivision - kryst) er (@ V // PB kryst*er*agtig - _myst) er (iu 'er // PB mysterium - hust) er (i er // PB not stressed after a syllable - overhysterisk - @st) er (ie 'er // PB ministeriet - _sk) er (_ er // PB sker - _s) er (_ er // PB ser - _h) er (_ er // PB her - h) er (li+ Er // PB herlig - hv) er (+ er // PB hver - enhv) er 'er // PB stressed - fork) er (t+ er // PB forkert - Cik) er (+ V // PB epileptiker, optiker - kk) er (+ V // PB rykker - kuff) er (t V // PB kuffert - Amm) er (a 3r // PB kammerater - f) er (ni Er // PB fernis - _fall) er (+ 'er // PB falleret - _kass) er (er 'er // PB kasserer - inf) er (no 'Er // PB inferno -// st) er (et r // PB orkesteret - tt) er (C V // PB lattermild - _int) er (n_++ 'Er // PB stressed - int) er (nat V // PB international - t) er (min Er // PB terminal - t) er (p Er // PB terpentin, terpe - t) er (mo Er // PB termometer - t) er (r E // PB terror - t) er (rass a // PB - _) er (C er' // PB er + consonant: stress on next syllable - er'hverv - _) er (go er // PB not stress on next in "ergo..." - er (fari Er // PB ministererfaring - _) ernie W:ni // PB name - am) er (ika_ 'er // PB Amerika -// _røv) er (i Vr' // PB røveri - stressed i -// røv) er (i Vr // PB togrøveri - sv) er (ige Er // PB - ærg) err Er // PB ærgerrig - offic) er 'er // PB officer - stressed e - cafet) er (i 'er // PB cafeteria - n) er (v Er // PB nerve, nervøs - _gen) er (t Er // PB genert - _man) erer 'eV // PB - _L06) er (_ Er // PB per -L06L06) er V // PB klipper - fisk) er V // PB fisker, fiskerby - elsk) er V // PB elskerinde - und) er V // PB under - hund) er 3r // PB hunderæd - umm) er V // PB hummer - pok) er V // PB pokerspil - _) er (_ &r // PB er - L09) er (ne_ V // PB kameraerne - juvel) er (en 'er // PB juveleren - juvel) erer ''eV // PB juvelerer - _man) erer 'eV // PB - man) erer eV // PB - _l) er (_++ er // PB ler - v) er (r_ er // PB levere - man) er (_ 'er // PB hundemaner - oman) er (+ V // PB narkomaner, romaner -fremman) er V // PB -der_man) er (_ V // PB der er intet land, der maner ... - orman) er (_ V // PB formaner + pans) er V // panserdivision + kryst) er (@ V // kryst*er*agtig + _myst) er (iu 'er // mysterium + hust) er (i er // not stressed after a syllable - overhysterisk + @st) er (ie 'er // ministeriet + _sk) er (_ ?er // sker + _s) er (_ er // ser + _h) er (_ er // her + h) er (s++ Er // herse, herske + h) er (li+ Er // herlig + hv) er (+ Er // hver + enhv) er 'Er // stressed + fork) er (t+ er // forkert + Cik) er (+ V // epileptiker, optiker + kk) er (+ V // rykker + kuff) er (t V // kuffert + Amm) er (a @-r // kammerater + f) er (ni Er // fernis + _fall) er (+ 'er // falleret + _kass) er (er 'er // kasserer + inf) er (no 'Er // inferno + tt) er (C V // lattermild + _int) er (n_++ 'Er // stressed + int) er (nat V // international + t) er (min Er // terminal + t) er (p Er // terpentin, terpe + t) er (mo Er // termometer + t) er (r E // terror + t) er (rass a // [taˈʁɑsə] + _) er (C er' // er + consonant: stress on next syllable - er'hverv + _) er (go er // not stress on next in "ergo..." + er (fari Er // ministererfaring + _) ernie W:ni // name + am) er (ika_ 'er // Amerika + sv) er (ige Er // + ærg) err Er // ærgerrig + offic) er 'er // officer - stressed e + cafet) er (i 'er // cafeteria + n) er (v Er // nerve, nervøs + _gen) er (t Er // genert + _man) erer 'eV // + _L06) er Er // per, person +L06L06) er V // klipper + fisk) er V // fisker, fiskerby + elsk) er ?V // elskerinde + und) er V // under + hund) er 3r // hunderæd + umm) er V // hummer + pok) er V // pokerspil + _) er (_ &r // er + L09) er (ne_ V // kameraerne + juvel) er (en 'er // juveleren + juvel) erer ''eV // juvelerer + _man) erer 'eV // + man) erer eV // + _l) er (_++ er // ler + v) er (r_ er // levere + man) er (_ 'er // hundemaner + oman) er (+ V // narkomaner, romaner +fremman) er V // +der_man) er (_ V // der er intet land, der maner ... + orman) er (_ V // formaner th) er_ V // Luther - gt) er V // PB agter - øl) er V // PB brøler - t) erræn &r'&N // PB terræn - _g) er (ne_+ Er // PB gerne - j) er (g Er // PB bjerg - @m) er (sk V // PB romersk - ob) er (st V // PB - rooms) ervice Wvis // PB - d) erby A:bi // PB - polt) er (ab V // PB polterabend - alt) er V // PB altervin - d) er (byg V // PB underbygge - _all) erede (_ @reD@ - alb) er (tA 'Er // PB Alberta, Alberte - f) ergie W:gi // PB name + gt) er V // agter + øl) er (+ V // brøler, køler + t) erræn &r'&N // terræn + _g) er (ne_+ Er // gerne + j) er (g E3- // bjerg + @m) er (sk V // romersk + ob) er (st V // + rooms) ervice Wvis // + d) erby A:bi // + polt) er (ab V // polterabend + alt) er V // altervin + d) er (byg V // underbygge + _all) erede (_ @-rED@- + alb) er (tA 'Er // Alberta, Alberte + f) ergie W:gi // name .group ed -// PB verb suffix - ede (elskede - lovede) +// verb suffix - ede (elskede - lovede) // not treated as a suffix any more - too many exceptions - @) ede (_ @D@ // PB elskede - &r) ede (_ 3D@ // PB pikerede + @) ede (_ @-D@- // elskede + &r) ede (_ VD@- // pikerede, spekulerede + &r) ede (s_ VD@- // placeredes - hov) ed @D // PB hoved - afst) ed (kom 'eD // PB afstedkomme - f) ede (++ eD@ // PB opfede - f) eder (_+ eDV // PB - h) ede (+ eD@ // PB glohede - sm) ede eD3 // PB guldsmede -velocip) ed (e 'eD // PB stressed - h) eder (+ eDV // PB muligheder - vildr) ede (_+ ED@ // PB vildrede - ørner) ede ED@ // PB - err) ede (+ ED@ // PB forbryderrede, røverrede - bortl) ede ED@ // PB - spr) ede (_+ ED@ // PB adsprede - ber) ede (_+ ED@ // PB berede - _br) ede (_+ ED@ // PB brede - helbr) ede ED@ // PB - _fr) ede (_+ ED@ // PB frede - vr) ede (_+ ED@ // PB vrede - ler) ede (_+ ED@ // PB fuglerede -hvepser) ede (_+ ED@ // PB hvepserede -elskovsr) ede ED@ // PB -rotter) ede (_+ ED@ // PB rotterede - emb) ede (_+ eD@ // PB embede - emb) ede (t_+ eD@ // PB embedet - tilb) ede eD@ // PB - tilb) eder eDV // PB - hundr) ed (+ @:D // PB hundred - dern) ed (e eD // PB dernede - hern) ed (e eD // PB dernede - &k) ede (+ eD@ // PB dødkede - forsk) ede @D@ // PB uudforskede - psyk) ede (lisk @d'e // PB psykedelisk -// PB compounds with "lede" - afl) ede (+ eD@ // PB aflede - bortl) ede (+ eD@ // PB - forl) ede (+ eD@ // PB - henl) ede (+ eD@ // PB henlede - livsl) ede (+ eD@ // PB - indl) ede (+ eD@ // PB - indl) eder (+ eDV // PB - misl) ede (+ eD@ // PB - misl) eder (+ eDV // PB - opl) ede (+ eD@ // PB - retl) ede (+ eD@ // PB - udl) ede (+ eD@ // PB - vejl) ede (+ eD@ // PB - vildl) ede (+ eD@ // PB - vildl) eder (+ eDV // PB - afl) eder (+ eDV // PB afleder - bortl) eder (+ eDV // PB - forl) eder (+ eDV // PB - henl) eder (+ eDV // PB henleder - livsl) eder (+ eDV // PB - opl) eder (+ eDV // PB - retl) eder (+ eDV // PB - udl) eder (+ eDV // PB - vejl) eder (+ eDV // PB + hov) ed @-'D // hoved + mm) ed @-D // fremmed + afst) ed (kom 'eD // afstedkomme + opf) ede (++ eD@- // opfede + f) eder (_+ eDV // + h) ede (+ eD@- // glohede + sm) ede eD@- // guldsmede +velocip) ed (e 'eD // stressed + h) eder (+ eDV // muligheder + vildr) ede (_+ ED@- // vildrede + ørner) ede ED@- // + err) ede (+ ED@- // forbryderrede, røverrede + bortl) ede eD@- // + spr) ede (_+ ED@- // adsprede + ber) ede (_+ ED@- // berede + _br) ede (_+ ED@- // brede + helbr) ede ED@- // + _fr) ede (_+ ED@- // frede + vr) ede (_+ ED@- // vrede + ugler) ede (_+ ED@- // fuglerede +hvepser) ede (_+ ED@- // hvepserede +elskovsr) ede ED@- // +rotter) ede (_+ ED@- // rotterede + emb) ede (_+ eD@- // embede + emb) ede (t_+ eD@- // embedet + tilb) ede eD@- // + tilb) eder eDV // + hundr) ed (+ VD // hundred + dern) ed (e eD // dernede + hern) ed (e eD // dernede + dødk) ede (+ eD@- // dødkede + forsk) ede @-D@- // uudforskede + psyk) ede (lisk @-d'e // psykedelisk +// compounds with "lede" + afl) ede (+ eD@- // aflede + bortl) ede (+ eD@- // + forl) ede (+ eD@- // + forl) ede (n+ ?eD@- // forlerden dag + henl) ede (+ eD@- // henlede + livsl) ede (+ eD@- // + indl) ede (+ eD@- // + indl) eder (+ eDV // + misl) ede (+ eD@- // + misl) eder (+ eDV // + opl) ede (+ eD@- // + retl) ede (+ eD@- // + udl) ede (+ eD@- // + vejl) ede (+ eD@- // + vildl) ede (+ eD@- // + vildl) eder (+ eDV // + afl) eder (+ eDV // afleder + bortl) eder (+ eDV // + forl) eder (+ eDV // + henl) eder (+ eDV // henleder + livsl) eder (+ eDV // + opl) eder (+ eDV // + retl) eder (+ eDV // + udl) eder (+ eDV // + vejl) eder (+ eDV // .group et -// PB verb suffix -et (har elsket - has loved) +// verb suffix -et (har elsket - has loved) // not treated as a suffix any more - @) et (_+ @D // PB elsket - @r) et (_+ 3D // PB pikeret - @) ets (_+ @Ds // PB målets - noun ending + @) et (_+ @-D // elsket + @r) et (_+ VD // placeret + @) ets (_+ @-Ds // målets - noun ending + + int) et @-D // tilintetgøre + staff) et 'Et // stressed // PB exceptions: not a 'et suffix - en_du) et (_ 'Et // PB -synge_du) et (_ 'Et // PB -sunget_du) et (_ 'Et // PB -synger_du) et (_ 'Et // PB -sang_du) et (_ 'Et // PB - @du) et (_ 'Et // PB - @sekr) et Et // PB sædsekret - konkr) et 'Et // PB stressed - harri) et 3t // PB name -michel) et 'E // PB Name - silent t -margar) et &#t // PB name - nazar) et &#t // PB name - sorb) et 'E // PB hindbærsorbet - dekr) et (+ 'et // PB stressed -en_blank) et 'Et // PB en blanket, den blanket - noun - problem with verb "blanke/blanket" -en_son) et 'Et // PB poem - piru) et 'Et // PB - pinc) et 'Et // PB stressed - son) ett (e 'Et // PB sonetten, sonetter - vindu) et (_ @D // PB -jazzball) et Et // PB - viol) et Et // PB ultraviolet - tabl) et Et // PB jodtablet - omel) et Et // PB spinatomelet -leverpl) et Et // PB - _sk) et et // PB sket -gennems) et et // PB - _inds) et (_ et // PB - _us) et (_ et // PB - pærel) et (+ Et // PB pærelet - _toil) et 'Et // PB - toil) et Et // PB dyretoilet - toil) ett Et // PB herretoilettet - one t - spl) et (+ Et // PB skønhedsplet -guldpl) et Et // PB -sølvpl) et Et // PB - pl) et (+ Et // PB kaffeplet - pl) ett (+ Et // PB kaffepletter - _geb) et (+ 'et // PB - _sekr) et (+ 'Et // PB stressed - sekr) et (ær 3t // PB - _ask) et 'et // PB asketisk - _s) et (_+ et // PB set - tils) et et // PB - overs) et et // PB -_ildes) et et // PB + en_du) et (_ 'Et // +synge_du) et (_ 'Et // +sunget_du) et (_ 'Et // +synger_du) et (_ 'Et // +sang_du) et (_ 'Et // + @du) et (_ 'Et // + @sekr) et Et // sædsekret + starl) et Et // young actor + konkr) et 'Et // stressed + harri) et @-t // name +michel) et 'E // Name - silent t + sorb) et 'E // hindbærsorbet + dekr) et (+ 'et // stressed + klos) et 'Et // kloset stressed + klos) ett 'Et // klosettet stressed +en_blank) et 'Et // en blanket, den blanket - noun - problem with verb "blanke/blanket" +en_son) et 'Et // poem + piru) et 'Et // + pinc) et 'Et // stressed + son) ett (e 'Et // sonetten, sonetter + vindu) et (_ @-D // +jazzball) et Et // + viol) et Et // ultraviolet + tabl) et ?Et // jodtablet + tabl) ett ?Et // jodtabletter + omel) et Et // spinatomelet +leverpl) et Et // + _sk) et et // sket +gennems) et et // + _inds) et (_ et // + _us) et (_ et // + pærel) et (+ Et // pærelet + _toil) et 'Et // + toil) et Et // dyretoilet + toil) ett Et // herretoilettet - one t + spl) et (+ Et // skønhedsplet +guldpl) et Et // +sølvpl) et Et // + Apl) et (+ Et // kaffeplet + pl) ett (+ Et // kaffepletter + _geb) et (+ 'et // + _sekr) et (+ 'Et // stressed + sekr) et (ær @-t // + _ask) et 'et // asketisk + _s) et (_+ et // set + tils) et et // + overs) et et // +_ildes) et et // it) et (_+ 'et // aktivitet it) et (s_+ 'et // aktivitet, aktivitetsniveau - kar) et (++ 'Et // PB stressed - _kad) et (+ 'Et // PB stressed - _viol) et (+ ''Et // PB stressed - staf) et 'Et // PB stressed - _brik) et 'Et // PB - brik) et Et // PB -skampl) et Et // PB - _toil) et 'Et // PB toilet, toilette - _kok) et 'Et // PB stressed - koketteri, koket -_kvint) et 'Et // PB -_kvart) et 'Et // PB -_et_kors) et 'Et // PB a corset [kVs'Et] vs the cross [kVrs@d] - kvint) et Et // PB - kvart) et Et // PB -_tromp) et 'et // PB stressed - tromp) et et // PB - _tap) et 'et // PB -_lazar) et '&#t // PB - tap) et et // PB -klarin) et Et // PB -_klarin) et 'Et // PB -marion) et 'Et // PB -marion) ett 'Et // PB -_servi) et 'Et // PB -_servi) ett 'Et // PB - servi) et et // PB - _prof) et 'et // PB stressed - prof) et et // PB dommedagsprofet - prof) et (i 3t // PB - _plan) et 'et // PB -_pubert) et 'et // PB stressed - meg) et (+ et // PB not a suffix - &m) eter 'etV // PB kilometer, kometer, taxameter - stressed - skuer) et (+ &#t // PB -klager) et (+ &#t // PB - køber) et (+ &#t // PB -skatter) et (+ &#t // PB - liger) et (+ &#t // PB - møder) et (+ &#t // PB -påtaler) et (+ &#t // PB - råder) et (+ &#t // PB -skoler) et (+ &#t // PB -straffer) et (+ &#t // PB -sædvaner) et (+ &#t // PB - taler) et (+ &#t // PB - vetor) et (+ &#t // PB -borgerr) et &#t // PB - indr) et (+ &#t // PB -regelr) et (+ &#t // PB - henr) et (_ &#t // PB - _ordr) et (+ &#t // PB ordret oversættelse -mennesker) et (+ &#t // PB -fisker) et (+ &#t // PB - livr) et (+ &#t // PB -færdigr) et (+ &#t // PB -stemmer) et (+ &#t // PB - arver) et (+ &#t // PB -bygger) et (+ &#t // PB -bytter) et (+ &#t // PB -dagpenger) et (+ &#t // PB - ener) et (++ &#t // PB -familier) et (+ &#t // PB -underr) et (+ &#t // PB -førster) et (+ &#t // PB -gryder) et (+ &#t // PB - ur) et (_++ @D // PB -ret_og_ur) et (+ &#t // PB -gør_ur) et (++ &#t // PB -gøre_ur) et (++ &#t // PB -e_mig_ur) et (++ &#t //PB gjorde mig uret -e_dig_ur) et (++ &#t //PB gjorde dig uret -e_os_ur) et (++ &#t //PB gjorde os uret -e_dem_ur) et (++ &#t //PB gjorde dem uret -t_mig_ur) et (++ &#t //PB gjort mig uret -t_dig_ur) et (++ &#t //PB gjort dig uret -t_dem_ur) et (++ &#t //PB gjort dem uret -t_jer_ur) et (++ &#t //PB gjort jer uret -t_os_ur) et (++ &#t //PB gjort os uret - en_ur) et (++ &#t // PB begå en uret - _ur) et (_mod_++ &#t // PB begå uret mod -dig_ur) et (++ &#t // PB har alle andre end dig uret - ændr) et (+ VD // PB - r) ett (++++ &#t // henrette, rettroende - only one t - sr) et (++ &#t // PB rigsret -højester) et &#t // PB - av) et (_+ @D // havet, lavet - avoid [Au] - tag) et @D - amul) et 'Et // PB -_alfab) et 'et // PB - alfab) et et // PB avoid [@D] - _bill) et 'Et // PB stressed - _park) et 'Et // PB stressed - bill) et Et // PB - bill) ett Et // PB - _tib) et 'et // PB - tib) et et // PB - _bill) ett 'Et // PB stressed - only one t - _kask) et 'et // PB stressed - _kask) ett 'et // PB stressed - only one t -_bajon) et 'Et // PB stressed -_bajon) ett 'Et // PB only one t -_tabur) et (+ '&#t // PB - bajon) et Et // PB - eln) et (+ Et // PB - hårn) et Et // PB -fisken) et Et // PB -kamuflagen) et Et // PB - _bass) et Et // PB dog + kar) et (++ 'Et // stressed + _kad) et (+ 'Et // stressed + _viol) et (+ ''Et // stressed + staf) et 'Et // stressed + _brik) et 'Et // + brik) et Et // +skampl) et Et // + _toil) et 'Et // toilet, toilette + _kok) et 'Et // stressed - koketteri, koket +_kvint) et 'Et // +_kvart) et 'Et // +_et_kors) et 'Et // a corset [kVs'Et] vs the cross [kVrs@d] + kvint) et Et // + kvart) et Et // +_tromp) et 'et // stressed + tromp) et et // + _tap) et 'et // + tap) et et // +klarin) et Et // +_klarin) et 'Et // +marion) et 'Et // +marion) ett 'Et // +_servi) et 'Et // +_servi) ett 'Et // + servi) et et // + _prof) et 'et // stressed + prof) et et // dommedagsprofet + prof) et (i @-t // + _plan) et 'et // +_pubert) et 'et // stressed + meg) et (+ et // not a suffix + &m) eter 'etV // kilometer, kometer, taxameter - stressed + ændr) et (+ VD // + av) et (_+ @-D // havet, lavet - avoid [Au] + tag) et @-D + amul) et 'Et // +_alfab) et 'et // + alfab) et et // avoid [@D] + _bill) et 'Et // stressed + _park) et 'Et // stressed + bill) et Et // + bill) ett Et // + _tib) et 'et // + tib) et et // + _bill) ett 'Et // stressed - only one t + _kask) et 'et // stressed + _kask) ett 'et // stressed - only one t +_bajon) et 'Et // stressed +_bajon) ett 'Et // only one t + bajon) et Et // + eln) et (+ Et // + hårn) et Et // +fisken) et Et // +kamuflagen) et Et // +kamuflagen) ett Et // + _bass) et Et // dog - // PB final -ette stressed e + // final -ette stressed e _bagu) ette 'Et - _brun) ette 'Et@ - _bur) ette 'Et@ -_chemis) ette 'Et@ -_courg) ette 'Et@ - _cuv) ette 'Et@ - _disk) ette 'Et@ - _etik) ette ''Et@ // PB etiket - _etik) et ''Et // PB etiket + _brun) ette 'Et@- + _bur) ette 'Et@- +_chemis) ette 'Et@- +_courg) ette 'Et@- + _cuv) ette 'Et@- + _disk) ette 'Et@- + _etik) ette ''Et@- // etiket + _etik) et ''Et // etiket _georg) ette 'Et -_jambor) ette 'Et@ - _kok) ette 'Et@ -_marquis) ette 'Et@ - _mus) ette 'Et@ -_novell) ette 'Et@ - _palm) ette 'Et@ - _pian) ette 'Et@ - _pip) ette 'Et@ - _plak) ette 'Et@ - _rein) ette 'Et@ - _roul) ette 'Et@ -_soubr) ette '&t@ -_statu) ette 'Et@ +_jambor) ette 'Et@- + _kok) ette 'Et@- +_marquis) ette 'Et@- + _mus) ette 'Et@- +_novell) ette 'Et@- + _palm) ette 'Et@- + _pian) ette 'Et@- + _pip) ette 'Et@- + _plak) ette 'Et@- + _rein) ette 'Et@- + _roul) ette 'Et@- +_soubr) ette '&t@- +_statu) ette 'Et@- _statu) etter 'EtV -_suffrag) ette 'Et@ - _toil) ette 'Et@ -_vinaigr) ette '&t@ - _yl) ette 'Et@ -_niL10ol) ette 'Et@ // PB Nicolette +_suffrag) ette 'Et@- + _toil) ette 'Et@- +_vinaigr) ette '&t@- + _yl) ette 'Et@- +_nicol) ette 'Et@- // Nicolette // stressed e in nouns with -itet - vulgaritet, universitet - 304 words in da_list - &it) et ($p_alt+ ''et + &it) et ($p_alt+ ''?et // universitet - r) et (øj+ @t // PB køretøj - _budg) et 'Et - for) et_ t // PB no e - handled under group o - 'fore' - _r) et+ &#t //PB ret - _fals) et 'Et // PB stressed + r) et (øj+ @-t // køretøj + _budg) et '?Et + for) et_ t // no e - handled under group o - 'fore' + _r) et+ ?&#t // ret + _fals) et '?Et // stressed .group f f f ff f // _) for (&@P3 f%V // stressed second syllable after initial "for" - _) for (e_ f%o // PB only the word 'fore' - _) fore (de_ f%'orV // PB only the word 'forede' + _) fore (_ f'o@-V // only the word 'fore' + _) forer (_ f'o@-V // only the word 'forer' + _) fore (de_ f'o@-V // only the word 'forede' _) for (um f'or - _) fe (_ fe // PB + _) fe (_ fe // -// PB General rule, most words with af- plus vowel: [f] => [w] - a) f (A w // PB afart, afprøve -// PB exceptions to the 'a)f(A' rule below - ca) fe f'e // PB cafe, bogcafe - ca) fé f'e // PB café - a) f (asi f // PB afasi - a) f (atisk f // PB afatisk - a) f (or f // PB aforisme, aforistisk - f (olk f // PB mafiafolk +// General rule, most words with af- plus vowel: [f] => [w] + a) f (A w // afart, afprøve +// exceptions to the 'a)f(A' rule below + ca) fe f'e // cafe, bogcafe + ca) fé f'e // café + a) f (asi f // afasi + a) f (atisk f // afatisk + a) f (or f // aforisme, aforistisk + f (olk f // mafiafolk -// PB one sylable plus "færdig" - stressed æ +// one sylable plus "færdig" - stressed æ @) færdig f'Erdi // bluf'ærdig @@) færdig fErdi $1 // f'ingerfærdig -// PB General rule, most words with af- plus consonant: f => w +// General rule, most words with af- plus consonant: f => w a) f (C w -// PB exceptions to the 'a)f (C' rule below - a) ff (ine f // PB raffineret, raffinement - ja) ff (a f // PB - a) ff (abel f // PB affabel - a) ff (ekt f // PB affekt , affekteret - a) ff (icere f // PB afficere - a) ff (irm f // PB affirmere, affirmation, affirmativ - a) ff (initet f // PB affinitet - a) ff (ære f // PB affære - a) ff (age f // PB staffage - a) ff (utage f // PB - ra) ff (e f // PB straffe - ra) f (le f // PB rafle - gira) f f // PB girafskind - ra) f (fr f // PB straffri - ra) f (for f // PB strafforfølge - a) ff (el f // PB vaffel, taffel - a) f (ro f // PB afroasiat, afroamerikaner, afrohår etc. - la) f (re f // PB blafre - @) fobi fob'i // PB xenofobi, hydrofobi - @) f (laske f // PB colaflaske - f (jeder f // PB sofafjeder +// exceptions to the 'a)f (C' rule below + a) ff (ine f // raffineret, raffinement + ja) ff (a f // + a) ff (abel f // affabel + a) ff (ekt f // affekt , affekteret + a) ff (icere f // afficere + a) ff (irm f // affirmere, affirmation, affirmativ + a) ff (initet f // affinitet + a) ff (ære f // affære + a) ff (age f // staffage + a) ff (utage f // + ra) ff (e f // straffe + ra) f (le f // rafle + gira) f f // girafskind + ra) f (fr f // straffri + ra) f (for f // strafforfølge + a) ff (el f // vaffel, taffel + a) f (ro f // afroasiat, afroamerikaner, afrohår etc. + la) f (re f // blafre + @) fobi fob'i // xenofobi, hydrofobi + @) f (laske f // colaflaske + f (jeder f // sofafjeder a) f (it f a) f (on f a) f (rik f a) f (sted // afstedkomme a) f (ten f a) f (tes_ f - Ca) f (t f // PB haft - a) f (tryk w // PB fingeraftryk + Ca) f (t f // haft + a) f (tryk w // fingeraftryk Ca) f (A f - va) f (l f // PB vafler - ga) f (l f // PB gafler - da) f (n f // PB dafnie - ska) f f // PB retskafne + va) f (l f // vafler + ga) f (l f // gafler + da) f (n f // dafnie + ska) f f // retskafne gra) f (A f ra) f (ik f - stra) f f // PB strafpoint - fire fi:V // PB fire (4) - fireog fi:V // PB fireogtyve (24) + stra) f f // strafpoint + fire fi@-V // fire (4) + fireog fi:V // fireogtyve (24) sa) f (ar f sta) f (e f - fettuccine fetuTS'i:n@ // PB pasta - firenze fiR'&ns@ // PB Italian city - flush flVS // PB - freud frVjt // PB Freud - field fi:l/2d // PB - françois frANs'wa // PB name - francesca fRanS'Esk& // PB - _) fbi Efbi'aj // PB - frankie fr&nki // PB name - farao fArAo // PB name - fouquet fuk'e // PB name - fontaine fONt'E:n // PB - finlay fenli // PB name - es_) frites frit // PB pommes frites - _) four (_ fO: // PB + fettuccine fetuTS'i:n@ // pasta + firenze fiR'&ns@ // Italian city + flush flVS // + freud frVjt // Freud + field fi:l/2d // + françois frANs'wa // name + francesca fRAnS'Esk& // + _) fbi Efbi'Aj // + frankie fr&nki // name + farao fArAo // name + fouquet fuk'e // name + fontaine fONt'E:n // + finlay fenli // name + es_) frites frit // pommes frites + _) four (_ fO: // + fiction _^_en // science fiction .group g g g gg (e g // lægge - i) gg g // PB lediggang - o) gg g // PB jogging - gh (ana g // PB Ghana - gh (etto g // PB ghetto - af) gh (a g // PB afghansk - a) gg (res g // PB aggresiv - only one g - ru) g // PB rug, rugmel - uru) g (uay g // PB Uruguay - fru) g (t g // PB - æ) g (ernA j // PB lægerne - al) g (e j // PB alge - g (enstand+ g // PB metalgenstand - o) g (ernA // PB nekrologerne - sti) gmata gm'&:t& // PB stressed - a) g (ave 'g // PB agave - _a) g (ar 'g // PB agar, agar-agar - ser) gent 'sj&nt // PB sergent - gjorde gjo:V // PB gjorde - ki) g k // PB kig, udkig - ki) g (host // PB kighoste - silent g + i) gg g // lediggang + o) gg g // jogging + gh (ana g // Ghana + gh (etto g // ghetto + af) gh (a g // afghansk + a) gg (res g // aggresiv - only one g + ru) g // rug, rugmel + uru) g (uay g // Uruguay + fru) g (t g // + æ) g (ernA j // lægerne + al) g (e j // alge + g (enstand+ g // metalgenstand + o) g (ernA // nekrologerne + sti) gmata gm'&:t& // stressed + a) g (ave 'g // agave + _a) g (ar 'g // agar, agar-agar + ser) gent 'sj&nt // sergent + gjorde gjo:V // gjorde + ki) g k // kig, udkig + ki) g (host // kighoste - silent g ka) g (e @ // kage ba) g (e @ // bage - ba) g (i || // PB bagi - ba) g (in w // PB bagindisk - bra) g w // PB brag, bragende - bra) g (t g // PB bragte + ba) g (i || // bagi + ba) g (in w // bagindisk + bra) g w // brag, bragende + bra) g (t g // bragte æble) grød grWD a) g (urk g' - al) geriet Sj3r'i@d // PB Algeriet - al) gerier Sj'iV // PB algerier - al) gier S'ir // PB + al) geriet Sj3r'i@d // Algeriet + al) gerier Sj'iV // algerier + al) gier S'ir // al) gerisk Sj'i:rsg - g (iro S // PB - guinea gin'e& // PB - gui (nnes ge // PB - guard gA:d // PB - gerry dZEri // PB name - re) ggie dZi // PB name + g (iro S // + guinea gin'e& // + gui (nnes ge // + guard gA:d // + gerry dZEri // name + re) ggie dZi // name ødi) g (t_ // nødigt - smi) g j // PB smigre + smi) g j // smigre i) g (i g - e) g (entl j // PB egentlig - l) g (s j - øl) g (e j // PB bølge, selvfølgelig - A) g (n j // PB tegn, regne - pa) gn (on Nj // PB kompagnon - kampa) gn Nj // PB valgkampagnen - pa) gn (er Nj // PB akkompagnerer - pa) gn (i n' // PB kompagniskab - mu) g (n g // PB mugne - hu) g (ning g // PB halshugning - ty) g (ning g // PB - si) gn (er N // PB signere - velsi) gn jn // PB velsigner - a) g (nos g // PB diagnose - sky) g (ni g // PB afskygning - i) gn (o nj // PB ignorere - æ) g (n+ g // PB udlægning, prægnant - impræ) gn (e nj // PB imprægnere - by) g (n g // PB bygning - ble) g (sot j // PB blegsot - ble) g (ansigt j // PB blegansigt + e) g (entl j // egentlig + l) g (s // udsalgsfeber - silent g + øl) g (e j // bølge, selvfølgelig + A) g (n j // tegn, regne + pa) gn (on Nj // kompagnon + kampa) gn Nj // valgkampagnen + pa) gn (er Nj // akkompagnerer + pa) gn (i n' // kompagniskab + mu) g (n g // mugne + hu) g (ning g // halshugning + ty) g (ning g // + si) gn (er N // signere + velsi) gn jn // velsigner + a) g (nos g // diagnose + sky) g (ni g // afskygning + i) gn (o nj // ignorere + æ) g (n+ g // udlægning, prægnant + impræ) gn (e nj // imprægnere + by) g (n g // bygning + ble) g (sot j // blegsot + ble) g (ansigt j // blegansigt ble) g (fi j - e) g (enskab j // PB - e) ge (r jV // PB eger, egern - @) ger ($p_alt g'er // PB delegere - L08e) g j // PB steg, spegepølse - g (ård++ g // PB præstegård - val) g (år j // PB - L08e) g (t g // PB stegt + e) g (enskab j // + e) ge (r jV // eger, egern + @) ger ($p_alt g'er // delegere + L08e) g j // steg, spegepølse + g (ård++ g // præstegård + val) g (år j // + L08e) g (t g // stegt æ) g (e j - læ) g (folk j // PB - læ) g (m j // PB lægmand, lægmænd - læ) g (dom j // PB lægdommer - læ) g (søs j // PB lægsøster - æl) g (e j // PB sælge vælge - y) g (e j // syge, ryge, myge + læ) g (folk j // + læ) g (m j // lægmand, lægmænd + læ) g (dom j // lægdommer + læ) g (søs j // lægsøster + æl) g (e j // sælge vælge + y) g (e // syge, ryge, myge l) g (_ j // valg, elg - val) g // PB valgaften, valgkamp - l) g (en_ j // PB elgen - el) g (e_ j // PB elge, Helge - el) g (ene_ j // PB elgene - el) g (enes_ j // PB elgenes - _e) g (_ j // PB - kvæ) g j // PB - l) g (et_ j // PB valget - l) g (C // PB bælgmørkt, bælgplante, forfulgt - g (ruL06 g // PB kulgrube, kontrolgruppe + val) g // valgaften, valgkamp + l) g (et_ j // valget + l) g (en_ j // elgen + el) g (e_ j // elge, Helge + el) g (ene_ j // elgene + el) g (enes_ j // elgenes + _e) g (_ j // + kvæ) g j // + l) g (C // bælgmørkt, bælgplante, forfulgt + g (ruL06 g // kulgrube, kontrolgruppe g (rundlag g // PN kapitalgrundlag - g (las g // PB spejlglas - pil) g (rim g // PB - g (ran g // PB ædelgran - g (ross g // PB ølgrossist - ø) g j // PB deleted (_ - rø) g (ter g // PB røgterdreng - sø) g (ang g // PB - g (le j // PB mægler, besegle - goo) gle g-@l // PB name - guillaumin _^_fr // PB name - gachet _^_fr // PB name dr. Gachet - gur) g (le // PB silent g - g (lem g // PB glemt - _) g (led g // PB gled - val) g (t // PB silent g - valgt - spur) gt t // PB silent g - spurgt - sy) g // PB silent g -sygdom - sa) g j // PB frisag - sa) g (o g // PB sagogryn, heksagon - vra) g w // PB skibsvrag - spur) gte t@ // PB silent g - spurgte + g (las g // spejlglas + pil) g (rim g // + g (rib g // ådselgribbe + g (ran g // ædelgran + g (ross g // ølgrossist + ø) g j // deleted (_ + rø) g (ter g // røgterdreng + sø) g (ang g // + g (le j // mægler, besegle + goo) gle g-@l // name + guillaumin _^_fr // name + gachet _^_fr // name dr. Gachet + gur) g (le // silent g + g (lem g // glemt + _) g (led g // gled + val) g (t // silent g - valgt + spur) gt d // silent g - spurgt + sy) g // silent g -sygdom + sa) g j // frisag + sa) g (o g // sagogryn, heksagon + vra) g w // skibsvrag + spur) gte t@ // silent g - spurgte n) gæ gE - aspar) ges =s // PB - _) grunge (_ grVndZ // PB + aspar) ges =s // + _) grunge (_ grVndZ // _mar) ge dZ // POB name + gottfried gVtfr'it // name + +// general rule: consonant + o + g + e: [w] + Co) g w // tog, toge + g (lycerin g // nitroglycerin +// no) g @ // noget -// PB general rule: consonant + o + g: [w] - Co) g w // PB tog, toge, noget // o=>w exceptions - pro) g (r g // PB program - østro) gen g'en // PB - nitro) gen g'en // PB - ero) gen g'en // PB - mono) ga (m g'& // PB - g (yro g // PB autogyro - vo) g (t g // PB bevogtning - vo) g (te g // PB bevogte - surro) g (at g // PB - to) g (a g // PB exception toga - to) g (o g // PB exception Togo - to) g (t g // PB exception togt - ro) g (an g // PB arrogance - ro) g (es g // PB progesteron +// "tog" = "took", not "train" - problem with "de tog" = they took/those trains +_han_to) g // silent g +_hun_to) g // silent g +_vi_to) g // silent g + _i_to) g // silent g + pro) g (r g // program + østro) gen g'en // + nitro) gen g'en // + ero) gen g'en // + mono) ga (m g'& // + g (yro g // autogyro + vo) g (t g // bevogtning + vo) g (te g // bevogte + surro) g (at g // + to) g (a g // exception toga + to) g (o g // exception Togo + to) g (t g // exception togt + ro) g (an g // arrogance + ro) g (es g // progesteron o) g (raf g // autograf - bo) g (ota g // PB - _bo) g (art g // PB name - _bo) g (ey g // PB nickname + bo) g (ota g // + _bo) g (art g // name + _bo) g (ey g // nickname - r) g (_ w // PB kirurg, herberg - _pra) g w // PB Prag (city), pragmatisk - pra) g (t g // PB pragtfuld + r) g (_ w // kirurg, herberg + _pra) g w // Prag (city), pragmatisk + pra) g (t g // pragtfuld r) g (et_ w // herberget - r) gerne (_ wVn3 // PB herbergerne - r) gernes (_ wVn3s // PB herbergerne - r) gen (_ @n // PB kirurgen - mar) gen w@n // PB fejlmargen - r) gen (s_ @n // PB kirurgens - jær) g (e w // PB bjærge - r) g (er_ u // PB herberger - u) g (e : - su) g : // PB silent g - sugerør - u) g (ene S // PB ugenert - gener (_ham Sen'er // PB try to solve "gener" = bother and "gener" = genes - gener (_hende Sen'er // PB - gener (_dem Sen'er // PB - gener (_deres Sen'er // PB - u) g (enn g // PB ugennemskuelig - u) g (enL01 g // PB ugengældt, ugenkendelig + r) gerne (_ wVn3 // herbergerne + r) gernes (_ wVn3s // herbergerne + r) gen (_ @n // kirurgen + mar) gen w@n // fejlmargen + r) gen (s_ @n // kirurgens + jær) g (e w // bjærge + r) g (er_ u // herberger + u) ge :@- // uge, ugevis, bruge + su) g // silent g - sugerør, sug + u) g (ene S // ugenert + gener (_ham Sen'er // try to solve "gener" = bother and "gener" = genes + gener (_hende Sen'er // + gener (_dem Sen'er // + gener (_deres Sen'er // + u) g (enn g // ugennemskuelig + u) g (enL01 g // ugengældt, ugenkendelig u) g (l // silent g - uglegylp, smugler - en_du) g // PB table cloth, not dew [dug] -teltdu) g // PB silent g -damaskdu) g // PB silent g -flagdu) g // PB silent g -kammerdu) g // PB silent g -lysedu) g // PB silent g -olmerdu) g // PB silent g -sejldu) g // PB silent g -voksdu) g // PB silent g -svededu) g // PB silent g - hertu) g // PB silent g - ø) ge (+++ :j@ // PB bøgetræ, øge, døgenigt - mø) ge (len :je // PB møgelendig - beha) g j // PB ubehag + en_du) g // table cloth, not dew [dug] +teltdu) g // silent g +damaskdu) g // silent g +flagdu) g // silent g +kammerdu) g // silent g +lysedu) g // silent g +olmerdu) g // silent g +sejldu) g // silent g +voksdu) g // silent g +svededu) g // silent g + hertu) g // silent g + ø) ge (+++ j@- // bøgetræ, øge, døgenigt, høgen + ø) ger (++ jV // bøger + mø) ge (len :je // møgelendig + beha) g j // ubehag ø) g (n j g (iv+ g // avoid letter "g" pronounced with phoneme S - dra) g (en w // PB dragen, uopdragen + dra) g (en w // dragen, uopdragen ha) g (l u in) ge (niør Se - la) g (n j // PB lagnet - la) gr (e jR // PB lagre + la) g (n j // lagnet + la) gr (e jR // lagre la) g (t g dra) g w // foredrag, bidragyder - dra) g (on g // PB exception - dra) g (t g // PB flyverdragt - ra) g (e : // PB changed from w - præ) g j // PB præg, prægning, udpræget - præ) g (tig g // PB exception + dra) g (on g // exception + dra) g (t g // flyverdragt + ra) g (e : // changed from w + præ) g j // præg, prægning, udpræget + præ) g (tig g // exception præ) g (na g // PN prægnans lA) g (a g - ba) g (tal u // PB l added to post - bagtale - da) g (C w // PB changed from u - daglejer - anda) g (t g // PB + ba) g (tal u // l added to post - bagtale + da) g (C w // changed from u - daglejer + anda) g (t g // da) g (s_ j - dda) g (s :? // PB middagstid - re) g (ime S // PB voldsregime - re) g (iment g // PB regiment + dda) g (s :? // middagstid + re) g (ime S // voldsregime + re) g (iment g // regiment re) g (iA g _re) g (ist g' // register - sa) g (s : // PB ' => : - va) g (n w // PB u => w - gti) g (ere // PB vigtigere + sa) g (s : // ' => : + va) g (n w // u => w + gti) g (ere // vigtigere jer) g (A w jer) g (C w bo) g (st k - A) g (t_ g // PB søgt, bagt, frugt - g (te_ g // PB søgte, bagte - l) g (te_ // PB silent g - fulgte + A) g (t_ g // søgt, bagt, frugt + g (te_ g // søgte, bagte + l) g (te_ // silent g - fulgte vå) g (n u - å) g (e w // PB tåge, Åge, våge + å) g (e w // tåge, Åge, våge go) g = // stress on previous syllable, no g - pædagog lo) g = // stress on previous syllable, no g - psykolog - go) g (ik g // PB pædagogik - gogo gOwg'Ow // PB - orlo) g w // PB - ær) ger (lig w@ // PB - o) g (ram g // PB hologram, monogram - gerald dZEr3l/2 // PB - geraldine dZEr3l/2di:n // PB - fitz) gerald dZ'Er3l/2 // PB - gonzales _^_ES // PB gin - _) gi (n dZe // PB Gino - _) gi (nL04 dZi // PB - _) gi (na dZi // PB name - _) ginger dZendZV // PB ginger ale - _) guy (_ ga:j // PB Guy - name - _) guy (s_ ga:j // PB Guys - name - ginsberg gensbW:g // PB name - geronimo dZer'VnimO:u // PB - grady grEjdi // PB name - gertie gWti n // PB name - graham (_ _^_en // PB name - grahams (_ _^_en // PB name - guthrie gVTRi // PB name - gaulle gO:l // PB de Gaulle - g (igolo dZ // PB - gouda gAwd& // PB cheese - guirland girl'&nd // PB guirlander - _) grande (_ grand3 // PB italian - gele sjel'e // PB gele - gelé sjel'e // PB gelé - guire gw'aIV // PB - gobelin gob@l'EN // PB - graffiti grAf'iti // PB - en_) gros gro // PB - gustav gOstaw // PB name + go) g (ik g // pædagogik + gogo gOwg'Ow // + orlo) g w // + o) g (ram g // hologram, monogram + gerald dZEr3l/2 // + geraldine dZEr3l/2di:n // + fitz) gerald dZ'Er3l/2 // + gonzales _^_ES // gin + _) gi (n dZe // Gino + _) gi (nL04 dZi // + _) gi (na dZi // name + _) ginger dZendZV // ginger ale + _) guy (_ ga:j // Guy - name + _) guy (s_ ga:j // Guys - name + ginsberg gensbW:g // name + geronimo dZer'VnimO:u // + grady grEjdi // name + gertie gWti n // name + graham (_ _^_en // name + grahams (_ _^_en // name + guthrie gVTRi // name + gaulle gO:l // de Gaulle + g (igolo dZ // + gouda gAwd& // cheese + guirland girl'&nd // guirlander + _) grande (_ grand3 // italian + gele sjel'e // gele + gelé sjel'e // gelé + guire gw'aIV // + gobelin gob@l'EN // + graffiti grAf'iti // + en_) gros gro // + gustav gOstaw // name -// PB final -gi in da_list - stressed i +// final -gi in da_list - stressed i @) gi ($p_alt g''i // pædagogi, analogi @C) gi ($p_alt g''i // pædagogi, analogi &) gi (sk$p_alt =gi // pædagogisk _lo) gi (_ S'i // logi _lo) gi (e S'i // logi - natlo) gi Si // PB - re) gi ($p_alt+ S'i // PB regibemærkning - re) gi (men$p_alt+ gi // PB regimentet - re) gi (s$p_alt+ gi // PB registrere -// re) gi (ster g'i // PB - re) gi (on+ gi // PB regional + natlo) gi Si // + re) gi ($p_alt+ S'i // regibemærkning + re) gi (men$p_alt+ gi // regimentet + re) gi (s$p_alt+ gi // registrere +// re) gi (ster g'i // + re) gi (on+ gi // regional lo) g (a g lo) gg (e g @@ -3868,54 +4016,54 @@ svededu) g // PB silent g lo) g (o =g blo) g (s =g _lo) g (_ g - lo) g (fil g // PB + lo) g (fil g // _lo) g (g g - ør) g u // PB changed from w - spørge - ør) ge (l+ u3 // PB spørgeleg - avoid "gele" = [Sel'e] - ør) g (s // PB silent g - spørgsmål - å) g u // PB åg, åge + ør) g u // changed from w - spørge + ør) ge (+ w@ // spørgeleg - avoid "gele" = [Sel'e] + ør) g (s // silent g - spørgsmål + å) g u // åg, åge g (røn g // PN blågrøn - ne) g (_ j // PB neg, juleneg - sne) g j // PB sneget - ve) g (en j // PB undvegen - ne) ger (++ V // PB neger - ne) gre V // PB + ne) g (_ j // neg, juleneg + sne) g j // sneget + ve) g (en j // undvegen + ne) ger (++ V // neger + ne) gre V // te) g (ori g // kategori - gear gir // PB gear, bakgear - goddag god'& // PB - godnat gon'&t // PB - godaften go'aftn // PB - godmorgen gom'V:n // PB - grace _^_EN // PB Grace - name - gentleman djEnt@lm&n // PB - gentlemen djEnt@lmEn // PB - george _^_EN // PB - georgie _^_en // PB name - georgien ge'O:gi3n // PB - geneve Sen'E:v // PB - genève Sen'E:v // PB - _) gudskelov (_ gusg@lVu // PB - georgia dZV:dZj& // PB - gibraltar SibRalt'A // PB - _) gates (_ gEjts // PB name - _) gable gEjb@l // PB name - gendarm S&nd'arm // PB - _) gary g&ri // PB name - guillotine gijut'i:n@ // PB - _) gerard SeR'A: // PB name - giuseppe dZis'Ep@ // PB name - _) giants dZaj&nts // PB name - gloucester glVstV // PB - bour) geoisi ZwAs'i // PB - bour) geois Zw'A // PB - grandprix grANpr'i // PB - guernsey gW:nsi // PB - gulfstream gVlfstri:m // PB - geoff dZEf // PB name + gear gir // gear, bakgear + goddag god'& // + godnat gon'&t // + godaften go'aftn // + godmorgen gom'V:n // + grace _^_EN // Grace - name + gentleman dZEnt@-lm&n // + gentlemen dZEnt@-lm?En // + george _^_EN // + georgie _^_en // name + georgien ge'O:gi3n // + geneve Sen'E:v // + genève Sen'E:v // + _) gudskelov (_ gusg@lVu // + georgia dZV:dZj& // + gibraltar SibRalt'A // + _) gates (_ gEjts // name + _) gable gEjb@l // name + gendarm S&nd'arm // + _) gary g&ri // name + guillotine gijut'i:n@ // + _) gerard SeR'A: // name + giuseppe dZis'Ep@ // name + _) giants dZaI&nts // name + gloucester glVstV // + bour) geoisi ZwAs'i // + bour) geois Zw'A // + grandprix grANpr'i // + guernsey gW:nsi // + gulfstream gVlfstri:m // + geoff dZEf // name .group ge -// PB words with final -gere: [S] +// words with final -gere: [S] arran) ge (re S'e banda) ge (re S'e chan) ge (re S'e @@ -3934,41 +4082,41 @@ indran) ge (re S'e ran) ge (re S'e udran) ge (re S'e ur) ge (re S'e -_korte) ge =S3 // PB - korte) ge S3 // PB - _mane) ge =S3 // PB stress on previous syllable - mane) ge S3 // PB for compounds - cirkusmanege +_korte) ge =S3 // + korte) ge S3 // + _mane) ge =S3 // stress on previous syllable + mane) ge S3 // for compounds - cirkusmanege _lo) ge (_ S3 // loge _lo) ger (_ SV // loger - lo) ge (n S3 // PB logen -frimurerlo) ge S3 // PB - ykolo) ge (n 3 // PB børnepsykologen -proktolo) ge (n 3 // PB - lo) ge (bro S3 // PB logebror/logebroder - halo) ge (n g'e // PB stressed - lo) ge (mø Se // PB logemøde + lo) ge (n S3 // logen +frimurerlo) ge S3 // + ykolo) ge (n 3 // børnepsykologen +proktolo) ge (n 3 // + lo) ge (bro S3 // logebror/logebroder + halo) ge (n g'e // stressed + lo) ge (mø Se // logemøde _) ge (ne_ Se // gene _) ge (nere Se // genere - gener (_mig Sen'er // PB gener mig ikke - gener (e_mig Sen'er // PB genere mig - _) ge (nerere_ ge // PB + gener (_mig Sen'er // gener mig ikke + genere (_mig Sen'eV // genere mig + _) ge (nerere_ ge // ge (nerøs Se // generøs ge (nert Se // genert _) ge (never Se // genever - germain ZErm'&N // PB Saint-Germain (pronounced by a Dane) - _) generel gen@r'&#l // PB stress added - _a) ge (re g'e // PB agere - ge (nial ge // PB - ge (ni Se // PB - ge (ninvest gE // PB geninvestere - ge (nital ge // PB - ge (nitiv ge // PB - ge (nius // PB - geni (nd gene // PB genindspille, genindkalde (not [gen'i]) - ger (ning gEr // PB + germain ZErm'&N // Saint-Germain (pronounced by a Dane) + _) generel gen@r'&#l // stress added + _a) ge (re g'e // agere + ge (nial ge // + ge (ni Se // + ge (ninvest gE // geninvestere + ge (nital ge // + ge (nitiv ge // + ge (nius // + geni (nd gene // genindspille, genindkalde (not [gen'i]) + ger (ning gEr // bud) ge (t S'E - // PB stressed second syllable in words with initial ge + // stressed second syllable in words with initial ge ge (bet ge' ge (bis ge' ge (bommerlig ge' @@ -4017,7 +4165,7 @@ proktolo) ge (n 3 // PB ge (vind ge' ge (vinst ge' ge (vir ge' - føl) ge j3 // PB følgevirkning + føl) ge j3 // følgevirkning ge (vækst ge' ge (vær ge' @@ -4028,393 +4176,440 @@ proktolo) ge (n 3 // PB hv v A) h (K t) h (en h - w) h (isky // PB whisky - silent h - _r) h (in // PB Rhinen - silent h - sil) hue (t u'E // PB silent h, stressed e - bo) heme (_ 'E:m // PB boheme - bo) hem (e 'E:m // PB bohemer - hotline hVtla:jn // PB - honey hVni // PB - heat hi:t // PB - _) herb (_ hW:b // PB name - _) hercule Erk'yl // PB name - highhat hA:jh&d // PB - housecoat hAuskowd // PB - hitech hajtek // PB - homer hom'er // PB Homer - Greek - hawaii h&w'a:ji // PB - heather hEDV // PB - houston hju:sdVn // PB - hawk hV:k // PB Black Hawk - hugh hju: // PB name - hudson hVdsVn // PB name - hillary hel@*e // PB name - holly hVli // Pb hollywood - heim haIm // PB part of a German name - alzheimerpatient - hawthorne hO:Ton // PB name - _) hyde hajd // PB dr Jekyll and mr. Hyde - home hOwm // PB homebanking, home run - humveer hVmvi:V // PB - humvee hVmvi: // PB - w) h (it // PB Whitman - g) ho (st ow // PB - _) hunt (_ hVnt // PB name - howard hawVd // PB name - _) haig hEjg // PB name - _) huges (_ hju:s // PB name - huckleberry hVk@lbEri // PB name - hipokrates hip'okratEs // PB name - hierogly (f hirofl'y // PB - heavy hEvi // PB - _) hearst hWst // PB name - _) haag (_ h&j // PB Dutch city + w) h (isky // whisky - silent h + _r) h (in // Rhinen - silent h + sil) hue (t u'E // silent h, stressed e + bo) heme (_ 'E:m // boheme + bo) hem (e 'E:m // bohemer + hotline hVtla:jn // + honey hVni // + heat hi:t // + _) herb (_ hW:b // name + _) hercule Erk'yl // name + highhat hA:jh&d // + housecoat hAuskowd // + hitech haItek // + homer hom'er // Homer - Greek + hawaii h&w'a:ji // + heather hEDV // + houston hju:sdVn // + hawk hV:k // Black Hawk + hugh hju: // name + hudson hVdsVn // name + hillary hIl@*e // name + holly h?Vli // Pb hollywood + heim haIm // part of a German name - alzheimerpatient + hawthorne hO:Ton // name + _) hyde haId // dr Jekyll and mr. Hyde + home hOwm // homebanking, home run + humveer hVmvi:V // + humvee hVmvi: // + w) h (it // Whitman + g) ho (st ow // + _) hunt (_ hVnt // name + howard hawVd // name + _) haig hEjg // name + _) huges (_ hju:s // name + huckleberry hVk@lbEri // name + hipokrates hip'okratEs // name + hierogly (f hirofl'y // + heavy hEvi // + _) hearst hWst // name + _) haag (_ h&j // Dutch city .group i i i -// Glottal i followed by two consonants - C) i (C% ?i // PB svirret, fisse - TEST -// Normal i followed by consonant + wovel - C) i (CA i // PB sviret, fise - TEST -// Glottal i not followed by vowel -C) i (CK ?i // PB fis +// 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 + i (ld ?i // ilden -// PB general rule: initial in- : [e] - _) i (n+ e // PB instinkt, ineffektiv - i (ns e // PB bladinsekt, musikinstrument - h) i (n i // PB hinsides - i (nfant e // PB marineinfanteri - f) i (nsky i // PB finskytte, finskydning - i (nc e // PB pincet - _) insider ensajdV // PB - _) inside (information ensajd // PB - _) i (ni i // PB initiativ - i (nu i // PB inuit - p) i (nsel i // PB - p) i (nsler i // PB - sixt) i (nsk 'i // PB + 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 -// PB general rule: [e] before double consonant - L03) i (L01%+ ?e // PB ligge, dikke - i (ggør++ i // PB legemliggøre - i (ggjo++ i // PB legemliggjort/gjorde - r) i (L01% e // PB drikke, prikke - L08) i (ll e // PB skille, stille - st) illads il'&s // PB - bast) ille 'ilj3 // PB - sp) i (l e // PB lotterispil - sp) ilop il'Vp // PB stressed - L09) i (L03%a+ e // PB middag - L02) i (pp e // PB svippe, vippe - L09) i (pp e // PB nippe, knippe, knippel, snippe - s) i (pp e // PB sippe -mississ) i (ppi 'i // PB stressed - musl) i (n_ 'i // PB stressed +// short i - general rules? + h) i (ls ?i // hils, hilsen - short i + skr) i (der ?i // short i - general rule? + b) i (l ?i // bil, bilen + f) i (l ?i // fil, filen + v) i (dere ?i // + t) i (d ?i // tid + l) i (ter ?i // + t) i (t ?i // titel - v) i (ss e // PB visse - vr) i (ss e // PB vrisse - v) i (sh e // PB uvished - n) i (sse e // PB - pen) i (s i // PB penissen - vildn) i (s i // PB - p) i (sse e // PB - n) i (p e // PB nips, niptang - kn) ip (tang iw // PB kniptang - i (kke e // PB ikke, sikkerhed, sikkert - ch) i (k+ i // PB chikke - sk) i (k+ i // PB skikkelse - L06) i (lle ?e // PB billede, piller - b) i (lle_+ ?i // PB insect - b) i (ller_+ ?i // PB insect - b) i (llen_+ ?i // PB insect - b) i (llet+ i // PB - traf) i (k i // PB juletrafikken - tekn) i (k i // PB salgsteknikken - but) i (k i // PB videobutikken +// exceptions + dr) i (nk e // - // PB general rule: [i] after k, [e] followed by n/m - k) i (++ i // PB kikke, kikkert, kirke, kiosk - k) i (L09++ e // PB kind, skinke, skimme, skimte - k) i (L09L11++ i // PB kime - k) i (mning+ i // PB - bik) i (ni i // PB - sk) i (mo+ i // PB eskimo + +// "lide" - "like" versus "suffer" + l) ide (_dig i + l) ide (_mig i + l) ide (_jer i + l) ide (_dem i + l) ide (_os i + l) ide (_andre i + l) ide (_deres i + l) ide (_jeres i + l) ide (_vores i + +// general rule: initial in- : [e] + _) i (n+ e // instinkt, ineffektiv + i (ns e // bladinsekt, musikinstrument + i (nter e // fritidsinteresse + h) i (n i // hinsides + i (nfant e // marineinfanteri + f) i (nsky ?i // finskytte, finskydning + i (nc ?e // pincet + _) insider ensaIdV // + _) inside (information ensaId // + _) i (ni i // initiativ + i (nu i // inuit + p) i (nsel i // + p) i (nsler i // + sixt) i (nsk '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 + L08) i (ll++ ?e // skille, stille, spille + st) illads il'&s // + bast) ille 'ilj3 // + 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 + s) i (pp e // sippe +mississ) i (ppi 'i // stressed + musl) i (n_ 'i // stressed + + v) i (ss e // visse + vr) i (ss e // vrisse + v) i (sh e // uvished + n) i (sse e // + pen) i (s i // penissen + vildn) i (s i // + p) i (sse e // + n) i (p e // nips, niptang + kn) ip (tang iw // kniptang + i (kke+ ?e // ikke, sikkerhed, sikkert + ch) i (k+ i // chikke + sk) i (k+ i // skikkelse + L06) i (lle ?e // billede, piller + b) i (lle_+ ?i // insect + b) i (ller_+ ?i // insect + b) i (llen_+ ?i // insect + b) i (llet+ i // + traf) i (k i // juletrafikken + tekn) i (k i // salgsteknikken + but) i (k i // videobutikken + + // general rule: [i] after k, [e] followed by n/m + k) i (C++ ?i // kikke, kikkert, kirke, kiosk + k) i (Ce++ i // skide + k) i (L09++ e // kind, skinke, skimme, skimte + k) i (L09L11++ i // kime + k) i (mning+ i // + bik) i (ni ?i // + sk) i (mo+ ?i // eskimo + +// General rule j in "udie" + ud) i (e j // studie, audiens // general rule: [e] between l and nt - l) i (nt e // PB flint, klint, splint + l) i (nt e // flint, klint, splint // general rule: [e] between h and m - h) i (m+ e // PB himlen - h) iroshi (ma iroS'i // PB - h) imalaya em&l'aj& // PB stressed + h) i (m+ ?e // himlen + h) iroshi (ma iroS'i // + h) imalaya ?em&l'aI& // stressed // general rule: [e] before mp - i (mp e // PB imperium, impuls - impromptu _^_fr // PB + i (mp e // imperium, impuls + impromptu _^_fr // - fr) i (g i // PB frigav, frigid, frigøre - l) i (L01 e // flink, link, blink - hell) ig ij // PB helligånd - r) ig (C i // PB rigdom - silent g - r) ig (ning eg // PB - r) igg eg // PB boreriggen - ig (ruppe ig // PB smuglerigruppe - fr) ig (jo ig // PB frigjorde + 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 // PB fikse, fiks - f) i (kserbad i' // PB - f) i (kservæske i' // PB - f) i (kserbilled i' // PB - f) i (ksering i' // PB - f) i (ksere i' // PB - _f) i (k_ e // PB + 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 // PB stifte, stifter, vifte TEST - _v) i (ft_ e // PB - kv) i (L07++ i // PB kvit, kvittere, kvik, kvikt - v) i (ste+ i // PB afviste, viste - sk) i (Ct i // PB skift, beskidt - k) i (ste+ i // PB + 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 // PB - v) i (nstok i // PB - t) i (ka+ i // PB distika, Vatikanet - v) i (L01 e // PB vinge - v) i (L01a i // PB vikar - v) i (L10i i // PB viking - v) i (ck i // PB Vicki, Vicky - v) i (ktL04++ i // PB Viktor, viktualiehandel - t) ig (+ i // PB stig, stige, artig - _t) ight ajt // PB tight (English) - st) ig (ma ig // PB - _t) i (g_+ e // PB - t) i (gg+ e // PB tigge, tigger - pl) i (gt+ e // PB pligt - pl) i (L01L11+ i // PB komplikation - s) i (L01L07 e // PB sigte, sigt, udsigt - l) ig (C ij // PB lighus - fil) ig (ran ig // PB - l) ig (i ig // PB relegiøs - _n) i (L10 e // PB nikke, nik, Nick - n) i (kL04 i // PB nikotin - n) i (che i // PB + v) i (nglas++ i // + v) i (nstok i // + t) i (ka+ i // distika, Vatikanet + v) i (g e // vinge + 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 + 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 // - k) ikset (_ egs@D // PB - f) i (nkul i // PB finkulturel + k) ikset (_ egs@D // + f) i (nkul i // finkulturel -// PB miscellaneous - sv) i (L09C e // PB svimle, svimmel, svindle, svind, sving - sv) i (ns i // PB svins, svinsk (not [svensk]) - L02) i (p e // PB vip, svip, fipskæg -spirrev) i (p 'i // PB stressed - sylf) i (de 'i // PB stressed - L02) i (L06e i // PB Bibelen, pibe - L02) i (L06re i // PB fibre - C) i (mL06 e // PB simpel, vimpel - sl) i (m i // PB slimprøve - p) ibe (tøj iw // PB - p) i (p+ i // PB pipfugl - b) i (p+ i // PB bipper, biperson - v) i (b+ i // PB vibrere - C) i (mC e // PB fims, gesims, vimse, bims, dims, bimle - l) i (mni+ i // PB limning -himstreg) i (ms 'e // PB stressed - sk) i (n e // PB skin, skinne - kn) i (p e // PB kniplen - Cr) i (mC e // PB vrimle, strimle - pr) i (m+ i // PB primtal, primus - L06r) i (nt e // PB brint, print - kor) i (nt e // PB korinterne - str) i (nt e // PB strinte - s) i (dde e // PB sidde - s) i (dning e // PB eftersidning -læbest) i (ft e // PB -tegnest) i (ft e // PB - limst) i (ft e // PB -blyantsst) i (ft e // PB -blyantst) i (ft e // PB -slagst) i (ft e // PB -blækst) i (ft e // PB - bes) i (dde i // PB våbenbesiddelse - Cr) i (ll e // PB drille, brille - tr) i (ll i // PB trille -eskadr) ille 'ilj3 // PB -espadr) ille 'ilj3 // PB - kvadr) ille 'ilj3 // PB - _dr) i (l e // PB dril, drilagtig - L01r) i (ll i // PB kriller, grill - jun) i (or j // PB - b) i (tter e // PB - b) i (tre e // PB - m) iav jaw // PB - _rad) i (se 'i // PB stressed - tils) i (de 'i // PB tilsidesætte - stressed - _kal) i (ber 'i // PB +// miscellaneous + sv) i (L09C ?e // svimle, svimmel, svindle, svind, sving + sv) i (ns i // svins, svinsk (not [svensk]) + L02) i (p ?e // vip, svip, fipskæg +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 // + p) i (p+ i // pipfugl + b) i (p+ i // bipper, biperson + 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 + sk) i (n+ ?e // skin, skinne, skinke + kn) i (p e // kniplen + Cr) i (mC e // vrimle, strimle + Cr) i (mm ?e // grimme - short followed by 2 consonants + pr) i (m+ i // primtal, primus + L06r) i (nt e // brint, print + 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 // + bes) i (dde ?i // våbenbesiddelse + Cr) i (ll ?e // drille, brille + tr) i (ll ?i // trille +eskadr) ille 'ilj3 // +espadr) ille 'ilj3 // + kvadr) ille 'ilj3 // + _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 // + _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 -// PB [e] after gr - exception - gr) i (m e // PB grimrian - C) i (ng+ e // PB dressing, ising, ping, ring - len) i (n i // PB Leningrad - v) ing (ummi ing // PB - gr) i (mL11 i: // PB grime, grimasse +// [e] after gr - exception + gr) i (m e // grimrian + C) i (ng+ e // dressing, ising, ping, ring + len) i (n i // Leningrad + v) ing (ummi ing // + gr) i (mL11 i: // grime, grimasse - l) inge (ri l&NSe // PB + l) inge (ri l&NSe // -// PB general rule: [e] before nd/nk/ng - i (nd e // PB ind, finde, vinde - er) i (ndr 'e // PB erindring, erindre - i (nne e // PB finne - lets) i (ndig 'e // PB stressed - f) i (nland e // PB - h) i (nd e // PB hindre - C) i (nk e // PB spinkel, vinkel, forsinke - v) i (nkort i // PB - f) i (nkæm i // PB finkæmme +// general rule: [e] before nd/nk/ng + i (nd+ e // ind, find, vind + i (nde+ ?e // inde, finde, vinde + er) i (ndr ?e // erindring, erindre + i (nne+ ?e // finne + lets) i (ndig '?e // stressed + f) i (nland ?e // + h) i (nd ?e // hindre + C) i (nke ?e // spinkel, vinkel, forsinke + v) i (nk ?e // + v) i (nkort i // + f) i (nkæm i // finkæmme // exceptions - v) i (ndrik+ // PB vindrikker - v) i (nkæld+ i // PB vinkælder - v) i (ngård+ i // PB vingård - f) ind (el ind // PB findele - f) ind (eløn en // PB - ind (else+ en // PB opfindelse, forbindelse - f) ind (yrk ind // PB findyrke - _vest) i (ndi 'e // PB vestindisk + v) i (ndrik+ // vindrikker + v) i (nkæld+ i // vinkælder + v) i (ngård+ i // vingård + f) ind (el ?ind // findele + f) ind (eløn ?en // + ind (else+ ?en // opfindelse, forbindelse + f) ind (yrk ?ind // findyrke + _vest) i (ndi 'e // vestindisk - // PB general rule: [e] before nn - i (nn e // PB linning, finne, fortinne + // general rule: [e] before nn + i (nn e // linning, finne, fortinne // exceptions - c) i (nn i // PB cinnober - t) i (nnitus i // PB + c) i (nn ?i // cinnober + t) i (nnitus ?i // -// PB general rule: [e] after sp/st/sk/r before k/l +// general rule: [e] after sp/st/sk/r before k/l t) i (L01+ e // ting, folketing, stik, joystick - part) i i // PB skyggepartikler - polit) i (k i // PB miljøpolitikken - art) i (k i // PB trosartikel - sk) i (l++ ?e // PB skildpadde, skilt - sk) i (løb++ i // PB skiløber - sk) i (lift+ i // PB - @sk) i (ld++ i // PB ungdomskilde, forsyningskilde - sp) i (ds e // PB spids - L08l) i (L07 e // PB splitte - l) i (v++ i // PB pensionistliv - t) i (d+ i // PB livstidsdom - r) i (f e // PB skrifte, rift, drift - tar) i (f 'i // PB - fr) i (f+ i // PB frifundet - _fr) ites (_ it // PB pommes frites - sher) i (f 'i // PB sheriffen + part) i i // skyggepartikler + polit) i (k ?i // miljøpolitikken + art) i (k ?i // trosartikel + sk) i (l++ ?e // skildpadde, skilt + sk) i (løb++ ?i // skiløber + sk) i (lift+ ?i // + @sk) i (ld++ ?i // ungdomskilde, forsyningskilde + sp) i (ds ?e // spids + L08l) i (L07 ?e // splitte + l) iv (K++ ?iw // pensionistliv, livret + _bl) iv (e_ i // blive - silent v, long i + r) i (f ?e // skrifte, rift, drift + tar) i (f '?i // + fr) i (f+ ?i // frifundet + _fr) ites (_ ?it // pommes frites + sher) i (f '?i // sheriffen // greneral rule: [e] between r and c/k - [i] followerd by front vowel - r) i (L10 e // PB drik, skiderik - r) i (L10L11 i // PB Erika - fr) ikadelle ek&d'El3 // PB - fr) ikadeller ek&d'ElV // PB -_ventr) i (k 'i // PB ventrikel, ventrikler - r) i (ce i // PB servitrice - r) i (L10L04 i // PB frikendt, briket - r) i (L10CL04 i // PB friktion - fr) i (kvarter i // PB - fr) i (ken i // PB frikende + r) i (L10 e // drik, skiderik + r) i (L10L11 i // Erika + fr) ikadelle ek&d'El3 // + fr) ikadeller ek&d'ElV // +_ventr) i (k 'i // ventrikel, ventrikler + r) i (ce i // servitrice + r) i (L10L04 ?i // frikendt, briket + r) i (L10CL04 ?i // friktion + fr) i (kvarter ?i // + fr) i (ken ?i // frikende // general rule: [e] between consonant and st/sp/sk - l) i (L08 e // PB list - l) i (sk i // PB cyklisk - @cykl) i (st i // PB røvcyklist - obel) i (sk 'i // PB stressed - r) i (L08+ e // PB riste, frisk, brist, vrist, Kristus, dristig - r) i (L08L04+ i // PB aristokrat - dr) i (stig e // PB - r) i (stik+ i // PB karakteristik - fr) i (stad i // PB - fr) i (spark i // PB - kr) i (sti_ e // PB Kristi genkomst - kr) i (stus e // PB - L10r) i (stin i' // PB Christine, Kristine - tr) i (L08+ i // PB trist - pr) i (s i // PB - fr) i (sted i // PB - fr) i (stede_ e // PB - fr) i (stedes_ e // PB - gr) i (L08+ i // PB grisk - &r) i (sk i // PB historisk TEST -infanter) i i // PB marineinfanterist - f) i (L08+ e // PB fisketur - graf) i (sk i // PB - forl) i (s i // PB forliste - konf) i (sker i // PB - _kl) i (ster i // PB klister - kl) i (str i // PB klistret - v) i (sk+ e // PB hviske - bev) i (s i // PB beviskæde - høv) i (sk i // PB - m) i (ste e // PB miste - _m) i (st_ e // PB - m) i (stanke i // PB - m) istelten istElten // PB - bil) i (s i // PB spritbilist + l) i (L08+ ?e // list + l) i (sk ?i // cyklisk + @cykl) i (st ?i // røvcyklist + obel) i (sk '?i // stressed + r) i (L08+ ?e // riste, frisk, brist, vrist, Kristus, dristig + r) i (s+ ?i // riskager + r) i (L08L04+ ?i // aristokrat + dr) i (stig ?e // + 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 + tr) i (L08+ ?i // trist + pr) i (s ?i // + fr) i (sted ?i // + fr) i (stede_ ?e // + fr) i (stedes_ ?e // + gr) i (L08+ ?i // grisk + &r) i (sk ?i // historisk TEST +infanter) i i // marineinfanterist + f) i (L08+ ?e // fisketur + graf) i (sk ?i // + forl) i (s ?i // forliste + konf) i (sker ?i // + _kl) i (ster ?i // klister + kl) i (str ?i // klistret + v) i (sk+ ?e // hviske + Av) isk (_ ?isg // slavbisk + bev) i (s ?i: // beviskæde + høv) i (sk ?i // + m) i (ste ?e // miste + _m) i (st_ ?e // + m) i (stanke i // + m) istelten ?istElten // + bil) i (s ?i // spritbilist -// PB "vist" exceptions -ganske_v) i (st_ e // PB - jov) i (st e // PB - jav) i (st e // PB - L07v) i (st+ e // PB kvist, tvist - bortv) i (s i // PB bortvist - _v) i (st_ e // PB "vist" = probably/might/maybe - problem with verb "vise/vist" - v) i (stnok e, // PB - _v) i (st_sig i // PB verb - v) i (s_grad e // PB "til en vis grad" - avoid [i] +// "vist" exceptions +ganske_v) i (st_ ?e // + jov) i (st ?e // + jav) i (st ?e // + L07v) i (st+ ?e // kvist, tvist + bortv) i (s ?i // bortvist + har_v) i (st_mig i // PM + _v) i (st_ ?e // "vist" = probably/might/maybe - problem with verb "vise/vist" + v) i (stnok ?e // + _v) i (st_sig i // verb + _v) i (st_den_til i // verb + v) i (s_grad ?e // "til en vis grad" - avoid [i] -// PB general rule: [e] after consonant + l followed by p - Cl) i (p e // PB slip, slippe, klip, glippe, glip +// general rule: [e] after consonant + l followed by p + Cl) i (p e // slip, klip, glip + Cl) i (pp ?e // slippe, klipppe, glippe - _l) i (dt_ e // PB problem with verb "lide" - _l) i (dt_skade i // PB - _l) i (dt_nederlag i // PB - _l) i (dt_overlast i // PB - _l) i (dt_under i // PB + _l) i (dt_+ e // problem with verb "lide" + _l) i (dt_skade i // + _l) i (dt_nederlag i // + _l) i (dt_overlast i // + _l) i (dt_under i // -// PB general rule: d/l + i + k = [e] - L03) i (k e // PB blik, øjeblik, dik - L03) i (kL04 i // PB helikopter, publikum - L03) i (L10a i // PB handikap - L03) i (ke i // PB klike - L06) i (k e // PB pik, vatpik, bikse - b) i (kube i // PB - b) i (kini i // PB - L06) i (ke i // PB pikikerede, piké - _sp) ike ajk // PB Spike Jones - name - d) i (kt i // PB diktat, diktatur, diktum - l) i (kv+ i // PB likvid - pl) i (k i // PB replik, duplik - publ) i i // PB folkerepublik - harp) i (ks i // PB +// general rule: d/l + i + k = [e] + L03) i (k+ e // blik, øjeblik, dik + L03) i (kL04+ i // helikopter, publikum + L03) i (L10a i // handikap + L03) i (ke i // klike + L06) i (k+ ?e // pik, vatpik, bikse + b) i (kube i // + b) i (kini i // + L06) i (ke i // pikikerede, piké + _sp) ike aIk // Spike Jones - name +// d) i (kt i // diktat, diktatur, diktum + l) i (kv+ i // likvid + pl) i (k i // replik, duplik + publ) i i // folkerepublik + harp) i (ks i // - // PB words with final -id in da_list - stressed i + // words with final -id in da_list - stressed i &) id ($p_alt ''iD // hybrid -// PB nouns with final -itum in da_list - stress on previous syllable - @) itum ($p_alt =itOm // PB depositum - @) itum (m$p_alt =itO // PB depositummet - only one m +// nouns with final -itum in da_list - stress on previous syllable + @) itum ($p_alt =itOm // depositum + @) itum (m$p_alt =itO // depositummet - only one m -// PB words with final -isk: stress on previous syllable (1.250 words in da_list) +// words with final -isk: stress on previous syllable (1.250 words in da_list) &) isk (_$p_alt =isg // canadisk &) isk (e$p_alt =isg // canadiske &) isk (t$p_alt =isg // canadiskt -// PB country names in da_list with final -ien - stress on previous syllable +// country names in da_list with final -ien - stress on previous syllable &) ien ($p_alt =i@n // it'alien &) ien (sk$p_alt i'En // itali'ensk &) ien (er$p_alt i'En // itali'ener -austral) ier =jV // PB +austral) ier =jV // -// PB words with final -ik in da_list - stressed i +// words with final -ik in da_list - stressed i @) ik ($p_alt+++ ''ik // romantik @) ik (et$p_alt+++ ik // etiket - @r) ik (k$p_alt++++ ''e // fabrikker - @) ik (k$p_alt+++ ''i // musikken, replikker - only one k - @est) ik (k$p_alt+++ ''e // bestikke - only one k - @ast) ik (k$p_alt+++ ''i // elastikker + @r) ik (k$p_alt++++ ''?e // fabrikker + @) ik (k$p_alt+++ ''?i // musikken, replikker - only one k + @est) ik (k$p_alt+++ ''?e // bestikke - only one k + @ast) ik (k$p_alt+++ ''?i // elastikker @) ik (at$p_alt++ ik // duplikat, duplikator @) ik (er$p_alt++ %ik // rom'antiker, k'omikere @) iker (en$p_alt++ =ikV // mekanikeren @@ -4422,45 +4617,55 @@ austral) ier =jV // PB &) ik (alsk$p_alt+ ik' // musikalsk &r) ik ($p_alt++ ''ek // fabrik &or) ik ($p_alt++ ''ik // retorik - &) ik (k$p_alt+ ''i // antikke, trafikken - only one k + &) 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 // PB mimiker, spastiker, musiker - C) ik (aner++ ik // PB republikaner - mus) i (k i // PB folkemusik + C) ik (er+ ik // mimiker, spastiker, musiker + C) ik (aner++ ik // republikaner + mus) i (k i // folkemusik -// PB words with final -ti in da_list - stressed i - &t) i ($p_alt+ 'i // politi, parti, profeti +// words with final -ti in da_list - stressed i + &t) i ($p_alt+ ''i // politi, parti, profeti -// PB words with final -isme in da_list (348) - stressed i +// words with final -isme in da_list (348) - stressed i &) isme ($p_alt ''ism@ // kommunisme, egoisme &) isme (r$p_alt 'ismV // organismer -// PB words with final -inde in da_list - stressed i +// words with final -inde in da_list - stressed i &) inde ($p_alt 'en@ // malerinde &) inde (r$p_alt 'enV // malerinder -// PB put stress on the syllable before final 'ium' - words in da_list +// put stress on the syllable before final 'ium' - words in da_list &) ium ($p_alt =iOm // territorium &) ium (m$p_alt =iO // plutoniummet - only one m &r) i (um$p_alt ==i &r) i (et$p_alt 'i // infirmeriet -// PB put stress on the syllable before final 'ie' - words in da_list - &) ie ($p_alt =i3 // valkyrie, kalorie - &) ie (liv$p_alt =i@ // familieliv +// put stress on the syllable before final 'ie' - words in da_list + &) ie ($p_alt =j@- // valkyrie, kalorie + &) ie (liv$p_alt =j@- // familieliv &) ie (r$p_alt =jV // familier - &s) ie ($p_alt =j3 // gymnasiereform + &s) ie ($p_alt =j@- // gymnasiereform &r) ie (l$p_alt i'E // materiel &) ie (re$p_alt =i''e // injuriere, injurierende - kalor) i (us =i // PB + kalor) i (us =i // -// PB stressed i in words with final -mi in da_list +// stressed i in words with final -mi in da_list &m) i ($p_alt 'i // økonomi, kemi - only one stress-marker because of 'kemikalier' - &k) i ($p_alt 'i // PB anarki + &k) i ($p_alt 'i // anarki &m) i (sk$p_alt =i // stress on the previous syllable - økonomisk -// PB French words with final -ier +// ie=>j@- TEST + er) ie j@- // serie, ferie + er) iet i@-D // nusseriet + er) ier jV // serier, ferier + ie (re j'E // karriere TEST + ierer j'EV // karrierer TEST + or) ie (nt_ i'E // Den nære Orient + or) ie (nten_ i'E // Orienten + or) ie (ntens_ i'E // Orientens + +// French words with final -ier atel) ier j'e bank) ier j'e barbad) ier j'e @@ -4483,178 +4688,188 @@ particul) ier j'e spal) ier j'e // various exceptions - _) idel (_ i:D@l // PB idel - israel isrA:l // PB Israel - israeler isrA'elV // PB israelsk - israelsk isrA'elsk // PB - _d) israel (i isrA'el // PB name - irving WveN // PB name - smok) i (ng e // PB - sen) ior jV // PB + _) idel (_ i:D@l // idel + israel isrA:l // Israel + israeler isrA'elV // israelsk + israelsk isrA'elsk // + _d) israel (i isrA'el // name + irving WveN // name + smok) i (ng e // + sen) ior jV // iew j'u - _t) i (n e // PB tinfolie - t) i (nL11 i // PB Tina, Tine - b) ingo engo // PB - _m) id (t e // PB midt - silent d - i (mpo e // PB imponerende -special) i (st i // PB stålspecialist - gev) i (nst e // PB - f) i (nte_ e // PB - r) idge idZ // PB Coleridge, bridge - br) idget idZit // PB name - r) isik (e esik // PB risikere - r) isiko isiko // PB risiko - gl) i (m e // PB glimt, glimrende - l) i (nned e // PB - klin) i (k i // PB fødeklinik - unstressed after syllable - @t) i (k_++ i // PB ferieromantik, finanspolitik - best) i (k++ e // PB bestikke - bist) i (k++ e // PB -knivst) i (k e // PB -spadest) i (k e // PB -myggest) i (k e // PB -nålest) i (k+ e // PB - plast) i (L10 i // PB plastik/c -tændst) i (k+ e // PB -gudhjælpem) ig =aj // PB - i (owa aj // PB US state - t) i (ming aj // PB - n) i (tten e // PB the number 19 - problem with noun "nitte" - kl) i (k_ e // PB museklik - f) i (x e // PB fixe - L09) i (ks e // PB mikse, niks - L09) i (x e // PB Nixon - m) i (kstur i // PB - m) i (kler e // PB skvatmikler - p) i (lr e // PB pilrådden - l) i (ns e // PB linse - l) i (lla e // PB - t) ime (out ajm // PB - r) i (ley aj // PB name - s) i (d_ e // PB sid - s) i (lk e // PB silke - sl) i (k e // PB slik - impoten empotEn // PB impotens -_en_st) i (l_ i // PB stil - noun - _st) i (l_over_hende i // PB "der er stil over hende" - _st) i (l_over_ham i // PB - _st) i (l_over_deC i // PB "stil over" det/dem/deres - er_st) i (l_over_ i // PB "der er stil over" -var_st) i (l_over_ i // PB "der var stil over" -mere_st) i (l_over_ i // PB "der er mere stil over" -har_st) i (l_ i // PB -havde_st) i (l_ i // PB - best) i (l e // PB bestille - st) i (l_ham e // PB verb - stil ham om - st) i (l_op_ e // PB verb - ant) i i // PB antilope - sp) i (ld i // PB spilde - L08) i (le++ i: // PB spile, stile - k) i (mse e // PB kimse - v) i (l_+ e // PB vil - hv) i (l+ i // PB hvil - nashv) ille el/2 // PB US city - hv) i (lk+ e // PB hvilken - v) ind (rue ind // PB - v) i (nter e // PB - v) i (ntre e // PB - v) id (st e // PB vidst - e and silent d - uv) i (s e // PB - v) i (st_ikke e // PB - t) i (l e // PB til -projekt) i (l i // PB blyprojektiler - art) ille (ri il@ // PB artilleri - st) i (lfuld i // PB -// PB stil = "style" not the verb 'stil' = "put, place" -_min_st) i (l_ i // PB -_sin_st) i (l_ i // PB -_din_st) i (l_ i // PB -_jeres_st) i (l_ i // PB -_deres_st) i (l_ i // PB -_hans_st) i (l_ i // PB -_hendes_st) i (l_ i // PB -_med_st) i (l_ i // PB -_ny_st) i (l_ i // PB -_skifte_st) i (l_ i // PB -_skift_st) i (l_ i // PB -_skifter_st) i (l_ i // PB - st) i (l_over i // PB "der er stil over ham" - Ast) i (l_ i // PB fægtestil, rokokkostil - st) i (lart i // PB -forest) i (l e // PB -livsst) i (l i // PB - st) i (lling++ e // PB livsstilling - vent) i (l i // PB slangeventil - st) i (le i: // PB stile - ju) i (ce // PB juice - skip the i - soft) i (ce aj // PB softice - s) i (kC e // PB sikre - p) is (_ es // PB pis - L08) is (+ is // PB spis - l) igh (ter aj // PB -luksusl) i (ner aj // PB - n) ij (megen aj // PB Nijmegen - v) ie (tnam jE // PB - v) ie (t_cong jE // PB - hipp) ie i // PB silent e - p) ie (destal i // PB silent e - pav) ill (o ilj // PB pavillon - br) ill (ere ilj / PB brillere - d) i (sk e // PB købmandsdisk - d) i (skrepans i // PB - d) i (skva i // PB diskvalificere - d) i (skrimi i // PB diskriminere - d) i (skett i // PB diskette - d) i (sko i // PB diskotek, diskodans - d) i (sL10a i // PB diskant - ind) i (sk i // PB - jord) i (sk i // PB - tw) i (st e // PB - d) i (sku i // PB diskutere - d) i (skret i // PB - kr) i (cket e // PB - d) i (ngo e // PB - konf) i (skere i // PB + _t) i (n e // tinfolie + t) i (nL11 i // Tina, Tine + 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 // + 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 // +gudhjælpem) ig =aI // + 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 // + t) ime (out aIm // + r) i (ley aI // name + s) i (d_ e // sid + s) i (den_ ?i // siden + 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" + _st) i (l_over_ham i // + _st) i (l_over_deC i // "stil over" det/dem/deres + er_st) i (l_over_ i // "der er stil over" +var_st) i (l_over_ i // "der var stil over" +mere_st) i (l_over_ i // "der er mere stil over" +har_st) i (l_ i // +havde_st) i (l_ i // + best) i (l e // bestille + st) i (l_ham e // verb - stil ham om + st) i (l_op_ e // verb + ant) i i // antilope + sp) i (ld ?i // spilde + L08) i (le++ i // spile, stile + k) i (mse e // kimse + v) i (l_+ e // vil + hv) i (l+ i // hvil + nashv) ille el/2 // US city + hv) i (lk+ e // hvilken + v) ind (rue ind // + v) i (nter ?e // + v) i (ntre ?e // + v) id (st e // vidst - e and silent d + uv) i (s e // + v) i (st_ikke e // +// t) i (l e // til +projekt) i (l i // blyprojektiler + art) ille (ri il@ // artilleri + st) i (lfuld i // +// stil = "style" not the verb 'stil' = "put, place" +_min_st) i (l_ ?i // +_sin_st) i (l_ ?i // +_din_st) i (l_ ?i // +_jeres_st) i (l_ ?i // +_deres_st) i (l_ ?i // +_hans_st) i (l_ ?i // +_hendes_st) i (l_ ?i // +_med_st) i (l_ ?i // +_ny_st) i (l_ ?i // +_skifte_st) i (l_ ?i // +_skift_st) i (l_ ?i // +_skifter_st) i (l_ ?i // +_dansk_st) i (l ?i // +_have_st) i (l ?i // +_havde_st) i (l ?i // +_har_st) i (l ?i // + st) i (l_over ?i // "der er stil over ham" + _st) i (l_dem ?e // "stil dem derhenne" + _st) i (l_jer ?e // + _st) i (l_den ?e // + _st) i (l_mig ?e // + _st) i (l_os ?e // + _st) i (l_vores ?e // + Ast) i (l_ ?i // fægtestil, rokokkostil + st) i (lart i // +forest) i (l e // +livsst) i (l ?i // + st) i (lling++ e // livsstilling + vent) i (l ?i // slangeventil + ju) i (ce // juice - skip the i + soft) i (ce aI // softice + s) i (kC e // sikre + p) is (_ ?es // pis + L08) is (+ is // spis + l) igh (ter aI // +luksusl) i (ner aI // + n) ij (megen aI // Nijmegen + v) ie (tnam jE // + v) ie (t_cong jE // + hipp) ie i // silent e + p) ie (destal ?i // silent e + pav) ill (o ilj // pavillon + br) ill (ere ilj // brillere + d) i (sk e // købmandsdisk + d) i (skrepans i // + d) i (skva ?i // diskvalificere + d) i (skrimi ?i // diskriminere + d) i (skett ?i // diskette + d) i (sko ?i // diskotek, diskodans + d) i (sL10a ?i // diskant + ind) i (sk ?i // + jord) i (sk i // + tw) i (st e // + d) i (sku ?i // diskutere + d) i (skret ?i // + kr) i (cket e // + d) i (ngo e // + konf) i (skere ?i // pr) i (n e // prins, princip, print - d) ie (sel i // PB dieselolie - k) io (sk jV // PB kiosk - _suz) ie i // PB name - _ann) ie i // PB name - _robb) ie i // PB name -_melan) ie i // PB name - d) ie (trich i // PB name - h) igh aj // PB high school - cl) ive ajv // PB name - gr) imes ajms // PB name - bl) ithe a:jD // PB name -new_york_t) imes ajms // PB - or) ion 'iVn // PB - lou) is i // PB name - silent s - lou) is (a 'is // PB - lou) isiana isj'&n& // PB US state - lou) is (e 'is // PB - lou) ie i // PB - lesl) ie i // PB name - ronn) ie i // PB name - el) i (as 'i // PB name - idaho ajd&h'ow // PB - ivanhoe ajv@nh'ow // PB name - long_) island ajl@nd // PB -amnesty_) international intVn'&Son&l // PB - v) irtual (_reality '3tSu-@l/2 // PB - p) inup en'Vp // PB - w) ire ajV // PB + d) ie (sel ?i // dieselolie + k) io (sk jV // kiosk + _suz) ie i // name + _ann) ie i // name + _robb) ie i // name +_melan) ie i // name + d) ie (trich i // name + h) igh aI // high school + cl) ive aIv // name + gr) imes aIms // name + bl) ithe a:jD // name +new_york_t) imes aIms // + or) ion 'iVn // + lou) is i // name - silent s + lou) is (a 'is // + lou) isiana isj'&n& // US state + lou) is (e 'is // + lou) ie i // + lesl) ie i // name + ronn) ie i // name + el) i (as 'i // name + idaho aid&h'ow // + ivanhoe aIv@nh'ow // name + long_) island aIl@nd // +amnesty_) international intVn'&Son&l // + v) irtual (_reality '3tSu-@l/2 // + p) inup en'Vp // + w) ire aIV // fl) ir (t W: -// PB stressed i in words with final -il in da_list +// stressed i in words with final -il in da_list &) il ($p_alt++++ 'il // pædofil, ventil - only one stress marker because of "ventilation" &past) il ($p_alt++++ 'el // pastil - pap) illot (+ il'Vt // PB + pap) illot (+ il'Vt // -// PB final -iker in da_list: stressed previous syllable +// final -iker in da_list: stressed previous syllable &) iker ($p_alt++ =ikV // akademiker, teoretiker - &) iker (et$p_alt++ =ik''e // PB fabrikeret - &br) iker (e$p_alt++ =ik''e // PB fabrikere + &) iker (et$p_alt++ =ik''e // fabrikeret + &br) iker (e$p_alt++ =ik''e // fabrikere &) iker (er$p_alt+ ik'e // kommunikerer &m) iker (e$p_alt++ =ikV // polemikere(n) &t) iker (e$p_alt+ =ikV // fanatikere @@ -4664,22 +4879,22 @@ amnesty_) international intVn'&Son&l // PB &kar) iker (e$p_alt+ ik'er // karikere (verb) &tr) iker (e$p_alt+ =ikV // elektriker - k) i (et+ 'i // PB Tyrkiet - bol) i (via 'i // PB stressed - kas) i (no 'i // PB stressed -prosod) i 'i // PB prosodi, prosodien -_melod) i 'i // PB melodi -_parod) i 'i // PB parodi -_perfid) i 'i // PB perfidi -_rapsod) i 'i // PB rapsodi - værd) i 'i // PB - værd) ig i // PB -_abbed) i 'i // PB -_ortopæd) i 'i // PB ortopædi - swah) i (li 'i // PB stressed i -_hæmor) i (d 'i // PB hæmorider - _mil) i (ts 'i // PB stressed - henr) i (vende 'i PB stressed + k) i (et+ 'i // Tyrkiet + bol) i (via 'i // stressed + kas) i (no 'i: // stressed +prosod) i 'i // prosodi, prosodien +_melod) i 'i // melodi +_parod) i 'i // parodi +_perfid) i 'i // perfidi +_rapsod) i 'i // rapsodi + værd) i 'i // + værd) ig i // +_abbed) i 'i // +_ortopæd) i 'i // ortopædi + swah) i (li 'i // stressed i +_hæmor) i (d 'i // hæmorider + _mil) i (ts 'i // stressed + henr) i (vende 'i // stressed // stressed final i _akromegal) i 'i @@ -4698,7 +4913,7 @@ _staffel) i 'i _suffl) i 'i _zoofil) i 'i - // PB stressed final -pi + // stressed final -pi _autotyp) i 'i _bronkoskop) i 'i _daguerreotyp) i 'i @@ -4721,189 +4936,190 @@ _teleskop) i 'i _terap) i 'i _utop) i 'i -// PB stressed i in words with final -si in da_list +// stressed i in words with final -si in da_list &s) i ($p_alt 'i // fantasi, afasi -// v) i (sk e // PB viskelæder - _t) i (ske_ e // PB hviske og tiske - v) i (sne e // PB +// v) i (sk e // viskelæder + _t) i (ske_ e // hviske og tiske + v) i (sne e // l) i (e j - r) i (gti e // PB rigtigt -offentl) ig i // PB + r) i (gti ?e // rigtigt - short vowel - override ph_danish +offentl) ig i // as) i (e j t) i (øs s) i (on j - s) i (ar j' // PB passiar - c) i (a j // PB specialitet + s) i (ar j' // passiar + c) i (a j // specialitet des) ign ain - s) ign (al in // PB lyssignal + s) ign (al in // lyssignal ingen) i (ør - ant) igone 'igon@ // PB Antigone - Greek name + ant) igone 'igon@ // Antigone - Greek name image imidZ - _) institution enstituS'on // PB - institution enstituSon // PB + _) institution enstituS'on // + institution enstituSon // -// PB stressed i -mussol) i (ni 'i // PB - _præc) i (s 'i // PB stressed - _konc) i (s 'i // PB stressed - _av) i (s 'i // PB stressed -_krucif) i (ks 'i // PB stressed - _grav) i (d 'i // PB stressed +// 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 _test) i (kel 'i // PM stressed _test) i (kl 'i // PM plur. stressed -_molev) i (t 'i // PB stressed - molevitten -_marskand) i (s 'i // PB stressed - marskandiser -_princ) i (p 'i // PB stressed - _cyl) i (nd 'e // PB cylinder - stressed - fil) i (st 'i // PB filister - _el) i (te ''i // PB stressed - elitesoldat - _salv) ie 'i: // PB stressed - sort) ie (_ 'i // PB stressed, silent e - sort) i (e 'i // PB stressed sortien - _ol) i (ven 'i // PB stressed - _ol) i (via 'i PB name - stressed - _int) i (m 'i // PB -_legit) i (m 'i // PB stressed -_algor) i (tme 'i // PB stressed - _utop) i 'i // PB stressed -brintover) i (lte 'i // PB stressed - kam) i (lle 'i // PB stressed - mar) i (a 'i // PB stressed - dom) ing (o 'eng // PB stressed Santa Domingo - _rem) i (s 'i // PB stressed - remis, remise -kampan) i (le 'i // PB stressed -_ekspert) i (se ''i // PB -_entrepr) i (se 'i // PB - _mark) i (se 'i // PB -_muffed) i (se 'i // PB - _repr) i (se 'i // PB -_astero) i (de 'i // PB - rem) is (_ 'i // PB silent s (chess) - _mess) i (as 'i // PB - _mart) i (ni 'i // PB cocktail - _alb) i (no 'i // PB stressed - &skr) i (pt 'E // PB stressed - manuskript - L10am) i (lla 'i // PB Camilla, Kamilla - _alib) i 'i // PB alibi - _fob) i 'i // PB fobi -_konfl) i (kt 'i // PB stressed - _pap) i (r 'i // PB stressed - _tap) i (r 'i // PB stressed - _vels) i (gn 'i // PB stressed - _part) i (sk 'i // PB stressed - tah) i (ti 'i // PB - _just) i (ts 'i // PB - im) i (dlertid 'i // PB - _kul) i (ss 'i // PB kulisse - _abs) i (nt 'e // PB stressed - _musl) i (m 'i // PB stressed - _mag) i (_ 'i // PB magi - stressed i - _mag) i (en_ 'i // PB magien - stressed i -_polit) i 'i // PB politi, politik - stressed i - _civ) i (l 'i // PB stressed - civil - all) igevel 'i@vEl // PB stressed i - alligevel - _band) i (t 'i // PB bandit - _vedl) ige 'i@ // PB vedligeholde -dispon) i (bel 'i // PB stressed - eksig) i (bel 'i // PB stressed - fleks) i (bel 'i // PB stressed - fung) i (bel 'i // PB stressed - horr) i (bel 'i // PB stressed -irrevers) i (bel 'i // PB stressed -kompat) i (bel 'i // PB stressed - _inst) i (nkt 'e // PB -konvert) i (bel 'i // PB stressed - pen) i (bel 'i // PB stressed -perfekt) i (bel 'i // PB stressed - plaus) i (bel 'i // PB stressed -revers) i (bel 'i // PB stressed - sens) i (bel 'i // PB stressed -suggest) i (bel 'i // PB stressed - vis) i (bel 'i // PB stressed -_pyram) i (d 'i // PB pyramide - _medl) i (denhed 'i // PB medlidenhed - stressed - _omkr) i (ng ''e // PB stressed e in 'omkring' -_tyver) i 'i // PB stressed - kn) i (v i // PB kniv - _min) i (ster 'i // PB minister - stressed i - _mag) i (ster 'i // PB magister- stressed - _re) i (ster 'i // PB register - stressed ii -_distr) i (kt 'e // PB stressed - am) i (go 'i // PB amigo - magas) i 'i // PB magasin - _kap) i (tel 'i // PB stressed - _kap) i (tl 'i // PB kapitlet - stressed - _mask) i (n 'i // PB stressed - maskinskrive - asp) i (c 'i // PB aspic - only this word -_krokod) i (ll 'i // PB stressed - _sol) i (d 'i // PB solid - labyr) i (nt 'e // PB stressed - par) i (s 'i // PB - wal) i (s 'i // PB waliser -portug) i (s 'i // PB portugiser - kirg) i (s 'i // PB kirgiser - ryk) i (nd 'e // PB stressed - _art) i (k 'i // PB stressed - artikkel -_franc) i (sco 'i // PB -benzedr) i (n 'i // PB -_ekserc) i (ts 'i // PB - madr) i (d 'i // PB stressed - aspir) i (n 'i // PB stressed -ampicill) i (n 'i // PB stressed -valent) i (no ''i // PB name - _sus) ie i // PB name -michel) in EN // PB Michelinguide - houd) i (ni 'i // PB name - _) iron (_ ajVn // PB +_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 + _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 +kampan) i (le 'i // stressed +_ekspert) i (se ''i // +_entrepr) i (se 'i // + _mark) i (se 'i // +_muffed) i (se 'i // + _repr) i (se 'i // +_astero) i (de 'i // + 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 + all) igevel 'i@vEl // stressed i - alligevel + _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 +_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 + 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 +valent) i (no ''i // name + _sus) ie i // name +michel) in EN // Michelinguide + houd) i (ni 'i // name + _) iron (_ aIVn // .group ig -// PB general rule: final -ig [i] - silent g +// general rule: final -ig [i] - silent g ig (_ i // dejlig, rig - @) igt (_ it // PB dejligt + @) igt (_ it // dejligt // exceptions - ops) ig (t+ eg // PB opsigt - pl) ig (t+ eg // PB tavshedspligt - sv) ig (t+ eg // PB strømsvigt - _b) ig (_ eg // PB Big Ben + ops) ig (t+ eg // opsigt + pl) ig (t+ eg // tavshedspligt + sv) ig (t+ ?eg // strømsvigt + _b) ig (_ eg // Big Ben trods) ig i puds) ig i hids) ig i smuds) ig i - stad) ig i // PB stadigvæk - ns) ig (t+ eg // PB ansigt - døgen) igt ikt // PB + stad) ig i // stadigvæk + ns) ig (t+ eg // ansigt + døgen) igt ikt // puds) ig (t i // pudsigt - ds) ig (t+ eg // PB indsigt, udsigt - _d) ig (t eg // PB -helted) ig (t eg // PB - eddad) ig (t eg // PB -haikud) ig (t eg // PB -prosad) ig (t eg // PB -smæded) ig (t eg // PB -skæmted) ig (t eg // PB - opd) ig (t eg // PB - sn) ig ij // PB snigangreb - fatt) ig i // PB fattigdom - udk) ig ig // PB - p) ig (_ ik // PB - _l) ig (_stille ek // PB problem: lig = "dead body" and lig = the verb "lie" - _l) ig (_pænt ek // PB - _l) ig (_ordentligt ek // PB - _l) ig (_godt ek // PB - _l) ig (_roligt ek // PB - l) ight ajt // PB - m) ighty ajti // PB - fr) igea (r igi // PB frigear - ig (hed+ i // PB vittighed, evighed - _k) ig (_ ig // PB kig - l) ig (ram ig // PB milligram - l) ig (a++ ig // PB liga, obligat - ig (s i // PB silent g -rigsret - n) igger egV // PB nigger + ds) ig (t+ eg // indsigt, udsigt + _d) ig (t eg // + d) ig (te eg // kærlighedsdigte +helted) ig (t eg // + eddad) ig (t eg // +haikud) ig (t eg // +prosad) ig (t eg // +smæded) ig (t eg // +skæmted) ig (t eg // + opd) ig (t eg // + sn) ig ij // snigangreb + fatt) ig i // fattigdom + udk) ig ig // + p) ig (_ ik // + _l) ig (_stille ek // problem: lig = "dead body" and lig = the verb "lie" + _l) ig (_pænt ek // + _l) ig (_ordentligt ek // + _l) ig (_godt ek // + _l) ig (_roligt ek // + l) ight aIt // + m) ighty aIti // + fr) igea (r igi // frigear + 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 -// PB stress on previous syllable - around 400 words in da_list +// stress on previous syllable - around 400 words in da_list // -ig words with the prefix be- are handled by group b - the be- rule. // To keep the list short a large number of u- words were weeded out, // therefore u- is removed in group u before the word is translated @@ -4911,80 +5127,84 @@ skæmted) ig (t eg // PB // Any other syllable before the word reverts to normal stress &) ig ($p_alt++ =i // velærværdig, gudvelbehagelig - ige (++ i:@ // PB pige, pigen, stige, sige, lige - volt) ige 'i:S // PB - s) ige (++ i:@ // PB sigende - iger (+ i:V // PB piger, afskediger - p) igen i:3n // PB pigen -gensid) ig ij // PB maybe "j" should be removed - n) ige (ri ige // PB nigerianer - dir) ig (ent ig // PB - er) ige (re ig'e // PB erigeret - _n) iger (_ igV // PB Niger (river) -privil) ige ig'e // PB priviligeret - n) igeria ig'eRi& // PB - dil) igen (ce iS'AN // PB diligence + ige (++ i@- // pige, pigen, stige, sige, lige, berolige + iget (+ i@-D // beroliget + volt) ige 'i:S // + s) ige (++ i@- // sigende + iger (++ iV // piger, afskediger + _s) iger (_ i:r + p) igen (+ i@-n // pigen +gensid) ig i // + n) ige (ri ige // nigerianer + dir) ig (ent ig // + er) ige (re ig'e // erigeret + _n) iger (_ igV // Niger (river) +privil) ige ig'e // priviligeret + n) igeria ig'eRi& // + dil) igen (ce iS'AN // diligence kr) igs is - rol) ige iE // PB rolige, beroligende - rol) iger iV // PB beroliger - værd) ig (enstand 'ig // PB værdigenstand - yd) ig ij // PB tvetydigt, lydig -behænd) ig i // PB silent g - sned) ig ij // PB silent g - ld) ig i // PB heldig +// rol) ige iE // rolige, beroligende + rol) iger iV // beroliger + værd) ig (enstand 'ig // værdigenstand + yd) ig i // tvetydigt, lydig +behænd) ig i // silent g + sned) ig i // silent g + ld) ig i // heldig -// PB stressed e after -ig - red) ige (r ig'e // PB redigere - rr) ige (r ig'e // PB korrigere - nav) ige (r ig'e // PB navigere - dir) ige (r ig'e // PB dirigere -intell) ige (n ig'e // PB intelligent - ige (n+ ig'E // PB igen, igennem, herigennem - sn) ige (+ ij3 // PB - bol) ig (+ i // PB boligen - intr) ig (+ 'i // PB intrigen, intriger - silent g - d) ige (nde ij@ // PB nedværdigende - v) ige (n ij3 // PB vigen, mundvigen - st) ig (e+ ij // PB rangstigen - l) ig (ene ij // PB ligene - l) igg (e++ eg // PB - kr) ige (n i:@ // PB +// stressed e after -ig + red) ige (r ig'e // redigere + rr) ige (r ig'e // korrigere + nav) ige (r ig'e // navigere + dir) ige (r ig'e // dirigere +intell) ige (n ig'e // intelligent + ige (n_+ ig'E // igen, igennem, herigennem + ige (nn+ ig'?E // igennem, herigennem + f) igen i@-n // fruit + sn) ige (+ i@- // + bol) ig (+ i // boligen + intr) ig (+ 'i // intrigen, intriger - silent g + d) ige (nde i@- // nedværdigende + v) ige (n i@- // vigen, mundvigen + st) ige (+ i@- // rangstigen + l) ig (ene i@- // ligene + l) igg (e++ ?eg // + kr) ige (n i@- // .group in -// PB words ending with "ine" in da_list with $alt - stressed i +// words ending with "ine" in da_list with $alt - stressed i &) ine ($p_alt 'in3 // lavine &) ine (tryk$p_alt 'in@ // kabinetryk &) ine (r$p_alt 'inV // maskiner &) ine (re$p_alt in'e // vaccinere -// PB not the same word as "kabine" +// not the same word as "kabine" kab) ine (t in'E // kabinet -// PB words ending with "in" in da_list with $alt - stressed i - @) in ($p_alt 'in // baldakin, bekkasin +// words ending with "in" in da_list with $alt - stressed i + @) in ($p_alt+ '?in // baldakin, bekkasin, appelsin &) 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 // PB byzantinsk - vel) in (formeret en // PB - ind (hold en // PB klorindhold + &lat) in ($p_alt '?in // latin +byzant) in '?in // byzantinsk + vel) in (formeret en // + ind (hold en // klorindhold .group is -// PB words ending with -ist in da_list with $alt - stressed i +// words ending with -ist in da_list with $alt - stressed i &) ist ($p_alt+++ ''ist // bassist, specialist &) ist (ik$p_alt ist' // journalistik &) istike (re istik'e // sofistikeret, sofistikerede .group it -// PB words with final -it - stressed i - &) it ($p_alt 'it //PB bakelit - &) it (an$p_alt it' //PB samaritan - &) ition ($p_alt iS'on //PB definition - &) it (t$p_alt 'i //PB avoid double t - bakelitten [ b,ak@l'it@-n] +// words with final -it - stressed i + &) it ($p_alt '?it // bakelit + &) it (an$p_alt it' // samaritan + &) ition ($p_alt iS'on // definition + &) it (t$p_alt '?i // avoid double t - bakelitten [ b,ak@l'it@-n] .group iv - // PB stressed final -iv + // stressed final -iv _abort) iv 'iv _adapt) iv 'iv _adhæs) iv 'iv @@ -5010,542 +5230,555 @@ _perspekt) iv 'iv _regulat) iv 'iv _sport) iv 'iv _stat) iv 'iw +_adopt) iv 'iw .group j j j j (aw dZ - fi) j (i dZ // PB + fi) j (i dZ // ja (ck dZ& - _) jarvis dZA:ves // PB name - jitterbug dZidVbVg // PB - jingle dZeng3l // PB - jewel dZu:l // PB - jihad dZih'&t // PB - j (ennifer dZ // PB name - jenny dZEni // PB name - janey dZEjni // PB name - jennie dZEni // PB name - joy dZVj // PB joystick - _) josh dZVS // PB name - ja (mal dZ& // PB name - jerry dZeri // PB - jekyll dZek@-l // PB name dr. Jekyll - junction dZVnkS@n // PB - jamie dZEjmi // PB name - jerome Ser'om // PB name - French version - jacques Zak // PB name - French version - _) jolene dZOwl'i:n // PB name - joule dZu:l // PB - jambalaya dZAmb&l'aj& // PB - _) jake dZEjk // PB name - _) jakel j&k-@l // PM mester Jakel - _) jill dZil // PB name + _) jarvis dZA:ves // name + jitterbug dZidVbVg // + jingle dZeng3l // + jewel dZu:l // + jihad dZih'&t // + j (ennifer dZ // name + jenny dZEni // name + janey dZEjni // name + jennie dZEni // name + joy dZVj // joystick + _) josh dZVS // name + ja (mal dZ& // name + jerry dZeri // + jekyll dZek@-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& // + _) jake dZEjk // name + _) jakel j&k@l // PM mester Jakel + _) jill dZIl // name j (ob dZ john dZVn - johnny dZVni // PB name + johnny dZVni // name joe dZ0w - jackie dZ&ki // PB - jones dZ0wns // PB - junkie dZVnki // PB - j (unk dZ // PB junkaktie - j (unkt j // PB junktur, konjunktion - jo (ckey dZV // PB - _) ji (m_ dZe // PB - _) ji (ms_ dZe // PB - jimmy dZemi // PB - jimmie dZemi // PB - _) j (eff dZ // PB - j (azz dZ // PB - nava) j (o h // PB - _) je (t dZE // PB jetfly - firma) je (t dZE // PB - jumbo) je (t dZE // PB - ø) j (et j // PB øjet, overtøjet - j (ungl dZ // PB jungle - _) jersey (_ dZW:si // PB New Jersey - _) jersey (s_ dZW:si // PB New Jerseys - jersey (k jErsi // PB jerseyko - jeep dZi:b // PB Jeep (American car) - _) juan Su'AN // PB don juan - joke dZWwk // PB joke, joker - derh) j (emme 'j // PB stressed j - en) j (ambe S // PB enjambement + jackie dZ&ki // + jones dZ0wns // + junkie dZVnki // + j (unk dZ // junkaktie + j (unkt j // junktur, konjunktion + jo (ckey dZV // + _) ji (m_ dZI // + _) ji (ms_ dZI // + jimmy dZImi // + jimmie dZImi // + _) j (eff dZ // + j (azz dZ // + nava) j (o h // + _) je (t dZE // jetfly + firma) je (t dZE // + jumbo) je (t dZE // + ø) j (et j // øjet, overtøjet + j (ungl dZ // jungle + _) jersey (_ dZW:si // New Jersey + _) jersey (s_ dZW:si // New Jerseys + jersey (k jErsi // jerseyko + jeep dZi:b // Jeep (American car) + _) juan Su'AN // don juan + joke dZWwk // joke, joker + derh) j (emme 'j // stressed j + en) j (ambe S // enjambement ro) j (ekt S // projekt a) j (ou S' // ajour - j (asmin S // PB - j (ongl S // PB jonglør - j (ournal S // PB journal - ma) j (or j' // PB major - j (uice dZ //PB juice - juke (boks dZu:k // PB jukeboks - _) jer (_ jEr // PB jer - er swallowed by other rules - jamsession dj&:ms'eSj@n // PB - jardiniere SjArdinj'E:r // PB jardiniere - jeton Sjet'VN // PB - jargon SjArg'VN // PB - janeiro Sen'Ero // PB - jugere SyS'eV // PB - _) jalousi S&lus'i // PB jalousi - @) jalousi S&lusi // PB magtjalousi - jamaica S&m'ajk& // PB - joint dZVjnt // PB - _) james dZEjms // PB - jay dZEj // PB name - jess dZEs // PB Jess - jessie dZEsi // PB Jessie - jean dZi:n // PB Jean, jeans - jeanne dZi:n // PB name (English) - jea (nette S&' // PB name (Danish) - nin) j (a dZ // PB - jeanne (_d' %S&:n // PB Jeanne D'Arc - jeanot S&n'o // PB name - jaubert Sob'Er // PB name - jehova jeh'ov& // PB + j (asmin S // + j (ongl S // jonglør + j (ournal S // journal + ma) j (or j' // major + j (uice dZ // juice + juke (boks dZu:k // jukeboks + _) jer (_ jEr // jer - er swallowed by other rules + jamsession dj&:ms'eSj@n // + jardiniere SjArdinj'E:r // jardiniere + jeton Sjet'VN // + jargon SjArg'VN // + janeiro Sen'Ero // + jugere SyS'eV // + _) jalousi S&lus'i // jalousi + @) jalousi S&lusi // magtjalousi + jamaica S&m'aIk& // + joint dZVjnt // + _) james dZEjms // + jay dZEj // name + jess dZEs // Jess + jessie dZEsi // Jessie + jean dZi:n // Jean, jeans + jeanne dZi:n // name (English) + jea (nette S&' // name (Danish) + nin) j (a dZ // + jeanne (_d' %S&:n // Jeanne D'Arc + jeanot S&n'o // name + jaubert Sob'Er // name + jehova jeh'ov& // .group k k k - kk k - kanterel kant@r'&#l // PB - kumquat kVmkwVd // PB - kakerla (k kak@l'a // PB - &) kvarter kvarter // PB kommandokvarter - klos (_hold klVs // PB på klos hold + kk g // bækkenet [b'?Eg@n@-D] + s) k g // skrive + kanterel kant@r'&#l // + kumquat kVmkwVd // + kakerla (k kak@l'a // + &) kvarter kvarter // kommandokvarter + klos (_hold klVs // på klos hold _spe) k (takk ' // silent k, stresssed a - spektakkel _spe) k (takl ' // silent k, stressed a - spektakler spe) k (takk // silent k - spektakkel spe) k (takl // silent k - spektakler &) k k // after stressed vowel - _) kate (_ kEjt // PB name - karaoke k&r&'ouki // PB - krysantemum krYs'&nt@mOm // PB - krysantemumm krYs'&nt@mOm // PB - kontinuum kVnt'inuOm // PB - knight nAjt // PB name - knox nVgs // PB Fort Knox - knock nVk // PB knockout - the_) kid ked // PB Billy the Kid - keith ki:T // PB name - kilimanjaro kilim&ndZ'Aro // PB - _) kermit kW:met // PB Muppet name + _) kate (_ kEjt // name + karaoke k&r&'ouki // + krysantemum krYs'&nt@mOm // + krysantemumm krYs'&nt@mOm // + kontinuum kVnt'inuOm // + knight nAjt // name + knox nVgs // Fort Knox + knock nVk // knockout + the_) kid ked // Billy the Kid + keith ki:T // name + kilimanjaro kilim&ndZ'Aro // + _) kermit kW:met // Muppet name -.group l // PB l changed to l/3 in ph_danish +.group l // l changed to l/3 in ph_danish l l ll l - _a) llende lj'End3 // PB name + _a) llende lj'End3 // name + a) lli (er lj // allieret + a) li (e lj // italiener TEST -// PB nouns in da_list with final -log - stressed o +// nouns in da_list with final -log - stressed o // A lot of these can have a stressed i added (-gi rule in group g) &) log ($p_alt l'o // nekrolog (silent g) // not a silent g followed by i &) log (i$p_alt log' // mytologi + &) log (isk$p_alt l'o // psykologisk -// PB nouns in da_list with final -let - stressed e - &) let ($p_alt l'Et // amulet - &) let (t$p_alt l'E // avoid double t - toilettet -cabrio) let l'E // PB silent t -fiskefi) let le // PB silent t -søtungefi) let le // PB silent t -oksefi) let le // PB silent t -stegsfi) let le // PB silent t - tykstegsfilet -spættefi) let le // PB silent t - rødspættefilet -skrubbefi) let le // PB silent t -svinefi) let le // PB silent t -lammefi) let le // PB silent t -kyllingefi) let le // PB silent t -dyrefi) let le // PB silent t -hjortefi) let le // PB silent t -hestefi) let le // PB silent t +// nouns in da_list with final -let - stressed e + &) let ($p_alt l'?Et // amulet + &) lett ($p_alt l'?Et // amuletter + &) let (t$p_alt l'?E // avoid double t - toilettet +cabrio) let l'E // silent t +fiskefi) let le // silent t +søtungefi) let le // silent t +oksefi) let le // silent t +stegsfi) let le // silent t - tykstegsfilet +spættefi) let le // silent t - rødspættefilet +skrubbefi) let le // silent t +svinefi) let le // silent t +lammefi) let le // silent t +kyllingefi) let le // silent t +dyrefi) let le // silent t +hjortefi) let le // silent t +hestefi) let le // silent t - s) l l/2 // PB add a bit more to l after s - f) l l/2 // PB add a bit more to l after f - b) l l/2 // PB add a bit more to l after b - &) ld (er l // PB silent d - anmelder - sø) lv l // PB silent v - to) lv l // PB silent v - se) lv l // PB selv, selvfølgelig, selvhjælp - se) lve lv3 // PB selve, selvet +// s) l l/2 // add a bit more to l after s +// f) l l/2 // add a bit more to l after f +// b) l l/2 // add a bit more to l after b + &) ld (er l // silent d - anmelder + sø) lv l // silent v + to) lv l // silent v + se) lv l // selv, selvfølgelig, selvhjælp + se) lve lv3 // selve, selvet bo) ld ld so) ld (at ld - leg (_ laj // PB leg, kysseleg, ligbleg - leger (_ lajV // PB leger - lege (ring leg'e // PB stressed - _o) leg lEg // PB name - læg (præd lEj // PB lægprædikant - k) læg lEj // PB - legem (C lEj@m // PB legemsdel - lotion l3uSjn // PB håndlotion - lorraine loRE:n // PB name - lizzie lisi // PB name - larry l/2&*i // PB name - leavenworth lEv@nwW:3T // PB - labour lEjbV // PB British party - bi) llard liard // PB game - he) lg (e lj // PB Helge, helgen - lincoln lenkVl/2n // PB name - _) lee (_ li: // PB the name Lee - mar) lee (n l'i: // PB name - _) leed (s li:d // PB city - @) levere leveV // PB - ley li // PB volley - long (_island lVN // PB - little led@l // PB Little Big Horn - lounge lawndZ // PB British word - _) lady lEjdi // PB - jern) lady lEjdi // PB - g) ladys l&dis // PB name - mac_) leod l'awd // PB MacLeod - name - lucky lVki // PB Lucky Strike - _) lake (_ lEjk // PB Salt Lake - lloyd lVjd // PB name - limoges lim'o:Z // PB - livingstone leveNst,3:wn // PB name - leicester lEstV // PB name - ludlow lVdlow // PB name - lautrec lotr'Ek // PB name - _) lionel lae3nEl // PB name - _marp) le @l // PB name - skiff) le @l // PB skifflegruppe + leg (_ laI // leg, kysseleg, ligbleg + leger (_ laIV // leger + lege (ring leg'e // stressed + _o) leg lEg // name + læg (præd lEj // lægprædikant + k) læg lEj // + legem (C lEj@m // legemsdel + lotion l3uSjn // håndlotion + lorraine loRE:n // name + lizzie lisi // name + larry l/2&*i // name + leavenworth lEv@nwW:3T // + labour lEjbV // British party + bi) llard liard // game + he) lg (e lj // Helge, helgen + lincoln lenkVl/2n // name + _) lee (_ li: // the name Lee + mar) lee (n l'i: // name + _) leed (s li:d // city + @) levere leveV // + ley li // volley + long (_island lVN // + little led@l // Little Big Horn + lounge lawndZ // British word + _) lady lEjdi // + jern) lady lEjdi // + g) ladys l&dis // name + mac_) leod l'awd // MacLeod - name + lucky lVki // Lucky Strike + _) lake (_ lEjk // Salt Lake + lloyd lVjd // name + limoges lim'o:Z // + livingstone leveNst,3:wn // name + leicester lEstV // name + ludlow lVdlow // name + lautrec lotr'Ek // name + _) lionel lae3nEl // name + _marp) le @l // name + skiff) le @l // skifflegruppe .group m - m m // PB m? -> m + m m // m? -> m mm m - o) mm (øble m||m // PB ommøblere - melle) mm m|m // PB mellemmåltid - mm (assage m|m // PB lemmassage + o) mm (øble m||m // ommøblere + melle) mm m|m // mellemmåltid + mm (assage m|m // lemmassage // m (A m - gour) mand %mAN // PB gourmand - _gour) mand m''AN // PB gourment - _) mannequin m&n@k'EN // PB - mannequin m&n@kEN // PB - _) mere (_ mer // PB mere - matine m&tin'e // PB - _) meget (_ ma:j@D // PB meget - _) megen (_ ma:j@n // PB megen - _) medea med'E:& // PB Medea - montgomery mVndg'Vmri // PB - mareridt mA:@rit // PB - _) mc (C@ m&k // PB McDonald - musketer musget'er // PB musketer - milkshake melkSEjk // PB - _) mike (_ majk // PB Mike - _) mike (s_ majk // PB Mikes - mail mEjl // PB - e_) mail %mEjl // PB don't put stress on "mail" + gour) mand %mAN // gourmand + _gour) mand m''AN // gourment + _) mannequin m&n@-k'EN // + mannequin m&n@-kEN // + _) mere (_ mer // mere + matine m&tin'e // + _) meget (_ ma:j@D // meget + _) megen (_ ma:j@n // megen + _) medea med'E:& // Medea + montgomery mVndg'Vmri // + mareridt mA:@rit // + _) mc (C@ m&k // McDonald + musketer musget'er // musketer + milkshake melkSEjk // + _) mike (_ maIk // Mike + _) mike (s_ maIk // Mikes + mail mEjl // + e_) mail %mEjl // don't put stress on "mail" montre mO:ntrV - mayday mEjdE:j // PB - miami m&j'&:mi // PB - milwaukee melw'Oki // PB - machete m&S'Ed // PB - miguel _^_ES // PB - madero _^_ES // PB - money mVni // PB - makeu (p mEjk'V // PB - _) matild m&t'ild // PB Matilde, Matilda - madagaskar m&d&g'&sk& // PB - marilyn m&rilen // PB - _) maine mEjn // PB US state - murdoch mWdVk // PB name - melbourne mEl/2bWn // PB city - monroe mVnr'Ow // PB name - matthew m&Tju // PB name - murphy mWfi // PB name - murray mVri // PB name - molyneux mVlinju: // PB name - michelle miS'El // PB name - murphey mWfi // PB name - maurice mor'is // PB name - maupassant mop&s'AN // PB name - murph mWf // PB nickname - marjorie mAdZOri // PB name - montpellier _^_fr // PB - mpson msVn // PB Thompson + mayday mEjdE:j // + miami maI'&mi // + milwaukee melw'Oki // + machete m&S'Ed // + miguel _^_ES // + madero _^_ES // + money mVni // + makeu (p mEjk'V // + _) matild m&t'ild // Matilde, Matilda + madagaskar m&d&g'&sk& // + marilyn m&rilen // + _) maine mEjn // US state + murdoch mWdVk // name + melbourne mEl/2bWn // city + monroe mVnr'Ow // name + matthew m&Tju // name + murphy mWfi // name + murray mVri // name + molyneux mVlinju: // name + michelle miS'El // name + murphey mWfi // name + maurice mor'is // name + maupassant mop&s'AN // name + murph mWf // nickname + marjorie mAdZOri // name + montpellier _^_fr // + mpson msVn // Thompson marseille maRs'E:j - musical mju:sik3l // PB - mahogni m&h'oni // PB - manager m&nedZV // PB - moulin mul'&N // PB Moulin Rouge - _) mouse maws // PB Mickey Mouse - makaroni mak3r'Vni // PB - midnight mednajt // PB -single_) malt mOlt // PB whisky - massachusetts m&s&tj'usEts // PB - _) muppet mVpet // PB - mother mVDV // PB + musical mju:sik3l // + mahogni m&h'oni // + manager m&nedZV // + moulin mul'&N // Moulin Rouge + _) mouse maws // Mickey Mouse + makaroni mak3r'Vni // + midnight mednaIt // +single_) malt mOlt // whisky + massachusetts m&s&tj'usEts // + _) muppet mVpet // + mother mVDV // .group me -// PB General rule for words with -ment - &) ment m'ent // PB element, segment +// General rule for words with -ment + &) ment m'ent // element, segment -// PB exceptions for the -ment rule (French words) -arrange) ment mAN // PB arrangement -avance) ment mAN // PB avancement -avertisse) ment mAN // PB avertissement -change) ment mAN // PB changement -departe) ment mAN // PB departement -deplace) ment mAN // PB deplacement -detache) ment mAN // PB detachement -divertisse) ment mAN // PB divertissement -engage) ment mAN // PB engagement -enjambe) ment mAN // PB enjambement -etablisse) ment mAN // PB etablisseement -guverne) ment mAN // PB guvernement +// exceptions for the -ment rule (French words) +arrange) ment mAN // arrangement +avance) ment mAN // avancement +avertisse) ment mAN // avertissement +change) ment mAN // changement +departe) ment mAN // departement +deplace) ment mAN // deplacement +detache) ment mAN // detachement +divertisse) ment mAN // divertissement +engage) ment mAN // engagement +enjambe) ment mAN // enjambement +etablisse) ment mAN // etablisseement +guverne) ment mAN // guvernement gour) met me kompli) ment mAN - regle) ment mAN // PB reglement - regle) mente (ret ment'e // PB reglementeret -abonne) ment mAN // PB reglement -instru) mentel mentel // PB instrument -katonne) ment mAN // PB katonnement -klasse) ment mAN // PB klassement -konnosse) ment mAN // PB konnossement - lave) ment mAN // PB lavement - møble) ment mAN // PB møblement -nivelle) ment mAN // PB nivellement - posse) ment mAN // PB possement -raffine) ment mAN // PB raffinement -ressenti) ment mAN // PB ressentiment -ræsonne) ment mAN // PB ræsonnement -signale) ment mAN // PB signalement - sorti) ment mAN // PB sortiment -supple) ment mAN // PB supplement -tempera) ment mAN // PB temperament -trakte) ment mAN // PB traktement -bombarde) ment mAN // PB bombardement -_arrange) ment m'AN // PB arrangement -_avance) ment m'AN // PB avancement -_avertisse) ment m'AN // PB avertissement -_change) ment m'AN // PB changement -_departe) ment m'AN // PB departement -_deplace) ment m'AN // PB deplacement -_detache) ment m'AN // PB detachement -_divertisse) ment m'AN // PB divertissement -_engage) ment m'AN // PB engagement -_enjambe) ment m'AN // PB enjambement -_etablisse) ment m'AN // PB etablisseement -_guverne) ment m'AN // PB guvernement + regle) ment mAN // reglement + regle) mente (ret ment'e // reglementeret +abonne) ment mAN // reglement +instru) mentel mentel // instrument +katonne) ment mAN // katonnement +klasse) ment mAN // klassement +konnosse) ment mAN // konnossement + lave) ment mAN // lavement + møble) ment mAN // møblement +nivelle) ment mAN // nivellement + posse) ment mAN // possement +raffine) ment mAN // raffinement +ressenti) ment mAN // ressentiment +ræsonne) ment mAN // ræsonnement +signale) ment mAN // signalement + sorti) ment mAN // sortiment +supple) ment mAN // supplement +tempera) ment mAN // temperament +trakte) ment mAN // traktement +bombarde) ment mAN // bombardement +_arrange) ment m'AN // arrangement +_avance) ment m'AN // avancement +_avertisse) ment m'AN // avertissement +_change) ment m'AN // changement +_departe) ment m'AN // departement +_deplace) ment m'AN // deplacement +_detache) ment m'AN // detachement +_divertisse) ment m'AN // divertissement +_engage) ment m'AN // engagement +_enjambe) ment m'AN // enjambement +_etablisse) ment m'AN // etablisseement +_guverne) ment m'AN // guvernement _gour) met m'e _kompli) ment m'AN -endosse) ment m'AN // PB -_regle) ment m'AN // PB reglement -_regle) mente (re ment'e // PB reglementeret, reglementerede -_abonne) ment m'AN // PB reglement -_instru) mentel ment'el // PB instrument -_katonne) ment m'AN // PB katonnement -_klasse) ment m'AN // PB klassement -_kanosse) ment m'AN // PB kanossement - _lave) ment m'AN // PB lavement -_møble) ment m'AN // PB møblement -_nivelle) ment m'AN // PB nivellement -_posse) ment m'AN // PB possement -_raffine) ment m'AN // PB raffinement -_ressenti) ment m'AN // PB ressentiment -_ræsonne) ment m''AN // PB ræsonnement -_signale) ment m''AN // PB signalement -_sorti) ment m'AN // PB sortiment -_supple) ment m'AN // PB supplement -_tempera) ment m'AN // PB temperament -_trakte) ment m'AN // PB traktement -_bombarde) ment m'AN // PB bombardement - men (tusias mAN // PB filmentusiast +endosse) ment m'AN // +_regle) ment m'AN // reglement +_regle) mente (re ment'e // reglementeret, reglementerede +_abonne) ment m'AN // reglement +_instru) mentel ment'el // instrument +_katonne) ment m'AN // katonnement +_klasse) ment m'AN // klassement +_kanosse) ment m'AN // kanossement + _lave) ment m'AN // lavement +_møble) ment m'AN // møblement +_nivelle) ment m'AN // nivellement +_posse) ment m'AN // possement +_raffine) ment m'AN // raffinement +_ressenti) ment m'AN // ressentiment +_ræsonne) ment m''AN // ræsonnement +_signale) ment m''AN // signalement +_sorti) ment m'AN // sortiment +_supple) ment m'AN // supplement +_tempera) ment m'AN // temperament +_trakte) ment m'AN // traktement +_bombarde) ment m'AN // bombardement + men (tusias mAN // filmentusiast .group n n n -// PB words with final -ni in da_list - stressed i +// 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& // PB stressed o - biki) ni =ni // PB - ma) ni (o+ =ni // PB maniodepressiv +_harmo) nika =nik& // stressed o + biki) ni =ni // + ma) ni (o+ =ni // maniodepressiv -// PB nouns with final -ner ("er" has been removed) in da_list +// 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 -// PB general rule: nk = [N] before t +// General rule: N after ko before k + ko) n (k N // konkurrence, konkret + +// general rule: nk = [N] nk (t N // adjunkt, sankt - nk (tio nk // PB funktionel + nk (tio nk // funktionel ka) n_ // silent n - kan - ræso) nn n // PB ræsonnement - A) nn n // PB venner, denne - gra) n n // PB grannål 2 * n - @) nien =ni3-n // PB Albanien, Rumænien - stress on previous syllable - @) nier =niV // PB armenier - stress on previous syllable + ræso) nn n // ræsonnement + A) nn n // venner, denne + gra) n n // grannål 2 * n + @) nien =ni@-n // Albanien, Rumænien - stress on previous syllable + @) nier =niV // armenier - stress on previous syllable newton nj'u:t@n - nylon najlVn + nylon naIlVn neglige negliS'e nightingale _^_EN - _) nag (_ n&:j // PB nag - nougat nug'& // PB - _) naiv n&'iv // PB naiv - @) naiv n&iv // PB bundnaiv - new nju // PB newton, New York - newzealand njus'el&n // PB - neil ni:l // PB name Neil, O'Neil - nostradamus nVstrAd'&mus // PB name - _) nicole nik'Vl // PB name - _) nicol (ette nikol // PB - _) neville nEvel/2 // PB name - _) nellie nEli // PB name - _) nightengale najt@-ngEjl // PB name - _) niagara naj'&g3ra // PB - _) nigel najdZ3l // PB name - _) noreen nOwr'i:n // PB name - _) norwich nVritS // PB city + _) nag (_ n&:j // nag + nougat nug'& // + _) naiv n&'iv // naiv + @) naiv n&iv // bundnaiv + new nju // newton, New York + newzealand njus'el&n // + neil ni:l // name Neil, O'Neil + nostradamus nVstrAd'&mus // name + _) nicole nik'Vl // name + _) nicol (ette nikol // + _) neville nEvel/2 // name + _) nellie nEli // name + _) nightengale naIt@-ngEjl // name + _) niagara naI'&g3ra // + _) nigel naIdZ3l // name + _) noreen nOwr'i:n // name + _) norwich nVritS // city .group nd -// PB general rule: nd = [n] after a vowel +// general rule: nd = [n] after a vowel A) nd n // ond, onde, sunde // exceptions - a) nd (ere_ nd // PB ekspandere - e) nd (ere_ nd // PB prætendere - A) nd (erer_ nd // PB ekspanderer, prætenderer - æ) nd (ere+ n // PB englændere -happy_e) nd (_ nd // PB happy end - en_ru) nd (e nd // PB en runde -ste_ru) nd (e nd // PB første runde -james_bo) nd nd // PB James Bond - we) nd (y nd // PB name - gwe) nd (a nd // PB name - pa) nd (ora nd' // PB name - ama) nd (a =nd // PB name - a) nd (esbj nd // PB Andesbjergene - li) nd (y nd // PB name - va) nd (erbilt nd // PB name - _i) nd (y nd // PB name - Indy = Indiana Jones -chippe) ndale ndEjl // PB - a) nd (alus nd // PB Andalusien - i) nd (one nd // PB Indonesien - i) nd (oeu nd // PB indoeuropæer - inte) nd (ant nd // PB -glissa) nd (o =nd // PB - ma) nd (arin nd // PB - li) nd (a nd // PB - va) nd (al nd // PB - ke) nd (is nd // PB - pa) nd (a nd // PB - ro) nd (el nd // PB rondel - mu) nd (ering nd // PB - ska) nd (inav nd // PB - ge) nd (an nd // PB gendanne - fu) nd (a nd // PB fundament - o) nd (i nd // PB aircondition - me) nd (oza nd' // PB name - ci) nd (y nd // PB name - nd (ag nd // PB morgendagen - lege) nd (arisk nd // PB - komma) nd nd // PB kommandant - _bo) nd (_ nd // PB - ba) nd (age nd // PB bandage - ska) nd (a nd // PB skandale, skandaløs - ga) nd (a nd // PB propaganda - sa) nd (al nd // PB + a) nd (ere_ nd // ekspandere + e) nd (ere_ nd // prætendere + A) nd (erer_ nd // ekspanderer, prætenderer + æ) nd (ere+ n // englændere +happy_e) nd (_ nd // happy end + en_ru) nd (e nd // en runde +ste_ru) nd (e nd // første runde +james_bo) nd nd // James Bond + we) nd (y nd // name + gwe) nd (a nd // name + pa) nd (ora nd' // name + ama) nd (a =nd // name + a) nd (esbj nd // Andesbjergene + li) nd (y nd // name + va) nd (erbilt nd // name + _i) nd (y nd // name - Indy = Indiana Jones +chippe) ndale ndEjl // + a) nd (alus nd // Andalusien + i) nd (one nd // Indonesien + i) nd (oeu nd // indoeuropæer + inte) nd (ant nd // +glissa) nd (o =nd // + ma) nd (arin nd // + tre) nd (y nd // + li) nd (a nd // + va) nd (al nd // + ke) nd (is nd // + pa) nd (a nd // + ro) nd (el nd // rondel +salama) nd nd // salamander + mu) nd (ering nd // + ska) nd (inav nd // + ge) nd (an nd // gendanne + fu) nd (a nd // fundament + o) nd (i nd // aircondition + me) nd (oza nd' // name + ci) nd (y nd // name + nd (ag nd // morgendagen + lege) nd (arisk nd // + komma) nd nd // kommandant + _bo) nd (_ nd // + ba) nd (age nd // bandage + ska) nd (a nd // skandale, skandaløs + ga) nd (a nd // propaganda + sa) nd (al nd // A) nd (rin nd // ændring - sru) nd (e nd // PB æresrunde, forhandlingsrunde - ko) nd (ens nd // PB kondenseret - ha) nd (i nd // PB handicap, handikap - a) nd (y nd // PB name - A) ndn n // PB endnu -> [enu] - only one n - a) nd (el nd // PB andel, sandeltræ - ma) ndel n@l // PB - _ma) nde (la nd'e // PB name - vera) nd (a nd // PB - pa) nd (elok n // PB - e) nd (okri nd // PB endokrin - e) nd (oskop nd // PB endoskop - e) nd (ogen nd // PB endogen - e) nd (os nd // PB endossement - pe) nd (ul nd' // PB - norma) nd (i nd' // PB Normandiet - sa) nde (lig n3 // PB - A) nd (re nd // PB mindre, andre - _i) nd (ret n // PB - ply) nd (r n // PB plyndre, plyndring - sta) nd (+ n // PB opstandelse - ba) nd (emedlem nd // PB - nd (åse nd // PB tundåse - eje) nd (el nd // PB - fi) nd (el nd // PB findele - nd (else n // PB opfindelse - fi) nd (eløn n // PB - e) nd (e+ n // PB endeløs - iske) nd (erun =nd // PB name - pe) nd (ergast nd // PB name - he) nd (erson nd // PB name - te) nd (en nd // PB tronprætendent - we) nd (el nd // PB name - mira) nd (a nd // PB name - ko) nd (emnere nd // PB - ko) nd (olere nd // PB - fe) nd (er nd // PB - nea) nd (er =nd // PB neandertal - vi) nd (e n // PB kvinde, overvindelig - vi) nd (rik nd // PB vindrikker - e) nd (elig n // PB endelig - ferna) nd (o =nd // PB name - ve) ndig ndi // PB udvendig - å) nd (eli n // PB åndelig - nd (ig nd // PB behændig - nd (yr nd // PB dovendyr - ha) nd (el n // PB - y) ndig ndi // PB - a) nd (re nd // PB andre - nd (ida nd // PB kandidat - ste) nd nd // PB stendynge, stendige - ke) nd (el n // PB kendelse - pe) nd (i nd // PB appendiks - spe) nd (er nd // PB spendere - nd (ør nd // PB køkkendør - svi) nd (el n // PB - nd (om nd // PB ejendom, kondom - la) nd n // PB landområde - ko) nd (ol nd // PB kondolance - te) nd (ens nd // PB - nd (ød nd // PB stendød - fu) nd (er nd // PB fundere - u) nd (ne nd // PB bundne - bi) nd (e n // PB forbindelse - mi) nd (e n // PB mindelund - misu) nde (lig n // PB silent de - misundelig - ble) nd (e nd // PB blender - ba) nd (it nd // PB bandit - ve) nde (l n // PB anvendelig - mi) nde (li n // PB almindelig - ele) nd (ig nd // PB - nødve) nd (ig nd // PB - vi) nd (u nd // PB vindue - i) nd (oki nd // PB Indokina - i) nd (u nd // PB industri - evi) nde (li n@ // PB evindelig - y) nd (el n // PB begyndelse - ba) nd (el n // PB forbandelse - gru) ndig ndi // PB grundig - my) ndig ndi // PB myndighed + sru) nd (e nd // æresrunde, forhandlingsrunde + ko) nd (ens nd // kondenseret + ha) nd (i nd // handicap, handikap + a) nd (y nd // name + A) ndn n // endnu -> [enu] - only one n + a) nd (el nd // andel, sandeltræ + ma) ndel n@l // + _ma) nde (la nd'e // name + vera) nd (a nd // + pa) nd (elok n // + e) nd (okri nd // endokrin + e) nd (oskop nd // endoskop + e) nd (ogen nd // endogen + e) nd (os nd // endossement + pe) nd (ul nd' // + norma) nd (i nd' // Normandiet + sa) nde (lig n3 // + A) nd (re nd // mindre, andre + _i) nd (++ n // indret, indregistrere + i) nd (ivid nd // individualist + ply) nd (r n // plyndre, plyndring + sta) nd (+ n // opstandelse + ba) nd (emedlem nd // + nd (åse nd // tundåse + eje) nd (el nd // + fi) nd (el nd // findele + nd (else n // opfindelse + fi) nd (eløn n // + e) nd (e+ n // endeløs + iske) nd (erun =nd // name + pe) nd (ergast nd // name + he) nd (erson nd // name + te) nd (en nd // tronprætendent + we) nd (el nd // name + mira) nd (a nd // name + ko) nd (emnere nd // + ko) nd (olere nd // + fe) nd (er nd // + nea) nd (er =nd // neandertal + vi) nd (e n // kvinde, overvindelig + vi) nd (rik nd // vindrikker + e) nd (elig n // endelig + ferna) nd (o =nd // name + ve) ndig ndi // udvendig + å) nd (eli n // åndelig + nd (ig nd // behændig + nd (yr nd // dovendyr + ha) nd (el n // + y) ndig ndi // + a) nd (re nd // andre + nd (ida nd // kandidat + ste) nd nd // stendynge, stendige + ke) nd (el n // kendelse + pe) nd (i nd // appendiks + spe) nd (er nd // spendere + nd (ør nd // køkkendør + svi) nd (el n // + nd (om nd // ejendom, kondom + la) nd n // landområde + ko) nd (ol nd // kondolance + te) nd (ens nd // + nd (ød nd // stendød + fu) nd (er nd // fundere + u) nd (ne nd // bundne + bi) nd (e n // forbindelse + mi) nd (e n // mindelund + misu) nde (lig n // silent de - misundelig + ble) nd (e nd // blender + ba) nd (it nd // bandit + ve) nde (l n // anvendelig + mi) nde (li n // almindelig + ele) nd (ig nd // + nødve) nd (ig nd // + vi) nd (u nd // vindue + i) nd (oki nd // Indokina + i) nd (u nd // industri + evi) nde (li n@ // evindelig + y) nd (el n // begyndelse + ba) nd (el n // forbandelse + gru) ndig ndi // grundig + my) ndig ndi // myndighed mma) nd (o nd // kommando - mma) nd (er nd // PB kommandere - nd (ent nd // PB prætendent - u) nd (re nd // PB beundre - du) nd (re n // PB dundre - hu) nd (+ n // PB hundrede - hu) nd (yr nd // PB hundyr - hu) nd (jævel nd // PB - va) nd (re nd // PB vandretur - ma) nd (ag nd // PB - sø) nd (ag nd // PB + mma) nd (er nd // kommandere + nd (ent nd // prætendent + u) nd (re nd // beundre + du) nd (re n // dundre + hu) nd (+ n // hundrede + hu) nd (yr nd // hundyr + hu) nd (jævel nd // + va) nd (re nd // vandretur + ma) nd (ag nd // + sø) nd (ag nd // _i) nd (er_+ nd // inder - i) nd (erst+ n // PB - i) nd (erkreds+ n // PB -marska) nd nd // PB marskandiser - _bagi) nd nd // PB Bagindien + i) nd (erst+ n // + i) nd (erkreds+ n // +marska) nd nd // marskandiser + _bagi) nd nd // Bagindien adde) nd nd dimitte) nd nd divide) nd nd @@ -5554,95 +5787,98 @@ divide) nd nd revalide) nd nd subtrahe) nd nd -// PB general rule: nd = [nd] after a vowel before a +// general rule: nd = [nd] after a vowel before a A) nd (at nd // mandat - kvi) nd n // PB kvindagtig - va) nd (af n // PB vandafvisende - la) nd (ar n // PB landarbejder - hå) nd (ar n // PB håndarbejde + kvi) nd n // kvindagtig + va) nd (af n // vandafvisende + la) nd (ar n // landarbejder + hå) nd (ar n // håndarbejde -// PB takes away the d in 'bander' = 'gangs' - n => n? +// takes away the d in 'bander' = 'gangs' - n => n? // Neither 'bander' = swears nor 'bander' = gangs is correct // but a sentence like 'bander bander' (gangs swear) is understandable ba) nd (er n? - ba) nd (ens nd // PB - ba) nd (erne nd // PB -_en_ba) nd (e nd // PB -_den_ba) nd (e nd // PB - ba) nd (ekri nd // PB -krig, -kriminalitet, -kriger - ba) nd (euvæsen nd // PB - ba) nd (ero nd // PB banderole - ba) nde (leder+ nd3 // PB - ba) nde (medlem nd3 // PB - ba) nde (opgør nd3 // PB -tyveba) nde nd3 // PB -røverba) nde nd3 // PB -bjørneba) nde nd3 // PB -min_ba) nde nd3 // PB -din_ba) nde nd3 // PB -hele_ba) nde nd3 // PB hele banden -res_ba) nde nd3 // PB vores/jeres/deres bande - forba) nd (er n // PB -jeg_ba) nd (er n // PB - du_ba) nd (er n // PB - _i_ba) nd (er n // PB -_vi_ba) nd (er n // PB -_de_ba) nd (er n // PB -_man_ba) nd (er n // PB - sta) nd (ar nd // PB standard - keep the d + ba) nd (ens nd // + ba) nd (erne nd // +_en_ba) nde nd@- // +_den_ba) nde nd@- // + ba) nde (kri nd@- // -krig, -kriminalitet, -kriger + ba) nde (uvæsen nd@- // + ba) nde (ro nd@-' // banderole + ba) nde (leder+ nd@- // + ba) nde (medlem nd@- // + ba) nde (opgør nd@- // + ba) nde (vold nd@- // +tyveba) nde nd@- // +røverba) nde nd@- // +bjørneba) nde nd@- // +min_ba) nde nd@- // +din_ba) nde nd@- // +hele_ba) nde nd@- // hele banden +res_ba) nde nd@- // vores/jeres/deres bande + s_ba) nde nd@- // Johns bande + forba) nd (er n // +jeg_ba) nd (er n // + du_ba) nd (er n // + _i_ba) nd (er n // +_vi_ba) nd (er n // +_de_ba) nd (er n // +_man_ba) nd (er n // + sta) nd (ar nd // standard - keep the d i) nd (eks nd - i) nd (i nd // PB Indien, individ, indianer - ti) nd (in n // PB tinding - fi) nd (+ n // PB fejlfinding - i) nd (ig+ nd // PB spidsfindig, besindig - bi) nd (in n // PB forbinding - vi) nd (in n // PB udvinding + i) nd (i nd // Indien, individ, indianer + ti) nd (in n // tinding + fi) nd (+ n // fejlfinding + i) nd (ig+ nd // spidsfindig, besindig + bi) nd (in n // forbinding + vi) nd (in n // udvinding i) nd (imellem n // exception - i) nd (erl+ n // PB inderlig - ga) nd (ere nd // PB propagandere - ko) nd (i nd // PB konditori, kondicykel + i) nd (erl+ n // inderlig + ga) nd (ere nd // propagandere + ko) nd (i nd // konditori, kondicykel seku) nd nd .group ng ng N // general rule - ting, ring - - kæ) ng (uru ng // PB - nger (rig ngEr // PB hævngerrig - morge) ng (ry ng // PB - la) ngu (st ng'u // PB languster - vi) ng (ård ng // PB vingård - pa) ng (æa ng' // PB Pangæa - ng (rad ng // PB Leningrad - flami) ng (o =ng // PB stressed i - ra) ng (ere NS // PB - ta) ng (ent ng // PB - he) ng (em ng // PB hengemt - ng (ulv ng // PB køkkengulv - nav) ng (iv ng // PB navngive - ge) ng (iv+ ng // PB gengive - ng (ymnast ng // PB lagengymnastik - re) ng (ør ng // PB rengøring - ng (æld ng // PB gengæld - ng (ud nd // PB ørkengud - a) ng (iv ng // PB selvangivelse - ng (evær ng // PB maskingevær - ng (las ng // PB vinglas - he) ng (iv ng // PB hengiven - i) ngeni (ø nSin // PB ingeniør - eva) ng (el ng // PB evangelie - allo) ng (e NS // PB - A) ng (o ng // PB bongo, Congo, Ringo - _a) ng (A ng // PB angå - a) ng (iogr Ng // PB angiografi - cha) ng (ement Nsj // PB changement - ora) ng (e =Nsj // PB orange - ora) ngea (de Nsj'& // PB orangeade - _ra) ng (er Nsj // PB rangere + ora) ng (u =Ng // stressed previous vowel + ng (ænger ng // søvngænger + kæ) ng (uru ng // + nger (rig ngEr // hævngerrig + morge) ng (ry ng // + la) ngu (st ng'u // languster + vi) ng (ård ng // vingård + pa) ng (æa ng' // Pangæa + ng (rad ng // Leningrad + flami) ng (o =ng // stressed i + ra) ng (ere NS // + ta) ng (ent ng // + he) ng (em ng // hengemt + ng (ulv ng // køkkengulv + nav) ng (iv ng // navngive + ge) ng (iv+ ng // gengive + ng (ymnast ng // lagengymnastik + re) ng (ør ng // rengøring + ng (æld ng // gengæld + ng (ud nd // ørkengud + a) ng (iv ng // selvangivelse + ng (evær ng // maskingevær + ng (las ng // vinglas + he) ng (iv ng // hengiven + i) ngeni (ø nSin // ingeniør + eva) ng (el ng // evangelie + allo) ng (e NS // + A) ng (o ng // bongo, Congo, Ringo + _a) ng (A ng // angå + a) ng (iogr Ng // angiografi + cha) ng (ement Nsj // changement + ora) ng (e =Nsj // orange + ora) ngea (de Nsj'& // orangeade + _ra) ng (er Nsj // rangere ng (a ng - fa) ng (arm N // PB fangarme + fa) ng (arm N // fangarme fi) nger NV - _fi) ng (ere ng // PB fingeret - fi) ng (eren+ N // PB + _fi) ng (ere ng // fingeret + fi) ng (eren+ N // fi) ng (re =N fu) ng (er Ng // fungere ti) ng (ent Ng @@ -5652,44 +5888,62 @@ _man_ba) nd (er n // PB .group o o o - oo u: // PB English words like 'pool' - b) oogie ugi // PB boogie-woogie - w) oogie ugi // PB - w) oo u // PB Hollywood - oonagh un& // PB name - shamp) oo o // PB - nark) o o // PB narkoopgør - hall) o 'o // PB stressed - ky) o (to 'o // PB stressed - br) ooke uk // PB name - f) ood u:d // PB - fl) ood Vd // PB - bl) ood Vd // PB - fl) oor V: // PB - z) oo o: // PB zoologisk - kaz) oo 'u // PB - z) oo (m u: // PB - baz) oo 'u: // PB bazooka - m) oore V: // PB name - h) ood u:d // PB Robin Hood - dan) ois w'A // PB granddanois - g) oebbels Wb@ls // PB name - m) o (nste V // PB monster + +// Short o followed by double consonant + r) o (C%++ ?V // droppe, kroppe, skrotte + tr) os (sag+ os // + tr) os (skrift+ os // + o (ld+ ?V // hold, holde + o (mm+ ?V // komme, omme + +_noget_r) o (s_ ?V // + +// long o because of the a? + s) o (fa o: + + oo u: // English words like 'pool' + C) oog oV // toogtyve + b) oogie ugi // boogie-woogie + w) oogie ugi // + w) oo u // Hollywood + oonagh un& // name + shamp) oo ?o // + nark) o o // narkoopgør + hall) o '?o // stressed + ky) o (to 'o // stressed + br) ooke uk // name + f) ood u:d // + fl) ood Vd // + bl) ood Vd // + fl) oor V: // + z) oo o: // zoologisk + kaz) oo 'u // + z) oo (m u: // + baz) oo 'u: // bazooka + m) oore V: // name + h) ood u:d // Robin Hood + dan) ois w'A // granddanois + g) oebbels Wb@ls // name + m) o (nste ?V // monster + t) o (rna ?V // tornado // PB final -skop - stressed o &sk) op ($p_alt++ 'op // gyroskop &sk) op (i$p_alt op' // mikroskopi &tr) op ($p_alt++ 'op // misantrop, filantrop -// PB final -om in da_list - stressed o +// final -om in da_list - stressed o @) om ($p_alt+++ 'om // atom, diplom, syndrom - sark) om om // PB knoglesarkom + sark) om om // knoglesarkom -// PB final - ose - stressed o +// final - ose - stressed o &) ose ($p_alt+ 'o:s@ // hypnose &) ose+ (r$p_alt 'o:sV // hypnoser -// PB final -ode - stressed o +// final -isk: long o (ph_danish shortens the o) + o (tisk o: // gotisk, laotisk + +// final -ode - stressed o di) o (de 'o elektr) o (de 'o epis) o (de 'o @@ -5699,718 +5953,735 @@ elektr) o (de 'o pag) o (de 'o peri) o (de 'o -// PB general rule c/k + o + n + consonant = [V] - L10) o (nC V // PB konvoj, conga - L10) o (nCa o // PB kontakt - sek) ond (løjtnant 'ond // PB -// PB general rule consonant + o + double consonant: [V] - C) o (L03%+ V skodde, rolle, lodder - C) o (L03%a o rollator - bl) od oD // PB bloddonor - h) o (ll+ V // PB Holland - C) o (rr V // PB korrekt - L06) o (t V // PB pot - L06) o (tL11 o // PB pote, botaniker - r) o (C%++ V // PB droppe, kroppe, skrotte - tr) o (ssætning o // PB - tr) o (ts V // PB trotskist - _r) oll (_+ Owl // PB rock and roll - _r) oll (ing_stone oul // PB Rolling Stone(s) - _r) olls (_ Owls // PB Rolls Royce - kn) o (tt V // PB knotten +// general rule c/k + o + n + consonant = [V] + L10) o (nC V // konvoj, conga + L10) o (nCL11 O // kontakt, koncert + sek) ond (løjtnant 'ond // +// general rule consonant + o + double consonant: [V] + C) o (L03%+ ?V // skodde, rolle, lodder + r) o (L03%a++ ?o // rollator + bl) od ?oD // bloddonor + h) o (lla+ ?V // Holland + C) o (rr ?V // korrekt + gon) o (rr o // gonnorré + L06) o (t ?V // pot + sab) o (t o // sabotør +// L06) o (tL11 o // pote, botaniker + tr) o (ssætning o // + tr) o (ts V // trotskist + _r) oll (_+ Owl // rock and roll + _r) oll (ing_stone oul // Rolling Stone(s) + _r) olls (_ Owls // Rolls Royce + kn) o (tt ?V // knotten - foxtr) o (t V // PB - ren) omme (+ om'e // PB - ren) ommé (+ om'e // PB - C) o (C%et_++ V // PB jokket - C) o (bber_++ V // PB snobber -// C) o (L02%L04++ V // PB koffein - gr) o (ssi+ o // PB grossist - fr) o (ss++ o // PB frosset, frossen - fr) otte (++ ot'e // PB frottehåndklæde - stressed - m) o (sset++ o // PB - k) ommers (_ om'Ers // PB stressed - ap) o (llo++ 'V // PB stressed - k) o (mmerciel++ o // PB kommerciel - n) o (nC V // PB nonsens - C) o (L09n V // PB velkomne, nonne + foxtr) o (t ?V // + ren) omme (+ ?om'e // + ren) ommé (+ ?om'e // + C) o (C%et_++ ?V // jokket, rosset + C) o (bber_++ ?V // snobber + gr) o (ssi+ ?o // grossist + fr) o (ss++ ?o // frosset, frossen + fr) otte (++ ?ot'e // frottehåndklæde - stressed + m) o (sse+++ ?O // mosset, rødmossede + k) ommers (_ om'?Ers // stressed + ap) o (llo++ '?V // stressed + k) o (mmerciel++ ?o // kommerciel + n) o (nC ?V // nonsens + C) o (L09n ?V // velkomne, nonne -// PB general rule k + o + double consonant + front vowel: [o] +// general rule k + o + double consonant + front vowel: [o] // Some people pronounce it [V] - k) o (C%L04++ o // PB korridor, korrupt, kollegium, kommode - L08) o (tt V // PB skotte, spotte -// r) o (tt+ V // PB rotte, skrotte + k) o (C%L04++ o // korridor, korrupt, kollegium, kommode + L08) o (tt ?V // skotte, spotte +// r) o (tt+ V // rotte, skrotte - k) o (mmentA+++ o // PB kommentar, kommentere - k) o (llekt_ o // PB could also be [V] - k) o (lleg+++ o // PB kolleger + k) o (mmentA+++ ?o // kommentar, kommentere + k) o (llekt_ ?o // could also be [V] + k) o (lleg+++ ?o // kolleger -// PB general rule o + b + l + a/e/LL04: [o] - o (bla+ o // PB oblat - o (blL04 o // PB obligation - k) o (bling V // PB +// general rule o + b + l + a/e/LL04: [o] + o (bla+ ?o // oblat + o (blL04 ?o // obligation + k) o (bling ?V // -// PB general rule k/g + o + m: [V] - L01) o (m V // PB kompliceret, komplet, brudgom, jomfru - L01) o (mL04 o // PB komite - L01) o (me o // PB komedie - k) o (mpag o // PB kompagni - k) o (ma o: // PB - _k) o (mpas o' // PB +// general rule k/g + o + m: [V] + L01) o (m V // kompliceret, komplet, brudgom, jomfru + L01) o (mL04 o // komite + L01) o (me o // komedie + k) o (mpag o // kompagni + k) o (ma o: // + _k) o (mpas o' // -// PB general rule p/b + l + o + n/M: [V] - L06l) o (L09 V // PB blond, blomst +// general rule p/b + l + o + n/M: [V] + L06l) o (L09 V // blond, blomst -// PB general rule: d/l + o + n/m: [V] - L03) o (L09 V // PB barndom, lom, domhus, don, dommer - l) o (L09CL04 o // PB colombianerne - TEST - l) o (nnA V // PB Lonny, Lonnie - fr) o (nt V // PB frontal - L03) o (L09L04 o // PB dominere - L03) o (L09L11 o // PB donere, donation, donator - ball) on VN // PB spærreballoner - @mel) o (n o // PB vandmelon - kl) o (n o // PB - cykl) o (n 'o PB stressed - shal) o (m 'o // PB stressed +// general rule: d/l + o + n/m: [V] + L03) o (L09 V // barndom, lom, domhus, don, dommer + l) o (L09CL04 o // colombianerne - TEST + l) o (nnA V // Lonny, Lonnie + fr) o (nt V // frontal + L03) o (L09L04 o // dominere + L03) o (L09L11 o // donere, donation, donator + ball) on VN // spærreballoner + @mel) o (n o // vandmelon + kl) o (n o // + cykl) o (n 'o // stressed + shal) o (m 'o // stressed -// PB general rule sp/st/sk + r + o + velars: V - L08r) o (L01 V // PB skrog - L08r) o (L01en o // PB østrogen V +// general rule sp/st/sk + r + o + velars: V + L08r) o (L01 V // skrog + L08r) o (L01en o // østrogen V -// PB general rule consonant + o + velars: V - C) o (L01+ V // PB fjong, jogge, knokle +// general rule consonant + o + velars: V + C) o (L01+ V // fjong, knokle + C) o (L01%+ ?V // sokker jogger -// PB short O - glottal stop - C) o (g+ ?O // PB noget, bogmærke, bedrog, krog, tog (verb "took", noun "train") + C) o (g+ O // bogmærke, bedrog, krog, tog (verb "took", noun "train") + C) o (gA+ O // toge - d) og (+ Vw // PB dogme - d) og (e oS // PB doge - d) o (nkraft o // PB - et_dr) o (g V // PB et drog (noun) - arist) o (k o // PB aristokrat - s) okrates okratEs // PB name - k) ong (res Vng // PB - sm) og (_ Vg // PB smog - r) o (kL11+ o // PB provokere - v) o (kL11+ o // PB provokere - p) o (ker++ o // PB - C) o (L01a+ o // PB lokale - s) o (ja+ V // PB - h) og (an owg // PB name - fot) oge (n og'e // PB stressed - ep) o (ke 'o PB stressed - l) ogre VwrV // PB - g) o (kart+ Ow // PB - kr) o (ketC V // PB kroketbane, -spiller, -plæne - _kr) o (kett o' // PB kroketter - C) o (L01t V // PB kogt - b) o (L01L04 V // PB bongo - b) o (gorm o // PB + n) oge (n o@- // PN nogensinde + + d) og (+ Vw // dogme + d) og (e oS // doge + d) o (nkraft o // + et_dr) o (g V // et drog (noun) + arist) o (k o // aristokrat + s) okrates okratEs // name + k) ong (res Vng // + sm) og (_ Vg // smog + r) o (kL11+ o // provokere + v) o (kL11+ o // provokere + p) o (ker++ o // + C) o (L01a+ o // lokale + s) o (ja+ V // + h) og (an owg // name + fot) oge (n og'e // stressed + ep) o (ke 'o // stressed + l) ogre VwrV // + g) o (kart+ Ow // + kr) o (ketC V // kroketbane, -spiller, -plæne + _kr) o (kett o' // kroketter + C) o (L01t V // kogt + b) o (L01L04 V // bongo + b) o (gorm o // jumb) o o // OB jumbojet - v) o (gt+ V // PB - kn) o (j o // PB knojern - parad) o (ks 'V // PB stressed -elektr) o =o // PB elektrokromatisk - L06r) o (j o // PB projektør - d) o (L01rL04 o // PB endokrin TEST - bl) og Vg // PB (we)blog - C) o (gg+ V // PB jogging - van_g) ogh Vk // PB name - j) o (L01%L11 V // PB jogge, jokke - l) o (L01%L11 V // PB logge, lokke - k) o (gt+ V // PB kogte - og (firs V // PB enogfirs - sl) o (g o // PB foreslog - dag) o (g o // PB pædagog - o (kaC o // PB pokal, advokat - l) o (kum o // PB + v) o (gt+ V // + kn) o (j o // knojern + parad) o (ks 'V // stressed +elektr) o =o // elektrokromatisk + L06r) o (j o // projektør + d) o (L01rL04 o // endokrin TEST + bl) og Vg // (we)blog + C) o (gg+ ?V // jogging + van_g) ogh Vk // name + j) o (L01%L11 ?V // jogge, jokke + l) o (L01%L11 ?V // logge, lokke + k) o (gt+ ?V // kogte + og (firs ?V // enogfirs + sl) o (g o // foreslog + dag) o (g ?o // pædagog + o (kaC o // pokal, advokat + l) o (kum o // -// PB general rule sp/st/sk + o + t: V - L08) o (t V // PB spotte, skotte - L08r) o (t V // PB skrot - L08r) o (tL04 o // PB skrotum - _mask) o (t 'V // PB stressed - L08) o (tL04 o // PB followed by front vowel: o - skotøj - disk) o o // PB diskotek - kach) o (t 'V // PB +// general rule sp/st/sk + o + t: V +// L08) o (t V // spotte, skotte + L08r) o (t V // skrot + o (tL11++ o // skrote, blote, pote, botaniker + L08r) o (tL04 o // skrotum + _mask) o (t 'V // stressed + L08) o (tL04 o // followed by front vowel: o - skotøj + disk) o o // diskotek + kach) o (t 'V // -// PB general rule o + front consonant: [V] - o (L03K+ V // PB Olga, Volga, vold, vod, od, volt, polstre - o (lsen o // PB name - k) o (d+ o // PB omkodning - gaj) o (l 'o // PB candy - symb) o (l o // PB sexsymbol - bornh) o (lm 'V // PB - L08) o (l+ o // PB skole, spole, spol - t) o (lk V // PB mistolke - p) o (l o // PB nordpolen - p) o (l_ o // PB - o (lde V // PB tipoldefar - p) o (lsk o // PB polsk - p) o (lt V // PB polterabend - @) o (lsk 'o // PB katolsk, symbolsk -melank) o (lsk 'o // PB - wimp) ole Owl // PB name - st) o (d_ o // PB - L09) o (d+ o // PB mod +// general rule o + frontal consonant: [V] + o (L03K+ V // Olga, Volga, vold, vod, od, volt, polstre + s) o (d+ o // sod, løbesod + o (lsen o // name + k) o (d+ o // omkodning + gaj) o (l 'o // candy + symb) o (l o // sexsymbol + bornh) o (lm 'V // + L08) o (l+ o // skole, spole, spol + L08) o (len ?o // skolen - short o + t) o (lk V // mistolke + p) o (l ?o // nordpolen, politi + p) o (l_ o // + p) o (lsk o // polsk + p) o (lt V // polterabend + @) o (lsk 'o // katolsk, symbolsk +melank) o (lsk 'o // + wimp) ole Owl // name + st) o (d_ o // + L09) o (d+ o // mod l) o (L03+ o // forlod, blod, efterlod - j) o (d+ o // PB - j) odle Vdl3 // PB - jordl) o (d V // PB - l) o (dtræk V // PB lodtrækning -trukket_l) o (d V // PB -træk_l) o (d V // PB -trække_l) o (d V // PB -trækker_l) o (d V // PB -trækkes_l) o (d V // PB -trak_l) o (d // PB - r) o (d+ o // PB - br) o (d+ V // PB - _br) o (dy 0w // PB name - br) o (der o // PB + j) o (d+ o // + j) odle Vdl3 // + 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 // + _br) o (dy 0w // name + br) o (der o // forl) o (ds V // PP - g) o (d+ o // PB - g) o (dt+ V // PB - g) odfather VdfADV // PB - b) o (d+ o // PB isbod - camb) o (dj 'o // PB Cambodja - b) ody Vdi // PB bodystocking - b) odybuilder VdibildV // PB bodybuilder - _k) o (d+ o // PB kodning - sk) o (d+ V // PB - k) o (de++ o // PB sikkerhedskode, tidskode - l) odret (+ VDr&#t // PB + g) o (d+ o // + g) o (dt+ V // + sk) o (t V // Skotland + sk) o (tøj ?o // + g) odfather VdfADV // + b) o (d+ o // isbod + camb) o (dj 'o // Cambodja + b) ody Vdi // bodystocking + b) odybuilder VdibildV // bodybuilder + _k) o (d+ o // kodning + sk) o (d+ V // + k) o (de++ o // sikkerhedskode, tidskode + l) odret (+ VDr&#t // -// PB general rule o + velar + front vovel: [o] - o (L01L04 o // PB okular - C) o (kL04+ o // PB kokosnød, dokument - rok) o (ko 'V // PB stressed - Cr) o (L01L04 O // PB frokost - ch) o (k+ V // PB - ch) o (ko+ o // PB chokolade - k) okon ok'VN // PB stressed +// general rule o + velar + front vovel: [o] + 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 -// PB general rule o + p/b/d + front vowel: [o] - o (L06L04+ o // PB topografi, utopi, opinion - o (pofre+ V // PB opofrelse - o (pildne+ V // PB +// general rule o + p/b/d + front vowel: [o] + o (L06L04+ o // topografi, utopi, opinion + o (pofre+ V // opofrelse + o (pildne+ V // -// PB general rule o + p/b: [V] - o (L06+ V // PB op, opdrage, obstruere - s) ophia of'i& // PB name - o (pposit o // PB opposition - o (L06L11+ o // PB oktober, global, Robert, oberst - o (pefter+ V // PB - o (parbejde+ V // PB - j) o (b@ V // PB jobannonce - o (pad+ V // PB - b) o (pæl o // PB - k) o (par V // PB koparret - L10) o (L06rL11 o // PB kobra - L02) o (L06le+ V // PB boble - L02) o (L06%e++ V // PB dobbel - C) o (L06L04++ o // PB monopol, mobil - p) o (pidol++ V // PB popidol - o (bbA+++ V // PB hobby, snobbet, snobbede - st) o (p++ V // PB stopur - k) o (bber O // PB - selv) o (p V // PB selvoptaget - _r) o (bin++ V // PB Robin Hood - _r) oby (n++ Vbe // PB name - pr) o (ble o // PB problem - r) o (L06L05+ o // PB europæer, propan - le) o (par o' // PB leopard - cle) o (patra 'o // PB - nark) o (C o // PB narkobranchen - mikr) o o // PB mikroprocessor - h) o (b+ o // PB menneskehob - Cn) o (L06++ o // PB knob, knop, knoppen - gal) o (C 'V // PB galoche, galop - stressed - dr) o (sche V // PB - o (che V // PB broche - gal) o (ppere o // PB - kykl) o (p 'o // PB +// general rule o + p/b: [V] + o (L06+ V // op, opdrage, obstruere +kommand) o o // kommandobroen + s) ophia of'i& // name + o (pposit o // opposition + o (L06L11+ o // oktober, global, Robert, oberst + o (pefter+ V // + o (parbejde+ V // + j) o (b@ V // jobannonce + o (pad+ V // opad + b) o (pæl o // + k) o (par V // koparret + L10) o (L06rL11 o // kobra + L02) o (L06le+ V // boble + L02) o (L06%e++ ?V // dobbel + C) o (L06L04++ o // monopol, mobil + p) o (pidol++ V // popidol + o (bbA+++ ?V // hobby, snobbet, snobbede + st) o (p++ V // stopur + k) o (bber+++ O // + selv) o (p V // selvoptaget + _r) o (bin++ V // Robin Hood + _r) oby (n++ Vbe // name + pr) o (ble o // problem + r) o (L06L05+ o // europæer, propan + le) o (par o' // leopard + cle) o (patra 'o // + nark) o (C o // narkobranchen + mikr) o o // mikroprocessor + h) o (b+ o // menneskehob + Cn) o (L06++ o // knob, knop, knoppen + gal) o (C 'V // galoche, galop - stressed + dr) o (sche V // + r) o (che V // broche + gal) o (ppere o // + kykl) o (p 'o // -// PB general rule l + o + t: [V] - l) o (t V // PB blot, plot, kaskelot - _) kompl) o (t 'V // PB stressed - _) kaskel) o (t 'V // PB stressed - merl) ot 'o // PB grape - kal) o (t 'V // PB stressed - l) o (tus o: // PB - pil) o (t o // PB autopilot - kil) o (+ o // PB kiloton, kilovis - zel) o (t 'o PB stressed +// general rule l + o + t: [V] + l) o (t V // blot, plot, kaskelot + _) kompl) o (t 'V // stressed + _) kaskel) o (t 'V // stressed + merl) ot 'o // grape + kal) o (t 'V // stressed + l) o (tus o: // + pil) o (t o // autopilot + kil) o (+ o // kiloton, kilovis + zel) o (t 'o // stressed - Ca) o (s V // PB kaos Laos - L08) o (f V // PB stof - kask) o o // PB kaskoforsikring - tr) o (CL04 o // PB antropolog, tropisk, troperne - _) o (mC ''V // PB omgang, omformulere - _) o (mar V // PB omarrangere, omarbejde - o (madresse V // PB omadressere - _) oman om'&n // PB Oman - stressed - o (ms V // PB pladeomslag - o (mråd V // PB katastrofeområde - o (mtale V // PB presseomtale - o (megn V // PB - o (mk V // PB deromkring - k) o (nC V // PB konfirmand, konfekt, konkurrence - C) o (sCL11+ V // PB fosfat, koster, moster, foster, floskel - tr) o (sretning o // PB - tr) o (sbekend o // PB trosbekendelse - tr) o (ssag o // PB - tr) o (sskift+ o // PB - fl) o (s V // PB floskler - kl) o (stre V // PB klostret - pr) o (s+ o // PB prospekt - m) o (ske o // PB - k) o (steskaft o // PB - k) o (steskab o // PB - k) osh (er+ oS // PB - kr) o (s o // PB krostue - hydr) o o // PB hydrostatisk - test) o (steron o // PB -rekogn) o (scere o // PB - tr) os (samfund os // PB - metr) o o // PB metrostation - tr) o (ld V // PB charmetrold - bek) o (st V // PB bekostning - o (sCL04 V // PB osmose - kosm) o (s V // PB kosmos - tjekk) o (slov o // PB Tjekkoslovakiet - heter) o o // PB heterosvin - sh) osh (one oS' // PB shoshoneindianere - o (stindi o // PB Ostindien - r) oscoe VskOw // PB Roscoe - name - k) o (stL04 o // PB kostume - Cr) o (sk+ o // PB troskab, kroskænk - n) o (s_ V // PB nos nu ikke i det - g) o (slav+ o // PB Jugoslavien - h) o (spit o // PB hospital - p) o (styr+ V' // PB - o (sko+ o // PB otoskop, mokroskopi - sk) o (sværte o // PB + Ca) o (s V // kaos Laos + L08) o (f V // stof + kask) o o // kaskoforsikring + tr) o (CL04 o // antropolog, tropisk, troperne + fortr) o (lig ?o // + _) o (mC ''V // omgang, omformulere + _) o (mar V // omarrangere, omarbejde + o (madresse V // omadressere + _) oman om'&n // Oman - stressed + o (ms V // pladeomslag + o (mråd V // katastrofeområde + o (mtale V // presseomtale + o (megn V // + o (mk V // deromkring + k) o (nC V // konfirmand, konfekt, konkurrence + C) o (sCL11+ V // fosfat, koster, moster, foster, floskel + fr) o (sne o // fastfrosne + tr) o (sretning o // + tr) o (sbekend o // trosbekendelse + fl) o (s V // floskler + kl) o (stre V // klostret + pr) o (sp+ o // prospekt + m) o (ske+ o // + k) o (steskaft o // + k) o (steskab o // + k) osh (er+ oS // + kr) o (s o // krostue + kr) o (snak o // + hydr) o o // hydrostatisk + test) o (steron o // +rekogn) o (scere o // + tr) os (samfund os // + metr) o o // metrostation + tr) o (ld V // charmetrold + bek) o (st V // bekostning + o (sCL04 V // osmose + kosm) o (s V // kosmos + tjekk) o (slov o // Tjekkoslovakiet + heter) o o // heterosvin + sh) osh (one oS' // shoshoneindianere + o (stindi o // Ostindien + r) oscoe VskOw // Roscoe - name + k) o (stL04 o // kostume + Cr) o (sk+ o // troskab, kroskænk + n) o (s_ V // nos nu ikke i det + g) o (slav+ o // Jugoslavien + h) o (spit o // hospital + p) o (styr+ V' // + o (sko+ o // otoskop, mokroskopi + sk) o (sværte o // -// PB general rule: consonant + o + m:[V] - C) o (m V // PB tomhændet, kedsomhed, tomt, udenoms - C) o (mL04 V // PB bomuld - salt) o (mor o // PB saltomortale - at) o (m o // PB iltatom - C) o (mL11 o // PB tomat - ar) o (ma 'o // PB stressed - h) o (L09L04+ o // PB homo, honorær - r) o (mCL05 o // PB brombær TEST - syndr) o (m o // PB stresssyndrom +// general rule: consonant + o + m:[V] + C) o (m V // tomhændet, kedsomhed, tomt, udenoms + C) o (mL04 V // bomuld + salt) o (mor o // saltomortale + at) o (m o // iltatom + C) o (mL11 o // tomat + ar) o (ma 'o // stressed + h) o (L09L04+ o // homo, honorær + r) o (mCL05 o // brombær TEST + syndr) o (m o // stresssyndrom r) o (mkage V // pb - Cr) o (mL04 o // PB promotor - tr) o (mme+ o // PB - fr) o (m V // PB - fr) o (ma o // PB fromage - tr) o (m o // PB trompet - on) o (m o // PB økonomi - n) o (mi o // PB nominere - _økon) o (m_ 'o // PB stressed - hæmat) o (m 'o // PB - c) omeback Vmb'&k // PB - _p) ommes (_ %Vm // PB pommes frites - _p) omme (_ %Vm // PB pomme frite(s) + Cr) o (mL04 o // promotor + tr) o (mme+ o // + fr) o (m V // + fr) o (ma o // fromage + tr) o (m o // trompet + on) o (m o // økonomi + n) o (mi o // nominere + _økon) o (m_ 'o // stressed + hæmat) o (m 'o // + c) omeback Vmb'&k // + _p) ommes (_ %Vm // pommes frites + _p) omme (_ %Vm // pomme frite(s) -// PB general rule: labial (+r) + o + st: [V] - L02) o (st V // PB opfostre, moster, post, frost - fr) o (st+ V // PB frost - br) o (sten o // PB +// general rule: labial (+r) + o + st: [V] + L02) ost Vsd // opfostre, moster, post, frost + fr) o (st+ V // frost + br) o (sten o // // exceptions - p) o (stmod O // PB postmoderne - p) o (stej+ %o // PB leverpostej - p) o (sttrau o // PB posttraumatisk - pr) o (sti o // PB prostitueret - nab) o (+ o // PB nabostat + p) o (stmod O // postmoderne + p) o (stej+ %o // leverpostej + p) o (sttrau o // posttraumatisk + pr) o (sti o // prostitueret + nab) o (+ o // nabostat - s) o (mal o' // PB Somalia - gn) o (m o // PB - kr) o (m o // PB krom - _l) o (s V // PB los - _p) o (t_ V // PB - fall) o (s V // PB - _kol) o (s 'V // PB kolos - stressed - kol) o (st o // PB kolostomi - st) o (mL04 o // PB stomi - kol) o (ssa o // PB kolossal - k) o (ntor o // PB - h) o (spice V // PB hospice - v) od (ka Vd // PB - o (ttawa V // PB - term) o (sta o // PB termostat - r) o (st+ o // PB rost, skamrost, prostitueret, roste - f) oged o:@D // PB silent g - bank) o (sp o // PB bankospil - k) o (sko o // PB bronkoskop - kok) o (s o // PB kokosnød - k) o (st_ o // PB kost (broom) Problem with kost = food -skrap_k) o (st V // PB - k) o (stskole V // PB - k) o (stplan V // PB - k) o (stråd V // PB - k) o (stvane V // PB - k) o (stpris V // PB - k) o (sttilskud V // PB -hverdagsk) o (st V // PB -sundhedsk) o (st V // PB - k) o (st_og_logi V // PB board and lodging - k) o (stbar V // PB -helsek) o (st V // PB - frok) o (st V // PB - omko (st VmkV // PB omkostninger, leveomkostninger - k) otele (t Vt@l'E // PB svinekotelet - boyk) o (t V // PB boycotte - h) o (st++ o // PB host - fC) o (t V // PB flot, fjot - fC) o (tL04 o // PB flotille + s) o (mal o' // Somalia + 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 + 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 + k) otele (t Vt@l'E // svinekotelet + boyk) o (t V // boycotte + h) o (st++ ?o // host + h) o (ste++ o // hoste + fC) o (t V // flot, fjot + fC) o (tL04 o // flotille - o (x V // PB oxyd - t) o (mas_ V // PB - th) o (mas_ V // PB - t) ow (er Au // PB Tower Bridge - mikr) oovn oVwn // PB - _) o' ou' // PB for Irish names - O'Grady - s) outh auT // PB South Pacific - _h) olmes (_ oums // PB name - s) oames oums // PB name - osborne Vsb,On // PB name - _b) o (nd_ V // PB Bond Street - k) oor (d oV:? // PB koordinat - _biot) o (p 'o // PB stressed - _isot) o (p 'o // PB stressed -antibi) o (tik 'o // PB antibiotika - lak) o (ta 'o // PB stressed - _morm) o (n 'o // PB stressed - _dæm) o (n 'o // PB stressed - _matr) o (ne 'o // PB stressed -_silik) o (ne 'o // PB stressed - _acet) o (ne 'o // PB stressed - _amaz) o (ne 'o // PB stressed - _calz) o (ne 'o // PB stressed -_chaper) o (ne 'o // PB stressed -_cicer) o (ne 'o // PB stressed - _anem) o (ne 'o // PB stressed - _sign) o (r 'o // PB signora -_anekd) o (t 'o // PB anekdote, anekdotisk -_abrik) o (s 'o // PB stressed -art_dec) o 'o // PB - o (pofre V // PB - f) o (nt V // PB døbefont, fontæne - ann) on (cA VN // PB annonce, annoncør - stressed by $alt list - radi) o o // PB radiobil - f) o (b o // PB fobi -_antil) o (pe 'o // PB stressed - _t) o (bak o' // PB tobak - vide) o o // PB videobånd - h) o (lding Ou // PB holdingselskab - br) occ (oli Vk // PB - ma) o (+ o // PB Mao, Maos maosko + 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 + s) outh auT // South Pacific + _h) olmes (_ oums // name + s) oames oums // name + osborne Vsb,On // name + _b) o (nd_ V // Bond Street + k) oor (d oV:? // koordinat + _biot) o (p '?o // stressed + _isot) o (p '?o // stressed +antibi) o (tik '?o // antibiotika + lak) o (ta 'o // stressed + _morm) o (n '?o // stressed + _dæm) o (n '?o // stressed + _matr) o (ne 'o // stressed +_silik) o (ne 'o // stressed + _acet) o (ne 'o // stressed + _amaz) o (ne 'o // stressed + _calz) o (ne 'o // stressed +_chaper) o (ne 'o // stressed +_cicer) o (ne 'o // stressed + _anem) o (ne 'o // stressed + _sign) o (r 'o // signora +_anekd) o (t 'o // anekdote, anekdotisk +_abrik) o (s '?o // stressed +art_dec) o '?o // + o (pofre ?V // + f) o (nt ?V // døbefont, fontæne + ann) on (cA VN // annonce, annoncør - stressed by $alt list + radi) o ?o // radiobil + f) o (b o // fobi +_antil) o (pe 'o // stressed + _t) o (bak ?o' // tobak + vide) o ?o // videobånd + h) o (lding Ou // holdingselskab + br) occ (oli ?Vk // + ma) o (+ o // Mao, Maos maosko - helik) opter 'VptV // PB stressed - helikopter - _eur) o (pa 'o // PB stressed -_eskim) o 'o // PB stressed - _resp) o (ns 'V // PB stressed - _dep) o (t 'o // PB stressed - al) o (ha 'o // PB stressed - dep) o (t o // PB - kont) o (r 'o // PB kontor - stressed -korrid) o (r 'o // PB -labrad) o (r 'V // PB - don) or V // PB - mete) o (r 'o // PB - matad) o (r 'o // PN - sam) o (a 'o // PB -katastr) ofe 'o:f3 // PB katastrofe -katastr) ofer 'o:fV // PB katastrofer - lit) o (te 'o: // PB stressed - en) o (rm+ 'V // PB stressed - abn) o (rm 'V // PB stressed - def) o (rm 'V // PB stressed -klorof) o (rm 'V // PB stressed - konf) o (rm 'V // PB stressed - ref) o (rm 'V // PB stressed - unif) o (rm 'V // PB stressed - _rev) o (lv 'V // PB stressed - revolver - _kart) o (f 'V // PB stressed - kartofler - am) o (k 'V // PB amok - mon) o (k 'V // PB monokel - stressed - konv) oj 'Vj // PB stressed -mening) oko (k ok'V // PB meningokokker - hypok) ond (er 'Vnd // PB - h) o (ck+ V // PB hockey -_horis) o (n 'V // PB horisont - _kan) o (n 'o // PB stressed - kan) o (n o // PB not stressed after a syllable - bistr) o 'o // PB stressed o in 'bistro' - trik) ot 'o // PB stressed, silent t - er) o (b 'o // PB erobre - stressed o - _er) o (t 'o // PB erot - stressed o - _pil) o (t 'o // PB stressed - pilot - _idi) o (t 'o // PB stressed -_patri) o (t 'o // PB stressed -_cypri) o (t 'o // PB stressed - _matr) o (s 'o // PB stressed -_metad) o (n 'o // PB stressed -_batalj) o (n 'o // PB stressed - ang) o (la 'o // PB stressed -pepper) o (ni 'o // PB stressed - _pr) ovi (ns ov'e // PB provins - stressed i - filos) o (f_ 'V // PB -_filos) o (fi_ o' // PB -_filos) o (fisk 'o //PB - mem) oire o'A: // PB memoire(r) - apr) opos op'o // PB silent s - nark) oti (k 'oti // PB narkotika, narkotisk - _ansj) o (s 'o // PB stressed - ul) o (v 'V // PB stressed o - ulovlig -_paran) oia 'Vj& // PB stressed - _huk) o (mme 'V // PB hukommelse - stressed - _kuj) o (n 'o // PB stressed - komp) o (st 'V // PB stressed - vagab) ond 'Ond // PB stressed - bard) ot 'o // PB Brigitte Bardot - _) oil (_ V:il/2 // PB - cr) oix w'a // PB Delacroix - d) o (nald V // PB name - c) o (ck V // PB cockerspaniel - terr) or Vr // PB terror - b) or (nholm Vr // PB - o (tto V // PB - o (ttende V // PB - r) o (ck V // PB - jackp) o (t V // PB - gr) oggy Vgi // PB groggy - gr) og Vg // PB grog - gr) ogg Vg // PB groggen - k) og (nit Vg // PB kognitiv - og (tredive V // PB fireogtredive - hvalr) o (s V // PB - _) obo ob'o // PB - org (+ V:w // PB sorg, morgen, Norge - org (el O:w // PB orgelet - org (i V:g // PB georgisk - org (ie Vg // PB - ge) org (ine og // PB - o (rga+ V // PB organ - r) or (g oR // PB rorgænger - ov (e+ Vu // PB over, oven, sove - h) o (vere o // PB - ren) ov (er ov // PB renovering - ov (n Vw // PB brændeovn - ov (re Vu // PB derovre - C) ov (+ Vw // PB sjov, lov, skov, plov, provst - t) ov (ør ov // PB tatovør - n) ov (icA ov // PB novice, noviciat - sl) ov (ak ov' // PB - d) o (wning a // PB Downing Street - s) ovjet Vwj'Et // PB - kr) o (væ o // PB krovært - ov (erhead Ouv // PB overhead - at) ov (er ov // PB tatovere - k) ov (end ov // PB kovending - ov (ærn+ ov // PB autoværn - vuk) ov (ar ov // PB Vukovar - o (vej+ o // PB kommandovej - o (vi+ o // PB pseudovidenskabelig - tr) o (v+ o // PB troværdig, kontrovers - l) ov (_mig_ ow // PB from the verb "at love" - v) ov (e Ov // PB vove - o (fC V // PB ofte, kofte -torped) o o // PB torpedoflyene - offside Vfs'ajd // PB - sj) o (f o // PB sjofle - h) o (f V // PB hofleverandør - pr) o (f_ V // PB prof = professionel - skiz) o (fren o // PB - n) ov (a++ ov // PB nova, renovation - n) ov (em+ ov // PB november - n) ov (ell ov // PB novelle - bet) on VN // PB betonen - bet) o (ning 'o // PB stressed - bet) o (net o // PB - _m) o (rt V // PB mortadel - o (k V // PB general rule - okker, lok -artisk) o (k 'V // PB stressed - aut) o (+ o // PB autoklub - t) or (t V:? // PB tortur - t) o (t V // PB hårtot, tot, hottentot - t) o (tA o // PB total - em) o (+ o // PB demokrati - mem) o (riam 'o // PB stressed - o (ktob %o // PB stressed next syllable - oktober - sm) o (king o: // PB - j) o (rt V // PB hjort, pjort - kj) o (rt o // PB skjorte, kjortel - gj) o (rt o // PB - k) or (p V: // PB korps - k) or (pi or // PB korpige - k) or (prøve or // PB - g) od (tr oD // PB godtroende - g) od (tAg oD // PB godtage, godtog - d) o (g_+ V // PB dog - bulld) og V:g // PB - v) o (g V // PB vogn, vogte - sv) o (ger O // PB - _v) og (_ ow // PB "han vog den kullede greve" - C) ogn Vwn // PB sogn, vogn - bol) ognese oN'Es3 // PB - bast) ogne 'VNj3 // PB French - gasc) ogne 'VNj3 // PB French - rek) og (noscere V // PB - pr) ogn (o ogn // PB prognose - col) ogn (e l'VNj // PB - boul) ogn (e ''VNj // PB Bois de Boulogne - s) or =V // PB professor - s) orer ''o:V // PB professorer, processorer - _l) o (g_ V // PB log - l) o (gfil V // PB - l) o (gbog Vg // PB - l) ov (e+ ou // PB love - l) ov (en++ Ov // PB lovende - ov (ers++ Vw // PB tilovers - kontr) ov (ers ov // PB kontroversiel - pl) ov (++ Vw // PB sneplove - l) ondon VndVn // PB London - bl) ond Vnd //PB Keep the d - blondine, blonde - k) ors V:s // PB kors, korsage - et_k) orset Vs'Et // PB - k) orsett Vs'Et // PB korsettet, korsetter - c) o (rs V // PB corsage - k) o (gl+ V // PB kogle, kogleri - _d) o (n_ V // PB don juan - pr) o (vA+ o // PB provokere - h) oved o:@D // PB hoved - kn) o (tn V // PB knotne - tr) od (s V // PB silent d - trods - kl) od (s V // PB silent d - klods - g) od (s o // PB silent d - gods - tr) o (j+ V // PB trojka, Troja -perestr) o (jka 'V // PB stressed - tr) o (jan o // PB trojanerne - p) olish VliS // PB møbelpolish - tr) o (kl V // PB trokle - t) or (_ V // PB faktor, rotor - st) or (+ or // PB kæmpestor - t) or (en V // PB faktoren - or (k++ Vr // PB orke, orkester, stork - k) or (kåbe or // PB - _st) o (r_ o // PB stor - past) or V // PB - mot) or V // PB startmotor - t) or (s V // PB torsdag, torsk - t) or (ny V // PB tornyster - oy (+ 'Vj // PB destroyer, royal, loyal - v) oyeur VjW:r // PB - r) oyce Vjs // PB Rolls Royce - han) oi Vj // PB - _f) oyer O@j'e // PB - _f) oyeren O@j'e3n // PB - f) oyer O@je // PB - p) o (r O // PB porno - p) or (c V // PB porcelæn - m) oskva Vskv'& // PB - _im) o (d 'o // PB stressed - m) ontana Vnt'&n& // PB - m) o (nitor V // PB - _C) o (_ o // PB jo, ko, lo, so - f) o (d+ o // PB fodre - C) oe (de o: // PB boede, troede - betr) oe (de o@ // PB betroede midler - sk) oe (de o@ // PB - spr) og ow // PB sprog - t) o (gt+ V // PB togt - t) og (tur ow // PB - kl) og ow // PB klog, klogt - kn) og Vu // PB knogle - t) oi (l o& // PB toilet -repert) oire 'wA: // PB - f) o (rL04+ o // PB aforisme, eufori - ortod) o (ks 'V // PB - l) o (kA o // PB lokal - bl) o (k+ V // PB blokere - k) o (ka o // PB kokasse, kokain - s) o (pra o // PB sopran - oregonpine VregVn||pajn // PB - oklahoma okl&h'om& // PB - _ram) o (na 'o // PB name - b) o (ss V // PB + helik) opter '?VptV // stressed - helikopter + _eur) o (pa 'o // stressed +_eskim) o '?o // stressed + _resp) o (ns '?V // stressed + _dep) o (t '?o // stressed + al) o (ha '?o // stressed + dep) o (t '?o // + kont) o (r '?o // kontor - stressed +korrid) o (r '?o // +labrad) o (r '?V // + don) or V // + mete) o (r '?o // + matad) o (r '?o // PN + sam) o (a 'o // +katastr) ofe 'of3 // katastrofe +katastr) ofer 'ofV // katastrofer + lit) o (te 'o: // stressed + en) o (rm+ 'V // stressed + abn) o (rm 'V // stressed + def) o (rm 'V // stressed +klorof) o (rm 'V // stressed + konf) o (rm 'V // stressed + ref) o (rm 'V // stressed + unif) o (rm 'V // stressed + _rev) o (lv '?V // stressed - revolver + _kart) o (f '?V // stressed - kartofler + am) o (k '?V // amok + mon) o (k '?V // monokel - stressed + konv) oj '?Vj // stressed +mening) oko (k ok'?V // meningokokker + hypok) ond (er '?Vnd // + h) o (ck+ V // hockey +_horis) o (n '?V // horisont + _kan) o (n '?o // stressed + kan) o (n ?o // not stressed after a syllable + bistr) o 'o // stressed o in 'bistro' + trik) ot 'o // stressed, silent t + 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 +pepper) o (ni 'o // stressed + _pr) ovi (ns ov'e // provins - stressed i + filos) o (f_ 'V // +_filos) o (fi_ o' // +_filos) o (fisk 'o // + mem) oire o'A: // memoire(r) + apr) opos op'o // silent s + nark) oti (k 'oti // narkotika, narkotisk + _ansj) o (s 'o // stressed + ul) o (v 'V // stressed o - ulovlig +_paran) oia 'Vj& // stressed + _huk) o (mme 'V // hukommelse - stressed + _kuj) o (n 'o // stressed + komp) o (st 'V // stressed + vagab) ond 'Ond // stressed + bard) ot 'o // Brigitte Bardot + _) oil (_ V:il/2 // + cr) oix w'a // Delacroix + d) o (nald V // name + c) o (ck V // cockerspaniel +// terr) or Vr // terror + b) or (nholm Vr // + o (tto V // + o (ttende V // + r) o (ck V // + jackp) o (t V // + gr) oggy Vgi // groggy + gr) og Vg // grog + gr) ogg Vg // groggen + k) og (nit Vg // kognitiv + og (tredive V // fireogtredive + hvalr) o (s V // + _) obo ob'o // + org (+ Ow // sorg, morgen, Norge + org (el Ow // orgelet + org (i V:g // georgisk + org (ie Vg // + ge) org (ine og // + o (rga+ V // organ + r) or (g oR // rorgænger + ov (e+ Ow // over, oven, sove + 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 + j) ov (ist ov' // jovist + t) ov (ør ov // tatovør + n) ov (icA ov // novice, noviciat + sl) ov (ak ov' // + d) o (wning a // Downing Street + s) ovjet Vwj'Et // + kr) o (væ o // krovært + ov (erhead Ouv // overhead + at) ov (er ov // tatovere + k) ov (end ov // kovending + ov (ærn+ ov // autoværn + vuk) ov (ar ov // Vukovar + o (vej+ o // kommandovej + o (vi+ o // pseudovidenskabelig + tr) o (v+ o // troværdig, kontrovers + l) ov (_mig_ ow // from the verb "at love" + v) ov (e Ov // vove + o (fC V // ofte, kofte +torped) o o // torpedoflyene + offside Vfs'aId // + sj) o (f o // sjofle + h) o (f V // hofleverandør + pr) o (f_ V // prof = professionel + skiz) o (fren o // + n) ov (a++ ov // nova, renovation + n) ov (em+ ov // november + n) ov (ell ov // novelle + bet) on VN // betonen + bet) o (ning 'o // stressed + bet) o (net o // + _m) o (rt V // mortadel + o (k V // general rule - okker, lok +artisk) o (k 'V // stressed + aut) o (+ o // autoklub + t) or (t V:? // tortur + t) o (t V // hårtot, tot, hottentot + t) o (tA o // total + em) o (+ o // demokrati + mem) o (riam 'o // stressed + o (ktob %o // stressed next syllable - oktober + sm) o (king o: // + j) o (rt V // hjort, pjort + kj) o (rt o // skjorte, kjortel + gj) o (rt o // + k) or (p V: // korps + k) or (pi or // korpige + k) or (prøve or // + g) od (tr oD // godtroende + g) od (tAg oD // godtage, godtog + d) o (g_+ V // dog + bulld) og V:g // + v) o (g V // vogn, vogte + sv) o (ger O // + _v) og (_ ow // "han vog den kullede greve" + C) ogn Vwn // sogn, vogn + bol) ognese oN'Es3 // + bast) ogne 'VNj3 // French + gasc) ogne 'VNj3 // French + rek) og (noscere V // + pr) ogn (o ogn // prognose + col) ogn (e l'VNj // + boul) ogn (e ''VNj // Bois de Boulogne + s) or =V // professor + s) orer ''o:V // professorer, processorer + _l) o (g_ V // log + l) o (gfil V // + l) o (gbog Vg // + 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- // + 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 + 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 + 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 // + mot) or V // startmotor + t) or (s O // torsdag, torsk + t) or (ny V // tornyster + oy (+ 'Vj // destroyer, royal, loyal + v) oyeur VjW:r // + r) oyce Vjs // Rolls Royce + han) oi Vj // + _f) oyer O@j'e // + _f) oyeren O@j'e3n // + f) oyer O@je // + p) o (r O // porno + p) or (c V // porcelæn + m) oskva Vskv'& // + _im) o (d 'o // stressed + m) ontana Vnt'&n& // + 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 + sk) oe (de o@ // + spr) og ow // sprog + t) o (gt+ V // togt + t) og (tur ow // + kl) og (+ Ow // klog, klogt + kn) og Vu // knogle + t) oi (l o& // toilet +repert) oire 'wA: // + f) o (rL04+ o // aforisme, eufori + ortod) o (ks 'V // + l) o (kA o // lokal + bl) o (k+ V // blokere + k) o (ka o // kokasse, kokain + s) o (pra o // sopran + oregonpine VregVn||paIn // + oklahoma okl&h'om& // + _ram) o (na 'o // name + b) o (ss V // - p) oint (_ wEN // PB - p) ointene wEN@n3 // PB - p) ointe wENt@ // PB - p) ointer wENtV // PB - p) oint (ere Vjnt // PB -west_p) oint Vjnt // PB - c) ognac VNak // PB - b) o (m o // PB bombe, bom - b) o (mm++ o // PB bommen - b) ombay Vmb,Ej // PB - k) omet om'et // PB - komm) o (de 'o // PB stressed - L01) o (mman+ o // PB kommando - pomp) on VN // PB pompon - kup) on VN // PB tipskupon - tamp) on VN // PB vattampon - pl) o (m+ o // PB plombe, plombere - o (m_ V // PB alderdom VERY BROAD + p) oint (_ wEN // + p) ointene wEN@n3 // + p) ointe wENt@ // + p) ointer wENtV // + p) oint (ere Vjnt // +west_p) oint Vjnt // + c) ognac VNak // + b) o (m o // bombe, bom + b) o (mm++ o // bommen + b) ombay Vmb,Ej // + k) omet om'et // + komm) o (de 'o // stressed + L01) o (mman+ o // kommando + pomp) on VN // pompon + kup) on VN // tipskupon + tamp) on VN // vattampon + pl) o (m+ o // plombe, plombere + o (m_ V // alderdom VERY BROAD - o (sL11 o: // PB rose, skose, pose, prosa - ou u // PB poussin, toupe - miss) ou (ri 'u: // PB stressed - f) ourth O:T // PB Fourth Street - ratat) ouille 'u:j // PB - harb) our V // PB - d) ouche u:S // PB - gr) ou (cho Aw // PB name - kont) o o // PB kontoudtog - b) ourne O:n // PB name - rag) out 'u // PB silent t - s) ou (l Ow // PB soulmusik - slowm) otion OuS-@n // PB - h) ouse Aws // PB -_black) out 'awd // PB blackout - _lay) out 'awd // PB layout - _lock) out 'awd // PB blackout - _drop) out awd // PB dropout - _hand) out awd // PB handout -_knock) out 'awd // PB knockout - _time) out 'awd // PB timeout - _work) out 'awd // PB workout -_astron) out awd // PB - outsider awdsajdV // PB - ohio ouh'ajo // PB -noblesse_) oblige _^_fr // PB noblesse oblige - d) oug Vg // PB Douglas - s) onny Vni // PB name - oprah Owpra // PB name - l) ou u // PB jalousi - vel) ou (r 'u // PB stressed - b) ourbon W:b@n // PB bourbon whisky - ough Vf // PB tough, rough - only 2 words - oun aun // PB discount, greyhound - calh) oun 'un // PB name - _b) o (nn_ V // PB German city + o (sL11 o: // rose, skose, pose, prosa + ou u // poussin, toupe + miss) ou (ri 'u: // stressed + f) ourth O:T // Fourth Street + ratat) ouille 'u:j // + harb) our V // + d) ouche u:S // + gr) ou (cho Aw // name + kont) o o // kontoudtog + b) ourne O:n // name + rag) out 'u // silent t + s) ou (l Ow // soulmusik + slowm) otion OuS-@n // + h) ouse Aws // +_black) out 'awd // blackout + _lay) out 'awd // layout + _lock) out 'awd // blackout + _drop) out awd // dropout + _hand) out awd // handout +_knock) out 'awd // knockout + _time) out 'awd // timeout + _work) out 'awd // workout +_astron) out awd // + outsider awdsaIdV // + ohio ouh'aIo // +noblesse_) oblige _^_fr // noblesse oblige + d) oug Vg // Douglas + s) onny Vni // name + oprah Owpra // name + l) ou u // jalousi + vel) ou (r 'u // stressed + b) ourbon W:b@n // bourbon whisky + ough Vf // tough, rough - only 2 words + oun aun // discount, greyhound + calh) oun 'un // name + _b) o (nn_ V // German city kl) ogere owVV - h) o (ng V // PB Hongkong - @s) o (n_ V // PB Patterson - names with final "son" - TEST - @s) o (ns_ V // PB Pattersons - names with final "sons" - TEST - Cpers) o (n o // PB privatperson - tor) o (nto 'V PB stressed - r) oastbeef Ousdbif // PB roastbeef - illin) ois V:j // PB - ink) og (nito 'Vk // PB - br) oth (er VD // PB - outlaw awtlO: // PB + h) o (ng V // Hongkong + @s) o (n_ V // Patterson - names with final "son" - TEST + @s) o (ns_ V // Pattersons - names with final "sons" - TEST + Cpers) o (n o // privatperson + tor) o (nto 'V // stressed + r) oastbeef Ousdbif // roastbeef + illin) ois V:j // + ink) og (nito 'Vk // + br) oth (er VD // + outlaw awtlO: // -// PB final -ol words in da_list - stressed o - &) ol ($p_alt++ 'ol // parabol, symbol - mong) oliet ol'i@D // PB +// final -ol words in da_list - stressed o + &) ol ($p_alt++ '?ol // parabol, symbol + mong) oliet ol'i@D // &s) ol ($p_alt+ 'Vl // konsol &s) ol (L04$p_alt+ 'ol // konsolidere &h) ol ($p_alt+ 'Vl // alkohol @@ -6423,70 +6694,70 @@ noblesse_) oblige _^_fr // PB noblesse oblige &tr) ol (e$p_alt 'ol // petroleum &tr) ol (lle$p_alt 'o // kontrollere &st) ol (+$p_alt 'ol // pistol - @id) ol ol // PB popidol + @id) ol ol // popidol - L08) o (lC+ V // PB stolt, stolpe - _g) oldie Ouldi // PB name - _g) olden (_ Ould-@n // PB Golden Delicious - L01) o (ld V // PB kold, gold - ravi) o (li 'o // PB stressed o - rob) o (t++ 'V // PB - d) ollar VlV // PB dollar - only this word plus compounds like 'dollargrin' - s) o (l+ o // PB sol, soldat - s) o (llys++ o // PB - o (ld_ V // PB nathold, skjold - o (lde_ V // PB skjolde, solde - is) olde 'Vld3 // PB name - s) olgt Vlt // PB solgt - exception - kontr) o (l V // PB billetkontrol - kontr) o (ller %O // PB priskontrolleret - kontr) o (llør o // PB - sn) o (t V // PB snot - h) otdog VtdVg // PB - _h) o (t_ V // PB - or (l O: // PB orlov - _) orly (_ O*l'i // PB French airport - oscar VskA // PB - oswald _^_en // PB - oxford VgsfV:d // PB - oakland Wwkl@nd // PB - b) oar (ding O: // PB boardingpas - _) o (liver V // PB name - d) ono (van Vn3 // PB name - bl) ow '@w // PB blowjob - sp) o (nsor V // PB - _h) o (liday V // PB + L08) o (lC+ ?V // stolt, stolpe - short + _g) oldie Ouldi // name + _g) olden (_ Ould-@n // Golden Delicious +// L01) o (ld V // kold, gold + ravi) o (li 'o // stressed o + rob) o (t++ 'V // + d) ollar VlV // dollar - only this word plus compounds like 'dollargrin' + s) o (l+ ?o // sol, soldat + s) o (llys++ o // +// o (ld_ V // nathold, skjold +// o (lde_ V // skjolde, solde + is) olde 'Vld3 // name + s) olgt Vlt // solgt - exception + kontr) o (l V // billetkontrol + kontr) o (ller %O // priskontrolleret + kontr) o (llør o // + sn) o (t V // snot + h) otdog VtdVg // + _h) o (t_ V // + or (l O: // orlov + _) orly (_ O*l'i // French airport + oscar VskA // + oswald _^_en // + oxford VgsfV:d // + oakland Wwkl@nd // + b) oar (ding O: // boardingpas + _) o (liver V // name + d) ono (van Vn3 // name + bl) ow '@w // blowjob + sp) o (nsor V // + _h) o (liday V // .group on -// PB stressed o in words ending with -ion/-on - around 750 $alt words in da_list +// stressed o in words ending with -ion/-on - around 750 $alt words in da_list // Words from Latin, French and other languages - @) on ($p_alt+++ 'on // aktion, tyfon, person, mission + @) on ($p_alt+++ '?on // aktion, tyfon, person, mission &) on (n$p_alt 'o // only one n - ræsonnement - &c) on ($p_alt 'VN // facon - &t) on ($p_alt 'VN // beton, futon - &p) on ($p_alt 'VN // tampon, kupon, pompon - &if) on ($p_alt 'VN // sifon - &lef) on ($p_alt 'on // telefon - &of) on ($p_alt 'on // grammofom - &l) on ($p_alt 'VN // bouillon, talon - &æ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 - &) on (el$p_alt on // rationel + &c) on ($p_alt++ '?VN // facon + &t) on ($p_alt '?VN // beton, futon + &p) on ($p_alt '?VN // tampon, kupon, pompon + &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 + &æ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 + &) on (el$p_alt++ on // rationel -// PB exceptions to the -on rule (and other -on exception) +// exceptions to the -on rule (and other -on exception) stadi) on Vn ne) on Vn k) ong VN s) on (d Vn // sondere leksik) on Vn liban) on Vn // Libanon - h) on (d Vn // PB Honduras, Honda - _m) on (te_ Vn // PB Monte Carlo + h) on (d Vn // Honduras, Honda + _m) on (te_ Vn // Monte Carlo on (dL04 Vn // ondulere, pondus, gondol - p) on (t Vn // PB spontan, ponton + p) on (t Vn // spontan, ponton arg) on Vn dral) on Vn fre) on Vn @@ -6499,14 +6770,14 @@ dødvægtt) on Vn gall) on Vn bis) on Vn gibb) on Vn - sp) ond Vnd' // PB korrespondance, spondæ + sp) ond Vnd' // korrespondance, spondæ kol) on (_ Vn kol) onn 'Vn // kolonne - only one n, stressed - gn) on VN // PB champignon, kompagnon, chignon + gn) on VN // champignon, kompagnon, chignon _pavill) on 'VN pavill) on VN orl) on Vn -_maked) on 'on // PB makedoner +_maked) on 'on // makedoner perl) on Vn _sal) on 'VN sal) on VN @@ -6515,132 +6786,141 @@ _maked) on 'on // PB makedoner sæs) on VN // jagtsæson tefl) on Vn t) on (_ Vn // ton, kiloton - fot) on 'on // PB stressed - marat) on Vn // PB maratonløb - br) on VN // PB bronze, bronkitis - kart) on 'VN // PB mælkekarton - t) on (ic Vn // PB - t) on (s_ Vn // PB tons - t) on (sv Vn // PB tonsvis - megat) on Vn // PB - alf) on (s 'VN // PB alfons - f) ond Vnd // PB + fot) on 'on // stressed + marat) on Vn // maratonløb + br) on VN // bronze, bronkitis + kart) on 'VN // mælkekarton + t) on (ic Vn // + t) on (s_ Vn // tons + t) on (sv Vn // tonsvis + megat) on Vn // + alf) on (s 'VN // alfons + f) ond Vnd // _ball) on 'VN - perr) on 'VN // PB - alis) on Vn // PB name -robins) on Vn // PB name - m) onty Vnti // PB name - b) on (_ VN // PB kassebon - b) on (en_ VN // PB kassebonen - karb) on 'VN // PB stressed - karb) on (at on // PB lituimkarbonat - b) onjour VNZ'ur // PB - b) onbon VNbVn // PB - on (tol Vn // PB ontologi - monot) on 'on // PB monotont - monot) on (i on' // PB monotoni + perr) on 'VN // + alis) on Vn // name +robins) on Vn // name + m) onty Vnti // name + b) on (_ VN // kassebon + b) on (en_ VN // kassebonen + karb) on 'VN // stressed + karb) on (at on // lituimkarbonat + b) onjour VNZ'ur // + b) onbon VNbVn // + on (tol Vn // ontologi + monot) on 'on // monotont + monot) on (i on' // monotoni .group or - alv) or V // PB alvor -// or (L04+ or // PB favorit - or (ient Vr // PB venstreorienterede - v) or (L11+ or // PB favorabel - f) or V // PB derfor - tayl) or V // PB name -helsingf) or (s 'V // PB stressed - f) or (en V // PB fagforening - _f) or (_vild_ %or // PB verb - sekt) or V // PB sektoren - k) or (t O: // PB kort - k) or (tA O: // PB korte - or (to Vr // PB ortodoks - m) orge V:3 // PB morgen - dek) or (_ 'V:r // PB dekor - rapp) or (t 'V: // PB rapport - f) or (t V:? // PB fort - _komf) or (t 'V:? // PB stressed - m) or (f V: // PB morfar - m) or (m V: // PB mormor, mormon - m) or (se V: // PB morse - hum) or V // PB - sp) or (t V: // PB sport - eksp) or (t 'V: // PB - s) or (t or // PB sort - st) or (t or // PB stort - sv) or (e+ or // PB svoret - _) or (i V // PB orientere - _) or (a or // PB orange - orm orm // PB - _h) ormon Vrm'on // PB - n) or (m Vr // PB - st) or (m O: // PB - b) or (t O // PB bortforklare - _ab) or (t 'Vr // PB stressed - or (al oR // PB oral - _esk) or (te 'V: // PB eskorte - _n) or (d or // PB nord, nordisk - n) or (sk Vr // PB norsk - v) or (e+ V: // PB vores - hv) or V // PB hvorfra, hvorved - rek) or (d 'V: // PB exception - stressed o in 'rekord' - ak) or (d 'V: // PB exception - stressed o in 'akord' - or (den Or // PB orden, torden - s) or (te or // PB sorte - rep) or (ter 'V // PB stressed o - s) or (tA O // PB sortiment -_transp) or (t 'V: // PB stressed - transport - n) orth V:T // PB - rekt) or V // PB rektorforening + alv) or O // alvor +// or (L04+ or // favorit + or (ienter Vr // venstreorienterede + v) or (L11+ or // favorabel + v) or (_ O // + f) or (_ V // for + derf) or V // derfor + tayl) or V // name +helsingf) or (s 'V // stressed + f) or (en O // fagforening + _f) or (_vild_ %or // verb + sekt) or V // sektoren + k) or (t ?O: // kort + k) or (tA ?O: // korte + t) or (L06 O // torpedere + or (to O: // ortodoks, ortopæd + m) orge O:@- // morgen + dek) or (_ 'V:r // dekor + rapp) or (t 'O: // rapport + f) or (t_ O: // fort + f) ort (sæt O:d // fortsæt + _komf) or (t 'O: // stressed + m) or (f O: // morfar + m) or (m O: // mormor, mormon + m) or (se O: // morse + hum) or V // + hum) or (i OR // humorist + sp) or (t O: // sport + eksp) or (t 'O: // + s) or (t or // sort + st) or (t or // stort + sv) or (e+ or // svoret + _) or (i V // orientere + _) or (a or // orange + orm orm // + f) or (m_ O: // form + f) or (mC O: // formgive + f) or (me O: // forme + f) or (mere V // formere + _h) ormon Om'on // + n) or (m O: // normal - length 90 in ph_danish + st) or (m O: // + b) or (t O: // bortforklare + _ab) or 'O:d // stressed + or (al oR // oral + _esk) or (te 'V: // eskorte + _n) or (d or // nord, nordisk + n) or (sk O: // norsk + v) or (e+ O: // vores + hv) or ?O // hvorfra, hvorved + rek) or (d 'O: // exception - stressed o in 'rekord' + ak) or (d 'O: // exception - stressed o in 'akord' + s) or (te or // sorte + rep) or (ter 'V // stressed o + s) or (tA O // sortiment +_transp) or (t 'O: // stressed - transport + n) orth V:T // + rekt) or V // rektorforening -// PB when "ord" means 'word', the d isn't pronunced - ord (++ oR // PB ord , forord -// PB Exceptions to the or rule - "ord" doesn't mean "word" - k) ord (el Vrd // PB kordel - v) ord (e Vrd // PB helliget vorde dit navn - h) ord (e O:d // PB - b) ordeaux oRd'o // PB - conc) ord (e 'V:d // PB Concorde - g) ord (on V:d // PB name - n) ordi (sk oRdi // PB - _l) ord (_ V:d // PB - _l) ord (er_ Vrd // PB - _akk) ord 'V:?d // PB stressed - hv) ord (an Vrd // PB hvordan - m) ord (er ord // PB morder - m) ord (et oR // PB mordet - f) ord (+ V:d // PB Fordbil - f) ord (æ Vd' // PB fordærve - f) ord (ø Vd' // PB fordømme - v) ord (i 'Vrd // PB gernvordighed - ord (en+ Vrd // PB orden, ordensmagt - b) orde (nde orE // PB - ord (ene+ oR // PB ordene - ord (enen+ Vrd // PB ordenen - t) ord (enen+ ord // PB tordenen - _t) ord (++ ord // PB torden, tordne - j) ord (en oV // PB fjorden jorden - j) ord (an oRd // PB Jordan - j) ord (i oRd // PB jordisk - ord (entlig+ 'Vrd // PB overordentlig - stressed - ord (ne+ Vrd // PB ordne - ord (nin 'Vrd // PB ordning, forordning - or (dre+ Vr // PB ordre, ordrebog - k) ord (reng ord // PB kordrenge - _) ord (ret+ or // PB ordret - ord (retil+ Vrd // PB ordretilgang - ord (ruk Vrd' // PB fordrukken - ord (in+ Vrd // PB ordinær - b) ord (el Vrd' // PB bordel - v) or (t O // PB vorte - ordonnans Vrdon'&ns // PB ordonnans - ordrup ordr0b // PB Ordrup - Danish town - C) ore (_ o:V // PB more, store - b) ore oV // PB borerum - m) orel or'&#l // PB morel - _) orleans V:lens // PB New Orleans +// when "ord" means 'word', the d isn't pronunced + 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 // + conc) ord (e 'V:d // Concorde + g) ord (on V:d // name + n) ordisk ordisg // + _l) ord (_ V:d // + _l) ord (er_ Vrd // + _akk) ord 'V:?d // stressed + hv) ord (an Vrd // hvordan + m) ord (er ord // morder + m) ord (et oR // mordet + f) ord (+ V:d // Fordbil + f) ord (æ Vd' // fordærve + f) ord (ø Vd' // fordømme + v) ord (i 'Vrd // gernvordighed + ord (en+ O:d // orden, ordensmagt + b) orde (nde orE // + ord (ene+ oR // ordene + ord (enen+ O:d // ordenen + t) ord (enen+ ord // tordenen + _t) ord (++ ord // torden, tordne + j) ord (en oV // fjorden jorden + j) ord (an oRd // Jordan + j) ord (i oRd // jordisk + ord (entlig+ 'O:d // overordentlig - stressed + ord (ne+ O:d // ordne + ord (nin 'O:d // ordning, forordning + ordre (+ O:drV // ordre, ordrebog + k) ord (reng ord // kordrenge + _) ord (ret+ or // ordret + ord (retil+ Ord // ordretilgang + ord (ruk Vd' // fordrukken + ord (in+ Vrd // ordinær + b) ord (el Vrd' // bordel + v) or (t O: // vorte + ordonnans Vrdon'&ns // ordonnans + ordrup ordr0b // Ordrup - Danish town +// C) ore (_ o:V // more, store + b) ore oV // borerum + m) orel or'&#l // morel + _) orleans V:lens // New Orleans -// PB stress on previous syllable - '-tor_' (also -or) nouns in da_list +// stress on previous syllable - '-tor_' (also -or) nouns in da_list &) or ($p_alt+ ==V // karburator, rollator, multiplikator, junior &) or (i$p_alt+ V' // konditori &) or (er$p_alt ''o: // karburatorer, juniorer @@ -6650,415 +6930,515 @@ _transp) or (t 'V: // PB stressed - transport &t) or (ie$p_alt 'or // laboratoriet - conflict with -ium rule &t) orium ($p_alt+ 'oriOm // don't spoil the -ium rule - laboratorium &) or (isk$p_alt ''o // manipulatorisk - mot) or (er 'o // PB flymotorer - d) or ($p_alt+ 'or // PB kondor - n) or ($p_alt+ 'or // PB sonor + mot) or (er 'o // flymotorer + d) or ($p_alt+ 'or // kondor + n) or ($p_alt+ 'or // sonor -// PB no stress on initial 'for' - 1.550 words. +// no stress on initial 'for' - 1.550 words. // Secondary stress on the next syllable after a syllable. - _f) or (@++ %V // PB fork'ølet, fordr'ev - f) or (@ V, // PB s'ommerfork,ølet + _f) or (@++ %V // fork'ølet, fordr'ev +// _f) or (mL11++ %V // formane, formaning, formene + f) or (@ V, // s'ommerfork,ølet + _f) ore (g++ O:O // foregå, foregive // exceptions to initial 'for' below - 'for' means "front/fore" - _f) or (a_+ 'V // PB fora (plur. of 'forum') - _f) or (an_+ 'V // PB foran - _f) or (ude_+ 'V // PB forude - _f) or (ankørende+ 'V // PB forankørende - _f) or (annævnt+ 'V // PB forannævnt - _f) or (ansat+ 'V // PB foransat - _f) or (anstille+ 'V // PB foranstillet - _f) or (anstående+ 'V // PB foranstående - _f) or (ben_+ 'V // PB forben - _f) or (bens+ 'V // PB forbens - _f) or (benene+ 'V // PB forbenene - _f) or (behand+ 'V // PB forbehandle - _f) or (beho+ 'V // PB forbehold - _f) or (bered+ 'V // PB forberede - _f) or (bil+ 'V // PB forbillede - _f) or (bjerg+ 'V // PB forbjerg - _f) or (bogstav+ 'V // PB forbogstav - _f) or (bud_+ 'V // PB forbud - _f) or (buds+ 'V // PB forbudstiden - _f) or (bund+ 'V // PB forbund - _f) or (bøn+ 'V // PB forbøn - _f) or (censur+ 'V // PB forcensur - _f) or (danser+ 'V // PB fordanser - _f) or (del_+ 'V // PB fordel - _f) or (delen_+ 'V // PB fordelen - _f) or (dom+ 'V // PB fordom - _f) or (dring+ 'V // PB fordring, fordringdfri - _f) or (dæk_+ 'V // PB fordæk - _f) or (dæks+ 'V // PB fordæks - _f) or (dækkene+ 'V // PB fordækkene - _f) or (dør+ 'OR // PB - _f) ore (++ '0:3 // PB foreberinge, foregribe - _f) ore (l_+ or'&#l // PB - _f) ore (lle+ or'&#l // PB foreller (fish) - _f) ore (n+ V'e: // PB forene, forening - genf) ore (n+ Ve: // PB genforene - f) ore (sC 0:3 // PB middagsforeslag - _f) or (el_+ or // PB forel - _f) or (et_+ 'o3 // PB foret - _f) or (elsk+ V' // PB forelske - _f) orend (e+ 'V,en // PB forende - _f) orenkl (e+ V'enkl // PB forenkle - _f) orenkl (ing V'enkl // PB forenkling - _f) orensis (k or'&#nsis // PB forensisk - _f) oretag (som %V3't&: // PB foretagsom - _f) orev (ige V'e:v // PB forevige - _f) or (fader+ 'V // PB forfader - _f) or (far+ 'V // PB forfar - _f) or (fædr+ 'V // PB forfædre - _f) or (gårs+ Vr // PB - f) or (ter+ V // PB plur. - _f) or (fang+ V // PB forfang - _f) or (felt+ V // PB forfelt - _f) or (film+ V // PB forfilm - _f) or (fjor+ V // PB forfjor - _f) or (ford+ V // PB forfordele - _f) or (forfod+ V // PB forfod - _f) or (forstærk+ V // PB forforstærker - _f) or (forsøg+ V // PB forforsøg - _f) or (fra+ 'V // PB forfra - _f) or (foryserum+ V // PB forfryserum - _f) or (fødder+ V // PB forfødder - _f) or (gast+ V // PB forgast - _f) or (gang+ 'V // PB forgang, forgangen - _f) or (gemak+ 'V // PB forgemak - _f) or (grund+ 'V // PB forgrund - _f) or (gænger+ 'V // PB forgænger - _f) or (gære+ 'V // PB forgære - _f) or (gård+ 'V // PB forgård - _f) or (hal+ 'V // PB forhal - f) or (halA++ %V // PB forhale, forhaling - _f) or (ham+ 'V // PB forhammer - _f) or (have+ 'V // PB forhave - _f) or (hen+ 'V // PB forhenværende - _f) or (histo+ 'V // PB forhistorie, forhistorisk - _f) or (hjul+ 'V // PB forhjul, forhjulstrukken - _f) or (hold 'V // PB forhold, forholdsvis - _f) or (holde %V // PB forholde sig til - _f) or (holdet+ 'V // PB forholdet - _f) or (hud+ 'V // PB forhud - _f) or (hus+ 'V // PB forhus - _f) or (hæng+ 'V // PB forhæng - _f) or (hånd+ 'V // PB forhånd - _f) or (hånds+ 'V // PB forhåndsindtryk - _f) or (ring_ V: // PB foring - _f) or (ringen V: // PB foringen - _f) or (kammer 'V // PB forkammer - _f) or (kant V // PB forkant - _f) or (karl+ 'V // PB forkarl - _f) or (klog+ 'V // PB forklog, forklogskab - _f) or (klædet+ 'V // PB forklædet - _f) or (kontor+ 'V // PB forkontor - _f) or (krop+ 'V // PB forkrop - _f) or (kvinde+ 'V // PB forkvinde - _f) or (kæmper+ 'V // PB forkæmper - _f) or (kærlighed 'V // PB forkærlighed - _f) or (køb+ 'V // PB forkøbet, forkøbsret - _f) or (kørselsret V // PB forkørselsret - _f) or (lag+ 'V // PB forlag - _f) or (lags+ 'V // PB forlagsret - _f) or (land+ 'V // PB forland - _f) or (lem+ 'V // PB forlem - _f) or (lover+ 'V // PB forlover - _f) or (lyd+ 'V // PB forlyd - _f) or (lydende+ V' - _f) or (lygte+ 'Vr // PB forlygte - _f) or (lys+ 'V // PB forlys - _f) orlyst Vl'Wsd // PB forlyste, forlystelse - _f) or (lægger 'V // PB forlægger - _f) or (læns+ 'V // PB forlæns - _f) or (læse+ 'V // PB forlæse - _f) or (maldehyd+ 'V // PB formaldehyd - _f) or (mand+ 'V // PB formand, formandsskifte - _f) or (mænd+ 'V // PB formænd - _f) or (mbar+ 'V // PB formbar - _f) or (mbrød+ 'V // PB formbrød - _f) or (me++ 'V // PB forme, formel - _f) or (mle+ 'V // PB formlen - _f) or (melig+ 'V // PB formelig - _f) ormer (_+ 'VrmV // PB former - problem with "formér" - _f) or (mfast+ 'Vr // PB formfast - _f) or (mfri+ 'Vr // PB formfri - _f) or (fuldendt+ 'Vr // PB formfuldendt - _f) or (mgiv+ 'Vr // PB formgive - _f) or (middag+ 'Vr // PB formiddag - _f) or (mkage+ 'Vr // PB formkage - _f) or (mlære+ 'Vr // PB formglære - _f) or (mløs+ 'Vr // PB formløs - _f) or (mning+ 'Vr // PB formning - _f) or (mor+ 'Vr // PB formor - like forefather - _f) or (mødre+ 'Vr // PB formødre - _f) or (mpresse+ 'Vr // PB formpresse - _f) or (ms+ 'Vr // PB formsikker, formskære, formsprog, formstof - _f) ormssag+ (K 'Vrm?s,sa // PB formssag - _f) or (mt+ 'Vr // PB formtørre - _f) or (mue+ 'Vr // PB formue, formueskat - _f) or (mynder+ 'Vr // PB formynder, formynderisk - _f) or (mål+ 'Vr // PB formål, formålstjenelig - _f) or (navn+ 'Vr // PB fornavn - _f) or (nem_+ 'Vr // PB fornem - _f) or (nemt_+ 'Vr // PB fornemt - _f) or (omtale+ 'Vr // PB foromtale - _f) or (ord+ 'Vr // PB forord - _f) or (ordn or // PB forordning - _f) or (over+ 'Vr // PB forover - _f) or (panthaver+ 'Vr // PB forpanthaver - _f) or (parti+ 'Vr // PB forparti - _f) or (post+ 'Vr // PB forpost - _f) or (praktik+ 'Vr // PB forpraktik - _f) or (premiere+ 'Vr // PB forpremiere - _f) or (programmere+ 'Vr // PB forprogrammere - _f) or (prøve+ 'Vr // PB forprøve - _f) or (på+ 'Vr // PB forpå - _f) or (rang+ 'Vr // PB forrang - _f) or (rest+ 'Vr // PB forrest - _f) or (ret+ 'Vr // PB forret - _f) or (retni+ Vr // PB forretningsmand - _f) or (rider+ 'Vr // PB forrider - _f) or (rige+ 'Vr // PB forrige - _f) or (rude+ 'Vr // PB forrude - _f) or (råd_+ 'Vr // PB forråd - _f) or (slag+ 'Vr // PB forslag - _f) or (sanger+ 'Vr // PB forsanger - _f) or (sats+ 'Vr // PB forsats, forsatsrude - _f) or (side+ 'Vr // PB forside - _f) or (ske+ 'Vr // PB forske - _f) or (skn+ 'Vr // PB forskning - _f) or (skelli+ %Vr // PB forskellig - _f) or (sker+ 'Vr // PB forsker, forskerby - _f) or (skel_+ 'Vr // PB forskel - _f) or (skelsbehandl+ 'Vr // PB forskelsbehandle, -behandling - _f) or (skelsløs+ 'Vr // PB forskelsløs - _f) or (skol+ 'Vr // PB forskole, forskoling - _f) or (skrift+ 'Vr // PB forskrift - _f) or (skud+ 'Vr // PB forskud - _f) or (skyl+ 'Vr // PB forskyl - _f) or (skyldt+ V' // PB forskyldt - _f) or (skære+ 'Vr // PB forskære, -bræt - _f) or (skærm+ 'Vr // PB forskærm - _f) or (slag_+ 'Vr // PB forslag - _f) or (slags+ 'Vr // PB forslas, -stiller - _f) or (sæde+ 'Vr // PB - _f) or (læbe+ 'Vr // PB forlæbe - _f) or (smag+ 'Vr // PB forsmag - _f) or (sommer+ 'Vr // PB forsommer - _f) or (sorg+ 'Vr // PB forsorg - _f) or (spand+ 'Vr // PB forspand - _f) or (spil_+ 'Vr // PB forspil - _f) or (spillet+ 'Vr // PB forspillet - _f) or (spillene+ 'Vr // PB forspillene - _f) or (spir+ 'Vr // PB forspire - _f) or (spring+ 'Vr // PB forspring - _f) or (spændt+ 'Vr // PB forspændt - _f) or (stad+ 'Vr // PB forstad, forstadium - _f) or (stæder+ 'Vr - _f) or (stander+ 'Vr // PB forstander - _f) or (stavelse+ 'Vr // PB forstavelse - _f) or (stavn+ 'Vr // PB forstavn - _f) or (stbotanik+ 'Vr // PB forstbotanik - _f) or (stkandidat+ 'Vr // PB forstkandidat - _f) or (stlig+ 'Vr // PB forstlig - _f) or (stmand+ 'Vr // PB forstmand - _f) or (stmæssig+ 'Vr // PB forstmæssig - _f) or (studie+ 'Vr // PB forstudie - _f) or (studium+ 'Vr // PB forstudum - _f) or (stue+ 'Vr // PB forstue - _f) or (stvæsen+ 'Vr // PB forstvæsen - _f) or (stzoologi+ 'Vr // PB forstzoologi - _f) or (stævn+ 'Vr // PB forstævn - _f) or (svar_+ 'Vr // PB forsvar - _f) or (svarer+ 'Vr // PB forsvarer - _f) or (svars+ 'Vr // PB forsvars chef - _f) or (sæt+ 'Vr // PB forsæt - _f) or (så_+ 'Vr // PB forså - _f) ortaler+ 'Vrt&lV // PB fortaler - _f) or (tand+ 'Vr // PB fortand - _f) or (tands+ 'Vr // PB fortands - _f) or (tænder+ 'Vr // PB fortænder - _f) or (tegn_+ 'Vr // PB fortegn - _f) or (tegningsret+ 'Vr // PB fortegningsret - _f) or (tekst+ 'Vr // PB fortekst - _f) or (telt+ 'Vr // PB fortelt - _f) or (tfarende+ 'Vr // PB fortfarende - _f) or (tid+ 'O: // PB fortid - _f) or (til+ 'Vr // PB fortil - _f) or (tløbende+ 'Vr // PB fortløbende - _f) or (tog+ 'Vr // PB fortog - _f) or (tov+ 'Vr // PB fortov - _f) or (trappe+ 'Vr // PB fortrappe - _f) or (trin_+ 'Vr // PB fortrin - _f) or (trins+ 'Vr // PB fortrinsret - _f) or (trop+ 'Vr // PB fortrop - _f) or (tryk+ 'Vr // PB fortryk - _f) or (tsætte+ 'Vr // PB fortsætte - _f) or (tunge+ 'Vr // PB fortunge - _f) or (tæppe+ 'Vr // PB fortæppe - _f) or (ud+ 'Vr // PB ud, forud, forudsætte - _f) oruden (_+ or'uD-n // PB foruden - _f) or (valg+ 'Vr // PB forvalg - _f) or (varm+ 'Vr // PB forvarme, forvarmning - _f) or (vars+ 'Vr // PB forvarsle, forvarsling - _f) or (vask_+ 'Vr // PB forvask - _f) or (vejen+ 'Vr // PB forvejen - _f) or (værelse+ 'Vr // PB forværelse - _f) or (åd+ 'Vr // PB foråd - _f) or (år+ 'Vr // PB forår - prof) or (ma 'Vr // PB stressed + _f) or (a_+ 'O: // fora (plur. of 'forum') + _f) or (an_+ 'O: // foran + _f) or (ude_+ 'O: // forude + _f) or (ankørende+ 'O: // forankørende + _f) or (annævnt+ 'O: // forannævnt + _f) or (ansat+ 'O: // foransat + _f) or (anstille+ 'O: // foranstillet + _f) or (anstående+ 'O: // foranstående + _f) or (ben_+ 'O: // forben + _f) or (bens+ 'O: // forbens + _f) or (benene+ 'O: // forbenene + _f) or (behand+ 'O: // forbehandle + _f) or (beho+ 'O: // forbehold + _f) or (bered+ 'O: // forberede + _f) or (bil+ 'O: // forbillede + _f) or (bjerg+ 'O: // forbjerg + _f) or (bogstav+ 'O: // forbogstav + _f) or (bud_+ 'O: // forbud + _f) or (buds+ 'O: // forbudstiden + _f) or (bund+ 'O: // forbund + _f) or (bøn+ 'O: // forbøn + _f) or (censur+ 'O: // forcensur + _f) or (danser+ 'O: // fordanser + _f) or (del_+ 'O: // fordel + _f) or (delen_+ 'O: // fordelen + _f) or (dom+ 'O: // fordom + _f) or (dring+ 'O: // fordring, fordringdfri + _f) or (dæk_+ 'O: // fordæk + _f) or (dæks+ 'O: // fordæks + _f) or (dækkene+ 'O: // fordækkene + _f) or (dør+ 'OR // + _f) ore (Cr++ '0:3 // foreberinge, foregribe + _f) ore (l_+ or'&#l // + _f) ore (lle+ or'&#l // foreller (fish) + _f) ore (n+ V'e: // forene, forening + genf) ore (n+ Ve: // genforene + f) ore (sC+ 0:3 // forestiller + _f) or (el_+ or // forel + _f) or (et_+ 'o3 // foret + _f) or (elsk+ V' // forelske + _f) orend (e+ 'O:,en // forende + _f) orenkl (e+ V'enkl // forenkle + _f) orenkl (ing V'enkl // forenkling + _f) orensis (k or'&#nsis // forensisk + _f) oretag (som %V3't&: // foretagsom + _f) orev (ige V'e:v // forevige + _f) or (fader+ 'O: // forfader + _f) or (far+ 'O: // forfar + _f) or (fædr+ 'O: // forfædre + _f) or (gårs+ O: // + f) or (ter+ O // plur. + _f) or (fang+ O // forfang + _f) or (felt+ O // forfelt + _f) or (film+ O // forfilm + _f) or (fjor+ O // forfjor + _f) or (ford+ O // forfordele + _f) or (forfod+ O // forfod + _f) or (forstærk+ O // forforstærker + _f) or (forsøg+ O // forforsøg + _f) or (fra+ 'O: // forfra + _f) or (foryserum+ V // forfryserum + _f) or (fødder+ O // forfødder + _f) or (gast+ O // forgast + _f) or (gang+ 'O: // forgang, forgangen + _f) or (gemak+ 'O: // forgemak + _f) or (grund+ 'O: // forgrund + _f) or (gænger+ 'O: // forgænger + _f) or (gære+ 'O: // forgære + _f) or (gård+ 'O: // forgård + _f) or (hal+ 'O: // forhal + f) or (halA++ %O // forhale, forhaling + _f) or (ham+ 'O: // forhammer + _f) or (have+ 'O: // forhave + _f) or (hen+ 'O: // forhenværende + _f) or (histo+ 'O: // forhistorie, forhistorisk + _f) or (hjul+ 'O: // forhjul, forhjulstrukken + _f) or (hold+ 'O: // forhold, forholdsvis + _f) or (holde %V // forholde sig til + _f) or (holdet+ 'O: // forholdet + _f) or (hud+ 'O: // forhud + _f) or (hus+ 'O: // forhus + _f) or (hæng+ 'O: // forhæng + _f) or (hånd+ 'O: // forhånd + _f) or (hånds+ 'O: // forhåndsindtryk + _f) or (ring_ O: // foring + _f) or (ringen O: // foringen + _f) or (kammer 'O: // forkammer + _f) or (kant+ O': // forkant + _f) or (karl+ 'O: // forkarl + _f) or (klog+ 'O: // forklog, forklogskab + _f) or (klædet+ 'O: // forklædet + _f) or (kontor+ 'O: // forkontor + _f) or (krop+ 'O: // forkrop + _f) or (kvinde+ 'O: // forkvinde + _f) or (kæmper+ 'O: // forkæmper + _f) or (kærlighed 'O: // forkærlighed + _f) or (køb+ 'O: // forkøbet, forkøbsret + _f) or (kørselsret O // forkørselsret + _f) or (lag+ 'O: // forlag + _f) or (lags+ 'O: // forlagsret + _f) or (land+ 'O: // forland + _f) or (lem+ 'O: // forlem + _f) or (lover+ '?O: // forlover + _f) or (lyd+ 'O: // forlyd + _f) or (lydende+ O' + _f) or (lygte+ '?O: // forlygte + _f) or (lys+ 'O: // forlys + _f) orlyst Vl'Wsd // forlyste, forlystelse + _f) or (lægger+ 'O: // forlægger + _f) or (læns+ 'O: // forlæns + _f) or (læse+ 'O: // forlæse + _f) or (maldehyd+ 'O: // formaldehyd + _f) or (mand+ 'O: // formand, formandsskifte + _f) or (mænd+ 'O: // formænd + _f) or (mbar+ 'O: // formbar + _f) or (mbrød+ 'O: // formbrød + _f) or (me++ 'O // forme + _f) or (mel++ '?O // formel + _f) or (mene++ V // formene + _f) or (mente++ V // formente + _f) or (mere++ V // formere + _f) or (meri++ V // formering + _f) or (mle+ 'O: // formlen + _f) or (melig+ 'O: // formelig + _f) ormer (_+ 'O::mV // former - problem with "formér" + _f) or (mfast+ 'O:: // formfast + _f) or (mfri+ 'O:: // formfri + _f) or (fuldendt+ 'O:: // formfuldendt + _f) or (mgiv+ 'O:: // formgive + _f) or (middag+ 'O:: // formiddag + _f) or (mkage+ 'O:: // formkage + _f) or (mlære+ 'O:: // formglære + _f) or (mløs+ 'O:: // formløs + _f) or (mning+ 'O:: // formning + _f) or (mor+ 'O:: // formor - like forefather + _f) or (mødre+ 'O:: // formødre + _f) or (mpresse+ 'O:: // formpresse + _f) or (ms+ 'O: // formsikker, formskære, formsprog, formstof + _f) ormssag (+ 'O:ms,s& // formssag + _f) or (mtø+ 'O: // formtørre + _f) or (mue+ 'O: // formue, formueskat + _f) or (mynder+ 'O: // formynder, formynderisk + _f) or (mål+ 'O: // formål, formålstjenelig + _f) or (navn+ 'O: // fornavn + _f) or (nem_+ 'O: // fornem + _f) or (nemt_+ 'O: // fornemt + _f) or (omtale+ 'O: // foromtale + _f) or (ord+ 'O: // forord + _f) or (ordn O // forordning + _f) or (over+ 'O: // forover + _f) or (panthaver+ 'O: // forpanthaver + _f) or (parti+ 'O: // forparti + _f) or (post+ 'O: // forpost + _f) or (praktik+ 'O: // forpraktik + _f) or (premiere+ 'O: // forpremiere + _f) or (programmere+ 'O: // forprogrammere + _f) or (prøve+ 'O: // forprøve + _f) or (på+ 'O: // forpå + _f) or (rang+ 'O: // forrang + _f) or (rest+ 'O: // forrest + _f) or (ret+ 'O: // forret + _f) or (rette+ V' // forrette + _f) or (retni+ V // forretningsmand + _f) or (rider+ 'O: // forrider + _f) or (rige+ 'O: // forrige + _f) or (rude+ 'O: // forrude + _f) or (råd_+ 'O: // forråd + _f) or (slag+ 'O: // forslag + _f) or (sanger+ 'O: // forsanger + _f) or (sats+ 'O: // forsats, forsatsrude + _f) or (side+ 'O: // forside + _f) or (ske+ 'O: // forske + _f) or (skn+ 'O: // forskning + _f) or (skelli+ %O // forskellig + _f) or (sker+ 'O: // forsker, forskerby + _f) or (skel_+ 'O: // forskel + _f) or (skelsbehandl+ 'O: // forskelsbehandle, -behandling + _f) or (skelsløs+ 'O: // forskelsløs + _f) or (skol+ 'O: // forskole, forskoling + _f) or (skrift+ 'O: // forskrift + _f) or (skud+ 'O: // forskud + _f) or (skyl+ 'O: // forskyl + _f) or (skyldt+ O' // forskyldt + _f) or (skære+ 'O: // forskære, -bræt + _f) or (skærm+ 'O: // forskærm + _f) or (slag_+ 'O: // forslag + _f) or (slags+ 'O: // forslas, -stiller + _f) or (sæde+ 'O: // + _f) or (læbe+ 'O: // forlæbe + _f) or (smag+ 'O: // forsmag + _f) or (sommer+ 'O: // forsommer + _f) or (sorg+ 'O: // forsorg + _f) or (spand+ 'O: // forspand + _f) or (spil_+ 'O: // forspil + _f) or (spillet+ 'O: // forspillet + _f) or (spillene+ 'O: // forspillene + _f) or (spir+ 'O: // forspire + _f) or (spring+ 'O: // forspring + _f) or (spændt+ 'O: // forspændt + _f) or (stad+ 'O: // forstad, forstadium + _f) or (stæder+ 'O: + _f) or (stander+ 'O: // forstander + _f) or (stavelse+ 'O: // forstavelse + _f) or (stavn+ 'O: // forstavn + _f) or (stbotanik+ 'O: // forstbotanik + _f) or (stkandidat+ 'O: // forstkandidat + _f) or (stlig+ 'O: // forstlig + _f) or (stmand+ 'O: // forstmand + _f) or (stmæssig+ 'O: // forstmæssig + _f) or (studie+ 'O: // forstudie + _f) or (studium+ 'O: // forstudum + _f) or (stue+ 'O: // forstue + _f) or (stvæsen+ 'O: // forstvæsen + _f) or (stzoologi+ 'O: // forstzoologi + _f) or (stævn+ 'O: // forstævn + _f) or (svar_+ 'O: // forsvar + _en_f) or (svarer+ 'O: // forsvarer - noun + _f) or (svars+ 'O: // forsvarschef + _f) or (sæt+ 'O: // forsæt + _f) or (så_+ 'O: // forså + _f) ortaler+ 'O:t&lV // fortaler + _f) or (tand+ 'O: // fortand + _f) or (tands+ 'O: // fortands + _f) or (tænder+ 'O: // fortænder + _f) or (tegn_+ 'O: // fortegn + _f) or (tegningsret+ 'O: // fortegningsret + _f) or (tekst+ 'O: // fortekst + _f) or (telt+ 'O: // fortelt + _f) or (tfarende+ 'O: // fortfarende + _f) or (tid+ 'O: // fortid + _f) or (til+ 'O: // fortil + _f) or (tløbende+ 'O: // fortløbende + _f) or (tog+ 'O: // fortog + _f) or (tov+ 'O: // fortov + _f) or (trappe+ 'O: // fortrappe + _f) or (trin_+ 'O: // fortrin + _f) or (trins+ 'O: // fortrinsret + _f) or (trop+ 'O: // fortrop + _f) or (tryk+ 'O: // fortryk + _f) ort (sætte+ 'O:d // fortsætte + _f) or (tunge+ 'O: // fortunge + _f) or (tæppe+ 'O: // fortæppe + _f) or (ud++ 'O: // ud, forud, forudsætte + _f) oruden (_+ O:'uD@-n // foruden + _f) or (valg+ 'O: // forvalg + _f) or (varm+ 'O: // forvarme, forvarmning + _f) or (vars+ 'O: // forvarsle, forvarsling + _f) or (vask_+ 'O: // forvask + _f) or (vejen+ 'O: // forvejen + _f) or (værelse+ 'O: // forværelse + _f) or (åd+ 'O: // foråd + _f) or (år++ 'O: // forår + prof) or (ma 'O: // stressed .group p p p pp p to) pp (ost pp - _) på (P2 p'V // PB prefix - påtage, påmontere - _) på (ske p'O // PB not a prefix - påske - _) på (lide pV // PB pålidelig - _) på (vis pV // PB påvist - på (fund pV // PB reklamepåfund - på (virk pV // PB miljøpåvirkning - på (læg pV // PB håndspålæggelse - &) p (_ p // PB hjælp + _) på (P2 p'V // prefix - påtage, påmontere + _) på (ske p'O // not a prefix - påske + _) på (lide pV // pålidelig + _) på (vis pV // påvist + på (fund pV // reklamepåfund + på (virk pV // miljøpåvirkning + på (læg pV // håndspålæggelse + &) p (_ p // hjælp p (syk // psykolog [s,ykol'o] - sym) p (tom // PB silent p + sym) p (tom // silent p cam) pb (el b // silent p - Campbell - pipeline pajplajn // PB + pipeline paIplaIn // pitchpine peTSpa:jn // pb - praline pRAlin'e // PB - punchline pVnSlajn // PB - parfait pAf'E // PB - presbyterian prEsbytEri'&n // PB - protege prod@S'e // PB protege - protegé prod@S'e // PB protegé - _) passager p&s&sj'er // PB passager - peanut pi:nVd // PB - pseu sWw // PB pseudo - posthum pOsth'um // PB - _) pete (_ pi:t // PB name - _) petey pi:ti // PB name - paige pE:jdZ // BPB name - penelope pen'Elopi // PB - pony pVni // PB - peugeot pWS'o // PB car - _) pearl (_ pW:l // PB Pearl Harbor - pierre pjE:r // PB French name - perkins pWkens // PB name - pissoir pesw'A: // PB - peace pi:s // PB Greenpeace - paille (t p&j'E // PB stressed - pasadena p&s&d'in& // PB - perth pW:T // PB - pincenez pa:Nsn'e // PB - ra) phael f&'El // PB name - ral) ph f // PB name - picku (p pik'V // PB - peignoir pEnjw'A: // PB - palm (_beach pA:m // PB - paintball pEjntbO:l // PB - jose) ph f // PB - percy pWsi // PB name - _) piggy pigi // PB Miss Piggy - _) pétain pet'&N // PB name - _) poitier pwAtj'e // PB name - _) poirot pwAr'o // PB name - _) piaf pjAf // PB Edith Piaf - _) purvis p'3:ves // PB name + praline pRAlin'e // + punchline pVnSlaIn // + parfait pAf'E // + presbyterian prEsbytEri'&n // + protege prod@S'e // protege + protegé prod@S'e // protegé + _) passager p&s&sj'er // passager + peanut pi:nVd // + pseu sWw // pseudo + posthum pOsth'um // + _) pete (_ pi:t // name + _) petey pi:ti // name + paige pE:jdZ // name + penelope pen'Elopi // + pony pVni // + peugeot pWS'o // car + _) pearl (_ pW:l // Pearl Harbor + pierre pjE:r // French name + perkins pWkens // name + pissoir pesw'A: // + peace pi:s // Greenpeace + paille (t p&j'E // stressed + peru per'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: // + palm (_beach pA:m // + paintball pEjntbO:l // + jose) ph f // + percy pWsi // name + _) piggy pigi // Miss Piggy + _) pétain pet'&N // name + _) poitier pwAtj'e // name + _) poirot pwAr'o // name + _) piaf pjAf // Edith Piaf + _) purvis p'3:ves // name .group ph - ph (il f // PB spelling error - no dot in 'phil.' - phillippe fil'i:p // PB French name - phoe fi // PB Phoenix - philadelphia fil&d'Elfi& // PB + ph (il f // spelling error - no dot in 'phil.' + phillippe fil'i:p // French name + phoe fi // Phoenix + philadelphia fil&d'Elfi& // .group q q k - @) que =k // PB petanque, Monique - quez kE:s // PB Vasquez - quebec kvib'Ek // PB - bou) quet k''e // PB - queen kwi:n // PB - te) qu (ila 'k // PB tequila - qui (z kvi // PB - quiche kiS // PB - quijote kiS'Vt // PB name - quixote kiS'Vt // PB name - qu (isling kv // PB - quarter kwOtV // PB + @) que =k // petanque, Monique + quez kE:s // Vasquez + quebec kvib'Ek // + bou) quet k''e // + queen kwi:n // + te) qu (ila 'k // tequila + qui (z kvi // + quiche kiS // + quijote kiS'Vt // name + quixote kiS'Vt // name + qu (isling kv // + quarter kwOtV // .group r - r R - rr R - _) rhode RWwd // PB Rhodes - rheu (ma RVj // PB rheumatoid - rickshaw rekSV: // PB rickshaw - rickshawer rekSV:V // PB rickshawer - riverside rivVsajd // PB Riverside Drive - _) reservoir resErvo'a: // PB - reservoir resErvoa: // PB - recut rikVd // PB - reggae REgEj // PB - right R'ajt // PB all right - research ris'W:tS // PB - rioja ri'Vk& // PB wine - ramirez _^_ES // PB name - reece ri:s // PB name - roquefort rVkf'V: // PB cheese - roger rVdZV // PB - russell rVs@-l // PB name - _) robie rVbi // PB name - resolution REsoluS'on // PB - _) road (_ rWwd // PB - rugby RVgbi // PB -virtual_) reality ri'&liti // PB - reagan REg&n // PB name - rodney rVdni // PB name - renoir r@nw'A: // PB name + r r + rr r +// verb and noun ending + 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 (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 + C) re (st_ R?V // taprest + C) re (ste_ R?V // tapreste + A) res (_ Vs + C) rer (_++ rV // beundrer + @) rer (_$p_alt+++ ''rEr // stressed - operer + @) rer (e_$p_alt+++ ''rE // stressed - operere, opererer + @) rer (es_$p_alt+++ r''E // stressed - opereres + C) ret (_++ rVD // ændret + A) rer (_++ V // horer + A) ret (_++ 3-VD // horet, fyret + A) rerne (_++ Vn@- // horerne + A) rerne (s_++ Vn@- // horernes + 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 + myld) re V // myldretid + +// "ret" exceptions - not a verb or noun ending + _) ret (_++ r&#t // + skue) ret (++ r&#t // + klage) ret (++ r&#t // + købe) ret (++ r&#t // +skatte) ret (++ r&#t // + lige) ret (++ r&#t // + møde) ret (++ r&#t // +påtale) ret (++ r&#t // + råde) ret (++ r&#t // + skole) ret (++ r&#t // +straffe) ret (++ r&#t // +sædvane) ret (++ r&#t // + tale) ret (++ r&#t // + veto) ret (++ r&#t // +borger) ret r&#t // + ind) ret (++ r&#t // + regel) ret (++ r&#t // + hen) ret (_ r&#t // + _ord) ret (++ r&#t // ordret oversættelse +menneske) ret (++ r&#t // + fiske) ret (++ r&#t // + liv) ret (++ r&#t // +færdig) ret (++ r&#t // +stemme) ret (++ r&#t // + arve) ret (++ r&#t // + bygge) ret (++ r&#t // + _laza) ret (++ '&#t // + bytte) ret (++ r&#t // +dagpenge) ret (++ r&#t // + ene) ret (++ r&#t // + rett (++++ r?&#t // henrette, rettroende - only one t + s) ret (++ &#t // rigsret +højeste) ret (++ &#t // +familie) ret (++ r&#t // + by) ret (++ r&#t // + lands) ret (++ r&#t // + marga) ret (++ &#t // name + naza) ret (++ &#t // name + under) ret (++ r&#t // +første) ret (++ r&#t // + gryde) ret (++ r&#t // + _tabu) ret (++ '&#t // + u) ret (_++ 3D // +ret_og_u) ret (+ r&#t // + gør_u) ret (++ r&#t // +gøre_u) ret (++ r&#t // +e_mig_u) ret (++ r&#t // gjorde mig uret +e_dig_u) ret (++ r&#t // gjorde dig uret +e_os_u) ret (++ r&#t // gjorde os uret +e_dem_u) ret (++ r&#t // gjorde dem uret +t_mig_u) ret (++ r&#t // gjort mig uret +t_dig_u) ret (++ r&#t // gjort dig uret +t_dem_u) ret (++ r&#t // gjort dem uret +t_jer_u) ret (++ r&#t // gjort jer uret +t_os_u) ret (++ r&#t // gjort os uret +gjort_u) ret (++ r&#t // gjort uret +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 + + _) rhode RWwd // Rhodes + rheu (ma RVj // rheumatoid + rickshaw rekSV: // rickshaw + rickshawer rekSV:V // rickshawer + riverside rivVsaId // Riverside Drive + _) reservoir resErvo'a: // + reservoir resErvoa: // + recut rikVd // + reggae REgEj // + right R'aIt // all right + research ris'W:tS // + rioja ri'Vk& // wine + ramirez _^_ES // name + reece ri:s // name + roquefort rVkf'V: // cheese + roger rVdZV // name + russell rVs@-l // name + _) robie rVbi // name + resolution REsoluS'on // + _) road (_ rWwd // + rugby RVgbi // +virtual_) reality ri'&liti // + reagan REg&n // name + rodney rVdni // name + renoir r@nw'A: // name r (K r // not followed by a vowel - hve) r r // PB hver - b) r r // bror -// Cd) r (e_ r // PB andre -// Ad) r (e_ R // PB andre - se) r (_ r // PB ser - he) r (_ r // PB her - je) re (s V // PB jeres - de) re (s V // PB deres - @) re (_ rV // PB "re" ending a word - være, sejre - hav) re rV // PB havregryn - _ent) re (_ R'e // PB entre + hve) r r // hver + b) r 3- // bror + se) r (_ r // ser + he) r (_ r // her + je) re (s V // jeres + de) re (s V // deres + kø) re V // køretøj + ho) re V // horeunge + smø) re V // smørefedt + hav) re rV // havregryn + bekym) ret rVD // bekymret + _ent) re (_ R'e // entre bu) rd (eK rd æ) r (er_N // silent r - skærer æ) re (_N V // silent r - skære - læ) re V // PB lærerigt - sæ) reg (en rej // PB særegenhed - g) re (_ rV // PB yngre - sa) rd (el rd // PB sardel - ga) rd (e rd // PB garde + læ) re V // lærerigt + sæ) reg (en 3-ej // særegenhed + sæ) reg (ne 3-ej // særegne + æ) rgre 3-wRV // ærgre, ærgrelse + æ) rger 3-wV // ærgerlig + sa) rd (el rd // sardel + ga) rde rd@- // garde ve) rd (eKK rd - hå) rd // PB silent rd - hård - hå) rd (e : // PB hårde - y) rd (e_ rd // PB myrde, byrde + hå) rd // silent rd - hård + hå) rd (e : // hårde + y) rd (e_ rd // myrde, byrde o) rd (el++ rd - o) rd (en++ rd // PB exception - pronounce d in 'orden, ordentlig' + o) rd (en++ rd // exception - pronounce d in 'orden, ordentlig' o) rd (rin d - e) r (e_N // PB hellere - dia) re r'e // PB diare + e) r (e_N // hellere + dia) re r'e // diare diar) re r'e -transpo) r (t //PB transport - au_) revoir r@w'a:r // PB au revoir - rouge ru:S // PB - richie RitSi // PB name - rajah rAdZ& // PB - home_) run RVn // PB - richelieu riSlj'W // PB name - reality ri'&liti // PB - rushmore rVSmO: // PB +transpo) r (t // transport + au_) revoir r@w'a:r // au revoir + rouge ru:S // + richie RitSi // name + rajah rAdZ& // + home_) run RVn // + richelieu riSlj'W // name + reality ri'&liti // + rushmore rVSmO: // name -// PB words ending with -ri in da_list have a stressed "i" +// words ending with -ri in da_list have a stressed "i" // The stress is kept in compounds where a word is added after the word. // If a word is added before the word, it reverts to normal stress // If -isk is added the previous syllable gets the stress @@ -7068,347 +7448,365 @@ transpo) r (t //PB transport .group s s s ss s - s (sh s // PB lysshow - sc (e s // PB scene - di) sc (ip s' // PB disciple -fransi) sc (o =sk // PB - taba) sc (o =sk // PB - ma) sc (ara sk' // PB - di) sc (ount sk' // PB - sc (rap sk // PB scrapbog - s (cigar s // PB majscigaret - sc (oo sk // PB scooter, scoop - _) sh S // PB shaman - _) shirley SWli // PB name - fi) sh (er S // PB - shot SVt // PB snapshot - shaw SO: // PB name - sc (or sk // PB score - me) sc (al sk // PB - sco (t skV // PB Scotland Yard - skateboard skEjtbO:d // PB - shaughnessy SOnEsi // PB name - sully sVli // PB name - spielberg spilbW:g // PB name - sotheby sVD3bi // PB name + s (sh s // lysshow + sc (e s // scene + ssi (o S // depression + fa) sc s // fascinere + di) sc (ip s' // disciple +fransi) sc (o =sk // + taba) sc (o =sk // Tabasco + ma) sc (ara sk' // maskara + di) sc (ount sk' // + sc (rap sk // scrapbog + s (cigar s // majscigaret + sc (oo sk // scooter, scoop + _) sh S // shaman + _) shirley SWli // name + fi) sh (er S // + shot SVt // snapshot + shaw SO: // name + sc (or sk // score + me) sc (al sk // + sco (t skV // Scotland Yard + skateboard skEjtbO:d // + shaughnessy SOnEsi // name + sully sVli // name + spielberg spilbW:g // name + sotheby sVD3bi // name + shelagh Si:l& // name -// PB/JD s suffix - $alt words in da_list +///JD s suffix - $alt words in da_list // 2-3.000 words end with s, so this cannot be a general suffix. // There would be too many exceptions. &) s (_$p_altS1 s - abce) s s // PB not a suffix - rece) s s // PB not a suffix -// proce) s s // PB not a suffix - exce) s s // PB not a suffix - kommi) s (_ = // PB not a suffix, silent s, stressed i - kommi) s (e // PB not a suffix, silens s - kommissen - ky) s s // PB not a suffix -anderlede) s s // PB not a suffix -interferen) s s // PB not a suffix -eksisten) s s // PB -//kohæren) s s // PB -residen) s s // PB -// tilpa) s s + abce) s s // not a suffix + rece) s s // not a suffix + exce) s s // not a suffix + kommi) s (_ = // not a suffix, silent s, stressed i + kommi) s (e // not a suffix, silens s - kommissen + ky) s s // not a suffix +anderlede) s s // not a suffix +interferen) s s // not a suffix +eksisten) s s // +residen) s s // - pu) sh S // PB pusher - mo) sh (e S // PB name - tri) sh S // PB name - mar) sh S // PB Marsha - na) sh S // PB name - bi) sh (op S // PB name/noun - pa) sh (a S // PB - e) scort sk'V:t // PB -franci) sc (o sk // PB Francisco - e) sc (obar sk // PB Spanish name - port_) said s&'id // PB city in Egypt - @@) som =sVm // PB stress on previous syllable - opmærksom - s (omkost+ s // PB Sundhedsomkostninger - kromo) som s'om // PB stressed + pu) sh S // pusher + mo) sh (e S // name + tri) sh S // name + mar) sh S // Marsha + na) sh S // name + bi) sh (op S // name/noun + pa) sh (a S // + e) scort sk'V:t // +franci) sc (o sk // Francisco + e) sc (obar sk // Spanish name + port_) said s&'id // city in Egypt + @@) som =sVm // stress on previous syllable - opmærksom + s (omkost+ s // Sundhedsomkostninger + kromo) som s'om // stressed s (A s s (ie s - si (on S // PB changed from "s (ion S" - division + si (on S // changed from "s (ion S" - division s (j s - sch S // PB changed from [s(ch] - gullasch - sh (erif S // PB - su) sh (i S // PB - ha) sh S // PB - sch (ool sk // PB - sherman SW:m&n // PB Sherman kampvogn - schweiz svajts // PB - sioux su: // PB red indian - al) sace 's&s // PB Alsace (French region) - _) sion si:Vn // PB Sion, Sions kirke - _) substitution substituS'on // PB - substitution substituSon // PB - shine sjajn@ // PB - saloon s&l'u:n // PB - skyline skajlajn // PB - slimline slemlajn // PB - support sOp'Vrd // PB - sheik Sajk // PB - sicilien sis'ili@n // PB - Italian island - scene sen3 // PB - scener senV // PB - i) scene (s s'en@ // PB stressed 'e - iscenesætte - speak spi:k // PB eSpeak - siegfried _^_DE // PB - slovakiet slov&k'i@D // PB - show Sou // PB - sydney sidni // PB - shakespeare SEiksbi:r // PB - suther sVDV // PB Southerland - squash sgwVS // PB - sussex sVsEgs // PB - shire S@ // PB British towns with final -shire - seamus SEim@s // PB name - _) steve sti:v // PB name - _) steven sti:v@n // PB name - sheila Si:l& // PB name - shor (t SV // PB shorts - _) stone sdoun // PB namde - Stone -empire_) state (_ stEjt // PB - _) sir (_ sW: // PB Sir Arthur - sher (wood SW // PB Sherwood Forrest - surf sWf // PB windsurfing - la) sur sur // PB lasurfarve - _) sugar (_ SugV // PB Sugar Ray - savoir s&voa: // PB savoir-faire - sonya sVnj& // PB name - sophie sOufi // PB name - sightseeing sajtsi:eN // PB - spitfire spetfajV // PB - suffolk sVfVk // PB - screwdriver skRudrajvV // PB - sunday sVndi // PB Sunday Times - solsjenitsyn sVlsj@n'itsin // PB - sloane slOwn // PB name - swanee swVni // PB Swanee River - sweet swi:t // PB + sch S // changed from [s(ch] - gullasch + salg) s s // salgschef + sh (erif S // + su) sh (i S // + ha) sh S // + sch (ool sk // + sherman SW:m&n // Sherman kampvogn + schweiz svaIts // + sioux su: // red indian + al) sace 's&s // Alsace (French region) + _) sion si:Vn // Sion, Sions kirke + _) substitution substituS'on // + substitution substituSon // + shine sjaIn@ // + saloon s&l'u:n // + skyline skaIlaIn // + slimline slemlaIn // + support sOp'Vrd // + sheik SaIk // + sicilien sis'ili@n // - Italian island + scene sen3 // + scener senV // + i) scene (s s'en@ // stressed 'e - iscenesætte + speak spi:k // eSpeak + siegfried _^_DE // + slovakiet slov&k'i@D // + show Sou // + sydney sidni // + shakespeare SEiksbi:r // + suther sVDV // Southerland + squash sgwVS // + sussex sVsEgs // + shire S@ // British towns with final -shire + seamus SEim@s // name + _) steve sti:v // name + _) steven sti:v@n // name + sheila Si:l& // name + shor (t SO // shorts + _) stone sdoun // namde - Stone +empire_) state (_ stEjt // + _) sir (_ sW: // Sir Arthur + sher (wood SW // Sherwood Forrest + surf sWf // windsurfing + la) sur sur // lasurfarve + _) sugar (_ SugV // Sugar Ray + savoir s&voa: // savoir-faire + sonya sVnj& // name + sophie sOufi // name + sightseeing saItsi:eN // + spitfire spetfaIV // + suffolk sVfVk // + screwdriver skRudraIvV // + sunday sVndi // Sunday Times + solsjenitsyn sVlsj@n'itsin // + sloane slOwn // name + swanee swVni // Swanee River + sweet swi:t // - er_) sig (_til saj // PB avoid [si] - glæder sig [saj] til - et_) sig (_til saj // PB avoid [si] - glædet sig [saj] til - e_) sig (_til saj // PB avoid [si] - glæde sig [saj] til - bare_) sig (_til si // PB verb - er_) sig (_ saj // PB avoid [si] - vænner sig - sig (_undskyld+ si // PB eller sig undskyld - _) sig (_mig si // PB sig mig engang - e_) sig (_mig saj // PB nærme sig mig - et_) sig (_ saj // PB avoid [si] vænnet sig - e_) sig (_+ saj // PB avoid [si] vænne sig, kaldte sig - gøre_) sig (_det saj // PB gøre sig det besvær - år_) sig (_ saj // PB han får sig en tår - bød_) sig (_ saj // PB chancen bød sig - sig (_det si // PB sig det med blomster - bare_) sig (_ si // PB bare sig sanddheden - _af_) sig (_ saj // PB avoid [si] af sig selv - _med_) sig (_ saj // PB med sig havde han ... - _han_) sig (_ saj // PB avoid [si] sluttede han sig til - t_) sig (_ saj // PB holdt sig fra, opført sig - sat_) sig (_ saj // PB sat sig op mod - lod_) sig (_ saj // PB lod sig udskrive - gav_) sig (_ saj // PB gav sig til, overgav sig - _) sig (_selv saj // PB noget for sig selv - _) sig (_for saj // PB han holdt sig for sig selv - _) sig (_i_deC saj // PB Han fandt sig i det/dem - for_) sig (_ saj // PB se noget for sig - fra_) sig (_ saj // PB slå fra sig - til_) sig (_ saj // PB tage noget til sig - gav_) sig (_til saj // PB overgav sig til - An_) sig (_til saj // PB beslutter han/hun sig til - _de_) sig (_til saj // PB beslutter de sig til - stå_) sig (_ saj // PB stå sig godt med - den_) sig (_ saj // PB holder den sig flydende -er_folk_) sig (_ saj // PB hvordan morer folk sig - _) sig (_med saj // PB - slå_) sig (_ saj // PB - på_) sig (_ saj // PB - _i_) sig (_ saj // PB - slår_) sig (_ saj // PB - _) sig (_alene saj // PB klare sig alene - _) sig (_over saj // PB brokke sig over -vende_) sig (_ saj // PB -erklære_) sig (_ saj // PB -betro_) sig (_ saj // PB -betror_) sig (_ saj // PB - føle_) sig (_ saj // PB -hygge_) sig (_ saj // PB - skød_) sig (_ saj // PB - sneg_) sig (_ saj // PB - slog_) sig (_ saj // PB - tog_) sig (_ saj // PB - kom_) sig (_ saj // PB -tvang_) sig (_ saj // PB tiltvang sig adgang - brød_) sig (_ saj // PB - ør_) sig (_ saj // PB klør sig, gør sig - man_) sig (_ saj // PB føler man sig - hun_) sig (_ saj // PB gemmer hun sig - han_) sig (_ saj // PB - de_) sig (_ saj // PB - _) sig (_ud_ saj // PB rode sig ud i - _) sig (_af_ saj // PB tage sig af - _) sig (_på_ saj // PB slå sig på - _) sig (_ind_ saj // PB bilde sig ind - ak_) sig (_ saj // PB drak sig fuld - gik_) sig (_ saj // PB gik sig en tur - så_) sig (_om saj // PB så sig om/omkring - ser_) sig (_om saj // PB ser sig om/omkring - _) sig (_om saj // PB kjolen smøg sig om kroppen - red_) sig (_ saj // PB red sig en tur + er_) sig (_til saI // avoid [si] - glæder sig [saj] til + et_) sig (_til saI // avoid [si] - glædet sig [saI] til + e_) sig (_til saI // avoid [si] - glæde sig [saI] til + bare_) sig (_til si // verb + snor_) sig (_ saI // snor sig som en slange + er_) sig (_ saI // avoid [si] - vænner sig + sig (_undskyld+ si // eller sig undskyld + _) sig (_mig si // sig mig engang + e_) sig (_mig saI // nærme sig mig + et_) sig (_ saI // avoid [si] vænnet sig + e_) sig (_+ saI // avoid [si] vænne sig, kaldte sig + gøre_) sig (_det saI // gøre sig det besvær + år_) sig (_ saI // han får sig en tår + bød_) sig (_ saI // chancen bød sig + sig (_det si // sig det med blomster + bare_) sig (_ si // bare sig sanddheden + _af_) sig (_ saI // avoid [si] af sig selv + _med_) sig (_ saI // med sig havde han ... + _han_) sig (_ saI // avoid [si] sluttede han sig til + t_) sig (_ saI // holdt sig fra, opført sig + sat_) sig (_ saI // sat sig op mod + lod_) sig (_ saI // lod sig udskrive + gav_) sig (_ saI // gav sig til, overgav sig + _) sig (_selv saI // noget for sig selv + _) sig (_for saI // han holdt sig for sig selv + _) sig (_i_deC saI // Han fandt sig i det/dem + for_) sig (_ saI // se noget for sig + fra_) sig (_ saI // slå fra sig + til_) sig (_ saI // tage noget til sig + gå_) sig (_ saI // gå sig en tur + få_) sig (_ saI // få sig en lur + gav_) sig (_til saI // overgav sig til + An_) sig (_til saI // beslutter han/hun sig til + _de_) sig (_til saI // beslutter de sig til + stå_) sig (_ saI // stå sig godt med + den_) sig (_ saI // holder den sig flydende +er_folk_) sig (_ saI // hvordan morer folk sig + _) sig (_med saI // + slå_) sig (_ saI // + på_) sig (_ saI // + _i_) sig (_ saI // + slår_) sig (_ saI // + _) sig (_alene saI // klare sig alene + _) sig (_over saI // brokke sig over +vende_) sig (_ saI // +erklære_) sig (_ saI // +betro_) sig (_ saI // +betror_) sig (_ saI // + føle_) sig (_ saI // +hygge_) sig (_ saI // + skød_) sig (_ saI // + sneg_) sig (_ saI // + slog_) sig (_ saI // + tog_) sig (_ saI // + kom_) sig (_ saI // +tvang_) sig (_ saI // tiltvang sig adgang + brød_) sig (_ saI // + ør_) sig (_ saI // klør sig, gør sig + man_) sig (_ saI // føler man sig + hun_) sig (_ saI // gemmer hun sig + han_) sig (_ saI // + de_) sig (_ saI // + _) sig (_ud_ saI // rode sig ud i + _) sig (_af_ saI // tage sig af + _) sig (_på_ saI // slå sig på + _) sig (_ind_ saI // bilde sig ind + ak_) sig (_ saI // drak sig fuld + gik_) sig (_ saI // gik sig en tur + så_) sig (_om saI // så sig om/omkring + ser_) sig (_om saI // ser sig om/omkring + _) sig (_om saI // kjolen smøg sig om kroppen + red_) sig (_ saI // red sig en tur -// PB use [sV] instead of [sO] - er_) så (_ sV // PB du virker så bekendt - es_) så (_ sV // PB du føles så skrøbelig - _) så (_fik_ sV // PB så fik du en idé - r_) så (_bange sV // PB jeg er/var så bange - re_) så (_ sV // PB være så dum - blev_) så (_ sV // PB det blev så slemt - med_) så (_ sV // PB med så kort varsel - hold_) så (_ sV // PB hold så op med det -vil_du_) så (_ sV // PB vil du så gøre det? -vil_de_) så (_ sV // PB vil De så gøre det? -vil_i_) så (_ sV // PB vil I så gøre det? - vil_) så (_ sV // PB jo, du vil så -blive_) så (_ sV // PB jeg kan blive så vred - _) så (_havde_ sV // PB - _) så (_bliver_ sV // PB - _) så (_blev_ sV // PB - _) så (_have_ sV // PB - _) så (_kan_ sV // PB - _) så (_går_ sV // PB - _) så (_gå_ sV // PB - _) så (_her_ sV // PB - _) så (_lad_ sV // PB - _) så (_nær_ sV // PB - _) så (_skete_ sV // PB - _) så (_skal_ sV // PB - _) så (_ved_ sV // PB - _) så (_vi_kan_ sV // PB - _) så (_kom_ sV // PB - _) så (_kommer_ sV // PB - _) så (_tager_ sV // PB - _) så (_CACer_ sV // PB så kører TEST - _) så (_god_ sV // PB - _) så (_gik_ sV // PB - _) så (_hold_ sV // PB - _) så (_gøre_ sV // PB - _) så (_ville_ sV // PB - _) så (_sikker_ sV // PB - _) så (_besværlig sV // PB -_er_du_) så (_ sV // PB -_gør_han_) så (_ sV // PB -_vil_han_) så (_ sV // PB -_vil_hun_) så (_ sV // PB -_vil_de_) så (_ sV // PB -_vil_i_) så (_ sV // PB -_ville_du_) så (_ sV // PB -_ville_han_) så (_ sV // PB -_ville_hun_) så (_ sV // PB -_ville_de_) så (_ sV // PB -_ville_i_) så (_ sV // PB -_ville_du_) så (_ sV // PB - og_) så (_videre sV // PB - _) så (_vi_må sV // PB - _) så (_i_må sV // PB - _) så (_de_må sV // PB - _) så (_hAn_må sV // PB - _) så (_den_må sV // PB +// use [sV] instead of [sO] + er_) så (_ sV // du virker så bekendt + _) så (_ham+ sO // vidner så ham + es_) så (_ sV // du føles så skrøbelig + _) så (_fik_ sV // så fik du en idé + r_) så (_bange sV // jeg er/var så bange + re_) så (_ sV // være så dum + blev_) så (_ sV // det blev så slemt + med_) så (_ sV // med så kort varsel + hold_) så (_ sV // hold så op med det +vil_du_) så (_ sV // vil du så gøre det? +vil_de_) så (_ sV // vil De så gøre det? +vil_i_) så (_ sV // vil I så gøre det? + vil_) så (_ sV // jo, du vil så +blive_) så (_ sV // jeg kan blive så vred + _dig_) så (_ sV // hvorfor giftede du dig så? + _) så (_havde_ sV // + _) så (_bliver_ sV // + _) så (_blev_ sV // + _) så (_have_ sV // + _) så (_kan_ sV // + _) så (_går_ sV // + _) så (_gå_ sV // + _) så (_her_ sV // + _) så (_lad_ sV // + _) så (_lang_ sV // ikke så lang tid + _) så (_nær_ sV // + _) så (_skete_ sV // + _) så (_skal_ sV // + _) så (_ved_ sV // + _) så (_vi_kan_ sV // + _) så (_kom_ sV // + _) så (_kommer_ sV // + _) så (_tager_ sV // + _) så (_gik_ sV // + _) så (_hold_ sV // + _) så (_gøre_ sV // + _) så (_ville_ sV // + _) så (_sikker_ sV // + _) så (_besværlig sV // +_er_du_) så (_ sV // +_gør_han_) så (_ sV // +_vil_han_) så (_ sV // +_vil_hun_) så (_ sV // +_vil_de_) så (_ sV // +_vil_i_) så (_ sV // +_ville_du_) så (_ sV // +_ville_han_) så (_ sV // +_ville_hun_) så (_ sV // +_ville_de_) så (_ sV // +_ville_i_) så (_ sV // +_ville_du_) så (_ sV // + og_) så (_videre sV // + _for_) så sV // + _) så (_vi_må sV // + _) så (_i_må sV // + _) så (_de_må sV // + _) så (_hAn_må sV // + _) så (_den_må sV // -kompromi) s ' // PB stress added +kompromi) s ' // stress added succe) s ' - shirt S3:t // PB T-shirt - steak stEjk // PB - smiley smajli // PB - straight sdrE:jt // PB - seattle si'&t@l // PB - _) sunset sVnsEt PB - stealth stElT // PB - sherlock SWlVk // PB name - _) sean (_ SO:n // PB name - _) seans (_ SO:ns // PB name - saint s'Ejnd // PB Saint Louis - seine sEn3 // PB Seinen, seinebred - sainte _^_fr // PB Sainte-Mère-Eglise - signore _^_it // PB - sidney sidni // PB city - soign so&N // PB soignere - stephen stiv@n // PB name - sullivan sVliv3n // PB name - special (_branch spEsj3l // PB Special Branch - scone skVn // PB - strike stRajk // PB - smythe smA:jD // PB name - shepherd SEp-Vd // PB name - smith smet // PB - name, Danish version - _) season sis@n // PB Four Seasons - _) seymour si:mO: // PB name - _) stacy stEjsi // PB name + shirt S3:t // T-shirt + steak stEjk // + smiley smaIli // + straight sdrE:jt // + seattle si'&t@l // + _) sunset sVnsEt // + stealth stElT // + sherlock SWlVk // name + _) sean (_ SO:n // name + _) seans (_ SO:ns // name + saint s'Ejnd // Saint Louis + seine sEn3 // Seinen, seinebred + sainte _^_fr // Sainte-Mère-Eglise + signore _^_it // + sidney sidni // city + soign so&N // soignere + stephen stiv@n // name + sullivan sVliv3n // name + special (_branch spEsj3l // Special Branch + scone skVn // + strike stRaIk // + smythe smA:jD // name + shepherd SEp-Vd // name + smith smet // - name, Danish version + _) season sis@n // Four Seasons + _) seymour si:mO: // name + _) stacy stEjsi // name .group t - t t - tt t - _) tj tS // PB tja, tjald, atju, tjek + t t // final t changed to d in ph_danish + tt d // atter + t (er_ d // kryster [kR'ysdV] + t (en_ d // femten - final ten: d@-n + tt (en d // attentat, atten - final tten: d@-n + Ce) t (_ d // final -et => [@-d] spærret - TEST + _) tj tS // tja, tjald, atju, tjek _) t (_ te: // the letter T - _) t (_shirt t'i:% // PB T-shirt - _) t (_bone t'i:% // PB T-bone - na) tt (øj tt, // PB - tombs tu:ms // PB Tombstone - toast tOwst// PB toasstbrød - twostep tu:stEp // PB dance - toastmaster tOwstm,A:stV // PB toastmaster - _) très (_ trE // PB French (very) - terry teri // PB - e) tt (id t|t // PB ettiden - e) tt (al t|t // PB ettal - tt (øj t|t // PB ballettøjet - teress (ant tr3s // PB interessant - in) teresse t3r'as@ // PB interesse - in) teresser t3r'asV // PB interesse - in) teresseret tr3s'er3D // PB interesseret - in) teresserer tr3s'erV // PB interesserer - in) teressere tr3s'erV // PB interessere + _) t (_shirt t'i:% // T-shirt + _) t (_bone t'i:% // T-bone + na) tt (øj tt, // + tombs tu:ms // Tombstone + toast tOwst// // toasstbrød + twostep tu:stEp // dance + toastmaster tOwstm,A:stV // toastmaster + _) très (_ trE // French (very) + terry teri // + e) tt (id t|t // ettiden + e) tt (al t|t // ettal + tt (øj t|t // ballettøjet + teress (ant tr3s // interessant + _in) teresse t3r'as@ // interesse + in) teresser t3r'asV // interesser + in) teresseret tr3s'er3D // interesseret + in) teresserer tr3s'erV // interesserer + in) teressere tr3s'erV // interessere th th - throat Tr@wt // PB Deep Throat - _) th (eo t // PB name - ru) th t // PB name - _) tanguy _^_fr // PB name - ca) therine Tren // PB name - saman) th (a =T // PB name - mar) th (a T // PB name - lu) th (er t // PB name - thai taj // PB thai, Thailand - third TW:d // PB Third Street - thunder TVndV // PB - tredivtedel tr&fd@del // PB - tredvtedel tr&fd@del // PB - trenchcoat tr'EnSk,oud // PB - tennessee tEn@si // PB - teenage ti:nEdZ // PB - teenager ti:nEdZV // PB - _) tracy trEjsi // PB name - _) tracey trEjsi // PB name - tombstone tu:msdoun // PB name - town tAwn // PB - touchdown tVtSdawn // PB touchdown - _) tape (_ tEjp // PB gaffatape - _) tape (n_ tEjp3 // PB gaffatapen -world_) trade trEjd // PB - the_) times tajms // PB newspaper - tokyo tVkjo // PB - teak ti:k // PB - _) taj (_mahal t&S // PB - jani) tsh (ar S // PB - thackery T&k3ri // PB name - _) teach ti:tS // PB name - titanic tajt'&nik // PB name - timeshare tajmSE:r // PB - timothy tem0Ti // PB name - _) trevor t*EvV // PB name - _) tucson tu:sVn // PB US city - torquay tO:ki // PB name - _ar) t (_deco // PB silent t + throat Tr@wt // Deep Throat + _) th (eo t // name + ru) th t // name + _) tanguy _^_fr // name + ca) therine Tren // name + saman) th (a =T // name + mar) th (a T // name + lu) th (er t // name + thai taI // thai, Thailand + third TW:d // Third Street + thunder TVndV // + tredivtedel tr&fd@del // + tyve ty:?u@- // 20 + tredvtedel tr&fd@del // + trenchcoat tr'EnSk,oud // + tennessee tEn@si // + teenage ti:nEdZ // + teenager ti:nEdZV // + _) tracy trEjsi // name + _) tracey trEjsi // name + tombstone tu:msdoun // name + town tAwn // + touchdown tVtSdawn // touchdown + _) tape (_ tEjp // gaffatape + _) tape (n_ tEjp3 // gaffatapen +world_) trade trEjd // + the_) times taIms // newspaper + tokyo tVkjo // + teak ti:k // + _) taj (_mahal t&S // + jani) tsh (ar S // + thackery T&k3ri // name + _) teach ti:tS // name + titanic taIt'&nik // name + timeshare taImSE:r // + timothy tem0Ti // name + _) trevor t*EvV // name + _) tucson tu:sVn // US city + torquay tO:ki // name + tudor tjudV // name + _ar) t (_deco // silent t -// PB final -tek - stressed e + // final -te D@- + te (_ d@- // smerte, hjerte + + nes) te (@ d@- // tjenestepige + _) te (_ te // tea + +// final -tek - stressed e _apo) tek t'ek _biblio) tek t'ek _char) tek t'ek @@ -7424,7 +7822,7 @@ _pinako) tek t'ek _video) tek t'ek .group ti -// PB words with unstressed initial "til" +// words with unstressed initial "til" til (freds tel' til (bage tel' til (forn tel' @@ -7462,7 +7860,7 @@ _video) tek t'ek til (synekomst tel' til (syneladende tel' -// PB final -tis - stress on previous syllable +// final -tis - stress on previous syllable appendici) ti (s =ti bronki) ti (s =ti celluli) ti (s =ti @@ -7475,151 +7873,168 @@ meningi) ti (s =ti pas) tis t'is raki) ti (s =ti lek) ti (e S - ak) ti (e S // PB aktie + ak) ti (e S // aktie &) ti (on+ S // station, dispotion - bas) ti (on ti // PB + bas) ti (on dj // ti (øs+ S // tendentiøs - pa) ti (ent S // PB patient - kvo) ti (en S // PB kvotient + pa) ti (ent S // patient + kvo) ti (en S // kvotient r) til (_ tel // PP hertil, dertil .group u u u // General rule: Normal vs. glottal u -// PB glottal u followed by consonant - C) u (C ?u // hus, mus -// PB normal u followed by consonant + vowel - C) u (CA u // huse, muse +// short u followed by double consonant + u (C%+ ?u // blusse + sk) u (L02% ?O // skuffe, skubbe + f) u (L06% ?O // fuppede + r) u (L06% ?O // siruppen + C) u (kk+ ?O // sukker, lukker + C) u (gg ?O // hugge + r) u (mmy ?V // card game + u (ds ?u // pludselig + h) utton ?Vt@n // name -// PB general rule: [O] after d/l - L03) u (f O // PB luft, duft +// l/d + u + f: O + L03) u (f ?O // luft, duft -// PB general rule: [O] after consonant followed by k/g - C) u (L01t O // frugt, fugt, lugt + u (se u: // muse, huse + u (set ?u // huset - "hus" made short by ph_danish + + ur (gt o3- // spurgt - schwa TEST + ure (_ u3-V // ure, mure - schwa TEST + urer (_ u3-V // ure, murer - schwa TEST + +// general rule: [O] after consonant followed by k/g + C) u (L01t ?O // frugt, fugt, lugt, lugte j) u (L01L04 u // Jugoslavien - gl) u (kose y // PB + gl) u (kose y // C) u (L01L11 u // halleluja - tr) u (ktL04 u // PB struktur + tr) u (ktL04 u // struktur C) u (L01e+ O // lunge - t) ucker VkV // PB name - h) u (je+ u // PB - p) u (ck+ u // PB - br) u (g u // PB - r) u (g u // PB rug, rugbrød - l) ugaf lOg'& // PB - k) u (k u // PB - b) u (gse u // PB bugsere - gl) u (g u // PB glugger, glughul - røgl) u (gt O // PB - fn) u (g u // PB snefnug - u (gl+ u // PB fuglene, uglerne - br) u (gt O // PB + t) ucker VkV // name + h) u (je+ u // + p) u (ck+ u // + br) u (g u // + r) u (g u // rug, rugbrød + l) ugaf lOg'& // + k) u (k u // + b) u (gse u // bugsere + gl) u (g u // glugger, glughul + røgl) u (gt ?O // + fn) u (g u // snefnug + u (gl+ u // fuglene, uglerne + br) u (gt ?O // sl) ug u // slugt, sluge - silent g - s) u (g u // PB sugerør, suggestiv - l) u (k O // PB sluk, pluk, lukke, fluks - l) u (krL11 u // PB lukrativ - u (ks O // PB juks, buks - l) ukaf Og'& // PB sygelukaf - p) urple W:p-@l // PB Purple Heart - d) u (dley V // PB name + s) u (g u // sugerør, suggestiv + l) u (k ?0 // sluk, pluk, lukke, fluks + l) u (krL11 u // lukrativ + u (ks ?0 // juks, buks + l) ukaf Og'& // sygelukaf + p) urple W:p-@l // Purple Heart + d) u (dley V // name -// PB general rule: [0] after l/d followed by ns - L03) u (ns 0 // PB luns, dunst +// general rule: [0] after l/d followed by ns + L03) u (ns ?0 // luns, dunst -// PB general rule: followed by ng/nk: [O] - u (ng+ O // PB lunge, unge - u (nk O // PB sunket, prunk - j) u (nktur++ O // PB - sp) u (nde O // PB spundet - j) u (nk V // PB junkaktie - hal) u (nk 'O // PB stressed - _f) u (nk V // PB funkmusik - _p) u (nk V // PB punker - L06) u (nkt O // PB punkt +// general rule: followed by ng/nk: [O] + u (ng++ O // lunge, unge, hungre + u (nk O // sunket, prunk + j) u (nktur++ O // + sp) u (nde O // spundet + j) u (nk V // junkaktie + hal) u (nk 'O // stressed + _f) u (nk V // funkmusik + _p) u (nk V // punker + L06) u (nkt O // punkt -// PB general rule: [O] followed by nd - u (nd O // PB grund, rund, underligt, undtage - b) u (nt O // PB buntmager - p) u (nd u // PB pund - t) u (ndå u // PB tundåse - rab) und (us 'Ond // PB stressed +// general rule: [O] followed by nd + u (nd+ ?O // grund, rund, underligt, undtage + b) u (nt ?O // buntmager + p) u (nd ?u // pund + t) u (ndå ?u // tundåse + rab) und (us '?Ond // stressed -// PB general rule: Consonant + r + u + p/b = [O] - Cr) u (L06 O // PB broad general rule - skrub - r) u (L06 O // PB sirup, rup - r) u (f O / PB rufferi - r) u (L06L04 u // PB rupi - tr) u (L06 u // PB strube, trup - gr) u (L06 u // PB gruble - skr) u (ple u // PB skrupler - abr) u (pt 'u // PB abrupt - m) u (L01 0 // PB mug, mukke - m) ug (_ud u // PB - m) ug (e_ud u // PB - sm) ug uw // PB i smug, smugkigge +// general rule: Consonant + r + u + p/b = [O] + Cr) u (L06 O // broad general rule - skrub + r) u (L06 O // sirup, rup + r) u (f O // rufferi + r) u (L06L04 u // rupi + tr) u (L06 u // strube, trup + gr) u (L06 u // gruble + skr) u (ple u // skrupler + skr) u (pel u // skrupelløs + abr) u (pt 'u // abrupt + m) u (L01 0 // mug, mukke + m) ug (_ud u // + m) ug (e_ud u // + sm) ug uw // i smug, smugkigge -// PB generak rule: b/d + u + k:_ O - b) u (k O // PB bukser, buk, duk - d) u (k O // PB duk, dukke, duks - p) u (kl O // PB pukle, puklet - p) u (kke O // PB pukkel +// generak rule: b/d + u + k:_ O + b) u (k O // bukser, buk, duk + d) u (k O // duk, dukke, duks + p) u (kl O // pukle, puklet + p) u (kke ?O // pukkel -// PB general rule: m/n + u + rre: [O] - L09) u (rre O // PB snurre, knurre, murre +// general rule: m/n + u + rre: [O] + L09) u (rre ?O // snurre, knurre, murre -// PB remove u in order to make the -ig/elig rule (group i) work with u + -ig list words +// 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 - _) u (for 'u // PB uforskyldt, uforfalsket - _) uud 'u|'uD // PB uudforsket -// PB exceptions - u isn't a prefix - uppercut VpVkVt // PB + _) u (@@+P1 u: + _) u (for 'u // uforskyldt, uforfalsket + _) uud 'u|'uD // uudforsket +// exceptions - u isn't a prefix + uppercut VpVkVt // _) u (nd+ O // underfuld, undtage - _) u (ng+ O // PB ungdommelig + _) u (ng+ O // ungdommelig u (gle+ u // ugle - u (lv+ u // PB ulvene - _p) u (b_ V // PB - p) u (bb V // PB pubben, pubber + u (lv+ u // ulvene + _) ubeset (_ ubesed // + _p) u (b_ V // + p) u (bb V // pubben, pubber u (hyre+ u - u (enig+ u' // PB - uformel ufVm'el // PB - u (ltima u // PB ultimatum - u (ltra u // PB ultraviolet - u (denfor+ u // PB - u (dgrundelig+ u // PB - u (imodståelig u // PB - u (surp u // PB usurpator + u (enig+ u' // + uformel ufVm'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 - t) u (ning+ ju // PB - t) u (ne ju // PB - _st) u (art ju // PB name - u (den u // udenfor - g) u (den+ ?u // PB u is shorter in "guden" than in "gud" (glottal stop) + t) u (ning+ ju // + t) u (ne ju // + prod) u (ceren ju // + _st) u (art ju // name +// u (den u // udenfor + g) u (den+ ?u // u is shorter in "guden" than in "gud" (glottal stop) u (ge++ u // ugerne, sluge - uger (+ uV // PB sluger, slugere + uger (+ uV // sluger, slugere + s) uge (rør u3 // silent g _) u (r++ u // ur, urrem, uret - _) u (retfæ++P1 u // uretfærdig - prefix + _) u (retfæ++P1 u: // uretfærdig - prefix _) u (ds+ u // udsætte - u (de++ u // PB uden, udenfor, udeblev - et) u (de+ 'y // PB stressed - u (topi u // PB - uskyldig usg'yldi // PB - d) u (blin V // PB city - st) u (kket O // PB - ukulele ukul'el3 // PB - acap) u (lco 'u // PB stressed - m) u (pperne V // PB +// u (de++ u // uden, udenfor, udeblev + et) u (de+ 'y // stressed + u (topi u // + uskyldig usg'yldi // + d) u (blin V // city + st) u (kket O // + ukulele ukul'el3 // + acap) u (lco 'u // stressed + m) u (pperne V // -// PB nouns with final -um in da_list - stress on previous syllable - &) um ($p_alt =Om // PB jubilæum +// nouns with final -um in da_list - stress on previous syllable + &) um ($p_alt =Om // jubilæum -// PB stressed -ure - $alt words (French) in da_list pronounced [y:V] +// stressed -ure - $alt words (French) in da_list pronounced [y:V] &) ure (+++$p_alt ''y:V // frisure - &) ure (re$p_alt+++ yr''e // PB manicurerede + &) ure (re$p_alt+++ yr''e // manicurerede &out) ure ($p_alt 'y:r // couture - without [V] because fashion people talk like that - &s) ure (re+++ ur''e // PB censurere -// PB -ure without stress after a syllable + &s) ure (re+++ ur''e // censurere +// -ure without stress after a syllable @) bord) ure y:V @) broch) ure y:V @) embouch) ure y:V @@ -7642,22 +8057,25 @@ meningi) ti (s =ti @) sinec) ure y:V @) tourn) ure y:V -// PB final -tur in da_list - stressed u +// final -tur in da_list - stressed u &t) ur ($p_alt ''ur // struktur &t) ur (el$p_alt ur' // strukturel &d) ur ($p_alt ''ur // trubadur - _komf) ur 'ur // PB + _komf) ur 'ur // -// PB final -ut in da_list - stressed u +// final -ut in da_list - stressed u &) ut ($p_alt 'ut // rekrut - &) ut (t$p_alt 'u // rekrutter - avoid double t + &) ut (t$p_alt '?u // rekrutter - avoid double t -// PB short u - glottal stop - h) u (d ?u - st) u (d ?u - t) u (d ?u +// short u - glottal stop + h) u (dK ?u + h) u (den ?u + st) u (dK ?u + st) u (den ?u + t) u (dK ?u + t) u (den ?u -// PB final -sur +// final -sur dress) ur 'ur cens) ur 'ur cæs) ur 'ur @@ -7669,8 +8087,8 @@ meningi) ti (s =ti tons) ur 'ur - // PB most of the words with ud-: [uD] - udpege - _) ud (@@+P2 ''uD + // most of the words with ud-: [uD] - udpege + _) ud (@@+P2 ''?uD _) ude (@@+P3 ''uD@ // exceptions for ud-: [ud] _) ud (elt+P2 'ud // udelt @@ -7678,685 +8096,743 @@ meningi) ti (s =ti _) ud (rikkelig+P2 ud _) ud (røj+P2 'ud _) ud (uelig+ ud - _) ud (y+P2 'ud // udyd, udygtig, udyr + _) ud (y+P2 '?ud // udyd, udygtig, udyr _) ud (øbt+P2 'ud _) ud (ød+P2 ud // udødelig _) ud (åd+P2 'ud _) ud (en+ uD _) ud (kig uD // udkigspost (another rule overrides a silent g rule) - u (nL08 O // PB kunst - br) unch VnS // PB - b) u (ffer V // PB buffer - ketch) u (p V // PB - cl) u (b V // PB - s) ui (te wi // PB - st) u (nt V // PB stuntman - _) d) u (ncan V // PB name - b) urg (er Wg // PB - u (mK O // dum - n) u (mlock V // PB - h) umphrey Vmfri // PB name - h) umbug OmbOg // PB - _) usa (_ u:|es|'& // PB - _) usa's (_ u:|es|'&s // PB - s) ur (fe 3: // PB surfe - s) urfer '3:fV // PB surfer - s) ur (fb 3: // PB surfbræt - p) u (nch O // PB - _sek) u (nd 'O // PB stressed - sek) u (ndæ O // PB sekundær - _glas) u (r 'u // PB stressed - _abs) u (rd 'u // PB stressed - _fig) u (r 'u // PB stressed - _harp) u (n 'u // PB stressed - _fid) u (s 'u // PB stressed - _rob) u (st 'u // PB stressed - chal) u (p 'u // PB stressed - _b) uket uk'Et // PB stressed - _bas) u (n 'u // PB stressed - andal) u (s 'u // PB stressed - andalusier - _konf) u (s 'u // PB stressed -_klaus) u (l 'u // PB stressed - _konk) u (rs 'u // PB stressed - jer) u (salem 'u // PB stressed -krused) u (lle 'u // PB stressed - _vol) u (me 'u // PB volumen - _) fakt) u (ra 'u // PB - _) prok) u (ra 'u // PB - _) angost) u (ra 'u // PB - col) u (mb 'O // PB Columbia, columbusæg - kent) ucky 'Vki // PB - calc) u (tta 'V // PB - f) u (ck++ V // PB -stand_) u (p V // PB stand-up-komiker - bl) u (fæ u // PB blufærdig - sm) u (gl u // PB smugling - sl) u (gt u // PB - b) ug (ta u // PB bugtaler - l) u (n_ u // PB lun - l) u (ne u // PB lune - l) u (nte 0 // PB lunte - j) u (nt 0 // PB junta + u (nL08+ O // kunst + br) unch VnS // + b) u (ffer V // buffer + ketch) u (p V // + cl) u (b V // + s) ui (te wi // + st) u (nt V // stuntman + _) d) u (ncan V // name + b) urg (er Wg // + u (mK+ O // dum + n) u (mlock V // + h) umphrey Vmfri // name + _b) urns W:ns // name + h) umbug OmbOg // + _) usa (_ u:|es|'& // + _) usa's (_ u:|es|'&s // + s) ur (fe 3: // surfe + s) urfer '3:fV // surfer + s) ur (fb 3: // surfbræt + p) u (nch O // + _sek) u (nd 'O // stressed + sek) u (ndæ O // sekundær + _glas) u (r 'u // stressed + _abs) u (rd 'u // stressed + _fig) u (r 'u // stressed + _harp) u (n 'u // stressed + _fid) u (s 'u // stressed + _rob) u (st 'u // stressed + chal) u (p 'u // stressed + _b) uket uk'Et // stressed + _bas) u (n 'u // stressed + andal) u (s 'u // stressed - andalusier + _konf) u (s 'u // stressed +_klaus) u (l 'u // stressed + _konk) u (rs 'u // stressed + jer) u (salem 'u // stressed +krused) u (lle 'u // stressed + _vol) u (me 'u // volumen + _) fakt) u (ra 'u // + _) prok) u (ra 'u // + _) angost) u (ra 'u // + col) u (mb 'O // Columbia, columbusæg + kent) ucky 'Vki // + calc) u (tta 'V // + f) u (ck++ V // +stand_) u (p V // stand-up-komiker + bl) u (fæ u // blufærdig + sm) u (gl u // smugling + sl) u (gt u // + b) ug (ta u // bugtaler + l) u (n_ u // lun + l) u (ne u // lune + l) u (nte 0 // lunte + j) u (nt 0 // junta l) u (kas u // Lukas - r) u (st O // PB udrustning, veludrustet - tr) u (st V // PB antitrust, hjernetrust - r) usty Vsti // PB name - fr) u (s u // PB frustrerende - _pr) u (st u // PB pruste - ue (_ u // PB due, vindue, statue - r) ue (C u: // PB skruenøgle TEST - fond) ue 'y // PB ostefondue - infl) ue (nza u'E // PB stressed - aven) ue 'y // PB - alb) ue u: // PB albuerum - st) ue u: // PB stuearrest - st) ue (_ u@ // PB - st) ue (n_ u@ // PB - d) ue (s u: // PB vinduesstørrelse - um) u (lig 'u: // PB stressed u in 'umulig' - _kalk) u (n 'u // PB stressed u -_konvol) u (t 'u // PB stressed - _årh) u (ndrede 'u // PB stressed -centrif) u (g 'u // PB stressed - kæng) u (ru 'u_ // PB stressed + r) u (st O // udrustning, veludrustet + tr) u (st V // antitrust, hjernetrust + r) usty Vsti // name + fr) u (s u // frustrerende + _pr) u (st u // pruste + vind) ue u // + vind) uer uV // + vind) uet u@D // + ue (_ u:u // due, statue + skr) ue (C u: // skruenøgle TEST + fond) ue 'y // ostefondue + infl) ue (nza u'E // stressed + aven) ue 'y // + alb) ue u: // albuerum + h) ue u: // tophue, hue + st) ue u:@- // stuearrest + st) ue (_ u@ // + st) ue (n_ u@ // + d) ue (s u: // vinduesstørrelse + _kalk) u (n 'u // stressed u +_konvol) u (t 'u // stressed + _årh) u (ndrede 'u // stressed +centrif) u (g 'u // stressed + kæng) u (ru 'u_ // stressed l) ug (e u: - h) u (lt u // PB hult - adjective "et hult træ" - h) u (le u: // PB hule - adjective and noun - hj) u (lp O // PB hjulpet - hond) u (ra 'u: // PB Honduras - u (lje 'u // PB patrulje, badulje - _laC) u (ne 'u: // PB lagune, lakune - stressed - _komm) u (ne 'u: // PB kommune - stressed - _trib) u (ne 'y // PB stressed tribune - trib) u (ne y // PB unstressed after a syllable - _deb) ut 'y // PB stressed, silent t -vestib) u (l 'y // PB vestibule - fl) ute yt // PB - deb) ut y // PB unstressed after a syllable, silernt t - p) u (ré y // PB - _p) u (rere y // PB - d) u (chesse y // PB -tomatp) ure yre // PB -tomatp) uré yre // PB - j) u (ice u: // PB juice - L01n) u (L06 O // PB knubs, gnubbe, snuppe - _k) u (n_ 0 // PB kun - kl) u (ns 0 // PB - k) u (l O // PB kulmine - k) u (ld u // PB skuldre, kuld - k) u (ller ?u // PB - sk) u (lp u // PB skulptur - sk) u (lk ?u // PB skulke - k) u (lL05 u // PB okular - k) ulret ulRVD // PB - k) u (lL04 u // PB kulisse, kulørt -hovedk) u (ls u // PB - k) u (lde ?u // PB kulde - _k) u (llede ?u // PB den kullede greve - k) u (ldio O // PB kuldioxid - k) u (lilt O // PB kulilte - omk) u (ld 'u // PB - imp) u (ls '?u // PB stressed - imp) u (lsiv =u // PB - sk) u (ll ?u // PB skulle - k) u (Ce u // PB skule, kule - sk) u (te u // PB omdiskuteret - L08) u (f O // PB skuffe - st) u (b+ u // PB skægstubbe - sk) u (b O // PB skub, skubbe - sl) u (b O // PB slubbert - k) u (lt u // PB kultur - d) u (kti u // PB obduktion - ll) u (p V // PB bryllup - tr) u (ff O // PB truffet - t) u (nn 0 // PB tunnel - m) u (nt 0 // PB munter - sn) u (L06 0 // PB snup - sn) u (ble u // PB - s) u (L06% 0 // PB suppe - s) u (bli %u // PB sublim - s) u (pra u // PB latin - s) u (pple u // PB suppleant - s) u (bs u // PB substitut - h) u (n u // PB hunkøn - h) u (nter V // PB - headh) u (nt V // PB - h) u (rtig O // PB hurtigtog - s) u (k 0 // PB suk, sukker - sl) u (p O // PB sluppet, løssluppen + h) u (lt u // hult - adjective "et hult træ" + h) u (le u // hule - adjective and noun + hj) u (lp ?O // hjulpet - lp shortens the vowel + hond) u (ra 'u: // Honduras + u (lje 'u // patrulje, badulje + _laC) u (ne 'u: // lagune, lakune - stressed + _komm) u (ne 'u: // kommune - stressed + _trib) u (ne 'y // stressed tribune + trib) u (ne y // unstressed after a syllable + _deb) ut 'y // stressed, silent t +vestib) u (l 'y // vestibule + fl) ute yt // + deb) ut y // unstressed after a syllable, silernt t + p) u (ré y // + _p) u (rere y // + d) u (chesse y // +tomatp) ure yre // +tomatp) uré yre // + j) u (ice u: // juice + L01n) u (L06 O // knubs, gnubbe, snuppe + _k) u (n_ 0 // kun + kl) u (ns 0 // + k) u (l O // kulmine + k) u (ld u // skuldre, kuld + k) u (ller ?u // + sk) u (lp u // skulptur + sk) u (lk ?u // skulke + k) u (lL05 u // okular + k) ulret ulRVD // + k) u (lL04 u // kulisse, kulørt +hovedk) u (ls u // + k) u (lde ?u // kulde + _k) u (llede ?u // den kullede greve + k) u (ldio O // kuldioxid + k) u (lilt O // kulilte + omk) u (ld 'u // + imp) u (ls '?u // stressed + imp) u (lsiv =u // + sk) u (ll ?u // skulle + k) u (Ce u // skule, kule + sk) u (te u // omdiskuteret + L08) u (f O // skuffe + st) u (b+ u // skægstubbe + sk) u (b O // skub, skubbe + sl) u (b O // slubbert + k) u (lt u // kultur + d) u (kti u // obduktion + ll) u (p V // bryllup + tr) u (ff O // truffet + t) u (nn 0 // tunnel + m) u (nt 0 // munter + sn) u (L06 0 // snup + sn) u (ble u // + s) u (L06% 0 // suppe + s) u (bli %u // sublim + s) u (pra u // latin + s) u (pple u // suppleant + s) u (bs u // substitut + h) u (n+ ?u // hunkøn, hund + h) u (nter V // + headh) u (nt V // + h) u (rtig O // hurtigtog + s) u (k 0 // suk, sukker + sl) u (p O // sluppet, løssluppen sv) u (p O // svuppe - v) u (g 0 // PB vugge - f) u (L06 0 // PB fup + v) u (g 0 // vugge + f) u (L06 0 // fup - h) u (l O // PB hul - noun - h) u (lkort O // PB - h) u (lL11 u // PB hula-hula - smuth) u (l O // PB smuthulmager -mudderh) u (l O // PB - h) u (lC u // PB hulke, hulbrystet - h) u (lsøm O // PB - knaph) u (l O // PB knaphulsblomst - h) u (ltang O // PB - h) u (lske O // PB - h) u (lbånd O // PB - h) u (ljern O // PB - h) u (lle O // PB hulledame + h) u (l O // hul - noun + h) u (lkort O // + h) u (lL11 u // hula-hula + smuth) u (l O // smuthulmager +mudderh) u (l O // + h) u (lC u // hulke, hulbrystet + h) u (lsøm O // + knaph) u (l O // knaphulsblomst + h) u (ltang O // + h) u (lske O // + h) u (lbånd O // + h) u (ljern O // + h) u (lle O // hulledame - h) u (g O // PB hugge, hugorm + h) u (g O // hugge, hugorm + h) u (go_ u // name Cr) u (k O // sprukne, fordrukken, foretrukne, trukket, krukket TEST - p) u (f O // PB - f) u (n+ 0 // PB funktion, karpunkel - p) u (lv 0 // PB pulver - _r) u (b_ O // PB rub - _n) u (l 0 // PB nul - _r) u (bbe O // PB rubbe, rubbet - k) u (ffert O - _g) uid (et ajd // PB guidet - g) uider ajdV // PB guider - g) uide ajd // PB noun: guide - problem with verb "at guide" - at_g) uid (e ajd // PB at guide - vil_g) uid (e ajd // PB vil guide - aug) u (st 'O PB stressed - the month - the name is in da_list with $capital - g) u (f O // PB guffe - g) ulv Ol // PB gulv - silent v - g) ulv (e Olv // PB gulve - sm) u (C O // PB smukkere, smurt - m) u (sik u // PB middagsmusik - sL09) u (t u // PB snut, smutte - sL09) u (CL11 u // PB snude - sm) u (L03+ u // PB smule, smuld, smuds - l) u (krere u // PB - L09) u (f O // PB fornuft - m) uffin Vfen // PB - m) u (ft u // PB mufti - kam) u (flage u // PB - val) u (ta 'u // PB stressed - _der) u (d 'u // PB stressed - derud -_instr) u (ks 'u // PB stressed - valp) u (rgis 'u // PB stressed valpurgisnat - gr) u (p u // PB gruppe + p) u (f O // + f) u (n+ 0 // funktion, karpunkel + p) u (lv 0 // pulver + _r) u (b_ O // rub + _n) u (l 0 // nul + n) u (levende u // + _r) u (bbe ?O // rubbe, rubbet + k) u (ffert ?O + _g) uid (et aId // guidet + g) uider aIdV // guider + g) uide a:jd // noun: guide - problem with verb "at guide" + g) uiden aId@-n // guiden + at_g) uid (e aId // at guide + vil_g) uid (e aId // vil guide + aug) u (st 'O // stressed - the month - the name is in da_list with $capital + g) u (f O // guffe + g) ulv Ol // gulv - silent v + g) ulv (e Olv // gulve + sm) u (C O // smukkere, smurt + rasm) u (s u // Rasmus - name + m) u (sik u // middagsmusik + sL09) u (t u // snut, smutte + sL09) u (CL11 u // snude + sm) u (L03+ u // smule, smuld, smuds + l) u (krere u // + L09) u (f O // fornuft + L09) u (ff ?O // muffe + m) uffin Vfen // + m) u (ft u // mufti + kam) u (flage u // + 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 r) u (m O - tr) u (man u // PB name - _st) urgis WdZis // PB name - _m) u (llin V // PB name - rayb) urn W:n // PB name - r) u (me u // PB PB musikinstrument + tr) u (man u // name + _st) urgis WdZis // name + _m) u (llin V // name + rayb) urn W:n // name + r) u (me u // musikinstrument s) u (cc y - s) uccessor uks'EsV // PB - s) uccessorer uksEs'oV // PB + s) uccessor uks'EsV // + s) uccessorer uksEs'oV // b) u (dget y b) ureau yR'o _men) u 'y - men) u y // PB festmenu - men) uet u'Et // PB - parf) u (me 'y // PB - _b) u (ste_ y // PB + men) u y // festmenu + men) uet u'Et // + parf) u (me 'y // + _b) u (ste_ y // proced) u (re 'y proven) u 'y - _nat) u (rel_+ y' // PB naturel - _kost) u (me 'y // PB - kost) u (me y // PB - n) u (ance y // PB - s) u (rrel Y // PB surreel - s) u (rrea y // PB surrrealistisk - ref) u (ser y // PB refusere (about horse) - res) ume ym'e // PB - res) umé ym'e // PB - g) ui (tar i // PB guitar + _nat) u (rel_+ y' // naturel + _kost) ume 'ym@- // + kost) ume ym@- // + n) u (ance y // + s) u (rrel Y // surreel + s) u (rrea y // surrrealistisk + ref) u (ser y // refusere (about horse) + res) ume ym'e // + res) umé ym'e // + g) ui (tar i // guitar resso) u (rs 'u comp) u (ter ju - res) u (rs 'u // PB resurse (ressource) - g) ueri (lla ER'i // PB guerilla - b) u (nker 0 // PB bunker - minor problem: golf expression: [BVnkV] - br) uxelles ys'El // PB Bruxelles - b) udd (y Vd // PB name - l) ucienne ysj'En // PB name - g) uez =es // PB Rodriguez - united jun'ajted - h) urdle Wd@l // PB - h) urdlen Wdl3n // PB - utah 'ju:tA // PB US state - t) u (tor ju // PB - b) u (tler V // PB - b) ur (ma W: // PB - tamb) ur ur // PB tamburmajor - b) ur (mes W // PB burmesisk - b) u (ck V // PB name - _b) ur (t W: // PB name - p) ur (ser W: // PB - tr) u (ck V // PB - d) u (bbe V // PB - d) u (bbing V // PB - l) u (bbock V // PB - _d) u (stin V // PB name - _kibb) u (tz 'u // PB stressed - p) u (blic V // PB public relation + res) u (rs 'u // resurse (ressource) + g) ueri (lla ER'i // guerilla + b) u (nker 0 // bunker - minor problem: golf expression: [BVnkV] + br) uxelles ys'El // Bruxelles + b) udd (y Vd // name + l) ucienne ysj'En // name + g) uez =es // Rodriguez + united jun'aIted + h) urdle Wd@l // + h) urdlen Wdl3n // + utah 'ju:tA // US state + t) u (tor ju // + b) u (tler V // + b) ur (ma W: // + tamb) ur ur // tamburmajor + b) ur (mes W // burmesisk + b) u (ck V // name + _b) ur (t W: // name + p) ur (ser W: // + tr) u (ck V // + d) u (bbe V // + d) u (bbing V // + l) u (bbock V // + _d) u (stin V // name + _kibb) u (tz 'u // stressed + p) u (blic V // public relation .group v v v vv v - li) vv wv // PB livvagt, livvidde - L09o) v (A v // PB nova renovation - pro) v (ence v // PB Provence in France - _) von (_ fVn // PB von in German names - v (an_gogh f // PB - virginia v@dZ'iNj& // PB - a) v (n w // PB [u] changed to [w] navn, navnebroder - sla) v (+ v // PB Jugoslavien - la) v (ement @ // PB lavement - ve (lse v3 // PB øvelse, stavelse, fornøjelse - ø) v (en w // PB røven -// &A) v w // PB fiktiv, nævne - &A) v (_A v // PB gav ordre - &A) v (A v // PB fiktive - v (n w // PB jævn, levne + v (_ w // væv +// rø) v w // røv, bonderøve + i) v (_ w // stativ + ra) v (C w // gravkammer + li) vv wv // livvagt, livvidde + snæ) v (+ w // snæver, snævre + dri) v (C w // drivtryk + hø) v (l w // plathøvl + L09o) v (A v // nova renovation + pro) v (ence v // Provence in France + _) von (_ fVn // von in German names + v (an_gogh f // + virginia v@dZ'iNj& // + a) v (n w // [u] changed to [w] navn, navnebroder + sla) v (+ v // Jugoslavien + la) v (ement @ // lavement + ve (lse v3 // øvelse, stavelse, fornøjelse + ø) v (en w // røven + dø) v w // døvstum + le) v (_ w // elev + mø) v (e+ w_|// // møve + &A) v (_A v // gav ordre + ti) v (A v // fiktive + v (n w // jævn, levne + tvi) v (l u // &r) v v - al) v (e v // PB halve + al) v (e v // halve el) v (C - ha) v (C u // PB havfisker - ha) v (overf u // PB havoverflade + ha) v (C u // havfisker + ha) v (overf u // havoverflade il) v (A v ur) v v hal) v - hal) vleg aj // PB - ble) v // PB silent v - blev -udeble) v w // PB - voliere vVli'E:r // PB - vince vens // PB name - verdun vErd'3N // PB - village veledZ // PB - vaughn vO:n // PB name - voila vwal'a // PB + hal) vleg aI // + ble) v (K // silent v - blev +udeble) v w // + voliere vVli'E:r // + vince vens // name + verdun vErd'3N // + village veledZ // + vaughn vO:n // name + voila vwal'a // .group w w w - w (att v // PB watt - ant) w (erpen v // PB - waffe vaf3 // PB Luftwaffe - wallace wVles // PB name - watson wVts@-n // PB name - wayne wEjn // PB name - wheel wil // PB Wheeler - w (olfram v // PB wolfram - w (olfgang v // PB name - w (ienerschnitzel v // PB wienerschnitzel - w (eltschmerz v // PB weltschmerz - w (eltervægt v // PB weltervægt - w (hist v // PB whist + w (att v // watt + ant) w (erpen v // + waffe vaf3 // Luftwaffe + wallace wVles // name + watson wVts@-n // name + wayne wEjn // name + wheel wil // Wheeler + w (olfram v // wolfram + w (olfgang v // name + w (ienerschnitzel v // wienerschnitzel + w (eltschmerz v // weltschmerz + w (eltervægt v // weltervægt + w (hist v // whist w (aders v // PP waders - w (adi v // PB wadi + w (adi v // wadi w (alis v // PP walisisk - w (assermannprøve v // PB wassermannprøve - wie (n vi // PB wienerbrød - w (erner v // PB name - wald vald // PB Waldheim - _) waldorf wOdVf // PB waldorfsalat - ku) wai (t v'aj // PB - weekend wi:gEnd // PB - wisconsin wesk'Vnsen // PB - washington wVSeNtVn // PB - wyoming waj'OwmeN // PB - wright _^_EN // PB - willie wili // PB - willy wili // PB - _) wild wAjld // PB - ware w&:r // PB software - warszawa varS'&:v& // PB - watergate wOtVgEjt // PB - _) world wWld // PB - wiesenthal vis@ntAl // PB name - w (essel v // PB name - weather wEDV // PB Fairweather - work wW:k // PB workout, teamwork - weaver wi:vV // PB name - _) wonder wVndV // PB name - wales wEjls // PB - s) wansea wVns,i // PB - worth wW:T // PB last part of a name - Wordsworth - word wWd // PB MS Word, Wordsworth - wanda wVnd& // PB name - widescreen wajdskri:n // PB - winnipeg wenipEg // PB - whitechapel waittS&p@l/2 // PB name + w (assermannprøve v // wassermannprøve + wie (n vi // wienerbrød + w (erner v // name + wald vald // Waldheim + _) waldorf wOdVf // waldorfsalat + ku) wai (t v'aI // + weekend wi:gEnd // + wisconsin wesk'Vnsen // + washington wVSeNtVn // + wyoming waI'OwmeN // + wright _^_EN // + willie wili // + willy wili // + _) wild waIld // + ware w&:r // software + warszawa varS'&:v& // + watergate wOtVgEjt // + _) world wWld // + wiesenthal vis@ntAl // name + w (essel v // name + weather wEDV // Fairweather + work wW:k // workout, teamwork + weaver wi:vV // name + _) wonder wVndV // name + wales wEjls // + s) wansea wVns,i // + worth wW:T // last part of a name - Wordsworth + word wWd // MS Word, Wordsworth + wanda wVnd& // name + widescreen waIdskri:n // + winnipeg wenipEg // + whitechapel waittS&p@l/2 // name .group x x gs - xc gs // PB excellence + xc gs // excellence _) x s n) x s - _o) xyde (re gsid'e // PB oxydere - _o) xide (re gsid'e // PB oxidere - _o) xyde (ri gsid'e // PB oxydering - _o) xide (ri gsid'e // PB oxidering - _o) xyd (_ gs'iD // PB oxyd - _o) xid (_ gs'iD // PB oxid - o) xygen gsig'en // PB - o) xal gs'&l // PB oxalsyre - xon gsVn // PB Nixon + _o) xyde (re gsid'e // oxydere + _o) xide (re gsid'e // oxidere + _o) xyde (ri gsid'e // oxydering + _o) xide (ri gsid'e // oxidering + _o) xyd (_ gs'iD // oxyd + _o) xid (_ gs'iD // oxid + o) xygen gsig'en // + o) xal gs'&l // oxalsyre + xon gsVn // Nixon .group y y y + y (u j // Yussef -// PB general rule: [y] after consonant + r before sp/st/sk - Cr) y (L08 Y // PB kryster +// Short y followed by two consonants + y (tt++ ?y // lytte, bytte, rytter + r) y (lle++ ?y // trylleri, fortryllende + y (gge++ ?y // tygge, bygge + t) y (kke++ ?y // tykke, samtykke + d) y (sse ?y // dysse + pl) y (ss ?y // plysset +// y (CC ?y // beskyldte, skyld, skylde, gylpe, 2 consonants => short + h) y (ld ?y // hyldest -// PB general rule: [W] before (some) velars - y (nk W // PB ynk, ynkelig - y (kk+ W // smykke, lykke - l) y (kø W // PB lykønske - l) y (ksalig W // PB - t) y (L01%e y // PB tykke, tygge - l) y (n_ y // PB lyn, kuglelyn - _l) y (n y // PB lynkarriere - l) yng (limt yng // PB - l) yng WN // PB - sm) y (kn W // PB udsmykning - l) y (gt W // PB lygte, flygte - r) y (ge+ y // PB ryge, ryger - pr) ygelknabe ygElknAb3 // PB - st) y (k+ W // PB stykke - ydm) yg yj // PB - yng WN // PB yngre, dynge, tynge, synge - yng (a Wng // PB laryngal - _n) y (n_ W // PB "nyn en melodi" - n) y (nne W // PB +// general rule: [W] before (some) velars + y (nk W // ynk, ynkelig + m) y (kk++ ?W // smykke + l) y (kk++ ?W // lykke + st) y (kk++ ?W // stykke + l) y (kø ?W // lykønske + l) y (ksalig W // + l) y (n_ ?y // lyn, kuglelyn + _l) y (n ?y // lynkarriere + l) yng (limt yng // + l) yng WN // + sm) y (kn W // udsmykning + l) y (gt W // lygte, flygte + r) y (ge+ y // ryge, ryger + pr) ygelknabe ygElknAb3 // + st) y (k+ W // stykke + ydm) yg y // + yng WN // yngre, dynge, tynge, synge + yng (a Wng // laryngal + _n) y (n_ ?W // "nyn en melodi" + n) y (nne ?W // -//PB general rule: [W] before nd - y (nd+ W // PB ynde, begynde, kyndig, udtynde, skynde - s) yndi (k Wndi // PB syndikat +// general rule: [?W] before nd - short followed by 2 consonants + y (nd+ ?W // ynde, begynde, kyndig, udtynde, skynde + s) yndi (k ?Wndi // syndikat -// PB general rule: consonant + y + sp/st/sk: [?y] - glottal - C) y (L08+ ?y // PB kysk - l) y (stgård W // PB - kr) y (bb+ ?y // PB krybbe - kr) y (s+ ?y // PB krystal, kryster - kr) y (L01%+ W // PB krykke - r) y (C+ W // PB ryste, bryllup, tryg, krympe, krymmel - str) y (C ?y // PB stryknin - _harr) y i // PB - dr) y (p W // PB - r) y (Ce+ y // PB tryne - r) ydell ajd'El/2 // PB name - r) y (sk+ ?y // PB brysk - mar) y (s i // PB - r) y (L06+ y // PB rype, kryptere, kryb - r) y (lle y // PB trylleri - r) y (t+ ?y // PB rytme, rytter - br) y (n ?y // PB øjenbryn - gr) y (n ?y // PB - gr) y (nt W // PB - p) y (nt W // PB - r) y (d+ y // PB forbrydelse, bryde, bryd, fryd - fr) y (s+ ?y // PB forfrysning +// general rule: consonant + y + sp/st/sk: [?y] - glottal + C) y (L08+ y // kysk + C) y (se+ y // kyse + l) y (set+ ?y // + c) y (kel ?y // short y + l) y (stgård W // + kr) y (bb+ ?y // krybbe + kr) y (s+ y // krystal, kryster + r) y (L01%++ ?W // krykke, ryggen + r) y (C+ ?W // ryste, bryllup, tryg, krympe, krymmel - short W + tr) y (l++ y // tryl + str) y (C y // stryknin + _harr) y i // + dr) y (p W // + r) y (Ce++ y // tryne, pryde + tr) y (de ?y // fortryde + r) ydell aId'El/2 // name + r) y (sk+ y // brysk + mar) y (s i // + r) y (L06+ y // kryptere, kryb + r) y (L06A+ y // krybe + r) y (t+ y // rytme, rytter + br) y (n y // øjenbryn + gr) y (n y // + gr) y (nt W // + p) y (nt W // + r) y (de++ y // bryde + forbr) y (d++ ?y // forbrydelse, forbryder + r) y (den++ ?y // gryden - short y TEST + r) y (d_++ y // fryd, ryd +// Short glottal y in both "kryds" and "krydse/r" + r) y (dC++ ?y // krydser, rydde + fr) y (s+ y // forfrysning -// PB exceptions -// PB problem with lyst - blond = light coloured; and lyst = would like to, feel like - l) y (st_til_ W // PB "jeg har lyst til" - "I would like" - l) y (ster W // PB "desires" - har_l) y (st W // PB - får_l) y (st W // PB -ikke_l) y (st W // PB -stor_l) y (st W // PB -skrivel) y (st W // PB - hævnl) y (st W // PB -kappel) y (st W // PB - livsl) y (st W // PB - lærel) y (st W // PB - madl) y (st W // PB -spørgel) y (st W // PB - ul) y (st W // PB -vandrel) y (st W // PB - vell) y (st W // PB - videl) y (st W // PB -virkel) y (st W // PB - ædel) y (st W // PB - øjenl) y (st W // PB -øjensl) y (st W // PB -ørensl) y (st W // PB - l) y (stig W // PB - l) y (stb W // PB lystbåd, lystbetonet - l) y (stelig W // PB - l) y (sten W // PB - l) y (stne W // PB - l) y (stfisk W // PB lystfisker - l) y (sthus W // PB - l) y (stløgn W // PB - l) y (stmord W // PB - l) y (stsejl W // PB lystsejlads - l) y (stspil W // PB - l) y (styacht W // PB +// exceptions +// problem with lyst - blond = light coloured; and lyst = would like to, feel like + l) y (st_til_ W // "jeg har lyst til" - "I would like" + l) y (ster W // "desires" + har_l) y (st W // + får_l) y (st W // +ikke_l) y (st W // +stor_l) y (st W // +skrivel) y (st W // + hævnl) y (st W // +kappel) y (st W // + livsl) y (st W // + lærel) y (st W // + madl) y (st W // +spørgel) y (st W // + ul) y (st W // +vandrel) y (st W // + vell) y (st W // + videl) y (st W // +virkel) y (st W // + ædel) y (st W // + øjenl) y (st W // +øjensl) y (st W // +ørensl) y (st W // + l) y (stig W // + l) y (stb W // lystbåd, lystbetonet + l) y (stelig W // + l) y (sten W // + l) y (stne W // + l) y (stfisk W // lystfisker + l) y (sthus W // + l) y (stløgn W // + l) y (stmord W // + l) y (stsejl W // lystsejlads + l) y (stspil W // + l) y (styacht W // - r) yg (_ @k // PB ryg (noun "back") - problem with "ryg" (verb) = "smoke" - r) yg (_en y // PB "ryg en cigar" - r) yg (_end_ Wg // PB "mere tryg end nu" - str) yg yj // PB stryge - r) yg (ning y // PB silent g - pr) yg (l y // PB - tr) yg (le y // PB trygle - part) y i // PB - str) yge y:@ // PB strygetøj - karr) y (+ i // PB - lib) y i // PB Libyen - _) yves i:v // PB Yves (French name) - fl) y (tn W // PB flytning - m) y (nte 'W // PB mynte, pebermynte (stressed) - afl) y (t ?y // PB aflytning - L08) y (t W // PB spyt, skyts - sk) y (ti ?y // PB Skytien, skytisk - sk) y (ter ?y // PB skyter - s) yv yw // PB - sk) y (ll W // PB skylle - k) y (lling+ ?y // PB lørdagskylling - sk) y (l_ W // PB skyl - sk) y (lni W // PB skylning -_molek) y (le 'y // PB stressed - _lat) y (rus 'y // PB stressed - f) yrre W:V // PB fyrre - f) yrre (tr Y:V // PB fyrretræ - f) yrre (k Y:V // PB fyrrekogle - n) y (t Y // PB nyt - udn) y (t W // PB udnytte - n) y (tt W // PB nytte - ben) y (t W // PB benyt - n) y (k_ W // PB nyk - n) y (ker W // PB nykker - kn) y (tt W: // PB tilknytte - kn) y (t y // PB knyt - k) y (s+ W // PB kys, kyst - sk) y (s+ y // PB skysovs, skyskraber - k) y (sk+ y // PB kyskhed - k) yss Ws // PB kysse - k) y (se+ y: // PB kyse - s) y (ndrom y // PB - s) y (nkr y // PB synkron - s) y (nt y // PB syntes - s) ynthesizer enTesajsV // PB - s) y (nkroc W // PB synkrocyklotron - s) y (tten W // PB - fl) y (t_ W // PB flyt - fl) y (tt W // PB flytte - afl) y (tt y // PB - fl) y (tbar W // PB - whisk) y i // PB whisky - cit) y i // PB - ick) y i // PB tricky, Nicky, Vicky - lonn) y i //PB name - happ) y i // PB happy end, happy hour - s) yracuse irVkjus // PB name - yatzy j&tsi // PB - y (onn j // PB bayonne, mayonnaise - y (ams j // PB - y (emen j // PB - yoel jo'El // PB name - l) y (mC W // PB lymfe - n) y (mf W // PB nymfe - k) y (mK W // PB bekymring - st) y (mper W // PB - d) y (L01t W // PB dygtig - l) y (nch W // PB lynchstemning - yacht jagd // PB lystyacht - york JV:k // PB - yankee j&nki // PB - yale jEjl/2 // PB - yorkshire _jOkS@ // PB - young jVN // PB - yard jard // PB - yuppie jupi // PB - yeager jEgV // PB name - ye (llow jE // PB Yellowstone - can) yon j3n // PB - cl) yde ajd // PB - b) ypass ajpa:s // PB - c) y (ber aj // PB cyberspace - st) y (list aj // PB - sk) y (light aj // PB -standb) y 'aj // PB - carl) yle ajl // PB name - b) yte ajt // PB megabyte - d) y (lan i // PB name - obb) y i // PB hobby, lobby - count) y i // PB -brookl) y (n i // PB - bill) y i // PB - shell) y i // PB name - jack) y i // PB name - luc) y i // PB - fift) y i // PB - sherr) y i // PB - lill) y i // PB name - kitt) y i // PB name - bett) y i // PB name - donn) y i // PB name -trinit) y i // PB name - emil) y i // PB name - kell) y i // PB name - beck) y i // PB name - ronn) y i // PB name - carol) y (n i // PB name - melv) y (n i // PB name -_barnab) y i // PB name - nanc) y i // PB name -gregor) y i // PB name - _l) yndon endVn // PB name - penns) ylvania elv'Ejnj& // PB - t) yrone aIr'Own // PB name - y (asmin S // PB name - Danish version (should it be [dZ]?) -amnest) y i // PB - cand) yfloss iflVs // PB candyfloss - n) y (a j // PB Kenya, Tanya - y (oga j // PB - yoyo joj'o // PB - _) yen jEn // PB currency - kan) y (le 'Y // PB stressed - _kab) y (s 'Y // PB stressed - _kah) y (t 'Y // PB stressed - _par) y (k 'W // PB stressed - _as) y (l 'y // PB stressed - _rev) y 'y // PB stressed - pol) y (est i' // PB polyester -pseudon) y (m 'y // PB stressed -_parapl) y 'y // PB stressed -_stereot) y (p 'y // PB stressed - _enz) y (m 'y // PB stressed - _vin) y (l 'y // PB stressed - ca) yenne j'En3 // PB stressed + r) yg (_ Wg // ryg (noun "back") - problem with "ryg" (verb) = "smoke" + r) yg (_en y // "ryg en cigar" + r) yg (_end_ Wg // "mere tryg end nu" + str) yg yj // stryge + r) yg (ning y: // silent g + pr) yg (l y // + tr) yg (le y // trygle + _r) y (_ ?y // short glottal y + _r) y (et_ ?y // short glottal y + h) y (p ?y // hyp, hypermoderne + part) y i // + Amm) y ?i // rummy, dummy, grammy + str) yge y@- // strygetøj + str) yger yV // stryger + karr) y (+ i // + lib) y i // Libyen + _) yves i:v // Yves (French name) + fl) y (tn W // flytning + m) y (nte 'W // mynte, pebermynte (stressed) + afl) y (tt ?y // aflytning + L08) y (tt+ ?W // spyt, skyts, beskytte + sk) y (ti y // Skytien, skytisk + sk) y (ter y // skyter + s) yv yw // + sk) y (ll ?W // skylle + k) y (lling+ ?y // lørdagskylling + _rek) y (l 'y // stressed + sk) y (l_ ?W // skyl + sk) y (lni W // skylning +_molek) y (le 'y // stressed + _lat) y (rus 'y // stressed + eg) y (pt 'y // Egypten - stressed + f) yrre ?W:_|V // fyrre + f) yrre (tr YV // fyrretræ + f) yrre (k YV // fyrrekogle + n) y (t y // nyt + n) y (tt+ ?W // nytte + ben) y (t ?W // benyt + n) y (k_ W // nyk + n) y (kker ?W // nykker + kn) y (tt ?y // tilknytte + kn) y (t ?y // knyt + k) y (s+ W // kys, kyst + k) y (se+ y // kyse, kyser + sk) y (s+ y // skysovs, skyskraber + k) y (sk+ y // kyskhed + k) yss ?Ws // kysse + s) ynd (rom ?ynd // + s) y (nkr ?y // synkron + s) y (nt ?y // syntes + s) ynthesizer enTesaIsV // + s) y (nkroc W // synkrocyklotron + s) y (tten ?W // + fl) y (t_ W // flyt + fl) y (tt ?W // flytte + afl) y (t y // + fl) y (tbar W // + whisk) y i // whisky + cit) y i // + ick) y i // tricky, Nicky, Vicky + lonn) y e // name + scott) y e // name + happ) y ?i // happy end, happy hour + s) yracuse irVkjus // name + yatzy j&tsi // + y (onn j // bayonne, mayonnaise + y (ams j // + y (emen j // + yoel jo'El // name + l) y (mC ?W // lymfe + n) y (mf ?W // nymfe + k) y (mK ?W // bekymring + st) y (mper ?W // + d) y (L01t ?W // dygtig + l) y (nch ?W // lynchstemning + yacht jagd // lystyacht + york JV:k // + yankee j&nki // + yale jEjl/2 // + yorkshire _jOkS@ // + young jVN // + yard jard // + yuppie jupi // + yeager jEgV // name + ye (llow jE // Yellowstone + can) yon j3n // + cl) yde aId // + b) ypass aIpa:s // + c) y (ber aI // cyberspace + st) y (list aI // + sk) y (light aI // +standb) y 'aI // + carl) yle aIl // name + b) yte aIt // megabyte + d) y (lan i // name + obb) y i // hobby, lobby + count) y i // +brookl) y (n i // + bill) y i // + shell) y i // name + jack) y i // name + luc) y i // + all) y (son I // name + fift) y i // + sherr) y i // + lill) y i // name + kitt) y i // name + bett) y i // name + donn) y i // name +trinit) y i // name + emil) y i // name + kell) y i // name + beck) y i // name + ronn) y i // name + carol) y (n i // name + melv) y (n i // name +_barnab) y i // name + nanc) y i // name +gregor) y i // name + _l) yndon endVn // name + penns) ylvania elv'Ejnj& // + t) yrone aIr'Own // name + y (asmin S // name - Danish version (should it be [dZ]?) +amnest) y i // + cand) yfloss iflVs // candyfloss + n) y (a j // Kenya, Tanya + y (oga j // + yoyo joj'o // + _) yen jEn // currency + kan) y (le 'Y // stressed + _kab) y (s '?y // stressed + _kah) y (t '?y // stressed + _par) y (k '?W // stressed + _as) y (l 'y // stressed + _rev) y '?y // stressed + pol) y (est i' // polyester +pseudon) y (m '?y // stressed +_parapl) y '?y // stressed +_stereot) y (p 'y // stressed + _enz) y (m '?y // stressed + _vin) y (l '?y // stressed + ca) yenne j'En3 // stressed + _vamp) yr 'y3- // stressed + volap) y 'y // volapyk d) y (_ i - d) y (s_ i // PB Kennedys - d) y (p W // PB dyppe - d) y (k W // PB dykker - _s) ykes ajgs // PB name - _) ypres i:pR-3 // PB French town - _w) ya (tt aj3 // PB name - _l) yle ajl // PB name - b) y (A y - penn) y i // PB coin - yokohama jokoh'&m& // PB - _) yates jEjts // PB name - _l) yon i'VN // PB French city + d) y (s_ i // Kennedys + d) y (p ?W // dyppe + d) y (k ?W // dykker + _s) ykes aIgs // name + _) ypres i:pR@- // French town + _w) ya (tt aI3 // name + _l) yle aIl // name + b) y (A ?y // byer + penn) y i // coin + yokohama jokoh'&m& // + _) yates jEjts // name + _l) yon i'VN // French city .group z z s zz s - pi) zz (a ts // PB - zombi sVmbi // PB - zombie sVmbi // PB - zea (lan se // PB New Zealand - _) che) z (_ // PB silent z + pi) zz (a ts // + zombi sVmbi // + zombie sVmbi // + zea (lan se // New Zealand + _) che) z (_ // silent z .group æ æ E -// PB normal æ followed by one consonant and a vowel - æ (CA E // PB læse, blæse - experimental -// PB glottal æ followed by two consonants and a vowel - æ (C%A ?E // PB læsse - experimental -// PB glottal æ followed by one consonant and without a vowel - æ (CK ?E // PB læs, blæs - experimental - - æ (gypt E' // PB - ærre &r3 // PB spærreballon - desv) ærre '&r3 // PB stressed - r) æ (C%A &# // PB brække - experimental - r) æ (CA E: // PB ræbe - experimental - kæled) æ (gge 'E // PB stressed -// PB nouns ending with -ær in da_list - stressed last syllable +// glottal æ followed by double consonant + æ (C%+ ?E // læsse +// v) æ (dde+ ?E // vædde + + æ (gypt E' // + ærre ?E3-V // spærreballon + desv) ærre 'E3-V // stressed + r) æ (C%e+ ?&# // brække, rædde, træffe - experimental + r) æ (CA E: // ræbe - experimental + kæled) æ (gge 'E // stressed + +// problem with "læste" long verb vs. short noun - "skomagerens læste" +_han_l) æ (ste E: +_hun_l) æ (ste E: + _vi_l) æ (ste E: + _de_l) æ (ste E: + +// nouns ending with -ær in da_list - stressed last syllable &) ær ($p_alt ''Er // elementær -// PB general rule &# after r - r) æ &# // PB very broad - suver) æ (n '?E // PB stressed - kr) æ (_ ?E // PB - r) æ (t+ &# // PB åndedrættet - spr) æ (C+ &# // PB sprængt - pr) æ (C+ ?E // PB prætendere, præsentere, prækvalificere - rør) æg ?Eg // PB - pr) æ (gn ?E // PB prægnans, prægnant - for) æ (dle ?E // PB - æ (l+ ?E // PB forældet, ræling, ældre, forældre - r) æ (s E // PB kræsen, ræsson - r) æ (CL04 ?E // PB prærie, præcis - L08r) æ (C &# // PB skræk, skrælle, sprælle - gr) æ (s &# // PB græsplæne - pr) æ (st_ &# // PB - pr) æ (ster &# // PB - pr) æ (sten &# // PB - pr) æ (sterne &# // PB - pr) æ (sta E // PB præstation +// general rule &# after r + r) æ (+ &# // frækt - very broad + suver) æ (n 'E // stressed + kr) æ (_ E? // + r) æ (t+ &# // åndedrættet + spr) æ (C+ &# // sprængt + pr) æ (C+ E // prætendere, præsentere, prækvalificere + 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 -// PB general rule E after tr - tr) æ E // PB juletræ +// general rule E after tr + tr) æ (+ ?E // juletræ + tr) æ (e E // træet - tr) æg (_ Ej // PB - tr) æg (e_ Ej // PB - r) æ (L02 E // PB TEST r + æ + labial - dræbe, præparat - tr) æ (n+ E // PB træning, træn - dr) æ (n+ E // PB dræning, dræn - tr) æ (ng+ &# // PB trænge - r) æ (L02% &# // PB TEST r + æ + double labial - skræppe - r) æ (L02t &# // PB TEST r + æ + labial + t - dræbt - r) æ (m &# // PB fugleskræmsel - tr) æ (C &# // PB træværk - tr) æg (hed Ej // PB -_portr) æ (t '&# // PB stressed + tr) æg (_ Ej // + tr) æg (e_ Ej // + r) æ (L02+ E // TEST r + æ + labial - dræb, præparat + r) æv (+ ?Ew // ræv, kræv + r) æ (L02e+ E // dræbe + tr) æ (n+ E // træning, træn + dr) æ (n+ E // dræning, dræn + tr) æ (ng+ ?&# // trænge + 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) æg (hed Ej // + r) æ (d+ ?&# // fortræd, ræd +_portr) æ (t '?&# // stressed -// PB general rule r + æ + consonant + e: E - tr) æ (Ce++ E: // PB træne, træde - rr) æ (Cer+ &# // PB forræderi - dr) æ (ber E // PB - _mor) æ (ne+ 'E // PB stressed - _tr) æ (ben++ &# // PB træben +// general rule r + æ + consonant + e: E + tr) æ (Ce++ E: // træne, træde + rr) æ (Cer+ &# // forræderi + dr) æ (ber E // + _mor) æ (ne+ 'E // stressed + _tr) æ (ben++ ?&# // træben -// PB general rule r + æ + d + e: &# - r) æ (de++ &# // PB græde +// general rule r + æ + d + e: &# + r) æ (de++ &# // græde -// PB final -æer: stressed æ +// final -æer: stressed æ _aram) æ (er 'E _athen) æ (er 'E _epikur) æ (er 'E @@ -8371,232 +8847,272 @@ _nazar) æ (er 'E _propyl) æ (er 'E _pythagor) æ (er 'E - æld (r+ Eld // PB forældre, ældre - k) æld (r El // PB kældre - pr) æ (k E // PB præke - pr) ædi ED // PB silent i - prædiken - pr) ædi (kant Edi // PB - pr) æ (stere E // PB - spr) æ (kk &# // PB sprække - sp) æ (ne E: // PB opposed to "spænde" with a short æ -// r) æ (dd &# // PB skrædder, brædder, ræddike - _migr) æ (ne 'E // PB stressed - _dom) æ (ne 'E // PB stressed - f) æ (re 'E: // PB affære, atmosfære, sfære - gev) æ (r 'E // PB gevær - besv) æ (r_ 'E // PB besvær - afh) æ (ngig 'E: // PB stressed - _omst) æ (nd ''E // PB stressed - omstændighed - _pal) æ 'E // PB stressed -_porcel) æ (n 'E // PB stressed - _pygm) æ 'E // PB stressed - trof) æ 'E // PB stressed - _fad) æ (se 'E // PB stressed - refr) æn '&N // PB stressed - _font) æ (ne 'E // PB stressed - _iv) æ (rksæt 'E // PB stressed - iværksætter -_karant) æ (ne 'E // PB stressed -_jubil) æ 'E // PB jubilæet - galil) æ 'E // PB Galilæa, galilæerne - t) æge E:j@ // PB tæge - t) æe (r E // PB tæer - C) ærge E:ru@ // PB sværge, færge, værge - v) ærger E:ruV // PB sværger - ævl Eul // PB -majest) æ (t 'E // PB stressed æ - ærinde ERn@ // PB + æ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 + 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 + afh) æ (ngig '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 +_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 + 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@ // + sj) æ (l ?E // sjæl + sj) æ (leC E // sjælefred + sj) æ (len ?E // sjælen, sjælens .group ø -// røveren [V] faldt på røven [W#] og skød [W] en møgkælling [Vj] +// røveren [V] faldt på røven [W#] og skød [?W] en møgkælling [Vj] ø W - ø (de W: //PB øde - ø (dd W // PB fødder, rødder -_chauff) ø (r 'W // PB stressed in 'chauffør' - _milj) ø 'W // PB stressed - miljø - obsk) ø (n 'W: // PB stressed - _nev) ø 'W // PB stressed - _am) ø (be 'W // PB stressed + +// Short ø - double consonant + ø (C%+ ?W // tørre, fødder, rødder + r) ø (mme ?W# // rømme, strømme + ø (rnene ?W // børnene, tjørnene - TEST + ø (ds ?W // ødsel, fødsel - short before 2 consonants + b) ø (n ?W // bønder + +_chauff) ø (r 'W // stressed in 'chauffør' + _milj) ø 'W // stressed - miljø + obsk) ø (n 'W: // stressed + _nev) ø 'W // stressed + _am) ø (be 'W // stressed h) ø (j V - ø (je V // PB øje - øre W:V // PB VERY BROAD - snørebånd - øre (jse Wra // PB sørejse - i) øre (faldende 'W:V // PB stressed - s) øre (dni WrE // PB søredningstjeneste - øjer W#jV // PB bøjer - ø (jn W# // PB øjne + ø (je W# // øje + øre WV // snørebånd, gøren + ører (n WV // ørerne + ører (_ WV // 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 - kl) øg (t Wg // PB kløgtig - gl) øgg Wg // PB gløgg - g) øg (l Vj // PB gøgler + kl) øg (t ?Wg // kløgtig + gl) øgg Wg // gløgg + g) øg (l Vj // gøgler l) ø (s W - C) ø (j+ W# // PB søjle, bøjle, sprøjte - _hall) ø (j 'W# //& PB stressed - burg) ø (js 'W# // PB burgøjser, burgøjsisk - stressed -oberstl) ø (jtnant 'W# // PB stressed - L09) ø (g V // PB m => L09 (m + n) - møg, smøg - n) øg (tern Wg // PB - sm) øg (_sig Wj // PB "katten smøg sig om benet" - _n) ø (d@ 'W: // PB nød- stressed - nødsituation - _n) ødt (_ Wd // PB nødt - r) ø (+ W // brød - r) ø (L09 W# // PB grøn, rømme, strømme - r) ø (L09e W // PB skrøne - dr) ø (n W // PB drøn - r) ø (mer W: // PB strømere - s) ø_ W: - L08) ø (g W // PB skøge - sp) øg (en Vj // PB - sp) øg (_ Vj // PB spøg = joke - s) ø (g W // PB søgte - sp) ør (g W:r // PB spørge - sp) ørger (_ Wr // PB - sp) ør (gs Wr // PB spørgsmål - r) ø (g W# // PB røg - r) ø (gte W // PB misrøgte - r) ø (gelse W // PB - for) ø (g W // PB forøge - for) øg (_ W:? // PB forøg - øre_ W:V // PB køre - r) ø (v W# // PB røv - ber) ø (ve W // PB - bedr) ø (v W // PB bedrøvede - r) ø (ver W // PB røveri - narr) ø (v W# // PB narrøve -bonder) ø (v W# // PB bonderøve - pr) ø (v ?W // PB glottal - pr) ø (vA W // PB - _r) ø (ven W# // PB - dr) ø (vet W // PB bedrøvet - k) ød WD // PB skød, kød - _) øg (_ Wj // PB 'øg' noun and verb + 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 + L09) ø (g+ V // m => L09 (m + n) - møg, smøg, nøgen + 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 + fr) ø (+ ?W // frø, frøer - short even if followed by [V] + r) ø (L09 W# // grøn, strøm + r) ø (L09e W // skrøne + dr) ø (n ?W // drøn + dr) ø (ne W // drøne + d) ø (d ?W // død + d) ø (de W: // døde + 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 + s) ø (g ?W // søgte + sp) ør (g W:r // spørge + sp) ørger (_ Wr // + sp) ør (gs Wr // spørgsmål + r) ø (g+ ?W# // røg + r) ø (gte W // misrøgte + r) ø (gelse W // + for) ø (g W // forøge + for) øg (_ ?W // forøg +// øre_ W:V // køre + r) ø (v W# // røv + r) ø (ve W // røve + ber) ø (ve W // + 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 + pr) ø (v ?W // short + pr) ø (vA W // + _r) ø (ven ?W# // + dr) ø (vet W // bedrøvet + k) ød ?WD // skød, kød + _) øg (_ ?Wj // 'øg' noun and verb d) øg (n Vj - øj+ V:j // PB changet from [Oj] - velg) ø (renhed 'W // PB stressed ø - _man) ø (vre 'W // PB stressed - im) ø (dekom 'W: // PB imødekomme - syd) ø (st 'W // PB stressed - sydøst - nord) ø (st 'W // PB stressed - nordøst + øj+ V:j // changet from [Oj] + velg) øre (nhed 'WV // stressed ø + _man) ø (vre '?W // stressed + im) ø (dekom 'W: // imødekomme + syd) ø (st 'W // stressed - sydøst + nord) ø (st 'W // stressed - nordøst .group øs -//PB (mostley French -eux/-euse) adjectives ending with -øs in da_list - stressed ø +// (mostley French -eux/-euse) adjectives ending with -øs in da_list - stressed ø &) øs ($p_alt 'W:s // dubiøs .group ør -//PB (mostley French -eur) nouns ending with -ør - stressed ø - around 150 words - &) ør ($p_alt ''Wr // hønnør, frisør +// (mostley French -eur) nouns ending with -ør - stressed ø - around 150 words + &) ør ($p_alt ''?W3- // hønnør, frisør + &) ør (en$p_alt ''?WV // hønnøren, frisøren .group å - å O // PB changed from O:? - ovenp) å (_ 'O // PB stressed -// PB råd ("advice") - r) å (d+ O // PB råd (advice, not rot) - r) å (dn+ V // PB rådne - tr) ådne (t ODnE // PB - r) å (dd+ V // PB rådden - tr) å (dt+ V // PB overtrådt - r) å (dg+ V // PB rådgive - r) å (df+ V // PB rådføre - r) å (dh+ V // PB rådhus - r) å (dvild V // PB - r) å (dsnar V // PB - r) å (dløs V // PB - tr) å (d+ O // PB trådløs - r) å (dmand V // PB - r) å (dsl V // PB rådslagning - r) å (dsp V // PB rådspørge, rådspurgte - r) å (sejl V // PB + å O // changed from O:? - g) ård O: // PB gårdmand, bondegård - silent d - g) årde O:-3 // PB - ården OVn // PB gården - h) årde V:3 // PB - h) årdest V:r@st // PB - p) å (ske O // PB påske - s) å O // PB så - s) å (vel V // PB - s) å (_snart V // PB - s) å (_få V // PB - s) å (kald V // PB såkaldt - s) å (mænd V // PB - sp) å (mand V // PB - sp) å (mænd V // PB - sp) å (kone V // PB - sp) å (kvinde V // PB - sp) å (dom V // PB - åd (s VD // PB ådsel, rådslagning - b) åd (+ OD // PB bådskur -_var_s) å (_ V // PB jeg var så glad - jas) å (_ 'V // PB jaså + å (C ?O // lås, ås, båd + år (@ O: // dårlig, årsag + @) år (_ O: // skatteår +// g) år O // går, overgår + _) år (_ O: // år + C) år (_ O: // sår, kår, skår, får + år (s O: // årstid + s) år (C O: // sårbsr + åre O:?O // Pb åre, årelang, båre, båren + året O:?OD // året, håret + n) å (et ?O // short glottal o + @n) å (et O // opnået + + ovenp) å (_ '?O // stressed (originally 2 words "oven på") + undg) åe (lig '?O // stressed + opn) åe (lig '?O // stressed + forst) åe (lig '?O // stressed +uimodst) åe (lig '?O // stressed + påst) åe (lig '?O // stressed + +// råd ("advice") + r) å (d+ O // råd ("advice", not "rot") + r) å (dn+ V // rådne + r) å (dyr V // + tr) ådne (t ODnE // + r) å (dd+ V // rådden + tr) å (dt+ V // overtrådt + r) å (dg+ V // rådgive + r) å (df+ V // rådføre + r) å (dh+ V // rådhus + r) å (dvild V // + r) å (dsnar V // + r) å (dløs V // + tr) å (d+ O // trådløs + r) å (dmand V // + r) å (dsl V // rådslagning + r) å (dsp V // rådspørge, rådspurgte + r) å (sejl V // + + g) ård V: // gårdmand, bondegård - silent d + g) årde V:3 // + ården V:Vn // gården + h) år O // hår, hård + h) år (dt O: + h) årde V3 // + h) årdest V:r@st // + p) å (ske O // påske + s) å O // så + s) å (vel V // + s) å (_snart V // + s) å (_få V // + s) å (kald V // såkaldt + s) å (mænd V // + sp) å (mand V // + sp) å (mænd V // + sp) å (kone V // + sp) å (kvinde V // + sp) å (dom V // + åd (s VD // ådsel, rådslagning + b) åd (e+ OD // bådskur + b) åd (en+ ?OD // +_var_s) å (_ V // jeg var så glad + jas) å (_ 'V // jaså alts) å V // PN altså - hvorn) år 'O? // PB hvornår - stressed -uimodst) å (elig 'O // PB stressed - forh) åbentlig 'ObEntli // PB stressed - h) år V:? // PB hår, hård - bl) å (@ V // PB blåbær, blågrå + hvorn) år 'O // hvornår - stressed +uimodst) å (elig 'O // stressed + bl) å (@ V // blåbær, blågrå -// PB General rule [V] followed by t TEST - å (t V // PB blåt - g) å (tur O // PB +// General rule [?V] followed by t + å (t ?V // blåt + g) å (tur ?O // - å (nd V // PB hånd, ånd, bånd - l) å (r V - p) å (s V // PB påstand - gåp) å (mod 'O // PB stressed - sl) å (s V // PB slås -tændingsl) å (s O // PB - sl) å (brok V // PB - ansl) å O // PB anslås - sm) å (C@+ V // PB småkage, småfolk, smålig - m) å (de++ O // PB fremgangsmåde -spørgsm) å (l O // PB spørgsmålet + å (nd ?V // hånd, ånd, bånd + l) å (r ?V + p) å (st ?V // påstand + gåp) å (mod '?O // stressed + sl) å (s ?V // slås +tændingsl) å (s ?O // + sl) å (brok ?V // + ansl) å ?O // anslås + sm) å (C@+ ?V // småkage, småfolk, smålig + m) å (de++ O // fremgangsmåde +spørgsm) å (l ?O // spørgsmålet m) å (ling++ O // PP meningsmåling -modersm) å (l O // PB -slagsm) å (l O // PB - m) å (lløs+ V // PB - m) å (ltid+ V // PB - s) å (d V // PB sådan - s) å (t V // PB undersåt - skr) å (p V // PB skråplan - stj) å V // PB stjålet - L08r) å (t V // PB skråt - m) å (t V // PB måtte - v) å (dt V // PB - _p) å V // PB påmontere - t) å (lmo V // PB tålmodig - d) å (dyr V // PB dådyr - t) å (negl V // PB - t) å (spids V // PB - _p) åse Vse // PB påse - r) å (t V // PB gråt - gr) å (@ V // PB gråand, grågrøn, gråsprængt - gr) å (d O // PB gråd, grådig - gr) å (ne O // PB - r) å (bt V // PB råbte - r) å (lam V // PB - r) å (material V // PB - str) å (mand V // PB - str) å (mænd V // PB - str) å (forkort V // PB stråforkorter - str) å (hat V // PB - str) å (død V // PB - år V: // PB år, står - åre V:3 // PB tåre - årer V:V- // PB sårer - å (lti V // PB måltid +modersm) å (l ?O // +slagsm) å (l ?O // + m) å (lløs+ ?V // + m) å (ltid+ ?V // + s) å (d ?V // sådan + s) å (t ?V // undersåt + skr) å (p ?V // skråplan + stj) å ?V // stjålet + L08r) å (t ?V // skråt + m) å (t ?V // måtte + v) å (dt ?V // + _p) å ?V // påmontere + t) å (lmo ?V // tålmodig + d) å (dyr ?V // dådyr + t) å (negl ?V // + t) å (spids ?V // + _p) åse ?Vse // påse + r) å (t ?V // gråt + gr) å (@ ?V // gråand, grågrøn, gråsprængt + gr) å (d O // gråd, grådig + gr) å (ne O // + r) å (bt ?V // råbte + r) å (lam ?V // + r) å (material ?V // + str) å (mand ?V // + str) å (mænd ?V // + str) å (forkort ?V // stråforkorter + str) å (hat ?V // + str) å (død ?V // +// år ?V // år, står, dårlig + st) år V // forstår +// åre V:3 // tåre + årer V:V- // sårer + å (lti ?V // måltid .group ' 's (_S2 s - 'en (_S3 @n // PB bh'en - 'er (_S3 %V // PB 60'er - 'ere (_S4 VrV // PB 60'ere - 'erne (_S5 %Vn@ // PB 60'erne -// 30_) 'erne (_S5 %Vn@ // PB 30'erne - 'ernes (_S6 %Vn@s // PB 60'ernes - 'et (_S3 @D // PB tv'et + 'en (_S3 @n // bh'en + 'er (_S3 %V // 60'er + 'ere (_S4 VrV // 60'ere + 'erne (_S5 %Vn@ // 60'erne +// 30_) 'erne (_S5 %Vn@ // 30'erne + 'ernes (_S6 %Vn@s // 60'ernes + 'et (_S3 @D // tv'et .group - $ dVlV // PB changed from [dVlar] - ñ _^_ES // PB mañana - ï i: // PB Thaïs + $ dVlV // changed from [dVlar] + ñ _^_ES // mañana + ï i: // Thaïs ç s - à & // PB à part + à & // à part diff --git a/dictsource/de_list b/dictsource/de_list index f20a80e8..56d91fe4 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -97,6 +97,7 @@ x Iks _ar aR'AbIS _cyr ky:R'IlIS _he hEbr'E:IS +_zh Ci:n'e:zIS // Numbers diff --git a/dictsource/dv_list b/dictsource/dv_list index d66a7f05..4ce2ae63 100644 --- a/dictsource/dv_list +++ b/dictsource/dv_list @@ -8,10 +8,10 @@ _0 s'umeI _1 e'keI _2 d'eI _3 tineI -_4 ha'tha'reI +_4 ha't#a'reI _5 fa'heI _6 ha'eI -_7 ha'theI +_7 ha't#eI _8 a'SeI _9 n'uaeI _10 d'ihaeI @@ -19,11 +19,11 @@ _10 d'ihaeI _11 e'gj'a:r@1 //egaara _12 b'ar@2 //baara _13 t'E:r@2 //theyra -_14 ch'O:d@2 //saada (d like in _2) +_14 c#'O:d@2 //saada (d like in _2) _15 p'Vndr@2 //fanara _16 s'o:l@2 //soalha lh like in ޅ _17 s'Vt:r@2 //sathaara -_18 Vth.:'a:r@2 //ashaara +_18 Vt.#:'a:r@2 //ashaara _19 Unn'Is //navaara _20 b'i:s //vihi (we he) @@ -32,9 +32,9 @@ _22 b'a:Is //baa wees _23 t'e:Is //tei wees _24 c'O:bIs sav wees _25 p@c:'Is //fansavees -_26 ch@bb'i:rs // sabbees +_26 c#@bb'i:rs // sabbees _27 s@t:'a:Is // sathawees -_28 ath:'a:Is // asha wees +_28 at#:'a:Is // asha wees _29 Unt'Is // ona thirees _30 t'i:s // thirees @@ -43,7 +43,7 @@ _32 bat:'Is // eg. 32 = thirees (30) eke (1) _33 tE~t'Is // E~ ? _34 cO~t'Is _35 pE~t'Is -_36 chaT'tIs +_36 c#aT'tIs _37 sE~t'Is _38 art'Is _39 Unta:l'Is @@ -54,7 +54,7 @@ _42 baIa:l'Is _43 tE~ta:l'Is _44 cO:wa:l'Is _45 paI'nta:l'Is -_46 chhIja:l'Is +_46 c#hIja:l'Is _47 sE~ta:l'Is _48 arta:l'Is _49 'Un^ca:s @@ -64,32 +64,32 @@ _51 Ikj'a:wVn _52 b'a:wVn _53 t'IrpVn _54 c'Ou:wVn -_55 p'achpVn -_56 chh@p:'Vn +_55 p'ac#pVn +_56 c#h@p:'Vn _57 sVt:'a:w@n -_58 ath:'a:w@n -_59 Uns'Vth +_58 at#:'a:w@n +_59 Uns'Vt# -_60 s'a:th. //fas dho (ދ) lhas -_61 'Iks@th. -_62 b'a:s@th. -_63 t'Irs@th. -_64 c'O~s@th. -_65 paIns@th. -_66 ch'Ija:s@th. -_67 s'Vrs@th. -_68 ars@th. +_60 s'a:t.# //fas dho (ދ) lhas +_61 'Iks@t.# +_62 b'a:s@t.# +_63 t'Irs@t.# +_64 c'O~s@t.# +_65 paIns@t.# +_66 c#'Ija:s@t.# +_67 s'Vrs@t.# +_68 ars@t.# _69 Un@h,at:'Vr: _70 sat:'Vr: // hai dhiha -_71 Ikhat:'Vr: +_71 Ik#at:'Vr: _72 b@hat:'Vr: _73 tIhat:'Vr: _74 cO:hat:'Vr: -_75 pach,at:'Vr: -_76 chIhat:'Vr: +_75 pac#,at:'Vr: +_76 c#Ihat:'Vr: _77 s@t@hat:'Vr: -_78 athhat:'Vr: +_78 at#hat:'Vr: _79 ,Un^Ia:s'i: _80 ,Vss'i: // addiha @@ -98,9 +98,9 @@ _82 baIa:s'i: _83 tIra:s'i: _84 cO:ra:s'i: _85 pI'ca:s'i: -_86 chIja:s'i: +_86 c#Ija:s'i: _87 sVt:a:s'i: -_88 ath:a:s'i: +_88 at#:a:s'i: _89 nVwa:s'i: _90 nVb:'e: nuvadhiha @@ -109,12 +109,12 @@ _92 b'a:n@we: _93 tIr'a:n@we: _94 cO:r'a:m@we: _95 p@c'a:n@we: -_96 chIj'a:n@we: +_96 c#Ij'a:n@we: _97 s@t:'a:n@we: -_98 ath:'a:n@we: +_98 at#:'a:n@we: _99 nIn^j'a:n@we: -_0C sa'theIka //satheyka (th like them) +_0C sa't#eIka //satheyka (th like them) _0M1 h@z'a:r (haas) _0M2 l'a:kh // lakka _0M3 cr'ore //curoadu diff --git a/dictsource/en_list b/dictsource/en_list index 27531271..a6931de8 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -19,6 +19,7 @@ // $alt1 use strong ending (-table, -inal) // $alt2 use weak ending // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] +// $alt6 'to' // letter names, as they are spoken as a single character in text @@ -126,6 +127,7 @@ _, k0m@ _- h,aIf@n ?3 _- daS _. d0t +?3_.p pi@rI@d _: koUl@n _; sEmIk'oUl@n _< lEsDan @@ -187,7 +189,7 @@ _‴ trIp@LpraIm _‼ Ekskla#m'eIS@nz _₠ jU@roU -+ plVs $max3 ++ plVs # haS $max3 @ _at_ $u+ & _and $u+ @@ -261,19 +263,21 @@ _hi h'Indi _bn bEng'A:li _gur g'U@mUki _gu gu:dZ3r'A:ti -_or 0r'i@ +_or O:r'ia: _ta t'amI2l +_te t'Elugu _kn k'A:na#d@ _ml maleI'A:l@m -_si sI2nh'A:l@ +_si s'INh@l@ _th t'aI _lo l'aU _ti tI2b'Et@n _my mj'A:nmA@ _ka dZ'O@dZ@n -_ko k3r'i@n +_ko h'angul _eth i:TI'0pIk - +_ja dZ'ap@ni:z +_zh tS'aIni:z // Cyrillic letters а a @@ -304,11 +308,15 @@ _eth i:TI'0pIk ш Sa щ StSa ъ jEr -ы _^_RU -ь jer +ы j'Eru +ь j'eri э E ю ju я ja +ћ tS;E +ђ djE +ќ kjE + // Arabic letters @@ -382,6 +390,18 @@ _eth i:TI'0pIk ר ReS_ ש Sin_ ת tav_ +ְ SvA: +ֱ E +ֲ a +ֳ o +ִ i: +ֵ E +ֶ E +ַ a +ָ a +ֹ o +ֻ u +ּ d'agES // phonetic modifiers @@ -620,6 +640,7 @@ ablaut ablaUt aborigine ab@r'IdZ@ni abracadabra abr@k@d'abr@ absence abs@ns +absent $1 absent abs'Ent $verb absentia abs'Ent2i:@ absinthe absInT @@ -902,6 +923,7 @@ bias baI@s biased baI@st bible baIb@L bidet bi:deI +bigot bIg@t // -ed bijou bi:Zu: bikini bIk'i:ni binman bInman @@ -1002,6 +1024,7 @@ canine keInaIn canoe k@nu: canoes k@nu:z canon kan@n +?3 cantaloupe kant@loUp canton kant0n canvas kanv@s capita kapIt@ @@ -1174,6 +1197,8 @@ conger k0Ng3 congressional k@ngrES@n@L conker $1 conscience k0nS@ns +consort $1 +consort $verb constitute $1 construct $1 $onlys construct $verb @@ -1196,6 +1221,7 @@ convent k0nv@nt converse $1 $only converse $verb convert $1 $noun +convict $1 convict $2 $verb convolute k0nv@l'u:t coop ku:p @@ -1605,6 +1631,7 @@ gourmet gU@meI graduate gradju:@t graduate gradju:eIt $verb graffiti $alt3 +grandson gr'andsVn gredient gri:di@nt // ingredient grenade gr@neId griffon grIf@n @@ -1961,6 +1988,7 @@ mercedes m3:s'eIdi:z //mercenary m3:s@n@rI merest mi@r@st meringue m@raN +meson mi:z0n metabolic mEt@b'0lIk metaphor mEt@fO@ metastable $alt1 @@ -2600,7 +2628,7 @@ sierra si:'e@r@ signage saInI2dZ signal sIgn@l // signaled signer saIn3 -signoff s,aIn'0f +signoff s'aIn0f signon s,aIn'0n signup saInVp sikh si:k @@ -3671,6 +3699,7 @@ Disney dIzni Dolce d0ltSeI Dvorak d@-vo@Zak Emory Em3ri +Fleming flEmIN Folger foUldZ3 Genghis dZENgIs Gibson gIbs@n @@ -3768,7 +3797,7 @@ for fO@ $u (for a while) f@@||w'aIl (for one) fO@w0n $2 $atend -to t@5 $verbf // @ change to U before vowel +to t@5 $verbf $alt6 // @ change to U before vowel (to be) t@b%i $pastf (to be) t@||'bi: $atend (to to) %tU_t@5 $verbf @@ -4031,6 +4060,9 @@ thou DaU thy ,DaI thine ,DaIn +(i had) aI||h'ad $atend +(he had) hi:||h'ad $atend + me ,mi: $only me mi: $atstart $atend him ,hIm $only @@ -4172,19 +4204,22 @@ like laIk $strend2 // General American -?3 agile adZ@L -?3 docile doUs@L -?3 facile fas@L -?3 fertile f3:t@L -?3 fragile fradZ@L -?3 futile fju:t@L -?3 hostile h0st@L -?3 mobile moUb@L +agile $alt2 +docile $alt2 +ductile $alt2 +facile $alt2 +fertile $alt2 +fragile $alt2 +futile $alt2 +hostile $alt2 +mobile $alt2 ?3 missile mIs@L -?3 projectile pr@dZEkt@L -?3 puerile pjU@r@L -?3 sterile stEr@L -?3 virile vIr@L +projectile $alt2 +puerile $alt2 +senile $alt2 +sterile $alt2 +tensile $alt2 +virile $alt2 ?3 volatile v0la#t@L diff --git a/dictsource/en_rules b/dictsource/en_rules index 97f6c7ab..f17077ed 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -1,6 +1,6 @@ // *************************************************************************** -// * Copyright (C) 2005 to 2010 by Jonathan Duddington * +// * Copyright (C) 2005 to 2013 by Jonathan Duddington * // * email: jonsd@users.sourceforge.net * // * * // * This program is free software; you can redistribute it and/or modify * @@ -387,6 +387,7 @@ _r) adio (@P5 r,eIdI%oU r) adi (oL10+ eIdI b) ad (os_ eId + _s) ado (ma ,eIdoU ad (iA eId s) ad (is eId _tr) ad (it a#d @@ -1275,7 +1276,7 @@ _) be (gg bE _) belarus bEl@r'u:s _) be (lC bE - _) be (lli bI2 + _) be (llig bI2 _) be (sC bI2 _) be (stia bE _) be (tB bE @@ -1601,7 +1602,7 @@ co (ntrol+ k@ conva (l k0nv@ _) co (nvenA k@ - _) co (nvi k0# + _) con (vi k%0#n _) co (nvoy k0 _) co (nw k0 _) copy k0pI @@ -1734,7 +1735,7 @@ _) des (k dEs des (ol dEs des (pot dEs - _) dess dI2z + _) dess (er dI2z desta (b d%i:steI desti dEstI des (ul d%i:s @@ -2547,7 +2548,7 @@ v) es (t+ Es harv) es (t Is esti (m EstI# - es (ty @s + &) es (ty @s .group et _) et (on i:t @@ -2681,7 +2682,7 @@ for (see f%O@ for (ward f'o@ // straightforward ft (en f - &) ful (_S3 f@L + &) ful (_S3i f@L &) fully (_S5 f@li &) fulness (_S7 f@Ln@s @@ -2768,6 +2769,7 @@ h (_ _B) h @) hammed h'amId + d) h (am_ A) han (_ han // places e) han (_ h@n ha (st heI @@ -2920,6 +2922,7 @@ nt) il (_ @L @v) il (_ @L @) ila (_ 'Il@ +?3 &) ile (_$w_alt2 @L _C) i (lage aI _d) i (lat %aI l) il (ah_ aIl @@ -2994,6 +2997,7 @@ iah (_ 'aI@ ia (m i@ &) ia (n i@ + @) ia (nd I'a @) ia (nic I'a @) ia (nit I'a @) ia (na_ i:'a @@ -3379,6 +3383,7 @@ &) ion (_ =i@n ?8 &) ion (_ =IVn ll) ion i@n + ll) ion (_ =i@n n) ion =i@n v) io (l aI@ ione (_ 'aI@ni @@ -3394,8 +3399,8 @@ iority I'0rI2t%I iou (rA j@ iour (K j3 - @) ious (_ =I2@s - g) ious (_ =@s + @) ious =I2@s + g) ious =@s ioux u: _r) io (t aI@ io (t_ I|@ @@ -3569,7 +3574,6 @@ _l) iv (eB aIv XC) iv (el Iv _g) iv (e Iv - _l) iv (e Iv l) iv (er Iv r) iv (er Iv dr) iv (er aIv @@ -3677,8 +3681,8 @@ legged lEgId // Ab) le @L C) le (ton_ @L - Ab) ler (_ l@ - Ab) le (C_ l@ + Ab) ler (_ l3 + Ab) le (B_ l@ Ab) led (_ @Ld &) lem (ent @Lm &p) lem (ent lIm @@ -3750,8 +3754,7 @@ _) metall (ic m@tal metabo m@t'ab0 _) meta (llu m%Eta - _) mobile moUbaIl - mobile m@bi:l + &) mobile m@bi:l mono (ga m@n'0 mo (noto m@ _) mono m0noU @@ -4081,6 +4084,7 @@ m) otor oUt3 n) o (tor oU otro (py '0tr@ + &) o (try @ c) otyle 0tIl'i: m) o (x @ o (x++ 0 @@ -4191,7 +4195,6 @@ ?3 ag) on (_ 0n rg) on (_ @n &s) on (_ @n - ds) on (_ Vn &t) on (_ @n &tr) on (_ 0n fl) on (_ 0n @@ -4208,7 +4211,9 @@ pers) on @n pers) on (i '0n postp) on 'oUn + _sp) on 0n on (ald 0n + &) on (age_ @n d) on (at %oUn on (an_ oUn _) on (io Vn @@ -4397,6 +4402,7 @@ os (al_ 'oUz _l) os (e u:z ose (_ oUz + c) ose (_ oUs purp) ose @s _r) os (e# oUz c) os (ec oUs @@ -4584,7 +4590,7 @@ ?3 h) ov (er Vv l) ov Vv l) ov (e Vv - _l) ove Vv + _l) ove (@ Vv cl) ov (e oUv _sl) ov (enA oUv pl) ov oUv @@ -5881,6 +5887,7 @@ &d) Ed (_S2vei I#d &ch) Ed (_S2vei t &k) Ed (_S2vei t + ril) Ed (_S2 d &@@om) Ed (_S2v d &p) Ed (_S2vei t &t) Ed (_S2vei I#d diff --git a/dictsource/eo_rules b/dictsource/eo_rules index 2b439efa..ea28016d 100644 --- a/dictsource/eo_rules +++ b/dictsource/eo_rules @@ -13,214 +13,215 @@ .group a - _) a(_ a - a a - aj aI - aŭ aU + _) a (_ a + a a + aj aI + aŭ aU .group b - _) b(_ bo - b b - -.group c - _) c(_ tso - _) ch(_ tSo - c ts - ch (K tS // foreign words - K) ch tS // foreign words - - -.group d - _) d(_ do - d d + _) b (_ bo + b b - _) d (-ro dokt'o - _) d (-rino d,okto +.group c + _) c (_ tso + _) ch (_ tSo + c ts + ch (K tS // foreign words + K) ch tS // foreign words + + +.group d + _) d (_ do + d d + + _) d (-ro dokt'o + _) d (-rino d,okto .group e - _) e(_ e - e e - ej eI - eŭ eU - + _) e (_ e + e e + ej eI + eŭ eU + .group f - _) f(_ fo - f f + _) f (_ fo + f f + + _) f (-ino fR%aUl + _) f (-lo fRaU - _) f (-ino fR%aUl - _) f (-lo fRaU - .group g - _) g(_ go - g g - gh (K dZ - + _) g (_ go + g g + gh (K dZ + .group h - _) h(_ ho - h h - hh x - - + _) h (_ ho + h h + hh x + + .group i - _) i(_ i - i i + _) i (_ i + i i + - .group j - _) j(_ jo - j j - jh (C Z - + _) j (_ jo + j j + jh (C Z + .group k - _) k(_ ko - k k + _) k (_ ko + k k + + _) k (-do kamaR'a + _) k (-dino k'amaRa + _) k (-ino k'amaRad - _) k (-do kamaR'a - _) k (-dino k'amaRa - _) k (-ino k'amaRad - .group l - _) l(_ lo - l l - ll (_ l + _) l (_ lo + l l + ll (_ l .group m - _) m(_ mo - m m - + _) m (_ mo + m m + .group n - _) n(_ no - n n - n (_S1 n + _) n (_ no + n n + n (_S1 n + + _) n (-ro num'e - _) n (-ro num'e - .group o - _) o(_ o - o o - oj oI - -) o (_ %o - -) oj (_ %oI - -) on (_ %on - -X) o (_ %o // d-ro etc - -X) oj (_ %oI - -X) on (_ %on - + _) o (_ o + o o + oj oI + -) o (_ %o + -) oj (_ %oI + -) on (_ %on + -X) o (_ %o // d-ro etc + -X) oj (_ %oI + -X) on (_ %on + .group p - _) p(_ po - p p - ph (K f // foreign words - K) ph f // foreign words - + _) p (_ po + p p + ph (K f // foreign words + K) ph f // foreign words + .group q - _) q(_ kwo - q k - qu kv - + _) q (_ kwo + q k + qu kv + .group r - _) r(_ Ro - r R - A) r (A R - K) r (A @-* - rr RR + _) r (_ Ro + r R + A) r (A R + K) r (A @-* + rr RR .group s - _) s(_ so - _) sh(_ So - s s - sh (K S // foreign words - K) sh S // foreign words + _) s (_ so + _) sh (_ So + s s + sh (K S // foreign words + K) sh S // foreign words - _) s (-ino s,injoR - _) s (-ro sinj'o + _) s (-ino s,injoR + _) s (-ro sinj'o + + _) s (-ano s'am,ide + _) s (-anino s'am,ide + + _) s (-ta_ s'ank - _) s (-ano s'am,ide - _) s (-anino s'am,ide - _) s (-ta_ s'ank - - .group t - _) t(_ to - t t - th (K T // foreign words - K) th T // foreign words + _) t (_ to + t t + th (K T // foreign words + K) th T // foreign words + + -) ta (_ t%a // s-ta = sankta - -) ta (_ t%a // s-ta = sankta - .group u - _) u(_ u - u u - uj uI - - + _) u (_ u + u u + uj uI + + .group v - _) v(_ vo - v v - + _) v (_ vo + v v + .group w - _) w(_ du'oblav,o - w w - K) wh w // foreign words - + _) w (_ du'oblav,o + w w + K) wh w // foreign words + .group x - _) x(_ ikso - x ks - _) x z // foreign words - + _) x (_ ikso + x ks + _) x z // foreign words + .group y - _) y(_ ipsilono - y j - K) y (K i - - + _) y (_ ipsilono + y j + K) y (K i + + .group z - _) z(_ zo - z z - - + _) z (_ zo + z z + + .group - _) ĉ (_ tSo - ĉ tS + _) ĉ (_ tSo + ĉ tS - _) ĝ (_ dZo - ĝ dZ + _) ĝ (_ dZo + ĝ dZ - _) ĥ (_ xo - ĥ x + _) ĥ (_ xo + ĥ x - _) ĵ (_ Zo - ĵ Z + _) ĵ (_ Zo + ĵ Z - _) ŝ (_ So - ŝ S + _) ŝ (_ So + ŝ S - _) ŭ (_ wo - ŭ w + _) ŭ (_ wo + ŭ w - - ' - + plus_ - _) ++ (_ plusplus + C) ' (_ = // word end in apostrophe, stress the last vowel - . punkto - . (. _: - \.) . +' + + plus_ + _) ++ (_ plusplus + + . punkto + . (. _: + \.) . - £ pundo - £ (_D _pundoI_: - __) - (_D minus_ - D_) - (_D st@-*ek'eto_ - A_) - (_D _ - C_) - (_D _ - --) - - - minus_ - - (_a - $ dolaRo - $ (_D _dolaRoI_: + £ pundo + £ (_D _pundoI_: + __) - (_D minus_ + D_) - (_D st@-*ek'eto_ + A_) - (_D _ + C_) - (_D _ + --) - + - minus_ + - (_a + $ dolaRo + $ (_D _dolaRoI_: diff --git a/dictsource/fa_list b/dictsource/fa_list index 849dcc03..8b1a413c 100644 --- a/dictsource/fa_list +++ b/dictsource/fa_list @@ -1,4 +1,4 @@ -// * Farsi Language fa (or Parsi or Persian) fa_list Version 3.0 + // * Farsi Language fa (or Parsi or Persian) fa_list Version 3.0 // * This file writen by Shadyar Khodayari 2013 //********* // * This program is free software; you can redistribute it and/or modify * @@ -68,6 +68,8 @@ _و 'vAv َ a ُ o ِ e: +ْ sAken +ٰ alefemaq1suRe: ّ taSdid ً 'an ٌ 'on @@ -267,32 +269,106 @@ $ dolAR کند kand $stem +// The list of unstressed words +من man $u+ +تو to $u+ +او u: $u+ +ما mA $u+ + +ام am $u+ +ات at $u+ +اش aS $u+ +مون mun $u+ +تون tun $u+ +شون Sun $u+ +ای i: $u+ +ایم i:m $u+ +اید i:d $u+ +اند and $u+ + +آن An $u+ +این i:n $u+ +جا dZA $u+ + +می mi $u+ +نمی nemi $u+ +به be: $u+ +بی bi $u+ +نه na $u+ +در daR $u+ +با bA $u+ +یا jA: $u+ +نا nA $u+ +تا tA: $u+ +از az $u+ +پر poR $u+ +چه tSe: $u+ +را RA $u+ +هر haR $u+ +بر baR $u+ +تر taR $u+ +ها hA $u+ + +چی tSi $u+ +گر gaR $u+ +کی kej $u+ +کس kas $u+ +خود xod $u+ + + // exceptional words, (out of rules) +آباء AbA آبت Abat +آبتل Abtal آبتین Abtin آبجو AbdZo: +آبدمزن Abdamzan +آبدنگ Abdang +آبرفت AbRoft +آبرفتگی AbRaftegi آبرو AbeRu آبزی Abzi +آبستره AbsteRe: +آبستن Abestan +آبسته Abaste +آبسر AbsoR +آبسرد AbesaRd +آبسنگ Absang آبسه Abse: +آبسکون Abeskun آبش AbaS آبشش AbSoS آبم Abam +آبونمان AbunmAn آبپز Ab'paz آبکش AbkeS آبگرم AbgaRm آبگوشت Ab_guSt آبیک Abjek +آتاترک AtAtoRk +آتاتورک AtAtoRk +آتروفی AtRofi +آتروپین AtRopin آتش AtaS آتشدان AtaSdAn آتشفشان AtaSfeSAn +آتشمار AtaSmAR آتشنشان AtaSneSAn +آتل Atel آتلیه Atelije: آتلیۀ Atelijeje آتن Aten آتنا AtenA +آثارالباقیه AsARolbAq1ije آجر AdZoR آجرپز AdZoRpaz +آخالسوز AxAlsuz آخر AxaR +آخرالامر AxaRolamR +آخرالزمان AxaRAzzamAn +آخرالنهر AxeRonnahR +آخرسر AxaRsaR +آخرعمری AxaReomRi آخرین AxaRin آخوند Axund آخیش AxejS @@ -302,112 +378,265 @@ $ dolAR آدم Adam آدما AdamA آدمبرفی AdambaRfi +آدنین Adenin آذر AzaR آذربایجان AzaRbAjedZAn +آذربرق AzaRbaRq1 +آذربو AzaRbu آذرخش AzaRaxS +آذردخت AzaRdoxt +آذرسهند AzaRsahand +آذرشب AzaRSab +آذرمیدخت AzaRmidoxt +آذرپرس AzaRpeRes +آذرگشنسب AzaRgoSnasb +آرابسک ARAbesk آرامش ARAmeS آرامپز ARAm'paz آرایش ARAjeS آرایی ARAi +آرترز ARteRoz +آرتروگرافی ARteRogeRAfi +آرترگرافی ARteRogeRAfi آرتمیس ARtemis آرد ARd +آردبیز ARdbiz آرزو 'ARezu آرشه ARSe: آرشۀ ARSeje +آرشیتکت ARSitekt +آرشیدوشس ARSiduSes +آرشیدوک ARSiduk +آرغ ARoq1 +آرم ARm +آرماتور ARmAtoR +آرماتوربند ARmAtoRband آرمان ARmAn آرمین ARmin آرنج ARendZ آروغ ARoq1 +آروماتیک ARomAtik آرپژ ARpeZ آرژانتین ARZAntin +آرکگن ARkegon +آرکیوزوییک ARkeozoik +آرکیوپتریکس ARkeopeteRiks +آرگون ARgon +آریتمی ARitmi آریل ARijel آرین ARijan آریو ARijo +آریوبرزن ARjubaRza +آزاددرخت AzAddeRaxt +آزادمجد AzAdmadZd +آزاربلندی AzARbolandi +آزتک Aztak +آزرد AzoRd آزرده AzoRde: +آزرم AzaRm +آزرمگین AzaRmgin آزمایش ?AzmAjeS آسانسر AsAnsoR آسایش AsAjeS آستان AstAn آستانه AstAne: +آسترومتری AstRometRi +آسترویید AsteRoid آستین Astin آسفالت AsfAlt آسم Asm آسمانخراش AsmAnxaRAS آسودگی Asudegi -آسوشیتد AsoSited -آسوشیتدپرس AsoSitedpeRes +آسوشیتد AsoSejted +آسوشیتدپرس AsoSejtedpeRes +آسیاسنگ AsijAsang +آسیاگشت AsijAgaS آشتی ASti آشفت ASoft آشپز ASpaz آصف Asef آغشت Aq1eSt +آفتومات AftomAt آفرودیت AfRodit آفرید AfaRid +آفریدگار AfaRidegAR آفریقا AfRiq1A آفرین AfaRin آفرینش AfaRineS آفند Afand +آقااحمدی Aq1Aahmadi +آقاصفری Aq1AsafaRi +آقاعمو Aq1Aamu +آقاملی Aq1Amali +آقامیری Aq1AmiRi +آقانباتی Aq1AnabAti +آلاگارسن AlAgARson +آلباتروس AlbAtRos +آلبالوپلو AlbAlupolo آلبرت AlbeRt آلبوم Albom آلترناتیو AlteRnAtiv آلتو Alto +آلتواستراتوس AltoesteRAtus +آلتوکومولوس Altokomolus +آلتیمتر AltimetR +آلدسترون AldosteRon +آلدیید Aldeid آلفرد AlfeRed +آلماتی AlmAti آلمان AlmAn آلمینیوم Alminijom آلن Alen +آله Ale +آلوتروپی AlotRopi +آلوزرد AluzaRd +آلومین Alomin +آلومینیمی Alominijomi +آلپ Alp +آلگرتو AlegReto +آلگوریسم AlgoRism +آلیوت Aleut +آما AmA +آماریلیس AmARilis آمازن AmAzon آمازون AmAzon آمبولانس AmbulAns +آمخته Amoxte آمد Amad +آمدورفت AmadoRaft +آمر AmeR +آمرانه AmeRAnes آمرز AmoRz آمرزش AmoRzeS +آمرف AmoRf +آمریت AmeRijat آمریکا AmRikA +آمفوتر AmfoteR +آمفی Amfi آمل Amol آمنه Amene: آموخت Amuxt آموزش AmuzeS +آمپرمتر AmpeRmetR +آمپلیفایر AmpelifAjeR +آمپیریسم AmpiRism +آمپیریسیسم AmpiRisism +آمیتوز Amitoz آمیخت Amixt +آمیغ Amiq1 +آمینواسید Aminoasid +آنابلیسم AnAbolisms آناتولی AnAtoli آناتومی AnAtomi +آناکوندا AnAkondA +آنتراسن AntRAsen +آنتراسیت AntRAsit +آنتراکت AnteRAkt +آنترروباکتریا AnteRobAkteRijA +آنتروپوزوییک AntRopozoik +آنتروپویید AntRopoid +آنتروپی AntRopi +آنتروکوک AntRokok +آنتروکیناز AntRokinAz +آنتریک AntiRik آنتن Anten +آنتوسیانین AntosijAnin آنتی Anti +آنتیموان AntimuAn آنجانب 'AndZAneb آنجلس AndZeles +آنجهان AndZahAn +آندانت AndAnt آندرانیک AndRAnik +آندوتوکسین Andotoksin +آندوسکپ Andoskop +آندومتر AndometR +آندوکربن AndokaRbon +آندوکرین AndokRin +آنرمال AnoRmAl +آنزیم ApoAnzim آنستکه Anastke +آنسفالیت AnsefAlit آنطور Anto:R آنفلوآنزا AnfeloAnzA آنقدر Anq1adR +آنقوت Anq1ut آنلاین AnlAjn آنند Anand +آنوفل Anofel +آنوقت Anvaq1t آنچنان AntSenAn +آنچنانکه AntSenAnkes +آنژ AnZ +آنژین AnZin +آنکادره AnkAdRe +آنکت Anket +آنکلاو AnkelAv آنکه Anke: +آنکولوژی AnkoloZi +آنگسترم AngestRom +آنگلوساکسن AngelosAkson +آنگلوساکسون AngelosAkson +آنگلوفوب Angelofob +آنگلوفیل Angelofil +آنگلیکان AngelikAn +آنگه Angah +آنیمیسم Animism +آنیون Anjon +آهارمهره AhARmohRe آهسته Aheste: آهستگی Ahestegi +آهنجش AhandZeS آهنگ Ahang آهنگی Ahangi +آهیخت Ahixt +آوانگارد AvAngARd آورد AvaRd آوریل AvRil +آوند Avand +آونگ Avang آویخت Avixt +آویش AviS +آوینیون Avinijon +آپاندیسیت ApAndisit آپدیت Ap_dejt +آپراکسی ApRAksi آپلود Aplod آپلون Apolon +آپلیکاتور AplikAtoR آپولن Apolon آپولون Apolon +آژاکس AZAks +آژنگ AZang +آژیدهاک AZidhAk آکادمی AkAdemi +آکادمیسین AkAdemisjAn آکادمیک AkAdemik آکاردن AkARdeon آکاردون AkARdeon آکاپلا AkApellA +آکتور AktoR +آکتورس AktoRes +آکتومیوزین Aktomijozin +آکتینومیست Atinomist +آکتیویته Aktivite +آکد Aked آکرد AkoRd آکسفورد AksfoRd +آکسنت Aksent آکمپانیمان AkompAnimAn +آکواریم AkvARijom آکواریوم AkvARijom آکورد AkoRd +آکومولاتور AkomulAtoR آکومپانیمان AkompAnimAn +آکپ Akep آگاممنن AgAmemnon آگاممنون AgAmemnon +آگامنون AgAmnun آگاه A:gAh +آگنتوزوییک Agnetozoik +آگه Agah آگهی Agahi آی Aj آیتم Ajtem @@ -419,6 +648,7 @@ $ dolAR آینه Ajene: آیه Aje: آیپدآیفون Ajpad +آیکن Ajkon آیکون Ajkon ائتلاف e?telAf ابابصیر abAbasiR @@ -662,6 +892,7 @@ $ dolAR ادرکنی adRekni ادریس edRis ادعا edde?A +ادعّا edde?A ادغام edq1Am ادقام edq1Am ادله adelle: @@ -816,7 +1047,6 @@ $ dolAR ازیریس oziRis اسارت esARat اساسا asAsan -اسام osAm اسانس esAns اسایه ?esA?e اسبات esbAt @@ -882,6 +1112,7 @@ $ dolAR استریل esteRil استریلیزاسیون esteRilizAsijon استریلیزه esteRilize: +استرینگ estRing استریو esteRijo استریکنین esteRiknin استسقا estesq1A @@ -1179,6 +1410,7 @@ $ dolAR افروخت afRuxt افروز ?afRuz افریقا efRiq1A +افزار afzAR افزاید afzAjad افزایش afzAjeS افساد efsAd @@ -1243,6 +1475,7 @@ $ dolAR الاغ olAq1 الاکلنگ allAkolang البته al'batte: +البتّه albatte: البرز alboRz البلاغه olbalAq1e: البها ol_bahA @@ -1450,6 +1683,12 @@ $ dolAR انترناسیونالیسم anteRnAsijonAlism انتها entehA انتهای entehAje +انتهایت entehAjat +انتهایتان entehAjetAn +انتهایش entehAjaS +انتهایشان entehAjeSAn +انتهایم entehAjam +انتهایمان entehAjemAn انتگرال an'tegRAl انجبین andZabin انجم andZom @@ -1537,6 +1776,7 @@ $ dolAR اهرمن ahReman اهم ahamm اهمال ehmAl +اهمّ aham اهمیت 'ahammi:,jat اهورامزدا ahuRAmazdA او u: @@ -1573,19 +1813,42 @@ $ dolAR اوستا avestA اوصاف osAf اوضاع o:zA? +اوغور oq1oR اوقات o:q1At +اوقاف ovq1Af اول 'avval +اولا avvalan اولاد o:lAd +اولاند olAnd +اولتراسوند olteRAsond +اولتراسونوگرافی ultRAnsonogeRAfi +اولتراسونیک oltRAsonik +اولتراویولت ultRAvijolet +اولتیماتوم oltimAtom +اولمپیا olampijA +اولوالعزم ololazm اولویت o:lavijat +اولیا olijA +اولیاء olijA اولین avvalin +اومانیست umAnist +اومانیسم umAnism اومد umad اونس ons اونور 'unvaR +اونوقت unvaq1t +اونیفورم onifoRm +اوهام o:hAm +اوورت uveRt +اوورتور oveRtuR +اوول ovul اوّلین avvalin اوپتیک optik اوپن open اوپک opek +اوکتاو oktAv اوکراین okRAjn +اوکرایینی okRAini اوی uj اویس ovejs اوین evin @@ -1604,6 +1867,7 @@ $ dolAR اپورتونیسم opoRtunism اپوزسیون opozesijon اپوزیسیون opozisijon +اپوس opus اپول epol اپک opek اپیدرم epideRm @@ -1644,6 +1908,7 @@ $ dolAR اکساینده oksAjAnde اکسایید oksAid اکسل eksel +اکسنت aksent اکسپرس ekspeRes اکسپرسیونیست ekspeRsijonist اکسپرسیونیسم ekspeRsijonism @@ -1676,79 +1941,191 @@ $ dolAR اگزیستانسیالیست egzistAnsijAlist اگزیستانسیالیسم egzistAnsijAlism ایاب ajjAb +ایادی ajAdi +ایار ajAR ایاز ajAz +ایاق ajAq1 ایام a:jj'jAm ایبوک ibuk +ایتام ajtAm ایدئال ideAl ایدئولوژی ide?oloZi ایدز ejdz ایدعال ideAl ایدهال ideAl +ایراندخت iRAndox ایرانسل iRAnsel +ایرباس ejRbAs +ایرتاکسی ejRtAksi ایرج iRadZ +ایروبیک ejRobik +ایرکاندیشن ejRkAndiSen +ایریدیم iRidijom +ایزابل izAbel ایزد izad +ایزوترم izoteRm +ایزوتروپ izoteRop +ایزوتونیک izotonik +ایزوتوپ izotop +ایزولاسیون izolAsjon +ایزوله izole +ایزوگام izogAm ایست i:st +ایسلند island ایسوس ejsus ایسی isA +ایضا ejzan +ایغور iq1uR ایفل ifel +ایلینیم ilinijom +ایلیوم ileom ایمان imAn +ایماژیسم imAZism ایمن imen +ایمونولوژی imonoloZi +ایمونوگلوبین imonogolobin ایمیل imejl +اینباکس inbAks اینتر inteR اینترانت inteRAnet +اینترفاکس inteRfAks +اینترمیلان inteRmilAn اینترنت 'inteR,net +اینترنشنال inteRnaSnAl +اینترنیوز inteRnijuz +اینترپل inteRpol +اینترپول inteRpol اینجا 'indZA اینجانب 'indZAneb اینحال ?inhAl +ایندکس indeks +ایندیم indijom اینروست 'inRust اینطور into:R اینقدر inq1adR +اینهمانی inhamAni اینور 'invaR اینچنین intSenin اینکه inke: ایوان ejvAn +ایوانوویچ ivAnovitS ایوب ajjub +ایوزین eozin +ایوژنی ijoZeni +ایّام AjjAm +ایگرگ igReg +باباشمل bAbASamal باباطاهر bAbAtAheR +بابانویل bAbAnoel +بابصیرت bAbasiRat +بابلسر bAbolsaR باتجربه bAtadZRobe: باتجربۀ bAtadZRobeje +باتدبیر bAtadbiR +باتربیت bAtaRbjat +باتری bAtRi +باتعصب bAtaassob باتقوا bAtaq1vA +باتلر bAtleR +باتوجه bAtavadZdZoh +باحجاب bAhedZAb +باحرارت bAhaRARat +باخبر bAxabaR باخت 'bAxt +باختر bAxtaR +باخترزمین bAxtaRzamin +بادآهنگ bAdAhang +بادبر bAdboR +بادبند bAdband +بادرفت bAdRoft +بادسوخته bAdsuxte بادمجان bAdemdZAn بادمجون bAdemdZun +بادنقش bAdnaq1S +بادنگاشت bAdnegASt +بادوام bAdavAm +باربند bARband +باربی bARbi +بارتز bARtez +باردان bARdAn +بارده bARdeh +باررنگ bAdRang بارسلون bARselon +بارسکپ bARoskop +بارفیکس bARfiks +باروبنه bARobone +بارکد bARkod بارکش bARkeS بارگذار bARgozAR بارگزار bARgozAR باریتن bARiton باریتون bARiton بازار bAzAR +بازارسیاه bAzARsijAh +بازجست bAzdZost +بازدم bAzdam بازده bAzdeh بازدید bAzdid بازرسان bAzRasAn بازرگان bAzaRgAn بازنشست bAzneSast بازو bAzu +بازپخت bAzpoxt بازپرس bAzpoRs بازگشت bAzgaSt +بازگفت bAzgoft بازی bAzi بازیکن bAzikon بازیگر bAzigaR +بازیگردانی bAzigaRdAni +بازیگوش bAziguS +بازیگوشانه bAziguSAne باسابقه bAsAbeq1e: باستانی bAstAni +باشتین bAStin باشد bASad باشکوه bASokuh باصفا bAsafA +باضافه beezAfe باطری bAtRi باطن bAten بافت bAft +باقرالعلوم bAq1eRololum باقلا bAq1elA +باقلاقاتق bAq1AlAq1Atoq1 +باقلاپلو bAq1AlApolo +باقلوا bAq1lavA بالا 'bAlA +بالابلند bAlAboland +بالاتفاق belettefAq1 +بالاجبار beledZbAR بالاخره belaxaRe: بالاخص bel?axas +بالاغیرتا bAlAq1ejRatan +بالجمله beldZomle +بالخصوص belxosus بالستیک bAlestik +بالشتک bAleStak +بالشکل bAlSekl +بالطبع bettab +بالعکس belaks بالغ bAleq1 +بالفرض belfaRz +بالفطره belfetRe +بالفعل belfe?l +بالفور belfovR بالقوه belq1ovve: +بالله bellAh +بالمره belmaRRe +بالمناصفه belmonAsefe بالن bAlon +بالنتیجه bennatidZe +بالنسبه bennesbe +بالنفسه bennafse +بالنگ bAlang +بالکان bAlkAn +بالکل belkol +بالکن bAlkon بامداد bAmdAd بامزه bAmaze: بامزۀ bAmazeje @@ -1762,27 +2139,36 @@ $ dolAR باهم bAham باهنر bAhonaR باور bAvaR +باوفا bAvafA باکتری bAkteRi +باکتریولوژی bAkteRijoloZ باکس bAks باگناه bAgonAh بایت bAjt باید 'bAjad +بایرمونیخ bAjeRmunix بایست bAjest بایستد be?istad بایستیم be?istim +بایسنقر bAjsonq1oR +بایقرا bAjq1aRA بباسیل babAsil ببخش bebaxS ببرد bebaRad ببرها babRhA ببرهای babRhAje ببرهایی babRhAi: -ببری bab +ببری bebaRi ببرید bebaRid ببین bebin بت bot بتر botR +بتهون bethoven +بتهوون bethoven بتوان betavAn +بتونه batune بجا bedZA +بجد bedZed بجز bedZoz بجنورد bodZnuRd بجو bedZu @@ -1790,43 +2176,122 @@ $ dolAR بحبوحه bohbuhe: بحران bohRAn بحرین bahRejn +بحق behaq1q1 بحمدالله behamdellAh +بحیرا bahiRA بخار bo:xAR +بخارا boxARA بخارپز boxARpaz بخت b'axt بخر bexaR بخرد bexaRad +بخشا baxSA +بخشاند baxSAnd +بخشانید baxSAnid بخشایش baxSAjeS +بخشاینده baxSAjAnde +بخشایید baxSAid بخشد baxSad بخشش baxSeS +بخشود baxSud +بخشودنی baxSudani +بخشوده baxSude +بخشودگی baxSudegi بخشیدن baxSidan بخشیده baxSide: +بخل boxl بخواند bexAnad بخور boxoR +بخوربخواب boxoRobexAb +بخوربخور boxoRboxoR +بخورونمیر boxoRonamiR +بخیل baxil +بخیلانه baxilAne بدان bedAn بدانها bedAnhA +بدایت bedAjat بدبخت bad_baxt +بدبو badbu +بدبینانه badbinAne +بدترکیب badtaRkib بدتری badtaRi +بدجنس baddZens +بدجوری baddZuRi بدحجاب badhedZAb +بدحساب badhesAb +بدخشان badaxSAn +بدخلق badxolq1 +بدخو badxu +بدخوراک badxoRAk +بدخوری badxoRi +بدرالزمان badRozzamAn +بدراه badRAh بدرستی bedoRosti بدرفتار badRaftAR +بدرقه badRaq1e بدرود bedRud +بدزبان badzabAn +بدسابقه badsAbeq1e +بدساخت badsAxt بدست bedast بدستور bedastuRe +بدسرشت badseReSt +بدسلیقه badsaliq1e +بدسلیقگی badsaliq1egi +بدسگالی badsegAli +بدسیرت badsiRat بدش badaS +بدشانس badSAns +بدشناخته badSenAxte +بدشنوا badSenavA +بدشکلی badSekli +بدشگون badSogun +بدصدا badsedA بدعت bed?at +بدعمل badamal +بدعنق badonoq1 +بدعهدی badahdi +بدغذا badq1azA +بدفرجام badfaRdZAm +بدفهمی badfahmi +بدقت bedeq1q1at +بدقدم badq1adam +بدقلب badq1alb +بدقلق badq1eleq1 +بدقواره badq1avARe +بدقولی badq1ovli بدل badal بدم bedam +بدمزه badmazze +بدمست badmast +بدمصب badmassab +بدمنصب badmansab +بدمنظر badmanzaR +بدمینتن badminton +بدمینتون badminton بدن badan بدنام badnAm +بدنما badnamA +بدنهاد badnahA بدهکار bedehkAR بدهی bedehi +بدوبدو bodobodo +بدوبیراه badobiRAh بدوی badvi +بدپیله badpile +بدپیلگی badpilegi +بدکاره badkARe +بدکارگی badkARegi +بدکردار badkeRdAR +بدگوهر badgovhaR بدیع badi? بدیل badil بدین be'din بدینوسیل bedinvasil بدیهی badihi +بذاق bozAq1 +بذرافشان bazRafSAn +بذرپاش bazRpAS برآرد baRARad برابر baRAbaR برات baRAt @@ -1834,31 +2299,52 @@ $ dolAR برادر baRAdaR برادرزن baRAdaRzan برادرشوهر baRAdaRSohaR +برادرکش baRAdaRkoS +براده boRAde برازجان boRAzdZAn براساس baRasAs براش baRAS براق ba'RRAq1 برام baRAm +برانداخت baRandAxt +برانداخته baRandAxte +براندازانه baRandAzAne +براندازنده baRandAzande برانکارد beRAnkARd +برانگیخت baRangixt +برانگیخته baRangixte +برانگیختگی baRangixtegi +برانگیز baRangiz +براهین baRAhin برای baRAje برایت baRAjat برایش baRAjaS برایم baRAjam بربر baRbaR +بربط baRbat +برتافت baRtAft برتری baRtaRi برج boRdZ برجا baRdZA برجست baRdZast برجسته baRdZaste: برجستۀ baRdZasteje +برجکوب beRendZkub +برحق baRhaq1q1 برخاست baRxAst برخط baRxat برخواست baRxAst برد boRd بردار baRdAR بردبار boRdbAR +بردسیر baRdsiR +بردگی baRdegi بررسی baRRasi برزخ baRzax +برزنگی baRzangi +برزو boRzu +برزوبالا boRzobAlA +برزویه boRzuje برزگر baRzegaR برزیل beRezil برس beRes @@ -1871,34 +2357,64 @@ $ dolAR برسد beResad برسه beRese برش boReS +برشتوک beReStuk برشتۀ beReSteje +برشمر baRSemoR +برشمرد baRSemoRd +برشکست baRSekast +برغو boRq1u +برفت beRaft برفروب baRfRub +برقرانی baRq1aRAni +برقراهه baRq1aRAhe +برقع boRq1a +برقو boRq1u برلیان beReliAn +برلین beRlin برم beRam برملا baRmalA +برمک baRmak برمی baRmi برن beRan برنا boRnA +برنارد beRnARd +برناردو beRnARdo برنامه baR'nAme: برنج beRendZ برند baRand برنده baRande: برندگان baRandegAn برنز boRonz +برنشسته baRneSaste +برنشیت boRonSit +برنگزیده baRnagozide برهان bo:R'hAn برهم baRham +برهماپوترا beRahmAputRA برهه boRhe: +برهوت baRahut برو boRo +بروبرو boRoboRo +بروبوم baRobum +بروبیا boRobijA بروج boRudZ بروجرد boRudZeRd بروجن boRudZen برود beRavad +برودت boRudat +برورو baRoRu بروزرسان beRuz_ResAn +بروزیافته boRuzjAfte بروسلی boRusli +بروشنی beRoSani +بروفه boRufe بروم beRavam برون boRun +برونبر buRunbaR بروند beRavand برونشیت beRonSit +برونهاگ buRunhAg +بروکراسی boRukRAsi بروکسل boRuksel بروی beRavi بروید beRavid @@ -1906,6 +2422,8 @@ $ dolAR برپا baRpA برکات baRakAt برکت baRekat +برکشید baRkeSid +برکن baRkan برکه beRke: برگ baRg برگزید baRgozid @@ -1914,32 +2432,60 @@ $ dolAR برگزیند baRgozinad برگشت baRgaSt بریان beRjAn +بریتانا beRitAnijA بریتانیا beRitAniA +بریتونی beRitoni بریتیش beRitiS برید boRid بریزد beRizad +بریزوبپاش beRizobepAS بریل beRejl بریون beRjun بز boz بزاز bazzAz +بزاق bozAq1 +بزبیاری bozbijARi +بزخو bozxu +بزدلانه bozdelAne +بزرو bozRov +بزرک bazRak بزرگ bo'zoRg بزرگان bozoRgAn بزرگتری 'bozoRgtaRi بزرگی bozoRgi +بزعم bezam +بزغاله bozq1Ale +بزغنج bozq1andZ +بزقند bozq1and +بزمال bozmAl +بزمجه bozmadZdZe +بزمرغ bozmoRq1 بزن bezan بزند bezanad +بزه bezeh +بزک bazak +بسامد basAmad +بساوش besAvoS +بساوید basAvid +بساک basAk بست 'bast +بستاب bastAb +بستان bostAn بستری bastaRi بستنی bastani +بستو bastu بستگانت bastegAnat بستگانتان bastegAnetAn بستگانش bastegAnaS بستگانشان bastegAneSAn بستگانم bastegAnam بستگانمان bastegAnemAn +بسد bossad بسر besaR بسطام bastAm +بسفر bosfoR بسم besme: +بسماللهالرحمنالرحیم besmellAheRRahmAneRRahim بسنده basande: بسوی besuje بسپار besepAR @@ -1951,11 +2497,13 @@ $ dolAR بسیج basidZ بش beS بشاش baSSAS +بشاورد baSAvaRd بشدت beSeddat بشر baSaR بشردوست baSaRdust بشردوستانه baSaRdustAne: بشردوستانۀ baSaRdustAneje +بشره baSaRe بشرویه boSRuje: بشقاب boSq1Ab بشقابپرنده boSq1AbpaRande: @@ -1970,56 +2518,131 @@ $ dolAR بشنویم beSenavim بشه beSe بشو beSo +بشوروبپوش beSuRobepuS بشوم beSavam بشوند beSavand بشوی beSavi بشویم beSavim بشّاش baSSAS +بشکن beSkan بشکه boSke: بشکۀ boSkeje بشیر baSiR بصر basaR +بصره basRe بصیر basiR +بطر botR بطری botRi +بطریرک batRiRak +بطلان botlAn +بطلمیوس batlamijus بطور betoRe +بطورکلی betovRekolli بطوری be'toRi +بطیی bati +بعثت besat +بعثه be?se بعدا ,b'a:?dan +بعداز badaz +بعدازظهر badazzohR بعضا 'ba?zan بعید ba?id +بعینه be?ejne: +بغاز boq1Az بغداد baq1dAd بغرنج boq1RandZ بغض boq1q1z بغل baq1al بفتا baftA بفرست befeRest +بق boq1 بقال baq1q1Al بقایا baq1AjA بقدر beq1adRe +بقراط boq1RAt +بقراطیان boq1RAtijAn +بقره baq1aRe +بقعه boq1e بقل baq1q1al +بقم baq1am +بقه boq1q1e +بقچه boq1tSe بلا belA +بلااثر belAasaR +بلااجرا belAedZRA +بلااستثناء belAestesnA +بلااستفاده belAestefAde +بلااشکال belAeSkAl +بلاانقطاع belAenq1etA بلاجهت belAdZahat بلاخره belaxaRe: +بلادرنگ belAdeRang +بلادن bellAdon +بلاذر balAzoR +بلازده balAzade +بلاعقب belAaq1ab +بلامرجح belAmoRadZdZah +بلامعارض belAmoARez بلانسبت balAnesbat +بلاکش balAkeS +بلبرینگ bolbiRing بلبل bolbol بلد balad +بلداجی boldAdZi بلدرچین bbeldeRtSin بلدوزر boldozeR +بلسان balsAn +بلسکی balsaki +بلشویزم bolSovizm +بلشویسم bolSovism +بلشویک bolSovik +بلعجب boladZab +بلعمی balami +بلعکس belaks +بلغا bolq1A بلغار bolq1AR +بلغور balq1uR +بلفاست belfAst +بلفضول bolfozul +بلقیس belq1ejs +بلم balam بلند 'boland +بلندقد bolandq1ad +بلندمدت bolandmoddat +بلندهمت bolandhemmat بلندپایه bolandpAje: +بلندپروازانه bolandpaRvAzAne +بلهوس bolhavas +بلهوسانه bolhavasAne +بلوا balvA +بلوار bolvAR بلور boluR +بلوردان buluRdAn +بلورلایه buluRlAje بلوز boluz بلوط balut بلوغ boluq1 +بلوف belof +بلومبرگ belombeRg +بلومتر bolometR +بلوند belond بلوچ balutS بلوک boluk بلژیک belZik بلکه 'balke: +بلگراد belgeRAd +بلیات balijat بلیارد beljARd بلیت belit +بلیز boliz +بلیغ baliq1 +بلیوار bolivAR +بلیون beljon +بماسبق bemAsabaq1 بماند bemAnad بمب bo:mb بمباران bombARAn +بمل bemol بمن beman بن bon بنا banA @@ -2028,18 +2651,53 @@ $ dolAR بنابه banAbe: بنادر banAdeR بنان banAn +بناگوشک banAguSak +بنج bondZ +بنجل bondZol +بنداب bandAb بنداز bendAz بندد bandad بندر bandaR +بندرامام bandaRemAm +بندرانزلی bandaRanzali +بندرترکمن bandaRtoRkaman +بندرعباس bandaRabbAs +بندرلنگه bandaRlenge +بندرپهلوی bandaRpahlavi +بندرگز bandaRgaz +بندزنی bandzani +بندفنگ bandfang +بندقیر bandq1iR +بندوبساط bandobasAt +بندپا bandpA +بندپایان bandpAjAn +بندپی bandepej +بندکشی bandkeSi +بندیل bandil +بندینک bandinak +بندیکتی benedikti بنر baneR بنز benz بنزئن benzin +بنزن banzan +بنزوات banzovAt +بنزوپیرن banzopiRen +بنزوین banzoaz بنزین benzin بنشست beneSast +بنشن bonSan +بنصر benseR بنفش banafS +بنلاد bonlAd بنّا bannA +بنچاق bontSAq1 +بنژامن banZAmen +بنژوین banZoen +بنکدار bonakdAR +بنگاب bangAb بنگال bangAl بنگاه bongA: +بنگدانه bangdAne بنگر bengaR بنگرد bengaRad بنگلادش banglAdeS @@ -2049,40 +2707,95 @@ $ dolAR بها bahA بهاءالله bahA_ollAh بهاالله bahA_olAh +بهابازار bahAbAzAR +بهابرگ bahAbaRg بهادر bahAdoR بهار bahAR +بهارآزادی bahAReAzAdi +بهارافشان bahARafSAn +بهاربند bahARband +بهارقلی bahARq1oli +بهارنارنج bahARnARendZ +بهامهر bahAmohR بهانه bahAne: +بهاییت bahAijat +بهبهان behbahAn بهت behet بهتر behtaR بهترون behtaRun بهترین behtaRin بهداشت behdASt +بهدین behdin بهرام bahRAm بهران bohRAn +بهرحال behaRhAl +بهرصورت behaRsuRat +بهرنگی behRangi بهرگیری bahRegiRi +بهزراعی behzeRAi بهش beheS بهشت beheSt +بهل behel بهلول boh'lul بهم beham بهمراه behamRAh بهمن bahman +بهمنشیر bahmanSiR +بهنجار behandZAR +بهنود behnud +بهنگام behengAm +بهکده behkade +بهیچوجه behitSvadZh +بواطن bevAten +بوالحسن bolhasan +بوالعجب boladZab +بوالفرج bolfaRadZ +بوالفضول bolfozul +بوالهوس bolhavas +بوالهوسانه bolhavasAne بوتاکس butAks بوجود bevodZud بوحشت bevahSat بوداپست budApest بودجه buddZe: +بودونبود budonabud +بورات boRAt +بوراکس boRAks +بورت buRet بورس buRs +بورژوا buRZuvA +بورژوازی buRZvAzi بوسیله bevasile: بوسیلۀ bevasileje +بوشمن buSman +بوشن buSan بوشهر buSehR +بوضوح bevozuh بوفالو bufAlo بوقت bevaq1t بوقلمون buq1alamun +بولشویسم bolSevism +بولشویک bolSevik +بولند bolond بولینگ boling +بومسانی bumsAni +بومهن bumehen +بونصر bunasR +بوکس boks +بوکسیت boksit +بوکله bukle +بوگندو bugandu +بویا bujA بویر bojeR +بویراحمد bojeRahmad +بوینگ buing +بویید buid +بيالايد bijAlAjad +بپا bepA بپر bepaR بپرداز bepaRdAz بپز bepaz +بچشم betSeSm بچه ba'tStSe: بچگی batStSegi بژ beZ @@ -2090,51 +2803,88 @@ $ dolAR بکارگیری bekARgiRi بکاه bekAh بکاهد bekAhad +بکتاش baktAS بکر bekR +بکرات bekaRRAt +بکرل bekRel بکس boks بکسل boksel +بکسوات boksovAt +بکسور boksoR بکش bekeS +بکل bekol بکن bokon بکند bokonad بگم begam بگو begu: +بگومگو begomagu +بگونیا begonijA بگوییم begui:m +بگیروببند begiRobeband بگین begin بیات bajAt +بیازماید bijAzmAjad +بیافکن biafkans +بیالای bijAlAj +بیامرز bijAmoRz +بیامرزد bijAmoRzad بیاموز bijAmuz بیاموزد bijAmuzad بیان bajAn +بیانگار bijangAR +بیانگارد bijangARad بیاور bijAvaR بیاید bijAjad بیت bejt بیتقوا bitaq1vA بیخبر bixabaR +بیخت bixt +بیدارشدگی bidARSodegi +بیدبلند bidboland +بیدخشت bidxeSt +بیدررو bidaRRov +بیدق bejdaq1 +بیدمشک bidmeSk +بیرجند biRdZand بیرحم biRahm +بیرشک biRaSk بیرق bejRaq1 بیروت bejRut +بیزنس biznes بیزه bejze: بیس bejs +بیسایو bisAo بیستم 'bistom +بیستون bisotun بیستکوئیت bistkui:t بیستکوییت bistkui:t بیسکویت biskuit بیسیک bejsik +بیسیکلت bisiklet بیشتری biStaRi بیشعور biSouR بیصبر bisabR بیصفا bisafA بیض bejz بیضا bejzA +بیضتین bejzatejAn +بیضوی bejzavi +بیعرفان bi_eRfAn +بیعمل bi?amal بیفت bijoft بیفتاد bijoftAd +بیفتک biftak +بیفروغ bifuRuq1 بیفزا bijafzA بیفکن bijafkan +بیلخ bilax بیلیارد 'biljARd بیلیاردم 'biljARdom بیلیون 'milju:n بیلیونم 'milju:nom بیمعرفت bima?Refat بین 'bejn +بینات bajenAt بینان binAn بینانه binAne: بینجام bijandZAm @@ -2144,57 +2894,115 @@ $ dolAR بینظم binazm بینم binam بینند binand +بیننده binande +بینوا binavA بینی bini بینید binid بینیم binim بینیی bini: بیهنر bihonaR بیو bijo +بیوتروریسم bijoteRoRism بیوه bive: بیوگرافی bijogeRAfi +بیکباره bejekbARe: بیکس bikas بیکسان bikasAn بیگ bejg +بیگم bejgom +بیگمان bigamAn بیگناه bigonAh تأثر ta?assoR تأثیر ta?siR -تأخیر taxiR +تأخیر ta?xiR تأسف ta?assof تئاتر teA:tR تئوری te?oRi +تئوریزه te_oRize +تئوریک te_oRik تائید ta?id +تابحال tAbehAl تابد tAbad تابستانه tAbestAne: تابستانۀ tAbestAneje تابستون tAbestun تابش tAbeS تابلو tAblo +تابو tAbo +تاتوره tAtuRe تاثر ta?assoR +تاثربرانگیز taassoRbaRangiz تاثیر ta?siR +تاجرنیا tAdZeRnij +تاجور tAdZvaR +تاحدودی tAhodudi +تاحدی tAhaddi تاخت tAxt +تاخر ta?axxoR +تاخوردگی tAxoRdegi تاخیر taxiR +تادب ta?addob +تادیه tadije +تارت tARt تارخ tARox +تارریس tARRis +تارزن tARzan +تارم tARom +تارمکان tARmekAn +تاروتنبور tARotambuR +تارومار tARomAR +تاروپود tARopud +تارک tARek تاریخدان tARixdAn تاسف ta?assof +تاسمانی tAsmAni تاسیس 'tas,is +تاشکند tASkand +تافت tAft +تافتون tAftun تالاسمی tAlAsemi +تالبوت tAlbot +تالش tAleS +تالم ta?allom +تالیف ta?lif +تامسون tAmson تامل ta?ammol +تامه tAmme تامین ta?min +تاندوم tAndom +تاندون tAndon تانک tAnk تانکر tAnkeR +تانگ tAng +تاهل taahhol تاول tAval +تاچر tAtSeR +تاکسی tAksi تاکسیدرمی tAksideRmi تاکنون tAkonun تاکید ta?kid +تایم tAjm +تایمر tAjmeR تایمز tAjmz تایپ tAjp تایید 'tai:d تاییپ 'tai:d +تباین tabAjon تبت tabbat +تبختر tabaxtoR +تبخیرکن tabxiRkon تبر 'tabaR تبرئه tabRa?e: +تبرا tabaRRA +تبرزد tabaRzad +تبرزین tabaRzin +تبرک tabaRRok +تبرید tabRid +تبریه tabRae تبسم tabassom تبصره tabsaRe: +تبع taba +تبعا tab?an تبعات taba?At تبعاتی taba?Ati تبعه tabaeje @@ -2204,179 +3012,435 @@ $ dolAR تبق 'tabaq1 تبلت tablet تبلور tabalvoR +تبه tabah +تبهکار tabahkAR +تبهکارانه tabahkARAne +تبهگن tabahgen تبّت tabbat تبیان tebjAn تبیعت tabi?at +تتا tetA +تتراسایکلین tetRAsAjkolin تتراکرد tetRAkoRd تتراکورد tetRAkoRd +تترون tetRon +تتماج totmAdZ +تتمه tatamme: تثبیت tasbit تجار todZdZAR تجارت tedZARat تجاری tedZARi +تجددمآبی tadZaddodmaAbi +تجدیدنظر tadZdidenazaR تجدیدنظرخواهی tadZdidenazaRxAhi +تجدیدنظرطلبانه tadZdidenazaRtalabAne تجربه tadZRobe تجربۀ 'tadZRobeje تجربی tadZRobi +تجری tadZaRRi تجریش tadZRiS تجسم tadZassom تجلی tadZalli +تجن tadZan +تجیر tadZiR تحت tahte +تحتانی tahtAni تحرک tahaRRok +تحری tahaRRi تحصن tahasson +تحف tohaf +تحفه tohfe +تحقیقا tahq1iq1an تحمت tohmat تحول tahavvol تحوّل tahavvol +تحکم tahakkom +تحیت tahijat +تحیر tahajjoR +تخاصم taxAsom تخت t'axt +تختان taxtAn +تختخواب taxtexAb +تخرمه texeRme +تخس toxs +تخلخل taxalxol تخم toxm +تخماق toxmAq1 +تخمبر toxmbaR +تخمدان toxmdAn +تخمراهه toxmRAhe: +تخمگانی toxmgAni تخمین taxmin +تخمینا taxminan تخیر taxajjoR تخیل taxa'jjol تدارک tadARok تدارکات tadARokAt تداوم tadAvom +تدریجا tadRidZan +تدهین tadhin تدین tadajjon تدیّن tadajjon +تذرو tazaRv +تذکار tezkAR +تذکاریه tezkARije تذکر tazakoR تذکره tazkaRe: تراب toRAb ترابری taRAbaRi +تراجم taRAdZom +تراخم taRAxom ترازو taRAzu تراس teRAs +تراست teRAst ترافیک teRAfik +تراموا teRAmvA +ترانزیت teRAnzit ترانزیستور teRAnzistoR +ترانس teRAns +ترانسفور teRAnsfoR ترانسفورماتور teRAnsfoRmAtoR +ترانسپورت teRAnspoRt تراوت taRAvat +تراورتن teRAveRtan +تراورس teRAveRs تراوش taRAvoS تراول teRAvel تراژدی teRAZedi +تراژدیک teRAZedik +تراژیک teRAZik +تراکافت taRAkAft تراکتور teRAktoR تراکم taRAkom تراکنش taRAkoneS +ترب toRob +تربانتین teRebAntin تربت toRbat +تربد toRbod +تربری taRboRi +تربچه toRobtSe: +تربیم teRbijom +ترترو teRteRu +ترجمان taRdZomAn ترجمه taRdZome: ترجمۀ taRdZomeje ترجیحا taRdZihan +ترحلوا taRhalvA ترحم taRahhom +تردماغ taRdamAq1 +تردیدافکن taRdidafkan ترسد taRsad ترش t'oRS +ترشا toRSA +ترشال toRSAl +ترشید toRSid +ترشیدگی toRSidegi +ترعه toR?e ترق taRaq1q1 +ترقوه taRq1ovve: ترلیون 'teRelju:n -ترلیونم 'ttRelju:nom +ترلیونم teReljunom ترم teRm ترمبن teRombon ترمبون teRombon +ترمتای toRomtAj ترمز toRmoz +ترموالکتریسیته teRmoelektiRisite +ترموالکتریک teRmoelektiRik +ترموتراپی teRmotoRApi +ترمودینامیک teRmodinAmik +ترموس teRmus +ترموست teRmoset +ترموستات teRmostAt +ترموسفر teRmosfeR +ترموسکپ teRmoskop +ترموسیفن teRmosifon +ترموشیمی teRmoSimi +ترموفیل teRmofil +ترمومتر teRmometR +ترموکوبل teRmokubl +ترموگراف teRmogeRAf +ترمویونیک teRmojonik ترمپت teRompet +ترمیت teRmit +ترمیستور teRmistoR ترمیم taRmim +ترمیناتور teRminAtoR ترمینال teRminAl +ترمینولژی teRminoloZi +ترن teRan +ترنتو toRento +ترنج toRandZ +ترنم taRannom +ترهات toRRahAt +تروتازه taRotAze +تروتازگی taRotAzegi +تروتسکیسم teRoteskism +تروتلیس taRotelis +تروتمیز taRotamiz ترور teRoR +تروریزم teRoRizm تروریست teRoRist تروریسم teRoRism +تروفرز taRofeRz +ترومبوز toRomboz +ترومبوسیت toRombosit +ترومبون toRombon +ترومن teRoman ترومپت teRompet +تروپوسفر teRoposfeR +تروپوپاز teRopopAz +تروچسب taRotSasb +تروکاژ tuRukAZ ترک 'taRk +ترکان toRkAn +ترکاند taRakAnd +ترکتازی toRktAzi +ترکستان toRkestAn +ترکش taRkeS +ترکمانچای toRkamAntSAj ترکمن toRkaman ترکی toRki +ترکید teRekid +ترکیدگی taRkidegi ترکیه toRkije: +تریا teRijA تریبون teRibun +تریتیم tiRitijom +تریج tiRidZ +ترید tiRid +تریشین tiRiSin +تریلر teRejleR +تریلوبیت teRilobit +تریلوبیتها teRilobithA +تریلژی teRiloZi تریلۀ tRijuleje تریلی teRejli تریلیون teRiljun ترین taRin تریو tRijo تریوله tRijule: +تریپسین teRipsin +تریپلکس tiRipleks +تریکو teRiko +تریکوباف teRikobAf +تز tez تزئین taz?in +تزاحم tazAhom +تزار tezAR +تزاریسم tezARism +تزاید tazAjod تزلزل tazalzol تست test +تستر tosteR +تستوسترون testosteRon +تسری tasaRRi +تسلا tasallA +تسلسل tasalsol +تسلی tasalli +تسنن tasannon +تسهیم tashim +تسوج tasudZ تسویه tasvije: تسویۀ tasvijeje +تشابه taSAboh +تشبه taSabboh تشبیه taS'bi:h تشت t'aSt -تشعش taSa?So +تشتت taSattot +تشر taSaR +تشعشع taSa?So? تشعشو taSa?So +تشفی taSaffi تشن teSn تشویش taSviS +تشویه taSvije: تشک to'Sak +تشیع taSajjo? +تصادفا tasAdofan +تصادم tasAdom تصدی tasaddi +تصریحا tasRihan تصور tasavvoR +تصوف tasavvof تصوّر tasavvoR +تضمن tazammon +تطور tatavvoR +تظلم tazallom +تعبدا ta?abbodan تعبیه ta?bijeh -تعجب taa:?'dZdZob -تعجّب taa:?'dZdZob +تعجب ta?adZdZob +تعجّب ta?adZdZob تعداد 'te?dAd +تعدی ta?addi +تعدیه ta?dije: تعرفه ta?Refe: تعفن ta?affon +تعلم ta?allom تعمدا ta?ammodan +تعمه to?me: تعهد ta?_ah_hod تعهّد ta?_ah_hod +تعیش ta?ajjoS +تعین ta?ajjon +تغابن taq1Abon +تغایر taq1AjoR تغیان toq1ijAn +تغیر taq1ajjoR تف tof +تفال tofAl تفاهم tafAhom تفاوت ta'fAvot +تفتان taftAn تفتیش taftiS +تفرش tafReS +تفرقه tafRaq1e: +تفصیلا tafsilan +تفقه tafaq1q1oh +تفلن teflon +تفلون teflon تفلیس teflis +تفنن tafannon تفنگ tofang تفنگی tofangi +تفهم tafahhom تفهیم tafhim +تفو tofu +تفوق tafavvoq1 +تفوه tafavvoh +تفک tofak تقارن taq1ARon +تقاویم taq1Avim تقدم taq1addom تقریبا taq1Riban تقلا taq1allA +تقه taq1q1e: تقوی taq1avi تقویت taq1vijat تقویم taq1vim تقّدم taq1addom +تقید taq1ajjod +تقیه taq1ije +تل tel تلاطم talAtom +تلالو tala?lo: +تلخکام takxkAm +تلسکوپ teleskop +تلسکپ teleskop تلف talaf +تلفاکس telefAks تلفن tele'fon +تلفنا telefonan +تلفکس telefaks تلقی talaq1q1i +تلمب tolomb تلمبه tolombe: +تلنگر talangoR +تلو telo: +تلواسه talvAse +تلوتلو telo:telo: +تلوریم teloRijom +تلون talavvon تلویحا talvihan تلویزیون telvizijon +تلپ telep تلکام telekAm تلکس teleks +تلکه talake: تلگراف telegRAf +تلگرافا telegRAfan +تلگرام telegRAm +تلیت telit +تلیسه talise +تلیله talile +تم tem +تماشاگرپسند tamASgaRpasand +تماشاگه tamASAgah تمام tamAm تماما tamAman +تمامدانه tamAmdAne +تمایز tamAjoz +تمایزدهندگی tamAjozdahandegi تمایل tamAjol تمبر tamR تمبک tombak +تمثال temsAl +تمجمج tamadZmodZ تمدن tamaddon تمدّن tamaddon تمرکز tamaRkoz +تمرگ tamaRg +تمرگید tamaRgid +تمساح temsAh تمسخر tamasxoR تمسک tamassok تمشک tameSk تملک tamallok تمنا tamannA +تمنیات tamannijAt +تمهید tamhid +تموج tamavvodZ +تمول tamavvol تموم tamum تمّنا tamannA تمپ temp +تمپو tempo +تمکن tamakkon تمیز tamiz +تمیستوکلس temistokels +تمیم tamim +تنب tonb +تنبان tonbAn تنبل tanbal تنبک tonbak تنبیه tanbih تنت tanat +تنخواه tanxAh تند tond +تنداب tondAb +تندتند tondtond +تندخو tondxu +تندذهن tondzehn تندر tondaR +تندرآسا tondaRAsA تندرست tandoRost تندرو tondRo +تندروان tondRovAn +تندزبان tondzabAn +تندمزه tondmazze: +تندوتند tondotond +تندپز tondpaz تندیس tandis تنش taneS +تنشید tanSid +تنعم tana??om تنفر tanaffoR تنفّر tanaffoR تنم tanam +تنندویان tanandujAn تنور tanuR تنوع tanavvo? +تنک tonok +تنکابن tonekAbon تنگاتنگ tangAtang +تنگراه tangRAh +تنگستن tangestan تنگنا tangnA +تنگوز tunguz تنید tanid تنیس tenis +تنیسور tenisoR +تنیک tonik ته tah تهاجم tahAdZom +تهجی tahadZdZi تهران tehRAn +تهرانسر tehRAnsaR تهرانپارس tehRAnpARs تهمت tohmat +تهمورث tahmuRes تهور tahavvoR +تهوع tahavvo? تهویه tahvije: تهویۀ tahvijeje تهی tohi @@ -2384,34 +3448,64 @@ $ dolAR تهیّه tahi:je: تو to توأم to:?am +توئیتر tu?iteR +تواب tavvAb +تواتر tavAtoR +توارث tavARos +توارد tavARod توازن tavAzon +تواضع tavAzo? توافق tavAfoq1 توالت tuAlet +توالد tavAlod توام to:?am توان 'tavAn توانا tavAnA تواند tavAnad توانست 'tavAnest +توبره tubRe: توبه to:be: توبیخ tobix +توتالیتار totAlitAR توتالیتاریستی totAlitARisti +توتالیتاریسم totAlitARism +توتالیتر totAliteR +توتستان tutestAn توجه 'tavadZdZoh توجّه 'tavadZdZoh توجیه todZih توحش tavahhoS توحید tohid توحین tohin +توخت tuxt +تودار tudAR +تودرتو tudaRtu توده tude: +تودهنی tudahani تودیع todi? تورات toRAt +تورب tuRb +توربالان tuRbAlAn +توربوترن tuRboteRan +توربوجت tuRbodZet +تورج tuRadZ +تورفتگی tuRaftegi تورم tavaRRom +تورنادو toRnAdo +تورنتو toRento +تورنسل toRnosol تورنمنت toRnoment توریسم tuRism +توزرد tuzaRd توزیع tozi? +توزین to:zin +توسری tusaRi توسط tavassote توسعه 'tose?e: توسن to:san توسّط tavassote +توسیط to:sit +توشک tuSak توصی tossij توصیف tosif توصیه 'to:sije: @@ -2419,35 +3513,78 @@ $ dolAR توضیح tozih توطئه to:te?e: توقیف 'toq1if +تولا tavallA +تولب tulab تولد 'tavallod +تولستوی tolstoj +تولوییدین toloidin تولّد 'tavallod +تولیت to:lijat تولید to'lid +تولیدمثل to:lidemesl +تولیم tulijom +تومن toman +تومور tumoR +توموگرافی tomogeRAfi تونال tonAl تونالیته tonAlite: تونالیتۀ tonAliteje +توندرا tondRA تونس tunes تونست tunest تونل tunel +تونگ tong توهم ta'vahhom +توهمزا tuhamzA توهین tohin تووالت tovAlet +توپر tupoR +توپوزی tupuzi +توپوش tupuS +توپولف topolof +توپولوژی topoloZi +توپولژی topoloZi +توپوگرافی topogeRAfi +توچال tovtSAl +توکار tukAR +توکسین toksin +توکوفرول tokofeRol توکیو tokijo +توگود tugo:d توی tuje تویسرکان tujseRkAn تویشنوند tuje +توییتر tui:teR +تپاند tapAnd تپش tapeS +تپق topoq1 تپل topol +تپنده tapande: تپه ta'ppe: تپید tapid تکان tekAn +تکاند tekAnd تکاور takAvaR تکدی takaddi تکرار tekRAR +تکرو takRo: +تکروان takRoAn +تکروند takRavand تکست tekst +تکش takeS +تکشکل takSekl تکفاندو tekfAndo تکلم takallom +تکمه tokme: +تکنسین teknesijan +تکنو tekno: تکنولوژی teknoloZi تکنولوژیک teknoloZik +تکنولژی teknoloZi +تکنولژیست teknoloZist +تکنولژیک teknoloZiki +تکنوکرات teknokeRAt +تکنوکراسی teknokeRAsi تکنیسین teknisijan تکنیک teknik تکه 'te?ke: @@ -2455,34 +3592,89 @@ $ dolAR تکون tekun تکّه 'tekke: تکّۀ 'tekkeje +تکپران takpaRAn تکۀ 'tekkeje +تکیاخته takjAxte: +تکیاختگان takjAxtegAn +تکید takid تکیلا tekilA +تکیه tekje: تگرگ tagaRg تگزاس tegzAs +تیاتر teAtR +تیتانیم titAnijom تیتر titR +تیرافکن tiRafkan تیررس tiRRas +تیروتخته tiRotaxte: +تیروکمان tiRokamAn +تیرویید tiRoi:d +تیرکمان tiRkamAn تیریبل tiRibl +تیزتک tiztak +تیزر tizeR +تیزرو tizRo: +تیزوبز tizoboz +تیزکن tizkon تیف tejf +تیفویید tifoi:d +تیلر tileR +تیمم tajmmom +تیمن tajmmon تیمور tejmuR +تیمورتاش tejmuRtAS +تیمول timol تیمپانی timpAni +تینر tineR +تیوب tijub +تیوری te_oRi +تیوریسین te_oRisijAn +تیوریک te_oRik +تیوزوفی te_ozofi +تیول tijul +تیولوژی te_oloZi تیونر tijuneR تیوپ tujup +تیوکراسی te_okeRAsi +تیپاکس tipAks تیکت tiket ثابت sAbet +ثارالله sARallAh +ثالثا sAlesan +ثامن sAmen +ثامنا sAmenan ثانوی sAnavi +ثانویه sAnavije ثانیا sAnijan +ثایب sA?eb +ثبات sobAt ثبت sabt +ثخذ saxez ثرم samaR ثروت seRvat ثریا soRajjA +ثعالب sa?Alab +ثعلب sa?lab +ثفل sofl +ثقل seq1l +ثقلین saq1alejn +ثقه seq1e ثلث sols ثمر samaR +ثمن saman +ثمود samud ثمیه somajje: +ثنوی sanavi +ثنویت sanavijat +ثوب so:b +ثور so:R جابجا dZAbedZA جادو dZAdu جادّۀ dZAddeje جادۀ dZAddeje جاروکش dZARukeS +جاسم dZAsem +جاسک dZAsk جانشین dZAneSin جانور dZAnevaR جانگولر dZAnguleR @@ -2515,6 +3707,7 @@ $ dolAR جرت dZeRet جرج dZoRdZ جردن dZoRdan +جرس dZaRas جرسقیل dZaRsaq1il جرش dZeReS جرقه dZaRaq1q1e: @@ -2555,6 +3748,7 @@ $ dolAR جلسات dZalasAt جلسقه dZelesq1e: جلسه dZalase: +جلف dZelf جلو dZolo جلوه dZelve: جلگه dZolge: @@ -2616,6 +3810,7 @@ $ dolAR حتی ,ha'ttA حجاب hedZAb حجت hodZdZat +حجّت hodZdZat حد hadd حداقل h,adde_aq1al حداکثر hadde_aksaR @@ -2730,6 +3925,8 @@ $ dolAR خبرگان xobRegAn خجالت xedZAlat خجسته xodZaste: +خجل xedZel +خجلت xedZlat خدا xodA خداحافظ xodAhAfez خداوند xodAvand @@ -2835,6 +4032,7 @@ $ dolAR خورشت xoReSt خورشید xoRSid خوشایند xoSAjand +خوشبختان xoSbaxtAn خوشحال xoSh'Al خوشنود xoSnud خوشه xuSe: @@ -2869,6 +4067,7 @@ $ dolAR داشبرد dASboRd داشبورد dASboRd داشت d'ASt +دامعان dAmq1An دامن dAman داند dAnad دانست dAnest @@ -3056,6 +4255,8 @@ $ dolAR دوزد duzad دوست d'u:st دوستار dustAR +دوستاش dustAS +دوستام dustAm دوستان dustAn دوستت dustat دوستش dustaS @@ -3080,9 +4281,11 @@ $ dolAR دوگانه dogAne: دوید david دویست devist +دپارتمان depARtemAn دچار dotSAR دژ deZ دکارت dekARt +دکان dokkan دکتر doktoR دکترا doktoRA دکتری doktoRi @@ -3093,6 +4296,7 @@ $ dolAR دکه dakke: دکور dekoR دکوراسیون dekoRAsijon +دکّان dokkan دکّه dakke: دکّۀ dakkeje دکۀ dakkeje @@ -3136,6 +4340,7 @@ $ dolAR ذوزنقه zuzanaq1e: ذوزنقۀ zuzanaq1eje ذوق zoq1 +ذکاوت zekAvat ذکر zekR ذیل zejl ذیلا zejlan @@ -3158,6 +4363,7 @@ $ dolAR راهبرد RAhboRd راهحل RAhehal راهرو RAhRo +راهور RAhvaR راهپله RAhpelle: راهپلّه RAhpelle: راهپلّۀ RAhpelleje @@ -3178,9 +4384,11 @@ $ dolAR رجب RadZab رجل RadZol رجیستر RedZisteR +رحلت Rehlat رحمان RahmAn رخ Rox رخام RoxAm +رختخواب RaxtexAb رخنه Rexne: ردیه Raddije: ردیۀ Raddijeje @@ -3194,6 +4402,8 @@ $ dolAR رزمناو RazmnAv رس Ros رسالت ResAlat +رساله ResAle: +رسالۀ ResAleje رسانه RasAne: رستران RestoRAn رستم Rostam @@ -3231,6 +4441,7 @@ $ dolAR رمال RammAl رمان RomAn رمانتیک RomAntik +رمد Ramad رمضان RamezAn رمق Ramaq1 رند Rend @@ -3390,6 +4601,7 @@ $ dolAR سانتریفیوژ sAntRifijuZ سانتیمتر sAntimetR ساندویچ sAndevitS +سانس sAns سانسیبل sAnsibl سانفرانسیسکو sAnfeRAnsisko: ساکت sAket @@ -3436,6 +4648,7 @@ $ dolAR سربلند saRboland سربند saRband سرت saRat +سرتاسر _saR_tAsaR سرخ 'soRx سرخپوست soRxpust سردرگم saRdaRgom @@ -3457,6 +4670,7 @@ $ dolAR سرمست saRmast سرمه soRme: سرمۀ soRmeje +سرناد seRenAd سرنخ saRnax سرنشین saRneSin سرنگون saRnegun @@ -3537,7 +4751,9 @@ $ dolAR سندرم sandRom سنسور sensoR سنش sennaS +سنفونی samfoni سنّتی sonnati +سنگال senegAl سنگر sangaR سنگفرش sangfaRS سنگنوشته sangneveSte: @@ -3545,6 +4761,7 @@ $ dolAR سنگین sangin سنی senni سنین senin +سه se: سهراب sohRAb سهیل sohejl سهیلا sohejlA @@ -3600,6 +4817,7 @@ $ dolAR سپهر sepehR سپید sepid سپیدار sepidAR +سکان sokkAn سکانس sekAns سکتور sektoR سکرین eskRin @@ -3654,6 +4872,7 @@ $ dolAR شازدۀ SAzdeje شاستی SAsti شاشبند SASband +شاقّه SAq1e: شانز SAnz شانزده 'SAnzdah شانس SAns @@ -3661,6 +4880,7 @@ $ dolAR شاه SA:h شاهدان SAhedAn شاهرخ SAhRox +شاهرود SAhRud شاپرک SApaRak شاگرد SAgeRd شاید 'SAjad @@ -3693,6 +4913,7 @@ $ dolAR شدیم Sodim شراکت SeRAkat شرب SoRb +شربت SaRbat شرت 'SoRt شرتکات SoRtkAt شرف SaRaf @@ -3817,6 +5038,7 @@ $ dolAR شیدا SejdA شیرجه SiRdZe: شیرجۀ SiRdZeje +شیرده SiRdeh شیطان SejtAn شیطنت Sejtanat شیطون Sejtun @@ -3861,6 +5083,7 @@ $ dolAR صفت se'fat صفحات safahAt صفر sefR +صفرم sefRom صفم 'sefRom صفوی safavi صلبیه solbije: @@ -3881,6 +5104,8 @@ $ dolAR صورت suRat صورتحساب suRat_hesAb صولت so:lat +صوم sevvom +صوّم sevvom صیاد sajjAd صید sejd صیقل sejq1al @@ -3916,12 +5141,14 @@ $ dolAR طرق toRoq1 طرقی taRaq1q1i طریق taRiq1e +طریقت taRiq1at طریقی taRiq1i طعمه to?me: طلب talab طلبان talabAn طلق telq1 طمع tama? +طهران tehRAn طور 'toR طوراب toR'Ab طی tejje @@ -3933,6 +5160,7 @@ $ dolAR ظهر zohR عاریه ?ARije عازم Azem +عالميان AlamijAn عالیجناب AlidZenAb عالیرتبه 'AliRotbe عباد ebAd @@ -4061,6 +5289,7 @@ $ dolAR غربت q1oRbat غرش q1oRReS غرض q1aRaz +غرغر q1oRq1oR غرفه q1oRfe: غرّش q1oRReS غزل q1azal @@ -4133,6 +5362,7 @@ $ dolAR فرماید faRmAjad فرمول foRmul فرنگ faRang +فرنگی faRangi فرنی fe'Reni فرهنگ faRhang فرهنگی faRhangi @@ -4212,14 +5442,17 @@ $ dolAR فونکسیونالیسم fonksijonAlism فونیک fonik فویل fojl +فيزيولوژي fizijoloZi فکاهی fokA:'hi: فکر 'fekR فیاض fajjAz فیبر fibR فیتوپلاینکتون fitopelAjnkton +فیزیولوژی fizijoloZi فیزیولوژیک fizijoloZik فیزیکدان fizikdAn فیسبوک fejsbuk +فیض fejz فیلارمونیک filARmonik فیلتر filteR فیلترشکن filteRSekan @@ -4312,6 +5545,7 @@ $ dolAR قلّک q1ollak قلک q1ollak قلی q1oli +قلیان q1aljAn قم q1om قمار q1omAR قمر q1amaR @@ -4346,6 +5580,7 @@ $ dolAR لاکتوز lAktoz لاکپشت lAkpoSt لایتناهی lAjatanAhi +لایسنس lAjsens لایک lAjk لباس 'lebAs لبت labat @@ -4369,6 +5604,7 @@ $ dolAR لرد loRd لزج lazedZ لزوما lozuman +لطافت letAfat لطف lotf لطفا lotfan لطمات latamAt @@ -4380,6 +5616,8 @@ $ dolAR لقمان loq1mAn لقمه loq1me: لقمۀ loq1meje +لله lellAh +للّه lellAh لمینیت laminejt لندن landan لندهور gandehuR @@ -4413,6 +5651,8 @@ $ dolAR لیلی lejli لینوکس linuks لینک 'link +مآب ma_Ab +مأسس mo?asses مأیوس ma?jus مؤثر ,mo'a?seR مؤسس mo?asses @@ -4421,6 +5661,7 @@ $ dolAR مؤمن mo?men مؤنث moannas مابقی mAbaq1i +مابین mAbejn ماجرا mAdZaRA ماحصل mAhasal مادر mAdaR @@ -4518,6 +5759,8 @@ $ dolAR متمسک motemassek متمم motammem متن matn +متناهیه motanAhije: +متناهیۀ motanAhijeje متنوع motenavve? متنوّع motenavve? متهم mottaham @@ -4531,6 +5774,7 @@ $ dolAR متولی motevalli متولیان motevallijAn متون motun +متوهم motevahhem متّحد mottahed متّصل mottasel متّفق mottafeq1 @@ -4544,6 +5788,7 @@ $ dolAR مثبت mosbat مثل mesl مثلا masalan +مثلاً masalan مثلث mosallas مجاب modZAb مجاز modZAz @@ -4717,6 +5962,7 @@ $ dolAR مرتضوی moRtazavi مرتضی moRtezA مرتفع moRtafa? +مرتکبان moRtakebAn مرجح moRadZah مرجع maRdZa? مرخص moRaxxas @@ -4780,6 +6026,7 @@ $ dolAR مسئلۀ mas?aleje مسابقات mosAbeq1At مسابقه mosAbeq1e: +مساحق mosAheq1 مساعد mosAed مسافر mosAfeR مسافرت mosAfeRat @@ -4793,6 +6040,7 @@ $ dolAR مستثنی mostasnA مستجاب mostadZAb مستحب mostahabb +مستحضر mostahzaR مستحق mostahaq1 مستحکم mostahkam مستخدم mostaxdem @@ -4800,6 +6048,7 @@ $ dolAR مستضعف mostaz?af مستطیل mostatil مستعار mosta?AR +مستفيض mostafiz مستقبل mostaq1bel مستقر mostaq1aR مستقل mostaq1el @@ -4843,6 +6092,7 @@ $ dolAR مشتری moStaRi مشتق 'moStaq1 مشخص moSaxxas +مشخصا moSaxxasan مشدد moSaddad مشرف moSRef مشرق maSReq1 @@ -4857,7 +6107,9 @@ $ dolAR مشکل 'moSkel مشکی meSki مشی maSj +مشیت maSijjat مشیمیه maSimije: +مشیّت maSijjat مصاحب mosAheb مصادره mosAdeRe: مصالحه mosAlehe: @@ -4970,6 +6222,7 @@ $ dolAR مغز maq1z مغناطیس meq1nAtis مغول moq1ol +مفت moft مفتاح meftAh مفرح mofaRRah مفرد mofRad @@ -4986,6 +6239,7 @@ $ dolAR مقایس moq1Ajes مقبره maq1baRe: مقبرۀ maq1baReje +مقتضا moq1tazA مقتضی moq1tazi مقدار meq1dAR مقداری meq1dARi @@ -5051,6 +6305,7 @@ $ dolAR ممکن momken ممیز momajjez منا monA +مناجات monAdZAt مناسب monAseb مناسبتی monAsebati مناظره monAzeRe: @@ -5059,6 +6314,7 @@ $ dolAR مناقصه monAq1ese: منبر manbaR منبع manba? +منت mennat منتاژ montAZ منتج montadZ منتخب montaxab @@ -5080,6 +6336,7 @@ $ dolAR منزل manzel منزله manzale: منزوی monzavi +منسجم monsadZem منش maneS منشأ manSa? منشاء manSa? @@ -5105,6 +6362,7 @@ $ dolAR منچستریونایتد mantSesteRjunAjted منکر monkeR منگل mongol +منگنز manganez منیر moniR منیزیم manjezijom منیژه maniZe: @@ -5144,6 +6402,7 @@ $ dolAR موبایل 'mobAjl موبد mubad موتور motoR +موتورسیکلت motoR_siklet موثر mo?asseR موثق movassaq1 موج mo:dZ @@ -5191,7 +6450,9 @@ $ dolAR مونتاژ montAZ مونث moannas موند mund +موهبت muhebat موهن mo:hen +موومان muvmAn موژه moZe: موکت moket موکل movakkel @@ -5199,6 +6460,7 @@ $ dolAR مّلاک mallAk مّلت mellat مّلیت mellijat +مپل mopol مچ motS مچاله motSAle: مچبند motSband @@ -5234,7 +6496,9 @@ $ dolAR مگر magaR مگس magas مگسکش magaskoS +میابد mijAbad میادین majAdin +میامی majAmej میان miAn میانبر mijAnboR میانجی mi:An'dZi: @@ -5259,6 +6523,7 @@ $ dolAR میرس miRes میرسد miResad میرسم miResam +میرغضب miRq1azab میرفت miRaft میرو miRav میروند miRavand @@ -5446,6 +6711,7 @@ $ dolAR نفسانی nafsAni نفسکش nafaskeS نفوذ nofuz +نفوس nofus نفی nafj نقاب neq1Ab نقاش naq1q1AS @@ -5474,7 +6740,6 @@ $ dolAR نمونه nemune: نمونۀ nemuneje نمک namak -نمی nemi نمیبرم nemibaRam نمیبریم nemibaRim نمیخرد nemixaRad @@ -5561,6 +6826,7 @@ $ dolAR نکتۀ 'nokkteje نکرد nakaRd نکشید nakeSid +نکشیده nakeSide: نکن nakon نکند nakonad نکو neku @@ -5584,9 +6850,16 @@ $ dolAR نیات nijjAt نیاز nijAz نیامد najAmad +نیانگارد najangAR +نیانگاردد najangARad نیاورد najAvaRd نیاکان nijAkAn +نیاید najAjad نیایش nijAjeS +نیایند najAjand +نیایی najAi: +نیایید najAi:d +نیاییم najAi:m نیت nijjat نیجریه nidZeRije: نیر najjeR @@ -5604,6 +6877,8 @@ $ dolAR نیوز nijuz نیومد najumad نیویورک nijojoRk +نیّت nijjat +نیچه nitSe: نیکمنش nikmaneS هاتمیل hAtmejl هارد hARd @@ -5614,6 +6889,12 @@ $ dolAR هاشم hASem هالوژن hAloZen های hAje +هایتان hAjetAn +هایتون hAjetun +هایشان hAjeSAn +هایشون hAjeSun +هایمان hAjemAn +هایمون hAjemun هایپر hAjpeR هایی hAi: هتل hotel @@ -5645,6 +6926,7 @@ $ dolAR هزارپا hezARpA هزراپا hezARpA هست hast +هشت haSt هشتاد 'haStAd هشتادم 'haStAdom هشتصد haStsad @@ -5654,6 +6936,7 @@ $ dolAR هشدار hoSdAR هشیار hoSjAR هف 'hef +هفت haft هفتاد 'haftAd هفتادم 'haftAdom هفتصد haftsad @@ -5682,6 +6965,7 @@ $ dolAR همزادپندار hamzAdpendAR همزمان hamzamAn همش hamaS +هموفونی homofoni هموفیلی hemofili همون hamun همگانی hamegAni @@ -5719,6 +7003,7 @@ $ dolAR هوش huS هوشنگ huSang هول ho:l +هولوگرام hologeRAm هوگو hogo هویت hovijjat هویدا hovejdA @@ -5737,6 +7022,7 @@ $ dolAR هیجده hidZdah هیلتون hilton هیپنوتیزم hipnotizm +هیچیک hitSjek هیکل hejkal واترپلو vAteRpolo واشنگتن vASangton @@ -5838,11 +7124,16 @@ $ dolAR پائین 'pAi:n پابرجا pAbaRdZA پابند pAband +پاترول pAtRol پاتریوت pAtRijot پاتوق pAtoq1 +پادتن pAdtan +پادو pAdo +پادکست pAdkast پارادوکس pARAdoks پارادوکسیکال pARAdoksikAl پارازیت pARAzit +پارالل pARAlel پارامتر pARAmetR پاراگراف pARAgeRAf پارت pARt @@ -5854,24 +7145,40 @@ $ dolAR پارچ pARtS پارک pARk پارکت pARket +پاستل pAstel پاسخ pAsox پاسپورت pAspoRt پاشنه pASne: پاشنۀ pASneje پافشاری pAfeSARi پالایش pAlAjeS +پالت pAlet پالتو pAlto +پالس pAls +پانتومیم pAntomim +پاند pAnd پانز pAnz پانزده 'pAnzdah +پانسمان pAnsemAn +پانسیون pAnsijon +پانسیونر pAnsijoneR پانصد pAnsad پانصدم pAnsadom +پانچ pAntS پاورقی pAvaRaq1i +پاورپوینت pAveRpojnt +پاورچین pAvaRtSin پاکباخته pAkbAxte: +پاکنه pAkne پایتخت pAjtaxt +پایستگی pAjestegi پتاس potAs پتاسیم potAsijom پتانسیل potAnsijel +پترزبورگ peteRzbuRg +پتروسیان petRosijAn پتروشیمی petRoSimi +پتک potk پخت poxt پخش paxS پدافندی padAfandi @@ -5879,8 +7186,16 @@ $ dolAR پدر pedaR پدرام pedRAm پدربزرگ pedaR_bozoRg +پدرتباری pedaRtabARi +پدرجد pedaRdZad +پدرخوانده pedaRxAnde پدرزن pedaRzan +پدرسوخته pedaRsuxte +پدرسوختگی pedaRsuxtegi پدرشوهر pedaRSohaR +پدرمرده pedaRmoRde +پدرکش pedaRkoS +پدرکشتگی pedaRkoStegi پدریتان pedaRijetAn پدریش pedaRijaS پدریشان pedaRijeSAn @@ -5888,18 +7203,44 @@ $ dolAR پدیا pedijA پذیرش paziReS پذیرفت paziRoft +پذیرفتنی paziRoftani پر poR +پراتیک peRAtik پرازیت pARAzit +پرانتز paRAntez پراکند paRAkand +پراگماتیک peRAgmAtik پراید peRAjd +پربارش poRbAReS +پربدهی poRbedehi +پربسته paRbaste +پربلا poRbalA +پربها poRbahA +پربیننده poRbinande: پرتاب paRtAb +پرتابل poRtAbl +پرتره poRtRe +پرتست poRotest +پرتستان poRotestAn +پرتعداد poRtedAd پرتغال poRteq1Al پرتقال poRteq1Al +پرتلالو poRtalalo پرتنش poRtaneS پرتو paRto +پرتوافشانی paRto_afSAni +پرتوافکن paRto_afkan +پرتودرمانی paRtodaRmAni +پرتوزا paRtozA +پرتپش poRtapeS +پرتکل poRotokol +پرحجم poRhadZm پرخاش paRxAS +پرخاشجویانه paRxASdZujAne +پرخفقان poRxafaq1An پرد paRad پرداخت paR'dAxt +پردار paRdAR پرداز paRdAz پردازد paRdAzad پردازش paRdAzeS @@ -5908,14 +7249,24 @@ $ dolAR پردازی paRdAzi پردازید paRdAzid پردازیم paRdAzim +پرداویز paRdAviz پرده paRde: +پردگی paRdegi پردۀ paRdeje +پردیزه paRdize پردیس paRdis پررفت poR_Raft پررو poRRu +پرریش poRRiS +پرز poRz +پرزخم poRzaxm +پرزدار poRzdAR +پرزنت peRezent پرزیدنت peRezident پرست paRast پرستار paRastAR +پرستش paRasteS +پرستشگر paRasteSgaR پرستو paRastu پرستیدم paRastidam پرستیدن paRasti:'dan @@ -5924,107 +7275,255 @@ $ dolAR پرستیدید paRastidid پرستیدیم paRastidim پرستیژ peRestiZ +پرسخن poRsoxan پرسد poRsad پرسش poRseS +پرسناژ peRsonAZ پرسنل peRsonel پرسه paRse: پرسها peReshA پرسهای peReshAje پرسهایی peReshAi: +پرسو poRsu پرسوجو po:Rso:'dZu: پرسپلیس peRspolis پرسپولیس peRspolis پرسپکتیو peRespektiv پرسید poRsid پرش paReS +پرشدگی poRSodegi پرشیا peRSijA پرشین peR'Sijan +پرطمطراق poRtamtaRAq1 +پرطنین poRtanin +پرعیار poRajAR +پرغصه poRq1osse +پرغوغا poRq1ovq1A +پرفراتور peRfoRAtoR پرفسورتلویزیون poRfosoR +پرفیریت poRfiRit +پرقدمت poRq1edmat +پرقند poRq1and +پرقیچی paRq1ejtSi +پرلاشز peRlASez +پرلتر poRoleteR +پرلن peRlon +پرلود peRlud +پرمایه poRmAje +پرمدعا poRmoddaA +پرمسیولیت poRmasulijat +پرمشقت poRmaSeq1q1at +پرمنفعت poRmanfeat +پرمنگنات peRmangenAt +پرمو poRmu پرند paRand پرنده paRande: +پرندگان paRandegAn پرنس peRans +پرنسس peRanses +پرنقش poRnaq1S +پرنمک poRnamak +پرنیرنگ poRnejRang +پره paRRe پرهام paRhAm +پرهون paRhun +پرهیبت poRhejbat +پرهیجان poRhajedZAn +پرهیخت paRhixt پرهیز paRhiz +پرو poRov پروا paRvA +پروار paRvAR +پرواربند paRvARband پرواز paRvAz پروانه paRvAne: پروتئین peRoto?in پروتون poRoton +پروتوپلاست poRotopelAst +پروتوپلاسم poRtopelAsm پروتکل poRotokol +پروتیین poRote?in پرور paRvaR پرورد paRvaRd پرورش paRvaReS +پروزن poRvazn +پروستات poRostAt +پروسترویکا poRostoRikA +پروستریکا poRostoRikA پروسه poRose: پروفایل peRofAjl +پروفرم poRofoRm پروفرما pRofoRmA پروفسور peRofesoR +پروندان paRvandAn پرونده paRvande: پروه paZuh +پروژسترون peRoZesteRon پروژه poRoZe: +پروژکتور poRoZektoR پروژۀ poRoZeje +پروکسید peRoksid +پروگرام poRogeRAm پرویز paRviz پروین paRvin +پرویندخت paRvindoxt +پرپروتیین poRpoRotein پرپست poRpoSt پرپشت poRpoSt +پرک paRak +پرکشش poRkeSeS +پرکلرین peRkoloRin پرکینز peRkinz پرگار paRgAR +پرگل poRgol پری paRi +پریاخته poRjAxte +پریدخت paRidoxt +پریدر paRidaR +پریرخ paRiRox +پریرو paRiRu پریروز paRiRuz پریز peRiz +پریسکوپ peRiskop +پریسکپ peRiskop +پریشان paRiSAn پریشب paRiSab +پریمتر peRimetR پریناز paRinAz پرینت pRint پرینتر pRinteR پریود peRijod +پریکارد peRikARd +پریکارپ peRikARp +پزتا pezetA +پزد pazad پزشک pezeSk +پزو pezo پزیرد paziRad +پسامدرنیسم pasAmodeRnism پسانداز pasandAz پست post پستان pestAn +پستانک pestAnak +پستر posteR پسته peste: پستون pestun +پستک pastak پستۀ pesteje +پستیژ postiZ پسر pesaR +پسرا pesaRA +پسراندر pesaRandaR +پسرانه pesaRAne +پسربرادر pesaRebaRAdaR +پسربچه pesaRbatStSe پسرخاله pesaRxAle: +پسرخوانده pesaRxAnde +پسرخواندگی pesaRxAndegi +پسرخواهر pesaRxAhaR پسردایی pesaRdAi: +پسرزا pesaRzA پسرعمه pesaRamme: پسرعمو pesaRa:mu +پسرفت pasRaft +پسرو pasRo: پسرکش pesaRkoS پسند pasand پسندید pasandid +پسندیدگی pasandidegi +پسورد pasvoRd +پسکامان paskAmAn +پسیخانی pesixAni پشت p'oSt پشتبام poStebAm پشتبند poStband پشتوان poStvAn +پشتگرم poStgaRm پشتیبان poStibAn +پشک peSk +پشکل peSkel +پشگ peSg پشگل peSgel پشیمان paSimAn +پطرزبورگ peteRzbuRg +پطرس petRos +پطروسیان petRosijAn پف pof پفک pofak پفیوز pofijuz پل pol +پلاتفورم pelAtfoRm +پلاتو pelAto +پلاتین pelAtin +پلاتینویید pelAtinoid +پلاروید polARojd +پلاریته polARite +پلاریزاسیون polARizAsijon +پلاریزه polARize پلاستیک pelAstik پلاسما pelAsmA +پلاسمودیوم pelAsmodijom +پلاسمولیز pelAsmoliz +پلاسنتا pelAsentA +پلاسید pelAsid +پلان pelAn +پلانتاریم pelAnetARijom +پلانو pelAno +پلانکتون pelAnkton پلاژ pelAZ پلاک pelAk +پلاکارت pelAkARt +پلاکارد pelAkARd +پلاکت pelAket +پلاگر pellAgaR +پلت palat +پلتیک poletik +پلس palas پلسک pelesk پلشت palaSt +پلم palam پلمب polomb +پلمپ polomp +پلنوم pelenom پلنگ 'palang پله pelle: پلو polo +پلوتارک polotARk +پلوتون poloton +پلوتونیوم polotonijom +پلوخورش poloxoReS +پلورالیزم poloRAlizm +پلورالیست poloRAlist +پلورالیسم poloRAlism +پلونیم polonijom +پلوپز polo:paz +پلوپونزی poloponzi +پلویمتر pelvimetR پلّه pelle: پلّۀ pelleje پلک pelk +پلکان pellekAn پلۀ pelleje پلیآف pelej?Af پلیر pelejeR پلیس polis +پلیمر polimeR +پلیمریزاسیون polimeRizAsijon پلیور poliveR +پلیپ polip +پلیکا polikA +پلیکان pelikAn پماد pomAd +پموفونیک homofonik پمپ pomp پمپاژ pompAZ +پنالتی penAlti +پنت pont +پنتان pentAn پنتاگون pentAgon +پنتوز pentoz +پنتوزان pentozAn +پنج pandZ پنجاهم 'pandZAhom پنجره pandZaRe: پنجرۀ pandZaReje @@ -6033,66 +7532,193 @@ $ dolAR پندار pendAR پندارد pendARad پنداشت pendASt +پندشنو pandSeno: +پندنیوش pandnijuS پنسیلوانیا pensilvAnijA +پنسیلوانین pensilvAnijAn +پنط pont پنل panel پنهان penhAn +پنوماتیک penomAtik +پنوموکوک penomokok پنچر pantSaR پنگئن panguan +پنگان pangAn پنگعن panguan پنگون panguan +پنگوین pangoan پهلوان pahlavAn +پهلوفنگ pahlufang پهلوی pahlavi +پهنانگر pahnAnegaR +پهنرفت pahnRaft +پواتیه poAtije +پوار povAR +پوتسدام putsdAm +پوخ pox پودر pudR +پوراحد puRahad +پوراحمد puRahmad +پوراردبیلی puRaRdebili +پوراستاد puRostAd +پوراسدالله puRasadollAh +پوراشرف puRaSRaf +پوراصل puRasl +پورباقری puRbAq1eRi +پوربهشتی puRbeheSti پورت poRt پورتال poRtAl +پورجواد puRdZavAd +پورحامدی puRhAmedi +پورحیدری puRhejdaRi +پوردهقان puRdehq1An +پورراجیان puRRAdZijAn +پوررنجبر puRRandZbaR +پورزمانی puRzamAni +پورسان puRsAn +پورسانت puRsAnt +پورسهراب puRsohRAb +پورشاسب puRSAsb +پورشیخ puRSejx +پورصادق puRsAdeq1 +پورصباغ puRsabbAq1 +پورعباس puRabbAs +پورعسکری puRaskaRi +پورفاطمی puRfAtemi +پورمراد puRmoRAd +پورمقدس puRmoq1addas +پورموسوی puRmusavi +پورمک puRmak +پورنجاتی puRnedZAti +پورنظری puRnazaRi +پورنوذری puRnozaRi +پورنوگرافی poRnogeRAfi پورنگ puRang +پورکاظمی puRkAzemi پوزئیدون poze?idon پوزش puzeS +پوزیترون pozitRon +پوزیتیویسم pozitivism +پوزید pozid +پوزیسیون pozisjon +پوزیشن poziSen پوستر posteR +پوشبرگ puSbaRg پوشش puSeS +پوشکره puSkoRe +پولاریزاسیون polARizAsijon +پولاریسم polARism پولو polo +پولونیم polonijom +پولکا polkA +پولکبالان pulakbAlAn +پولیستر polijesteR +پولیش poliS +پولیفونی polifoni +پولیفونیک polifonik +پولیمر polimeR +پولیور poliveR +پولیپ polip پوند pond +پونز punez +پوپلین poplin پوپیتر popitR +پوکر pokeR +پویش pujeS +پوینت pojAnt پّله pelle: پپسی pepsi پپسیکولا pepsikolA پپیتر popitR پژمان peZmAn +پژمر paZmoR +پژمرد paZmoRd پژمرده paZmoRde: پژمردۀ paZmoRdeje +پژواک peZvAk پژوه paZuh پژوهش paZuheS +پکاند pokAnd +پکانید pokAnid +پکتین pektin +پکر pakaR پکن pekan پکیج pakejdZ +پکید pokid پگاه pegAh پی pej پیام pajAm پیامبر pajAmbaR +پیامبرکش pajmbaRkoS پیامد pajAmad پیانو pijAno پیاپی pejApej پیت pejat +پیتزیکاتو pitsikAto +پیتسیکاتو pitsikAto +پیتون pejton +پیتکانتروپ pitekAnteRop +پیج pejdZ +پیجر pejdZeR پیدا pejdA پیداش pejdAS پیدام pejdAm +پیدایش pejdAjeS +پیرابند piRAband +پیراحمدی piRahmadi +پیراشکی piRASki +پیراقطبی piRAq1otbi +پیرایش piRAjeS +پیرایید piRAid پیرزن piRezan +پیرمرادیان piRmoRAdijAn +پیرموذن piRmo?azzen +پیرموسی piRmusA +پیرهن piRhan پیرو pejRo پیروان pejRovAn +پیرولیز piRolis +پیروپاتال piRopAtAl +پیروکسن piRoksen پیروی pejRavi +پیرچشم piRtSeSm +پیرکس piReks +پیزر pizoR +پیس pijes پیست pejst +پیستن piston +پیستون pistun +پیسوار pisvAR +پیشابدان piSAbdAn +پیشابراه piSAbRAh پیشامد piSAmad +پیشاپیش piSApiS پیشرفت piSRaft پیشرو piSRo: +پیشکش piSkeS پیغام pej'q1Am پیغمبر pejq1ambaR +پیلوت pilot +پیلور piloR پیما pejmA پیمان pejmAn +پیمود pejmud پینتبال pejntbAl +پینوکیو pinokijo پینگپونگ pingpong +پیه pih +پیواژه pejvAZe +پیوره pijoRe پیوست pejvast +پیوستار pejvastAR پیوند pejvand پیوندد pejvandad +پیونگ pijung +پیچازی pitSAzi +پیچش pitSeS +پیچه pitSe: پیک pejk +پیکاسو pikAso پیکان pejkAn پیکر pejkaR پیکلو pikolo @@ -6192,6 +7818,7 @@ $ dolAR کارت kARt کارتل kARtel کارتون kARton +کارد kARd کاردان kARdAn کارفرما 'kARfaRmA کارمزد kARmozd @@ -6279,6 +7906,8 @@ $ dolAR کرنش koRneS کرنل koRnel کره koRe: +کروات kRovAt +کرواتی kRovAti کرواسی koRovAsi کروب kaRRub کروی koRavi @@ -6362,6 +7991,9 @@ $ dolAR کلنگ kolang کله kalle: کلهر kalhoR +کلّ koll +کلّيّه kolijje: +کلّيّۀ kolijjeje کلک kalak کلکسیون koleksijon کلۀ kaleje @@ -6405,10 +8037,13 @@ $ dolAR کنایه kenAje: کنایۀ kenAjeje کنت kont +کنتاکی kentAki کنتر kontR کنتراست kontRAst +کنترباس kontRbAs کنترل ,'kontoRol کنترلر kontoRoleR +کنترپوان kontRpuAn کنترپون kontRpuan کنتس kontes کنتور kontoR @@ -6473,6 +8108,7 @@ $ dolAR کپر kapaR کپل kapal کپی ''kopi +کژدم kaZdom کی kej کیانوش kijAnuS کیبورد kiboRd @@ -6485,6 +8121,7 @@ $ dolAR کیهان kejhAn کیوان kejvAn کیوسک kijusk +کیومرس kijumaRs کیک kejk گارانتی gARAnti گارد gARd @@ -6523,6 +8160,7 @@ $ dolAR گربۀ goRbeje گرجستان goRdZestAn گرد gaRd +گردآور geRdAvaR گرداند gaRdAnd گردباد geRdbAd گردد gaRdad @@ -6585,6 +8223,7 @@ $ dolAR گفتوگو goft'ogu گفتگو goftogu گل gol +گلآلود gelAlud گلاب golAb گلالود gelAlud گلان golAn @@ -6672,6 +8311,7 @@ $ dolAR یاسمن jAsaman یاسمین jAsamin یافت 'jAft +یانگ jAng یاور jAvaR یبوست jobusat یتان jetAn @@ -6696,6 +8336,7 @@ $ dolAR یونس junes یونسکو junesko یونیسف junisef +یوهان juhAn یک je'k یکدیگر jekdigaR یکم 'jekom @@ -6703,7 +8344,7 @@ $ dolAR یکّه 'jekke: یکّۀ 'jekkeje یکپارچگی jekpARtSegi -یکپارچۀ jekpARtZeje +یکپارچۀ jekpARtSeje یکۀ 'jekkeje یکی jeki یکیش 'jekiS diff --git a/dictsource/fa_rules b/dictsource/fa_rules index 99bb1250..148adca3 100644 --- a/dictsource/fa_rules +++ b/dictsource/fa_rules @@ -23,13 +23,15 @@ // Text to phoneme rules for Farsi -// replace Arabic character numbers with Latin character numbers +// replacing unknown characters and Arabic numbers with Farsi characters and Latin numbers .replace ٪ % ي ی ۍ ی ى ی ك ک + ە ه + ھ ه ٠ 0 ۰ 0 ۱ 1 @@ -59,12 +61,12 @@ .L01 آ ا ی ي و // short vowels (commonly unwritten ) -.L02 َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ +.L02 َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ // All consonants .L03 ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن ه ة ئ -// all Farsi characters without ا آ +// all Farsi characters without ا آ and Short vowels .L04 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ت ن م ک گ ۀ ظ ط ز ر ذ د ئ و ة ي ژ ؤ إ أ ء ؟ پ // Group one of consonants @@ -77,7 +79,7 @@ .L07 ن م ت ش ک مان تان شان ند نده ندۀ ندگی ندگان گی گان گانه گانۀ ستان ست // All vowels (long + Short) -.L08 آ ا ی ي و َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ +.L08 آ ا ی ي و َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ // all Farsi characters without short vowels .L09 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ا ت ن م ک گ ۀ آ ظ ط ز ر ذ د ئ و ة ي ژ پ ؤ إ أ ء ؟ ّ @@ -100,6 +102,9 @@ L09L04) آلود (_Sm4 Alud L09L04) آباد (_Sm4 AbAd L09L04) آفرین (_Sm5 AfaRin + L09L09) آموخته (_Sm6 Amuxte: + L09L09) آموختۀ (_Sm6 Amuxteje + L09L09) آگاه (_Sm4 AgAh .group ا @@ -108,7 +113,7 @@ -) ا (للّه_+ o _) ا (L02_ alef? _) ا (L02L09 - _) ا (L01 + _) ا (L01L03 _) ا 'a: _) ا (ع e ا 'A @@ -346,6 +351,8 @@ L09L09) بخت (_Sm3 baxt L09L09) باش (_Sm3 bAS L09L09) بزرگ (_Sm4 bozoRg + L09L09) باور (_Sm4 bAvaR + L09L09) برانگیز (_Sm baRangiz // arabic form of words (Babs) ب //فواعل eg. جوامع @@ -518,6 +525,7 @@ L09L09) پرداز (_Sm5 paRdAz L09L09) پندار (_Sm5 pendAR L09L09) پرست (_Sm4 paRast + L09L09) پناه (_Sm4 panAh // arabic form of words (Babs) پ //فواعل eg. جوامع @@ -1670,6 +1678,7 @@ L09L09) درد (_Sm3 daRd L09L09) دوش (_Sm3 duS L09L09) دهی (_Sm3 dehi + L09L09) دوست (_Sm4 dust // arabic form of words (Babs) د //فواعل eg. جوامع @@ -2473,6 +2482,7 @@ // suffixes س L09L01) ست (_+NSm2 st L09L03) ست (_+NSm2 ast + -) ست (_+NSm2 st // eg. "کجا‌ست" L09L03) ستان (_Sm4 estAn L09L01) ستان (_Sm4 stAn L09L09) سان (_Sm3 sAn @@ -2826,7 +2836,7 @@ // Prefixes ص _) صاحب (L04L09L09P4@ sAheb _) صاحب (آL09L09P4@ sAheb - _) صدر (L04L09L09P5@ sadr + _) صدر (L04L09L09P3@ sadr _) صدر (آL09L09P5@ sadr // Suffixes ص @@ -4663,6 +4673,7 @@ L09L01) مون (_Sm3 mun L09L09) مردان (_Sm5 maRdAn L09L09) منش (_Sm3 maneS + L09L09) مآب (_Sm3 maAb // arabic form of words (Babs) م //فواعل eg. جوامع @@ -5209,6 +5220,7 @@ // Plural pronoun ها L09L09) های (_NSm3 h'Aje L09L09) هایی (_NSm4 h'Ai: + L09L09) هائی (_NSm4 h'Ai: L09L09) هاست (_NSm4 h'Ast // Plural possessive pronouns for ها L09L09) هایم (_NSm4 hAjam @@ -5352,6 +5364,8 @@ _ا) ی (_+ i L01) ی (_ je L03) ی (_ i + ی (ٰ_ + ی (ٰL04 j _آ) ی (L03_ ja // Prefixes ی @@ -5439,6 +5453,7 @@ L09ع) یاتشان (_NSm6 ijjAteSAn L09L09) یزاسیون (_Sm7 isAsion L09L03) یافت (_Sm4 jAft + -) یست (_+NSm3 ist // eg. "فردا‌یست" // arabic form of words (Babs) ی //فواعل eg. جوامع @@ -5518,6 +5533,8 @@ .group ٔ + L04) ٔ + ا) ٔ a? ٔ // suffixes ٔ @@ -5530,6 +5547,7 @@ .group ئ + ئی i: ئ (L01 ? ئ (L02 ? L02) ئ ? @@ -5560,6 +5578,13 @@ //ة (L01 h ة t + +.group ٰ + ٰ (L04 A + ٰ (ا + ٰ (آ + + //short vowels that are not usually written: .group َ @@ -5583,6 +5608,12 @@ L09L09) ُ (_Sm1 o +.group ْ + ْ + // Suffixes "ْ" + L09L09) ْ (_Sm1 + + .group ً ً an // Suffixes "ً" diff --git a/dictsource/ga_list b/dictsource/ga_list new file mode 100644 index 00000000..c1e3da64 --- /dev/null +++ b/dictsource/ga_list @@ -0,0 +1,246 @@ +// Irish Gaeilge dictionary +// written by Ronan McGuirk +// January 2013 +// version 2.5 +// This file is UTF8 encoded + +// letters +// letter names, as they are spoken as a single character in text +// precede by _ to distinguish from pronunciation as a language word + +_a eI +b bi: $atend +?1 bh v // eclipsis +c si: +d di: $atend +e i: +f Ef +g dZi: $atend +h eItS $atend +_i aI +j dZeI +k keI +l El +m Em $atend +n En $atend +_o oU +p pi: +q kju: +r ar +s Es +t ti: $atend +u ju: +v vi: +w d'O#b@lju: +x Eks +y waI +z zEd +_á eI||f0d[@ +_é i:||f0d[@ +_ó o:||f0d[@ +_ú ju:||f0d[@ + +_#32 spA:s + + +// accent names + +// names of symbols +ª_. pO#nk +_, k0m@ +_; semI +_: ko:l0n +_! Skre:@x +_? kESt +_' u:sx0m@ +. pO#nk +% f@i:nge:@d[ + + +// numbers +_0 @nA:idZ +_1 @h'e:n +_2 @d['o: +_3 @tSR'i: +_4 @k'ah@r +_5 @ku:Ig +_6 @S'e: +_7 @S0xt[ +_8 @h'0xt[ +_9 @n@@'i: +_1X @dZ'E +_11 e:@nde:@g +_12 d[o:je:@g +_13 tr'i:de:@g +_14 kah@rde:@g +_15 ku:igde:@g +_16 Se:de:@g +_17 S0xtde:@g +_18 O#xtde:@g +_19 ni:de:@g +_20 fICe +_2X fiCE +_3X trO#x@ +_31 trO#x@he:@n + _40 d[0C@d + _4X d[0C@d@ + _41 d[0C@dahe:@n + _5X k@e:@g@ + _51 k@e:@g@he:@n +_6X Sask@ +_61 Sask@he:@n +_7X S0xto: +_71 S0xt[o:he:@n +_8X O#Xto: +_81 O#xt[o:he:@n +_9X no:x@ +_91 no:x@he:@n +_0C ke:@d[ +_1C0 ke:@d[ // exactly one hundred +_1C ke:@d[ +_101 ke:@d[@he:@n +_2C ga:Ce:@d[ +_3C tri:Ce:@d[ +_4C kEr@ke:@d[ +_5C ku:igce:@d[ +_6C Se:ke:@d[ +_7C S0xtge:@d[ +_8C O#xtg'e:@d[ +_9C ni:ge:@d[ +_0M1 mi:lE +_1M1 m'i:lE +_2M1 gA:vi:lE +_2001 gA:vi:lEs@he:@n +_2002 gA:vi:lEs@d['o: +_2003 gA:vi:lEs@tr'i: +_2004 gA:vi:lEs@kah@r +_2005 gA:vi:lEs@ku:ig +_0M2 mIlu:n +_1M2 'milu:n +_2M2 d[A:vIlu:n +_3M2 tri:vilu:n +_4M2 kEr@milu:n +_0M4 _bilu:n +_1M4 'bilu:n +_2M4 gA:vilu:n +_3M4 tri:vilu:n +_4M4 kEr@vilu:n + +_0and Is +_dpt pO#nk +//_roman Rom'ano + +//delete + + +// words +a @ +abhaile @w'0l;E +ach 0x $u +ag Eg $verbf $u +anall @n'aUl +aige @g'E +air Er +acu 0k'U +ar Er $u +arsa @rs@ +agaibh 0g@Iv +agus 0g@s +amach @m'0x +amárach @m'A:r@x +amuigh @mu1'I +amháin @w'A:in +am aUm +an @n +anois @nIS +anonn @naUn +ann aUn +anseo @nS'O +aodh e: +aodha e: +aon e:@n +(ar ais) Er'aS +arís @r'i:S +as 0s +atá @t['A: $u +baill bu1'i:l +bhaill vu1'i:l +beidh bEg +bhfuil w'Il +bhuel w'El +ceithre kEr@ +cathair k'0h@r +chathair x'0h@r +clainne kl'InE +chlainne xl'InE +chun xUn $u +crainn kri:n +de dE $u+ +des dEs $u + +dhaoibh ji:v +di dI $u+ +do dO# $u +domhnach d[aUn@x +domhnaigh d[aUnig +eile 'El@ +euro ju:ro: +faic f@ak + faide f@Id[E +faigh faIg + feadh fag +fear f'ar +gcathair g0h@r +gan g0n $u + gheall jaUl + (go raibh maith) g@r@m0h + (go raibh míle) g@r@mi:l@ +gur gUr $u +i I $u +in In $u +ina In@ $u +ins Ins $u + inniu Inj'u:v + irish _^_EN + is 'Is $u + (is ea) IS'a + isteach IstS'0x + iúl ju:l + laoghaire li:@r@ +le lE $u + leí le:i: +(maigh eo) mu1'i:||'o: +(muigheo) mu1'i:||'o: +mhuigh vu1'i: +(mhaigh eo) vu1'i:||'o: +maith m'0 +mhaith w'0 + mbeadh m;O#X +mo mO# $u +mura mUr@ $u +ná nA: $u + nigh ni: + níorbh ni:rv + nó nu: $u + nollag n@l@g + nolaig nO#lig +Oirghiall 'Err@X@l +orthu O#rhu +os o:s +rabh raU +raibh rEv +réamhrá r'e:@vr,a: +réidh re: +samhain saUIn + san s@n + seo S@_ + tabhair t'u:@r + (tiocfaidh ár lá) tSO#ki:|'A:r|l'A: + + // temporary fix for NO#DA punctuation +dot pO#nk +comma k0m@ +dash flESki:n +tick u:@sx0m@ +space spA:s + \ No newline at end of file diff --git a/dictsource/ga_rules b/dictsource/ga_rules new file mode 100644 index 00000000..af166ccb --- /dev/null +++ b/dictsource/ga_rules @@ -0,0 +1,492 @@ + +// translation rules for Irish Gaeilge +// This file is UTF-8 encoded +// written by Ronan McGuirk January 2013 +// Version 2.5B + +// Conditional rules +// ?1 allow eclipsis as 2 separate words + +.L01 e i é í // slender vowels +.L02 c ch d g gh n s // following ea gets ; sounds +.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 +.L07 b c g ch bh gh mb +.L08 lc ll nt bhse // for words like cailc +.L09 cl cr chr f +.L10 c ch p ph gl ghl +.L11 c dh gh the s nn nne nt tiúil tiúla tíochta theoir theora ste steach ll llí llín g gí mse // word endings preceded by ai +.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 +.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 +.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 +.L23 ea eo i +.L24 b mb bh g gh p ph bp m mh + +.group a + a 0# + a (_ @ + adh (a aI // words like radharc + adh (C aI + abht aU#t[ + amhr aUr // words like amhras + K) amhl aUl + abhra aUr@ // 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 @ // words like féach + X) a (nn_ aU# + X) a (ll_ aU# + abha aU@ + am (pla aUm + ama (_ aU#m@ + athair 'ah@r + _) amh aU + agha aI@ + agh (d aI + agh (s aI + _) ath 0h + + ai (m_ @ + aí i: + aoi @i: + _) aoi i: + ath) aoi (r 'i:@ + r) aoi (nín 'e:@ + aoicht (_ 'i:@xt[ + C) ao (C @e:@ + _L24) ao (C w'e:@ + C) ao (th_ @e: + b) ao (++ we:@ + b) ao (th_++ we: + ao @e + _) ao e: + ae e: + amhna (_ aUn@ + + +.group á + á A: + @) á ,A: + ádh A: + áthair (_ A:h@r + áthar A:h@r + ái (p A: + áinig A:nIg + ái 'A:i + + +.group ai + ai a# + L04) ai (L17 0# + aile (_ '0l;E // words like baile + Xc) ai (l '0# + ch) ai (l '0# + m) ai (n 0# + c) ai (th 0# + ch) ai (th 0# + ai (d 0# + p) ai (l 0# + @) ai (L11_ I + ai (L08+ aI# + c) ai (l_ I + ai (msi 'aI // words like aimsir + _L04) ai (L18_++ u1'I//words like bain + c) ai (t_ u1'I + s) ai (bh E + aighre aIr@ + X) aigh 'aI + aigh aI# L04) aill (_ wi:l + aing (_ Ing + + +.group b + b b // broad + L01) b b; // slender + b (L22 bj //slender + bh v // broad + bh (_ vv + bh (L22 vj // slender + L01) bh v +?1 _m_) b (@ + _) bhf v // urú broad + _) bhf (L22 v; // urú slender + _) bp b // urú broad + _) bp (L01 b; // urú slender +?1 _) bh (_f v // urú broad +?1 _) bh (_fL22 v; // urú slender +?1 _) b (_p b // urú broad +?1 _) b (_pL01 b; // urú slender + a) bh (a U // for example cabhair + ear) bha u: // words like Cearbhall + bhfaigh v'aI + + +.group c + c k + c (L01 k; // slender + ch x + ch (L01 C; + ch (é+ C; + ch (ei+ x; +?1 _g_) c (@ +?1 _g_) c (L01 + _) cabhr k'aUr + _) chabhr x'aUr + + +.group d + d d[ // broad + L01) d dZ // slender + d (L22 dZ // slender + d (L01 d; // slender + i) d (i dZ +?1 _n_) d (@ + dh Q // broad + dh (ui Q // broad + dh (ao Q // broad + dh (L01 j // slender + _) dt d[ // broad urú + _) dt (L01 dZ // slender urú +?1 _) d (_t d[ +?1 _) d (_tL01 dZ + _) d' (@P2 d + i) dh (_ g + a) dh (_ X + o) dh (_ X + L19) dh (_ // silent dh at wrd end + Va) dh (_+ + deartháir dr@h'A:r + dheartháir gr@h'A:r + deirfiúr d;r@f'u:r + dheirfiúr g;r@f'u:r + + +.group e + e E# + eá A: + ei E + eidh (C aI + r) ei (m aI + eighea aI + eighea aI + eigh aI + + eo o: + eogh o: + d) eo (ch O# + _) eo (ch O# + s) eo (_ @ + + +.group é + é 'e: + éi 'e: + _) éi (rig aI // words like éirigh + _) éi (rí aI // words like éirí + _) éireoidh aIro:Ig + éacs e:@ks + + +.group ea + ea a# + X) ea (L21_ aU + ea (ltaine aU + g) ea (ll aU + X) ea (ch 0 + _L04) ea (g @ + _L04) ea (dh_ @ + _L04) eagn @gn + L04) eaga (_ @g@ + eaghl aIl + eabhra aUr@ // words like Feabhra + eanbhean 'an@v,an + eadhb aIb + + +.group f + f f // broad + f (L22 f; // slender + fh // silent + fh (éin_ h + fh (L22 ; // slender + @) f (L06_ h +?1 _bh_) f (@ +?1 _bh_) f (L22 ; + + +.group g + g g // broad + g (L01 g; // slender +?1 _n_) g (@ + _) gh Q" + _) gh (L01 Q"j + _) gc g // urú broad + _) gc (L01 g; // urú slender +?1 _) g (_c g // urú broad +?1 _) g (_cL01 g; // urú slender + i) gh (_ g + @C) gh (@ X + _) gn g@n + gh (n X@ + gheobh j'o: + gabh gaU + + +.group h + h h // silent + + +.group i + i I + _) i I + ia i@ + ia (tha i: + io O# + _) io (nadh u:// words like ionadh + _pr) io (n u: + L16) inn (_ i:n + iai i:i + impeall i:mp@l + io (s I //words like fios and liosta + L12) i i // non syllabic short i after long vowel + iú u: + m) i (d_ i: // verb ending + + +.group í + í 'i: + + +.group l + l l // broad + L01) l l; // slender + l (L23 l; //slender + ll l + ll (L23 l; + l (g l@ + l (b l@ + + +.group m + m m // broad + m (L20 m; //slender + mh v + mh (L20 v; // slender + _) mb m // urú + _) mb (L22 m; // urú slender +?1 _) m (_b m // urú +?1 _) m (_bL22 m; // urú slender + _) m (n m@// words like mná + L14) mh v + _) mh (n v@ + léir) mheas vas + r) m @m // words like gorm + + +.group n + n n // broad + n (L01 n; // slender +?1 _) n (_L01 n; + _) nd n // urú + _) nd (L01 n; // urú slender + _) ng n + _) ng (L01 n; +?1 _) n (_d n // urú +?1 _) n (_dL01 n; // urú slender +?1 _) n (_g n +?1 _) n (_gL01 n; + nn n + nn (L01 n; // slender + n (b n@ + n (m n@ + n (bh n@ + n (ch n@ + c) n @n + ch) n @n + + +.group o + o O# + _) o 'O + C) o (cht_ 'O + orn (_ 'Or@n + + _C) omh o: + _CC) omh o: + omha o:@ + omhai o:@ + o (ll_ aU + C) o (nn_ aU + r) o (nn_ O# + C) ogh aU + omhan (_ aU@n + omhain (_ aUIn + odha aU + opaic @pIk + C) odh (_ o: + odl (a O#l + oí i: + + +.group ó + ó 'o: + ómhai o:@ + + +.group oi + oi O + _L15) oi (+ @'I + _) oi (b I + oi (de I + h) oi (b I + _) oi (r I + r) oi I + l) oi (n I + f) oi (lC aI + l) oi (g I + fh) oi (lC aI + s) oi (ls aI# + c) oi (c aI# + oi (nnío @ + oi (mis @ + ois (++ O#S + oill w'i:l + _) oi (leá 'I + oidh aI + oir (_ 'ERR + oigh (ea aI + + +.group p + p p // broad + ph f // broad + p (L22 p; // slender + ph (L20 f; // slender +?1 _b_) p (@ + + +.group r + r r // broad + L01) r R // slender + _) r (L01 R + L12i) r (e_ Z + L12i) r (t_ Z + rr R + rg r@g + 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 + s (L01 S // slender + s (cL01 S + s (CCL01 S // slender + s (pCé s // broad +?1 _t_) s (@ + sh h + sh (CL01 h + sh (L01 h; + s (lL01 S + + +.group t + t t[ // broad + L01) t c // slender + t (í++n tS // slender + t (eo++ tS + t (L01 c // slender +?1 _) t (_L01 c + L01C) t tS // slender after consonant + t (CL01 tS // slender with following consonant before vowels +?1 _d_) t (@ + th h + th (L01 h; + L01C) th h + _) ts t[ // eclipsis broad + _) ts (L01 t; // eclipsis slender +?1 _) t (_s t[ // eclipsis broad +?1 _) t (_sL01 t; // eclipsis slender + L01) th h + taine (_ t[In%E + ao) th (_ + thne (_ h@nE + A) th (_ // silent th at word end + + +.group u + u U# + ua u@ + uai u@ + uai (g ui + uai (d ui + uá u:'A: + ui I + uinn (_ 'i:n + uinti U#'i:ntI + _b) uí wi: + _bh) uí wi: + g) uí wi: + umh u: + L03) ui @I + _d) u (l_ O# + g) ui (gh_ @i: + gh) ui (gh_ @i: + uí i: + uachai 'ux@ + + +.group ú + ú u: + únmh u:nv + + úi (r u: + + +// words which contain j k q v w x y z, speak as English +.group j + j _^_EN + +.group k + k _^_EN + +.group q + q _^_EN + +.group v + v _^_EN + +.group w + w _^_EN + +.group x + x _^_EN + +.group y + y _^_EN + +.group z + z _^_EN + + + + diff --git a/dictsource/hi_list b/dictsource/hi_list index 82eecb20..ee9eb364 100644 --- a/dictsource/hi_list +++ b/dictsource/hi_list @@ -2,47 +2,47 @@ // Numbers // devanagari numbers are changed to latin characters before translation -_0 S'u:n.jV +_0 s'u:n.jV _1 'e:k _2 d'o: _3 t'i:n -_4 c'a:r: -_5 p'a:nc -_6 ch'@2 +_4 c:'a:r: +_5 'pa~c +_6 c#'@2 _7 s'a:t -_8 'a:th. +_8 'a:t.# _9 n'O: ?3 _9 n'aU _10 d'Vs -_11 gj'a:r@2 -_12 b'a:r@2 -_13 t'E:r@2 -_14 ch'O:d@2 -_15 p'Vndr@2 -_16 s'o:l@2 -_17 s'Vt:r@2 -_18 Vth.:'a:r@2 +_11 gj'a:r-ah +_12 b'a:rah +_13 t'e:r@2h +_14 c#'O:d@2h +_15 p'Vndr@2h +_16 s'o:l@2h +_17 sVtr@2h +_18 a:t#:arah _19 Unn'Is _20 b'i:s _21 Ik:'Is _22 b'a:Is -_23 t'e:Is +_23 t'ue:Is _24 c'O:bIs _25 p@c:'Is -_26 ch@bb'i:rs +_26 c#@bb'i:rs _27 s@t:'a:Is -_28 ath:'a:Is -_29 Unt'Is +_28 at#:'a:Is +_29 ,Unt'Is _30 t'i:s _31 Ik@t:'Is -_32 bat:'Is +_32 b'at:'I'S _33 tE~t'Is // E~ ? _34 cO~t'Is _35 pE~t'Is -_36 chaT'tIs +_36 c#aT'tIs _37 sE~t'Is _38 art'Is _39 Unta:l'Is @@ -53,7 +53,7 @@ _42 baIa:l'Is _43 tE~ta:l'Is _44 cO:wa:l'Is _45 paI'nta:l'Is -_46 chhIja:l'Is +_46 c#hIja:l'Is _47 sE~ta:l'Is _48 arta:l'Is _49 'Un^ca:s @@ -63,44 +63,44 @@ _51 Ikj'a:wVn _52 b'a:wVn _53 t'IrpVn _54 c'Ou:wVn -_55 p'achpVn -_56 chh@p:'Vn -_57 sVt:'a:w@n -_58 ath:'a:w@n -_59 Uns'Vth +_55 p'ac#pVn +_56 c#h@p:'Vn +_57 santa:'w@n +_58 at#:a:'w@n +_59 Uns'Vt# -_60 s'a:th. -_61 'Iks@th. -_62 b'a:s@th. -_63 t'Irs@th. -_64 c'O~s@th. -_65 paIns@th. -_66 ch'Ija:s@th. -_67 s'Vrs@th. -_68 ars@th. +_60 s'a:t.# +_61 'Iks@t.# +_62 b'a:s@t.# +_63 t'Irs@t.# +_64 cO:'s@t.# +_65 paI's@t.# +_66 c#'Ija:s@t.# +_67 s'Vrs@t.# +_68 ars@t.# _69 Un@h,at:'Vr: _70 sat:'Vr: -_71 Ikhat:'Vr: +_71 Ik#at:'Vr: _72 b@hat:'Vr: _73 tIhat:'Vr: _74 cO:hat:'Vr: -_75 pach,at:'Vr: -_76 chIhat:'Vr: +_75 pac#,at:'Vr: +_76 c#Ihat:'Vr: _77 s@t@hat:'Vr: -_78 athhat:'Vr: +_78 at#hat:'Vr: _79 ,Un^Ia:s'i: _80 ,Vss'i: -_81 Ikja:s'i: -_82 baIa:s'i: -_83 tIra:s'i: -_84 cO:ra:s'i: -_85 pI'ca:s'i: -_86 chIja:s'i: -_87 sVt:a:s'i: -_88 ath:a:s'i: -_89 nVwa:s'i: +_81 Ikja:s'i +_82 baIa:s'i +_83 tIra:s'i +_84 cO:ra:s'i +_85 pI'ca:s'i +_86 c#Ija:s'i +_87 sVt:a:s'i +_88 at#:a:s'i +_89 nVwa:s'i _90 nVb:'e: _91 Ikj'a:n@we: @@ -108,50 +108,50 @@ _92 b'a:n@we: _93 tIr'a:n@we: _94 cO:r'a:m@we: _95 p@c'a:n@we: -_96 chIj'a:n@we: +_96 c#Ij'a:n@we: _97 s@t:'a:n@we: -_98 ath:'a:n@we: +_98 at#:'a:n@we: _99 nIn^j'a:n@we: _0C s'O: -_0M1 h@z'a:r -_0M2 l'a:kh -_0M3 cr'ore +_0M1 h@J,a:r +_0M2 l'a:k# +_0M3 k@ro:r.V _0M4 'Vr@b -_0M5 kh'Vr@b +_0M5 k#'Vr@b _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? // Single consonants क k@ क़ q@ -ख kh@ +ख k#@ ख़ x@ ग g@ ग़ Q@ -घ gh@ +घ g#@ ङ N@ च c@ -छ ch@ +छ c#@ ज J@ ज़ z@ -झ Jh@ +झ J#@ ञ n^@ ट t.@ -ठ th.@ +ठ t.#@ ड d.@ ड़ r.@ -ढ dh.@ +ढ d.#@ ण n.@ // retroflex n.@ त t@ -थ th@ +थ t#@ द d@ -ध dh@ +ध d#@ न n@ प p@ -फ ph@ +फ p#@ फ़ f@ ब b@ -भ bh@ +भ b#@ म m@ य j@ र r@ @@ -194,19 +194,26 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? ॣ #X2l-: ॐ #X1o~m +_?? Vks.@r +_a ej +_b bi: +_c si: +_d di: +_e i: +_f Ef // Punctuation । dVn.d.V // Pronouns -मैं $u // main: I +मैं $u // main: IrI मुझे $u मेरा $u मेरी $u मेरे $u हम $u // we -हमें $u +हमे $u हमारा $u हमारी $u हमारे $u @@ -234,7 +241,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? इसका $u ये $u // they -इन्हें $u +इन्हें $u इनका $u वह $u // he/she/it @@ -246,7 +253,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? वे $u // they वो $u -उन्हें $u // unheṃ: them +उन्हे $u // unheṃ: them उनका $u उनकी $u उनके $u diff --git a/dictsource/hi_rules b/dictsource/hi_rules index e5cd0291..9144dc17 100644 --- a/dictsource/hi_rules +++ b/dictsource/hi_rules @@ -1,5 +1,5 @@ -// This file is UTF8 encoded +// This file is UTF8 encoded // letter groups: // A vowel letters and vowel signs @@ -28,423 +28,423 @@ // Vowels .group अ - अ V - अ (ह E // (h - अह) अ E + अ V + अ (ह E // (h + अह) अ E .group आ - आ a: + आ a: .group इ - इ I + इ I // इँ i~ // इं i~ .group ई - ई i: - ई (_ i + ई i: + ई (_ i .group उ - उ U + उ U .group ऊ - ऊ u: - ऊं u~ // + anusvara - ऊँ u~ // + candrabinbu + ऊ u + ऊं u~ // + anusvara + ऊँ u~ // + candrabinbu .group ऋ - ऋ rI + ऋ rI .group ऌ - ऌ l- // vocalic l + ऌ l- // vocalic l .group ऍ - ऍ E // candra e + ऍ E // candra e .group ऎ - ऎ e + ऎ e .group ए - ए e: + ए e: .group ऐ - ऐ E: // ?? [aI] [E:] [&:] - ऐं E~ - ऐँ E~ -?2 ऐ aI // ?? [aI] [E:] [&:] + ऐ E: // ?? [aI] [E:] [&:] + ऐं E~ + ऐँ E~ +?2 ऐ aI // ?? [aI] [E:] [&:] .group ऑ - ऑ O // candra O + ऑ O // candra O .group ऒ - ऒ o + ऒ o .group ओ - ओ o: - ओं o~ // +anusvara - ओँ o~ // +candrabindu + ओ o: + ओं o~ // +anusvara + ओँ o~ // +candrabindu .group औ - औ O: // ?? [aU] [O:] - औं O~ // +anusvara - औँ O~ // +candrabindu -?3 औ aU // ?? [aU] [O:] + औ O: // ?? [aU] [O:] + औं O~ // +anusvara + औँ O~ // +candrabindu +?3 औ aU // ?? [aU] [O:] // Vowel Signs .group ा ा a: - ाव aU + ाव aU .group ि - ि I + ि I // िँ i~ // िं i~ .group ी - ी i: - ी (_ i + ी i: + ी (_ i .group ु - ु U + ु u .group ू - ू u: - ूं u~ // or O~ ?? - ूँ u~ + ू u: + ूं u~ // or O~ ?? + ूँ u~ .group ृ - ृ rI + ृ rI .group ॄ - ॄ rI + ॄ rI .group ॅ - ॅ E + ॅ E .group ॆ - ॆ e + ॆ e .group े - े e: + े e: .group ै - ै E: // ?? [aI] [E:] [&:] - ैं E~ - ैँ E~ -?2 ै aI // ?? [aI] [E:] [&:] + ै E: // ?? [aI] [E:] [&:] + ैं E~ + ैँ E~ +?2 ै aI // ?? [aI] [E:] [&:] .group ॉ - ॉ O + ॉ O .group ॊ - ॊ o + ॊ o .group ो - ो o: - ों o~ - ोँ o~ + ो o: + ों o~ + ोँ o~ .group ौ - ौ O: // [O:] or [aU] ?? - ौं O~ - ौँ O~ -?3 ौ aU // [O:] or [aU] ?? + ौ O: // [O:] or [aU] ?? + ौं O~ + ौँ O~ +?3 ौ aU // [O:] or [aU] ?? .group ॢ // vowel sign l - ॢ l- + ॢ l- .group ॣ // vowel sign ll - ॣ l-: + ॣ l-: .group ॐ - ॐ o~m + ॐ o~m // Consonants .group क - क kV - क (B k - क (्य k: - क़ qV - क़ (B q + क kV + क (B k + क (्य k: + क़ qV + क़ (B q .group ख - ख khV - ख (B kh - ख़ xV - ख़ (B x + ख k#V + ख (B k# + ख़ xV + ख़ (B x .group ग - ग gV - ग (B g - ग़ QV - ग़ (B Q + ग gV + ग (B g + ग़ QV + ग़ (B Q .group घ - घ ghV - घ (B gh + घ g#V + घ (B g# .group ङ - ङ NV - ङ (B N - ्) ङ (_ N@ + ङ NV + ङ (B N + ्) ङ (_ N@ .group च - च cV - च (B c - च (्य c: + च cV + च (B c + च (्य c: .group छ - छ chV - छ (B ch + छ c#V + छ (B c# .group ज - ज JV - ज (B J - ज़ zV - ज़ (B z + ज JV + ज (B J + ज़ zV + ज़ (B z .group झ - झ JhV - झ (B Jh + झ J#V + झ (B J# .group ञ - ञ n^V - ञ (B n^ - ्) ञ (_ n^ + ञ n^V + ञ (B n^ + ्) ञ (_ n^ .group ट - ट t.V - ट (B t. - ट (्य t.: + ट t.V + ट (B t. + ट (्य t.: .group ठ - ठ th.V - ठ (B th. + ठ t.#V + ठ (B t.# .group ड - ड d.V - ड (B d. + ड d.V + ड (B d. - ड़ r.V - ड़ (B r. + ड़ r.V + ड़ (B r. .group ढ - ढ dh.V - ढ (B dh. - ढ़ r.hV // nukta (should retroflex flap) - ढ़ (B r.h // nukta + ढ d.#V + ढ (B d.# + ढ़ r.hV // nukta (should retroflex flap) + ढ़ (B r.h // nukta .group ण - ण n.V // (temporary) same as dental [n] - ण (B n. - ्) ण (_ n.@ + ण n.V // (temporary) same as dental [n] + ण (B n. + ्) ण (_ n.@ .group त - त tV - त (B t - त (्य t: + त tV + त (B t + त (्य t: .group थ - थ thV - थ (B th + थ t#V + थ (B t# .group द - द dV - द (B d + द dV + द (B d .group ध - ध dhV - ध (B dh + ध d#V + ध (B d# .group न - न nV - न (B n - ्) न (_ n@ - र्) न (_ n // r +virama + न nV + न (B n + ्) न (_ n@ + र्) न (_ n // r +virama .group ऩ - ऩ n: // should this be a long [n] ? + ऩ n: // should this be a long [n] ? .group प - प pV - प (B p - प (्य p: + प pV + प (B p + प (्य p: .group फ - फ phV - फ (B ph - फ़ fV - फ़ (B f + फ p#V + फ (B p# + फ़ fV + फ़ (B f .group ब - ब bV - ब (B b + ब bV + ब (B b .group भ - भ bhV - भ (B bh + भ b#V + भ (B b# .group म - म mV - म (B m - ्) म (_ m@ - र्) म (_ m // r +virama - न्) म (_ m // n +virama + म mV + म (B m + ्) म (_ m@ + र्) म (_ m // r +virama + न्) म (_ m // n +virama .group य - य jV - य (B j - ्) य (_ j@ + य j@ + य (B j + ्) य (_ j@ .group र - र rV - र (B r - ्) र (_ r@ + र rV + र (B r + ्) र (_ r@ .group ऱ // rra - ऱ rV // (temporary) same as [r] - ऱ (B r - ्) ऱ (_ r@ + ऱ rV // (temporary) same as [r] + ऱ (B r + ्) ऱ (_ r@ .group ल - ल lV - ल (B l - ्) ल (_ l@ + ल lV + ल (B l + ्) ल (_ l@ .group ळ - ळ l.V - ळ (B l. - ्) ळ (_ l.@ + ळ l.V + ळ (B l. + ्) ळ (_ l.@ .group ऴ - ऴ l.V // (temporary) same as [l.] - ऴ (B l. - ्) ऴ (_ l.@ + ऴ l.V // (temporary) same as [l.] + ऴ (B l. + ्) ऴ (_ l.@ .group व - व vV - व (B v - _) व wV - _) व (B w - _) व (् v // +virma + व vV + व (B v + _) व wV + _) व (B w + _) व (् v // +virma .group श - श SV - श (B S + श SV + श (B S .group ष - ष s.V //?? or retroflex [S] - ष (B s. //?? + ष s.V //?? or retroflex [S] + ष (B s. //?? .group स - स sV - स (B s + स sV + स (B s .group ह - ह HV - ह (B H + ह HV + ह (B H // nukta, modifies a consonant .group ऽ // avagraha, lengthens a vowel ?? - ऽ : + ऽ : .group ँ - ँ n // candrabindu + ँ n // candrabindu -.group ं - ं n // anusvara - ं (प m - ं (फ m - ं (ब m - ं (भ m - ं (म m +.group ं + ं n // anusvara + ं (प m + ं (फ m + ं (ब m + ं (भ m + ं (म m - ं (ट n. - ं (ठ n. - ं (ड n. - ं (ढ n. - ं (ण n. + ं (ट n. + ं (ठ n. + ं (ड n. + ं (ढ n. + ं (ण n. - ं (च n^ - ं (छ n^ - ं (ज n^ - ं (झ n^ - ं (ञ n^ - ं (य n^ + ं (च n^ + ं (छ n^ + ं (ज n^ + ं (झ n^ + ं (ञ n^ + ं (य n^ - ं (क N - ं (ख N - ं (ग N - ं (घ N - ं (ङ N - ं (ह N + ं (क N + ं (ख N + ं (ग N + ं (घ N + ं (ङ N + .group ः - ः H // visarga + ः H // visarga .group ् // virama - ् +् // Extra consonants .group क़ // qa - क़ qV - क़ (B q + क़ qV + क़ (B q .group ख़ // khha - ख़ xV - ख़ (B x + ख़ xV + ख़ (B x .group ग़ // ghha - ग़ QV - ग़ (B Q + ग़ QV + ग़ (B Q .group ज़ // za - ज़ zV - ज़ (B z + ज़ zV + ज़ (B z .group ड़ // dddha (should retroflex flap) - ड़ r.V - ड़ (B r. + ड़ r.V + ड़ (B r. .group ढ़ // rha (aspirated version of dddha) - ढ़ r.hV - ढ़ (B r.h + ढ़ r.hV + ढ़ (B r.h .group फ़ // fa - फ़ fV - फ़ (B f + फ़ fV + फ़ (B f .group य़ // yya - य़ jV - य़ (B j + य़ jV + य़ (B j .group ॠ // rr - ॠ V-rr + ॠ V-rr .group ॡ // ll - ॡ l-: // long syllabic l + ॡ l-: // long syllabic l // If we find a Latin letter a-z, then translate as English // (This is now done automatically by the eSpeak program) .group o - o _^_EN - D__) of (__D    me + o _^_EN + D__) of (__D    me .group - $ dOlV - % pVsEnt + $ dOlV + % pVsEnt diff --git a/dictsource/hu_list b/dictsource/hu_list index fe8aa7ab..9ebe03be 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -409,9 +409,9 @@ _tld tildE // characters _#9 tAb -_#32 so:kYz +_#32 s'o:kYz _cap n'AJ_| -_?? kAR2AktEr||ko:d // unknown characters (change this) +_?? kAR2AktEr // unknown characters (change this) // Abbreviations @@ -5382,7 +5382,7 @@ _¤ pe:nznEmjEl ® bEjEJzEt: ™ ve:djEJ _` tompA -_  so:kYz +_  s'o:kYz _« bElSY:|bAl|ide:zY:jEl _» bElSY:|jobb|ide:zY:jEl _­ la:JkYtY:jEl @@ -5423,8 +5423,10 @@ _¡ AlSo:indEks // Alphabets _ar 'AR2Ab -_cry ts'iR2ill +_cyr ts'iR2ill _he h'e:bER2 +_zh k'i:nAi +_braille bR2Ail:E // Main Exceptions List diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 11bc6c54..d2672bb4 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -173,6 +173,8 @@ nyargon) c (cs ts udvaron) c (ser ts pere) c (cs ts licen) ccs ts|tS + nyol) c (csat ts + pokró) c (sá ts .group ch anar) ch (i h @@ -452,6 +454,14 @@ szomszé) d (sor d herná) d (sz d szaba) d (szent d for) d (jános d + egye) d (szám d +shetlan) d (szige d + szaba) d (szem d + _tren) dsz (e d|s + vakon) d (sz d + vé) d (jeggy d + své) d (zseb d + csalá) d (szer d .group dz fogó) dz (kod ts @@ -502,6 +512,7 @@ kapáló) dz z gyűrű) dz (ik z burkoló) dz z + .group e e E 000_-) el (_ REl // double R for 1000-el @@ -630,6 +641,13 @@ szentsé) g (gy g világossá) g (gy g vilá) g (gy g virá) g (gy g +csilla) g (gy g +édessé) g (gy g + ge) g (gyár g + han) g (gy g +hazugsá) g (gy g + tőze) g (gy g +doppin) g (gy g .group gy gy J @@ -1005,7 +1023,11 @@ szivárvá) ny (játsz n^ utá) n (nyom n verse) ny (játék n^ _elle) n (jav n -vagyo) n (jog n + vagyo) n (jog n + nny (elv n|n^ + haszo) n (jár n +boszorká) ny (jelet n^ + káno) n (jog n .group o o o @@ -1065,7 +1087,7 @@ vagyo) n (jog n s S s (-sz s: //if have the - character the next word part beginning with sz, always need spokening s: phoneme s-) sz //but not need spokening second sz phoneme -dns-) sz s + dns-) sz s föld) s (ánc S ?1 hel) s (inki z ki) s (ebb SS @@ -1147,6 +1169,9 @@ _tetszé) s S ki) s (sziget S ki) s (szőlő S körö) s (szeg S +kolbászo) s S +feldolgozá) s S + _ki) s (szín S .group ss ssz ss2 @@ -1641,9 +1666,47 @@ _kemene) ssz Ss _szamo) ssz Ss _szilvá) ssz Ss _vámo) ssz Ss -keresé) ssz Ss -cipő) ssz Ss -szorongá) ssz Ss +keresé) ssz Ss + cipő) ssz Ss +szorongá) ssz Ss +alkalmazá) ssz Ss + kezdé) ssz Ss + edzé) ssz Ss + egye) ssz (ám Ss +felsorolá) ssz Ss + ssz (ürk Ss + ssz (őke Ss +formán) ssz (int Ss + hami) ssz (ín Ss + mászá) ssz (erű Ss + hárma) ssz Ss + hívá) ssz Ss +hivatkozá) ssz Ss + leve) ssz Ss + _hú) ssz (öv Ss +ismétlé) ssz Ss + járá) ssz Ss +kattintá) ssz Ss + _ki) ssz (öv Ss +közlekedé) ssz Ss + laká) ssz Ss + légzé) ssz Ss + _le) ssz (ab Ss +meglepeté) ssz Ss + nyila) ssz Ss +pszichológu) ssz Ss + ráko) ssz Ss + ritmu) ssz Ss + rúzso) ssz Ss + stílu) ssz Ss + víru) ssz Ss +szállodá) ssz Ss + taxi) ssz Ss + ugrá) ssz Ss +üstökö) ssz Ss +visszaélé) ssz Ss + esé) ssz (erű Ss + webe) ssz Ss .group sz sz s @@ -1685,7 +1748,7 @@ fáklyá) sz (ene Sz para) szt (segg st azbe) szt (sisak st nyu) szt (süveg st - serté) szs (ír SZ + serté) szs (ír S|Z tá) szs (in SZ va) szs (ír SZ szs (ák SZ //All szsák part containing part need spokening single S and Z phoneme, for example kenyereszsák, pénzeszsák, krumpliszsák, cukroszsák words @@ -1700,6 +1763,12 @@ fáklyá) sz (ene Sz para) szts (üte st|S para) sztsz (ag st|s para) szts (uhan st|S + sz (avar S|z + pénze) sz (k s +ellenállá) sz (ón Sz + ré) sz (árás Sz + _te) szts (or st|S + serté) szs (ir S|Z .group t t t @@ -1843,7 +1912,9 @@ szögle) t (szob t vizi) t (szob t zár) t (szék t szé) t (szortír t -_robo) t (szoftve t + _robo) t (szoftve t + diva) t (cirk t + álla) t (cirk t .group tj C) tj c @@ -1930,7 +2001,8 @@ természe) tj (og tj _tisztele) tj (el tj zené) tj (átsz tj szen) tj (akab tj -közérze) tj (aví tj +közérze) tj (aví tj + ké) tj (átszm tj .group ts ts (_S2 tS //general rule with word end of ts letters @@ -2145,8 +2217,10 @@ felira) ts (áv t|S pö) tsz (en ts: _á) tsz (orult t|s leme) tsz (vén ts -_cha) tsz (ob t|s -robo) ts (of t|S + _cha) tsz (ob t|s + robo) ts (of t|S +merényle) ts (or t|S + .group tt tt t: @@ -2412,6 +2486,8 @@ csatlako) z (tok s tí) z (sáv z _tí) z (shill z topá) z z + dör) zsz (ör Z|z + raj) z (sabl z .group $ dolla:R2 diff --git a/dictsource/ka_rules b/dictsource/ka_rules index 729321d4..d1f35a70 100644 --- a/dictsource/ka_rules +++ b/dictsource/ka_rules @@ -139,14 +139,14 @@ ჺ // For cyrillic characters (U+0400 to U+04FF) use Russian voice -.group 0xd0 - 0xd0 _^_RU -.group 0xd1 - 0xd1 _^_RU -.group 0xd2 - 0xd2 _^_RU -.group 0xd3 - 0xd3 _^_RU +//.group 0xd0 +// 0xd0 _^_RU +//.group 0xd1 +// 0xd1 _^_RU +//.group 0xd2 +// 0xd2 _^_RU +//.group 0xd3 +// 0xd3 _^_RU .group $ dolari diff --git a/dictsource/kn_list b/dictsource/kn_list index 11760945..7d3ffb92 100644 --- a/dictsource/kn_list +++ b/dictsource/kn_list @@ -39,29 +39,29 @@ _?? aks.ara // 'unknown character' // letter names ಕ್ ik -ಖ್ ikh +ಖ್ ik# ಗ್ ig -ಘ್ igh +ಘ್ ig# ಙ್ iN ಚ್ ic -ಛ್ ich +ಛ್ ic# ಜ್ iJ -ಝ್ iJh +ಝ್ iJ# ಞ್ in^ ಟ್ it. -ಠ್ ith. +ಠ್ it.# ಡ್ id. -ಢ್ idh. +ಢ್ id.# ಣ್ in. ತ್ it -ಥ್ ith +ಥ್ it# ದ್ id -ಧ್ id. +ಧ್ id# ನ್ in ಪ್ ip -ಫ್ iph +ಫ್ ip# ಬ್ ib -ಭ್ ibh +ಭ್ ib# ಮ್ im ಯ್ ij ರ್ ir @@ -101,17 +101,17 @@ U+ccd vattu // symbols % pratis.ata -! a:scharjachinhe +! a:sc#arjac#inhe _? aks.ara . pu:rn.avira:ma , alpavira:ma ¼ ka:lu -½ ardha +½ ard#a ¾ mukka:lu -(1 / 2) ardha +(1 / 2) ard#a (1 / 4) ka:lu (3 / 4) mukka:lu -÷ bha:ga:ka:ra +÷ b#a:ga:ka:ra & mattu @@ -125,8 +125,8 @@ _5 'aIdu _6 'a:ru _7 'e:l.u _8 'ent.u -_9 'ombath:u -_1X h'ath:u +_9 'ombat#:u +_1X h'at#:u _11 hann'ondu _12 han:erad.u _13 hadim'u:ru @@ -135,93 +135,93 @@ _15 hadinaIdu _16 hadina:ru _17 hadin'e:l.u _18 hadin'ent.u -_19 ha'th:'ombath:u +_19 ha't#:'ombat#:u -_2X Ip:ath:u -_21 'Ip:a'th:ondu -_22 Ip:a'th:erad.u -_23 Ip:a'th:m'u:ru -_24 Ip:a'th:n'a:lku -_25 Ip:a'th:'aIdu -_26 Ip:a'th:a:ru -_27 Ip:a'th:e:l.u -_28 Ip:a'th:ent.u -_29 Ip:a'th:ombath:u +_2X Ip:at#:u +_21 'Ip:a't#:ondu +_22 Ip:a't#:erad.u +_23 Ip:a't#:m'u:ru +_24 Ip:a't#:n'a:lku +_25 Ip:a't#:'aIdu +_26 Ip:a't#:a:ru +_27 Ip:a't#:e:l.u +_28 Ip:a't#:ent.u +_29 Ip:a't#:ombat#:u -_3X m'ovath:u -_31 m'ovath:ondu -_32 m'ovatherad.u -_33 m'ovathm'u:ru -_34 m'ovathn'a:lku -_35 m'ovath'aIdu -_36 m'ovatha:ru -_37 m'ovathe:l.u -_38 m'ovathent.u -_39 m'ovathombath:u +_3X m'ovat#:u +_31 m'ovat#:ondu +_32 m'ovat#erad.u +_33 m'ovat#m'u:ru +_34 m'ovat#n'a:lku +_35 m'ovat#'aIdu +_36 m'ovat#a:ru +_37 m'ovat#e:l.u +_38 m'ovat#ent.u +_39 m'ovat#ombat#:u -_4X n'alavath:u -_41 n'alavath:ondu -_42 n'alavatherad.u -_43 n'alavathm'u:ru -_44 n'alavathn'a:lku -_45 n'alavathaIdu -_46 n'alavatha:ru -_47 n'alavathe:l.u -_48 n'alavathent.u -_49 n'alavathombath:u +_4X n'alavat#:u +_41 n'alavat#:ondu +_42 n'alavat#erad.u +_43 n'alavat#m'u:ru +_44 n'alavat#n'a:lku +_45 n'alavat#aIdu +_46 n'alavat#a:ru +_47 n'alavat#e:l.u +_48 n'alavat#ent.u +_49 n'alavat#ombat#:u -_5X 'aIvath:u -_51 aIvath:ondu -_52 aIvatherad.u -_53 aIvathm'u:ru -_54 aIvathn'a:lku -_55 aIvath'aIdu -_56 aIvatha:ru -_57 aIvathe:l.u -_58 aIvathent.u -_59 aIvathombath:u -_6X 'aravath:u -_61 aravath:ondu -_62 aravatherad.u -_63 aravathm'u:ru -_64 aravathn'a:lku -_65 aravathaIdu -_66 aravatha:ru -_67 aravathe:l.u -_68 aravathent.u -_69 aravathombath:u +_5X 'aIvat#:u +_51 aIvat#:ondu +_52 aIvat#erad.u +_53 aIvat#m'u:ru +_54 aIvat#n'a:lku +_55 aIvat#'aIdu +_56 aIvat#a:ru +_57 aIvat#e:l.u +_58 aIvat#ent.u +_59 aIvat#ombat#:u +_6X 'aravat#:u +_61 aravat#:ondu +_62 aravat#erad.u +_63 aravat#m'u:ru +_64 aravat#n'a:lku +_65 aravat#aIdu +_66 aravat#a:ru +_67 aravat#e:l.u +_68 aravat#ent.u +_69 aravat#ombat#:u -_7X 'Ep:ath:u -_71 Ep:ath:ondu -_72 Ep:atherad.u -_73 Ep:athm'u:ru -_74 Ep:athn'a:lku -_75 Ep:athaIdu -_76 Ep:atha:ru -_77 Ep:athe:l.u -_78 Ep:athent.u -_79 Ep:athombath:u -_8X 'Embath:u -_81 Embath:ondu -_82 Embatherad.u -_83 Embathm'u:ru -_84 Embathn'a:lku -_85 EmbathaIdu -_86 Embatha:ru -_87 Embathe:l.u -_88 Embathent.u -_89 Embathombath:u +_7X 'Ep:at#:u +_71 Ep:at#:ondu +_72 Ep:at#erad.u +_73 Ep:at#m'u:ru +_74 Ep:at#n'a:lku +_75 Ep:at#aIdu +_76 Ep:at#a:ru +_77 Ep:at#e:l.u +_78 Ep:at#ent.u +_79 Ep:at#ombat#:u +_8X 'Embat#:u +_81 Embat#:ondu +_82 Embat#erad.u +_83 Embat#m'u:ru +_84 Embat#n'a:lku +_85 Embat#aIdu +_86 Embat#a:ru +_87 Embat#e:l.u +_88 Embat#ent.u +_89 Embat#ombat#:u -_9X th'ombath:u -_91 th'ombath:ondu -_92 th'ombath:erad.u -_93 th'ombathm'u:ru -_94 th'ombathn'a:lku -_95 th'ombathaIdu -_96 th'ombatha:ru -_97 th'ombathe:l.u -_98 th'ombathent.u -_99 th'ombathombath:u +_9X t#'ombat#:u +_91 t#'ombat#:ondu +_92 t#'ombat#:erad.u +_93 t#'ombat#m'u:ru +_94 t#'ombat#n'a:lku +_95 t#'ombat#aIdu +_96 t#'ombat#a:ru +_97 t#'ombat#e:l.u +_98 t#'ombat#ent.u +_99 t#'ombat#ombat#:u _0C0 n'u:ru _1C0 nu:ru diff --git a/dictsource/kn_rules b/dictsource/kn_rules index f8cd483f..25c21c57 100644 --- a/dictsource/kn_rules +++ b/dictsource/kn_rules @@ -24,16 +24,16 @@ ಕ (B k .group ಖ - ಖ kha - ಖ (B kh + ಖ k#a + ಖ (B k# .group ಗ ಗ ga ಗ (B g .group ಘ - ಘ gha - ಘ (B gh + ಘ g#a + ಘ (B g# .group ಙ ಙ Na @@ -44,8 +44,8 @@ ಚ (B c .group ಛ - ಛ cha - ಛ (B ch + ಛ c#a + ಛ (B c# .group ಜ ಜ Ja @@ -54,8 +54,8 @@ ಜ಼ (B z .group ಝ - ಝ Jha - ಝ (B Jh + ಝ J#a + ಝ (B J# .group ಞ ಞ n^a @@ -66,16 +66,16 @@ ಟ (B t. .group ಠ - ಠ th.a - ಠ (B th. + ಠ t.#a + ಠ (B t.# .group ಡ ಡ d.a ಡ (B d. .group ಢ - ಢ dh.a - ಢ (B dh. + ಢ d.#a + ಢ (B d.# .group ಣ ಣ n.a @@ -86,16 +86,16 @@ ತ (B t .group ಥ - ಥ tha - ಥ (B th + ಥ t#a + ಥ (B t# .group ದ ದ da ದ (B d .group ಧ - ಧ dha - ಧ (B dh + ಧ d#a + ಧ (B d# .group ನ ನ na @@ -106,8 +106,8 @@ ಪ (B p .group ಫ - ಫ pha - ಫ (B ph + ಫ p#a + ಫ (B p# ಫ಼ fa // nukta ಫ಼ (B f @@ -116,8 +116,8 @@ ಬ (B b .group ಭ - ಭ bha - ಭ (B bh + ಭ b#a + ಭ (B b# .group ಮ ಮ ma diff --git a/dictsource/ml_list b/dictsource/ml_list index 76e8de39..586ad83e 100644 --- a/dictsource/ml_list +++ b/dictsource/ml_list @@ -8,8 +8,8 @@ U+d02 'a#m U+d03 visarg@m U+d3d avagraha -U+d4d chandraka:r@m -U+d4e chil.acharam // ?? +U+d4d c#andraka:r@m +U+d4e c#il.ac#aram // ?? ൺ _'yn. // chillu consonants ൻ _in @@ -79,7 +79,7 @@ z zEd & samuccaj@m _. bindu _, aNkuS;@m -_; ro:dhini +_; ro:d#ini _? co:dj@cihn@m _! a:S;c@rjacihn@m @@ -87,33 +87,65 @@ _! a:S;c@rjacihn@m // numbers _0 p'u:Jj@m _1 'onny -_2 r'an.t.y -_3 m'unny +_2 r@n.d#y +_3 m'u:nny _4 n'a:ly _5 'an^cy -_6 'aR2y +_6 'a:R2y _7 'e:r.y _8 'et.t.y _9 'onpaty -_1X p'ati _10 p'atty +_1X p'ati + _11 p'atinonny _12 p'antran.t.y -_15 p'atinan^cy -_16 p'atinaR2y -_17 p'atine:R2y -_18 p'atine:t.t.y _19 p'attompatu -_2X 'irupat -_3X m'uppat -_4X n'a:lppat -_5X 'anpat -_6X 'aR2upat -_7X 'er.upat -_8X 'en.pat -_9X t'on.n.u:R2 +_20 'irup'aty +_2X 'irupatti +_30 m'uppaty +_3X m'uppatti': +_40 n'a:lppaty +_4X n'a:lppatti +_50 'anpaty +_5X 'anpatti +_60 'aR2upaty +_6X 'aR2upatti +_70 'er.'upaty +_7X 'er.'upatti +_80 'en.paty +_8X 'en.patti +_90 t'on.n.u:r: +_9X t'on.n.u:t.t.i + _0C n'u:R -_0M1 'a:jiRam -_0M2 l'aks.am +_1C0 n'u:r: +_1C n'u:t.t.i +_2C0 irunn'u:r +_2C irunn'u:t.t.i +_3C0 munn'u:r +_3C munn'u:t.t.i +_4C0 na:nnu:r +_4C na:nnu:t.t.i +_5C0 'an^cu:r +_5C 'an^cu:t.t.i +_6C0 aR2unu:r +_6C aR2unu:t.t.i +_7C0 'er.'unu:r +_7C 'er.'unu:t.t.i +_8C0 'en.n.u:r +_8C 'en.n.u:t.t.i +_9C0 tol.l.'a:jiRam +_9C tol.l.'a:jiRatti + +_0M1x 'a:jiRam +_0M1 'a:jiRat.t.i +_0M2x l'aks.am +_0M2 l'aks.at.t.i _0M3 k'o:t.i + _dpt _d'aS;a:mS;@m_ + + + + diff --git a/dictsource/ml_rules b/dictsource/ml_rules index c07810dd..3094aba9 100644 --- a/dictsource/ml_rules +++ b/dictsource/ml_rules @@ -1,10 +1,13 @@ -// This file is UTF8 encoded +// This file is UTF8 encoded // Spelling to phoneme rules for Malayalam // A means vowel letters (not vowel signs) // B means a combining vowel sign or a virama +// change (k t. t p) to (g d. d b) if followed by a vowel, unless at start of a word or preceeded by an unvoiced stop consonant ?? +.L01 _ ക് ച് ട് ത് പ് + .replace ൦ 0 // Convert Malayalam numbers @@ -17,266 +20,287 @@ ൭ 7 ൮ 8 ൯ 9 -ോ ോ +ോ ോ ൊ ൊ ൌ ൌ .group ക - ക ka - ക (B k + ക് k + L01) ക ka + L01) ക (B k + ക ga + ക (B g + ക്ക k:a + ക്ക (B k: .group ഖ - ഖ kha - ഖ (B kh + ഖ k#a + ഖ (B k# .group ഗ - ഗ ga - ഗ (B g + ഗ ga + ഗ (B g .group ഘ - ഘ gha - ഘ (B gh + ഘ g#a + ഘ (B g# .group ങ - ങ Na - ങ (B N + ങ Na + ങ (B N .group ച - ച ca - ച (B c + ച ca + ച (B c .group ഛ - ഛ cha - ഛ (B ch + ഛ c#a + ഛ (B c# .group ജ - ജ Ja - ജ (B J + ജ Ja + ജ (B J .group ഝ - ഝ Jha - ഝ (B Jh + ഝ J#a + ഝ (B J# .group ഞ - ഞ n^a - ഞ (B n^ + ഞ n^a + ഞ (B n^ .group ട - ട t.a - ട (B t. + ട് t. + L01) ട t.a + L01) ട (B t. + ട d.a + ട (B d. + ട്ട t.:a + ട്ട (B t.: .group ഠ - ഠ th.a - ഠ (B th. + ഠ t.#a + ഠ (B t.# .group ഡ - ഡ d.a - ഡ (B d. + ഡ d.a + ഡ (B d. .group ഢ - ഢ dh.a - ഢ (B dh. + ഢ d.#a + ഢ (B d.# .group ണ - ണ n.a - ണ (B n. + ണ n.a + ണ (B n. .group ത - ത ta - ത (B t + ത് t + L01) ത ta + L01) ത (B t + ത da + ത (B d + ത്ത t:a + ത്ത (B t: .group ഥ - ഥ tha - ഥ (B th + ഥ t#a + ഥ (B t# .group ദ - ദ da - ദ (B d + ദ da + ദ (B d .group ധ - ധ dha - ധ (B dh + ധ d#a + ധ (B d# .group ന - ന na - ന (B n + ന na + ന (B n .group പ - പ pa - പ (B p + പ് p + L01) പ pa + L01) പ (B p + പ ba + പ (B b + പ്പ p:a + പ്പ (B p: .group ഫ - ഫ pha - ഫ (B p + ഫ p#a + ഫ (B p# -_പ്രൊ) ഫ (സര് fa + _പ്രൊ) ഫ (സര് fa .group ബ - ബ ba - ബ (B b + ബ ba + ബ (B b .group ഭ - ഭ bha - ഭ (B bh + ഭ b#a + ഭ (B b# .group മ - മ ma - മ (B m + മ ma + മ (B m .group യ - യ ja - യ (B j + യ ja + യ (B j .group ര - ര ra - ര (B r + ര ra + ര (B r .group റ - റ R2a - റ (B R2 - ന്) റ d# - റ്റ t.t. // ?? R2R2 = t.t. + റ R2a + റ (B R2 + ന്) റ d2 + റ്റ t.t. // ?? R2R2 = t.t. .group ല - ല la - ല (B l + ല la + ല (B l .group ള - ള l.a - ള (B l. + ള l.a + ള (B l. .group ഴ // retroflex [r.] ? - ഴ r.a - ഴ (B r. + ഴ r.a + ഴ (B r. .group വ - വ va - വ (B v + വ va + വ (B v .group ശ - ശ S;a - ശ (B S; + ശ S;a + ശ (B S; .group ഷ - ഷ s.a - ഷ (B s. + ഷ s.a + ഷ (B s. .group സ - സ sa - സ (B s + സ sa + സ (B s .group ഹ - ഹ ha - ഹ (B h + ഹ ha + ഹ (B h // chillu consonants .group ൺ - ൺ n. + ൺ n. .group ൻ - ൻ n + ൻ n .group ർ - ർ r + ർ r .group ൽ - ൽ l + ൽ l .group ൾ - ൾ l. + ൾ l. .group ൿ - ൿ k + ൿ k .group 0xe0b4 // characters which start with UTF-8 bytes: [e0 b4] - ഽ // avagraha + ഽ // avagraha - ം m // anusvara (this should nasalize the vowel) + ം m // anusvara (this should nasalize the vowel) - ഃ h // visarga + ഃ h // visarga - അ a + അ a - ആ a: + ആ a: - ഇ i + ഇ i - ഈ i: + ഈ i: - ഉ u + ഉ u - ഊ u: + ഊ u: - ഋ Ry + ഋ Ry - എ e - _) എ ;e + എ e + _) എ ;e - ഏ e: - _) ഏ ;e: + ഏ e: + _) ഏ ;e: - ഐ aI + ഐ aI - ഒ o + ഒ o - ഓ o: + ഓ o: - ഔ aU + ഔ aU // combining vowel signs - ാ a: + ാ a: - ി i - ി (ല്K I + ി i + ി (ല്K I .group 0xe0b5 // characters which start with UTF-8 bytes: [e0 b5] - ീ i: + ീ i: - ു u + ു u - ൂ u: + ൂ u: - ൃ r- + ൃ r- - ൄ r-: + ൄ r-: - െ e + െ e - േ e: + േ e: - ൈ aI + ൈ aI - ൊ o + ൊ o - ോ o: + ോ o: - ൌ aU - ൗ aU // au length mark, treat at [aU] ? + ൌ aU + ൗ aU // au length mark, treat at [aU] ? - ് // virama - ൎ // chillu-virama (unofficial) - ്് // espeak uses double-virama for "virama + U+200d" (zero-width joiner), to indicate a chillu character - ് (_ y // epenthetic vowel at end of word + ് // virama + ൎ // chillu-virama (unofficial) + ്് // espeak uses double-virama for "virama + U+200d" (zero-width joiner), to indicate a chillu character + ് (_ y // epenthetic vowel at end of word - ൠ Ry: + ൠ Ry: - ൡ ly: + ൡ ly: .group 0xe0a4 // devanagari - 0xe0a4 _^_HI // switch to hindi voice + 0xe0a4 _^_HI // switch to hindi voice + .group 0xe0a5 // devanagari - 0xe0a5 _^_HI + 0xe0a5 _^_HI .group - $ do:l.ar + $ do:l.ar diff --git a/dictsource/ne_list b/dictsource/ne_list index 8649eb69..301edb57 100644 --- a/dictsource/ne_list +++ b/dictsource/ne_list @@ -30,20 +30,20 @@ _2 d'u:,i: _3 t'i:n _4 c'a:r: _5 p'a:nc -_6 ch'@2 +_6 c#'@2 _7 s'a:t -_8 'a:th. +_8 'a:t.# _9 n'V'u: _10 d'Vs -_11 e:'gh'a:r'V +_11 e:'g#'a:r'V _12 b'a:r@2 _13 t'e:hr@ -_14 ch'O:d@2 +_14 c#'O:d@2 _15 p'Vndr@2 _16 s'o:r@2 _17 s'Vtr@2 -_18 a'th.'a:r@2 +_18 a't.#'a:r@2 _19 U:nn'a:i's _20 b'i:s @@ -52,9 +52,9 @@ _22 b'a:Is _23 t'e:Is _24 c'O:b'Is _25 p@c:'Is -_26 ch@b'b'i:s +_26 c#@b'b'i:s _27 s@t:'a:Is -_28 ath:'a:Is +_28 at#:'a:Is _29 U:n'Vnt'Is _30 t'i:s @@ -63,7 +63,7 @@ _32 b'at:'Is _33 t'e:t't'i:s _34 cO~,t'I:s _35 pE~t'Is -_36 ch@:t't'I:s +_36 c#@:t't'I:s _37 sE~t'Is _38 art'Is _39 U:n'an'c'a:l'i:s @@ -74,9 +74,9 @@ _42 baIa:l'Is _43 t'ri:c'a:l'i:s _44 cO:wa:l'Is _45 paI'nta:l'Is -_46 chhIja:l'Is +_46 c#hIja:l'Is _47 s@'d.cta:l'Is -_48 a'th.'c'a:l'Is +_48 a't.#'c'a:l'Is _49 U'n'an'c'a:s : _50 p@c'a:s @@ -85,20 +85,20 @@ _52 b'a:wVn'n:'V _53 t'rI:p'an'nV _54 c'Ou:wVn'nV _55 p'ac'pVn'nV -_56 chh@p:'Vn'nV +_56 c#h@p:'Vn'nV _57 s'Vn't:'a:w@n'n':V -_58 a'nth:'a:w@n'n':V -_59 U'n'Vn's'a:th.i: +_58 a'nt#:'a:w@n'n':V +_59 U'n'Vn's'a:t.#i: -_60 s'a:th.i: -_61 e:k'as@th.'th.i: -_62 b'E:s@th.':th.'i: -_63 t'r'i:,s@th.'th.'i: -_64 c'O:s@th.'th.'i: -_65 p'E~'s@th.'th.'i: -_66 ch'E's@th.'th.'i: -_67 s'Vt's@th.'th.'i: -_68 a'th.,s@th.'th.'i: +_60 s'a:t.#i: +_61 e:k'as@t.#'t.#i: +_62 b'E:s@t.#':t.#'i: +_63 t'r'i:,s@t.#'t.#'i: +_64 c'O:s@t.#'t.#'i: +_65 p'E~'s@t.#'t.#'i: +_66 c#'E's@t.#'t.#'i: +_67 s'Vt's@t.#'t.#'i: +_68 a't.#,s@t.#'t.#'i: _69 U:n'an's'Vtt'ar'i: _70 s'at't@r'i:: @@ -106,10 +106,10 @@ _71 e:k'ah'at:'Vr: _72 b@h'att'Vr: _73 tIjatt:'Vr: _74 cO:hat:'Vr: -_75 pach,at:'Vr: -_76 ch@'j'ah'at't'Vr: +_75 pac#,at:'Vr: +_76 c#@'j'ah'at't'Vr: _77 s@t@hatt:'Vr: -_78 athhatt:'Vr: +_78 at#hatt:'Vr: _79 U'n'a:s'i: _80 a's's'i: @@ -118,9 +118,9 @@ _82 baIa:s'i: _83 trIj'a:s'i: _84 cO:ra:s'i: _85 p'ac'a:s'i: -_86 ch@j'a:s'i: +_86 c#@j'a:s'i: _87 s'V:t'a:s'i: -_88 a'th.:a:s'i: +_88 a't.#:a:s'i: _89 u:n'a:n'ab'b'e: _90 n@b'b'e: @@ -129,24 +129,24 @@ _92 b'aj'a:n@b'b'e: _93 trIj'a:n@b'b'e: _94 cO:r'a:n@b'b'e: _95 p@n'c'a:n@b'b'e: -_96 ch@j'a:n@b'b'e: +_96 c#@j'a:n@b'b'e: _97 s@n't:'a:n@b'b'e: -_98 a'n'th.'a:n@b'b'e: +_98 a'n't.#'a:n@b'b'e: _99 U:n'n'a:nsh@je: _0C s'aj@ _0M1 h@z'a:r@ -_0M2 l'a:kh@ +_0M2 l'a:k#@ _0M3 k'a'ro:d.@ _0M4 'Vr@b -_0M5 kh'Vr@b'V +_0M5 k#'Vr@b'V _0M6 n'i:l' _0M7 p'Vd'm@ -_0M8 sh'an,kh@ -_0M9 m'ah'a:,sh'ankh@ -_0M10 p@r'a:rrd:dh@ +_0M8 sh'an,k#@ +_0M9 m'ah'a:,sh'ank#@ +_0M10 p@r'a:rrd:d#@ -_dpt _th'o:plo_ +_dpt _t#'o:plo_ // Symbols in Nepali @@ -157,34 +157,34 @@ _dpt _th'o:plo_ // Single consonants क k@ क़ q@ -ख kh@ +ख k#@ ख़ x@ ग g@ ग़ Q@ -घ gh@ +घ g#@ ङ N@ च c@ -छ ch@ +छ c#@ ज J@ ज़ z@ -झ Jh@ +झ J#@ ञ n^@ ट t.@ -ठ th.@ +ठ t.#@ ड d.@ ड़ r.@ -ढ dh.@ +ढ d.#@ ण n.@ // retroflex n.@ त t@ -थ th@ +थ t#@ द d@ -ध dh@ +ध d#@ न n@ प p@ -फ ph@ +फ p#@ फ़ f@ ब b@ -भ bh@ +भ b#@ म m@ य j@ र r@ @@ -222,17 +222,17 @@ _dpt _th'o:plo_ पो $u $pause हो $u $brk के k'e,: $brk -दुःख d'u,,kh@ -सुख s'u=kh@ +दुःख d'u,,k#@ +सुख s'u=k#@ जव J'Vv@ राष्ट्रिय r'a:S,t.rI:j@2 $2 सित s'it@ होइन h'oi:n@2 - भएन bh'Vj'en@2 + भएन b#'Vj'en@2 गएन g'Vj'en@2 - खाएन khaj'en@2 + खाएन k#aj'en@2 दिएन d'ij'en@2 -छुन ch'un'@ +छुन c#'un'@ बाट b'a:t.@ अथवा $pause वा $pause diff --git a/dictsource/ne_rules b/dictsource/ne_rules index 078afbbe..6f36f225 100644 --- a/dictsource/ne_rules +++ b/dictsource/ne_rules @@ -572,13 +572,13 @@ .group ख - ख khV - ख (B kh -?1 ख (_ kh - ्) ख (_ kh@/ - ख (्ख kh, - खँ khV~' - खॅ khV~' + ख k#V + ख (B k# +?1 ख (_ k# + ्) ख (_ k#@/ + ख (्ख k#, + खँ k#V~' + खॅ k#V~' .group ग ग gV @@ -590,13 +590,13 @@ गॅ gV~' .group घ - घ ghV - घ (B gh -?1 घ (_ gh - घ (्घ gh, - ्) घ (_ gh@/ - घँ ghV~' - घॅ ghV~' + घ g#V + घ (B g# +?1 घ (_ g# + घ (्घ g#, + ्) घ (_ g#@/ + घँ g#V~' + घॅ g#V~' .group ङ // Phoneme adjustment suggested @@ -616,12 +616,12 @@ चॅ cV~' .group छ - छ chV - छ (B ch - ्) छ (C ch@ - छ (_ ch@ - छँ chV~' - छॅ chV~' + छ c#V + छ (B c# + ्) छ (C c#@ + छ (_ c#@ + छँ c#V~' + छॅ c#V~' .group ज ज JV @@ -633,12 +633,12 @@ ्) ज (_ J@/ .group झ // Phoneme adjustment suggested. - झ JhV - झ (B Jh - झँ JhV~' - झॅ JhV~' + झ J#V + झ (B J# + झँ J#V~' + झॅ J#V~' झ (्झ J, - झ (_ Jh + झ (_ J# .group ञ // Phoneme adjustment suggested ञ n^V @@ -659,13 +659,13 @@ ट (्य t.: .group ठ - ठ th.V - ठ (B th. - ठँ t.hV~' - ठॅ t.hV~' - ठ (्ठ th., - ्) ठ (_ th.@/ -?1 ठ (_ t.h + ठ t.#V + ठ (B t.# + ठँ t.#V~' + ठॅ t.#V~' + ठ (्ठ t.#, + ्) ठ (_ t.#@/ +?1 ठ (_ t.# .group ड ड d.V @@ -682,14 +682,14 @@ ड़ॅ d.:V~' .group ढ - ढ dh.V - ढ (B dh. - ढँ d.hV~' - ढॅ d.hV~' - ्) ढ (_ dh.@/ -?1 ढ (_ d.h - ढ़ d.hV: // nukta - ढ़ (B d.h // nukta + ढ d.#V + ढ (B d.# + ढँ d.#V~' + ढॅ d.#V~' + ्) ढ (_ d.#@/ +?1 ढ (_ d.# + ढ़ d.#V: // nukta + ढ़ (B d.# // nukta .group ण ण n.V // Phoneme adjustment suggested @@ -709,13 +709,13 @@ ?1 त (_ t, .group थ - थ thV - थँ thV~' - थॅ thV~' - थ (B th - ्) थ (_ th@/ - थ (्य th, -?1 थ (_ th + थ t#V + थँ t#V~' + थॅ t#V~' + थ (B t# + ्) थ (_ t#@/ + थ (्य t#, +?1 थ (_ t# .group द द dV @@ -729,12 +729,12 @@ ्) द (_ d@/ .group ध - ध dhV - धँ dhV~' - धॅ dhV~' - ध (B dh -?1 ध (_ dh - ्) ध (_ dh@/ + ध d#V + धँ d#V~' + धॅ d#V~' + ध (B d# +?1 ध (_ d# + ्) ध (_ d#@/ .group न न nV @@ -763,13 +763,13 @@ ्) प (_ p@/ .group फ - फ phV - फँ phV~' - फॅ phV~' - फ (B ph - फ (्न ph: -?1 फ (_ ph - ्) फ (_ ph@/ + फ p#V + फँ p#V~' + फॅ p#V~' + फ (B p# + फ (्न p#: +?1 फ (_ p# + ्) फ (_ p#@/ .group ब ब bV @@ -781,12 +781,12 @@ ्) ब (_ b@/ .group भ - भ bhV - भँ bhV~' - भॅ bhV~' - भ (B bh -?1 भ (_ bh - भ (्य bh, + भ b#V + भँ b#V~' + भॅ b#V~' + भ (B b# +?1 भ (_ b# + भ (्य b#, ्) भ (_ bh@/ .group म @@ -1064,65 +1064,65 @@ .group [ [ l'eftbr'ak'et - [ (_A th'ul'ok'osht.@2suru - [ (_C th'ul'ok'osht.@2suru - [ (_० th'ul'ok'osht.@2suru - [ (_१ th'ul'ok'osht.@2suru - [ (_२ th'ul'ok'osht.@2suru - [ (_३ th'ul'ok'osht.@2suru - [ (_४ th'ul'ok'osht.@2suru - [ (_५ th'ul'ok'osht.@2suru - [ (_६ th'ul'ok'osht.@2suru - [ (_७ th'ul'ok'osht.@2suru - [ (_८ th'ul'ok'osht.@2suru - [ (_९ th'ul'ok'osht.@2suru + [ (_A t#'ul'ok'osht.@2suru + [ (_C t#'ul'ok'osht.@2suru + [ (_० t#'ul'ok'osht.@2suru + [ (_१ t#'ul'ok'osht.@2suru + [ (_२ t#'ul'ok'osht.@2suru + [ (_३ t#'ul'ok'osht.@2suru + [ (_४ t#'ul'ok'osht.@2suru + [ (_५ t#'ul'ok'osht.@2suru + [ (_६ t#'ul'ok'osht.@2suru + [ (_७ t#'ul'ok'osht.@2suru + [ (_८ t#'ul'ok'osht.@2suru + [ (_९ t#'ul'ok'osht.@2suru .group ] ] r'aitbr'ak'et - A_) ] th'ul'ok'osht.@2b'Vnd@2 - C_) ] th'ul'ok'osht.@2b'Vnd@2 - ०_) ] th'ul'ok'osht.@2b'Vnd@2 - १_) ] th'ul'ok'osht.@2b'Vnd@2 - २_) ] th'ul'ok'osht.@2b'Vnd@2 - ३_) ] th'ul'ok'osht.@2b'Vnd@2 - ४_) ] th'ul'ok'osht.@2b'Vnd@2 - ५_) ] th'ul'ok'osht.@2b'Vnd@2 - ६_) ] th'ul'ok'osht.@2b'Vnd@2 - ७_) ] th'ul'ok'osht.@2b'Vnd@2 - ८_) ] th'ul'ok'osht.@2b'Vnd@2 - ९_) ] th'ul'ok'osht.@2b'Vnd@2 + A_) ] t#'ul'ok'osht.@2b'Vnd@2 + C_) ] t#'ul'ok'osht.@2b'Vnd@2 + ०_) ] t#'ul'ok'osht.@2b'Vnd@2 + १_) ] t#'ul'ok'osht.@2b'Vnd@2 + २_) ] t#'ul'ok'osht.@2b'Vnd@2 + ३_) ] t#'ul'ok'osht.@2b'Vnd@2 + ४_) ] t#'ul'ok'osht.@2b'Vnd@2 + ५_) ] t#'ul'ok'osht.@2b'Vnd@2 + ६_) ] t#'ul'ok'osht.@2b'Vnd@2 + ७_) ] t#'ul'ok'osht.@2b'Vnd@2 + ८_) ] t#'ul'ok'osht.@2b'Vnd@2 + ९_) ] t#'ul'ok'osht.@2b'Vnd@2 .group { { l'eftbr'eIs - { (_A b'a:Ng'ek'oshth.@2suru - { (_C b'a:Ng'ek'oshth.@2suru - { (_० b'a:Ng'ek'oshth.@2suru - { (_१ b'a:Ng'ek'oshth.@2suru - { (_२ b'a:Ng'ek'oshth.@2suru - { (_३ b'a:Ng'ek'oshth.@2suru - { (_४ b'a:Ng'ek'oshth.@2suru - { (_५ b'a:Ng'ek'oshth.@2suru - { (_६ b'a:Ng'ek'oshth.@2suru - { (_७ b'a:Ng'ek'oshth.@2suru - { (_८ b'a:Ng'ek'oshth.@2suru - { (_९ b'a:Ng'ek'oshth.@2suru + { (_A b'a:Ng'ek'osht.#@2suru + { (_C b'a:Ng'ek'osht.#@2suru + { (_० b'a:Ng'ek'osht.#@2suru + { (_१ b'a:Ng'ek'osht.#@2suru + { (_२ b'a:Ng'ek'osht.#@2suru + { (_३ b'a:Ng'ek'osht.#@2suru + { (_४ b'a:Ng'ek'osht.#@2suru + { (_५ b'a:Ng'ek'osht.#@2suru + { (_६ b'a:Ng'ek'osht.#@2suru + { (_७ b'a:Ng'ek'osht.#@2suru + { (_८ b'a:Ng'ek'osht.#@2suru + { (_९ b'a:Ng'ek'osht.#@2suru .group } } r'aItbr'eIs - A_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - C_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ०_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - १_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - २_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ३_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ४_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ५_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ६_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ७_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ८_) } b'a:Ng'ek'oshth.@2b'Vnd@2 - ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 + A_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + C_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ०_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + १_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + २_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ३_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ४_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ५_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ६_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ७_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ८_) } b'a:Ng'ek'osht.#@2b'Vnd@2 + ९_) } b'a:Ng'ek'osht.#@2b'Vnd@2 @@ -1132,19 +1132,19 @@ // Special Symbols with special meanings .group । pur',n.@,w'ir'a:m // Fullstop of Devanagari - ॥ d'i:rgh@,w'ir'a:m // Double Fullstop - means Read sentence twice. + ॥ d'i:rg#@,w'ir'a:m // Double Fullstop - means Read sentence twice. ॱ dVS@mal@w@2 // Decimal of devanagari (dot [.] is mostly used!). ॰ saNks.e:p@s'u:c@k@ - $ dOlV + $ dOlV % prVtish'vt // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! ़ n'u'k't'a: // Name of symbol. ॑ Ud'Vtt,@ - ॓ Ud:dh@r,@n.@a:r'Vmbh@ - ॔ ,Ud:dh@r,@n.@'Vnt@ - ॽ k,@n.th.@w'Ira:m + ॓ Ud:d#@r,@n.@a:r'Vmb#@ + ॔ ,Ud:d#@r,@n.@'Vnt@ + ॽ k,@n.t.#@w'Ira:m ॒ a'n'ud'Vtt,@ diff --git a/dictsource/nl_list b/dictsource/nl_list index 8842911f..26c5dfa1 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -1,6 +1,7 @@ // This file in UTF8 encoded +// $alt2, remove s from plural, remove en from plural // Use $alt3 where 'ng' and 'nk' is 'n+g' not [N] // Letters @@ -1398,6 +1399,7 @@ vondel $alt accessoire aksEsw'ar@ accessoires aksEsw'ar@s actiepunt Aksip8nt +adhesie Ath'e:zi agenda $2 aldus Ald'8s alles Al@s @@ -1436,14 +1438,17 @@ chassis SAs'i chat tSEt check tSEk chiffon Sif'On +cohesie $2 contour ko:nt'ur controle $2 coureur ku:r'Y:r crèches krES@s damascering damA;s'e:rIN december $2 +desillusie dEsIlyzi dieet $2 diesel diz@l +//discussie $2 divers div'Ers diftongering dIft,ON'e:rIN doordat $2 @@ -1452,7 +1457,9 @@ eensgelijks e:nsQ@l'EIks elfstedentocht ,Elf'ste:d@ntoQt embouchuur A~buS'yr // embouchure enorm $2 +erosie e:r'o:zi eucharistie $4 +explosie $2 februari fe:bry'a:ri fiche fiS@ franchise frA'Si:z@ @@ -1470,10 +1477,12 @@ ingevolge $3 ingrediënt $4 ingenieur Inzj@nj'Y:r informatie $3 +invasie $2 januari $3 kadaster $2 mangat $alt3 materie ma:t'e:ri +maatregel ma:tre:Q@l $alt2 maxima $1 meteen mEt'e:n metro me:tro: diff --git a/dictsource/nl_rules b/dictsource/nl_rules index c15ddde1..288abacc 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -4,6 +4,7 @@ // Suffix rule: SUFX_E eg. S2e means double the vowel before the final consonant .L01 g k +.L02 _ t_ d_ de_ den_ // verb endings .group a @@ -65,6 +66,7 @@ &) bare (_S4 =ba:r@ _) bij (C@P3 b'EI bij (zond b%i + _) bijeen bEI'e:n _) binnen (P6 b'In@n _) boven (P5 b'o:v@n _) brand br'And @@ -188,7 +190,8 @@ ig) e (_+S1qd @ ea (_ 'e:a: - eau o: //words with French origin + eau 'o: //words with French origin +// eau (_ 'o: @) ee (_ 'e: @) ee (X_ 'e: @) ee (r_ 'I @@ -214,6 +217,7 @@ &) el (ingen_$p_alt =@l @) elen (_ 'e:l@n + @) el (en_$p_alt2 @L &) elijks @l@ks &) em (_ @m &) e (ment @ @@ -244,18 +248,20 @@ @) ent (st_ 'Ent @) ent (ste_ 'Ent ag) ent 'Ent + X) es (_ Es @j) es (_S1 s @z) es (_S1 s @) es (_S2qd 'Es // double the previous vowel @) es (_$w_alt2S1 s // just remove 's' KAC) es (_S2e @s + es (ie_ e:z @) essen (_S5qd 'Es@n @) eres (_S4qd @r'Es @) eressen (_S7sq @r'Es@n @) etten (_S3 @n @) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. - - eau (_ 'o: + @) esisch 'e:zis + euille @'y eum (_$w_alt 'e:8m @mus) eum (_ ,e:8m // compounds @@ -323,6 +329,7 @@ _) ge (@P2 Q@ ge (bied Q@ _) gee Qe: + _) gei QEI gener (aal Q,e:n@r _) gelijk Q@lEIk _) ge (rC QE @@ -358,11 +365,14 @@ ie i ieuw iw iee ie: + ii i d) ie (_ 'i g) ie (_ 'i m) ie (_ 'i p) ie (_ 'i + ss) ie (_ =i + s) ië (_ =i@ ieus (_ ij'Y:s ieuze (_ ij'Y:z@ ieuzer (_ ij'Y:z@r @@ -386,6 +396,9 @@ ie (CtjeX_ 'i ie (ren_ 'i ie (rd_ 'i + iën (_ 'i@n + CAns) ie (_ =i + CAss) ie (_ =i @) ig (_S2dq =@x @) ige (_S3dq =@Q@ @) igen (_ =@Q@n @@ -402,9 +415,13 @@ &) iko (_ =iko: _) in (C@P2 'In // _) in (gP2 'In + _) in (do In + ine (_ 'in@ + ines (_ 'in@s io (nage iO io (de_ i'o: iodes (_ i'o:d@s + _) in (scrip In is (_ Is @) isch (_ =is @) ische (_ =is@ @@ -519,17 +536,18 @@ _) inn (@P2 'I // ?? inneren @@C) o (_ =o: obsc (u opsk oe (X_ 'u + office Of@s oir (_ 'v#a:r pl) oi (t v#A c) oi (ffu v#A pr) o (gram o: - _) on (@P2 %On oo (X 'o: oon 'o:n // in compounds, eg. telefoongesprek oo (C_ 'o: _) oost (@P4 o:st _) op (@@P2 'Op _) open (@P4 'o:p@n + _) op (enen 'o:p _) openings (P8 'o:p@nINs _) op (era 'o:p _) op (tion Op @@ -545,6 +563,7 @@ _) inn (@P2 'I // ?? inneren .group on + _) on (@P2 %On _) onaan (@P5 On'a:n _) onder (@P5 'Ond@r _) onge (@P4 ,OnQ@ @@ -569,6 +588,7 @@ _) inn (@P2 'I // ?? inneren + .group p p p p) p @@ -618,7 +638,8 @@ _) inn (@P2 'I // ?? inneren A) s (A z s (b z s (d z - sc s + sc (e s + sc (i s sch sx sch (_ s sch (e_ s @@ -628,15 +649,21 @@ _) inn (@P2 'I // ?? inneren sj S @) sje (_ sj@ @) s (_S1 s + a) s (_ s @) s (_$w_alt =s + _) samen(@P5 s'a:m@n + _) scan (L02 skEn + science saI@ns sc (oop sk sc (opi sk &) sel (_ =s@l &) selen (_ =s@l@n + service s8v@s @) si (o S A) si (o Z @) ssi (o S + CAr) sie (_ =zi _) standaard (@P9 st'Anda:rt @) straat (_S6 stra:t @@ -711,6 +738,7 @@ _) inn (@P2 'I // ?? inneren uw (_ yU _) uit (@P3 'Wyt + uul (_ 'yl // from -ule us (_ 8s u (sie_ 'y @) ute (_ 'yt diff --git a/dictsource/pa_list b/dictsource/pa_list index ebbb9966..4c5e41f6 100644 --- a/dictsource/pa_list +++ b/dictsource/pa_list @@ -1,171 +1,241 @@ - -// This file is UTF8 encoded -// Punjabi/Gurmukhi - - -// Numbers -_0 z'iRo -_1 'Ik: -_2 d'o -_3 t'I~n -_4 c'aR -_5 p'VnJ -_6 ch'e -_7 s'Vt: -_8 'Vth.: -_9 n'O~ - -_10 d'Vs -_11 gI'aRa~ -_12 b'aRa~ -_13 t'eRa~ -_14 c'Oda~ -_15 p'Vnd@Ra~ -_16 s'ol.a~ -_17 s@t'aRa~ -_18 Vth.'aRa~ -_19 'Uni - -_20 v'iH -_21 Ik:i -_22 b'ai -_23 t'ei -_24 c'Ovi -_25 p'VnJhi -_26 ch'Vb:i -_27 s@t'ai -_28 Vth.'ai -_29 Un'Vt:i - -_30 t'iH -_31 Ik'Vt:i -_32 b'Vt:i -_33 t'eti -_34 c'O~ti -_35 p'E~ti -_36 ch'Vt:i -_37 s'E~ti -_38 Vth.'Vt:i -_39 Un@t'ali - -_40 c'ali -_41 Ik@t'ali -_42 b@t'ali -_43 t@R@t'ali -_44 cOt'ali -_45 p@nJ@t'ali -_46 chI'ali -_47 s@nt'ali -_48 Vth.:@t'ali -_49 'Un.I~Ja - -_50 p@nJ'aH -_51 'Ik@vI~Ja -_52 b'VvI~Ja -_53 t'VR@vI~Ja -_54 c'VRI~Ja -_55 p'Vc@vI~Ja -_56 ch'VpI~Ja -_57 s'Vt@vI~Ja -_58 'Vth.:@vI~Ja -_59 Un.'ath. - -_60 s'Vth.: -_61 Ik'ath. -_62 b'ath.H -_63 t@R'eth.H -_64 c'Oth.H -_65 p'E~th. -_66 chI'ath. -_67 s@t'aH@th. -_68 Vth.:'ath. -_69 Un.'Vt:@R - -_70 s'Vt:@R -_71 IkH'Vt:@R -_72 b@H'Vt:@R -_73 t@H'Vt:@R -_74 cOH'Vt:@R -_75 p@nJ'Vt:@R -_76 chIH'Vt:@R -_77 s@t'Vt:@R -_78 Vth.'Vt:@R -_79 Un.'asi - -_80 'Vssi -_81 Ik'asi -_82 bI'asi -_83 t@R@'asi -_84 c@R'asi -_85 p@nJ'asi -_86 chI'asi -_87 s@t'asi -_88 Vth.'asi -_89 Un.a~n@v'eN - -_90 n'Vb:e -_91 Ik@'an@v,e~ -_92 bI;'an@v,e~ -_93 t@R@'an@ve~ -_94 c@R'an@ve~ -_95 p@c'an@ve~ -_96 chI'an@ve~ -_97 s@t'an@ve~ -_98 Vth.'an@ve~ -_99 nIR'Vnn@ve~ - -_0C s'O -_0M1 H@J'aR -_0M2 l'Vkh: // 100,000 -_0M3 k'VRoR // 10,000,000 -_0M4 'VR@b // 1,000,000,000 -_0M5 kh'VR@b // 100,000,000,000 - -_dpt _dOth // ?? - - -// character names -ਂ bInd'i -ੰ tIpp'i -ੱ VddVk -ਃ visaRg -੍ hVlVnt -ॄ addak - - -ਅ 'ERV -ੲ 'IRI -ੳ 'URV -_ਆ 'ERV||kVnn'a -_ਇ 'IRI||sIh'aRi -_ਈ 'IRI||bIh'aRi -_ਉ 'URV||'OnkaR -_ਊ 'URV||dUl'EnkaR -_ਏ 'IRI||l'avam -_ਐ 'ERV||dUl'avam -_ਓ 'URV||hoR'a -_ਔ 'ERV||kVnOR'a - -ਾ kVnn'a -ਿ sIh'aRi -ੀ bIh'aRi -ੁ OnkaR -ੂ dUl'EnkaR -ੇ l'ava~ -ੈ d@l'ava~ -ੋ hoR'a -ੌ kVn'ORa - -। d.'Vnd.i -₹ rupi - - -ਸਰਕਾਰ sR@k'aR - ਸਰਕਾਰੀ sR@k'aRi - - -// English words -ਸੋਫਟਵਿਅਰ s'OftwER -ਵੈਬਪੇਜ w'EbpeIdZ -ਈਮੇਲ 'i:meIl -ਕੀਬੋਰਡ k'i:boRd +// This file is UTF8 encoded +// Punjabi/Gurmukhi + +// Numbers +_0 z'iRo +_1 'Ik: +_2 d'o +_3 t'I~n +_4 c'aR +_5 p'VnJ +_6 c#'e +_7 s'Vt: +_8 'Vt.#: +_9 n'O~ +_10 d'Vs +_11 gI'aRa~ +_12 b'aRa~ +_13 t'eRa~ +_14 c'Oda~ +_15 p'Vnd@Ra~ +_16 s'ol.a~ +_17 s@t'aRa~ +_18 Vt.#'aRa~ +_19 'Unni +_20 v'iH +_21 Ik:i +_22 b'ai +_23 t'ei +_24 c'Ovi +_25 p'Vc:i +_26 c#'Vb:i +_27 s@t'ai +_28 Vt.#'ai +_29 Un'Vt:i +_30 t'iH +_31 Ik'Vt:i +_32 b'Vt:i +_33 t'et:i +_34 c'ONti +_35 p'ENti +_36 c#'Vt:i +_37 s'ENti +_38 Vt.#'Vt:i +_39 U~Nt'ali +_40 c'ali +_41 Ik@t'ali +_42 be'ali +_43 t@R@t'ali +_44 cUt'ali +_45 p@nt'ali +_46 c#I'ali +_47 s@nt'ali +_48 ,@R2@t'ali +_49 Un'VnJa +_50 p@nJ'aH +_51 ,@k@v'VnJa +_52 b@v'VnJa +_53 t,@R@v'VnJa +_54 cUR'VnJa +_55 p,@c@v'VnJa +_56 c#@p'VnJa +_57 s,@t@v'VnJa +_58 ,@t.#@v'VnJa +_59 Un.'at.# +_60 s'Vt.#: +_61 Ik'aH@t. +_62 b'aH@t. +_63 t@R'e~H@t. +_64 c'O~H@t. +_65 p'E~H@t. +_66 c#e'aH@t. +_67 s@t'aH@t. +_68 ,@t.#'aH@t. +_69 Un.'Vt:@R +_70 s'Vt:@R +_71 Ik'Vt:@R +_72 b@H'Vt:@R +_73 t@H'et:@R +_74 cOH'Vt:@R +_75 p@J'Vt:@R +_76 c#IH'Vt:@R +_77 s@t'Vt:@R +_78 Vt.#'Vt:@R +_79 Un.'asi +_80 'Vssi +_81 ,IkI;'asi +_82 bI;'asi +_83 t,@RI;'asi +_84 cUR'asi +_85 p@c'asi +_86 c#I;'asi +_87 s@t'asi +_88 Vt.#'asi +_89 Un'an@v,e~ +_90 n'Vb:e +_91 Ik'an@v,e~ +_92 b'an@v,e~ +_93 t@R'a~n@v,e~ +_94 cUR'an@v,e~ +_95 p@c'an@v,e~ +_96 c#I'an@ve~ +_97 s@t'an@ve~ +_98 Vt.#'an@ve~ +_99 n@R2'I~n@v,e~ + +_0C s'O +_0M1 H@J'aR +_0M2 l'Vk#: // 100,000 +_0M3 k'VRoR // 10,000,000 +_0M4 'VR@b // 1,000,000,000 +_0M5 k#'VR@b // 100,000,000,000 + +_dpt _dOt# // ?? + + +// character names +ਂ bInd'i +ੰ tIpp'i +ੱ VddVk +ਃ visaRg +੍ hVlVnt + +ਅ 'ERV +ੲ 'IRI +ੳ 'URV +_ਆ 'ERV||kVnn'a +_ਇ 'IRI||sIh'aRi +_ਈ 'IRI||bIh'aRi +_ਉ 'URV||'OnkaR +_ਊ 'URV||dUl'EnkaR +_ਏ 'IRI||l'avam +_ਐ 'ERV||dUl'avam +_ਓ 'URV||hoR'a +_ਔ 'ERV||kVnOR'a + +ਾ kVnn'a +ਿ sIh'aRi +ੀ bIh'aRi +ੁ OnkaR +ੂ dUl'EnkaR +ੇ l'ava~ +ੈ d@l'ava~ +ੋ hoR'a +ੌ kVn'ORa + + + +// Punctuation +। d.'Vnd.i + +// Pronouns +// ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ +ਮੈਂ $u // main: I +ਮੈਨੂੰ $u +ਮੇਰਾ $u +ਮੇਰੀ $u +ਮੇਰੇ $u + +ਅਸੀਂ $u // we +ਸਾਨੂੰ $u +ਸਾਡਾ $u +ਸਾਡੀ $u +ਸਾਡੇ $u + + +ਆਪ $u // you(formal) +ਆਪਨੂੰ $u +ਆਪਦਾ $u +ਆਪਦੀ $u +ਆਪਦੇ $u + +ਤੂੰ $u // you (informal) +ਤੂਸੀਂ $u // you(formal) +ਤੁਹਾਨੂੰ $u +ਤੁਹਾਡਾ $u +ਤੁਹਾਡੀ $u +ਤੁਹਾਡੇ $u + +ਤੂੰ $u // you (informal) +ਤੈਨੂੰ $u +ਤੇਰਾ $u + +ਇਹ $u // he/she/it +ਇਸਤੋਂ $u +ਇਸਦਾ $u + +ਇਹ $u // they +ਇਨ੍ਹਾਂਨੂੰ $u +ਇਨ੍ਹਾਂਦਾ $u + +ਉਹ $u // he/she/it +ਉਸਤੋਂ $u +ਉਸਦਾ $u +ਉਸਦੀ $u +ਉਸਦੇ $u + +ਉਹ $u // they +ਉਨ੍ਹਾਂਨੂੰ $u // unhannu: them +ਉਨ੍ਹਾਂਦਾ $u +ਉਨ੍ਹਾਂਦੀ $u +ਉਨ੍ਹਾਂਦੇ $u + + + +// Prepositions/Postpositions +ਦਾ $u // dā: of, possessive particle +ਦੀ $u // dī +ਦੇ $u // de + +ਨੂੰ $u // nu: to +ਤੱਕ $u // tak: until, for(time) +ਬਿਨਾ $u $pause // without (preposition) +ਵਿਚ $u // in +ਵਿੱਚ $u // in +ਤੋਂ $u // ton: from, with, by + + + +// Verbs +ਹਾਂ $u // to be +ਹੋ $u +ਹੈ $u +ਹੈਂ $u +ਹਨ $u + +ਸੀ $u // si: past aux +ਸਨ $u // san: past aux + +ਰਹਾ $u // rahā: continuous +ਰਹੇ $u // rahe +ਰਹੀ $u // rahī + + + +$textmode +ਸੋਫਟਵਿਅਰ software +ਈਮੇਲ email +ਕੀਬੋਰਡ keyboard +ਬੋਰਡ board +$phonememode + diff --git a/dictsource/pa_rules b/dictsource/pa_rules index cfab4d6b..04b7cc58 100644 --- a/dictsource/pa_rules +++ b/dictsource/pa_rules @@ -176,12 +176,12 @@ ੱ) ਕ (_ k: .group ਖ - ਖ khV - ਖ (B kh - @) ਖ (_ kh - ੱ) ਖ kh:V - ੱ) ਖ (B kh: - ੱ) ਖ (_ kh: + ਖ k#V + ਖ (B k# + @) ਖ (_ k# + ੱ) ਖ k#:V + ੱ) ਖ (B k#: + ੱ) ਖ (_ k#: .group ਗ ਗ gV @@ -192,9 +192,9 @@ ੱ) ਗ (_ g: .group ਘ - ਘ ghV - ਘ (B gh - @) ਘ (_ gh + ਘ g#V + ਘ (B g# + @) ਘ (_ g# _) ਘ k+V // high tone _) ਘ (B k+ @@ -215,12 +215,12 @@ ੱ) ਚ (_ c: .group ਛ - ਛ chV - ਛ (B ch - @) ਛ (_ ch - ੱ) ਛ ch:V - ੱ) ਛ (B ch: - ੱ) ਛ (_ ch: + ਛ c#V + ਛ (B c# + @) ਛ (_ c# + ੱ) ਛ c#:V + ੱ) ਛ (B c#: + ੱ) ਛ (_ c#: .group ਜ ਜ JV @@ -231,9 +231,9 @@ ੱ) ਜ (_ J: .group ਝ - ਝ JhV - ਝ (B Jh - @) ਝ (_ Jh + ਝ J#V + ਝ (B J# + @) ਝ (_ J# _) ਝ c+V _) ਝ (B c+ @@ -254,12 +254,12 @@ ੱ) ਟ (_ t.: .group ਠ - ਠ th.V - ਠ (B th. - @) ਠ (_ th. - ੱ) ਠ th.:V - ੱ) ਠ (B th.: - ੱ) ਠ (_ th.: + ਠ t.#V + ਠ (B t.# + @) ਠ (_ t.# + ੱ) ਠ t.#:V + ੱ) ਠ (B t.#: + ੱ) ਠ (_ t.#: .group ਡ ਡ d.V @@ -270,9 +270,9 @@ ੱ) ਡ (_ d.: .group ਢ - ਢ dh.V - ਢ (B dh. - @) ਢ (_ dh. + ਢ d.#V + ਢ (B d.# + @) ਢ (_ d.# _) ਢ t.+V _) ਢ (B t. @@ -293,12 +293,12 @@ ੱ) ਤ (_ t: .group ਥ - ਥ thV - ਥ (B th - @) ਥ (_ th - ੱ) ਥ th:V - ੱ) ਥ (B th: - ੱ) ਥ (_ th: + ਥ t#V + ਥ (B t# + @) ਥ (_ t# + ੱ) ਥ t#:V + ੱ) ਥ (B t#: + ੱ) ਥ (_ t#: .group ਦ ਦ dV @@ -309,9 +309,9 @@ ੱ) ਦ (_ d: .group ਧ - ਧ dhV - ਧ (B dh - @) ਧ (_ dh + ਧ d#V + ਧ (B d# + @) ਧ (_ d# _) ਧ t+V _) ਧ (B t+ @@ -332,12 +332,12 @@ ੱ) ਪ (_ p: .group ਫ - ਫ phV - ਫ (B ph - @) ਫ (_ ph - ੱ) ਫ ph:V - ੱ) ਫ (B ph: - ੱ) ਫ (_ ph: + ਫ p#V + ਫ (B p# + @) ਫ (_ p# + ੱ) ਫ p#:V + ੱ) ਫ (B p#: + ੱ) ਫ (_ p#: .group ਬ ਬ bV @@ -348,9 +348,9 @@ ੱ) ਬ (_ b: .group ਭ - ਭ bhV - ਭ (B bh - @) ਭ (_ bh + ਭ b#V + ਭ (B b# + @) ਭ (_ b# _) ਭ p+V _) ਭ (B p+ diff --git a/dictsource/pt_list b/dictsource/pt_list index 3f55eae9..dcd1d75d 100644 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -45,6 +45,7 @@ _tld tS'iU _ar 'a*aby _cyr si*'ilikU _he eb*'aIkU +_zh Sin'es // character names @@ -318,18 +319,19 @@ umas $u $nounf // pronouns eu $u+ $verbf -tu $u+ -você vose $u2+ -ele 'ely $u+ -ela $u+ -nós $u+ -vós $u+ -vocês $u2+ -eles $u+ -elas $u+ +tu $u+ $verbf +você vose $u2+ $verbf +ele 'ely $u+ $verbf +ela $u+ $verbf +nós $u+ $verbf +vós $u+ $verbf +vocês $u2+ $verbf +eles $u+ $verbf +elas $u+ $verbf me $u // reflexive -te $u +me $u $verbf +te $u $verbf nos $u $nounf la $u lo $u @@ -631,8 +633,8 @@ abacaxi abakaSy abordo $alt aborto $alt $verb acerto $alt2 $noun -acordo $alt $verb acertos $alt2 +acordo $alt $verb acervo $alt2 adepto $alt adereço $alt2 @@ -643,14 +645,14 @@ alcateia $alt alferes $alt algozes $alt alicerce $alt -almoço $alt $verb +almoço $alt $verb amarelo $alt ameba $alt amores $alt2 +antonieta $alt2 apego $alt2 $noun apelo $alt $verb aposto $alt $verb -apreço $alt2 aperto $alt2 $noun apoio $alt $verb aprovo $alt @@ -662,10 +664,8 @@ ateia $alt aterro $alt2 $noun atmosfera $alt atrozes $alt -austera $alt -austero $alt autora $alt2 -avesso $alt2 +avesso $alt2 axé aSE baqueta $alt2 beco $alt2 @@ -674,6 +674,7 @@ besta $alt2 bilhete $alt2 boca $alt2 bochecha $alt2 +boio $alt bojo $alt2 boleia $alt bolero $alt @@ -690,7 +691,7 @@ cachorra $alt2 caderneta $alt2 camiseta $alt2 cantora $alt2 -capacete $alt2 +capacete $alt2 caractere $alt caramelo $alt careta $alt2 @@ -702,28 +703,27 @@ cateto $alt2 catorze $alt2 cebola $alt2 cefaleia $alt -cerca $alt -cerca $alt2 $noun +cerca $alt +cerca $alt2 $noun cerco $alt $verb -cesta $alt2 -cesto $alt2 chamego $alt2 chefe $alt -checam $alt +checam $alt cheque $alt chinelo $alt choro $alt2 $noun -chovesse $alt2 +chovesse $alt2 chupeta $alt2 clamores $alt2 +clero $alt coco $alt2 cofre $alt -cogumelo $alt +cogumelo $alt coice $alt2 colabore $alt colete $alt2 -colchete $alt2 -colher $alt $verb +colchete $alt2 +colher $alt $noun colheres $alt $noun colmeia $alt colore $alt @@ -733,11 +733,8 @@ concerto $alt2 $noun concordo $alt conforto $alt $verb consolo $alt2 $noun -contivermos $alt -controle $alt2 $noun -controlo $alt2 $noun -copa $alt -copo $alt +controle $alt2 $noun +controlo $alt2 $noun coreia $alt corneta $alt2 cornos $alt @@ -746,24 +743,17 @@ corto $alt corveta $alt2 corvos $alt coto $alt2 -couberdes $alt -coubermos $alt cratera $alt crede $alt2 -cresce $alt -crescem $alt -der $alt -derdes $alt +decore $alt desapego $alt2 $noun descabelo $alt -desce $alt -descem $alt descordo $alt +desemprego $alt2 +desemprego $alt $verb desespero $alt2 $noun desfecho $alt2 -desprezo $alt $verb -deva $alt2 -devo $alt2 +desprezo $alt2 $noun deveras $alt dez $alt diarreia $alt @@ -783,16 +773,13 @@ endereço $alt2 endereço $alt $verb enforco $alt engordo $alt -enumerem $alt enredo $alt $verb enterro $alt2 $noun +enumerem $alt envelope $alt envolto $alt2 enxerto $alt2 $noun epopeia $alt -erga $alt2 -ergam $alt2 -ergo $alt2 eritreia $alt erro $alt2 $noun erros $alt2 @@ -803,15 +790,13 @@ escroto $alt2 esforço $alt $verb esforços $alt esgoto $alt2 $noun -esgotos $alt2 +esgotos $alt2 esperma $alt espeto $alt2 $noun espiroqueta $alt2 espoleta $alt2 esposa $alt2 esqueleto $alt2 -estiverdes $alt -estivermos $alt estrela $alt2 estrofe $alt estorno $alt $verb @@ -819,8 +804,6 @@ estorvo $alt $verb etiqueta $alt2 europa $alt exagero $alt $verb -expeça $alt2 -expeço $alt2 explore $alt faceta $alt2 farelo $alt @@ -831,17 +814,18 @@ fera $alt ferozes $alt fezes $alt ?1 fixe fiSy -fizerdes $alt -fizermos $alt foda $alt2 $verb +folheto $alt2 folga $alt fogos $alt foguete $alt2 foice $alt2 forca $alt2 +força $alt2 $noun forças $alt2 -fordes $alt2 -fores $alt2 +forço $alt +fordes $alt2 +fores $alt2 forro $alt $verb fosse $alt2 frevo $alt2 @@ -850,6 +834,7 @@ galileia $alt gameta $alt2 geleia $alt gelo $alt $verb +genebra $alt germe $alt gesso $alt2 golpe $alt @@ -857,42 +842,34 @@ gonorreia $alt gorda $alt2 gosto $alt $verb gota $alt2 -governo $alt2 $noun -gozo $alt $verb +governo $alt2 $noun +gozo $alt2 $noun graveto $alt2 grelha $alt groselha $alt grosso $alt2 grozo $alt $verb -hemorroida $alt +hemorroida $alt hoje $alt2 horrores $alt2 -houverdes $alt -houvermos $alt ideia $alt insonoro $alt -interesse $alt2 $noun -joga $alt -jogam$alt -jogo $alt $verb -jogos $alt -jogue $alt -joguem $alt +interesse $alt2 $noun +jogo $alt2 $noun joguete $alt2 lambreta $alt2 lebre $alt -lerda $alt -lerdo $alt -líderes $alt2 +lembrete $alt2 +leste $alt2 $verb lopes $alt +maior $alt maleta $alt2 -mantiverdes $alt -mantiveres $alt -mantivermos $alt marcelo $alt marmelo $alt marreta $alt2 martelo $alt +melhor $alt +menor $alt merda $alt megera $alt melo $alt @@ -905,10 +882,8 @@ mexi meS'i mexo m'eSU minueto $alt2 miolo $alt2 -miolos $alt +miolos $alt moeda $alt -modo $alt -modos $alt molho $alt2 $noun monera $alt morcego $alt2 @@ -916,8 +891,7 @@ morda $alt2 moreia $alt mortos $alt motora $alt2 -?2 mulher mulj'Er -?4 mulher mul^'Er +mulher $alt mui mwi muito mw'iNtU // -s is included as a suffix muita mw'iNt& @@ -930,63 +904,52 @@ naquele $alt2 $nounf nervo $alt2 novos $alt obstetra $alt -obsoleta $alt2 -obsoleto $alt2 -obtivera $alt -obtivermos $alt odisseia $alt onu $1 olho $alt2 $noun -osso $alt2 -ossos $alt opereta $alt2 ordens $alt +osso $alt2 +ossos $alt ostra $alt2 ovos $alt pachorra $alt2 paexa paeSa palacete $alt2 palheta $alt2 +panfleto $alt2 pangeia $alt +panqueca p,&~Nk'Ek& pantera $alt paralelo $alt parede $alt2 pastora $alt2 pedra $alt +pela $alt $verb pelego $alt2 pelo $alt $verb -perde $alt -perdem $alt -pesa $alt -pesam $alt -pesque $alt -pesquem $alt peso $alt $verb piloto $alt2 $noun pintora $alt2 +pior $alt pirueta $alt2 +plaqueta $alt2 plateia $alt plebeia $alt polca $alt porcos $alt porrete $alt2 porra $alt2 +porto $alt2 portos $alt pose $alt2 povos $alt poxa p'oS& -preta $alt2 -preto $alt2 primavera $alt provo $alt -puder $alt -puderdes $alt -pudermos $alt -puserdes $alt quarteto $alt2 +queda $alt quinteto $alt2 -quiserdes $alt -quisermos $alt recomeço $alt2 $noun recordo $alt recorto $alt @@ -1000,77 +963,50 @@ reitora $alt2 relevo $alt2 $noun remorso $alt reprovo $alt -resolve $alt -resolvem $alt -retorno $alt $verb +retorno $alt $verb rixa x'iS& rocha $alt rock $alt -rogas $alt rola $alt2 $noun rolo $alt2 $noun -rosna $alt -rosnam $alt -rosne $alt -rosnem $alt -rosno $alt rumores $alt2 saleta $alt2 sarjeta $alt -severa $alt -severo $alt seborreia $alt seca $alt2 $noun -secas $alt2 +secas $alt2 seco $alt2 -seco $alt $verb +seco $alt $verb selo $alt $verb selvagem seUv'aZeIN sexteto $alt2 ?1 senhora $alt2 senhores $alt2 -sincera $alt -sincero $alt sinopse $alt -sobe $alt -sobem $alt soco $alt2 soco $alt $verb -sofrem $alt -sofre $alt -sofreste $alt2 sogra $alt -sopre $alt -soprem $alt -sopro $alt $verb +sopro $alt2 $noun soro $alt2 sorvete $alt2 -sossego $alt2 $noun -souberdes $alt -soubermos $alt +sossego $alt2 $noun suborno $alt $verb sufoco $alt2 $noun sufocos $alt2 -sugere $alt -sugerem $alt suporto $alt suor swOr tapete $alt2 +temores $alt2 tempero $alt2 $noun +terrores $alt2 teta $alt2 tetra $alt -tiverdes $alt -tivermos $alt tocha $alt toga $alt -tola $alt2 -tolo $alt2 -tolhe $alt -tolhem $alt topo $alt $verb torno $alt $verb -torre $alt2 $noun -torres $alt2 +torre $alt2 $noun +torres $alt2 tortos $alt traqueia $alt travesso $alt2 @@ -1080,14 +1016,13 @@ troco $alt2 $noun tropa $alt tropeço $alt2 $noun trombeta $alt2 -tumores $alt2 +tumores $alt2 valeta $alt2 vanessa $alt2 velozes $alt verme $alt -vierem $alt violeta $alt2 -violoncelo $alt +violoncelo $alt voga $alt vozes $alt xarope $alt @@ -1097,8 +1032,6 @@ zero $alt zorra $alt2 - - // foreign words ?1 alt 'alt ?2 agosto &g'ostU @@ -1143,7 +1076,6 @@ zorra $alt2 ?1 install ,inst'al ?2 internet iNtern'Et ?2 Intranet iNtRan'Et -?2 inveja iNv'EZ& ?1 kernel k'Ern,El ?2 kernel k'Ern@l ?1 line l'ain @@ -1152,16 +1084,6 @@ zorra $alt2 ?1 lock l'Ok mail m'eIl mails m'eIls -?1 maior m,&j'Or- -?2 maior maI'Or -?2 maiores maI'O*is -?1 menor myn'Or- -?2 menor men'Or -?2 menores men'O*is -?2 melhor melj'Or -?2 melhores melj'O*is -?4 melhor mel^'Or -?4 melhores mel^'O*is ?2 mouse m'aUzi ?1 menu menu ?1 next n'Ekst @@ -1172,11 +1094,7 @@ zorra $alt2 ?1 ovo 'ovu ?1 pause p'au:z page p'eIdZ -?2 pior pi'Or -?2 piores pi'O*is -preço $alt2 python p'aIT&~N -queda $alt ?1 readme r'i:dmi: ?1 sapi s,ap'i ?1 scanner sk'En&r diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 5a5a3600..8ce4ba30 100644 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -1,4 +1,5 @@ // translation rules Brazilian +// translation rules Brazilian // This file is UTF-8 encoded // Options @@ -19,8 +20,8 @@ .L02 e em .L03 a am o .L04 a am e em o ue uem -.L05 r ra ram re rem rdes -.L06 ra ram ste re rem +.L05 r ra ram re rem rde rmo +.L06 ra ram ste re rem rmo .L07 sse ssem ste @@ -304,7 +305,7 @@ ?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas. ?1 e (la_ 'E // eg: cadela, janela, vela, etc... ?1 C) e (cC ,E // eg: seleccionar, efectuar, etc... -?1 C) ecç 'Es // eg: selecção, etc... +?1 C) ecç 'Es // eg: selecção, etc... ?1 C) e (ã i // leão, panteão, etc. ?1 C) e (a i // oceano, etc. ?1 C) e (o 'i // eg: geologia, etc... @@ -345,138 +346,195 @@ sf) e (ra_ E // esfera, biosfera //sort - _com) e (L05_ e + _d) e (L05_ E + _vi) e (L05_ E fiz) e (L05_ E + pus) e (L05_ E // com- im- de- + tiv) e (L05_ E // es- + _com) e (L05_ e + _pud) e (L05_ E _coub) e (L05_ E _exag) e (L05_ E _houv) e (L05_ E _perd) e (L05_ e + _quis) e (L05_ E _soub) e (L05_ E - tiv) e (L05_ E // es- -_atend) e (L06_ e -_compreend) e (L06_ e -_entend) e (L06_ e -_estend) e (L06_ e +proteg) e (L05_ e // des- + tend) e (L06_ e // a- con- en- es- + _mord) e (L06_ e _rend) e (L06_ e _vend) e (L06_ e + prend) e (L06_ e // a- rea- des- desa- +_arrepend) e (L06_ e +_defend) e (L06_ e +_depend) e (L06_ e +_escond) e (L06_ e +preend) e (L06_ e // com- a- re- sur- respond) e (L06_ e // cor- -_aborrec) e (L07_ e -_rejuvenec) e (L07_ e -_adoec) e (L07_ e -_amanhec) e (L07_ e -_anoitec) e (L07_ e -_arrepend) e (L07_ e - _beb) e (L07_ e - _com) e (L07_ e -_defend) e (L07_ e -_depend) e (L07_ e - _eleg) e (L07_ e -_enlouquec) e (L07_ e -_entristec) e (L07_ e -_envaidec) e (L07_ e -_envelhec) e (L07_ e - _ergu) e (L07_ e -_esclarec) e (L07_ e -_escond) e (L07_ e -_escurec) e (L07_ e -_esquec) e (L07_ e -_interromp) e (L07_ e - _mord) e (L07_ e - _morr) e (L07_ e -_obedec) e (L07_ e - _perd) e (L07_ e - _sofr) e (L07_ e - _tem) e (L07_ e -aprend) e (L07_ e // re- bat) e (L07_ e // re- com- ced) e (L07_ e // pro- con- su- - colh) e (L07_ e // & es- -conhec) e (L07_ e // & re- des- - corr) e (L07_ e // per- con- in- so- dis- -entend) e (L07_ e - merec) e (L07_ e // des- met) e (L07_ e // co- pro- arre- re- intro- compro- sub- - padec) e (L07_ e // com- - parec) e (L07_ e // a- rea- com- desa- -preend) e (L07_ e // sur- com- -_perec) e (L07_ e -respond) e (L07_ e // cor- + mov) e (L07_ e // re- co- + viv) e (L07_ e // re- + _beb) e (L07_ e + _com) e (L07_ e + _tem) e (L07_ e + colh) e (L07_ e // & es- + corr) e (L07_ e // per- con- in- so- dis- + ench) e (L07_ e // pre- + nasc) e (L07_ e // re- + tend) e (L07_ e // en- con- a- es- torc) e (L07_ e // con- venc) e (L07_ e // con- vert) e (L07_ e // in- re- con- - viv) e (L07_ e // re- + 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 + _sofr) 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- +_abastec) e (L07_ e +_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 +_cresc) e (L07_ e +_defend) 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 +_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 +_interromp) e (L07_ e +_perec) e (L07_ e +_rejuvenec) e (L07_ e +_resolv) e (L07_ e +_suspend) e (L07_ e +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- qu) e (brL04_ E _hosp) e (dL03_ E _gr) e (gL03_ e _n) e (grL03_ e _estr) ei (L03_ EI _inv) e (jL04_ E + tr) e (pL04_ E // es- _dec) e (pL04_ E - _s) e (quL02_ E + _in) e (ptL03_ E _p) e (quL02_ E + _s) e (quL02_ E l) e (que_ E _imp) e (rL03_ E + _sev) e (rL03_ E _reit) e (rL03_ E - _g) e (rL04_ E + _sinc) e (rL03_ E + g) e (rL04_ E // su- refri- + qu) e (rL04_ E // re- _op) e (rL04_ E - _qu) e (rL04_ E _alt) e (rL04_ E _sup) e (rL04_ E _tol) e (rL04_ E + _ven) e (rL04_ E + acel) e (rL04_ E // des- _coop) e (rL04_ E _temp) e (rL04_ E - _ven) e (rL04_ E _v) e (rbL03_ E + _p) e (rdL02_ E + _l) e (rdL03_ E _h) e (rdL04_ E + _) e (rgL03_ e _) e (rguL02_ E _alb) e (rguL02_ E _enx) e (rguL02_ E _bez) e (rrL03_ e - _rejuven) e (çL03_ e _inv) e (rtL03_ e _f) e (rvL03_ e + _p) e (sL01_ E + _d) e (scL02_ E + _cr) e (scL02_ E _p) e (scL03_ E _m) e (sclL04 E + _d) e (spL02_ E + _p) e (squL02_ 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 + _rem) e (tL03_ e prom) e (tL03_ e // com- _derr) e (tL03_ e - _rem) e (tL03_ e +_obsol) e (tL03_ e _sol) e (trL03_ E _pen) e (trL04_ E - _atr) e (vL03_ e + _d) e (vL03_ e scr) e (vL03_ e // e- in- pre- ree- de- - _pr) e (zL04_ E + _atr) e (vL03_ e + pr) e (zL04_ E // des- menos- _embel) e (zL04_ E _acont) e (çL01_ e _arref) e (çL01_ e +_emagr) e (çL03 + pr) e (çL03_ e // a- + mer) e (çL03_ e // des- + pad) e (çL03_ e // com- + par) e (çL03_ e // a- re- com- rea- desa- + _ado) e (çL03_ e _aqu) e (çL03_ e _car) e (çL03_ e -_estrem) e (çL03_ e - _mer) e (çL03_ e - _pad) e (çL03_ e // com- - _per) e (çL03_ e - par) e (çL03_ e // a- re- com- rea- desa- + _per) e (çL03_ e_ + conh) e (çL03_ e // re- + obed) e (çL03_ e // des- _esqu) e (çL03_ e - _obed) e (çL03_ e + _forn) e (çL03_ e _ofer) e (çL03_ e abast) e (çL03_ e // re- _aborr) e (çL03_ e -_fortal) e (çL03_ e - _ado) e (çL03_ e +_agrad) e (çL03_ e _amanh) e (çL03_ e +_amort) e (çL03_ e _anoit) e (çL03_ e +_desguarn) e (çL03_ e +_desguarnec) e (çL03_ e _enfraqu) e (çL03_ e _enlouqu) e (çL03_ e +_enraiv) e (çL03_ e _enriqu) e (çL03_ e _entrist) e (çL03_ e _envaid) e (çL03_ e _envelh) e (çL03_ e _esclar) e (çL03_ e - _forn) e (çL03_ e - conh) e (çL03_ e // re- +_espair) e (çL03_ e +_estrem) e (çL03_ e +_fortal) e (çL03_ e +_rejuven) e (çL03_ e +estabel) e (çL03_ e // re- //endsort @@ -768,24 +826,41 @@ _esclar) e (çL03_ e //sort _engl) o (bL01_ O + _s) o (bL02_ O _esn) o (bL04_ O _deb) o (chL04_ O _desabr) o (chL04_ O - _r) o (gL04_ O + _s) o (frL02_ O + r) o (gL04_ O // inter- + _j) o (gL04_ O + _af) o (gL04_ O _adv) o (gL04_ O _ref) o (gL04_ O _ap) oi (L01_ OI - _esc) o (lhL02_ O + _t) o (lL03_ o + c) o (lhL02_ O // es- en- re- + _t) o (lhL02_ O _m) o (lhL04_ O + env) o (lvL02_ O // des- _abs) o (lvL02_ O - _env) o (lvL02_ O + _dev) o (lvL02_ O + _res) o (lvL02_ O _rev) o (lvL02_ O -_desenv) o (lvL02_ O _ent) o (pL02_ O + _c) o (pL03_ O + _ens) o (pL04_ O + _s) o (prL04_ O + _) o (ptL04_ O + _enf) o (rquL02_ O c) o (rrL01_ o // escorra, incorra, corra, recorra _m) o (rrL01_ o + p) o (rtL03_ O // im- trans- de- re- com- a- ex- + _r) o (snL04_ O _c) o (spL02_ O p) ostos (_ Ost=Us# // dispostos etc. + _g) o (zL04_ O + _ad) o (çL03_ O + _end) o (çL03_ O //endsort .group ô @@ -860,7 +935,7 @@ _desenv) o (lvL02_ O r (C *@- A) r (A * A) r (_A * - rr x + rr rx XC) r (A R C) r (A * //?1 C) r (A r @@ -872,7 +947,7 @@ _desenv) o (lvL02_ O .group s -?1 _) s (_W Es|; within an acronym [s]+[;] not [s;] phoneme +?1 _) s (_W Es|; // within an acronym [s]+[;] not [s;] phoneme ?1 _) s (_ Es ?2 _) s (_ 'Ese s s @@ -1072,4 +1147,3 @@ _desenv) o (lvL02_ O __) - (_D m'enUs A_) - (_D _ C_) - (_D _ - diff --git a/dictsource/ro_list b/dictsource/ro_list index 05970422..ebfcb482 100644 --- a/dictsource/ro_list +++ b/dictsource/ro_list @@ -2291,7 +2291,7 @@ vindeţi $1 vinovăţi $alt vinovăţii $4 virgulă $1 -vis-a-vis vizav'i +(vis-a vis) vizav'i viscol $1 vitreg $1 vitrege $1 diff --git a/dictsource/ro_rules b/dictsource/ro_rules index 975461b9..984d6ae4 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -198,6 +198,8 @@ ţi-) i (_ _ // combined with previous word as [iI] Cr) i (_+++ i V&) i (N_ 'i // verb + + @) i (A$p_alt1 i // i is not [j] ăC) ia (_ 'ia âC) ia (_ 'ia ăC) ie (_ 'ie diff --git a/dictsource/ta_list b/dictsource/ta_list index 31b5e89d..0e285130 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -113,6 +113,13 @@ U+bf9 ru:ba:j ½ araI ¾ mukka:l +// alphabet names +_ar arVbU +_cyr sirillik +_he ;ebire:jVm +_zh tS'i:nV + + // abbreviations ரூ ru:ba:j $dot $only (பி . ஏ) bije: $dot @@ -379,6 +386,7 @@ tamil தமிழ் $text பாதிக்கக் $alt புசு $alt புஸு $alt +பாதிக்காம $alt // initial த as [d] @@ -398,7 +406,6 @@ tamil தமிழ் $text தைவதம் $alt தாட்சண்யம் $alt தனம் $alt -திக்கற்ற $alt தானு $alt திட $alt தோ $alt @@ -446,6 +453,8 @@ tamil தமிழ் $text தம்ம $alt தாயம் $alt திமு $alt +தாவா $alt + // initial ட டார்ச் t.a:rtS diff --git a/dictsource/ta_rules b/dictsource/ta_rules index ee2b5310..fbf38c5c 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2009 to 2012 by Jonathan Duddington * + * Copyright (C) 2009 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -168,6 +168,7 @@ _) க (ங்கூலி gV _) க (ங்கை gV _) க (ங்கோத gV + _) கஜ (க்ஸ்தான kVzV _) க (ஞ்சா gV _) க (டகட gV _) க (டத்தில gV @@ -224,6 +225,7 @@ _) க (லீர gV _) க (லீல gV _) க (லீஷிய gV + _) கல்த (ா gVlt _) க (ளுக் gV _) க (வண gV _) க (வன gV @@ -329,6 +331,7 @@ _) கி (ளாL04ி k _) கி (ளாL04ு k _) கி (ளாL04ை k + _) கி (ளாமர g _) கி (ளாஸ்_ g _) கி (ளாஸ்_மேட k _) கிளிக் (_L29 kl.ik @@ -351,6 +354,7 @@ _) க (ுகநாத g _) க (ுகன g _) க (ுகராஜ g + _) க (ுகா g _) க (ுகை g _மன்மதக்) க (ுகை g _) க (ுஜராத g @@ -378,10 +382,13 @@ _மன்மதக்) க (ுகை g _) க (ுண்டத் k _) க (ுண்டம k _) க (ுண்டல k + _) க (ுண்டாக்கள k _) குண்டாந்த (டி gun.d.a:ntV _) க (ுண்டானில k _) க (ுண்டானை k _) க (ுண்டான் k + _) க (ுண்டாவி k + _) க (ுண்டாவை k _) க (ுண்டி k _) க (ுண்டின g _) குண்ட (ூர gun.t.V# @@ -390,9 +397,11 @@ _மன்மதக்) க (ுகை g _) க (ுதித் g _) க (ுதிப் g _) க (ுதிப்பகுதி k + _) க (ுதியாட்ட g _) க (ுபீர g _) க (ுபுகுபு g _) க (ுபுக் g + _) க (ுபேர g _) குப் (த gup _) க (ுப்புன g _) க (ுப்பென்ற g @@ -425,10 +434,12 @@ _மன்மதக்) க (ுகை g _) க (ுருமூர்த்தி g _) க (ுருரா g _) க (ுருவடி g + _) க (ுருவருள g _) க (ுருவா g _) க (ுருவாய g _) க (ுருவிட g _) க (ுருவின g + _) க (ுருவிற்க g _) க (ுருவு g _) க (ுருவுடை g _) க (ுருவை g @@ -520,6 +531,7 @@ _மன்மதக்) க (ுகை g _) க (ோர_முடிய k _) க (ோர_வேண்ட k _) க (ோரக g + _) க (ோரக்கூட k _) க (ோரத்_தாண்ட g _) க (ோரத்தால g _) க (ோரத்தை g @@ -553,6 +565,7 @@ _மன்மதக்) க (ுகை g _) க் (ரீன g _) க் (ரூப g _) க் (ரௌண்ட g + _) க் (ளாமர g _) க் (ளாஸ்_ g _) க்வ (A kw _) க் (வாலியர g @@ -704,6 +717,8 @@ _தொன்ம) க (ால k தென்) க (ிழ k _பா) க (ிஸ்தான k அப) க (ீர்த்தி k + க (ீழே_ k + க (ீழ்_ k _பல்) க (ு k மலைக்) க (ுகை g _பால்) க (ுட k @@ -767,6 +782,7 @@ _நினைவு) க (ூர k ம) க (ேசுவர H // need to restrict to _ம) and _வீரம) ?? சீர்) க (ேட k _லொ) கேட ke:t.V# + _நசி) க (ேத k ம) க (ேந்திர H _ரா) க (ேஷ k _மு) க (ேஷ k @@ -842,6 +858,7 @@ _கர்ப்ப) க்கி (ர gg _வி) க்க (ிரக gg சத்தியா) க்கி (ரக gg L03) க்கி (ரஹ gg // a,i +_சத்தியா) க்கி (ரஹ gg கு) க்கி (ராம gg அ) க்கி (ராம gg இ) க்கி (ராம gg @@ -925,9 +942,12 @@ _துப்பாக்கி) க்க (ுண்ட gg //sort _ராஞ்) ச tSV# + எபிL09ே) ச zV# + ராகவா) ச )(ாரி tS _ப) சக் tSVk _) ச (க்கரவர்த்தி tSV _) ச (க்கிலி tSV + _க) ச (க்ஸ்தான zV சங்க (ர s.VNkV _) ச (ட்டL08ஸ்கர tSV _) ச (ட்டினி tSV @@ -960,6 +980,7 @@ _விமோ) ச (ன tSV _நீலலோ) ச (னி tSV _மீனலோ) ச (னி tSV _) ச (ப்பL11் tSV + _) ச (ப்பலா tSV _) ச (ப்பா tSV _) ச (ப்பி tSV _) ச (ப்பு tSV @@ -970,6 +991,7 @@ _மீனலோ) ச (னி tSV _பங்) ச (ர tSV _பன்) ச (ர tSV _) சரசு (வதி sVrVs + _ந) சரத் zVrVt _ந) ச (ருதீன zV _) சர்ச (ி tSVrtS _) ச (ர்ச்சில tSV @@ -984,6 +1006,7 @@ _L04்விட்) ச (ர்லாந்த zV மருதா) ச (ல tSV வேதா) ச (ல tSV _சேஷா) ச (ல tSV + _ஹிமா) ச (ல tSV _தணிகா) ச (ல tSV அருணா) ச (ல tSV வெங்கடா) ச (ல tSV @@ -992,6 +1015,7 @@ _தணிகா) ச (ல tSV _) ச (வான tSV _) ச (ாக்கட்டி tS _) சாக்ப (ீL04 tSa:kp + _) சாக்லெட் tSa:klet. _) சாக்லேட் tSa:kle:t. _) சா (ட்டர்ஜி tSe: _) ச (ாணக்கிய tS @@ -1025,7 +1049,20 @@ _தணிகா) ச (ல tSV ஆ) ச (ாரங்கள tS ஆ) ச (ாரத் tS ஆ) ச (ாரம tS + _சிவா) ச (ாரி tS + _ரங்கா) ச (ாரி tS + _வரதா) ச (ாரி tS + _வேதா) ச (ாரி tS +_கிருஷ்ணமா) ச (ாரி tS +_தேசிகா) ச (ாரி tS +_பட்டா) ச (ாரி tS +_மத்வா) ச (ாரி tS +அனந்தா) ச (ாரி tS +அன்னமா) ச (ாரி tS + ஆ) ச (ாரிய_ tS + ஆ) ச (ாரியார tS அ) ச (ாருதீன z + _) ச (ாருமதி tS _) சாருலத (ா tSa:rUlVt _) ச (ாருவ tS _ஹ) ச (ாரே z @@ -1086,6 +1123,7 @@ _தணிகா) ச (ல tSV _) சிம்பன்ச (ி tSimpVnz _மலே) ச (ிய s. இந்தோனே) ச (ிய s. + _) ச (ியர்ஸ tS _பக்தி_) சிரத் (தை srVd _) சிரத்த (ைL27 srVdd சி (ரம s @@ -1203,10 +1241,12 @@ _மங்களே) சு (வர s _) ச (ேரி tS _தல) ச (ேரி tS _) ச (ேர்கள tS + _) ச (ேர்மன tS _) ச (ேர்மேன tS _) ச (ேலஞ் tS _) ச (ேஷ்டை tS _) ச (ேஸ்_ tS + _) சைத (ன்ய tSaItV _) ச (ைத்திய tS _) ச (ைனா tS _) ச (ைனா_நேவால s @@ -1214,12 +1254,14 @@ _மங்களே) சு (வர s _) ச (ைனீஸ tS _) ச (ோட்டா tS ஓ) ச (ோன z + அரி) ச (ோன z _) ச (ோன்ன tS _) ச (ோவு tS _) ச (ோவெ tS _) ச (ௌக்கிதார tS _) ச (ௌதரி tS _) ச (ௌதிரி tS + _) ச (ௌத்தாலா tS _) சௌப (ாத்தி tSaUp _) ச (ௌபே tS _) ச (ௌஹான tS @@ -1246,11 +1288,16 @@ _மங்களே) சு (வர s _ப) ஜ (ார z அ) ஜ (ாருதீன z _நா) ஜ (ி z + _) ஜிப்(_ zip + _) ஜ (ிப்ப z _) ஜ (ியா z + _) ஜ (ீனத் z + _) ஜ (ீப்ரா z _) ஜ (ீரோ z _) ஜ (ுல்ஃபி z _) ஜ (ுல்பி z _) ஜு (வால dZ + _) ஜ (ெனித் z _) ஜ (ெராக்ஸ z //endsort @@ -1401,9 +1448,11 @@ _செண்) டிமெண்ட t.imen.t.V# _) டி (ரங் t. _) டி (ரங்கு t. _) டி (ரபிள t. + _) டி (ரம d. _) டிரம்பெட் t.rVmpet. _) டிர (ஸ d.re _) டிர (ஸ்ட t.rV + _) டி (ரா_ d. _) டிராஃபிக் t.ra:fik _) டி (ராகுலா d. _) டிராக் t.ra:k @@ -1427,12 +1476,15 @@ _செண்) டிமெண்ட t.imen.t.V# _) டி (ராயிங் d. கொலஸ்) டி (ரால _|t. _) டி (ராலி t. + _) டி (ராவ d. _) டி (ராவல t. _) டி (ராவெல t. _) டிரிக (ர t.riggV _) டிரிக் t.rik _) டிரிக்க (ர t.riggV + _) டி (ரிங்_ t. _) டி (ரிங்க் d. + _) டி (ரிங்ஸ d. _) டிரினிட (ி t.rinit. _) டிரிப் t.rip _) டி (ரிம் t. @@ -1518,6 +1570,7 @@ _லான்_) ட (ென்னிஸ t. _) டைப (ாய்ட t.aIf _) டைப் t.aIp _) ட (ைம்_ t. + _) ட (ைல்ஸ t. _) டொக் t.ok _) ட (ோக்கன t. _) ட (ோக்கியோ t. @@ -1527,6 +1580,7 @@ _லான்_) ட (ென்னிஸ t. _) டோரண்ட (ோ t.o:rVn.t. _ப்ரி) ட (ோரிய t. _) டோர்னமெண்ட t.o:rnVmen.t.V# + _) ட (ோலிவுட் t. _லே) ட் t. @மெண்) ட் t. // -ment _பேண்) ட் t. @@ -1535,6 +1589,11 @@ _ஹெல்மெ) ட் t. ல) ட்சு (மண ks. ல) ட்சு (மி ks. _ல) ட்ட d.d.V# +_கோலிவு) ட்ட d.d.V# +_டோலிவு) ட்ட d.d.V# +_பாலிவு) ட்ட d.d.V# +_மாலிவு) ட்ட d.d.V# +_ஹாலிவு) ட்ட d.d.V# _ரெ) ட்ட (ிய d.d. இ) ட்ட (ிலி d.d. அப்பாயிண்) ட்மெண்ட t.men.t.V# @@ -1577,6 +1636,7 @@ _ஹெல்மெ) ட் t. _) ட்ரிக (ர t.riggV _) ட்ரிக் t.rik _) ட்ரிக்க (ர t.riggV + _) ட் (ரிங்_ t. _நியூ) ட் (ரின t. _) ட்ரினிட (ி t.rinit. _) ட் (ரிம் t. @@ -1642,6 +1702,8 @@ _நடுரோ) ட் (ல t. ஸ்) த (B t ப்) த tV ப்) த (B t + ட்) த tV + ட்) த (B t த் (_த t // exceptions, த as [d] @@ -1654,6 +1716,7 @@ _நடுரோ) ட் (ல t. _) த (கன dV _) த (கி dV _) த (க்க்ஷிண dV + _) த (க்ஷன dV _) த (க்ஷிண dV _) த (க்ஷிணா dV _) த (சகண்ட dV @@ -1686,6 +1749,7 @@ _நடுரோ) ட் (ல t. _) த (ட்சன dV _) த (ட்சிண dV _) த (ண்டக் dV + _) த (ண்டச்செலவ dV _) த (ண்டச்சோற dV _) த (ண்டத் dV _) த (ண்டன dV @@ -1714,6 +1778,7 @@ _நடுரோ) ட் (ல t. _) த (னுச dV _) த (னுஷ dV _) த (ன்மந்திரி dV + _) த (ன்ய dV _) த (ன்ராஜ dV _) த (ன்வந்தரி dV _) தபதப dVbVdVbV# @@ -1723,6 +1788,8 @@ _நடுரோ) ட் (ல t. _) த (ம்பதி dV _) த (ம்பிடி dV _) த (ம்மடிL11் dV + _) த (ம்மத் dV + _) த (ம்மம dV _) த (யவ dV _) த (யாணந்த dV _) த (யான dV @@ -1762,13 +1829,16 @@ _நடுரோ) ட் (ல t. _) த (ர்ப்பை dV _) த (ர்ம dV _) த (லித் dV + _) தலீத் dVli:t _அகாலி_) த (ள dV + _) த (ளவாய dV _) த (வக்கால dV _) த (வக்கோல dV _) த (வத்த dV _) த (வப் dV _) த (வம dV _) தவுலதாப (ாத dVvUlVda:b + _) த (வே dV _) த (ாக்கா d _) த (ாக்காத t _) த (ாக்காம t @@ -1804,12 +1874,14 @@ _அகாலி_) த (ள dV _) த (ாராள d _) த (ாராவி d _) த (ாவணி d - _) த (ாவா d + _) த (ாவாக்க d + _) த (ாவாவ d _) த (ாவேய d _) த (ாஸ d _) த (ிகம்பர d _) த (ிகில d _) த (ிகுதிகு d + _) த (ிக்கற்ற d _) த (ிக்கித்த d _) த (ிக்கில d _) த (ிக்கு d @@ -1853,7 +1925,7 @@ _அகாலி_) த (ள dV _) த (ிம்ம d _) தி (யாக t _) தி (யான d - _) தி (யேட்டர t + _) த (ியோபந்த d _) த (ிரவ d _) த (ிரவிய d _) தி (ராட்சை d @@ -1881,7 +1953,10 @@ _அகாலி_) த (ள dV _) த (ிவால d _) த (ிவ்ய d _) த (ிவ்விய d + _) தீக்ஷணி (ய di:ks.Vn + _) த (ீக்ஷண்ய d _) த (ீக்ஷிதர d + _) தீட்சணி (ய di:d.tSVn. _) த (ீட்சண்ய d _) த (ீட்சித d _) த (ீட்சை d @@ -1894,6 +1969,7 @@ _அகாலி_) த (ள dV _) த (ீரச் d _) த (ீரத்துட d _) த (ீரன d + _) த (ீரமிக d _) த (ீரமில்ல d _) த (ீரமுட d _) த (ீரம்மிக d @@ -1909,6 +1985,7 @@ _) தீர்க்க (_சுமங்கலி di:rggV _) தீர்க்க (முள்ள di:rggV# _) தீர்க்க (ம்_ di:rggV _) தீர்க்க (ாயு di:rggV# + _) த (ீர்க்காலோசனை d _) த (ீவாளி d _) து(ரோக d _) த (ுக்க d @@ -1923,12 +2000,13 @@ _) தீர்க்க (_சுமங்கலி di:rggV _) த (ுன்மதி d _) த (ுன்மார்க்க d _) த (ுபாய d - _) த (ுபாஷி d + _) த (ுபாஷ d _) த (ுப்பட்டா d _) த (ுமளி d _) த (ுரதிருஷ்ட d _) த (ுரதிர்ஷ்ட d _) த (ுரதிஷ்ட d + _) துராக்க (ிர dra:gg _) த (ுராசை d _) த (ுரியோதனன d _) த (ுரியோதனா d @@ -2041,6 +2119,7 @@ _வசந்) த tV# _கௌ) த (மி tV _புல்) த (ரை tV _மண்) த (ரை tV + _சகுந்) த (லா tV _சாந்) த (லிங்க tV# _கீ) த (ா t _சீ) த (ா t @@ -2051,6 +2130,7 @@ _வசந்) த tV# அனி) த (ா t சுஜா) த (ா t லலி) த (ா t + _சமந்) த (ா t _சுனி) த (ா t _மம்) த (ா t _ஹரி) த (ா t @@ -2163,9 +2243,13 @@ L03வ்வு) த்த (ியோக dd _சுப) த்த (ிர dd _ரு) த்த (ிர dd _ரௌ) த்த (ிர dd + _சூ) த்த (ிரச் dd _சூ) த்த (ிரச்சி dd + _சூ) த்த (ிரத் dd _சூ) த்த (ிரன dd + _சூ) த்த (ிரப் dd _சூ) த்த (ிரரி dd + _சூ) த்த (ிரரே dd _சூ) த்த (ிரர் dd ஆதி) த்தி (ராவிட dd _சேஷா) த்த (ிரி dd @@ -2199,6 +2283,7 @@ _மொழி) த்து (வே dd _வில்_வி) த்த (ை dd _வில்வி) த்த (ை dd _வி) த்த (ைகள dd + _வி) த்த (ைக்க dd _வி) த்த (ைக்காக dd _வி) த்த (ைக்கு dd வி) த்த (ையாக dd @@ -2296,6 +2381,7 @@ _சி) த்ரலேக (ா trVle:k _) ப (கீர bV _) ப (குள bV _) ப (க்கிங்L06ாம bV + _) ப (க்கீர fV _) ப (க்கெட் bV _) ப (க்கென்ற bV _) பக் (த bVk @@ -2305,6 +2391,7 @@ _சி) த்ரலேக (ா trVle:k _) ப (ங்கம bV _) பங்க (ர bVNkV _) ப (ங்களா bV + _) ப (ங்களூர bV _) ப (ங்கார bV _) ப (ங்க் bV _) ப (சவகல்யாண bV @@ -2322,6 +2409,7 @@ _சி) த்ரலேக (ா trVle:k _) ப (ட்டக்ஸ bV _) ப (ட்டன bV _) ப (ட்டன_ pV + _) ப (ட்டாசாரி bV _) ப (தில bV _) பத்த (ிரகாளி bVdd _) பத்திரப் (_ bVttirVp @@ -2394,6 +2482,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (ராக்_ஒபாமா bV _) ப (ரிதா_ fV _) ப (ரிதாவ fV + _) ப (ரீத fV _) பரூக் fVrU:k _) ப (ரோட bV _) ப (ர்ஃபி bV @@ -2454,6 +2543,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (லராம bV _) ப (லவந்த bV _) ப (லவான bV + _) ப (லவானவ pV _) ப (லவீன bV _) ப (லஹீன bV _) பலாத்க (ார bVla:dk @@ -2511,6 +2601,7 @@ _டீயும்_) ப (ன்னும்_ bV _) பாங்க (ாக் ba:Nk _) ப (ாங்கில b _) ப (ாங்க் b + _) ப (ாசிL04 f _) ப (ாசில f _) ப (ாசு b _) பாசுப (த pa:sUpV @@ -2544,9 +2635,10 @@ _டெட்_) ப (ாடி b _) ப (ாதிக்கப்பட b _) ப (ாதிக்கப்பட b _) ப (ாதிக்கலாம b + _) ப (ாதிக்கவ b _) ப (ாதிக்கவா b - _) ப (ாதிக்கவில் b _) ப (ாதிக்காத b + _) ப (ாதிக்காமல b _) ப (ாதிக்கால p _) ப (ாதிக்கின்ற b _) ப (ாதிக்கிற b @@ -2561,6 +2653,7 @@ _டெட்_) ப (ாடி b _) ப (ாதிக்கும்_மேற் p _) ப (ாதிக்கும்_மேற்பட்ட_ p _) ப (ாதிக்கும்_மேல p + _) ப (ாதிச்ச b _) ப (ாதித்த b _) ப (ாதிப்படை b _) ப (ாதிப்படைகி b @@ -2603,6 +2696,7 @@ _டெட்_) ப (ாடி b _) பாப (ாவ ba:b _) ப (ாபிலோன b _) ப (ாபுவ b +_டைம்_) ப (ாம b _) ப (ாமாவ b _) ப (ாமினி b _) ப (ாம்பே b @@ -2616,6 +2710,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ாரதி b _) ப (ாரத்த b _) ப (ாரம b + _) ப (ாரமை p _) ப (ாரம்பரிய p _) ப (ாரம்மா p _) ப (ாரவி b @@ -2661,6 +2756,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ாலுவ b _) ப (ாலே_L25 b _) ப (ாலை p + _) ப (ாலையா b _) ப (ால் p _) ப (ால்_தாக்கரே b _) பால்க (னி ba:lkV @@ -2722,10 +2818,12 @@ _விளையாடு_) ப (ாம்பே p _) ப (ிடில f _) ப (ிட்சு b _) ப (ிட்டடி b + _) பிந்தி (ரன்வாலே bind _) ப (ினாமி b _) ப (ினிஷ f _) ப (ின்_லேடன b _) ப (ின்னங்கள b + _) ப (ின்னத்த b _) ப (ின்னத்தால b _) ப (ின்னத்தை b _) ப (ின்னம b @@ -2791,6 +2889,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரமுகர p _) பி (ரமை b _) பி (ரமோஷன p + _) பி (ரமோஸ b _) ப (ிரம்ம b _) பி (ரம்ம b _) பி (ரம்மன b @@ -2805,6 +2904,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரளய p _) பி (ரவகி p _) பி (ரவாக p + _) பி (ரவாள p _) பி (ரவீண p _) பி (ரவீன p _) பி (ரவுச b @@ -2812,6 +2912,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரவேசி p _) பி (ரஷ் b _) பி (ரஷ்ட p + _) பி (ரஸ p _) பி (ரஸல்ஸ b _) பி (ரஸாத p _) பி (ரஸ்தா p @@ -2845,6 +2946,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரான்ச f _) பி (ரான்தி_ b _) பி (ரான்ஸ f + _) பி (ராபல்ய p _) பி (ராப் p _) பி (ராமண b _) பி (ராமணன b @@ -2852,6 +2954,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ராமிக் b _) பி (ராமின்_ b _) பி (ராமிஸ p + _) பி (ராம்மண b _) பி (ராய்லர b _) பி (ரார்தன p _) பி (ரார்தி p @@ -2864,6 +2967,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ராவுக்கு b _) பி (ராவை b _) பி (ரிகேட b + _) பி (ரிஜேஷ b _) பி (ரிட b _) பிரிட (ோரிய prit. _) பி (ரிட்டோரிய p @@ -2887,6 +2991,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரியாவின p _) பி (ரியாவு p _) பி (ரியாவை p + _) பி (ரில்லிய b _) பி (ரிஸ்டன b _) பி (ரிஸ்டல b _) பிரிஸ்ப (ேன brisb @@ -2914,6 +3019,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரோகிதர p _) பி (ரௌச b _) பி (ரௌன b + _) ப (ிர்லா b _) ப (ிலாஸ்பூர b _) பிலிடெல்ப (ிய filidelf _) பிலிம filmV# @@ -2966,6 +3072,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ீடித்த p _) ப (ீடிப்புகை b _) ப (ீடிய b + _) ப (ீடியாட் p _) ப (ீட்டில்ஸ b _) பீட்ரூட் bi:t.ru:t. _) பீத (ோவன bi:t @@ -2979,6 +3086,7 @@ _விளையாடு_) ப (ாம்பே p _) பீ (ராமண b _) ப (ீராமணர b _) ப (ீரிட p + _) ப (ீரியட p _) ப (ீரோ b _) ப (ீர்_முகமத p _) ப (ீர்_முஹமத p @@ -3083,6 +3191,8 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ெங்களூர b _) ப (ெங்கால b _) பெசண்ட besVn.t.V# + _) பெச (வாடா bezV + _) பெஜ (வாடா bezV _) பெஞ்ச ben^tSV# _) ப (ெஞ்சமின b _) பெஞ்ச (மின ben^dZV @@ -3104,6 +3214,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ெப்ரவரி f _) ப (ெயில f _) பெரோஸ fero:zV# + _) ப (ெர்க்கிலி b _) பெர்ட் (ரண்ட bert. _) ப (ெர்த் b _) ப (ெர்னாட்ஷா b @@ -3152,6 +3263,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ைகுக்கு b _) ப (ைக்கின b _) ப (ைக்கிற்க b + _) ப (ைக்கில b _) ப (ைக்குகள b _) ப (ைக்கும b _) ப (ைசன b @@ -3171,6 +3283,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ொம்மனாட்டி p _) ப (ொம்மல b _) ப (ொம்மை b + _) ப (ோஃபர்ஸ b _) ப (ோஃபோர் b _) ப (ோக_L13 b _) ப (ோகங்க b @@ -3188,6 +3301,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோகிய b _) ப (ோக்கஸ f _) ப (ோங்கா b + _) ப (ோங்கானும p _) ப (ோங்கு b _) ப (ோஜ b _) ப (ோடோ b @@ -3195,6 +3309,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோட்டோக்க f _) போட்டோக்ராப (ர fo:t.t.o:gra:fV _) ப (ோட்டோதான f + _) ப (ோணி b _) ப (ோண்டா b _) ப (ோண்டி b _) ப (ோதகன b @@ -3223,6 +3338,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோன்கூட f _) ப (ோன்லகூட f _) ப (ோன்ஸ்லே b + _) போப (ர்ஸ bo:fV _) போப (ால bo:p _) போப (ோர் bo:f _) ப (ோரடி b @@ -3365,6 +3481,7 @@ _விரகதா) ப (+ bV# _மீள்) ப (தி pV சீதா) பதி pVti சேது) பதி pVti + _விடு) ப (தி pV தரணி) பதி pVti திரௌ) ப (தி pV பிரஜா) பத (ி pVt @@ -3389,6 +3506,7 @@ _ராஷ்டிர) ப (தி pV _க) ப (த் bV அரா) பத் fVt அல்) ப (த் pV + _கிலா) பத் fVt _தா) ப (த்த bV வீர) ப (த்தினி pV _ரிஷி) ப (த்தினி pV @@ -3419,6 +3537,7 @@ _சொந்த) ப (ந்த bV _ஊடு) ப (யிர pV _நடை) ப (யிற்சி pV கா) ப (ர bV +_ஜெனி) ப (ர fV நாகா) ப (ரண bV _ஒலி) ப (ரப் pV _ஒளி) ப (ரப் pV @@ -3429,6 +3548,7 @@ _சொந்த) ப (ந்த bV _கார்) ப (ரேஷன pV _பம்) ப (ர்_ pV _கன்) ப (ர்ம fV + இன்) ப (ர்ம fV கரம்) ப (ற் pV _தீ) ப (ற்ற pV ஆள்) ப (ற்ற pV @@ -3463,6 +3583,7 @@ _முனிசி) ப (ல pV _ஷில்) ப (ா p _முஸ்த) ப (ா f _ஹனி) ப (ா f + _ஹனீ) ப (ா f _போதும்) ப (ா p _போலாம்) ப (ா p _வேண்டாம்) ப (ா p @@ -3506,8 +3627,10 @@ _வெளிப்) ப (ாக b ஒரு) ப (ாத p _படு) ப (ாத p _மறு) ப (ாத p + பரீதா) ப (ாத b ஆமதா) ப (ாத b அL06மதா) ப (ாத b +அலாகா) ப (ாத b இஸ்லாமா) ப (ாத b ஒளரங்கா) ப (ாத b ஔரங்கா) ப (ாத b @@ -3554,6 +3677,7 @@ _ப்ரின்சி) ப (ால p முக) ப (ாவ b அட) ப (ாவ p வீண்) ப (ாவ p + _படு) ப (ாவ p அடி) ப (ாவி p _நவ) ப (ாஷ p _தமிழ்ப்) ப (ாஷ _b @@ -3605,6 +3729,7 @@ _கன்னா) ப (ின்னா p @) ப (ின்னால்_ p _) ப (ிப்ரவரி f _லெஸ்) ப (ியன b + _மா) ப (ியா f _கன்) பி (யுச f _பெர்) பி (யூம f _வரப்) பி (ரL04ாத p @@ -3624,7 +3749,9 @@ _ஞானப்) பிரக (ா prVk _மL06ாப்) பி (ரப p வீண்) பி (ரமை b துஷ்) பி (ரயோக p + _சொற்) பி (ரயோக p L03ந்தப்) பி (ரளய p + _சொற்) பி (ரவாக p எக்ஸ்) பிர (ஸ pre ஆ) பி (ரஹாம b பயப்) பி (ராந்தி b @@ -3654,6 +3781,7 @@ L03ந்தப்) பி (ராய p ஆண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p அச்சா) ப (ீ f + _ர) பீக் fi:k உப) ப (ீட p விக்கி) ப (ீடியா p இம்) ப (ீரியல p @@ -3661,6 +3789,7 @@ L03ந்தப்) பி (ராய p _அன்) ப (ுட b _மார்) ப (ுட b ராஜ) ப (ுதன p + _மின்) ப (ுத்தக p _) புத்தம்ப (ுத puttVmp ராஜ) ப (ுத்திர p வாயு) ப (ுத்திர p @@ -3679,6 +3808,7 @@ L03ந்தப்) பி (ராய p _பா) ப (ுலர p _) பு (ளோரன்ஸ f மண்) ப (ுழு p + _ஷாம்) ப (ூ p ப (ூச்சி p ம்) ப (ூச்சி b உறுதி) ப (ூண்ட p @@ -3708,6 +3838,7 @@ _கோலாலம்) ப (ூர p _கை) ப (ேசி p _செல்) ப (ேசி p அலை) ப (ேசி p + _திரை) ப (ேசி p தொலை) ப (ேசி p _மறு) ப (ேச்ச p ஒரு) ப (ேச்ச p @@ -3732,6 +3863,7 @@ _கோலாலம்) ப (ூர p _ வெடி) ப (ொரு p _பழம்) ப (ொருள p _தொல்) ப (ொருள p + _தேடு) ப (ொறி p வீண்) ப (ொழுத p ப (ொழுதிலா_+ p ப (ொழுதிலும்_+ p @@ -3743,6 +3875,7 @@ _ வெடி) ப (ொரு p ப (ொழுதே_+ p ப (ொழுதோ_+ p _விலை) ப (ோ p + _பிர) ப (ோL04 p _ஏக) ப (ோக b ராஜ) ப (ோக b ப (ோக_ p @@ -3780,6 +3913,7 @@ _விலை) ப (ோ p ப (ோன_ p ப (ோனது_ p ப (ோனா p + அல்) ப (ோன்சா f ப (ோன்ற+ p // ?? end-of-word + suffix ?? அல்) ப (ோன்ஸ f ப (ோயிரு p @@ -3802,7 +3936,9 @@ _விலை) ப (ோ p _டே) ப (் p _போ) ப் p _லாக) ப் p + ஆசி) ப் f _டெஸ்க்டா) ப் p + ஆ) ப் (கன f ஆ) ப் (கான f _பா) ப்க (ார்ன pk _ர) ப்ச (ர ptSV @@ -3810,6 +3946,11 @@ _டெஸ்க்டா) ப் p _லி) ப் (ட f _மைக்ரோசா) ப் (ட f _சா) ப்ட் (வேர ft + _ச) ப் (த_ p + _ச) ப்த (மி_ ptV + _ச) ப்த (மிய ptV + _ச) ப் (தரிஷி p + _ச) ப் (தஸ்வர p _ஹி) ப்னாட (ிச pna:t. கர்) ப்ப bbV# _நவா) ப்ப bbV# @@ -3822,6 +3963,7 @@ _மைக்ரோசா) ப் (ட f _ர) ப்ப (ர bbV ஆ) ப்ப (ரிக்க fV தென்னா) ப்ப (ரிக்க fV + _துர்) ப்ப (ல bbV உ) ப்ப (லா bbV உ) ப்ப (லாக bbV உ) ப்ப (லான bbV @@ -3837,6 +3979,8 @@ _மைக்ரோசா) ப் (ட f _ஜ) ப்ப (ார bb _துர்) ப்ப (ாஷ bb அ) ப்ப (ாஸ bb + அ) ப்ப (ாஸாமி pp + அ) ப்ப (ாஸ்வாமி pp உ) ப்ப (ி_ bb _ட) ப்ப (ிங் bb உ) ப்ப (ின_ bb @@ -3848,6 +3992,8 @@ _யாதவ) ப்பி (ரகாச pp L03) ப்பி (ரகார pp _வெளி) ப்பி (ரகார pp அதிக) ப்பி (ரசங்க pp + _வன) ப்பி (ரதேச pp +_காட்டு) ப்பி (ரதேச pp _நில) ப்பி (ரபு pp _சத்திய) ப்பி (ரமா pp மன) ப்பி (ரமை bb @@ -3861,10 +4007,12 @@ _சத்திய) ப்பி (ரமா pp _மன) ப்பி (ரவாக pp _ரத்த) ப்பி (ரவாக pp இசை) ப்பி (ரவாக pp + உரை) ப்பி (ரவாக pp இரத்த) ப்பி (ரவாக pp _ஒL10ி) ப்பி (ரவாக pp தேச) ப்பி (ரஷ்ட pp _ஜாதி) ப்பி (ரஷ்ட pp + _வான) ப்பி (ரஸ்த pp ஆ) ப்பி (ரிக்க f தென்னா) ப்பி (ரிக்க fV _கஜ) ப்ப (ிருஷ்ட bb @@ -4028,6 +4176,8 @@ _சந்தேக) ப்ப (ுத்தி bb _உ) ஸ்பெக் zbek _நவா) ஸ zV# பெர்னாண்ட) ஸ zV# + _ம) ஸ்த (ூர zd + அரி) ஸ (ோன z .group ஹ ஹ HV diff --git a/dictsource/te_list b/dictsource/te_list index 2e4daf58..fa2ebd0c 100644 --- a/dictsource/te_list +++ b/dictsource/te_list @@ -50,20 +50,20 @@ _1X padi _11 padakond.u _12 pannemd.u _13 padamu:d.u: -_14 padhna:lugu +_14 pad#na:lugu _15 padihe:nu _16 padaha:ru _17 padihe:d.u -_18 paddhenimidi +_18 padd#enimidi _19 pamdommadi _2X iravaI _3X muppaI -_4X nalubhaI -_5X ja:bhaI +_4X nalub#aI +_5X ja:b#aI _6X aravaI -_7X d.ebhbaI -_8X jenabhaI -_9X tombhaI +_7X d.eb#baI +_8X jenab#aI +_9X tomb#aI _0C vandala _0C0 vandalu _1C okavanda @@ -92,8 +92,8 @@ _?? aks.aram // 'unknown character' _, ka:ma: _; semi:ko:lan _: ko:lan -_! a:S;carja:rthaka -_? praS;na:rthaka +_! a:S;carja:rt#aka +_? praS;na:rt#aka _- haIfan __ amd.ar||sko:r @@ -114,29 +114,29 @@ U+c4d vottu // consonants with virama క్ ik -ఖ్ ikh +ఖ్ ik# గ్ ig -ఘ్ igh +ఘ్ ig# ఙ్ iN చ్ ic -ఛ్ ich +ఛ్ ic# జ్ iJ -ఝ్ iJh +ఝ్ iJ# ఞ్ in^ ట్ it. -ఠ్ ith. +ఠ్ it.# డ్ id. -ఢ్ idh. +ఢ్ id.# ణ్ in. త్ it -థ్ ith +థ్ it# ద్ id -ధ్ idh +ధ్ id# న్ in ప్ ip -ఫ్ iph +ఫ్ ip# బ్ ib -భ్ ibh +భ్ ib# మ్ im య్ ij ర్ ir diff --git a/dictsource/te_rules b/dictsource/te_rules index 4b18cdb5..2ceb5476 100644 --- a/dictsource/te_rules +++ b/dictsource/te_rules @@ -24,16 +24,16 @@ క (B k .group ఖ - ఖ kha - ఖ (B kh + ఖ k#a + ఖ (B k# .group గ గ ga గ (B g .group ఘ - ఘ gha - ఘ (B gh + ఘ g#a + ఘ (B g# .group ఙ ఙ Na @@ -44,16 +44,16 @@ చ (B c .group ఛ - ఛ cha - ఛ (B ch + ఛ c#a + ఛ (B c# .group జ జ Ja జ (B J .group ఝ - ఝ Jha - ఝ (B Jh + ఝ J#a + ఝ (B J# .group ఞ ఞ n^a @@ -64,16 +64,16 @@ ట (B t. .group ఠ - ఠ th.a - ఠ (B th. + ఠ t.#a + ఠ (B t.# .group డ డ d.a డ (B d. .group ఢ - ఢ dh.a - ఢ (B dh. + ఢ d.#a + ఢ (B d.# .group ణ ణ n.a @@ -84,16 +84,16 @@ త (B t .group థ - థ tha - థ (B th + థ t#a + థ (B t# .group ద ద da ద (B d .group ధ - ధ dha - ధ (B dh + ధ d#a + ధ (B d# .group న న na @@ -104,16 +104,16 @@ ప (B p .group ఫ - ఫ pha - ఫ (B ph + ఫ p#a + ఫ (B p# .group బ బ ba బ (B b .group భ - భ bha - భ (B bh + భ b#a + భ (B b# .group మ మ ma diff --git a/dictsource/ur_list b/dictsource/ur_list index b0fae0c2..326ec13c 100644 --- a/dictsource/ur_list +++ b/dictsource/ur_list @@ -1,4 +1,4 @@ -// This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) +// This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) // This file is UTF8 encoded // Letter Names, Numbers and exceptional pronounciation of Urdu @@ -38,17 +38,19 @@ ن nu:n و va:O ہ He: -ں ghUnna -ﮨ cho:ti:||He: +ں g#Unna +ﮨ c#o:ti:||He: ھ dO||caSmi:||He: ء HamzaH -ی cho:t.i:||je: +ی c#o:t.i:||je: ے bar.i:||je: ئ h'amza َ z@b@R ِ ze:R ُ pe:S +ّ t,aSd'i:d +ً d'o:zab'aR // The numbers @@ -58,9 +60,9 @@ _2 'do: _3 t'i:n _4 c'a:R _5 p'a:Nc -_6 ch'eh +_6 c#'eh _7 s'a:t -_8 'a:th +_8 'a:t# _9 n'aU _10 d'as _11 gj'a:RaH @@ -70,7 +72,7 @@ _14 c'aUdaH _15 p'andRaH _16 s'o:laH _17 s'atRaH -_18 ath'a:RaH +_18 at#'a:RaH _19 'Unni:s _20 b'i:s _21 Ikk'i:s @@ -78,9 +80,9 @@ _22 ba:'i:s _23 te:'i:s _24 caUb'i:s _25 pacc'i:s -_26 chabb'i:s +_26 c#abb'i:s _27 sat:a:'i:s -_28 stha:'i:s +_28 ,at.#a:j'i:s _29 Unt'i:s _30 t'i:s _31 ikVt'i:s @@ -88,7 +90,7 @@ _32 bat:'i:s _33 t'aINt'i:s _34 caUNt'i:s _35 paINt'i:s -_36 chat:'i:s +_36 c#at:'i:s _37 saINt'i:s _38 aRt'i:s _39 Unta:l'i:s @@ -98,7 +100,7 @@ _42 baja:l'i:s _43 te:Nta:l'i:s _44 cava:l'i:s _45 paINta:l'i:s -_46 chIja:l'i:s +_46 c#Ija:l'i:s _47 saINta:l'i:s _48 aRta:l'i:s _49 Unc'a:s @@ -108,29 +110,29 @@ _52 b'a:van _53 t'IRpan _54 c'aUvan _55 p'acpan -_56 ch'appan +_56 c#'appan _57 sat:'a:van -_58 ath'a:van -_59 Uns'ath -_60 s'a:th -_61 'Iksath -_62 b'a:sath -_63 t'IRsath -_64 c'aUsath -_65 p'aINsath -_66 chIj'a:sath -_67 s'aRsath -_68 'aRsath +_58 at#'a:van +_59 Uns'at# +_60 s'a:t# +_61 'Iksat# +_62 b'a:sat# +_63 t'IRsat# +_64 c'aUsat# +_65 p'aINsat# +_66 c#Ij'a:sat# +_67 s'aRsat# +_68 'aRsat# _69 UnH,at:'aR _70 sat:'aR _71 IkHat:'aR _72 baHat:'aR _73 tIHat:'aR _74 caUHat:'aR -_75 pachat:'aR -_76 chIHat:'aR -_77 sathat:'aR -_78 athHat:'aR +_75 pac#at:'aR +_76 c#IHat:'aR +_77 sat#at:'aR +_78 at#Hat:'aR _79 Unna:s'i: _80 ass'i: _81 Ika:s'i: @@ -138,9 +140,9 @@ _82 baja:s'i: _83 tIRa:s'i: _84 caURa:s'i: _85 paca:s'i: -_86 chIja:s'i: +_86 c#Ija:s'i: _87 sat:a:s'i: -_88 atha:s'i: +_88 at#a:s'i: _89 nava:s'i: _90 navv'e: _91 Ikj'a:nve: @@ -148,20 +150,209 @@ _92 b'a:nve: _93 tIT'a:nve: _94 caUR'a:nve: _95 pac'a:nve: -_96 chIj'a:nve: +_96 c#Ij'a:nve: _97 sat:'a:nve: -_98 ath:'a:nve: +_98 at#:'a:nve: _99 nInj'a:nve: _0C s'aU _0M1 Haz'a:R -_0M2 l'a:kh +_0M2 l'a:k# _0M3 kaR'o:R _0M4 'aRab -_0M5 'khaRab +_0M5 'k#aRab _dpt _ISaRI'Ia_ -// Exception of phonemes +// pronouns +یہ jE $u +کہ kE $u +وہ wo: $u +آپ $u +تم tUm $u +ہم Ham $u +اس Is $u +ان In $u +جس J'Is $u +جسے J'Ise: +کس k'Is +کسی k'Isi: +کسے k'Ise: +اسی 'Isi: +اسے 'Ise: +مجھ m'UJ# +مجھے m'UJ#e: +تجھے t'UJ#e: +جن J'In +جنھیں J,InH'e:n +انھوں ,UnH'o:n +انھیں ,InH'e:n + +// unstressed prepositions +کا $u +کی $u +کے $u +سے $u + +اور OR $u $brk + +// unstressed verbs +ہے $u +ہیں $u +تھا $u +تھی $u +تھے $u + +// Pronunciation exceptions پاکستان p'a:k'i:st'a:n +سندھ s'Ind# +کچھ k'Uc# +لنکس l'Ink,s +لفظ l'afz. +سرچ s'aRc +وقت v'aqt +مبصرین m,Ubas.IR'i:n +متحدہ mUt'aHIda +جبکہ J,abk'e:H +مسلح m,Usal'aH +متفق mUt'afIq +سابق s'a:bIq +برسر b,aRs'aR +اعلان e:l'a:n +سنئیے sUn'i:;e: +کلنگ k'IlIn,g +چیف c'i:f +جسٹس J'ast.,Is +شکایت S,Ika:j'at +شکست SIk'ast +منزل m'anz,Il +شعر S'e:R +فعل f'e:l +خصوصی xUs.'u:s.i: +خصوصیت x,Us.u:s.i:;'at +دنیا dUn'i:;a: +مختلف m,Uxt'alIf +قوانین q,ava:n'i:n +ختم x'atm +بزرگ b'UzUR,g +بزرگوں b,UzURg'o:n +شامل S'a:mIl +شمولیت S,Umu:li:;'at +بہت b'aHUt +دن d'In +دنوں dIn'o:n +مصر m'Is.R +مصری m'Is.R,i: +مختصر m,Uxtas.'aR +پھر p#'IR +پھرا p#'IRa: +منتخب m,Unt'ax@b +منتقل m,Unt'aqIl +نیا n'aja: +سرخی s'URx,i: +صفحہ s.'afH,a: +خالص x'a:lIs. +باہر ba:H'aR +دیا d'i:;a: +انڈیا ,Ind.'i:;a: +مظاہرین m,Uz.a:HIR'i:n +فائرنگ f'a:jIR,Ing +ڈائریکٹر d.,a:jIR,e:kt.'aR +فرقہ f'IRqa +شدت SId'at +بالخصوص b,IlxUs.'u:s. +اردو 'URd,u: +احتجاجی 'e:Hte:J,a:Ji: +احتجاج 'e:HtIJ,a:J +بدھ b'Ud# +تجزیے t,aJz'i:;e: +دوست d'o:st +زندگی z,Ind'agi: +دل d'Il +شعری S'e:Ri: +شہر S'e:HIR +اعزاز e:z'a:z +صرف s.'IRf +طبی t'Ibi: +طب t'Ib +مقرر m,UqaR'aR +تقرری taq'aRUR,i: +تقرر taq'aRUR +مناسب mUn'a:sIb +مناسبت m,Una:sIb'at +اول 'avval +جارحیت J,a:RIHi:;'at +متحد mUt'aHId +محبت m,UHab'at +محمد m,UHam'ad +مکمل m,Ukam'al +مل m'Il +ملے m'Ile: +ملی m'Ili: +گزشتہ gUz'aSta +رشتہ R'ISta +اخر 'a:xIR +آنکھ 'a:nk# +شکار SIk'a:R +جلد J'ald +مواد mav'a:d +مطابق mUt'a:bIq +حاصل H'a:s.Il +شدہ S'Ud,a +بغیر baQ'e:R +ممکن m'Umk,In +ممکنہ m'Unk,In,a +طرح taR'aH +الیکشن ,Ile:kS'an +ووٹنگ vo:t.'Ing +شواہد Sav'a:HId +محض me:He:z +حزب H'Izb +مخالف mUx'a:lIf +استعمال ,Iste:m'a:l +مخالفت m,Uxa:lIf'at +مخالفین m,Uxa:lIf'i:n +عشق 'ISq +عمدہ 'Umda +مارچ m'a:Rc +چرچ c'aRc +دہشت d'e:HS'at +وحشت v,e:HS'at +درست d'URUst +صحت s.e:H'at +فلم f'Ilm +فلمی f'Ilm,i: +مسلسل m,Usals'al +تسلسل tas'als,Ul +تشدد taS'adUd +پرتشدد p,URtaS'adUd +حجوم HUJ'u:m +پرحجوم p,URHUJ'u:m +تحفظ taH'afUz. +تحفظات t,aHafUz.'a:t +حفاظت H,Ifa:z.'at +ہمت HIm'at +سمیت sam'e:t +اگرچہ ,agaRc'e:H +بلکہ b,alk'e:H +حصہ H'Is.,a +حصے H'Is.e: +حصوں HIs.'o:n +حساب HIs'a:b +ہوئیں Hu:'i:n +ہوئی H'u:i: +ہوئے H'u:e: +اندسٹری ,Ind.'ast.Ri: +بخود b'axUd +تعین t'a:jUn +باعث b'a:jIs +کتب k'UtUb +سلسلہ s'Ils,Il,a +سلسلے s'Ils,Ile: +بحث be:He:s +قسمت q,Ism'at +آور a:v'aR +بظاہر baz.'a:HIR +ظاہر z.'a:HIR +حکم H'Ukm diff --git a/dictsource/ur_rules b/dictsource/ur_rules index 18542979..e128c6e2 100644 --- a/dictsource/ur_rules +++ b/dictsource/ur_rules @@ -1,4 +1,4 @@ - + // This ur_rules file is written by Him Prasad Gautam (Kathmandu, Nepal). // This file is UTF8 encoded // phoneme rules for Urdu @@ -15,11 +15,12 @@ ٧ 7 ٨ 8 ٩ 9 +ي ی // vowel signs, alif acts as consonants at start of word if these follow -.L01 َ ِ ُ و ی ع ا +.L01 َ ِ ُ و ی ع ا ے // VOWELS @@ -51,7 +52,35 @@ _) ا (L01 // Acts like Consonants if followed by a vowel but is silent. _) ا a _) او u: -_) ای i: +_) ای e: + ائ a:j + اہ(_ a:H + _) اتن 'Itn + _) اتر Ut'aR + _) اتر (L01 UtR + _) الٹ Ul'at. + _) الٹ (L01 Ult. + _) الجھ Ul'aJh + _) الجھ (L01 UlJh + _) ابھر Ubh'aR + _) ابھر (L01 UbhR + _) اچھل Uch'al + _) اچھل (L01 Uchl + _) اجڑ UJ'ar. + _) اجڑ (L01 UJr. + افتتاح ,ItIt'a:H + اسلام ,Isl'a:m + _) انسان Ins'a:n + _) انت 'Int,a + _) امید Um'i:d + اً(_ 'an + _) امکان ,Imk'a:n + _) افسر ,afs'aR + _) اتفاق ,ItIf'a:q + _) ابتدا 'Ibt,Ida: + _) ایمان i:m'a:n + _) اعت 'e:tI + _) اضاف Iz'a:f .group آ آ a: @@ -61,6 +90,7 @@ _) ای i: ع a: عا a: _) ع a + _) عیس 'i:s .group و @@ -68,14 +98,21 @@ _) ای i: وُ u: وٗ u: و (L01 v - _) و v + _) و vV + وع (_ u: + وّ vv + .group ی ی e: ی (L01 j ی (_ i: - _) ی j - + _) ی jV + یع(_ i: + @) ی i: + یں(_ e:n + یّ jj + @) یت(_ j'at .group ے // yeh barree ے e: @@ -95,81 +132,142 @@ _) ای i: .group ب ب bV - بھ bhV - بھ (L01 bh + بھ b#V + بھ (L01 b# ب (L01 b + بّ bbV + بّ (L01 bb + _) بگڑ bIg'ar. + _) بگڑ (L01 b'Igr. + _) بکھر bIkh'aR + _) بکھر (L01 b'IkhR + _) بچھڑ bIch'ar. + _) بچھڑ (L01 bIchr. + _) بجھ b'UJh + بھوک bh'u:k + بھیک bh'i:k + بھیگ bh'i:g + بھول bh'u:l + .group پ پ pV - پھ phV + پھ p#V پ (L01 p - پھ (L01 ph + پھ (L01 p# + پّ ppV + پّ (L01 pp + _) پھر ph'IR + پھول ph'u:l + _) پہل (L01 p'e:Hl .group ت ت tV - تھ thV + تھ t#V ت (L01 t - تھ (L01 th + تھ (L01 t# + تّ ttV + تّ (L01 tt + .group ٹ ٹ t.V - ٹھ th.V + ٹھ t.#V ٹ (L01 t. - ٹھ (L01 th. + ٹھ (L01 t.# + ٹّ t.t.V + ٹّ (L01 t.t. + .group ث ث sV ث (L01 s + ثّ ssV + ثّ (L01 ss + .group ج ج JV - جھ JhV + جھ J#V ج (L01 J - جھ (L01 Jh + جھ (L01 J# + جّ JJV + جّ (L01 JJ + _) جیت J'i:t + _) جوا J'ava: .group چ چ cV - چھ chV + چھ c#V چ (L01 c - چھ (L01 ch + چھ (L01 c# + چّ ccV + چّ (L01 cc + .group ح ح HV ح (L01 H + ح (_ H + حّ HHV + حّ (L01 HH + .group خ خ xV خ (L01 x + خت(_ xt + خّ xxV + خّ (L01 xx + _) خوش x'US + _) خود x'Ud + _) خواہش xv'a:HIS + .group د د dV - دھ dhV + دھ d#V د (L01 d - دھ (L01 dh + دھ (L01 d# + دّ ddV + دّ (L01 dd + .group ڈ ڈ d.V - ڈھ dh.V + ڈھ d.#V ڈ (L01 d. - ڈھ (L01 dh. + ڈھ (L01 d.# + ڈّ d.d.V + ڈّ (L01 d.d. .group ذ ذ DV ذ (L01 D + ذّ DDV + ذّ (L01 DD .group ر ر RV ر (L01 R + رّ RRV + رّ (l01 RR .group ڑ ڑ r.V ڑ (L01 r. + ڑّ r.r.V + ڑّ (L01 r.r. + ڑھ r.hV + ڑھ (L01 r.h .group ز ز zV ز (L01 z + زّ zzV + زّ (L01 zz .group ژ ژ ZV @@ -178,64 +276,113 @@ _) ای i: .group س س sV س (L01 s + سّ ssV + سّ (L01 ss + _) سرخ s'URx + _) سن (L01 s'Un + _) سلجھ sUl'aJh + _) سلجھ (L01 sUlJh + _) سدھر sUdh'aR + _) سدھر (L01 sUdhR .group ش ش SV ش (L01 S + شّ SSV + شّ (L01 SS .group ص ص s.V ص (L01 s. + صّ ssV + صّ (L01 ss .group ض ض zV ض (L01 z + ضّ zzv + ضّ (L01 zz .group ط ط tV - طھ thV + طھ t#V ط (L01 t - طھ (L01 th + طھ (L01 t# + طّ ttV + طّ (L01 tt .group ظ ظ z.V ظ (L01 z. + ظّ z.z.V + ظّ (L01 z.z. .group غ غ QV غ (L01 Q + غّ QQV + غّ (L01 QQ .group ف ف fV ف (L01 f + فّ ffV + فّ (L01 ff .group ق ق qV ق (L01 q + قّ qqV + قّ (L01 qq .group ک ک kV - کھ khV + کھ k#V ک (L01 k - کھ (L01 kh + کھ (L01 k# + کّ kkV + کّ (L01 kk + _) کتن k'Itn .group گ گ gV - گھ ghV + گھ g#V گ (L01 g - گھ (L01 gh + گھ (L01 g# + گّ ggV + گّ (L01 gg + _) گرفت g'IRIft + _) گزر gUz'aR + _) گزر (L01 gUzR .group ل ل lV ل (L01 l + لّ llV + لّ (L01 ll + لکھ l'Ik# .group م م mV م (L01 m + مّ mmV + مّ (L01 mm + _) مشکل m'USk,Il .group ن ن nV ن (L01 n + @) ن (گ n + @) ن (د n + @) ن (ب n + @) ن (س n + نّ nnV + نّ (L01 nn + _) نکل nIk'al + _) نکل (L01 nIkl + @) ن (چ n + _) نکال nIk'a:l + _) نگاہ nIg'a:H .group ں ں n // this should nasalize the vowel @@ -243,10 +390,22 @@ _) ای i: .group ء ء -.group ہ +.group ہ ہ H + _) ہ Ha + _) ہ (L01 H + _) ہ (ند HI + ہّ HHV + ہّ (L01 HH + ہ (_ a +.group ّ + ّ + +.group ً + ً + // Common symbols diff --git a/dictsource/vi_rules b/dictsource/vi_rules index fa8ef8d3..7c7c4769 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -77,28 +77,42 @@ ỵ ỵ //================================ // Consonants //================================ +.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 +.L02 n + .group b b b _) b _b +//b($w_alt2 _^_EN .group c c g //k c (_ kh ch c // try [tS;] [tS] [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 f + _) f _^_EN + f (_ _^_EN + + .group g g Q // try [g] [Q] gh Q // or [g] [Q] @@ -107,7 +121,7 @@ ỵ ỵ //g (í J^ //g (ỉ J^ //g (ĩ J^ - //g (ị J^ + //g (ị J^ gi J^ ?1 giết J^'iE3g giết J^'iE3t[ @@ -115,25 +129,35 @@ ỵ ỵ ?1 giệt J^'iE6g giệt J^'iE6t[ giệc J^'iE6kh + _) gol _^_EN + _) gat _^_EN + ght (_ _^_EN + .group h h h - - + + .group j j Z .group k k k - k (_ kh + //k (_ kh kh x - + k (_ _^_EN + + .group l l l + l (_ _^_EN + le (_ _^_EN + .group m m m + .group n n n @@ -141,49 +165,75 @@ ỵ ỵ 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 (_ _^_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 th t tr cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;] + ts (_ _^_EN + te (_ _^_EN + th (_ _^_EN + tt (_ _^_EN + .group v v v - + 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: @@ -211,92 +261,122 @@ ỵ ỵ aủ aU4 aũ aU5 aụ aU6 + a (L01 _^_EN + ai (L02 _^_EN + .group à à a:2 ài a:I2 ày aI2 ào a:U2 àu aU2 - + + .group á á a:3 ái a:I3 áy aI3 áo a:U3 áu aU3 - + + .group ả ả a:4 ải a:I4 ảy aI4 ảo a:U4 ảu aU4 - + + .group ã ã a:5 ãi a:I5 ãy aI5 ão a:U5 ãu aU5 - + + .group ạ ạ a:6 ại a:I6 ạy aI6 ạo a:U6 ạu aU6 - + + //================================ .group ă ă a + + .group ằ ằ a2 + + .group ắ ắ a3 + + .group ẳ ẳ a4 + + .group ẵ ẵ a5 + + .group ặ ặ a6 - + + //================================= .group â â @ ây @I - âu @U1 + âu @U1 + + .group ầ ầ @2 ầy @I2 ầu @U2 + + .group ấ ấ @3 ấy @I3 ấu @U3 + + .group ẩ ẩ @4 ẩy @I4 ẩu @U4 + + .group ẫ ẫ @5 ẫy @I5 ẫu @U5 + + .group ậ ậ @6 ậy @I6 ậu @U6 - + + //=========================== .group e e E @@ -306,56 +386,78 @@ ỵ ỵ eỏ EU4 eỗ EU5 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 + + .group ề ề e2 ều eU2 + + .group ế ế e3 ếu eU3 + + .group ể ể e4 ểu eU4 + + .group ễ ễ e5 ễu eU5 + + .group ệ ệ e6 ệu eU6 - - + //============================ + .group i i i i (A j @@ -383,40 +485,46 @@ ỵ ỵ iểu iU4 iễu iU5 iệu iU6 + i (L01 _^_EN + .group ì ì i2 ì (A j2 ìa i@2 ìu iU2 - + + .group í í i3 í (A j3 ía i@3 íu iU3 - + + .group ỉ ỉ i4 ỉ (A j4 ỉa i@4 ỉu iU4 - + + .group ĩ ĩ i5 ĩ (A j5 ĩa i@5 ĩu iU5 - + + .group ị ị i6 ị (A j6 ịa i@6 ịu iU6 - - - + + //========================= + .group o o O oa o@ // modify oa sound example: hoa,khoa // o (A w @@ -428,13 +536,17 @@ ỵ ỵ oị OI6 ong O# oe o& // Adding oe sound example: lóe sáng,toét mắt - + o (L01 _^_EN + + .group ò ò O2 òi OI2 òa o@2 //ò (A w2 òng O#2 òe o&2 + + .group ó ó O3 @@ -442,6 +554,8 @@ ỵ ỵ óa o@3 //ó (A w3 óng O#3 óe o&3 + + .group ỏ ỏ O4 @@ -449,6 +563,8 @@ ỵ ỵ ỏa o@4 //ỏ (A w4 ỏng O#4 ỏe o&4 + + .group õ õ O5 @@ -456,6 +572,8 @@ ỵ ỵ õa o@5 //õ (A w5 õng O#5 õe o&5 + + .group ọ ọ O6 @@ -463,75 +581,98 @@ ỵ ỵ ọa o@6 //ọ (A w6 ọng O#6 ọe o&6 - + + //============================= + .group ô ô o ôi oI ông o# // ông sound - + + .group ồ ồ o2 ồi oI2 ồng o#2 + + .group ố ố o3 ối oI3 ống o#3 + + .group ổ ổ o4 ổi oI4 ổng o#4 + + .group ỗ ỗ o5 ỗi oI5 ỗng o#5 + + .group ộ ộ o6 ội oI6 ộng o#6 - - - + + + //============================= + .group ơ ơ @: ơi @:I ơu @:U + + .group ờ ờ @:2 ời @:I2 ờu @:U2 + + .group ớ ớ @:3 ới @:I3 ớu @:U3 + + .group ở ở @:4 ởi @:I4 ởu @:U4 + + .group ỡ ỡ @:5 ỡi @:I5 ỡu @:U5 + + .group ợ ợ @:6 ợi @:I6 ợu @:U6 - - + + //============================= + .group u u u u (A w @@ -561,12 +702,19 @@ ỵ ỵ uỗi u@j5 uội u@j6 //ung u# + u (L01 _^_EN + ui (L01 _^_EN + ua (L01 _^_EN + + .group ù ù u2 ù (A w2 ùi uI2 ùa u@2 //ùng u#2 + + .group ú ú u3 @@ -574,6 +722,8 @@ ỵ ỵ úi uI3 úa u@3 //úng u#3 + + .group ủ ủ u4 @@ -581,6 +731,8 @@ ỵ ỵ ủi uI4 ủa u@4 //ủng u#4 + + .group ũ ũ u5 @@ -588,6 +740,8 @@ ỵ ỵ ũi uI5 ũa u@5 //ũng u#5 + + .group ụ ụ u6 @@ -595,8 +749,10 @@ ỵ ỵ ụi uI6 ụa u@6 //ụng u#6 - + + //============================= + .group ư ư y ưi yI @@ -620,38 +776,49 @@ ỵ ỵ ưở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 @@ -669,35 +836,49 @@ ỵ ỵ yễ i@5 yệ i@6 // yêu i@U + + .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 @@ -717,9 +898,12 @@ ỵ ỵ ν nw'i1 ξ s'i7 ο o1_|m'i1_|kz.'O7n + + .group 0xcf // Greek letters - + + π p'i1 ρ z.'o1 σ s'i3c_|m'a:1 @@ -733,26 +917,29 @@ ỵ ỵ ω 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_: - ! (\! + ! (\! // : koUl@n D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30 $ d'o||l'a != 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/docs/phonemes.html b/docs/phonemes.html index 0c3f80e4..c0ab5fc7 100644 --- a/docs/phonemes.html +++ b/docs/phonemes.html @@ -24,8 +24,8 @@ Phoneme mnemonics can be used directly in the text input to espeak -[p] -[b] +[p] +[b] [t] [d] @@ -92,7 +92,7 @@ In rhotic accents, such as General American, the phonemes [3:], [A@], [e@]
[@] -alphaschwa +alphaschwa
[3] betterrhotic schwa. In British English this is the same as [@], but it includes 'r' colouring in American and other rhotic accents. In these cases a separate [r] should not be included unless it is followed immediately by another vowel. @@ -105,7 +105,7 @@ In rhotic accents, such as General American, the phonemes [3:], [A@], [e@]
[a]trap
[aa]bathThis is [a] in some accents, [A:] in others. -
[a2]aboutThis may be [@] or may be a more open schwa. +
[a#]aboutThis may be [@] or may be a more open schwa.
[A:]palm
[A@]start

@@ -161,7 +161,8 @@ Other languages will have their own vowel definitions, eg:

- +

+ [:] can be used to lengthen a vowel, eg [e:] diff --git a/espeak-data/voices/test/fa b/espeak-data/voices/asia/fa similarity index 100% rename from espeak-data/voices/test/fa rename to espeak-data/voices/asia/fa diff --git a/espeak-data/voices/test/fa-pin b/espeak-data/voices/asia/fa-pin similarity index 100% rename from espeak-data/voices/test/fa-pin rename to espeak-data/voices/asia/fa-pin diff --git a/espeak-data/voices/hi b/espeak-data/voices/asia/hi similarity index 100% rename from espeak-data/voices/hi rename to espeak-data/voices/asia/hi diff --git a/espeak-data/voices/hy b/espeak-data/voices/asia/hy similarity index 100% rename from espeak-data/voices/hy rename to espeak-data/voices/asia/hy diff --git a/espeak-data/voices/hy-west b/espeak-data/voices/asia/hy-west similarity index 100% rename from espeak-data/voices/hy-west rename to espeak-data/voices/asia/hy-west diff --git a/espeak-data/voices/id b/espeak-data/voices/asia/id similarity index 86% rename from espeak-data/voices/id rename to espeak-data/voices/asia/id index ce800f70..f35b116a 100644 --- a/espeak-data/voices/id +++ b/espeak-data/voices/asia/id @@ -1,4 +1,4 @@ -name indonesian-test +name indonesian language id gender male diff --git a/espeak-data/voices/asia/ka b/espeak-data/voices/asia/ka new file mode 100644 index 00000000..6f748b7f --- /dev/null +++ b/espeak-data/voices/asia/ka @@ -0,0 +1,2 @@ +name georgian +language ka diff --git a/espeak-data/voices/kn b/espeak-data/voices/asia/kn similarity index 100% rename from espeak-data/voices/kn rename to espeak-data/voices/asia/kn diff --git a/espeak-data/voices/ku b/espeak-data/voices/asia/ku similarity index 100% rename from espeak-data/voices/ku rename to espeak-data/voices/asia/ku diff --git a/espeak-data/voices/ml b/espeak-data/voices/asia/ml similarity index 100% rename from espeak-data/voices/ml rename to espeak-data/voices/asia/ml diff --git a/espeak-data/voices/test/ne b/espeak-data/voices/asia/ne similarity index 68% rename from espeak-data/voices/test/ne rename to espeak-data/voices/asia/ne index e9671231..fc829532 100644 --- a/espeak-data/voices/test/ne +++ b/espeak-data/voices/asia/ne @@ -1,4 +1,4 @@ -name nepali-test +name nepali language ne gender male diff --git a/espeak-data/voices/test/pa b/espeak-data/voices/asia/pa similarity index 100% rename from espeak-data/voices/test/pa rename to espeak-data/voices/asia/pa diff --git a/espeak-data/voices/ta b/espeak-data/voices/asia/ta similarity index 100% rename from espeak-data/voices/ta rename to espeak-data/voices/asia/ta diff --git a/espeak-data/voices/tr b/espeak-data/voices/asia/tr similarity index 100% rename from espeak-data/voices/tr rename to espeak-data/voices/asia/tr diff --git a/espeak-data/voices/vi b/espeak-data/voices/asia/vi similarity index 100% rename from espeak-data/voices/vi rename to espeak-data/voices/asia/vi diff --git a/espeak-data/voices/vi-hue b/espeak-data/voices/asia/vi-hue similarity index 100% rename from espeak-data/voices/vi-hue rename to espeak-data/voices/asia/vi-hue diff --git a/espeak-data/voices/zh b/espeak-data/voices/asia/zh similarity index 97% rename from espeak-data/voices/zh rename to espeak-data/voices/asia/zh index 03edde41..559a6403 100644 --- a/espeak-data/voices/zh +++ b/espeak-data/voices/asia/zh @@ -4,6 +4,8 @@ gender male words 1 pitch 80 118 +dict_min 100000 + //for some dialects //[en]: replace ng with n diff --git a/espeak-data/voices/zh-yue b/espeak-data/voices/asia/zh-yue similarity index 92% rename from espeak-data/voices/zh-yue rename to espeak-data/voices/asia/zh-yue index 0269a98a..8e2b8a7e 100644 --- a/espeak-data/voices/zh-yue +++ b/espeak-data/voices/asia/zh-yue @@ -12,3 +12,4 @@ gender male dictrules 1 words 1 +dict_min 10000 diff --git a/espeak-data/voices/en/en b/espeak-data/voices/en similarity index 77% rename from espeak-data/voices/en/en rename to espeak-data/voices/en index c96248f6..59ed2ce2 100644 --- a/espeak-data/voices/en/en +++ b/espeak-data/voices/en @@ -4,9 +4,6 @@ language en-gb 2 language en 2 gender male -replace 03 I i -replace 03 I2 i - //pitch 80 118 tunes s1 c1 q1 e1 diff --git a/espeak-data/voices/en/en-us b/espeak-data/voices/en-us similarity index 100% rename from espeak-data/voices/en/en-us rename to espeak-data/voices/en-us diff --git a/espeak-data/voices/test/bg b/espeak-data/voices/europe/bg similarity index 82% rename from espeak-data/voices/test/bg rename to espeak-data/voices/europe/bg index 688d9fd6..c3842ca7 100644 --- a/espeak-data/voices/test/bg +++ b/espeak-data/voices/europe/bg @@ -1,4 +1,4 @@ -name bulgarian-test +name bulgarian language bg stressAmp 13 12 17 17 20 22 22 21 diff --git a/espeak-data/voices/bs b/espeak-data/voices/europe/bs similarity index 100% rename from espeak-data/voices/bs rename to espeak-data/voices/europe/bs diff --git a/espeak-data/voices/ca b/espeak-data/voices/europe/ca similarity index 100% rename from espeak-data/voices/ca rename to espeak-data/voices/europe/ca diff --git a/espeak-data/voices/cs b/espeak-data/voices/europe/cs similarity index 100% rename from espeak-data/voices/cs rename to espeak-data/voices/europe/cs diff --git a/espeak-data/voices/cy b/espeak-data/voices/europe/cy similarity index 70% rename from espeak-data/voices/cy rename to espeak-data/voices/europe/cy index 2991e99d..30abd943 100644 --- a/espeak-data/voices/cy +++ b/espeak-data/voices/europe/cy @@ -1,5 +1,5 @@ language cy -name welsh-test +name welsh gender male intonation 4 diff --git a/espeak-data/voices/da b/espeak-data/voices/europe/da similarity index 100% rename from espeak-data/voices/da rename to espeak-data/voices/europe/da diff --git a/espeak-data/voices/el b/espeak-data/voices/europe/el similarity index 100% rename from espeak-data/voices/el rename to espeak-data/voices/europe/el diff --git a/espeak-data/voices/es b/espeak-data/voices/europe/es similarity index 100% rename from espeak-data/voices/es rename to espeak-data/voices/europe/es diff --git a/espeak-data/voices/et b/espeak-data/voices/europe/et similarity index 100% rename from espeak-data/voices/et rename to espeak-data/voices/europe/et diff --git a/espeak-data/voices/fi b/espeak-data/voices/europe/fi similarity index 100% rename from espeak-data/voices/fi rename to espeak-data/voices/europe/fi diff --git a/espeak-data/voices/fr-be b/espeak-data/voices/europe/fr-be similarity index 100% rename from espeak-data/voices/fr-be rename to espeak-data/voices/europe/fr-be diff --git a/espeak-data/voices/europe/ga b/espeak-data/voices/europe/ga new file mode 100644 index 00000000..27e5f8b9 --- /dev/null +++ b/espeak-data/voices/europe/ga @@ -0,0 +1,4 @@ +name Irish Gaeilge +language ga + +dictrules 1 // fix for eclipsis diff --git a/espeak-data/voices/hr b/espeak-data/voices/europe/hr similarity index 100% rename from espeak-data/voices/hr rename to espeak-data/voices/europe/hr diff --git a/espeak-data/voices/hu b/espeak-data/voices/europe/hu similarity index 100% rename from espeak-data/voices/hu rename to espeak-data/voices/europe/hu diff --git a/espeak-data/voices/is b/espeak-data/voices/europe/is similarity index 55% rename from espeak-data/voices/is rename to espeak-data/voices/europe/is index 9e9c4e74..b8f23834 100644 --- a/espeak-data/voices/is +++ b/espeak-data/voices/europe/is @@ -1,4 +1,4 @@ -name icelandic-test +name icelandic language is gender male diff --git a/espeak-data/voices/it b/espeak-data/voices/europe/it similarity index 100% rename from espeak-data/voices/it rename to espeak-data/voices/europe/it diff --git a/espeak-data/voices/test/lt b/espeak-data/voices/europe/lt similarity index 100% rename from espeak-data/voices/test/lt rename to espeak-data/voices/europe/lt diff --git a/espeak-data/voices/lv b/espeak-data/voices/europe/lv similarity index 100% rename from espeak-data/voices/lv rename to espeak-data/voices/europe/lv diff --git a/espeak-data/voices/mk b/espeak-data/voices/europe/mk similarity index 54% rename from espeak-data/voices/mk rename to espeak-data/voices/europe/mk index 4607dd07..47a8398c 100644 --- a/espeak-data/voices/mk +++ b/espeak-data/voices/europe/mk @@ -1,4 +1,4 @@ -name macedonian-test +name macedonian language mk gender male diff --git a/espeak-data/voices/nl b/espeak-data/voices/europe/nl similarity index 100% rename from espeak-data/voices/nl rename to espeak-data/voices/europe/nl diff --git a/espeak-data/voices/no b/espeak-data/voices/europe/no similarity index 100% rename from espeak-data/voices/no rename to espeak-data/voices/europe/no diff --git a/espeak-data/voices/pl b/espeak-data/voices/europe/pl similarity index 100% rename from espeak-data/voices/pl rename to espeak-data/voices/europe/pl diff --git a/espeak-data/voices/pt-pt b/espeak-data/voices/europe/pt-pt similarity index 100% rename from espeak-data/voices/pt-pt rename to espeak-data/voices/europe/pt-pt diff --git a/espeak-data/voices/ro b/espeak-data/voices/europe/ro similarity index 100% rename from espeak-data/voices/ro rename to espeak-data/voices/europe/ro diff --git a/espeak-data/voices/ru b/espeak-data/voices/europe/ru similarity index 59% rename from espeak-data/voices/ru rename to espeak-data/voices/europe/ru index 238c6912..4136ab21 100644 --- a/espeak-data/voices/ru +++ b/espeak-data/voices/europe/ru @@ -1,6 +1,7 @@ -name russian_test +name russian language ru gender male replace 03 a a# +dict_min 20000 diff --git a/espeak-data/voices/sk b/espeak-data/voices/europe/sk similarity index 100% rename from espeak-data/voices/sk rename to espeak-data/voices/europe/sk diff --git a/espeak-data/voices/sq b/espeak-data/voices/europe/sq similarity index 100% rename from espeak-data/voices/sq rename to espeak-data/voices/europe/sq diff --git a/espeak-data/voices/sr b/espeak-data/voices/europe/sr similarity index 100% rename from espeak-data/voices/sr rename to espeak-data/voices/europe/sr diff --git a/espeak-data/voices/sv b/espeak-data/voices/europe/sv similarity index 100% rename from espeak-data/voices/sv rename to espeak-data/voices/europe/sv diff --git a/espeak-data/voices/ka b/espeak-data/voices/ka deleted file mode 100644 index bc2def28..00000000 --- a/espeak-data/voices/ka +++ /dev/null @@ -1,2 +0,0 @@ -name georgian-test -language ka diff --git a/espeak-data/voices/af b/espeak-data/voices/other/af similarity index 100% rename from espeak-data/voices/af rename to espeak-data/voices/other/af diff --git a/espeak-data/voices/en/en-n b/espeak-data/voices/other/en-n similarity index 100% rename from espeak-data/voices/en/en-n rename to espeak-data/voices/other/en-n diff --git a/espeak-data/voices/en/en-rp b/espeak-data/voices/other/en-rp similarity index 100% rename from espeak-data/voices/en/en-rp rename to espeak-data/voices/other/en-rp diff --git a/espeak-data/voices/en/en-sc b/espeak-data/voices/other/en-sc similarity index 100% rename from espeak-data/voices/en/en-sc rename to espeak-data/voices/other/en-sc diff --git a/espeak-data/voices/en/en-wi b/espeak-data/voices/other/en-wi similarity index 100% rename from espeak-data/voices/en/en-wi rename to espeak-data/voices/other/en-wi diff --git a/espeak-data/voices/en/en-wm b/espeak-data/voices/other/en-wm similarity index 100% rename from espeak-data/voices/en/en-wm rename to espeak-data/voices/other/en-wm diff --git a/espeak-data/voices/eo b/espeak-data/voices/other/eo similarity index 73% rename from espeak-data/voices/eo rename to espeak-data/voices/other/eo index 36a4bff6..be18c0a7 100644 --- a/espeak-data/voices/eo +++ b/espeak-data/voices/other/eo @@ -1,3 +1,5 @@ name esperanto language eo gender male + +apostrophe 2 diff --git a/espeak-data/voices/test/grc b/espeak-data/voices/other/grc similarity index 100% rename from espeak-data/voices/test/grc rename to espeak-data/voices/other/grc diff --git a/espeak-data/voices/test/jbo b/espeak-data/voices/other/jbo similarity index 100% rename from espeak-data/voices/test/jbo rename to espeak-data/voices/other/jbo diff --git a/espeak-data/voices/la b/espeak-data/voices/other/la similarity index 100% rename from espeak-data/voices/la rename to espeak-data/voices/other/la diff --git a/espeak-data/voices/sw b/espeak-data/voices/other/sw similarity index 100% rename from espeak-data/voices/sw rename to espeak-data/voices/other/sw diff --git a/espeak-data/voices/test/ga b/espeak-data/voices/test/ga deleted file mode 100644 index 2467ea18..00000000 --- a/espeak-data/voices/test/ga +++ /dev/null @@ -1,4 +0,0 @@ -name irish-test -language ga -stressrule 0 - diff --git a/phsource/envelopes.png b/phsource/envelopes.png index b5bc5213..5876f8bc 100644 Binary files a/phsource/envelopes.png and b/phsource/envelopes.png differ diff --git a/phsource/j/je b/phsource/j/je index f746cb1e..83fd3f04 100644 Binary files a/phsource/j/je and b/phsource/j/je differ diff --git a/phsource/n/_n b/phsource/n/_n index 04cabf4d..dfe7244b 100644 Binary files a/phsource/n/_n and b/phsource/n/_n differ diff --git a/phsource/n/_nr b/phsource/n/_nr index c66889e0..672ace30 100644 Binary files a/phsource/n/_nr and b/phsource/n/_nr differ diff --git a/phsource/n/n@ b/phsource/n/n@ index 0f058bbe..24f9d627 100644 Binary files a/phsource/n/n@ and b/phsource/n/n@ differ diff --git a/phsource/n/na b/phsource/n/na index fa24b78e..dcf60727 100644 Binary files a/phsource/n/na and b/phsource/n/na differ diff --git a/phsource/n/ne b/phsource/n/ne index 86500b48..23a07eb6 100644 Binary files a/phsource/n/ne and b/phsource/n/ne differ diff --git a/phsource/n/ni b/phsource/n/ni index 561b331f..c71c8120 100644 Binary files a/phsource/n/ni and b/phsource/n/ni differ diff --git a/phsource/n/no b/phsource/n/no index 68e3c39d..cf3c7a1c 100644 Binary files a/phsource/n/no and b/phsource/n/no differ diff --git a/phsource/n/nr@ b/phsource/n/nr@ index caade63e..896f33ec 100644 Binary files a/phsource/n/nr@ and b/phsource/n/nr@ differ diff --git a/phsource/n/nra b/phsource/n/nra index d0b0861e..ef6649ea 100644 Binary files a/phsource/n/nra and b/phsource/n/nra differ diff --git a/phsource/n/nre b/phsource/n/nre index e43df7e7..98f75b24 100644 Binary files a/phsource/n/nre and b/phsource/n/nre differ diff --git a/phsource/n/nri b/phsource/n/nri index 0a086bc1..76afa2b8 100644 Binary files a/phsource/n/nri and b/phsource/n/nri differ diff --git a/phsource/n/nro b/phsource/n/nro index 1b0e6885..3e8b69e3 100644 Binary files a/phsource/n/nro and b/phsource/n/nro differ diff --git a/phsource/n/nru b/phsource/n/nru index 0a2577d3..cb54da92 100644 Binary files a/phsource/n/nru and b/phsource/n/nru differ diff --git a/phsource/n/nu b/phsource/n/nu index f52d3f13..53f8c563 100644 Binary files a/phsource/n/nu and b/phsource/n/nu differ diff --git a/phsource/ph_bengali b/phsource/ph_bengali new file mode 100644 index 00000000..1fceed4b --- /dev/null +++ b/phsource/ph_bengali @@ -0,0 +1,37 @@ + +//==================================================== +// Bengali, inherits from Hindi +//==================================================== + +phoneme @ + vowel flag1 starttype #@ endtype #@ + length 65 + + ChangeIfDiminished(@-) + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/@_bck) +endphoneme + + +phoneme V + vowel flag1 starttype #@ endtype #@ + length 180 + CALL hi/V +endphoneme + + +phoneme a: + vowel long starttype #a endtype #a + length 230 + FMT(vowel/aa_9) +endphoneme + + +phoneme o: + vowel long starttype #o endtype #o + length 220 + FMT(vowel/o_2) +endphoneme + diff --git a/phsource/ph_consonants b/phsource/ph_consonants index 97e98991..378729fb 100644 --- a/phsource/ph_consonants +++ b/phsource/ph_consonants @@ -120,6 +120,23 @@ phoneme kh WAV(ustop/k_asp, 90) endphoneme +phoneme k# + vls vel stop + lengthmod 2 + voicingswitch g + Vowelin f1=1 f2=1400 -100 100 f3=-150 80 + Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/k_asp, 40) + ENDIF + IF nextPhW(#e) OR nextPhW(#i) THEN + WAV(ustop/k_asp_e, 40) + ELIF nextPhW(#o) OR nextPhW(#u) THEN + WAV(ustop/k_asp_a, 25) + ELSE + WAV(ustop/k_asp_a, 30) + ENDIF +endphoneme phoneme s2 // second part of a long [s:] vls alv frc sibilant diff --git a/phsource/ph_danish b/phsource/ph_danish index c1c3cc8d..12a6aed7 100644 --- a/phsource/ph_danish +++ b/phsource/ph_danish @@ -1,31 +1,90 @@ +// PB General rules for vowels: +// Short vowels +// ACC: Short "pille" [p?el@-] +// AC[V]: Short "piler" [p?ilV] +// A[N]: Short "bange" [b?AN@-] +// Long vowels +// A + group #@ OR group #e: Long "ae" "aer" [&:@-] +// AC + group #@ OR group #e: Long "pile" [pi:l@-] +// AC[i]: Long "smidig" [smi:Di] phoneme @ vowel starttype #@ endtype #@ unstressed - length 110 + length 60 FMT(vowel/@_3) endphoneme +phoneme @- // very short schwa + vowel starttype #@ endtype #@ + unstressed nonsyllabic + ipa ə + IF nextPhW(*) OR nextPhW(r) THEN + ipa NULL // @-* is used to make 'r' + ENDIF + length 40 + FMT(vowel/@-) +endphoneme + // ToDo: change [@] to [a#] if adjacent to [r] or [R] phoneme 3 vowel starttype #a endtype #a unstressed - length 110 + length 40 FMT(vowel/a#_3) endphoneme +// PB sort of schwa [ɐ] (0250+032F) +// "spurgt" [sp'o3-d] – ipa [spˈoɐ̯d] +phoneme 3- // used for 'r' after a vowel (to create a diphthong) + liquid + lengthmod 7 + ipa ɐ̯ + FMT(r/a_) +endphoneme + phoneme i vowel starttype #i endtype #i - length 150 - IfNextVowelAppend(;) + length 90 //150 +// PB long vowel followed by consonant and certain vowels "gide" +IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN + length 150 +ENDIF +// "gider" TEST +IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN + length 90 +ENDIF +// PB long vowel followed by certain vowels - "pigen" [p'i@-n] +IF nextPhW(#@) OR nextPhW(#e) THEN + length 150 +ENDIF +// Only this vowel (in this case [i]) +IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN + length 150 +ENDIF +// This vowel is word end - longer because it sounds too short +// "sig", "si" +IF thisPh(isWordEnd) THEN + length 120 +ENDIF +// "vilje" - short followed by 2 consonants +IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 90 +ENDIF +// PB "tie", "stige", "krige" vowel + vowel: extra length +// What is causing this very short [i] in words with final [@-]? +// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n] +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN + length 240 +ENDIF FMT(vowel/i_4) endphoneme -// PB Experimental glottal i +// PB short i // sviret vs. svirret phoneme ?i vowel starttype #i endtype #i - length 95 + length 90 IfNextVowelAppend(;) FMT(vowel/i_4) endphoneme @@ -40,43 +99,129 @@ endphoneme phoneme e vowel starttype #e endtype #e - length 150 + length 90 //150 +// "delte", "mente" +IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN + length 150 +ENDIF +// PB "ring", "ringe" +IF nextPhW(N) THEN + length 90 +ENDIF +// PB "enig", "enige", "evig" +IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 150 +ENDIF +// Only "e" +IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN + length 150 +ENDIF +// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short +IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 90 +ENDIF FMT(vowel/e) endphoneme -// PB glottal e +// PB short e // "skille" vs. "skele", "pille" vs. "pile" phoneme ?e vowel starttype #e endtype #e - length 95 + length 90 FMT(vowel/e) endphoneme phoneme E vowel starttype #e endtype #e - length 150 + length 90 //150 +// "værelse", "breve" +IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN +// length 150 +ENDIF +// "ræve" +IF nextVowel(#@) OR nextVowel(#e) THEN + length 150 +ENDIF +// "ære", "kærester", "ærefrygt" - longer E +IF nextPhW(V) THEN + length 180 +ENDIF +// Only the letter "æ" - long +IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN + length 150 +ENDIF +// "stædig" [st'EDi] long +IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 150 +ENDIF +// "længe" - short - 2 consonants => 1 consonant +IF nextPhW(N) THEN + length 90 +ENDIF +// "værelse" [v'E3-Vls@_!] +IF nextPhW(3-) AND next2PhW(V) THEN + length 90 +ENDIF +// "mælkebøtte" - short followed by 2 consonants +IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 90 +ENDIF FMT(vowel/e_mid2) endphoneme -// PB Experimental glottal E +// PB short E // "læsse" vs. "læse" phoneme ?E vowel starttype #e endtype #e - length 95 + length 90 +// PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ] +// Changed now [f'?E3-V] but it won't do any harm +IF nextPhW(V) THEN + length 120 +ENDIF FMT(vowel/e_mid2) endphoneme phoneme & vowel starttype #e endtype #e - length 150 + ipa a + length 90 //150 +// "same", "sale", "bade" - consonant + gooup #e or group #@: long +IF next2PhW(#@) OR next2PhW(#e) THEN + length 150 +ENDIF +// ThisPh + gooup #e or group #@ +// "ae", "aer" vowel + vowel: extra length +IF nextPhW(#@) OR nextPhW(#e) THEN + length 240 +ENDIF +// This vowel is word end - longer because it sounds too short +// "ja", "Omaha" +IF thisPh(isWordEnd) THEN + length 120 +ENDIF +// Only this vowel (in this case [&]) +IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN + length 150 +ENDIF +// "stadig" [st&Di], "stadigt" [st&Dit] +IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 180 +ENDIF +// "Alfie", "alfer" - short before 2 consonants +IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 90 +ENDIF FMT(vowel/ee_2) endphoneme -// PB Experimental glottal a +// PB Short & // e.g. the last a in "staldkarl" +// "sale" vs. "sal" phoneme ?& + ipa a vowel starttype #e endtype #e - length 95 + length 90 FMT(vowel/ee_2) endphoneme @@ -84,44 +229,151 @@ endphoneme phoneme &# vowel starttype #e endtype #e length 120 +IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop + length 90 +ENDIF +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN + length 150 +ENDIF FMT(vowel/&) endphoneme -phoneme a - vowel starttype #a endtype #a - length 150 - FMT(vowel/a_2) +// PB short &# +// "revl" vs. "tremme" +phoneme ?&# + vowel starttype #e endtype #e + length 90 + FMT(vowel/&) endphoneme -phoneme A +//phoneme a +// vowel starttype #a endtype #a +// length 90 //150 +//IF nextPhW(#@) OR nextPhW(#e) THEN +// length 150 +//ENDIF +// FMT(vowel/a_2) +//endphoneme + +// PB short (glottal) a +// "bragt" +//phoneme ?a +// vowel starttype #a endtype #a +// length 90 +// FMT(vowel/a_2) +//endphoneme + +phoneme A // PB changed to a_8 vowel starttype #a endtype #a - length 150 - FMT(vowel/a_3) + length 90 //150 +// PB long vowel followed by consonant and certain vowels - "drabelig" +IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN + length 150 +ENDIF +// "far", "bastard" - a bit longer followed by [r] +IF nextPhW(r) AND nextPhW(isWordEnd) THEN + length 120 +ENDIF +// "bange" [bAN@-] - [N] = 2 consonants (ng) => short +IF nextPhW(N) THEN + length 90 +ENDIF + FMT(vowel/a_8) +endphoneme + +// PB short A +// "drab" vs. "drabelig" +phoneme ?A + vowel starttype #a endtype #a + length 90 +// "straffeattest", "straffe", "rapid" - a bit longer after R +IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN + length 110 +ENDIF + FMT(vowel/a_8) endphoneme phoneme u vowel starttype #u endtype #u - length 150 + length 90 //150 +// Short vowel followed by consonant and NOT consonant + 3 or V or @ +// "blus" vs. "bluse" and "bluser" + IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN +// glstop +// length 90 + ENDIF +// "suge", "uge", bluse +IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN + length 150 +ENDIF +// extra length followed by 3 or V or @ +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN +// length 240 +ENDIF +// "umulig" +IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN + length 180 +ENDIF +// Only "u" +IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN + length 150 +ENDIF FMT(vowel/u_bck) endphoneme // PB glottal u -// "gud" vs. "guden" - [guD] [g?D@n] +// "tude" vs. "tuden" - [tuD3] [t?uD@n] phoneme ?u vowel starttype #u endtype #u - length 95 + length 90 FMT(vowel/u_bck) endphoneme phoneme o vowel starttype #o endtype #o length 150 +IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop + length 90 +ENDIF +// "tro" +IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 90 +ENDIF +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN + length 150 +ENDIF +// "modig" - long vowel after consonant + [i] +IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN + length 150 +ENDIF + FMT(vowel/o_2) +endphoneme + +// PB Short o +// "patron" vs. "kone" +phoneme ?o + vowel starttype #o endtype #o + length 95 FMT(vowel/o_2) endphoneme phoneme O vowel starttype #o endtype #o - length 150 + length 90 // 150 +// PB "sove", "sover" - consonant + #e or #@: long +IF next2PhW(#@) OR next2PhW(#e) THEN + length 150 +ENDIF +// PB "gået" - ThisPh + #e or #@ +IF nextPhW(#e) OR nextPhW(#@) THEN + length 150 +ENDIF +// "rådig" +IF nextVowel(i) AND nextVowel(isFinalVowel) THEN + length 180 +ENDIF FMT(vowel/o_5) endphoneme @@ -129,67 +381,195 @@ endphoneme // "toget" vs. "tåget" phoneme ?O vowel starttype #o endtype #o - length 95 + length 90 FMT(vowel/o_5) endphoneme phoneme V vowel starttype #@ endtype #@ length 150 +// "sport" [spV:t] +IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop + length 90 +ENDIF +IF nextPh(3) OR nextPh(V) OR nextPh(@) THEN + length 150 +ENDIF +// PB short V in "holder", "solder" +IF nextPhW(isNotVowel) AND next2Ph(V) THEN + length 90 +ENDIF +// PB "snorke", "snorker", årlig +IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN + length 180 +ENDIF +// "sove" [sVw3] - longer followed by w + 3 +IF nextPhW(w) AND next2PhW(3) THEN + length 220 +ENDIF + FMT(vowel/V_4) +endphoneme + +// PB Short å +// "forstår" vs. "kåre" +phoneme ?V + vowel starttype #@ endtype #@ + length 100 FMT(vowel/V_4) endphoneme phoneme 0 vowel starttype #o endtype #o length 150 +IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop + length 90 +ENDIF +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN + length 150 +ENDIF FMT(vowel/oo_2) endphoneme +// ?B short 0 "sukker" +phoneme ?0 + vowel starttype #o endtype #o + length 90 + FMT(vowel/oo_2) +endphoneme phoneme y vowel starttype #i endtype #i - length 150 +// Length changed to short since most vowels are short. +// It's probably easier only to make rules for long vowels. + length 90 //150 + +// PB long vowel followed by consonant and certain vowels +// "lyde", "lyder" +IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN + length 150 +ENDIF +// Only this vowel (in this case [y]) +IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN + length 150 +ENDIF +// "dydig" [dyDi] +IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 150 +ENDIF +// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] +IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN + length 200 +ENDIF +// "tyve" +IF nextPhW(?u) AND next2PhW(@-) THEN + length 150 +ENDIF FMT(vowel/y) endphoneme -// PB glottal y +// PB Short y // "kylling" vs. "kyle", "krybbe" vs. "krybe" phoneme ?y vowel starttype #i endtype #i - length 95 + length 90 FMT(vowel/y) endphoneme phoneme Y vowel starttype #i endtype #i length 150 +IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop + length 90 +ENDIF +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN + length 150 +ENDIF FMT(vowel/yy) endphoneme phoneme W vowel starttype #@ endtype #@ - length 150 + length 99 //160 +// "kløe" vowel + vowel: extra length +IF nextPhW(#@) OR nextPhW(#e) THEN + length 220 +ENDIF +// røde" W + 1 consonant + 3 or W or @ +IF next2PhW(#@) OR next2PhW(#e) THEN + length 160 +ENDIF +// "røveri" TEST +IF next2PhW(V) OR next2PhW(?V) THEN + length 90 +ENDIF +// PB "nødig", "nødigt", "kølige" +IF nextVowel(i) THEN + length 160 +ENDIF +// "møve" [mWw@-] +IF nextPhW(w) AND nextVowel(@-) THEN + length 160 +ENDIF +// "børnebog" +IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN + length 150 +ENDIF FMT(vowel/oe) endphoneme -// PB glottal W +// PB short W // "prøv" vs. "prøve" phoneme ?W vowel starttype #@ endtype #@ - length 80 + length 95 FMT(vowel/oe) endphoneme // PB added for the ø in "røv", "røg", "øje" instead of [V3] phoneme W# vowel starttype #@ endtype #@ - length 150 + length 90 //150 +IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN + glstop +// length 90 +ENDIF +// 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 150 +ENDIF FMT(vowel/V) endphoneme +// PB short W# +// "rømme" +phoneme ?W# + vowel starttype #@ endtype #@ + length 90 + FMT(vowel/V) +endphoneme + phoneme aI vowel starttype #a endtype #i - length 250 + length 300 +IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN + glstop + length 150 +ENDIF +// "dreje" [dR'aI@-_!] +IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN + length 280 +ENDIF +// PB "drej" vs. "dreje" +IF thisPh(isWordEnd) THEN + length 140 +ENDIF +// "lejde" [l'aId@-_!], "lejder" [l'aIdV_!] +IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN + length 190 +ENDIF FMT(vdiph/ai) endphoneme @@ -201,7 +581,31 @@ phoneme l liquid lengthmod 7 ChangePhoneme(l/3) - CALL base/l +// CALL base/l +endphoneme + +phoneme l/3 // Replacement for [l/] + liquid + lengthmod 7 + + IF nextPh(isVowel) THEN +// ChangePhoneme(l) + ENDIF + + PrevVowelEndings + VowelEnding(l/l_@) + VowelEnding(l/l_a) + VowelEnding(l/l_e, -40) + VowelEnding(l/l_i, -70) + VowelEnding(l/l_o) + VowelEnding(l/l_u, -70) + EndSwitch + +// IF nextPh(isLiquid) THEN +// FMT(l/_l) +// ENDIF + + FMT(l/l_) endphoneme phoneme v // approximant, not fricative @@ -209,25 +613,24 @@ phoneme v // approximant, not fricative voicingswitch f endphoneme - +// PB Actually a kind of schwa = [ɐ]? - "byder" [bˈyðɐʌ] phoneme r // used for 'r' after a vowel (to create a diphthong) liquid lengthmod 7 - IF nextPhW(isVowel) THEN + ipa ɐ̯ + IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN ChangePhoneme(R) ENDIF FMT(r/a_) endphoneme phoneme R - lengthmod 7 + lengthmod 6 liquid ipa ʁ FMT(r/aa) endphoneme - - // don't weaken consonants at end of word or before a stop phoneme s @@ -243,11 +646,10 @@ phoneme s WAV(ufric/s) endphoneme - phoneme p vls blb stop voicingswitch b - lengthmod 2 + lengthmod 7 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 @@ -265,18 +667,45 @@ phoneme p WAV(ustop/p) endphoneme - - phoneme t vls alv stop voicingswitch d - lengthmod 2 + lengthmod 7 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN WAV(ustop/tr) ENDIF +// "respekt" [REsp'Egd] + IF thisPh(isWordEnd) THEN +// ChangePhoneme(d) + ENDIF WAV(ustop/t, 90) endphoneme +phoneme j + liquid palatal + lengthmod 7 + + IF nextPhW(isVowel) THEN + NextVowelStarts + VowelStart(j/j@) + VowelStart(j/ja) + VowelStart(j/je,-35) + VowelStart(j/ji) + VowelStart(j/jo) + VowelStart(j/ju) + EndSwitch +Vowelout len=70 + VowelEnding(j/xj, -30) + + IF prevPh(isPause) THEN + FMT(j/_j) + ENDIF + ELSE + // no vowel follows + Vowelout len=70 + FMT(j/j_) + ENDIF +endphoneme \ No newline at end of file diff --git a/phsource/ph_english b/phsource/ph_english index 4f7bbdbd..48368c97 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -162,7 +162,7 @@ endphoneme phoneme @L vowel starttype #@ endtype l - ipa əl + ipa ə|l unstressed length 160 CALL vowelstart_l diff --git a/phsource/ph_english_n b/phsource/ph_english_n index bd3bd128..0bf6b8e0 100644 --- a/phsource/ph_english_n +++ b/phsource/ph_english_n @@ -58,8 +58,7 @@ endphoneme phoneme i // optional variant of [I] for end of words vowel starttype #i endtype #i length 150 - IfNextVowelAppend(;) - FMT(vowel/e_3) + FMT(vowel/e_2) endphoneme diff --git a/phsource/ph_english_sc b/phsource/ph_english_sc index ee3b2c97..a4637e41 100644 --- a/phsource/ph_english_sc +++ b/phsource/ph_english_sc @@ -168,7 +168,9 @@ phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in Ameri vowel starttype #a endtype #@ length 250 ipa aː - AppendPhoneme(r) + IF NOT nextPhW(r) THEN + AppendPhoneme(r) + ENDIF FMT(vowelr/aa_r) endphoneme @@ -211,7 +213,9 @@ phoneme O@ vowel starttype #o endtype #@ length 230 ipa ɔ - AppendPhoneme(r) + IF NOT nextPhW(r) THEN + AppendPhoneme(r) + ENDIF FMT(vowelr/oo_r) endphoneme @@ -219,7 +223,9 @@ phoneme o@ vowel starttype #o endtype #@ length 230 ipa o - AppendPhoneme(r) + IF NOT nextPhW(r) THEN + AppendPhoneme(r) + ENDIF FMT(vowelr/oo_r) endphoneme @@ -305,7 +311,9 @@ phoneme e@ vowel starttype #e endtype #@ length 220 ipa e - AppendPhoneme(r) + IF NOT nextPhW(r) THEN + AppendPhoneme(r) + ENDIF FMT(vdiph2/e@) endphoneme @@ -314,7 +322,9 @@ phoneme i@3 vowel starttype #i endtype #@ ipa ɪ length 240 - AppendPhoneme(r) + IF NOT nextPhW(r) THEN + AppendPhoneme(r) + ENDIF FMT(vowelr/i_r) endphoneme @@ -380,11 +390,11 @@ phoneme r liquid rhotic lengthmod 7 trill - IF nextPh(isNotVowel) THEN ChangePhoneme(r/) ENDIF CALL base/r + ipa r endphoneme diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 93d2454e..746ff73f 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -97,6 +97,7 @@ phoneme I# vowel starttype #i endtype #i unstressed length 160 + ipa ᵻ // FMT(vowel/@_fnt) FMT(vowel/ii#) endphoneme @@ -151,7 +152,7 @@ endphoneme phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American vowel starttype #a endtype #a - ipa ɑːɹ + ipa ɑː|ɹ IF nextPh(r-) THEN ipa ɑː ENDIF @@ -192,7 +193,7 @@ endphoneme phoneme O@ vowel starttype #o endtype #@ length 250 - ipa ɔːɹ + ipa ɔː|ɹ IF nextPhW(r) THEN ipa ɔː ENDIF @@ -204,7 +205,7 @@ endphoneme phoneme o@ vowel starttype #o endtype #@ length 250 - ipa oːɹ + ipa oː|ɹ IF nextPhW(r) THEN ipa oː ENDIF @@ -269,7 +270,7 @@ endphoneme phoneme e@ vowel starttype #e endtype #@ length 280 - ipa ɛɹ + ipa ɛ|ɹ IF nextPhW(r) THEN ipa ɛ ENDIF @@ -288,7 +289,7 @@ endphoneme phoneme i@3 vowel starttype #i endtype #@ length 280 - ipa ɪɹ + ipa ɪ|ɹ IF nextPhW(r) THEN ipa ɪ ENDIF @@ -300,7 +301,7 @@ endphoneme phoneme U@ vowel starttype #@ endtype #@ length 250 - ipa ʊɹ + ipa ʊ|ɹ IF nextPhW(r-) THEN ipa ʊ ENDIF diff --git a/phsource/ph_georgian b/phsource/ph_georgian index 7d2675fd..51a1de5b 100644 --- a/phsource/ph_georgian +++ b/phsource/ph_georgian @@ -28,7 +28,10 @@ endphoneme phoneme a vowel starttype #a endtype #a length 180 - FMT(vowel/a#_2) + IF thisPh(isUnstressed) THEN + FMT(vowel/a#_2) + ENDIF + FMT(vowel/a_3) endphoneme @@ -69,12 +72,15 @@ phoneme k# Vowelin f1=1 f2=1400 -100 100 f3=-150 80 Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 IF nextPh(isPause2) THEN - WAV(ustop/k_asp2, 40) + WAV(ustop/k_asp, 40) ENDIF - IF nextPh(l) THEN - WAV(ustop/kl) + IF nextPhW(#e) OR nextPhW(#i) THEN + WAV(ustop/k_asp_e, 40) + ELIF nextPhW(#o) OR nextPhW(#u) THEN + WAV(ustop/k_asp_u, 30) + ELSE + WAV(ustop/k_asp_a, 35) ENDIF - WAV(ustop/k_asp2, 60) endphoneme @@ -113,24 +119,27 @@ phoneme k import_phoneme consonants/k- endphoneme -phoneme q - vls uvl stop - lengthmod 2 - Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30 - Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35 - - IF nextPh(#i) THEN - WAV(ustop/q2_i, 40) - ENDIF - WAV(ustop/q2, 48) -endphoneme - phoneme Q - import_phoneme base/r" + vcd vel frc + voicingswitch x + lengthmod 6 + Vowelin f1=2 f2=2300 200 400 f3=-100 80 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + FMT(voc/Q) addWav(ufric/xx, 100) endphoneme +phoneme Q2 + vcd vel frc + voicingswitch x + lengthmod 6 + Vowelin f1=2 f2=2300 200 400 f3=-100 80 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + FMT(voc/Q) addWav(ufric/x2, 50) +endphoneme + + phoneme r import_phoneme base/R endphoneme diff --git a/phsource/ph_german b/phsource/ph_german index e034e565..1e1e1b73 100644 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -97,11 +97,8 @@ phoneme U length 135 ENDIF - IF nextPh(r) THEN - IF next2Ph(isVowel) THEN - ELSE - ChangePhoneme(UR) - ENDIF + IF nextPh(r) AND next2Ph(isNotVowel) THEN + ChangePhoneme(UR) ENDIF FMT(vowel/uu_2) endphoneme @@ -128,6 +125,10 @@ phoneme i: IF prevPh(w) THEN VowelStart(w/wi2) ENDIF + + IF nextPh(r) AND next2Ph(isNotVowel) THEN + ChangePhoneme(iR) + ENDIF FMT(vowel/i_2) endphoneme @@ -341,41 +342,12 @@ endphoneme -// This version of [r] was used in eSpeak 1.44, but received complaints -phoneme r2 // uvular trill or fricative - vcd uvl frc - ipa ʀ - lengthmod 6 - length 110 - IF nextPhW(isVowel) THEN - FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50) - ELSE - IF prevPh(isFlag1) THEN - ChangePhoneme(NULL) // 'r' is already included in the previous vowel - ELSE - ChangePhoneme(V#) - ENDIF - ENDIF -endphoneme - - - - -phoneme V# // used for 'r' after a vowel (to create a diphthong) - liquid - lengthmod 7 - IF nextPhW(isVowel) THEN - ChangePhoneme(r) - ENDIF - - ipa ɐ - IF prevPh(#a) OR prevPh(E) THEN - FMT(r/V_2_) - ENDIF - IF prevPh(#u) THEN - FMT(r/@_) - ENDIF - FMT(r/V_) +phoneme iR + vowel starttype #i endtype #@ + ipa iɐ + flag1 + length 180 + FMT(vdiph2/i@_2) endphoneme diff --git a/phsource/ph_hindi b/phsource/ph_hindi index 84a70594..d9e9d610 100644 --- a/phsource/ph_hindi +++ b/phsource/ph_hindi @@ -136,7 +136,7 @@ endphoneme phoneme a: vowel long starttype #a endtype #a - length 230 + length 190 FMT(vowel/aa_9) endphoneme @@ -149,7 +149,7 @@ endphoneme phoneme o: vowel long starttype #o endtype #o - length 220 + length 227 FMT(vowel/o_2) endphoneme @@ -294,7 +294,7 @@ phoneme p endphoneme -phoneme ph +phoneme p# import_phoneme consonants/ph endphoneme @@ -304,10 +304,10 @@ phoneme b // this is [b] endphoneme -phoneme bh +phoneme b# vcd blb stop lengthmod 5 - voicingswitch ph + voicingswitch p# Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 @@ -330,7 +330,7 @@ phoneme t // dental variant of /t/ endphoneme -phoneme th // dental variant of /t/ +phoneme t# // dental variant of /t/ vls dnt stop lengthmod 2 voicingswitch d @@ -349,10 +349,10 @@ phoneme d // dental variant of /d/ endphoneme -phoneme dh +phoneme d# vcd dnt stop lengthmod 5 - voicingswitch th + voicingswitch t# Vowelin f1=0 f2=1500 -300 300 f3=-100 80 Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 @@ -379,11 +379,11 @@ phoneme t. WAV(ustop/t_short) endphoneme -phoneme th. +phoneme t.# vls rfx stop lengthmod 2 - ipa ʈh - voicingswitch dh. + ipa ʈU+02B0 + voicingswitch d.# Vowelin f1=0 f2=1800 -300 300 f3=-400 80 Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 // WAV(ustop/th_rfx) @@ -410,11 +410,11 @@ phoneme d. endphoneme -phoneme dh. +phoneme d.# vcd rfx stop lengthmod 5 - ipa ɖh - voicingswitch th. + ipa ɖU+02B0 + voicingswitch t.# Vowelin f1=1 f2=1800 -300 300 f3=-400 80 Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2 @@ -439,7 +439,7 @@ phoneme c endphoneme -phoneme ch +phoneme c# CALL base/tS; ipa ch endphoneme @@ -450,10 +450,10 @@ phoneme J endphoneme -phoneme Jh +phoneme J# vcd pal afr sibilant lengthmod 5 - voicingswitch ch + voicingswitch c# Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1 @@ -477,9 +477,9 @@ phoneme k voicingswitch g endphoneme -phoneme kh - import_phoneme consonants/kh - voicingswitch gh +phoneme k# + import_phoneme consonants/k# + voicingswitch g# endphoneme @@ -489,10 +489,10 @@ phoneme g endphoneme -phoneme gh +phoneme g# vcd dnt stop lengthmod 5 - voicingswitch kh + voicingswitch k# Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20 Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 diff --git a/phsource/ph_irish b/phsource/ph_irish index 70b2175f..f1fcca86 100644 --- a/phsource/ph_irish +++ b/phsource/ph_irish @@ -1,9 +1,30 @@ +// Version 2.4 January 2013 // short vowels -phoneme @ - vowel starttype #@ endtype #@ +phoneme @ // Schwa, but always unstressed + vowel starttype #@ endtype #@ + unstressed + length 100 + IF nextPh(i:) THEN + Length 70 + FMT(vwl_af/r@) + ENDIF + IF nextPh(I) THEN + Length 70 + FMT(vwl_af/r@) + ENDIF + IF nextPh(e:) THEN + Length 70 + FMT(vwl_af/r@) + ENDIF + FMT(vwl_af/@) +endphoneme + + +phoneme @/ + vowel starttype #@ endtype #@ length 120 FMT(vowel/@) endphoneme @@ -11,12 +32,14 @@ endphoneme phoneme a vowel starttype #a endtype #a - length 200 + length 150 FMT(vowel/a_4) endphoneme + phoneme a# vowel starttype #@ endtype #@ + ipa ɐ length 120 ChangeIfStressed(a) FMT(vowel/a#_3) @@ -33,38 +56,35 @@ phoneme E# vowel starttype #@ endtype #@ length 120 ChangeIfStressed(E) - FMT(vowel/@) + ChangePhoneme(@/) endphoneme phoneme I vowel starttype #i endtype #i length 120 - IfNextVowelAppend(;) FMT(vowel/ii_2) endphoneme -phoneme I# - vowel starttype #@ endtype #@ - length 120 - ChangeIfStressed(I) - IfNextVowelAppend(;) - FMT(vowel/@) +phoneme i // non syllabic i for end of words + vowel starttype #i endtype #i + ipa iU+032F + length 40 + FMT(vowel/ii_7) endphoneme - phoneme O - vowel starttype #o endtype #o + vowel starttype #a endtype #@ length 140 - FMT(vowel/oo_4) + FMT(vowel/V_4) endphoneme phoneme O# vowel starttype #@ endtype #@ length 120 ChangeIfStressed(O) - FMT(vowel/@) + ChangePhoneme(a#) endphoneme @@ -78,7 +98,35 @@ phoneme U# vowel starttype #@ endtype #@ length 120 ChangeIfStressed(U) - FMT(vowel/@) + ChangePhoneme(@/) +endphoneme + +phoneme u1 + vowel starttype #u endtype #u + ipa uU+0306 + length 50 + FMT(vowel/u) +endphoneme + +phoneme 0 + vowel starttype #a endtype #a + length 180 + ipa A + FMT(vowel/aa_8) +endphoneme + +phoneme 0# + vowel starttype #@ endtype #@ + length 120 + ChangeIfStressed(0) + ChangePhoneme(a#) +endphoneme + + +phoneme o: + vowel starttype #o endtype #o + length 190 + FMT(vowel/o) endphoneme @@ -105,11 +153,6 @@ phoneme i: endphoneme -phoneme o: - vowel starttype #o endtype #o - length 190 - FMT(vowel/o) -endphoneme phoneme u: @@ -121,11 +164,6 @@ endphoneme // Diphthongs -phoneme @I - vowel starttype #@ endtype #i - length 240 - FMT(vdiph/@i) -endphoneme phoneme @U vowel starttype #@ endtype #u @@ -145,4 +183,57 @@ phoneme u@ FMT(vdiph2/u@) endphoneme +phoneme aI + vowel starttype #a endtype #i + length 250 + FMT(vdiph/ai) +endphoneme + +phoneme aI# + vowel starttype #@ endtype #@ + length 120 + ChangeIfStressed(aI) + ChangePhoneme(a#) +endphoneme + +phoneme aU + vowel starttype #a endtype #u + length 270 + FMT(vdiph/au_4) +endphoneme + +phoneme aU# + vowel starttype #@ endtype #@ + length 120 + ChangeIfStressed(aU) + FMT(vdiph/au_4) +endphoneme + + +phoneme ; // linking j, used between (i) vowels and a following vowel + // also to palatalize consonants + liquid palatal + lengthmod 0 + + IF prevPh(#i) THEN + ipa NULL // linking after i vowel, don't show in ipa + ENDIF + + NextVowelStarts + VowelStart(j2/j2@) + VowelStart(j2/j2a) + VowelStart(j2/j2e) + VowelStart(j2/j2i) + VowelStart(j2/j2o) + VowelStart(j2/j2u) + EndSwitch + + IF prevPh(#i) THEN + VowelEnding(j2/xj2, -40) + ENDIF + + IF prevPh(isPause) THEN + FMT(j2/_j2) + ENDIF +endphoneme diff --git a/phsource/ph_malayalam b/phsource/ph_malayalam index e81a6f1c..47b677d3 100644 --- a/phsource/ph_malayalam +++ b/phsource/ph_malayalam @@ -132,13 +132,15 @@ phoneme v endphoneme phoneme r - import_phoneme base/* + import_phoneme base/** endphoneme phoneme R import_phoneme base/R2 endphoneme -phoneme d# // 'rr' sounds like English 'd' +phoneme d2 // 'rr' sounds like English 'd' import_phoneme base/d endphoneme + + diff --git a/phsource/ph_portugal b/phsource/ph_portugal index 8a4f7335..a31660c4 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -134,19 +134,6 @@ endphoneme -phoneme x // [r] for Portugal - liquid - trill - ipa ʁ - lengthmod 7 - Vowelin f1=0 f2=1500 -400 400 f3=-400 80 - IF nextPh(isNotVowel) THEN - ChangePhoneme(r/) - ENDIF - FMT(vwl_fr/@R) addWav(r3/rx, 120) -endphoneme - - phoneme R // for Portugal this is same the as [r] import_phoneme pt/r endphoneme @@ -157,5 +144,3 @@ phoneme s# // This is [s] for Brazil, [S] for Portugal ipa ʃ endphoneme - - diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index c39d76e3..2d86b1c9 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -189,18 +189,9 @@ phoneme l endphoneme -phoneme x // this is [R] from Slovak/Czech - liquid - trill - ipa ʁ - lengthmod 6 - IF thisPh(isWordStart) THEN - ChangePhoneme(h) // Change by Cleverson 22.09.2012 - ENDIF - - Vowelin f1=0 f2=1700 -300 300 f3=-300 80 - Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk - FMT(r3/r_trill) addWav(r3/r_trill.wav, 50) +phoneme x + CALL base/h + ipa x endphoneme @@ -227,4 +218,3 @@ phoneme * FMT(d/tap2) addWav(x/d, 40) endphoneme - diff --git a/phsource/ph_s_gaelic b/phsource/ph_s_gaelic index 9f7b4fd4..8bb22d56 100644 --- a/phsource/ph_s_gaelic +++ b/phsource/ph_s_gaelic @@ -9,7 +9,7 @@ phoneme b endphoneme phoneme t - import_phoneme hi/th + import_phoneme hi/t# endphoneme phoneme d diff --git a/phsource/ph_tibetan b/phsource/ph_tibetan index 19281910..ab1bbedd 100644 --- a/phsource/ph_tibetan +++ b/phsource/ph_tibetan @@ -63,7 +63,7 @@ phoneme dz FMT(d/xdz) addWav(ustop/ts2, 140) endphoneme -phoneme tsh +phoneme ts# vls alv afr sibilant voicingswitch dz lengthmod 2 @@ -76,7 +76,7 @@ phoneme tsh endphoneme -phoneme dzh +phoneme dz# vcd alv afr sibilant voicingswitch ts lengthmod 5 diff --git a/phsource/phonemes b/phsource/phonemes index 5f0f61e2..86c6cbec 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -731,7 +731,7 @@ endphoneme phoneme n vcd alv nasal - Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk + Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk lengthmod 4 IF KlattSynth THEN @@ -762,8 +762,8 @@ phoneme n. vcd rfx nasal ipa ɳ starttype n endtype n - Vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2 - Vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2 + Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2 + Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2 lengthmod 4 IF KlattSynth THEN @@ -1610,9 +1610,9 @@ phoneme x Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 IF nextPh(isPause) THEN - WAV(ufric/x, 120) + WAV(ufric/x, 110) ENDIF - WAV(ufric/x_hr, 25) + WAV(ufric/x_hr, 20) endphoneme @@ -1624,7 +1624,7 @@ phoneme X IF nextPh(isPause) THEN WAV(ufric/xx, 70) ENDIF - WAV(ufric/xx) + WAV(ufric/xx,80) endphoneme @@ -1690,6 +1690,9 @@ include ph_afrikaans phonemetable cy base include ph_welsh +phonemetable ga base +include ph_irish + phonemetable de base include ph_german @@ -1714,10 +1717,25 @@ include ph_french phonemetable fr-ca fr include ph_french_ca +phonemetable nl base +include ph_dutch + phonemetable hi base include ph_hindi +phonemetable bn hi +include ph_bengali + +phonemetable ne hi +include ph_nepali + +phonemetable ur hi +include ph_urdu + +phonemetable pa hi +include ph_punjabi + phonemetable ta hi include ph_tamil @@ -1727,8 +1745,6 @@ include ph_kannada phonemetable ml hi include ph_malayalam -phonemetable ur hi -include ph_urdu phonemetable hu base @@ -1741,9 +1757,6 @@ include ph_lithuanian phonemetable lv base include ph_latvian -phonemetable nl base -include ph_dutch - phonemetable pl base include ph_polish @@ -1848,6 +1861,9 @@ include ph_danish phonemetable ka base include ph_georgian +phonemetable fa base +include ph_farsi + //************************************************************************************** // The following lines are experimental, for future additions. @@ -1857,12 +1873,6 @@ include ph_georgian phonemetable rw base2 include ph_kinyarwanda -//phonemetable bn hi -//include ph_bengali - -phonemetable ne hi -include ph_nepali - //phonemetable mr hi //include ph_marathi @@ -1872,9 +1882,6 @@ include ph_nepali //phonemetable mn base //include ph_mongolian -phonemetable pa hi -include ph_punjabi - phonemetable prs base include ph_dari @@ -1924,12 +1931,6 @@ include ph_tibetan phonemetable kk base include ph_kazakh -phonemetable fa base -include ph_farsi - -phonemetable ga base -include ph_irish - phonemetable tt base include ph_tatar diff --git a/phsource/r/V_ b/phsource/r/V_ deleted file mode 100644 index 349d2b78..00000000 Binary files a/phsource/r/V_ and /dev/null differ diff --git a/phsource/r/V_2_ b/phsource/r/V_2_ deleted file mode 100644 index 2f189216..00000000 Binary files a/phsource/r/V_2_ and /dev/null differ diff --git a/phsource/r/aa b/phsource/r/aa index b183fbfa..b5e1193a 100644 Binary files a/phsource/r/aa and b/phsource/r/aa differ diff --git a/phsource/ustop/k_asp_a.wav b/phsource/ustop/k_asp_a.wav new file mode 100644 index 00000000..61c483c6 Binary files /dev/null and b/phsource/ustop/k_asp_a.wav differ diff --git a/phsource/ustop/k_asp_e.wav b/phsource/ustop/k_asp_e.wav new file mode 100644 index 00000000..1fcef3aa Binary files /dev/null and b/phsource/ustop/k_asp_e.wav differ diff --git a/phsource/ustop/k_asp_u.wav b/phsource/ustop/k_asp_u.wav new file mode 100644 index 00000000..7f12b18b Binary files /dev/null and b/phsource/ustop/k_asp_u.wav differ diff --git a/phsource/ustop/q2.wav b/phsource/ustop/q2.wav deleted file mode 100644 index 7584f6c7..00000000 Binary files a/phsource/ustop/q2.wav and /dev/null differ diff --git a/phsource/ustop/q2_i.wav b/phsource/ustop/q2_i.wav deleted file mode 100644 index c0c029ee..00000000 Binary files a/phsource/ustop/q2_i.wav and /dev/null differ diff --git a/phsource/vdiph2/i@_3 b/phsource/vdiph2/i@_3 new file mode 100644 index 00000000..32266d60 Binary files /dev/null and b/phsource/vdiph2/i@_3 differ diff --git a/phsource/vwl_en_us/ai3 b/phsource/vwl_en_us/ai3 index c7d0250c..fdce0513 100644 Binary files a/phsource/vwl_en_us/ai3 and b/phsource/vwl_en_us/ai3 differ diff --git a/phsource/vwl_en_us/oor b/phsource/vwl_en_us/oor index bb0e81d2..3d6ca31e 100644 Binary files a/phsource/vwl_en_us/oor and b/phsource/vwl_en_us/oor differ diff --git a/platforms/windows/espeakedit/src/speech.h b/platforms/windows/espeakedit/src/speech.h index 0ac7b3b2..87fb470e 100644 --- a/platforms/windows/espeakedit/src/speech.h +++ b/platforms/windows/espeakedit/src/speech.h @@ -61,7 +61,7 @@ int LookupMnem(MNEM_TAB *table, const char *string); -#define N_PATH_HOME 120 +#define N_PATH_HOME 230 extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern void strncpy0(char *to,const char *from, int size); diff --git a/platforms/windows/espeakedit/src_copy/speech.h b/platforms/windows/espeakedit/src_copy/speech.h index 0ac7b3b2..87fb470e 100644 --- a/platforms/windows/espeakedit/src_copy/speech.h +++ b/platforms/windows/espeakedit/src_copy/speech.h @@ -61,7 +61,7 @@ int LookupMnem(MNEM_TAB *table, const char *string); -#define N_PATH_HOME 120 +#define N_PATH_HOME 230 extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern void strncpy0(char *to,const char *from, int size); diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index aaeb9e7e..938d61a4 100644 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.46.31 +AppVerName=eSpeak version 1.46.47 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -18,6 +18,11 @@ Name: "{group}\TTSApp"; Filename: "{app}\TTSApp.exe"; WorkingDir: "{app}" [InstallDelete] Type: files; Name: "{app}\espeak.dll" +Type: files; Name: "{app}\espeak-data\voices\*" +Type: filesandordirs; Name: "{app}\espeak-data\voices\en" +Type: filesandordirs; Name: "{app}\espeak-data\voices\asia" +Type: filesandordirs; Name: "{app}\espeak-data\voices\europe" +Type: filesandordirs; Name: "{app}\espeak-data\voices\other" Type: filesandordirs; Name: "{app}\espeak-data\voices\test" Type: filesandordirs; Name: "{app}\docs" @@ -144,29 +149,34 @@ begin $1c: Result := 'sq'; $1d: Result := 'sv'; $1f: Result := 'tr'; + //$20: Result := 'ur'; $21: Result := 'id'; $25: Result := 'et'; - //$26: Result := 'lv'; + $26: Result := 'lv'; $27: Result := 'lt'; + $29: Result := 'fa'; $2a: Result := 'vi'; $2b: Result := 'hy'; //$2c: Result := 'az'; //$2d: Result := 'eu'; $2f: Result := 'mk'; $36: Result := 'af'; + $37: Result := 'kn'; $39: Result := 'hi'; //$3a: Result := 'mt'; - //$3c: Result := 'ga'; + $3c: Result := 'ga'; //$3f: Result := 'kk'; $41: Result := 'sw'; //$44: Result := 'tt'; + $46: Result := 'pa'; $49: Result := 'ta'; + $46: Result := 'pa'; $4b: Result := 'kn'; $4c: Result := 'ml'; //$50: Result := 'mn'; $52: Result := 'cy'; //$5e: Result := 'am'; - //$61: Result := 'ne'; + $61: Result := 'ne'; //$87: Result := 'rw'; //$88: Result := 'wo'; end; @@ -209,6 +219,7 @@ begin 'an': value := $40a; // Aragon, use code for Spanish 'az': value := $42c; 'bg': value := $402; + 'bn': value := $445; 'bs': value := $41a; // should be $141a but Jaws crashes on startup 'ca': value := $403; 'cs': value := $405; @@ -248,6 +259,7 @@ begin 'ne': value := $461; 'nl': value := $413; 'no': value := $414; + 'pa': value := $446; 'pl': value := $415; 'pt': value := $416; 'ro': value := $418; diff --git a/platforms/windows/windows_cmd/src/speech.h b/platforms/windows/windows_cmd/src/speech.h index f8c2efde..7e0179aa 100644 --- a/platforms/windows/windows_cmd/src/speech.h +++ b/platforms/windows/windows_cmd/src/speech.h @@ -60,7 +60,7 @@ int LookupMnem(MNEM_TAB *table, const char *string); -#define N_PATH_HOME 220 +#define N_PATH_HOME 230 extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern void strncpy0(char *to,const char *from, int size); diff --git a/platforms/windows/windows_dll/src/speech.h b/platforms/windows/windows_dll/src/speech.h index fa38e223..5015e288 100644 --- a/platforms/windows/windows_dll/src/speech.h +++ b/platforms/windows/windows_dll/src/speech.h @@ -63,7 +63,7 @@ int LookupMnem(MNEM_TAB *table, const char *string); -#define N_PATH_HOME 120 +#define N_PATH_HOME 230 extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern void strncpy0(char *to,const char *from, int size); diff --git a/platforms/windows/windows_sapi/src/speech.h b/platforms/windows/windows_sapi/src/speech.h index 439c53c0..97184e68 100644 --- a/platforms/windows/windows_sapi/src/speech.h +++ b/platforms/windows/windows_sapi/src/speech.h @@ -65,7 +65,7 @@ int LookupMnem(MNEM_TAB *table, const char *string); -#define N_PATH_HOME 220 +#define N_PATH_HOME 230 extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern void strncpy0(char *to,const char *from, int size); diff --git a/platforms/windows/windows_sapi/ttsengobj.cpp b/platforms/windows/windows_sapi/ttsengobj.cpp index f79e6d61..a2d2b4cc 100644 --- a/platforms/windows/windows_sapi/ttsengobj.cpp +++ b/platforms/windows/windows_sapi/ttsengobj.cpp @@ -618,7 +618,7 @@ int CTTSEngObj::ProcessFragList(const SPVTEXTFRAG* pTextFragList, wchar_t *pW_st sprintf(&cmdbuf[len],"%c%dF",CTRL_EMBEDDED,emphasis); len += strlen(&cmdbuf[len]); } - if(sayas != gSayas) + if((sayas != gSayas) || (sayas != 0)) { sprintf(&cmdbuf[len],"%c%dY",CTRL_EMBEDDED,sayas); len += strlen(&cmdbuf[len]); diff --git a/src/compiledata.cpp b/src/compiledata.cpp index 762f6e58..08955e2f 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -44,6 +44,7 @@ extern void FindPhonemesUsed(void); extern void DisplayErrorFile(const char *fname); +extern int utf8_in(int *c, const char *buf); extern int utf8_out(unsigned int c, char *buf); extern void DrawEnvelopes(); extern void ReadPhondataManifest(); @@ -157,6 +158,7 @@ static keywtab_t k_properties[] = { enum { kPHONEMESTART = 1, + kUTF8_BOM, kPROCEDURE, kENDPHONEME, kENDPROCEDURE, @@ -210,6 +212,8 @@ enum { kTUNE_SPLIT, }; +static const char utf8_bom[] = {0xef,0xbb,0xbf,0}; + static keywtab_t k_intonation[] = { {"tune", 0, kTUNE}, {"endtune", 0, kENDTUNE}, @@ -250,6 +254,7 @@ static keywtab_t keywords[] = { {"phonemenumber",tSTATEMENT, kPHONEMENUMBER}, {"phonemetable",tSTATEMENT, kPHONEMETABLE}, {"include", tSTATEMENT, kINCLUDE}, + {utf8_bom, tSTATEMENT, kUTF8_BOM}, {"phoneme", tSTATEMENT, kPHONEMESTART}, {"procedure", tSTATEMENT, kPROCEDURE}, @@ -2720,11 +2725,14 @@ int CompilePhoneme(int compile_phoneme) int keyword; int value; int phcode = 0; + int flags; int ix; - unsigned int c; + int start; + int count; + int c; char *p; char number_buf[12]; - char ipa_buf[N_ITEM_STRING]; + char ipa_buf[N_ITEM_STRING+1]; PHONEME_TAB phoneme_out2; PHONEME_PROG_LOG phoneme_prog_log; @@ -2852,32 +2860,58 @@ int CompilePhoneme(int compile_phoneme) strcpy(item_string," "); // copy the string, recognize characters in the form U+9999 - p = item_string; - ix = 0; - while((c = *p++) != 0) + flags = 0; + count = 0; + ix = 1; + + for(p=item_string; *p != 0;) { + p += utf8_in(&c, p); + + if((c == '|') && (count > 0)) + { + // '|' means don't allow a tie or joiner before this letter + flags |= (1 << (count -1)); + } + else if((c=='U') && (p[0]=='+')) { + int j; // U+9999 - memcpy(number_buf,&p[1],4); // U+ should be followed by 4 hex digits + p++; + memcpy(number_buf,p,4); // U+ should be followed by 4 hex digits number_buf[4] = 0; - c = 0; + c = '#'; sscanf(number_buf,"%x",&c); - p += 5; + + // move past the 4 hexdecimal digits + for(j=0; j<4; j++) + { + if(!isalnum(*p)) + break; + p++; + } ix += utf8_out(c, &ipa_buf[ix]); + count++; } else { - ipa_buf[ix++] = c; + ix += utf8_out(c, &ipa_buf[ix]); + count++; } } + ipa_buf[0] = flags; ipa_buf[ix] = 0; - value = strlen(ipa_buf); // number of UTF-8 bytes + + start = 1; + if(flags != 0) + start = 0; // only include the flags byte if bits are set + value = strlen(&ipa_buf[start]); // number of UTF-8 bytes *prog_out++ = (i_IPA_NAME << 8) + value; for(ix=0; ix < value; ix += 2) { - *prog_out++ = (ipa_buf[ix] << 8) + (ipa_buf[ix+1] & 0xff); + *prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); } break; } @@ -3400,6 +3434,9 @@ static void CompilePhonemeFiles() switch(item) { + case kUTF8_BOM: + break; // ignore bytes 0xef 0xbb 0xbf + case kINCLUDE: NextItem(tSTRING); sprintf(buf,"%s%s",path_source,item_string); @@ -3606,7 +3643,9 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references CompileReport(); report_dict = CompileAllDictionaries(); +#ifdef MAKE_ENVELOPES DrawEnvelopes(); +#endif if(gui_flag) diff --git a/src/compiledict.cpp b/src/compiledict.cpp index c8c4f5ef..f360a084 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -51,17 +51,24 @@ static char letterGroupsDefined[N_LETTER_GROUPS]; MNEM_TAB mnem_rules[] = { {"unpr", 0x01}, + {"w_alt1", 0x11}, {"w_alt2", 0x12}, {"w_alt3", 0x13}, -// {"w_alt4", 0x14}, + {"w_alt4", 0x14}, + {"w_alt5", 0x15}, + {"w_alt6", 0x16}, {"w_alt", 0x11}, // note: put longer names before their sub-strings + {"p_alt1", 0x21}, {"p_alt2", 0x22}, {"p_alt3", 0x23}, -// {"p_alt4", 0x24}, + {"p_alt4", 0x24}, + {"p_alt5", 0x25}, + {"p_alt6", 0x26}, {"p_alt", 0x21}, - {NULL, -1} }; + {NULL, -1} +}; MNEM_TAB mnem_flags[] = { // these in the first group put a value in bits0-3 of dictionary_flags @@ -83,24 +90,22 @@ MNEM_TAB mnem_flags[] = { // these set the corresponding numbered bit if dictionary_flags - {"$pause", 8}, /* ensure pause before this word */ - {"$only", 9}, /* only match on this word without suffix */ - {"$onlys", 10}, /* only match with none, or with 's' suffix */ - {"$strend", 11}, /* full stress if at end of clause */ - {"$strend2", 12}, /* full stress if at end of clause, or only followed by unstressed */ - {"$unstressend",13}, /* reduce stress at end of clause */ - {"$atend", 14}, /* use this pronunciation if at end of clause */ - {"$atstart", 15}, // use this pronunciation at start of clause - - {"$abbrev", 17}, /* use this pronuciation rather than split into letters */ - {"$stem", 18}, // must have a suffix + {"$pause", 8}, // ensure pause before this word + {"$strend", 9}, // full stress if at end of clause + {"$strend2", 10}, // full stress if at end of clause, or only followed by unstressed + {"$unstressend",11}, // reduce stress at end of clause + {"$abbrev", 13}, // use this pronuciation rather than split into letters // language specific - {"$double", 19}, // IT double the initial consonant of next word - {"$alt", 20}, // use alternative pronunciation - {"$alt1", 20}, // synonym for $alt - {"$alt2", 21}, - {"$alt3", 22}, + {"$double", 14}, // IT double the initial consonant of next word + {"$alt", 15}, // use alternative pronunciation + {"$alt1", 15}, // synonym for $alt + {"$alt2", 16}, + {"$alt3", 17}, + {"$alt4", 18}, + {"$alt5", 19}, + {"$alt6", 20}, + {"$combine", 23}, // Combine with the next word {"$dot", 24}, // ignore '.' after this word (abbreviation) @@ -111,18 +116,23 @@ MNEM_TAB mnem_flags[] = { {"$text", 29}, // word translates to replcement text, not phonemes // flags in dictionary word 2 - {"$verbf", 0x20}, /* verb follows */ - {"$verbsf", 0x21}, /* verb follows, allow -s suffix */ - {"$nounf", 0x22}, /* noun follows */ - {"$pastf", 0x23}, /* past tense follows */ - {"$verb", 0x24}, /* use this pronunciation when its a verb */ - {"$noun", 0x25}, /* use this pronunciation when its a noun */ - {"$past", 0x26}, /* use this pronunciation when its past tense */ - {"$verbextend",0x28}, /* extend influence of 'verb follows' */ - {"$capital", 0x29}, /* use this pronunciation if initial letter is upper case */ - {"$allcaps", 0x2a}, /* use this pronunciation if initial letter is upper case */ + {"$verbf", 0x20}, // verb follows + {"$verbsf", 0x21}, // verb follows, allow -s suffix + {"$nounf", 0x22}, // noun follows + {"$pastf", 0x23}, // past tense follows + {"$verb", 0x24}, // use this pronunciation when its a verb + {"$noun", 0x25}, // use this pronunciation when its a noun + {"$past", 0x26}, // use this pronunciation when its past tense + {"$verbextend",0x28}, // extend influence of 'verb follows' + {"$capital", 0x29}, // use this pronunciation if initial letter is upper case + {"$allcaps", 0x2a}, // use this pronunciation if initial letter is upper case {"$accent", 0x2b}, // character name is base-character name + accent name {"$sentence",0x2d}, // only if this clause is a sentence (i.e. terminator is {. ? !} not {, ; :} + {"$only", 0x2e}, // only match on this word without suffix + {"$onlys", 0x2f}, // only match with none, or with 's' suffix + {"$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 // doesn't set dictionary_flags {"$?", 100}, // conditional rule, followed by byte giving the condition number @@ -173,22 +183,45 @@ const char *LookupMnemName(MNEM_TAB *table, const int value) //========================================================== /* Lookup a mnemonic string in a table, return its name */ { - while(table->mnem != NULL) - { - if(table->value==value) - return(table->mnem); - table++; - } - return(""); /* not found */ + while(table->mnem != NULL) + { + if(table->value==value) + return(table->mnem); + table++; + } + return(""); /* not found */ } /* end of LookupMnemValue */ -char *print_dictionary_flags(unsigned int *flags) -{//============================================== - static char buf[20]; +void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len) +{//======================================================================== + int stress; + int ix; + const char *name; + int len; + int total = 0; - sprintf(buf,"%s 0x%x/%x",LookupMnemName(mnem_flags,(flags[0] & 0xf)+0x40), flags[0], flags[1]); - return(buf); + buf[0] = 0; + if((stress = flags[0] & 0xf) != 0) + { + sprintf(buf, "%s", LookupMnemName(mnem_flags, stress + 0x40)); + total = strlen(buf); + buf += total; + } + + for(ix=8; ix<64; ix++) + { + if(((ix < 30) && (flags[0] & (1 << ix))) || ((ix >= 0x20) && (flags[1] & (1 << (ix-0x20))))) + { + name = LookupMnemName(mnem_flags, ix); + len = strlen(name) + 1; + total += len; + if(total >= buf_len) + continue; + sprintf(buf, " %s", name); + buf += len; + } + } } @@ -196,12 +229,12 @@ char *print_dictionary_flags(unsigned int *flags) char *DecodeRule(const char *group_chars, int group_length, char *rule, int control) {//================================================================================= -/* Convert compiled match template to ascii */ + /* Convert compiled match template to ascii */ - unsigned char rb; + unsigned char rb; unsigned char c; char *p; - int ix; + int ix; int match_type; int finished=0; int value; @@ -211,18 +244,20 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont int condition_num=0; int at_start = 0; const char *name; - char buf[60]; - char buf_pre[60]; + char buf[60]; + char buf_pre[60]; char suffix[20]; static char output[60]; - static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', - '&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W'}; + static char symbols[] = + {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', + '&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W' + }; static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; match_type = 0; - buf_pre[0] = 0; + buf_pre[0] = 0; for(ix=0; ixtranslator_name,word,phonetic,decoded_phonemes); -} + } } else { @@ -662,8 +686,7 @@ static char nullstring[] = {0}; ix = utf8_out(wc, word); word[ix] = 0; } - else - if(word[0] != '_') + else if(word[0] != '_') { // convert to lower case, and note if the word is all-capitals int c2; @@ -1050,8 +1073,7 @@ static void copy_rule_string(char *string, int &state) fprintf(f_log,"%5d: Expected 2 digits after 'L'\n",linenum); error_count++; } - else - if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0)) + else if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0)) { fprintf(f_log,"%5d: Letter group L%.2d not defined\n",linenum,c); error_count++; @@ -1130,9 +1152,9 @@ static void copy_rule_string(char *string, int &state) case 'a': sxflags |= SUFX_A; break; - case 'm': - sxflags |= SUFX_M; - break; + case 'm': + sxflags |= SUFX_M; + break; default: if(isdigit(c)) value = (value*10) + (c - '0'); @@ -1344,11 +1366,11 @@ int __cdecl string_sorter(char **a, char **b) char *pa, *pb; int ix; - if((ix = strcmp(pa = *a,pb = *b)) != 0) - return(ix); + if((ix = strcmp(pa = *a,pb = *b)) != 0) + return(ix); pa += (strlen(pa)+1); pb += (strlen(pb)+1); - return(strcmp(pa,pb)); + return(strcmp(pa,pb)); } /* end of string_sorter */ @@ -1439,12 +1461,12 @@ static void print_rule_group(FILE *f_out, int n_rules, char **rules, char *name) if(rule_pre[0] != 0) { p = buf; - for(ix=strlen(rule_pre)-1;ix>=0;ix--) + for(ix=strlen(rule_pre)-1; ix>=0; ix--) *p++ = rule_pre[ix]; sprintf(p,") "); spaces -= strlen(buf); for(ix=0; ix 0x20) // not space or zero-byte - { - p += utf8_in(&c,p); - replace1 += (c << ix); - ix += 16; - } - while(isspace2(*p)) p++; - ix = 0; - while((unsigned char)(*p) > 0x20) - { - p += utf8_in(&c,p); - replace2 += (c << ix); - ix += 16; - } - if(replace1 != 0) - { - Write4Bytes(f_out,replace1); // write as little-endian - Write4Bytes(f_out,replace2); // if big-endian, reverse the bytes in LoadDictionary() - } + p = buf; + replace1 = 0; + replace2 = 0; + while(isspace2(*p)) p++; + ix = 0; + while((unsigned char)(*p) > 0x20) // not space or zero-byte + { + p += utf8_in(&c,p); + replace1 += (c << ix); + ix += 16; } - break; + while(isspace2(*p)) p++; + ix = 0; + while((unsigned char)(*p) > 0x20) + { + p += utf8_in(&c,p); + replace2 += (c << ix); + ix += 16; + } + if(replace1 != 0) + { + Write4Bytes(f_out,replace1); // write as little-endian + Write4Bytes(f_out,replace2); // if big-endian, reverse the bytes in LoadDictionary() + } + } + break; } } fclose(f_temp); diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 7c95cc00..a88cbb49 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -41,7 +41,7 @@ int dictionary_skipwords; char dictionary_name[40]; -extern char *print_dictionary_flags(unsigned int *flags); +extern void print_dictionary_flags(unsigned int *flags, char *buf, int buf_len); extern char *DecodeRule(const char *group_chars, int group_length, char *rule, int control); // accented characters which indicate (in some languages) the start of a separate syllable @@ -52,50 +52,51 @@ static const unsigned short diereses_list[7] = {0xe4,0xeb,0xef,0xf6,0xfc,0xff,0} // used for checking for vowels (up to 0x259=schwa) #define N_REMOVE_ACCENT 0x25e static unsigned char remove_accent[N_REMOVE_ACCENT] = { -'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i', // 0c0 -'d','n','o','o','o','o','o', 0, 'o','u','u','u','u','y','t','s', // 0d0 -'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i', // 0e0 -'d','n','o','o','o','o','o', 0 ,'o','u','u','u','u','y','t','y', // 0f0 + 'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i', // 0c0 + 'd','n','o','o','o','o','o', 0, 'o','u','u','u','u','y','t','s', // 0d0 + 'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i', // 0e0 + 'd','n','o','o','o','o','o', 0 ,'o','u','u','u','u','y','t','y', // 0f0 -'a','a','a','a','a','a','c','c','c','c','c','c','c','c','d','d', // 100 -'d','d','e','e','e','e','e','e','e','e','e','e','g','g','g','g', // 110 -'g','g','g','g','h','h','h','h','i','i','i','i','i','i','i','i', // 120 -'i','i','i','i','j','j','k','k','k','l','l','l','l','l','l','l', // 130 -'l','l','l','n','n','n','n','n','n','n','n','n','o','o','o','o', // 140 -'o','o','o','o','r','r','r','r','r','r','s','s','s','s','s','s', // 150 -'s','s','t','t','t','t','t','t','u','u','u','u','u','u','u','u', // 160 -'u','u','u','u','w','w','y','y','y','z','z','z','z','z','z','s', // 170 -'b','b','b','b', 0, 0, 'o','c','c','d','d','d','d','d','e','e', // 180 -'e','f','f','g','g','h','i','i','k','k','l','l','m','n','n','o', // 190 -'o','o','o','o','p','p','y', 0, 0, 's','s','t','t','t','t','u', // 1a0 -'u','u','v','y','y','z','z','z','z','z','z','z', 0, 0, 0, 'w', // 1b0 -'t','t','t','k','d','d','d','l','l','l','n','n','n','a','a','i', // 1c0 -'i','o','o','u','u','u','u','u','u','u','u','u','u','e','a','a', // 1d0 -'a','a','a','a','g','g','g','g','k','k','o','o','o','o','z','z', // 1e0 -'j','d','d','d','g','g','w','w','n','n','a','a','a','a','o','o', // 1f0 + 'a','a','a','a','a','a','c','c','c','c','c','c','c','c','d','d', // 100 + 'd','d','e','e','e','e','e','e','e','e','e','e','g','g','g','g', // 110 + 'g','g','g','g','h','h','h','h','i','i','i','i','i','i','i','i', // 120 + 'i','i','i','i','j','j','k','k','k','l','l','l','l','l','l','l', // 130 + 'l','l','l','n','n','n','n','n','n','n','n','n','o','o','o','o', // 140 + 'o','o','o','o','r','r','r','r','r','r','s','s','s','s','s','s', // 150 + 's','s','t','t','t','t','t','t','u','u','u','u','u','u','u','u', // 160 + 'u','u','u','u','w','w','y','y','y','z','z','z','z','z','z','s', // 170 + 'b','b','b','b', 0, 0, 'o','c','c','d','d','d','d','d','e','e', // 180 + 'e','f','f','g','g','h','i','i','k','k','l','l','m','n','n','o', // 190 + 'o','o','o','o','p','p','y', 0, 0, 's','s','t','t','t','t','u', // 1a0 + 'u','u','v','y','y','z','z','z','z','z','z','z', 0, 0, 0, 'w', // 1b0 + 't','t','t','k','d','d','d','l','l','l','n','n','n','a','a','i', // 1c0 + 'i','o','o','u','u','u','u','u','u','u','u','u','u','e','a','a', // 1d0 + 'a','a','a','a','g','g','g','g','k','k','o','o','o','o','z','z', // 1e0 + 'j','d','d','d','g','g','w','w','n','n','a','a','a','a','o','o', // 1f0 -'a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o', // 200 -'r','r','r','r','u','u','u','u','s','s','t','t','y','y','h','h', // 210 -'n','d','o','o','z','z','a','a','e','e','o','o','o','o','o','o', // 220 -'o','o','y','y','l','n','t','j','d','q','a','c','c','l','t','s', // 230 -'z', 0, 0, 'b','u','v','e','e','j','j','q','q','r','r','y','y', // 240 -'a','a','a','b','o','c','d','d','e','e','e','e','e','e' }; + 'a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o', // 200 + 'r','r','r','r','u','u','u','u','s','s','t','t','y','y','h','h', // 210 + 'n','d','o','o','z','z','a','a','e','e','o','o','o','o','o','o', // 220 + 'o','o','y','y','l','n','t','j','d','q','a','c','c','l','t','s', // 230 + 'z', 0, 0, 'b','u','v','e','e','j','j','q','q','r','r','y','y', // 240 + 'a','a','a','b','o','c','d','d','e','e','e','e','e','e' +}; void strncpy0(char *to,const char *from, int size) -{//=============================================== - // strcpy with limit, ensures a zero terminator +{//=================================================== +// strcpy with limit, ensures a zero terminator strncpy(to,from,size); to[size-1] = 0; } int Reverse4Bytes(int word) -{//======================== - // reverse the order of bytes from little-endian to big-endian +{//========================== +// reverse the order of bytes from little-endian to big-endian #ifdef ARCH_BIG int ix; int word2 = 0; @@ -113,7 +114,7 @@ int Reverse4Bytes(int word) int LookupMnem(MNEM_TAB *table, const char *string) -{//================================================ +{//================================================== while(table->mnem != NULL) { if(strcmp(string,table->mnem)==0) @@ -132,9 +133,9 @@ int LookupMnem(MNEM_TAB *table, const char *string) static void InitGroups(Translator *tr) {//=================================== -/* Called after dictionary 1 is loaded, to set up table of entry points for translation rule chains - for single-letters and two-letter combinations -*/ +// Called after dictionary 1 is loaded, to set up table of entry points for translation rule chains +// for single-letters and two-letter combinations + int ix; char *p; @@ -207,13 +208,11 @@ static void InitGroups(Translator *tr) { tr->groups1[c] = p; } - else - if(len == 0) + else if(len == 0) { tr->groups1[0] = p; } - else - if(c == 1) + else if(c == 1) { // index by offset from letter base tr->groups3[c2 - 1] = p; @@ -291,7 +290,7 @@ int LoadDictionary(Translator *tr, const char *name, int no_error) } if((Reverse4Bytes(pw[0]) != N_HASH_DICT) || - (length <= 0) || (length > 0x8000000)) + (length <= 0) || (length > 0x8000000)) { fprintf(stderr,"Bad data: '%s' (%x length=%x)\n",fname,Reverse4Bytes(pw[0]),length); return(2); @@ -314,6 +313,11 @@ int LoadDictionary(Translator *tr, const char *name, int no_error) p++; // skip over the zero which terminates the list for this hash value } + if((tr->dict_min_size > 0) && (size < (unsigned int)tr->dict_min_size)) + { + fprintf(stderr, "Full dictionary is not installed for '%s'\n", name); + } + return(0); } // end of LoadDictionary @@ -324,18 +328,18 @@ int HashDictionary(const char *string) This is used to access the dictionary_2 word-lookup dictionary */ { - int c; + int c; int chars=0; - int hash=0; + int hash=0; - while((c = (*string++ & 0xff)) != 0) - { - hash = hash * 8 + c; - hash = (hash & 0x3ff) ^ (hash >> 8); /* exclusive or */ + while((c = (*string++ & 0xff)) != 0) + { + hash = hash * 8 + c; + hash = (hash & 0x3ff) ^ (hash >> 8); /* exclusive or */ chars++; - } + } - return((hash+chars) & 0x3ff); // a 10 bit hash code + return((hash+chars) & 0x3ff); // a 10 bit hash code } // end of HashDictionary @@ -386,7 +390,7 @@ const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phone if((c = p[1]) == '|') { // treat double || as a word-break symbol, drop through - // to the default case with c = '|' + // to the default case with c = '|' } else { @@ -411,11 +415,11 @@ const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phone mnemonic_word = phoneme_tab[ix]->mnemonic; while(((c = p[count]) > ' ') && (count < 4) && - (c == ((mnemonic_word >> (count*8)) & 0xff))) + (c == ((mnemonic_word >> (count*8)) & 0xff))) count++; if((count > max) && - ((count == 4) || (((mnemonic_word >> (count*8)) & 0xff)==0))) + ((count == 4) || (((mnemonic_word >> (count*8)) & 0xff)==0))) { max = count; max_ph = phoneme_tab[ix]->code; @@ -473,16 +477,15 @@ const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phone void DecodePhonemes(const char *inptr, char *outptr) -//================================================== +{//================================================== // Translate from internal phoneme codes into phoneme mnemonics -{ unsigned char phcode; unsigned char c; unsigned int mnem; PHONEME_TAB *ph; static const char *stress_chars = "==,,'* "; -sprintf(outptr,"* "); + sprintf(outptr,"* "); while((phcode = *inptr++) > 0) { if(phcode == 255) @@ -519,24 +522,23 @@ sprintf(outptr,"* "); // using Kirschenbaum to IPA translation, ascii 0x20 to 0x7f 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, -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 + 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, + 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 }; -char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa) -{//===================================================================================== +char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags) +{//=================================================================================================== int c; int mnem; int len; int first; int ix = 0; char *p; - unsigned int ipa_control=0; // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme PHONEME_DATA phdata; if(ph->code == phonEND_WORD) @@ -568,20 +570,28 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int InterpretPhoneme(NULL, 0, plist, &phdata, NULL); } - len = strlen(phdata.ipa_string); + p = phdata.ipa_string; + if(*p == 0x20) + { + // indicates no name for this phoneme + *phon_out = 0; + return(phon_out); + } + if((*p != 0) && ((*p & 0xff) < 0x20)) + { + // name starts with a flags byte + if(flags != NULL) + *flags = *p; + p++; + } + + len = strlen(p); if(len > 0) { - if((ipa_control = phdata.ipa_string[0]) > 0x20) - { - strcpy(&phon_out[ix], phdata.ipa_string); - ix += len; - } - if(ipa_control >= 0x20) - { - phon_out = &phon_out[ix]; - *phon_out = 0; - return(phon_out); // 0x20 = ignore phoneme - } + strcpy(phon_out, p); + phon_out += len; + *phon_out = 0; + return(phon_out); } } @@ -625,21 +635,26 @@ 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 - to display the clause in phoneme mnemonic form. -*/ + /* Can be called after a clause has been translated into phonemes, in order + to display the clause in phoneme mnemonic form. + */ int ix; unsigned int len; unsigned int max_len; int phon_out_ix=0; int stress; - unsigned int c; + int c; + char *p; char *buf; + int count; + int flags; char phon_buf[30]; + char phon_buf2[30]; PHONEME_LIST *plist; static const char *stress_chars = "==,,''"; + static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner if(phon_out != NULL) { @@ -676,22 +691,38 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) } } - buf = WritePhMnemonic(buf, plist->ph, plist, use_ipa); + 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) + { + // look for non-inital alphabetic character, but not diacritic, superscript etc. + if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) + { + buf += utf8_out(char_tie[use_ipa-2], buf); + } + } + buf += utf8_out(c, buf); + count++; + } if(plist->ph->code != phonSWITCH) { if(plist->synthflags & SFLAG_LENGTHEN) { - buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa); + buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL); } if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL)) { // syllablic consonant - buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa); + buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL); } if(plist->tone_ph > 0) { - buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa); + buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL); } } @@ -726,7 +757,7 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) static int IsLetterGroup(Translator *tr, char *word, int group, int pre) {//===================================================================== - // match the word against a list of utf-8 strings +// match the word against a list of utf-8 strings char *p; char *w; int len=0; @@ -746,7 +777,7 @@ static int IsLetterGroup(Translator *tr, char *word, int group, int pre) { w = word; } - while(*p == *w) + while((*p == *w) && (*w != 0)) { w++; p++; @@ -781,7 +812,7 @@ static int IsLetter(Translator *tr, int letter, int group) if(tr->letter_bits_offset > 0) { if(((letter2 = (letter - tr->letter_bits_offset)) > 0) && (letter2 < 0x100)) - letter = letter2; + letter = letter2; else return(0); } @@ -825,11 +856,11 @@ static int Unpronouncable2(Translator *tr, char *word) int Unpronouncable(Translator *tr, char *word, int posn) {//===================================================== -/* Determines whether a word in 'unpronouncable', i.e. whether it should - be spoken as individual letters. + /* Determines whether a word in 'unpronouncable', i.e. whether it should + be spoken as individual letters. - This function may be language specific. This is a generic version. -*/ + This function may be language specific. This is a generic version. + */ int c; int c1=0; @@ -887,7 +918,7 @@ int Unpronouncable(Translator *tr, char *word, int posn) if(vowel_posn > (tr->langopts.max_initial_consonants+1)) return(1); // no vowel, or no vowel in first few letters -return(0); + return(0); } /* end of Unpronounceable */ @@ -979,8 +1010,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * count++; stress = -1; } - else - if(phcode == phonSYLLABIC) + else if(phcode == phonSYLLABIC) { // previous consonant phoneme is syllablic vowel_stress[count] = (char)stress; @@ -1011,7 +1041,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * { if(vowel_stress[ix] == 4) { - if(tr->langopts.stress_flags & 0x20000) + if(tr->langopts.stress_flags & S_PRIORITY_STRESS) vowel_stress[ix] = 1; else vowel_stress[ix] = 3; @@ -1034,7 +1064,8 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * static char stress_phonemes[] = {phonSTRESS_D, phonSTRESS_U, phonSTRESS_2, phonSTRESS_3, - phonSTRESS_P, phonSTRESS_P2, phonSTRESS_TONIC}; + phonSTRESS_P, phonSTRESS_P2, phonSTRESS_TONIC + }; void ChangeWordStress(Translator *tr, char *word, int new_stress) @@ -1098,8 +1129,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, 'output' is used for input and output 'dictionary_flags' has bits 0-3 position of stressed vowel (if > 0) - or unstressed (if == 7) or syllables 1 and 2 (if == 6) - bits 8... dictionary flags + or unstressed (if == 7) or syllables 1 and 2 (if == 6) + bits 8... dictionary flags If 'tonic' is set (>= 0), replace highest stress by this value. @@ -1122,7 +1153,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int final_ph; int final_ph2; int mnem; - int mnem2; int post_tonic; // currently not used int opt_length; int done; @@ -1179,12 +1209,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1); if((max_stress < 0) && dictionary_flags) { - if((tr->langopts.stress_flags & 1) && (vowel_count == 2)) - { - // lang=fr: don't stress monosyllables except at end-of-clause - vowel_stress[1] = 0; - dictionary_flags[0] |= FLAG_STRESS_END2; - } max_stress = 0; } @@ -1219,6 +1243,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, } } + switch(tr->langopts.stress_rule) { case 8: @@ -1262,19 +1287,18 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { stressed_syllable = vowel_count - 2; - if(stressflags & 0x300) + if(stressflags & (S_FINAL_SPANISH | S_FINAL_STRESS_C)) { // LANG=Spanish, stress on last vowel if the word ends in a consonant other than 'n' or 's' if(phoneme_tab[final_ph]->type != phVOWEL) { - if(stressflags & 0x100) + if(stressflags & S_FINAL_STRESS_C) { stressed_syllable = vowel_count - 1; } else { mnem = phoneme_tab[final_ph]->mnemonic; - mnem2 = phoneme_tab[final_ph2]->mnemonic; if(tr->translator_name == L('a','n')) { @@ -1287,8 +1311,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { // -ns stress remains on penultimate syllable } - else - if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL)) + else if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL)) { stressed_syllable = vowel_count - 1; } @@ -1296,7 +1319,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, } } } - if(stressflags & 0x80000) + + if(stressflags & S_FINAL_LONG) { // stress on last syllable if it has a long vowel, but previous syllable has a short vowel if(vowel_length[vowel_count - 1] > vowel_length[vowel_count - 2]) @@ -1329,7 +1353,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, } break; - case 3: + case 3: // stress on last vowel if(stressed_syllable == 0) { @@ -1380,8 +1404,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { if(phoneme_tab[final_ph]->type == phVOWEL) stressed_syllable = guess_ru_v[vowel_count]; - else - if(phoneme_tab[final_ph]->type == phSTOP) + else if(phoneme_tab[final_ph]->type == phSTOP) stressed_syllable = guess_ru_t[vowel_count]; else stressed_syllable = guess_ru[vowel_count]; @@ -1417,8 +1440,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, // the only double=heavy syllable is the final syllable, so stress this stressed_syllable = vowel_count-1; } - else - if(max_weight <= 0) + else if(max_weight <= 0) { // all syllables, exclusing the last, are light. Stress the first syllable stressed_syllable = 1; @@ -1459,12 +1481,12 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, for(ix=1; ix < vowel_count; ix++) { if(vowel_stress[ix] == 4) - vowel_stress[ix] = 3; // change marked stress (consonant clusters) to secondary (except the last) + vowel_stress[ix] = 3; // change marked stress (consonant clusters) to secondary (except the last) if(vowel_length[ix] > 0) { - long_vowel = ix; - vowel_stress[ix] = 3; // give secondary stress to all long vowels + long_vowel = ix; + vowel_stress[ix] = 3; // give secondary stress to all long vowels } } @@ -1473,14 +1495,14 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { // no marked stress, choose the last long vowel if(long_vowel > 0) - stressed_syllable = long_vowel; + stressed_syllable = long_vowel; else { - // no long vowels or consonant clusters - if(vowel_count > 4) - stressed_syllable = vowel_count - 3; - else - stressed_syllable = vowel_count - 1; + // no long vowels or consonant clusters + if(vowel_count > 4) + stressed_syllable = vowel_count - 3; + else + stressed_syllable = vowel_count - 1; } } vowel_stress[stressed_syllable] = 4; @@ -1497,7 +1519,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, if(unstressed_word == 0) { - if((stressflags & 0x1000) && (vowel_count == 3)) + if((stressflags & S_2_SYL_2) && (vowel_count == 3)) { // Two syllable word, if one syllable has primary stress, then give the other secondary stress if(vowel_stress[1] == 4) @@ -1506,7 +1528,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, vowel_stress[1] = 3; } - if((stressflags & 0x2000) && (vowel_stress[1] < 0)) + if((stressflags & S_INITIAL_2) && (vowel_stress[1] < 0)) { // If there is only one syllable before the primary stress, give it a secondary stress if((vowel_count > 3) && (vowel_stress[2] >= 4)) @@ -1522,26 +1544,24 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { if(vowel_stress[v] < 0) { - if((stressflags & 0x10) && (stress < 4) && (v == vowel_count-1)) + if((stressflags & S_FINAL_NO_2) && (stress < 4) && (v == vowel_count-1)) { // flag: don't give secondary stress to final vowel } - else - if((stressflags & 0x8000) && (done == 0)) + else if((stressflags & 0x8000) && (done == 0)) { vowel_stress[v] = (char)stress; done =1; stress = 3; /* use secondary stress for remaining syllables */ } - else - if((vowel_stress[v-1] <= 1) && ((vowel_stress[v+1] <= 1) || ((stress == 4) && (vowel_stress[v+1] <= 2)))) + else if((vowel_stress[v-1] <= 1) && ((vowel_stress[v+1] <= 1) || ((stress == 4) && (vowel_stress[v+1] <= 2)))) { /* trochaic: give stress to vowel surrounded by unstressed vowels */ - if((stress == 3) && (stressflags & 0x20)) + if((stress == 3) && (stressflags & S_NO_AUTO_2)) continue; // don't use secondary stress - if((v > 1) && (stressflags & 0x40) && (syllable_weight[v]==0) && (syllable_weight[v+1]>0)) + if((v > 1) && (stressflags & S_2_TO_HEAVY) && (syllable_weight[v]==0) && (syllable_weight[v+1]>0)) { // don't put secondary stress on a light syllable which is followed by a heavy syllable continue; @@ -1559,8 +1579,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { if(first_primary == 0) first_primary = v; - else - if(stressflags & S_FIRST_PRIMARY) + else if(stressflags & S_FIRST_PRIMARY) { // reduce primary stresses after the first to secondary vowel_stress[v] = 3; @@ -1617,19 +1636,19 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, } else #endif - if((tr->langopts.vowel_pause & 0x30) && (ph->type == phVOWEL)) - { - // word starts with a vowel + if((tr->langopts.vowel_pause & 0x30) && (ph->type == phVOWEL)) + { + // word starts with a vowel - if((tr->langopts.vowel_pause & 0x20) && (vowel_stress[1] >= 4)) - { + if((tr->langopts.vowel_pause & 0x20) && (vowel_stress[1] >= 4)) + { *output++ = phonPAUSE_NOLINK; // not to be replaced by link + } + else + { + *output++ = phonPAUSE_VSHORT; // break, but no pause + } } - else - { - *output++ = phonPAUSE_VSHORT; // break, but no pause - } - } } p = phonetic; @@ -1646,8 +1665,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, { tr->prev_last_stress = 0; } - else - if(((ph->type == phVOWEL) && !(ph->phflags & phNONSYLLABIC)) || (*p == phonSYLLABIC)) + else if(((ph->type == phVOWEL) && !(ph->phflags & phNONSYLLABIC)) || (*p == phonSYLLABIC)) { // a vowel, or a consonant followed by a syllabic consonant marker @@ -1659,19 +1677,17 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, if(v_stress <= 1) { - if((v > 1) && (max_stress >= 2) && (stressflags & 4) && (v == (vowel_count-1))) + if((v > 1) && (max_stress >= 2) && (stressflags & S_FINAL_DIM) && (v == (vowel_count-1))) { // option: mark unstressed final syllable as diminished v_stress = 0; } - else - if((stressflags & 2) || (v == 1) || (v == (vowel_count-1))) + else if((stressflags & S_NO_DIM) || (v == 1) || (v == (vowel_count-1))) { // first or last syllable, or option 'don't set diminished stress' v_stress = 1; } - else - if((v == (vowel_count-2)) && (vowel_stress[vowel_count-1] <= 1)) + else if((v == (vowel_count-2)) && (vowel_stress[vowel_count-1] <= 1)) { // penultimate syllable, followed by an unstressed final syllable v_stress = 1; @@ -1679,7 +1695,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, else { // unstressed syllable within a word - if((vowel_stress[v-1] < 0) || ((stressflags & 0x10000) == 0)) + if((vowel_stress[v-1] < 0) || ((stressflags & S_MID_DIM) == 0)) { v_stress = 0; /* change to 0 (diminished stress) */ vowel_stress[v] = v_stress; @@ -1707,8 +1723,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, if(v != max_stress_posn) shorten = 1; } - else - if(v_stress < 4) + else if(v_stress < 4) { // only allow lengthen indicator if stress >= 4. shorten = 1; @@ -1784,7 +1799,7 @@ void AppendPhonemes(Translator *tr, char *string, int size, const char *ph) if(phoneme_tab[c]->type == phVOWEL) { if(((phoneme_tab[c]->phflags & phUNSTRESSED) == 0) && - (unstress_mark == 0)) + (unstress_mark == 0)) { tr->word_stressed_count++; } @@ -2052,8 +2067,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ add_points = (20-distance_right); post_ptr += letter_xbytes; } - else - if(tr->langopts.tone_numbers) + else if(tr->langopts.tone_numbers) { // also match if there is no digit add_points = (20-distance_right); @@ -2086,8 +2100,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ { match.end_type = SUFX_UNPRON; // $unpron } - else - if((command & 0xf0) == 0x10) + else if((command & 0xf0) == 0x10) { // $w_alt if(dict_flags & (1 << (BITNUM_FLAG_ALT + (command & 0xf)))) @@ -2095,8 +2108,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ else failed = 1; } - else - if((command & 0xf0) == 0x20) + else if((command & 0xf0) == 0x20) { // $p_alt // make a copy of the word up to the post-match characters @@ -2122,72 +2134,72 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ break; case RULE_SYLLABLE: - { - /* more than specified number of vowel letters to the right */ - char *p = post_ptr + letter_xbytes; - int vowel_count=0; + { + /* more than specified number of vowel letters to the right */ + char *p = post_ptr + letter_xbytes; + int vowel_count=0; - syllable_count = 1; - while(*rule == RULE_SYLLABLE) - { - rule++; - syllable_count+=1; /* number of syllables to match */ - } - vowel = 0; - while(letter_w != RULE_SPACE) - { - if((vowel==0) && IsLetter(tr, letter_w,LETTERGP_VOWEL2)) - { - // this is counting vowels which are separated by non-vowel letters - vowel_count++; - } - vowel = IsLetter(tr, letter_w,LETTERGP_VOWEL2); - p += utf8_in(&letter_w,p); - } - if(syllable_count <= vowel_count) - add_points = (18+syllable_count-distance_right); - else - failed = 1; + syllable_count = 1; + while(*rule == RULE_SYLLABLE) + { + rule++; + syllable_count+=1; /* number of syllables to match */ } - break; + vowel = 0; + while(letter_w != RULE_SPACE) + { + if((vowel==0) && IsLetter(tr, letter_w,LETTERGP_VOWEL2)) + { + // this is counting vowels which are separated by non-vowel letters + vowel_count++; + } + vowel = IsLetter(tr, letter_w,LETTERGP_VOWEL2); + p += utf8_in(&letter_w,p); + } + if(syllable_count <= vowel_count) + add_points = (18+syllable_count-distance_right); + else + failed = 1; + } + break; case RULE_NOVOWELS: + { + char *p = post_ptr + letter_xbytes; + while(letter_w != RULE_SPACE) { - char *p = post_ptr + letter_xbytes; - while(letter_w != RULE_SPACE) + if(IsLetter(tr, letter_w,LETTERGP_VOWEL2)) { - if(IsLetter(tr, letter_w,LETTERGP_VOWEL2)) - { - failed = 1; - break; - } - p += utf8_in(&letter_w,p); + failed = 1; + break; } - if(!failed) - add_points = (19-distance_right); + p += utf8_in(&letter_w,p); } - break; + if(!failed) + add_points = (19-distance_right); + } + break; case RULE_SKIPCHARS: + { + // Used for lang=Tamil, used to match on the next word after an unknown word ending + // only look until the end of the word (including the end-of-word marker) + // Jx means 'skip characters until x', where 'x' may be '_' for 'end of word' + char *p = post_ptr + letter_xbytes; + char *p2 = p; + int rule_w; // skip characters until this + utf8_in(&rule_w,rule); + while((letter_w != rule_w) && (letter_w != RULE_SPACE)) { - // Used for lang=Tamil, used to match on the next word after an unknown word ending - // only look until the end of the word (including the end-of-word marker) - // Jx means 'skip characters until x', where 'x' may be '_' for 'end of word' - char *p = post_ptr + letter_xbytes; - char *p2 = p; - int rule_w; // skip characters until this - utf8_in(&rule_w,rule); - while((letter_w != rule_w) && (letter_w != RULE_SPACE)) - { - p2 = p; - p += utf8_in(&letter_w,p); - } - if(letter_w == rule_w) - { - post_ptr = p2; - } + p2 = p; + p += utf8_in(&letter_w,p); } - break; + if(letter_w == rule_w) + { + post_ptr = p2; + } + } + break; case RULE_INC_SCORE: add_points = 20; // force an increase in points @@ -2206,20 +2218,20 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ break; case RULE_ENDING: - { - int end_type; - // next 3 bytes are a (non-zero) ending type. 2 bytes of flags + suffix length - end_type = (rule[0] << 16) + ((rule[1] & 0x7f) << 8) + (rule[2] & 0x7f); + { + int end_type; + // next 3 bytes are a (non-zero) ending type. 2 bytes of flags + suffix length + end_type = (rule[0] << 16) + ((rule[1] & 0x7f) << 8) + (rule[2] & 0x7f); - if((tr->word_vowel_count == 0) && !(end_type & SUFX_P) && (tr->langopts.param[LOPT_SUFFIX] & 1)) - failed = 1; // don't match a suffix rule if there are no previous syllables (needed for lang=tr). - else - { - match.end_type = end_type; - rule += 3; - } + if((tr->word_vowel_count == 0) && !(end_type & SUFX_P) && (tr->langopts.param[LOPT_SUFFIX] & 1)) + failed = 1; // don't match a suffix rule if there are no previous syllables (needed for lang=tr). + else + { + match.end_type = end_type; + rule += 3; } - break; + } + break; case RULE_NO_SUFFIX: if(word_flags & FLAG_SUFFIX_REMOVED) @@ -2341,21 +2353,21 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ break; case RULE_NOVOWELS: + { + char *p = pre_ptr - letter_xbytes - 1; + while(letter_w != RULE_SPACE) { - char *p = pre_ptr - letter_xbytes - 1; - while(letter_w != RULE_SPACE) + if(IsLetter(tr, letter_w,LETTERGP_VOWEL2)) { - if(IsLetter(tr, letter_w,LETTERGP_VOWEL2)) - { - failed = 1; - break; - } - p -= utf8_in2(&letter_w,p,1); + failed = 1; + break; } - if(!failed) - add_points = 3; + p -= utf8_in2(&letter_w,p,1); } - break; + if(!failed) + add_points = 3; + } + break; case RULE_IFVERB: if(tr->expect_verb) @@ -2476,8 +2488,8 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, char *end_phonemes, int word_flags, unsigned int *dict_flags) {//===================================================================================================================================== -/* Translate a word bounded by space characters - Append the result to 'phonemes' and any standard prefix/suffix in 'end_phonemes' */ + /* Translate a word bounded by space characters + Append the result to 'phonemes' and any standard prefix/suffix in 'end_phonemes' */ unsigned char c, c2; unsigned int c12; @@ -2550,8 +2562,8 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c if(IsDigit(wc) && ((tr->langopts.tone_numbers == 0) || !any_alpha)) { // lookup the number in *_list not *_rules - char string[8]; - char buf[40]; + char string[8]; + char buf[40]; string[0] = '_'; memcpy(&string[1],p,wc_bytes); string[1+wc_bytes] = 0; @@ -2623,6 +2635,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c if((match1.points == 0) && ((option_sayas & 0x10) == 0)) { n = utf8_in(&letter,p-1)-1; + if(tr->letter_bits_offset > 0) { // not a Latin alphabet, switch to the default Latin alphabet language @@ -2680,22 +2693,20 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c continue; // start again at the beginning of the word } } - else - if((letter >= 0x3200) && (letter < 0xa700) && (end_phonemes != NULL)) - { - // ideograms - // outside the range of the accent table, speak the unknown symbol sound - Lookup(tr, "_??", ph_buf); - match1.phonemes = ph_buf; - match1.points = 1; - p += (wc_bytes-1); - } - if(((alphabet = AlphabetFromChar(letter)) != NULL) && (alphabet->language != 0) && (alphabet->offset != tr->letter_bits_offset)) + if(((alphabet = AlphabetFromChar(letter)) != NULL) && (alphabet->offset != tr->letter_bits_offset)) { - // switch to the nominated language for this alphabet - sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(alphabet->language)); - return(0); + if(tr->langopts.alt_alphabet == alphabet->offset) + { + sprintf(phonemes,"%c%s",phonSWITCH, tr->langopts.alt_alphabet_lang); + return(0); + } + if(alphabet->flags & AL_WORDS) + { + // switch to the nominated language for this alphabet + sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(alphabet->language)); + return(0); + } } } } @@ -2706,8 +2717,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c { // combining accent inside a word, ignore } - else - if(IsAlpha(wc)) + else if(IsAlpha(wc)) { if((any_alpha > 1) || (p[wc_bytes-1] > ' ')) { @@ -2746,8 +2756,8 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c #ifdef deleted // ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST - if((match1.end_type & SUFX_UNPRON) && !(word_flags & FLAG_SUFFIX_REMOVED)) - return(match1.end_type); + if((match1.end_type & SUFX_UNPRON) && !(word_flags & FLAG_SUFFIX_REMOVED)) + return(match1.end_type); #endif if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0)) @@ -2784,8 +2794,6 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c } } - // any language specific changes ? - ApplySpecialAttribute(tr,phonemes,dict_flags0); memcpy(p_start,word_copy,strlen(word_copy)); return(0); @@ -2794,7 +2802,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags) {//======================================================================== - // apply after the translation is complete +// apply after the translation is complete int ix; int len; char *p; @@ -2829,46 +2837,6 @@ void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags) } // end of ApplySpecialAttribute2 -void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags) -{//======================================================================= -// Amend the translated phonemes according to an attribute which is specific for the language. - int len; - char *p_end; - - if((dict_flags & (FLAG_ALT_TRANS | FLAG_ALT2_TRANS)) == 0) - return; - - len = strlen(phonemes); - p_end = &phonemes[len-1]; - - switch(tr->translator_name) - { -#ifdef deleted -// this is now done in de_rules - case L('d','e'): - if(p_end[0] == PhonemeCode2('i',':')) - { - // words ends in ['i:], change to [=I@] - p_end[-1] = phonSTRESS_PREV; - p_end[0] = PhonemeCode('I'); - p_end[1] = phonSCHWA; - p_end[2] = 0; - } - break; -#endif - - case L('r','o'): - if(p_end[0] == PhonemeCode('j')) - { - // word end in [j], change to ['i] - p_end[0] = phonSTRESS_P; - p_end[1] = PhonemeCode('i'); - p_end[2] = 0; - } - break; - } -} // end of ApplySpecialAttribute - //============================================================================================= @@ -2898,7 +2866,7 @@ int TransposeAlphabet(Translator *tr, char *text) const short *pairs_list; char buf[N_WORD_BYTES]; - p2 = buf; + p2 = buf; offset = tr->transpose_min - 1; min = tr->transpose_min; max = tr->transpose_max; @@ -2982,7 +2950,7 @@ int TransposeAlphabet(Translator *tr, char *text) } else { - return(strlen(text)); + return(strlen(text)); } } // end of TransposeAlphabet @@ -2990,7 +2958,7 @@ int TransposeAlphabet(Translator *tr, char *text) static const char *LookupDict2(Translator *tr, const char *word, const char *word2, - char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab) + char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab) //===================================================================================== /* Find an entry in the word_dict file for a specified word. Returns NULL if no match, else returns 'word_end' @@ -3016,11 +2984,12 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor int no_phonemes; int skipwords; int ix; + int c; const char *word_end; const char *word1; int wflags = 0; -// int wflags2; char word_buf[N_WORD_BYTES+1]; + char dict_flags_buf[80]; if(wtab != NULL) { @@ -3105,8 +3074,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor condition_failed = 1; } } - else - if(flag > 80) + else if(flag > 80) { // flags 81 to 90 match more than one word // This comes after the other flags @@ -3141,16 +3109,14 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor p = next; word_end = word2 + n_chars; } - else - if(flag > 64) + else if(flag > 64) { // stressed syllable information, put in bits 0-3 dictionary_flags = (dictionary_flags & ~0xf) | (flag & 0xf); if((flag & 0xc) == 0xc) dictionary_flags |= FLAG_STRESS_END; } - else - if(flag >= 32) + else if(flag >= 32) { dictionary_flags2 |= (1L << (flag-32)); } @@ -3169,20 +3135,20 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if((end_flags & FLAG_SUFX)==0) { // no suffix has been removed - if(dictionary_flags & FLAG_STEM) + if(dictionary_flags2 & FLAG_STEM) continue; // this word must have a suffix } - if((end_flags & SUFX_P) && (dictionary_flags & (FLAG_ONLY | FLAG_ONLY_S))) + if((end_flags & SUFX_P) && (dictionary_flags2 & (FLAG_ONLY | FLAG_ONLY_S))) continue; // $only or $onlys, don't match if a prefix has been removed if(end_flags & FLAG_SUFX) { // a suffix was removed from the word - if(dictionary_flags & FLAG_ONLY) + if(dictionary_flags2 & FLAG_ONLY) continue; // no match if any suffix - if((dictionary_flags & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0)) + if((dictionary_flags2 & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0)) { // only a 's' suffix allowed, but the suffix wasn't 's' continue; @@ -3216,13 +3182,13 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor continue; } - if((dictionary_flags & FLAG_ATEND) && (word_end < tr->clause_end)) + if((dictionary_flags2 & FLAG_ATEND) && (word_end < tr->clause_end)) { // only use this pronunciation if it's the last word of the clause continue; } - if((dictionary_flags & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD)) + if((dictionary_flags2 & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD)) { // only use this pronunciation if it's the first word of a clause continue; @@ -3241,6 +3207,11 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if(tr->expect_verb || (tr->expect_verb_s && (end_flags & FLAG_SUFX_S))) { // OK, we are expecting a verb + if((tr->translator_name == L('e','n')) && (tr->prev_dict_flags[0] & FLAG_ALT6_TRANS) && (end_flags & FLAG_SUFX_S)) + { + // lang=en, don't use verb form after 'to' if the word has 's' suffix + continue; + } } else { @@ -3270,7 +3241,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if(dictionary_flags & FLAG_ALT2_TRANS) { // language specific - if((tr->translator_name == L('h','u')) && !(tr->prev_dict_flags & FLAG_ALT_TRANS)) + if((tr->translator_name == L('h','u')) && !(tr->prev_dict_flags[0] & FLAG_ALT_TRANS)) continue; } @@ -3284,7 +3255,8 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor { if(option_phonemes == 2) { - fprintf(f_trans,"Flags: %s %s\n",word1,print_dictionary_flags(flags)); + print_dictionary_flags(flags, dict_flags_buf, sizeof(dict_flags_buf)); + fprintf(f_trans,"Flags: %s %s\n", word1, dict_flags_buf); } return(0); // no phoneme translation found here, only flags. So use rules } @@ -3307,21 +3279,28 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if(textmode == translator->langopts.textmode) { // only show this line if the word translates to phonemes, not replacement text - if((dictionary_skipwords) && (wtab != NULL)) + if((dictionary_flags & FLAG_SKIPWORDS) && (wtab != NULL)) { // matched more than one word // (check for wtab prevents showing RULE_SPELLING byte when speaking individual letters) memcpy(word_buf,word2,word_end-word2); word_buf[word_end-word2-1] = 0; - fprintf(f_trans,"Found: '%s %s",word1,word_buf); + fprintf(f_trans,"Found: '%s %s\n",word1,word_buf); } else { fprintf(f_trans,"Found: '%s",word1); } - fprintf(f_trans,"' [%s] %s\n",ph_decoded,print_dictionary_flags(flags)); + print_dictionary_flags(flags, dict_flags_buf, sizeof(dict_flags_buf)); + fprintf(f_trans,"' [%s] %s\n", ph_decoded,dict_flags_buf); } } + + ix = utf8_in(&c, word); + if((word[ix] == 0) && !IsAlpha(c)) + { + flags[0] |= FLAG_MAX3; + } return(word_end); } @@ -3394,6 +3373,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab); + if(flags[0] & FLAG_MAX3) { if(strcmp(ph_out, tr->phonemes_repeat) == 0) @@ -3438,8 +3418,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f word[length-1] = 0; found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab); } - else - if((end_flags & SUFX_D) && (word[length-1] == word[length-2])) + else if((end_flags & SUFX_D) && (word[length-1] == word[length-2])) { // try removing a double letter word[length-1] = 0; @@ -3518,7 +3497,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) {//======================================================================== /* Removes a standard suffix from a word, once it has been indicated by the dictionary rules. end_type: bits 0-6 number of letters - bits 8-14 suffix flags + bits 8-14 suffix flags word_copy: make a copy of the original word This routine is language specific. In English it deals with reversing y->i and e-dropping @@ -3535,11 +3514,13 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) // these lists are language specific, but are only relevent if the 'e' suffix flag is used static const char *add_e_exceptions[] = { - "ion", NULL }; + "ion", NULL + }; static const char *add_e_additions[] = { // "c", "rs", "ir", "ur", "ath", "ns", "lu", NULL }; - "c", "rs", "ir", "ur", "ath", "ns", "u", NULL }; + "c", "rs", "ir", "ur", "ath", "ns", "u", NULL + }; for(word_end = word; *word_end != ' '; word_end++) { @@ -3551,12 +3532,12 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) if(word_copy != NULL) { - memcpy(word_copy,word,i); - word_copy[i] = 0; + memcpy(word_copy,word,i); + word_copy[i] = 0; } // look for multibyte characters to increase the number of bytes to remove - for(len_ending = i = (end_type & 0x3f); i>0 ;i--) // num.of characters of the suffix + for(len_ending = i = (end_type & 0x3f); i>0 ; i--) // num.of characters of the suffix { word_end--; while((*word_end & 0xc0) == 0x80) @@ -3599,8 +3580,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) word_end[2] = ' '; } } - else - if(tr->translator_name == L('e','n')) + else if(tr->translator_name == L('e','n')) { // add 'e' to end of stem if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1)) @@ -3631,8 +3611,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) } } } - else - if(tr->langopts.suffix_add_e != 0) + else if(tr->langopts.suffix_add_e != 0) { end_flags |= FLAG_SUFX_E_ADDED; } @@ -3641,10 +3620,10 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) { utf8_out(tr->langopts.suffix_add_e, &word_end[1]); - if(option_phonemes == 2) - { - fprintf(f_trans,"add e\n"); - } + if(option_phonemes == 2) + { + fprintf(f_trans,"add e\n"); + } } } @@ -3663,3 +3642,4 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) } /* end of RemoveEnding */ + diff --git a/src/espeak.cpp b/src/espeak.cpp index 25bc9aac..f9669a9e 100644 --- a/src/espeak.cpp +++ b/src/espeak.cpp @@ -67,6 +67,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" "--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" @@ -362,7 +363,7 @@ int main (int argc, char **argv) {"path", required_argument, 0, 0x107}, {"phonout", required_argument, 0, 0x108}, {"pho", no_argument, 0, 0x109}, - {"ipa", no_argument, 0, 0x10a}, + {"ipa", optional_argument, 0, 0x10a}, {"version", no_argument, 0, 0x10b}, {0, 0, 0, 0} }; @@ -604,6 +605,17 @@ int main (int argc, char **argv) case 0x10a: // --ipa option_phonemes = 3; + if(optarg2 != NULL) + { + value = -1; + sscanf(optarg2,"%d",&value); + if((value<0) || (value>2)) + { + fprintf(stderr,"Bad value for -ipa=\n"); + value = 0; + } + option_phonemes += value; + } break; case 0x10b: // -version diff --git a/src/espeak_command.cpp b/src/espeak_command.cpp index c0030e63..d8460c75 100644 --- a/src/espeak_command.cpp +++ b/src/espeak_command.cpp @@ -46,14 +46,14 @@ t_espeak_command* create_espeak_text(const void *text, size_t size, unsigned int { goto text_error; } - - a_text = malloc( size ); + + a_text = malloc( size+1 ); if (!a_text) { goto text_error; } memcpy(a_text, text, size); - + a_command->type = ET_TEXT; a_command->state = CS_UNDEFINED; data = &(a_command->u.my_text); @@ -102,7 +102,7 @@ t_espeak_command* create_espeak_terminated_msg(unsigned int unique_identifier, v { goto msg_error; } - + a_command->type = ET_TERMINATED_MSG; a_command->state = CS_UNDEFINED; data = &(a_command->u.my_terminated_msg); @@ -234,7 +234,7 @@ t_espeak_command* create_espeak_char(wchar_t character, void* user_data) { goto char_error; } - + a_command->type = ET_CHAR; a_command->state = CS_UNDEFINED; a_command->u.my_char.user_data = user_data; @@ -270,11 +270,11 @@ t_espeak_command* create_espeak_parameter(espeak_PARAMETER parameter, int value, { goto param_error; } - + a_command->type = ET_PARAMETER; a_command->state = CS_UNDEFINED; data = &(a_command->u.my_param); - data->parameter = parameter; + data->parameter = parameter; data->value = value; data->relative = relative; a_error=0; @@ -308,7 +308,7 @@ t_espeak_command* create_espeak_punctuation_list(const wchar_t *punctlist) { goto list_error; } - + a_command->type = ET_PUNCTUATION_LIST; a_command->state = CS_UNDEFINED; @@ -350,7 +350,7 @@ t_espeak_command* create_espeak_voice_name(const char *name) { goto name_error; } - + a_command->type = ET_VOICE_NAME; a_command->state = CS_UNDEFINED; a_command->u.my_voice_name = strdup( name); @@ -381,7 +381,7 @@ t_espeak_command* create_espeak_voice_spec(espeak_VOICE *voice) { goto spec_error; } - + a_command->type = ET_VOICE_SPEC; a_command->state = CS_UNDEFINED; { @@ -451,11 +451,11 @@ int delete_espeak_command( t_espeak_command* the_command) break; case ET_TERMINATED_MSG: - { + { // if the terminated msg is pending, - // it must be processed here for informing the calling program + // it must be processed here for informing the calling program // that its message is finished. - // This can be important for cleaning the related user data. + // This can be important for cleaning the related user data. t_espeak_terminated_msg* data = &(the_command->u.my_terminated_msg); if (the_command->state == CS_PENDING) { @@ -491,7 +491,7 @@ int delete_espeak_command( t_espeak_command* the_command) free((void*)(the_command->u.my_voice_name)); } break; - + case ET_VOICE_SPEC: { espeak_VOICE* data = &(the_command->u.my_voice_spec); @@ -542,23 +542,23 @@ void process_espeak_command( t_espeak_command* the_command) case ET_TEXT: { t_espeak_text* data = &(the_command->u.my_text); - sync_espeak_Synth( data->unique_identifier, data->text, data->size, - data->position, data->position_type, - data->end_position, data->flags, data->user_data); + sync_espeak_Synth( data->unique_identifier, data->text, data->size, + data->position, data->position_type, + data->end_position, data->flags, data->user_data); } break; case ET_MARK: { t_espeak_mark* data = &(the_command->u.my_mark); - sync_espeak_Synth_Mark( data->unique_identifier, data->text, data->size, - data->index_mark, data->end_position, data->flags, + sync_espeak_Synth_Mark( data->unique_identifier, data->text, data->size, + data->index_mark, data->end_position, data->flags, data->user_data); } break; case ET_TERMINATED_MSG: - { + { t_espeak_terminated_msg* data = &(the_command->u.my_terminated_msg); sync_espeak_terminated_msg( data->unique_identifier, data->user_data); } @@ -654,8 +654,8 @@ void display_espeak_command( t_espeak_command* the_command) { t_espeak_terminated_msg* data = &(the_command->u.my_terminated_msg); - SHOW("display_espeak_command > (0x%x) TERMINATED_MSG uid=%d, user_data=0x%x, state=%d\n", - the_command, data->unique_identifier, data->user_data, + SHOW("display_espeak_command > (0x%x) TERMINATED_MSG uid=%d, user_data=0x%x, state=%d\n", + the_command, data->unique_identifier, data->user_data, the_command->state); } break; @@ -670,7 +670,7 @@ void display_espeak_command( t_espeak_command* the_command) case ET_PARAMETER: { t_espeak_parameter* data = &(the_command->u.my_param); - SHOW("display_espeak_command > (0x%x) PARAMETER=%d, value=%d, relative=%d\n", + SHOW("display_espeak_command > (0x%x) PARAMETER=%d, value=%d, relative=%d\n", the_command, data->parameter, data->value, data->relative); } break; diff --git a/src/extras.cpp b/src/extras.cpp index a04e4704..7fb5c348 100644 --- a/src/extras.cpp +++ b/src/extras.cpp @@ -464,7 +464,7 @@ void Lexicon_It(int pass) } // translate - TranslateWord(translator,&word1[1],0, NULL); + TranslateWord(translator,&word1[1],0, NULL, NULL); DecodePhonemes(word_phonemes,phonemes); stress_posn1 = 0; @@ -487,7 +487,7 @@ void Lexicon_It(int pass) vowel_ix++; } - TranslateWord(translator,&word2[1],0, NULL); + TranslateWord(translator,&word2[1],0, NULL, NULL); DecodePhonemes(word_phonemes,phonemes2); vowel_ix = 1; @@ -802,7 +802,7 @@ void Lexicon_De() } // translate - TranslateWord(translator,&word2[1],0, NULL); + TranslateWord(translator,&word2[1],0, NULL, NULL); DecodePhonemes2(word_phonemes,phonemes); // also need to change some phoneme names @@ -1042,7 +1042,7 @@ void Lexicon_Bg() *pw1 = 0; // translate - TranslateWord(translator, &word[2],0, NULL); + TranslateWord(translator, &word[2],0, NULL, NULL); DecodePhonemes(word_phonemes,phonemes); // find the stress position in the translation @@ -1300,7 +1300,7 @@ void Lexicon_Ru() } // translate - TranslateWord(translator, &word2[1],0, NULL); + TranslateWord(translator, &word2[1],0, NULL, NULL); DecodePhonemes(word_phonemes,phonemes); // find the stress position in the translation diff --git a/src/menus.cpp b/src/menus.cpp index 917f4899..52ac13ab 100644 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -89,10 +89,10 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) // DATA MENU data_menu = new wxMenu; - data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); - data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); + data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); + data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); data_menu->AppendSeparator(); data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); diff --git a/src/numbers.cpp b/src/numbers.cpp index 46693daf..ae84f3ca 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -76,36 +76,36 @@ static int number_control; typedef struct { -const char *name; -int flags; + const char *name; + int flags; } ACCENTS; // these are tokens to look up in the *_list file. static ACCENTS accents_tab[] = { -{"_lig", 1}, -{"_smc", 1}, // smallcap -{"_tur", 1}, // turned -{"_rev", 1}, // reversed -{"_crl", 0}, // curl + {"_lig", 1}, + {"_smc", 1}, // smallcap + {"_tur", 1}, // turned + {"_rev", 1}, // reversed + {"_crl", 0}, // curl -{"_acu", 0}, // acute -{"_brv", 0}, // breve -{"_hac", 0}, // caron/hacek -{"_ced", 0}, // cedilla -{"_cir", 0}, // circumflex -{"_dia", 0}, // diaeresis -{"_ac2", 0}, // double acute -{"_dot", 0}, // dot -{"_grv", 0}, // grave -{"_mcn", 0}, // macron -{"_ogo", 0}, // ogonek -{"_rng", 0}, // ring -{"_stk", 0}, // stroke -{"_tld", 0}, // tilde + {"_acu", 0}, // acute + {"_brv", 0}, // breve + {"_hac", 0}, // caron/hacek + {"_ced", 0}, // cedilla + {"_cir", 0}, // circumflex + {"_dia", 0}, // diaeresis + {"_ac2", 0}, // double acute + {"_dot", 0}, // dot + {"_grv", 0}, // grave + {"_mcn", 0}, // macron + {"_ogo", 0}, // ogonek + {"_rng", 0}, // ring + {"_stk", 0}, // stroke + {"_tld", 0}, // tilde -{"_bar", 0}, // bar -{"_rfx", 0}, // retroflex -{"_hok", 0}, // hook + {"_bar", 0}, // bar + {"_rfx", 0}, // retroflex + {"_hok", 0}, // hook }; @@ -131,270 +131,271 @@ static ACCENTS accents_tab[] = { static const short non_ascii_tab[] = { - 0, 0x3b1, 0x259, 0x25b, 0x3b3, 0x3b9, 0x153, 0x3c9, -0x3c6, 0x283, 0x3c5, 0x292, 0x294, 0x27e }; + 0, 0x3b1, 0x259, 0x25b, 0x3b3, 0x3b9, 0x153, 0x3c9, + 0x3c6, 0x283, 0x3c5, 0x292, 0x294, 0x27e +}; // characters U+00e0 to U+017f static const unsigned short letter_accents_0e0[] = { -LETTER('a',M_GRAVE,0), // U+00e0 -LETTER('a',M_ACUTE,0), -LETTER('a',M_CIRCUMFLEX,0), -LETTER('a',M_TILDE,0), -LETTER('a',M_DIAERESIS,0), -LETTER('a',M_RING,0), -LIGATURE('a','e',0), -LETTER('c',M_CEDILLA,0), -LETTER('e',M_GRAVE,0), -LETTER('e',M_ACUTE,0), -LETTER('e',M_CIRCUMFLEX,0), -LETTER('e',M_DIAERESIS,0), -LETTER('i',M_GRAVE,0), -LETTER('i',M_ACUTE,0), -LETTER('i',M_CIRCUMFLEX,0), -LETTER('i',M_DIAERESIS,0), -LETTER('d',M_NAME,0), // eth // U+00f0 -LETTER('n',M_TILDE,0), -LETTER('o',M_GRAVE,0), -LETTER('o',M_ACUTE,0), -LETTER('o',M_CIRCUMFLEX,0), -LETTER('o',M_TILDE,0), -LETTER('o',M_DIAERESIS,0), -0, // division sign -LETTER('o',M_STROKE,0), -LETTER('u',M_GRAVE,0), -LETTER('u',M_ACUTE,0), -LETTER('u',M_CIRCUMFLEX,0), -LETTER('u',M_DIAERESIS,0), -LETTER('y',M_ACUTE,0), -LETTER('t',M_NAME,0), // thorn -LETTER('y',M_DIAERESIS,0), -CAPITAL, // U+0100 -LETTER('a',M_MACRON,0), -CAPITAL, -LETTER('a',M_BREVE,0), -CAPITAL, -LETTER('a',M_OGONEK,0), -CAPITAL, -LETTER('c',M_ACUTE,0), -CAPITAL, -LETTER('c',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('c',M_DOT_ABOVE,0), -CAPITAL, -LETTER('c',M_CARON,0), -CAPITAL, -LETTER('d',M_CARON,0), -CAPITAL, // U+0110 -LETTER('d',M_STROKE,0), -CAPITAL, -LETTER('e',M_MACRON,0), -CAPITAL, -LETTER('e',M_BREVE,0), -CAPITAL, -LETTER('e',M_DOT_ABOVE,0), -CAPITAL, -LETTER('e',M_OGONEK,0), -CAPITAL, -LETTER('e',M_CARON,0), -CAPITAL, -LETTER('g',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('g',M_BREVE,0), -CAPITAL, // U+0120 -LETTER('g',M_DOT_ABOVE,0), -CAPITAL, -LETTER('g',M_CEDILLA,0), -CAPITAL, -LETTER('h',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('h',M_STROKE,0), -CAPITAL, -LETTER('i',M_TILDE,0), -CAPITAL, -LETTER('i',M_MACRON,0), -CAPITAL, -LETTER('i',M_BREVE,0), -CAPITAL, -LETTER('i',M_OGONEK,0), -CAPITAL, // U+0130 -LETTER('i',M_NAME,0), // dotless i -CAPITAL, -LIGATURE('i','j',0), -CAPITAL, -LETTER('j',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('k',M_CEDILLA,0), -LETTER('k',M_NAME,0), // kra -CAPITAL, -LETTER('l',M_ACUTE,0), -CAPITAL, -LETTER('l',M_CEDILLA,0), -CAPITAL, -LETTER('l',M_CARON,0), -CAPITAL, -LETTER('l',M_MIDDLE_DOT,0), // U+0140 -CAPITAL, -LETTER('l',M_STROKE,0), -CAPITAL, -LETTER('n',M_ACUTE,0), -CAPITAL, -LETTER('n',M_CEDILLA,0), -CAPITAL, -LETTER('n',M_CARON,0), -LETTER('n',M_NAME,0), // apostrophe n -CAPITAL, -LETTER('n',M_NAME,0), // eng -CAPITAL, -LETTER('o',M_MACRON,0), -CAPITAL, -LETTER('o',M_BREVE,0), -CAPITAL, // U+0150 -LETTER('o',M_DOUBLE_ACUTE,0), -CAPITAL, -LIGATURE('o','e',0), -CAPITAL, -LETTER('r',M_ACUTE,0), -CAPITAL, -LETTER('r',M_CEDILLA,0), -CAPITAL, -LETTER('r',M_CARON,0), -CAPITAL, -LETTER('s',M_ACUTE,0), -CAPITAL, -LETTER('s',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('s',M_CEDILLA,0), -CAPITAL, // U+0160 -LETTER('s',M_CARON,0), -CAPITAL, -LETTER('t',M_CEDILLA,0), -CAPITAL, -LETTER('t',M_CARON,0), -CAPITAL, -LETTER('t',M_STROKE,0), -CAPITAL, -LETTER('u',M_TILDE,0), -CAPITAL, -LETTER('u',M_MACRON,0), -CAPITAL, -LETTER('u',M_BREVE,0), -CAPITAL, -LETTER('u',M_RING,0), -CAPITAL, // U+0170 -LETTER('u',M_DOUBLE_ACUTE,0), -CAPITAL, -LETTER('u',M_OGONEK,0), -CAPITAL, -LETTER('w',M_CIRCUMFLEX,0), -CAPITAL, -LETTER('y',M_CIRCUMFLEX,0), -CAPITAL, // Y-DIAERESIS -CAPITAL, -LETTER('z',M_ACUTE,0), -CAPITAL, -LETTER('z',M_DOT_ABOVE,0), -CAPITAL, -LETTER('z',M_CARON,0), -LETTER('s',M_NAME,0), // long-s // U+17f + LETTER('a',M_GRAVE,0), // U+00e0 + LETTER('a',M_ACUTE,0), + LETTER('a',M_CIRCUMFLEX,0), + LETTER('a',M_TILDE,0), + LETTER('a',M_DIAERESIS,0), + LETTER('a',M_RING,0), + LIGATURE('a','e',0), + LETTER('c',M_CEDILLA,0), + LETTER('e',M_GRAVE,0), + LETTER('e',M_ACUTE,0), + LETTER('e',M_CIRCUMFLEX,0), + LETTER('e',M_DIAERESIS,0), + LETTER('i',M_GRAVE,0), + LETTER('i',M_ACUTE,0), + LETTER('i',M_CIRCUMFLEX,0), + LETTER('i',M_DIAERESIS,0), + LETTER('d',M_NAME,0), // eth // U+00f0 + LETTER('n',M_TILDE,0), + LETTER('o',M_GRAVE,0), + LETTER('o',M_ACUTE,0), + LETTER('o',M_CIRCUMFLEX,0), + LETTER('o',M_TILDE,0), + LETTER('o',M_DIAERESIS,0), + 0, // division sign + LETTER('o',M_STROKE,0), + LETTER('u',M_GRAVE,0), + LETTER('u',M_ACUTE,0), + LETTER('u',M_CIRCUMFLEX,0), + LETTER('u',M_DIAERESIS,0), + LETTER('y',M_ACUTE,0), + LETTER('t',M_NAME,0), // thorn + LETTER('y',M_DIAERESIS,0), + CAPITAL, // U+0100 + LETTER('a',M_MACRON,0), + CAPITAL, + LETTER('a',M_BREVE,0), + CAPITAL, + LETTER('a',M_OGONEK,0), + CAPITAL, + LETTER('c',M_ACUTE,0), + CAPITAL, + LETTER('c',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('c',M_DOT_ABOVE,0), + CAPITAL, + LETTER('c',M_CARON,0), + CAPITAL, + LETTER('d',M_CARON,0), + CAPITAL, // U+0110 + LETTER('d',M_STROKE,0), + CAPITAL, + LETTER('e',M_MACRON,0), + CAPITAL, + LETTER('e',M_BREVE,0), + CAPITAL, + LETTER('e',M_DOT_ABOVE,0), + CAPITAL, + LETTER('e',M_OGONEK,0), + CAPITAL, + LETTER('e',M_CARON,0), + CAPITAL, + LETTER('g',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('g',M_BREVE,0), + CAPITAL, // U+0120 + LETTER('g',M_DOT_ABOVE,0), + CAPITAL, + LETTER('g',M_CEDILLA,0), + CAPITAL, + LETTER('h',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('h',M_STROKE,0), + CAPITAL, + LETTER('i',M_TILDE,0), + CAPITAL, + LETTER('i',M_MACRON,0), + CAPITAL, + LETTER('i',M_BREVE,0), + CAPITAL, + LETTER('i',M_OGONEK,0), + CAPITAL, // U+0130 + LETTER('i',M_NAME,0), // dotless i + CAPITAL, + LIGATURE('i','j',0), + CAPITAL, + LETTER('j',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('k',M_CEDILLA,0), + LETTER('k',M_NAME,0), // kra + CAPITAL, + LETTER('l',M_ACUTE,0), + CAPITAL, + LETTER('l',M_CEDILLA,0), + CAPITAL, + LETTER('l',M_CARON,0), + CAPITAL, + LETTER('l',M_MIDDLE_DOT,0), // U+0140 + CAPITAL, + LETTER('l',M_STROKE,0), + CAPITAL, + LETTER('n',M_ACUTE,0), + CAPITAL, + LETTER('n',M_CEDILLA,0), + CAPITAL, + LETTER('n',M_CARON,0), + LETTER('n',M_NAME,0), // apostrophe n + CAPITAL, + LETTER('n',M_NAME,0), // eng + CAPITAL, + LETTER('o',M_MACRON,0), + CAPITAL, + LETTER('o',M_BREVE,0), + CAPITAL, // U+0150 + LETTER('o',M_DOUBLE_ACUTE,0), + CAPITAL, + LIGATURE('o','e',0), + CAPITAL, + LETTER('r',M_ACUTE,0), + CAPITAL, + LETTER('r',M_CEDILLA,0), + CAPITAL, + LETTER('r',M_CARON,0), + CAPITAL, + LETTER('s',M_ACUTE,0), + CAPITAL, + LETTER('s',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('s',M_CEDILLA,0), + CAPITAL, // U+0160 + LETTER('s',M_CARON,0), + CAPITAL, + LETTER('t',M_CEDILLA,0), + CAPITAL, + LETTER('t',M_CARON,0), + CAPITAL, + LETTER('t',M_STROKE,0), + CAPITAL, + LETTER('u',M_TILDE,0), + CAPITAL, + LETTER('u',M_MACRON,0), + CAPITAL, + LETTER('u',M_BREVE,0), + CAPITAL, + LETTER('u',M_RING,0), + CAPITAL, // U+0170 + LETTER('u',M_DOUBLE_ACUTE,0), + CAPITAL, + LETTER('u',M_OGONEK,0), + CAPITAL, + LETTER('w',M_CIRCUMFLEX,0), + CAPITAL, + LETTER('y',M_CIRCUMFLEX,0), + CAPITAL, // Y-DIAERESIS + CAPITAL, + LETTER('z',M_ACUTE,0), + CAPITAL, + LETTER('z',M_DOT_ABOVE,0), + CAPITAL, + LETTER('z',M_CARON,0), + LETTER('s',M_NAME,0), // long-s // U+17f }; // characters U+0250 to U+029F static const unsigned short letter_accents_250[] = { -LETTER('a',M_TURNED,0), // U+250 -LETTER(L_ALPHA,0,0), -LETTER(L_ALPHA,M_TURNED,0), -LETTER('b',M_IMPLOSIVE,0), -0, // open-o -LETTER('c',M_CURL,0), -LETTER('d',M_RETROFLEX,0), -LETTER('d',M_IMPLOSIVE,0), -LETTER('e',M_REVERSED,0), // U+258 -0, // schwa -LETTER(L_SCHWA,M_HOOK,0), -0, // open-e -LETTER(L_OPEN_E,M_REVERSED,0), -LETTER(L_OPEN_E,M_HOOK,M_REVERSED), -0,//LETTER(L_OPEN_E,M_CLOSED,M_REVERSED), -LETTER('j',M_BAR,0), -LETTER('g',M_IMPLOSIVE,0), // U+260 -LETTER('g',0,0), -LETTER('g',M_SMALLCAP,0), -LETTER(L_GAMMA,0,0), -0, // ramshorn -LETTER('h',M_TURNED,0), -LETTER('h',M_HOOK,0), -0,//LETTER(L_HENG,M_HOOK,0), -LETTER('i',M_BAR,0), // U+268 -LETTER(L_IOTA,0,0), -LETTER('i',M_SMALLCAP,0), -LETTER('l',M_TILDE,0), -LETTER('l',M_BAR,0), -LETTER('l',M_RETROFLEX,0), -LIGATURE('l','z',0), -LETTER('m',M_TURNED,0), -0,//LETTER('m',M_TURNED,M_LEG), // U+270 -LETTER('m',M_HOOK,0), -0,//LETTER('n',M_LEFTHOOK,0), -LETTER('n',M_RETROFLEX,0), -LETTER('n',M_SMALLCAP,0), -LETTER('o',M_BAR,0), -LIGATURE('o','e',M_SMALLCAP), -0,//LETTER(L_OMEGA,M_CLOSED,0), -LETTER(L_PHI,0,0), // U+278 -LETTER('r',M_TURNED,0), -0,//LETTER('r',M_TURNED,M_LEG), -LETTER('r',M_RETROFLEX,M_TURNED), -0,//LETTER('r',M_LEG,0), -LETTER('r',M_RETROFLEX,0), -0, // r-tap -LETTER(L_RTAP,M_REVERSED,0), -LETTER('r',M_SMALLCAP,0), // U+280 -LETTER('r',M_TURNED,M_SMALLCAP), -LETTER('s',M_RETROFLEX,0), -0, // esh -0,//LETTER('j',M_BAR,L_IMPLOSIVE), -LETTER(L_ESH,M_REVERSED,0), -LETTER(L_ESH,M_CURL,0), -LETTER('t',M_TURNED,0), -LETTER('t',M_RETROFLEX,0), // U+288 -LETTER('u',M_BAR,0), -LETTER(L_UPSILON,0,0), -LETTER('v',M_HOOK,0), -LETTER('v',M_TURNED,0), -LETTER('w',M_TURNED,0), -LETTER('y',M_TURNED,0), -LETTER('y',M_SMALLCAP,0), -LETTER('z',M_RETROFLEX,0), // U+290 -LETTER('z',M_CURL,0), -0, // ezh -LETTER(L_EZH,M_CURL,0), -0, // glottal stop -LETTER(L_GLOTTAL,M_REVERSED,0), -LETTER(L_GLOTTAL,M_TURNED,0), -0,//LETTER('c',M_LONG,0), -0, // bilabial click // U+298 -LETTER('b',M_SMALLCAP,0), -0,//LETTER(L_OPEN_E,M_CLOSED,0), -LETTER('g',M_IMPLOSIVE,M_SMALLCAP), -LETTER('h',M_SMALLCAP,0), -LETTER('j',M_CURL,0), -LETTER('k',M_TURNED,0), -LETTER('l',M_SMALLCAP,0), -LETTER('q',M_HOOK,0), // U+2a0 -LETTER(L_GLOTTAL,M_STROKE,0), -LETTER(L_GLOTTAL,M_STROKE,M_REVERSED), -LIGATURE('d','z',0), -0, // dezh -LIGATURE('d','z',M_CURL), -LIGATURE('t','s',0), -0, // tesh -LIGATURE('t','s',M_CURL), + LETTER('a',M_TURNED,0), // U+250 + LETTER(L_ALPHA,0,0), + LETTER(L_ALPHA,M_TURNED,0), + LETTER('b',M_IMPLOSIVE,0), + 0, // open-o + LETTER('c',M_CURL,0), + LETTER('d',M_RETROFLEX,0), + LETTER('d',M_IMPLOSIVE,0), + LETTER('e',M_REVERSED,0), // U+258 + 0, // schwa + LETTER(L_SCHWA,M_HOOK,0), + 0, // open-e + LETTER(L_OPEN_E,M_REVERSED,0), + LETTER(L_OPEN_E,M_HOOK,M_REVERSED), + 0,//LETTER(L_OPEN_E,M_CLOSED,M_REVERSED), + LETTER('j',M_BAR,0), + LETTER('g',M_IMPLOSIVE,0), // U+260 + LETTER('g',0,0), + LETTER('g',M_SMALLCAP,0), + LETTER(L_GAMMA,0,0), + 0, // ramshorn + LETTER('h',M_TURNED,0), + LETTER('h',M_HOOK,0), + 0,//LETTER(L_HENG,M_HOOK,0), + LETTER('i',M_BAR,0), // U+268 + LETTER(L_IOTA,0,0), + LETTER('i',M_SMALLCAP,0), + LETTER('l',M_TILDE,0), + LETTER('l',M_BAR,0), + LETTER('l',M_RETROFLEX,0), + LIGATURE('l','z',0), + LETTER('m',M_TURNED,0), + 0,//LETTER('m',M_TURNED,M_LEG), // U+270 + LETTER('m',M_HOOK,0), + 0,//LETTER('n',M_LEFTHOOK,0), + LETTER('n',M_RETROFLEX,0), + LETTER('n',M_SMALLCAP,0), + LETTER('o',M_BAR,0), + LIGATURE('o','e',M_SMALLCAP), + 0,//LETTER(L_OMEGA,M_CLOSED,0), + LETTER(L_PHI,0,0), // U+278 + LETTER('r',M_TURNED,0), + 0,//LETTER('r',M_TURNED,M_LEG), + LETTER('r',M_RETROFLEX,M_TURNED), + 0,//LETTER('r',M_LEG,0), + LETTER('r',M_RETROFLEX,0), + 0, // r-tap + LETTER(L_RTAP,M_REVERSED,0), + LETTER('r',M_SMALLCAP,0), // U+280 + LETTER('r',M_TURNED,M_SMALLCAP), + LETTER('s',M_RETROFLEX,0), + 0, // esh + 0,//LETTER('j',M_BAR,L_IMPLOSIVE), + LETTER(L_ESH,M_REVERSED,0), + LETTER(L_ESH,M_CURL,0), + LETTER('t',M_TURNED,0), + LETTER('t',M_RETROFLEX,0), // U+288 + LETTER('u',M_BAR,0), + LETTER(L_UPSILON,0,0), + LETTER('v',M_HOOK,0), + LETTER('v',M_TURNED,0), + LETTER('w',M_TURNED,0), + LETTER('y',M_TURNED,0), + LETTER('y',M_SMALLCAP,0), + LETTER('z',M_RETROFLEX,0), // U+290 + LETTER('z',M_CURL,0), + 0, // ezh + LETTER(L_EZH,M_CURL,0), + 0, // glottal stop + LETTER(L_GLOTTAL,M_REVERSED,0), + LETTER(L_GLOTTAL,M_TURNED,0), + 0,//LETTER('c',M_LONG,0), + 0, // bilabial click // U+298 + LETTER('b',M_SMALLCAP,0), + 0,//LETTER(L_OPEN_E,M_CLOSED,0), + LETTER('g',M_IMPLOSIVE,M_SMALLCAP), + LETTER('h',M_SMALLCAP,0), + LETTER('j',M_CURL,0), + LETTER('k',M_TURNED,0), + LETTER('l',M_SMALLCAP,0), + LETTER('q',M_HOOK,0), // U+2a0 + LETTER(L_GLOTTAL,M_STROKE,0), + LETTER(L_GLOTTAL,M_STROKE,M_REVERSED), + LIGATURE('d','z',0), + 0, // dezh + LIGATURE('d','z',M_CURL), + LIGATURE('t','s',0), + 0, // tesh + LIGATURE('t','s',M_CURL), }; static int LookupLetter2(Translator *tr, unsigned int letter, char *ph_buf) -{//======================================================================== +{ //======================================================================== int len; char single_letter[10]; @@ -435,8 +436,7 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf) { accent_data = letter_accents_0e0[letter - 0xe0]; } - else - if((letter >= 0x250) && (letter <= 0x2a8)) + else if((letter >= 0x250) && (letter <= 0x2a8)) { accent_data = letter_accents_250[letter - 0x250]; } @@ -489,8 +489,7 @@ void LookupAccentedLetter(Translator *tr, unsigned int letter, char *ph_buf) { if(accent1 == 0) strcpy(ph_buf, ph_letter1); - else - if((tr->langopts.accents & 1) || (accents_tab[accent1].flags & 1)) + else if((tr->langopts.accents & 1) || (accents_tab[accent1].flags & 1)) sprintf(ph_buf,"%s%c%c%s", ph_accent1, phonPAUSE_VSHORT, phonSTRESS_P, ph_letter1); else sprintf(ph_buf,"%c%s%c%s%c", phonSTRESS_2, ph_letter1, phonPAUSE_VSHORT, ph_accent1, phonPAUSE_VSHORT); @@ -583,6 +582,7 @@ 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 int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) {//========================================================================= @@ -590,6 +590,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) // return number of bytes used by the letter // control bit 0: a non-initial letter in a word // bit 1: say 'capital' +// bit 2: say character code for unknown letters int n_bytes; int letter; @@ -598,17 +599,22 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) char *p2; char *pbuf; ALPHABET *alphabet; + int al_offset; + int al_flags; int language; - int phontab_1; + int phontab_1; + int speak_letter_number; char capital[20]; char ph_buf[80]; char ph_buf2[80]; char ph_alphabet[80]; char hexbuf[6]; + static char pause_string[] = {phonPAUSE, 0}; ph_buf[0] = 0; ph_alphabet[0] = 0; capital[0] = 0; + phontab_1 = translator->phoneme_tab_ix; n_bytes = utf8_in(&letter,word); @@ -635,131 +641,156 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) return(0); } -#ifdef deleted - if((ph_buf[0] == 0) && (tr->translator_name != L('e','n'))) + al_offset = 0; + al_flags = 0; + if((alphabet = AlphabetFromChar(letter)) != NULL) { - // speak as English, check whether there is a translation for this character - SetTranslator2("en"); - save_option_phonemes = option_phonemes; - option_phonemes = 0; - LookupLetter(translator2, letter, word[n_bytes], ph_buf, control & 1); - SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table - option_phonemes = save_option_phonemes; + al_offset = alphabet->offset; + al_flags = alphabet->flags; + } - if(ph_buf[0] != 0) + if(alphabet != current_alphabet) + { + // speak the name of the alphabet + current_alphabet = alphabet; + if((alphabet != NULL) && !(al_flags & AL_DONT_NAME) && (al_offset != translator->letter_bits_offset)) { - sprintf(phonemes,"%cen",phonSWITCH); - return(0); + if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet)) + { + // don't say the alphabet name + } + else + { + ph_buf2[0] = 0; + if(Lookup(translator, alphabet->name, ph_alphabet) == 0) // the original language for the current voice + { + // Can't find the local name for this alphabet, use the English name + ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2 + Lookup(translator2, alphabet->name, ph_buf2); + } + else if(translator != tr) + { + phontab_1 = tr->phoneme_tab_ix; + strcpy(ph_buf2, ph_alphabet); + ph_alphabet[2] = translator->phoneme_tab_ix; + } + + if(ph_buf2[0] != 0) + { + // we used a different language for the alphabet name (now in ph_buf2) + ph_alphabet[0] = phonPAUSE; + ph_alphabet[1] = phonSWITCH; + strcpy(&ph_alphabet[3], ph_buf2); + len = strlen(ph_buf2) + 3; + ph_alphabet[len] = phonSWITCH; + ph_alphabet[len+1] = phontab_1; + ph_alphabet[len+2] = 0; + } + } } } -#endif - - alphabet = AlphabetFromChar(letter); - if(alphabet != current_alphabet) - { - current_alphabet = alphabet; - if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME)) - { - if(Lookup(translator, alphabet->name, ph_alphabet) == 0) // the original language for the current voice - { - // Can't find the local name for this alphabet, use the English name - phontab_1 = tr->phoneme_tab_ix; - ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2 - if(Lookup(translator2, alphabet->name, &ph_alphabet[3]) != 0) - { - ph_alphabet[0] = phonPAUSE; - ph_alphabet[1] = phonSWITCH; - len = strlen(&ph_alphabet[3]) + 3; - ph_alphabet[len] = phonSWITCH; // switch back - ph_alphabet[len+1] = phontab_1; - ph_alphabet[len+2] = 0; - } - } - } - } // caution: SetWordStress() etc don't expect phonSWITCH + phoneme table number + if(ph_buf[0] == 0) { - if((alphabet != NULL) && (alphabet->language != 0) && !(alphabet->flags & AL_NOT_LETTERS)) - language = alphabet->language; - else - language = L('e','n'); + if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) + language = alphabet->language; + else + language = L('e','n'); - if(language != tr->translator_name) - { - // speak in the language for this alphabet (or English) - ph_buf[2] = SetTranslator2(WordToString2(language)); - LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1); + if(language != tr->translator_name) + { + // speak in the language for this alphabet (or English) + ph_buf[2] = SetTranslator2(WordToString2(language)); + LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1); - if(ph_buf[3] == phonSWITCH) - { - // another level of language change - ph_buf[2] = SetTranslator2(&ph_buf[4]); - LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1); - } + if(ph_buf[3] == phonSWITCH) + { + // another level of language change + ph_buf[2] = SetTranslator2(&ph_buf[4]); + LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1); + } - SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table + SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table - if(ph_buf[3] != 0) - { - ph_buf[0] = phonPAUSE; - ph_buf[1] = phonSWITCH; - len = strlen(&ph_buf[3]) + 3; - ph_buf[len] = phonSWITCH; // switch back - ph_buf[len+1] = tr->phoneme_tab_ix; - ph_buf[len+2] = 0; - } - } + if(ph_buf[3] != 0) + { + ph_buf[0] = phonPAUSE; + ph_buf[1] = phonSWITCH; + len = strlen(&ph_buf[3]) + 3; + ph_buf[len] = phonSWITCH; // switch back + ph_buf[len+1] = tr->phoneme_tab_ix; + ph_buf[len+2] = 0; + } + } } if(ph_buf[0] == 0) { // character name not found - if((letter >= 0x2800) && (letter <= 0x28ff)) - { - // braille dots symbol - Lookup(tr, "_braille", ph_buf); - if(ph_buf[0] == 0) - { - EncodePhonemes("br'e:l", ph_buf, NULL); - } - - if(ph_buf[0] != 0) - { - pbuf = ph_buf + strlen(ph_buf); - for(ix=0; ix<8; ix++) - { - if(letter & (1 << ix)) - { - *pbuf++ = phonPAUSE_VSHORT; - LookupLetter(tr, '1'+ix, 0, pbuf, 1); - pbuf += strlen(pbuf); - } - } - } - } if(ph_buf[0]== 0) { - if(iswalpha(letter)) - Lookup(tr, "_?A", ph_buf); - - if((ph_buf[0]==0) && !iswspace(letter)) - Lookup(tr, "_??", ph_buf); - - if(ph_buf[0] != 0) + speak_letter_number = 1; + if(!(al_flags & AL_NO_SYMBOL)) { - // speak the hexadecimal number of the character code - sprintf(hexbuf,"%x",letter); + if(iswalpha(letter)) + Lookup(translator, "_?A", ph_buf); + + if((ph_buf[0]==0) && !iswspace(letter)) + Lookup(translator, "_??", ph_buf); + + if(ph_buf[0] == 0) + { + EncodePhonemes("l'et@", ph_buf, NULL); + } + } + + if(!(control & 4) && (al_flags & AL_NOT_CODE)) + { + // don't speak the character code number, unless we want full details of this character + 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(speak_letter_number) + { + if(al_offset == 0x2800) + { + // braille dots symbol, list the numbered dots + p2 = hexbuf; + for(ix=0; ix<8; ix++) + { + if(letter & (1 << ix)) + { + *p2++ = '1'+ix; + } + } + *p2 = 0; + } + else + { + // speak the hexadecimal number of the character code + sprintf(hexbuf,"%x",letter); + } + pbuf = ph_buf; for(p2 = hexbuf; *p2 != 0; p2++) { pbuf += strlen(pbuf); *pbuf++ = phonPAUSE_VSHORT; - LookupLetter(tr, *p2, 0, pbuf, 1); + LookupLetter(translator, *p2, 0, pbuf, 1); + if(((pbuf[0] == 0) || (pbuf[0]==phonSWITCH)) && (*p2 >= 'a')) + { + // This language has no translation for 'a' to 'f', speak English names using base phonemes + EncodePhonemes(hex_letters[*p2 - 'a'], pbuf, NULL); + } } + strcat(pbuf, pause_string); } } } @@ -822,8 +853,7 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars) } } } - else - if(c == 0xff) + else if(c == 0xff) { if((control < 2) || (ix==0)) continue; // don't insert pauses @@ -869,7 +899,7 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB { // ordinal number is indicated by dot after the number // but not if the next word starts with an upper-case letter - // (c2 == 0) is for cases such as, "2.," + // (c2 == 0) is for cases such as, "2.," ordinal = 2; if(word_end[0] == '.') word_end[0] = ' '; @@ -880,11 +910,11 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB nextflags = 0; if(IsAlpha(c2)) { - nextflags = TranslateWord(tr, &word_end[2], 0, NULL); + nextflags = TranslateWord(tr, &word_end[2], 0, NULL, NULL); } -if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2))) - ordinal = 0; // TEST 09.02.10 + if((tr->prev_dict_flags[0] & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2))) + ordinal = 0; // TEST 09.02.10 if(nextflags & FLAG_ALT_TRANS) ordinal = 0; @@ -894,7 +924,7 @@ if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG if(word[-2] == '-') ordinal = 0; // eg. december 2-5. között - if(tr->prev_dict_flags & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS)) + if(tr->prev_dict_flags[0] & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS)) ordinal = 0x22; } } @@ -982,8 +1012,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) subtract = prev; value -= subtract; } - else - if(value >= subtract) + else if(value >= subtract) return(0); else acc += prev; @@ -1043,7 +1072,8 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) } } - tr->prev_dict_flags = 0; + tr->prev_dict_flags[0] = 0; + tr->prev_dict_flags[1] = 0; TranslateNumber(tr, &number_chars[2], p, flags, wtab, num_control); if(tr->langopts.numbers & NUM_ROMAN_AFTER) @@ -1266,8 +1296,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out sprintf(string,"_%df",value); found = Lookup(tr, string, ph_digits); } - else - if(is_ordinal) + else if(is_ordinal) { strcpy(ph_ordinal, ph_ordinal2); @@ -1335,7 +1364,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out { if((is_ordinal) && - ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))) + ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))) { sprintf(string,"_%dX%c", tens, ord_type); if(Lookup(tr, string, ph_tens) != 0) @@ -1400,8 +1429,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out sprintf(string,"_%de",units); found = Lookup(tr, string, ph_digits); } - else - if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0)) + else if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0)) { // followed by hundreds or thousands (or tens) sprintf(string,"_%da",units); @@ -1472,8 +1500,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out } } } - else - if(tr->langopts.numbers & NUM_SINGLE_STRESS) + else if(tr->langopts.numbers & NUM_SINGLE_STRESS) { // only one primary stress found = 0; @@ -1557,8 +1584,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null // speak numbers such as 1984 as years: nineteen-eighty-four // ph_100[0] = 0; // don't say "hundred", we also need to surpess "and" } - else - if(hundreds >= 10) + else if(hundreds >= 10) { ph_digits[0] = 0; @@ -1604,7 +1630,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null found = 0; if((ordinal) - && ((tensunits == 0) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))) + && ((tensunits == 0) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))) { // ordinal number sprintf(string, "_%dCo", hundreds); @@ -1626,7 +1652,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null { if((!found) && (tensunits == 0)) { - // is there a special pronunciation for exactly n00 ? + // is there a special pronunciation for exactly n00 ? sprintf(string,"_%dC0",hundreds); found = Lookup(tr, string, ph_digits); } @@ -1757,7 +1783,6 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int thousands_inc = 0; int prev_thousands = 0; int ordinal = 0; - int dot_ordinal; int this_value; int decimal_count; int max_decimal_count; @@ -1796,8 +1821,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned { prev_thousands = 1; } - else - if((tr->langopts.thousands_sep == ' ') || (tr->langopts.numbers & NUM_ALLOW_SPACE)) + else if((tr->langopts.thousands_sep == ' ') || (tr->langopts.numbers & NUM_ALLOW_SPACE)) { // thousands groups can be separated by spaces if((n_digits == 3) && !(wtab->flags & FLAG_MULTIPLE_SPACES) && isdigit(word[-2])) @@ -1817,7 +1841,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned { // don't check for ordinal if the number has a leading zero if((ordinal = CheckDotOrdinal(tr, word, &word[ix], wtab, 0)) != 0) - dot_ordinal = 1; + { +// dot_ordinal = 1; + } } if((word[ix] == '.') && !isdigit(word[ix+1]) && !isdigit(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE)) @@ -1849,8 +1875,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned { ordinal = 2; } - else - if(!isdigit(suffix[0])) // not _#9 (tab) + else if(!isdigit(suffix[0])) // not _#9 (tab) { sprintf(string,"_#%s",suffix); if(Lookup(tr, string, ph_ordinal2)) @@ -1895,8 +1920,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if((tr->langopts.numbers & NUM_ALLOW_SPACE) && (word[n_digits] == ' ')) thousands_inc = 1; - else - if(word[n_digits] == tr->langopts.thousands_sep) + else if(word[n_digits] == tr->langopts.thousands_sep) thousands_inc = 2; suffix_ix = n_digits+2; @@ -1949,8 +1973,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned Lookup(tr, "_dpt", ph_append); decimal_point = 0x100; } - else - if(suppress_null == 0) + else if(suppress_null == 0) { if(thousands_inc > 0) { @@ -1968,16 +1991,16 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } else - if(speak_missing_thousands == 1) - { - // speak this thousandplex if there was no word for the previous thousandplex - sprintf(string,"_0M%d",thousandplex+1); - if(Lookup(tr, string, buf1)==0) + if(speak_missing_thousands == 1) { - sprintf(string,"_0M%d",thousandplex); - Lookup(tr, string, ph_append); + // speak this thousandplex if there was no word for the previous thousandplex + sprintf(string,"_0M%d",thousandplex+1); + if(Lookup(tr, string, buf1)==0) + { + sprintf(string,"_0M%d",thousandplex); + Lookup(tr, string, ph_append); + } } - } if((ph_append[0] == 0) && (word[n_digits] == '.') && (thousandplex == 0)) { @@ -2104,9 +2127,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned // Romanian decimal fractions if((decimal_count <= 4) && (word[n_digits] != '0')) { - LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0); - strcat(ph_out,buf1); - n_digits += decimal_count; + LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0); + strcat(ph_out,buf1); + n_digits += decimal_count; } break; diff --git a/src/phonemelist.cpp b/src/phonemelist.cpp index 0449a116..a0c3f9d4 100644 --- a/src/phonemelist.cpp +++ b/src/phonemelist.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2011 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -47,7 +47,6 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) int replace_flags; int n_plist_out = 0; int word_end; - int switched_language = 0; PHONEME_LIST2 *plist2; PHONEME_TAB *next=NULL; @@ -55,11 +54,8 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) { plist2 = &ph_list2[ix]; - if(plist2->phcode == phonSWITCH) - switched_language ^= 1; - // don't do any substitution if the language has been temporarily changed - if(switched_language == 0) + if(!(plist2->synthflags & SFLAG_SWITCHED_LANG)) { if(ix < (n_ph_list2 -1)) next = phoneme_tab[ph_list2[ix+1].phcode]; @@ -81,6 +77,9 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3)) continue; // this replacement doesn't occur in stressed syllables + if((replace_flags & 4) && (plist2->sourceix == 0)) + continue; // this replacement only occurs at the start of a word + // substitute the replacement phoneme plist2->phcode = replace_phonemes[k].new_ph; if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) @@ -117,7 +116,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) PHONEME_TAB *next, *next2; int unstress_count = 0; int word_stress = 0; - int switched_language = 0; + int current_phoneme_tab; int max_stress; int voicing; int regression; @@ -133,7 +132,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) PHONEME_LIST2 *plist2; WORD_PH_DATA worddata; - memset(&worddata, 0, sizeof(worddata)); + memset(&worddata, 0, sizeof(worddata)); plist2 = ph_list2; phlist = phoneme_list; end_sourceix = plist2[n_ph_list2-1].sourceix; @@ -142,7 +141,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) max_stress = 0; for(j = n_ph_list2-3; j>=0; j--) { - // start with the last phoneme (before the terminating pauses) and move forwards + // start with the last phoneme (before the terminating pauses) and move backwards if((plist2[j].stresslevel & 0x7f) > max_stress) max_stress = plist2[j].stresslevel & 0x7f; if(plist2[j].sourceix != 0) @@ -166,6 +165,20 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) } } + // look for switch of phoneme tables + current_phoneme_tab = tr->phoneme_tab_ix; + for(j = 0; j < n_ph_list2; j++) + { + if(plist2[j].phcode == phonSWITCH) + { + current_phoneme_tab = plist2[j].tone_ph; + } + if(current_phoneme_tab != tr->phoneme_tab_ix) + { + plist2[j].synthflags |= SFLAG_SWITCHED_LANG; + } + } + if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) { // set consonant clusters to all voiced or all unvoiced @@ -180,10 +193,14 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) if(ph == NULL) continue; - if(ph->code == phonSWITCH) - switched_language ^= 1; - if(switched_language) + if(plist2[j].synthflags & SFLAG_SWITCHED_LANG) + { + stop_propagation = 0; + voicing = 0; + if(regression & 0x100) + voicing = 1; // word-end devoicing continue; + } type = ph->type; @@ -204,21 +221,18 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) { voicing = 1; } - else - if((voicing==2) && (ph->end_type != 0)) // use end_type field for voicing_switch for consonants + else if((voicing==2) && (ph->end_type != 0)) // use end_type field for voicing_switch for consonants { plist2[j].phcode = ph->end_type; // change to voiced equivalent } } - else - if((type==phVSTOP) || type==(phVFRICATIVE)) + else if((type==phVSTOP) || type==(phVFRICATIVE)) { if((voicing==0) && (regression & 0xf)) { voicing = 2; } - else - if((voicing==1) && (ph->end_type != 0)) + else if((voicing==1) && (ph->end_type != 0)) { plist2[j].phcode = ph->end_type; // change to unvoiced equivalent } @@ -298,8 +312,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) ph = phoneme_tab[phonPAUSE]; ph_list3[0].ph = ph; - switched_language = 0; - for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) { plist3 = &ph_list3[j]; @@ -331,9 +343,14 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) if(plist3->phcode == phonSWITCH) { + if(!(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? + { + if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) + continue; // next phoneme is also a phonSWITCH, so ignore + } + // change phoneme table SelectPhonemeTable(plist3->tone_ph); - switched_language ^= SFLAG_SWITCHED_LANG; } next = phoneme_tab[plist3[1].phcode]; // the phoneme after this one plist3[1].ph = next; @@ -428,7 +445,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) { // in a sequence of unstressed syllables, reduce alternate syllables to 'diminished' // stress. But not for the last phoneme of a stressed word - if((tr->langopts.stress_flags & 0x2) || ((word_stress > 3) && ((plist3+1)->sourceix!=0))) + if((tr->langopts.stress_flags & S_NO_DIM) || ((word_stress > 3) && ((plist3+1)->sourceix!=0))) { // An unstressed final vowel of a stressed word unstress_count=1; // try again for next syllable @@ -534,7 +551,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) phlist[ix].ph = ph; phlist[ix].type = ph->type; phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module - phlist[ix].synthflags = plist3->synthflags | switched_language; + phlist[ix].synthflags = plist3->synthflags; phlist[ix].stresslevel = plist3->stresslevel & 0xf; phlist[ix].wordstress = plist3->wordstress; phlist[ix].tone_ph = plist3->tone_ph; @@ -580,18 +597,18 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) phlist[ix].newword = 2; // end of clause phlist[ix].phcode = phonPAUSE; - phlist[ix].type = phPAUSE; // terminate with 2 Pause phonemes + phlist[ix].type = phPAUSE; // terminate with 2 Pause phonemes phlist[ix].length = post_pause; // length of the pause, depends on the punctuation phlist[ix].sourceix = end_sourceix; phlist[ix].synthflags = 0; - phlist[ix++].ph = phoneme_tab[phonPAUSE]; + phlist[ix++].ph = phoneme_tab[phonPAUSE]; phlist[ix].phcode = phonPAUSE; - phlist[ix].type = phPAUSE; + phlist[ix].type = phPAUSE; phlist[ix].length = 0; phlist[ix].sourceix=0; phlist[ix].synthflags = 0; - phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT]; + phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT]; n_phoneme_list = ix; } // end of MakePhonemeList diff --git a/src/prosodydisplay.cpp b/src/prosodydisplay.cpp index 4bb49ec1..16fa32a4 100644 --- a/src/prosodydisplay.cpp +++ b/src/prosodydisplay.cpp @@ -224,6 +224,7 @@ void ProsodyDisplay::SelectPh(int index) const char *name = "?"; char buf[120]; char len_string[20]; + char param_string[20]; if(index < 0) return; @@ -245,11 +246,14 @@ void ProsodyDisplay::SelectPh(int index) y1 = p->pitch1; y2 = p->pitch2; len_string[0] = 0; + param_string[0] = 0; if(p->std_length > 0) sprintf(len_string," Length %d", p->std_length*2); + if(p->sound_param != 0) + sprintf(param_string,", %d", p->sound_param); - sprintf(buf,"Stress %s%d Amp %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x [%s%s]", - emphasized,p->stresslevel&0x7,p->amp, p->length,y1,y2,name,p->ph->phflags, LookupManifest(p->phontab_addr), len_string); + sprintf(buf,"Stress %s%d Amp %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x (%s%s)%s", + emphasized,p->stresslevel&0x7,p->amp, p->length,y1,y2,name,p->ph->phflags, LookupManifest(p->phontab_addr), param_string, len_string); wxLogStatus(wxString(buf,wxConvLocal)); } diff --git a/src/readclause.cpp b/src/readclause.cpp index e0fab332..472aeb69 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -648,7 +648,7 @@ static const char *LookupCharName(Translator *tr, int c, int only) } } - if((only==0) && (phonemes[0] == 0) && (tr->translator_name != L('e','n'))) + if((only==0) && ((phonemes[0] == 0) || (phonemes[0] == phonSWITCH)) && (tr->translator_name != L('e','n'))) { // not found, try English SetTranslator2("en"); @@ -847,14 +847,13 @@ static int LoadSoundFile2(const char *fname) static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output, int *bufix, int end_clause) -{//========================================================================================================== +{//============================================================================================================= // announce punctuation names // c1: the punctuation character // c2: the following character int punct_count; - const char *punctname; - int found = 0; + const char *punctname = NULL; int soundicon; int attributes; int short_pause; @@ -863,6 +862,7 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output int bufix1; char buf[200]; char buf2[80]; + char ph_buf[30]; c2 = *c2_ptr; buf[0] = 0; @@ -872,12 +872,24 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output // add an embedded command to play the soundicon sprintf(buf,"\001%dI ",soundicon); UngetC(c2); - found = 1; } else - if((punctname = LookupCharName(tr, c1, 0)) != NULL) { - found = 1; + if((c1 == '.') && (end_clause) && (c2 != '.')) + { + if(LookupSpecial(tr, "_.p", ph_buf)) + { + punctname = ph_buf; // use word for 'period' instead of 'dot' + } + } + if(punctname == NULL) + { + punctname = LookupCharName(tr, c1, 0); + } + + if(punctname == NULL) + return(-1); + if((*bufix==0) || (end_clause ==0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) { punct_count=1; @@ -937,9 +949,6 @@ static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output } } - if(found == 0) - return(-1); - bufix1 = *bufix; len = strlen(buf); strcpy(&output[*bufix],buf); diff --git a/src/setlengths.cpp b/src/setlengths.cpp index 4dffac0e..392faa2b 100644 --- a/src/setlengths.cpp +++ b/src/setlengths.cpp @@ -892,7 +892,7 @@ if(stress <= 1) { // this is the last syllable in the clause, lengthen it - more for short vowels len = (p->ph->std_length * 2); - if(tr->langopts.stress_flags & 0x40000) + if(tr->langopts.stress_flags & S_EO_CLAUSE1) len=200; // don't lengthen short vowels more than long vowels at end-of-clause length_mod = length_mod * (256 + (280 - len)/3)/256; } diff --git a/src/speak.cpp b/src/speak.cpp index 661df32c..7ce8e70a 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -101,6 +101,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" "--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" @@ -485,7 +486,7 @@ int main (int argc, char **argv) {"path", required_argument, 0, 0x107}, {"phonout", required_argument, 0, 0x108}, {"pho", no_argument, 0, 0x109}, - {"ipa", no_argument, 0, 0x10a}, + {"ipa", optional_argument, 0, 0x10a}, {"version", no_argument, 0, 0x10b}, {0, 0, 0, 0} }; @@ -723,6 +724,17 @@ int main (int argc, char **argv) case 0x10a: // --ipa option_phonemes = 3; + if(optarg2 != NULL) + { + value = -1; + sscanf(optarg2,"%d",&value); + if((value<0) || (value>2)) + { + fprintf(stderr,"Bad value for -ipa=\n"); + value = 0; + } + option_phonemes += value; + } break; case 0x10b: // --version diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index 78feaff8..6c5d6bc3 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -82,12 +82,12 @@ void WVoiceChanged(voice_t *wvoice) static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) {//====================================================================== ENTER("dispatch_audio"); - + int a_wave_can_be_played = fifo_is_command_enabled(); - + #ifdef DEBUG_ENABLED - SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", - (event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, + SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", + (event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, (event) ? event->sample : 0, a_wave_can_be_played); #endif @@ -134,8 +134,8 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) while(a_wave_can_be_played) { // TBD: some event are filtered here but some insight might be given // TBD: in synthesise.cpp for avoiding to create WORDs with size=0. - // TBD: For example sentence "or ALT)." returns three words - // "or", "ALT" and "". + // TBD: For example sentence "or ALT)." returns three words + // "or", "ALT" and "". // TBD: the last one has its size=0. if (event && (event->type == espeakEVENT_WORD) && (event->length==0)) { @@ -171,7 +171,7 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) } SHOW_TIME("LEAVE dispatch_audio\n"); - + return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error } @@ -183,12 +183,12 @@ static int create_events(short* outbuf, int length, espeak_EVENT* event, uint32_ int i=0; // The audio data are written to the output device. - // The list of events in event_list (index: event_list_ix) is read: + // The list of events in event_list (index: event_list_ix) is read: // Each event is declared to the "event" object which stores them internally. // The event object is responsible of calling the external callback // as soon as the relevant audio sample is played. - do + do { // for each event espeak_EVENT* event; if (event_list_ix == 0) @@ -231,7 +231,7 @@ int sync_espeak_terminated_msg( uint32_t unique_identifier, void* user_data) if (my_mode==AUDIO_OUTPUT_PLAYBACK) { - while(1) + while(1) { espeak_ERROR a_error = event_declare(event_list); if (a_error != EE_BUFFER_FULL) @@ -290,14 +290,14 @@ static void select_output(espeak_AUDIO_OUTPUT output_type) int GetFileLength(const char *filename) {//==================================== struct stat statbuf; - + if(stat(filename,&statbuf) != 0) return(0); - + if((statbuf.st_mode & S_IFMT) == S_IFDIR) // if(S_ISDIR(statbuf.st_mode)) return(-2); // a directory - + return(statbuf.st_size); } // end of GetFileLength @@ -337,7 +337,7 @@ static void init_path(const char *path) { sprintf(path_home,"%s/espeak-data",env); if(GetFileLength(path_home) == -2) - return; // an espeak-data directory exists + return; // an espeak-data directory exists } buf[0] = 0; @@ -362,7 +362,7 @@ static void init_path(const char *path) { snprintf(path_home,sizeof(path_home),"%s/espeak-data",env); if(GetFileLength(path_home) == -2) - return; // an espeak-data directory exists + return; // an espeak-data directory exists } snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); @@ -561,21 +561,21 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un ENTER("MarkerEvent"); espeak_EVENT *ep; double time; - + if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) return; - + ep = &event_list[event_list_ix++]; ep->type = (espeak_EVENT_TYPE)type; ep->unique_identifier = my_unique_identifier; ep->user_data = my_user_data; ep->text_position = char_position & 0xffffff; ep->length = char_position >> 24; - + time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; ep->audio_position = int(time); ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); - + #ifdef DEBUG_ENABLED SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", @@ -605,22 +605,22 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un -espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, - unsigned int position, espeak_POSITION_TYPE position_type, +espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, + unsigned int position, espeak_POSITION_TYPE position_type, unsigned int end_position, unsigned int flags, void* user_data) {//=========================================================================== - + #ifdef DEBUG_ENABLED ENTER("sync_espeak_Synth"); SHOW("sync_espeak_Synth > position=%d, position_type=%d, end_position=%d, flags=%d, user_data=0x%x, text=%s\n", position, position_type, end_position, flags, user_data, text); #endif espeak_ERROR aStatus; - + InitText(flags); my_unique_identifier = unique_identifier; my_user_data = user_data; - + for (int i=0; i < N_SPEECH_PARAM; i++) saved_parameters[i] = param_stack[0].parameter[i]; @@ -629,26 +629,26 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, case POS_CHARACTER: skip_characters = position; break; - + case POS_WORD: skip_words = position; break; - + case POS_SENTENCE: skip_sentences = position; break; - + } if(skip_characters || skip_words || skip_sentences) skipping_text = 1; - + end_character_position = end_position; - + aStatus = Synthesize(unique_identifier, text, flags); #ifdef USE_ASYNC wave_flush(my_audio); #endif - + SHOW_TIME("LEAVE sync_espeak_Synth"); return aStatus; } // end of sync_espeak_Synth @@ -656,29 +656,29 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, -espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, - const char *index_mark, unsigned int end_position, +espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, + const char *index_mark, unsigned int end_position, unsigned int flags, void* user_data) {//========================================================================= espeak_ERROR aStatus; - + InitText(flags); - + my_unique_identifier = unique_identifier; my_user_data = user_data; - + if(index_mark != NULL) { strncpy0(skip_marker, index_mark, sizeof(skip_marker)); skipping_text = 1; } - + end_character_position = end_position; - - + + aStatus = Synthesize(unique_identifier, text, flags | espeakSSML); SHOW_TIME("LEAVE sync_espeak_Synth_Mark"); - + return (aStatus); } // end of sync_espeak_Synth_Mark @@ -710,7 +710,7 @@ void sync_espeak_Char(wchar_t character) char buf[80]; my_unique_identifier = 0; my_user_data = NULL; - + sprintf(buf,"&#%d;",character); Synthesize(0, buf,espeakSSML); } @@ -722,7 +722,7 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist) // Set the list of punctuation which are spoken for "some". my_unique_identifier = 0; my_user_data = NULL; - + wcsncpy(option_punctlist, punctlist, N_PUNCTLIST); option_punctlist[N_PUNCTLIST-1] = 0; } // end of sync_espeak_SetPunctuationList @@ -771,7 +771,7 @@ ENTER("espeak_Initialize"); setlocale(LC_CTYPE,""); } #endif - + init_path(path); initialise(options); select_output(output_type); @@ -788,30 +788,30 @@ ENTER("espeak_Initialize"); outbuf = (unsigned char*)realloc(outbuf,outbuf_size); if((out_start = outbuf) == NULL) return(EE_INTERNAL_ERROR); - + // allocate space for event list. Allow 200 events per second. // Add a constant to allow for very small buf_length n_event_list = (buf_length*200)/1000 + 20; if((event_list = (espeak_EVENT *)realloc(event_list,sizeof(espeak_EVENT) * n_event_list)) == NULL) return(EE_INTERNAL_ERROR); - + option_phonemes = 0; option_mbrola_phonemes = 0; option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA)); VoiceReset(0); // SetVoiceByName("default"); - + for(param=0; paramu.my_mark.unique_identifier; - + // Create the "terminated msg" command (same uid) t_espeak_command* c2 = create_espeak_terminated_msg(*unique_identifier, user_data); - + // Try to add these 2 commands (single transaction) if (c1 && c2) { @@ -1152,15 +1152,15 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) value=0 No phoneme output (default) value=1 Output the translated phoneme symbols for the text value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) - value=3 as (1), but produces IPA phoneme names rather than ascii + value=3 as (1), but produces IPA phoneme names rather than ascii bit 4: produce mbrola pho data */ - option_phonemes = value & 3; + option_phonemes = value & 7; option_mbrola_phonemes = value & 16; f_trans = stream; if(stream == NULL) f_trans = stderr; - + } // end of espeak_SetPhonemes @@ -1269,4 +1269,4 @@ ESPEAK_API const char *espeak_Info(const char **ptr) #pragma GCC visibility pop - + diff --git a/src/speech.h b/src/speech.h index 08a44af7..23fc7242 100644 --- a/src/speech.h +++ b/src/speech.h @@ -51,7 +51,7 @@ #endif #ifdef _ESPEAKEDIT -// USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile +#define USE_PORTAUDIO #define USE_ASYNC #define LOG_FRAMES // write keyframe info to log-espeakedit #endif @@ -76,9 +76,9 @@ int LookupMnem(MNEM_TAB *table, const char *string); #ifdef PLATFORM_WINDOWS -#define N_PATH_HOME 220 +#define N_PATH_HOME 230 #else -#define N_PATH_HOME 150 +#define N_PATH_HOME 160 #endif extern char path_home[N_PATH_HOME]; // this is the espeak-data directory diff --git a/src/synth_mbrola.cpp b/src/synth_mbrola.cpp index 0abda433..961254ef 100644 --- a/src/synth_mbrola.cpp +++ b/src/synth_mbrola.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -490,7 +490,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr if(ph->code != phonEND_WORD) { char phoneme_name[16]; - WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA); + WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA, NULL); DoPhonemeMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, phoneme_name); } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index eed59bf4..056c1a78 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,8 +35,8 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.38 27.Feb.13"; -const int version_phdata = 0x014636; +const char *version_string = "1.46.48 13.Mar.13"; +const int version_phdata = 0x014640; int option_device_number = -1; FILE *f_logespeak = NULL; @@ -1225,9 +1225,15 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ #ifdef _ESPEAKEDIT plist->std_length = phdata->pd_param[i_SET_LENGTH]; if(phdata->sound_addr[0] != 0) + { plist->phontab_addr = phdata->sound_addr[0]; // FMT address + plist->sound_param = phdata->sound_param[0]; + } else + { plist->phontab_addr = phdata->sound_addr[1]; // WAV address + plist->sound_param = phdata->sound_param[1]; + } #endif } // end of InterpretPhoneme diff --git a/src/synthesize.cpp b/src/synthesize.cpp index 5db0db9e..b83af8de 100644 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -1438,7 +1438,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) } else { - WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); + WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); done_phoneme_marker = 1; } @@ -1751,7 +1751,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) if((option_phoneme_events) && (done_phoneme_marker == 0)) { - WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); + WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); } @@ -1869,7 +1869,6 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) n_phoneme_list = 0; WcmdqStop(); - embedded_value[EMBED_T] = 0; return(0); } @@ -1937,8 +1936,8 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) if((option_phonemes > 0) || (phoneme_callback != NULL)) { int use_ipa = 0; - if(option_phonemes == 3) - use_ipa = 1; + if(option_phonemes >= 3) + use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); if(option_phonemes > 0) diff --git a/src/synthesize.h b/src/synthesize.h index b56edfe6..85ab68c2 100644 --- a/src/synthesize.h +++ b/src/synthesize.h @@ -56,7 +56,7 @@ #define EMBED_A 3 // amplitude/volume #define EMBED_R 4 // pitch range/expression #define EMBED_H 5 // echo/reverberation -#define EMBED_T 6 // different tone for announcing punctuation +#define EMBED_T 6 // different tone for announcing punctuation (not used) #define EMBED_I 7 // sound icon #define EMBED_S2 8 // speed (used in synthesize) #define EMBED_Y 9 // say-as commands @@ -223,6 +223,7 @@ typedef struct { #ifdef _ESPEAKEDIT unsigned char std_length; unsigned int phontab_addr; + int sound_param; #endif } PHONEME_LIST; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index db1766b8..a2c68ca5 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2011 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -70,48 +70,56 @@ #define OFFSET_ETHIOPIC 0x1200 +// character ranges must be listed in ascending order ALPHABET alphabets [] = { {"_el", OFFSET_GREEK, 0x380, 0x3ff, L('e','l'), AL_DONT_NAME | AL_NOT_LETTERS}, {"_cyr", OFFSET_CYRILLIC, 0x400, 0x52f, 0, 0}, - {"_hy", OFFSET_ARMENIAN, 0x530, 0x58f, L('h','y'), 0}, + {"_hy", OFFSET_ARMENIAN, 0x530, 0x58f, L('h','y'), AL_WORDS}, {"_he", OFFSET_HEBREW, 0x590, 0x5ff, 0, 0}, {"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0}, {"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, - {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), 0}, + {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0}, - {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, 0, 0}, + {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS}, {"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0}, {"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, - {"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), 0}, - {"_te", OFFSET_TELUGU, 0xc00, 0xc7f, 0, 0}, - {"_kn", OFFSET_KANNADA, 0xc80, 0xcff, L('k','n'), 0}, - {"_ml", OFFSET_MALAYALAM,0xd00, 0xd7f, L('m','l'), 0}, + {"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), AL_WORDS}, + {"_te", OFFSET_TELUGU, 0xc00, 0xc7f, L('t','e'), 0}, + {"_kn", OFFSET_KANNADA, 0xc80, 0xcff, L('k','n'), AL_WORDS}, + {"_ml", OFFSET_MALAYALAM,0xd00, 0xd7f, L('m','l'), AL_WORDS}, {"_si", OFFSET_SINHALA, 0xd80, 0xdff, 0, 0}, {"_th", OFFSET_THAI, 0xe00, 0xe7f, 0, 0}, {"_lo", OFFSET_LAO, 0xe80, 0xeff, 0, 0}, {"_ti", OFFSET_TIBET, 0xf00, 0xfff, 0, 0}, {"_my", OFFSET_MYANMAR, 0x1000,0x109f, 0, 0}, - {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), 0}, + {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, {"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0}, + {"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL}, + {"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, + {"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, + {"_ko", 0xa700, 0xa700,0xd7ff, 0, AL_NOT_CODE}, {NULL, 0, 0, 0, 0, 0} }; ALPHABET *AlphabetFromChar(int c) {//=============================== - // Find the alphabet from a character. - ALPHABET *alphabet = alphabets; + // Find the alphabet from a character. + ALPHABET *alphabet = alphabets; - while(alphabet->name != NULL) - { - if((c >= alphabet->range_min) && (c <= alphabet->range_max)) - { - return(alphabet); - } - alphabet++; - } - return(NULL); + while(alphabet->name != NULL) + { + if(c <= alphabet->range_max) + { + if(c >= alphabet->range_min) + return(alphabet); + else + break; + } + alphabet++; + } + return(NULL); } @@ -163,7 +171,7 @@ static void SetLetterBitsRange(Translator *tr, int group, int first, int last) // ignore these characters static const unsigned short chars_ignore_default[] = { - 0xad, 1, // soft hyphtn + 0xad, 1, // soft hyphen 0x200c, 1, // zero width non-joiner 0x200d, 1, // zero width joiner 0, 0 }; @@ -217,6 +225,7 @@ static const char transpose_map_latin[] = { tr->charset_a0 = charsets[1]; // ISO-8859-1, this is for when the input is not utf8 dictionary_name[0] = 0; tr->dict_condition=0; + tr->dict_min_size = 0; tr->data_dictrules = NULL; // language_1 translation rules file tr->data_dictlist = NULL; // language_2 dictionary lookup file @@ -436,6 +445,9 @@ Translator *SelectTranslator(const char *name) int name2 = 0; Translator *tr; + static const short stress_lengths_equal[8] = {230, 230, 230, 230, 0, 0, 230, 230}; + static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; + static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; @@ -474,7 +486,7 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); tr->letter_bits_offset = OFFSET_ETHIOPIC; tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x0024; // don't use secondary stress + tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.numbers = NUM_OMIT_1_HUNDRED; @@ -510,7 +522,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable + tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable tr->letter_bits_offset = OFFSET_BENGALI; SetIndicLetters(tr); // call this after setting OFFSET_BENGALI SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama @@ -546,7 +558,7 @@ Translator *SelectTranslator(const char *name) // tr->langopts.intonation_group = 4; // 'diminished' is an unstressed final syllable - tr->langopts.stress_flags = 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels @@ -597,7 +609,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->letter_bits_offset = OFFSET_THAANA; tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable + tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable SetLetterBitsRange(tr,LETTERGP_B,0x26,0x30); // vowel signs, and virama tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 tr->langopts.numbers = 1; @@ -647,7 +659,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished + tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels @@ -677,7 +689,7 @@ Translator *SelectTranslator(const char *name) // tr->langopts.word_gap = 1; tr->langopts.vowel_pause = 2; tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; // tr->langopts.unstressed_wd1 = 3; tr->langopts.unstressed_wd2 = 2; @@ -701,7 +713,7 @@ Translator *SelectTranslator(const char *name) // stress last syllable if it doesn't end in vowel or "s" or "n" // 'diminished' is an unstressed final syllable - tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels @@ -711,18 +723,20 @@ Translator *SelectTranslator(const char *name) if(name2 == L('c','a')) { + // stress last syllable unless word ends with a vowel tr->punct_within_word = ca_punct_within_word; - tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel + tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; } else if(name2 == L('a','n')) { - tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; } else if(name2 == L_pap) { - tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel + // stress last syllable unless word ends with a vowel + tr->langopts.stress_flags = S_FINAL_STRESS_C | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; } else { @@ -782,7 +796,7 @@ Translator *SelectTranslator(const char *name) SetupTranslator(tr,stress_lengths_fi,stress_amps_fi); tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x56; // move secondary stress from light to a following heavy syllable + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_2_TO_HEAVY; // move secondary stress from light to a following heavy syllable tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.long_stop = 130; @@ -798,7 +812,7 @@ Translator *SelectTranslator(const char *name) { SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable - tr->langopts.stress_flags = 0x0024; // don't use secondary stress + tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.accents = 2; // Say "Capital" after the letter. @@ -808,9 +822,17 @@ Translator *SelectTranslator(const char *name) } break; + case L('g','a'): // irish + { + tr->langopts.stress_rule = STRESSPOSN_1L; + tr->langopts.numbers = 1; + } + break; + case L('h','i'): // Hindi case L('n','e'): // Nepali case L('p','a'): // Punjabi + case L('g','u'): // Gujarati { static const short stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,22, 22,21 }; @@ -820,7 +842,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable - tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable + tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable tr->langopts.numbers = NUM_SWAP_TENS; tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi tr->letter_bits_offset = OFFSET_DEVANAGARI; @@ -829,8 +851,17 @@ Translator *SelectTranslator(const char *name) { tr->letter_bits_offset = OFFSET_GURMUKHI; } + else + if(name2 == L('g','u')) + { +SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); + tr->letter_bits_offset = OFFSET_GUJARATI; + tr->langopts.stress_rule = STRESSPOSN_2R; + } + else if(name2 == L('n','e')) { +SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); tr->langopts.break_numbers = 0x2aaaa8; tr->langopts.max_digits = 22; tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS; @@ -855,7 +886,7 @@ Translator *SelectTranslator(const char *name) tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x10; + tr->langopts.stress_flags = S_FINAL_NO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; tr->langopts.max_initial_consonants = 5; tr->langopts.spelling_stress = 1; @@ -874,7 +905,7 @@ Translator *SelectTranslator(const char *name) case L('h','t'): // Haitian Creole // memcpy(tr->stress_lengths,stress_lengths_fr,sizeof(tr->stress_lengths)); tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable - tr->langopts.stress_flags = 0x0024; // don't use secondary stress + tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_OMIT_1_HUNDRED | NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL | NUM_DFRACTION_4; break; @@ -889,7 +920,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.vowel_pause = 0x20; tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x8036 | S_HYPEN_UNSTRESS; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2 | 0x8000 | S_HYPEN_UNSTRESS; tr->langopts.unstressed_wd1 = 2; tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.param[LOPT_ANNOUNCE_PUNCT] = 2; // don't break clause before announcing . ? ! @@ -922,7 +953,7 @@ SetLengthMods(tr,3); // all equal SetLetterBits(tr,LETTERGP_C,hy_consonants); tr->langopts.max_initial_consonants = 6; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; -// tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words + // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words } break; @@ -934,7 +965,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_id,stress_amps_id); tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_ROMAN; - tr->langopts.stress_flags = 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.accents = 2; // "capital" after letter name } break; @@ -946,7 +977,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_is,NULL); tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x10; + tr->langopts.stress_flags = S_FINAL_NO_2; tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels tr->langopts.param[LOPT_REDUCE] = 2; @@ -969,7 +1000,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x10 | 0x20000; + tr->langopts.stress_flags = S_FINAL_NO_2 | S_PRIORITY_STRESS; tr->langopts.vowel_pause = 1; tr->langopts.unstressed_wd1 = 2; tr->langopts.unstressed_wd2 = 2; @@ -1003,8 +1034,10 @@ SetLengthMods(tr,3); // all equal case L('k','a'): // Georgian { // character codes offset by 0x1080 - static const char ka_vowels[] = {0x50,0x54,0x58,0x5d,0x63,0x75,0x77,0}; - static const char ka_consonants[] = {0x51,0x52,0x53,0x55,0x56,0x57,0x59,0x5a,0x5b,0x5c,0x5e,0x5f,0x60,0x61,0x62,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x76,0}; + static const char ka_vowels[] = {0x30,0x34,0x38,0x3d,0x43,0x55,0x57,0}; + static const char ka_consonants[] = + {0x31,0x32,0x33,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x41,0x42,0x44, + 0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0}; SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); memset(tr->letter_bits,0,sizeof(tr->letter_bits)); SetLetterBits(tr,LETTERGP_A,ka_vowels); @@ -1017,6 +1050,9 @@ SetLengthMods(tr,3); // all equal // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.max_initial_consonants = 7; tr->langopts.numbers = NUM_VIGESIMAL | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED |NUM_OMIT_1_THOUSAND | NUM_DFRACTION_5 | NUM_ROMAN; + + tr->langopts.alt_alphabet = OFFSET_CYRILLIC; + tr->langopts.alt_alphabet_lang = "ru"; } break; @@ -1091,7 +1127,7 @@ SetLengthMods(tr,3); // all equal { tr->charset_a0 = charsets[4]; // ISO-8859-4, includes a,e,i,o,u-macron tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x20; + tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_DIERESES] = 1; @@ -1104,7 +1140,7 @@ SetLengthMods(tr,3); // all equal { tr->charset_a0 = charsets[4]; // ISO-8859-4 tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x20; + tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_DIERESES] = 1; @@ -1125,7 +1161,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.spelling_stress = 1; tr->charset_a0 = charsets[4]; // ISO-8859-4 tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_4 | NUM_ORDINAL_DOT; - tr->langopts.stress_flags = 0x16 + 0x40000; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_EO_CLAUSE1; } break; @@ -1191,7 +1227,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_om,stress_amps_om); tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x16 + 0x80000; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000; } break; @@ -1204,7 +1240,7 @@ SetLengthMods(tr,3); // all equal tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished + tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9; tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :) tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2; @@ -1223,7 +1259,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable - tr->langopts.stress_flags = 0x6 | 0x10 | 0x2000 | 0x20000; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN; tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS; SetLetterVowel(tr,'y'); @@ -1241,7 +1277,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x100 + 0x6; + tr->langopts.stress_flags = S_FINAL_STRESS_C + S_FINAL_DIM_ONLY; tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_3 | NUM_AND_UNITS | NUM_ROMAN; @@ -1256,7 +1292,7 @@ SetLengthMods(tr,3); // all equal case L('r','w'): // Kiryarwanda { tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x16; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.numbers = NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_2 | NUM_AND_HUNDRED; @@ -1273,7 +1309,7 @@ SetLengthMods(tr,3); // all equal tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x16; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; tr->langopts.max_initial_consonants = 5; tr->langopts.spelling_stress = 1; @@ -1302,7 +1338,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = S_FINAL_DIM | S_NO_AUTO_DIM | S_FINAL_NO_2; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.spelling_stress = 1; tr->letter_bits_offset = OFFSET_SINHALA; @@ -1325,7 +1361,7 @@ SetLengthMods(tr,3); // all equal case L('s','l'): // Slovenian tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary - tr->langopts.stress_flags = 0x20; + tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word tr->letter_bits['r'] |= 0x80; // add 'r' to letter group 7, vowels for Unpronouncable test @@ -1342,7 +1378,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_sq,stress_amps_sq); tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x16 + 0x100; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_STRESS_C; SetLetterVowel(tr,'y'); tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_4; tr->langopts.accents = 2; // "capital" after letter name @@ -1374,7 +1410,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.vowel_pause = 1; tr->langopts.stress_rule = STRESSPOSN_2R; - tr->langopts.stress_flags = 0x6 | 0x10; + tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_SINGLE_AND | NUM_OMIT_1_HUNDRED; tr->langopts.break_numbers = 0x49249268; // for languages which have numbers for 100,000 and 1,000,000 @@ -1391,7 +1427,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_1L; - tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable + tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // use 'diminished' for unstressed final syllable tr->langopts.spelling_stress = 1; tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 @@ -1437,7 +1473,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_th,stress_amps_th); tr->langopts.stress_rule = 0; // stress on final syllable of a "word" - tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) + tr->langopts.stress_flags = S_NO_DIM; // don't automatically set diminished stress (may be set in the intonation module) tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable // tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping) @@ -1456,7 +1492,7 @@ SetLengthMods(tr,3); // all equal tr->charset_a0 = charsets[9]; // ISO-8859-9 - Latin5 tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable - tr->langopts.stress_flags = 0x20; //no automatic secondary stress + tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress tr->langopts.param[LOPT_SUFFIX] = 1; if(name2 == L('a','z')) @@ -1472,14 +1508,14 @@ SetLengthMods(tr,3); // all equal break; case L('t','t'): // Tatar - { + { SetCyrillicLetters(tr); SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable - tr->langopts.stress_flags = 0x20; //no automatic secondary stress + tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4; - } - break; + } + break; case L('u','k'): // Ukrainian { @@ -1489,10 +1525,12 @@ SetLengthMods(tr,3); // all equal break; case L('u','r'): // Urdu + { tr->letter_bits_offset = OFFSET_ARABIC; tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.numbers = NUM_SWAP_TENS; tr->langopts.break_numbers = 0x52a8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi + } break; case L('v','i'): // Vietnamese @@ -1511,7 +1549,7 @@ SetLengthMods(tr,3); // all equal 0x1a1, 0x1edd, 0x1edb, 0x1edf, 0x1ee1, 0x1ee3, // ơ 0x75, 0xf9, 0xfa, 0x1ee7, 0x169, 0x1ee5, // u 0x1b0, 0x1eeb, 0x1ee9, 0x1eed, 0x1eef, 0x1ef1, // ư - 0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1e, 0 }; // y + 0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1ef5, 0 }; // y SetupTranslator(tr,stress_lengths_vi,stress_amps_vi); tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable @@ -1541,7 +1579,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_zh,stress_amps_zh); tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable of a "word" - tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) + tr->langopts.stress_flags = S_NO_DIM; // don't automatically set diminished stress (may be set in the intonation module) tr->langopts.vowel_pause = 0; tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable @@ -1598,7 +1636,7 @@ static void Translator_Russian(Translator *tr) tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 1; tr->langopts.param[LOPT_REDUCE] = 2; tr->langopts.stress_rule = 5; - tr->langopts.stress_flags = 0x0020; // waas 0x1010 + tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; tr->langopts.numbers2 = 0x2 + NUM2_THOUSANDS_VAR1; // variant numbers before thousands diff --git a/src/translate.cpp b/src/translate.cpp index 9f435d9c..9ff21b1f 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -95,7 +95,7 @@ PHONEME_LIST2 ph_list2[N_PHONEME_LIST]; // first stage of text->phonemes -wchar_t option_punctlist[N_PUNCTLIST]={0}; +wchar_t option_punctlist[N_PUNCTLIST]= {0}; char ctrl_embedded = '\001'; // to allow an alternative CTRL for embedded commands int option_multibyte=espeakCHARS_AUTO; // 0=auto, 1=utf8, 2=8bit, 3=wchar, 4=16bit @@ -117,11 +117,12 @@ REPLACE_PHONEMES replace_phonemes[N_REPLACE_PHONEMES]; // brackets, also 0x2014 to 0x021f which don't need to be in this list static const unsigned short brackets[] = { -'(',')','[',']','{','}','<','>','"','\'','`', -0xab,0xbb, // double angle brackets -0x300a,0x300b, // double angle brackets (ideograph) -0xe000+'<', // private usage area -0}; + '(',')','[',']','{','}','<','>','"','\'','`', + 0xab,0xbb, // double angle brackets + 0x300a,0x300b, // double angle brackets (ideograph) + 0xe000+'<', // private usage area + 0 +}; // other characters which break a word, but don't produce a pause static const unsigned short breaks[] = {'_', 0}; @@ -133,153 +134,153 @@ static const unsigned short breaks[] = {'_', 0}; // Translate character codes 0xA0 to 0xFF into their unicode values // ISO_8859_1 is set as default static const unsigned short ISO_8859_1[0x60] = { - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0 - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8 - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0 - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8 - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, // d8 - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 - 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, // f8 + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0 + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8 + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0 + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8 + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 + 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, // d8 + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 + 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, // f8 }; static const unsigned short ISO_8859_2[0x60] = { - 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, // a0 - 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, // a8 - 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, // b0 - 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, // b8 - 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, // c0 - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, // c8 - 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, // d0 - 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, // d8 - 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, // e0 - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, // e8 - 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, // f0 - 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, // f8 + 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, // a0 + 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, // a8 + 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, // b0 + 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, // b8 + 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, // c0 + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, // c8 + 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, // d0 + 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, // d8 + 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, // e0 + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, // e8 + 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, // f0 + 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, // f8 }; static const unsigned short ISO_8859_3[0x60] = { - 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x0000, 0x0124, 0x00a7, // a0 - 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x0000, 0x017b, // a8 - 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, // b0 - 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x0000, 0x017c, // b8 - 0x00c0, 0x00c1, 0x00c2, 0x0000, 0x00c4, 0x010a, 0x0108, 0x00c7, // c0 - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 - 0x0000, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, // d0 - 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, // d8 - 0x00e0, 0x00e1, 0x00e2, 0x0000, 0x00e4, 0x010b, 0x0109, 0x00e7, // e0 - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 - 0x0000, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, // f0 - 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, // f8 + 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x0000, 0x0124, 0x00a7, // a0 + 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x0000, 0x017b, // a8 + 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, // b0 + 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x0000, 0x017c, // b8 + 0x00c0, 0x00c1, 0x00c2, 0x0000, 0x00c4, 0x010a, 0x0108, 0x00c7, // c0 + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 + 0x0000, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, // d0 + 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, // d8 + 0x00e0, 0x00e1, 0x00e2, 0x0000, 0x00e4, 0x010b, 0x0109, 0x00e7, // e0 + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 + 0x0000, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, // f0 + 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, // f8 }; static const unsigned short ISO_8859_4[0x60] = { - 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, // a0 - 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, // a8 - 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, // b0 - 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, // b8 - 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, // c0 - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, // c8 - 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 - 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, // d8 - 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, // e0 - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, // e8 - 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 - 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, // f8 + 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, // a0 + 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, // a8 + 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, // b0 + 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, // b8 + 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, // c0 + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, // c8 + 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 + 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, // d8 + 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, // e0 + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, // e8 + 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 + 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, // f8 }; static const unsigned short ISO_8859_5[0x60] = { - 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, // a0 Cyrillic - 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, // a8 - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, // b0 - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, // b8 - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, // c0 - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, // c8 - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, // d0 - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, // d8 - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, // e0 - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, // e8 - 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, // f0 - 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, // f8 + 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, // a0 Cyrillic + 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, // a8 + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, // b0 + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, // b8 + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, // c0 + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, // c8 + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, // d0 + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, // d8 + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, // e0 + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, // e8 + 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, // f0 + 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, // f8 }; static const unsigned short ISO_8859_7[0x60] = { - 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, // a0 Greek - 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x0000, 0x2015, // a8 - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, // b0 - 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, // b8 - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, // c0 - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, // c8 - 0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, // d0 - 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, // d8 - 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, // e0 - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, // e8 - 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, // f0 - 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x0000, // f8 + 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, // a0 Greek + 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0x0000, 0x2015, // a8 + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, // b0 + 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, // b8 + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, // c0 + 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, // c8 + 0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, // d0 + 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, // d8 + 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, // e0 + 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, // e8 + 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, // f0 + 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x0000, // f8 }; static const unsigned short ISO_8859_9[0x60] = { - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0 - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8 - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0 - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8 - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 - 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, // d8 - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 - 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, // f8 + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, // a0 + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, // a8 + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, // b0 + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, // b8 + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 + 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, // d0 + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, // d8 + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 + 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, // f0 + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, // f8 }; static const unsigned short ISO_8859_14[0x60] = { - 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, // a0 Welsh - 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, // a8 - 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, // b0 - 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, // b8 - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 - 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, // d0 - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, // d8 - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 - 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, // f0 - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, // f8 + 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, // a0 Welsh + 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, // a8 + 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, // b0 + 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, // b8 + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, // c0 + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, // c8 + 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, // d0 + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, // d8 + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, // e0 + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, // e8 + 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, // f0 + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, // f8 }; static const unsigned short KOI8_R[0x60] = { - 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, // a0 Russian - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, // a8 - 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, // b0 - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, // b8 - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, // c0 - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, // c8 - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, // d0 - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, // d8 - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, // e0 - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, // e8 - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, // f0 - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, // f8 + 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, // a0 Russian + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, // a8 + 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, // b0 + 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, // b8 + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, // c0 + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, // c8 + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, // d0 + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, // d8 + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, // e0 + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, // e8 + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, // f0 + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, // f8 }; static const unsigned short ISCII[0x60] = { - 0x0020, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, 0x0908, // a0 - 0x0909, 0x090a, 0x090b, 0x090e, 0x090f, 0x0910, 0x090d, 0x0912, // a8 - 0x0913, 0x0914, 0x0911, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, // b0 - 0x091a, 0x091b, 0x091c, 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, // b8 - 0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, // c0 - 0x092a, 0x092b, 0x092c, 0x092d, 0x092e, 0x092f, 0x095f, 0x0930, // c8 - 0x0931, 0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, // d0 - 0x0939, 0x0020, 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, // d8 - 0x0946, 0x0947, 0x0948, 0x0945, 0x094a, 0x094b, 0x094c, 0x0949, // e0 - 0x094d, 0x093c, 0x0964, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, // e8 - 0x0020, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, // f0 - 0x0037, 0x0038, 0x0039, 0x20, 0x20, 0x20, 0x20, 0x20, // f8 + 0x0020, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, 0x0908, // a0 + 0x0909, 0x090a, 0x090b, 0x090e, 0x090f, 0x0910, 0x090d, 0x0912, // a8 + 0x0913, 0x0914, 0x0911, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, // b0 + 0x091a, 0x091b, 0x091c, 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, // b8 + 0x0922, 0x0923, 0x0924, 0x0925, 0x0926, 0x0927, 0x0928, 0x0929, // c0 + 0x092a, 0x092b, 0x092c, 0x092d, 0x092e, 0x092f, 0x095f, 0x0930, // c8 + 0x0931, 0x0932, 0x0933, 0x0934, 0x0935, 0x0936, 0x0937, 0x0938, // d0 + 0x0939, 0x0020, 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, // d8 + 0x0946, 0x0947, 0x0948, 0x0945, 0x094a, 0x094b, 0x094c, 0x0949, // e0 + 0x094d, 0x093c, 0x0964, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, // e8 + 0x0020, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, // f0 + 0x0037, 0x0038, 0x0039, 0x20, 0x20, 0x20, 0x20, 0x20, // f8 }; const unsigned short *charsets[N_CHARSETS] = { @@ -302,7 +303,8 @@ const unsigned short *charsets[N_CHARSETS] = { ISO_8859_1, ISO_8859_1, KOI8_R, // 18 - ISCII }; + ISCII +}; // Tables of the relative lengths of vowels, depending on the // type of the two phonemes that follow @@ -310,7 +312,7 @@ const unsigned short *charsets[N_CHARSETS] = { // use this table if vowel is not the last in the word static unsigned char length_mods_en[100] = { -/* a , t s n d z r N <- next */ + /* a , t s n d z r N <- next */ 100,120,100,105,100,110,110,100, 95, 100, /* a <- next2 */ 105,120,105,110,125,130,135,115,125, 100, /* , */ 105,120, 75,100, 75,105,120, 85, 75, 100, /* t */ @@ -320,11 +322,12 @@ static unsigned char length_mods_en[100] = { 105,120,100,105,105,122,125,110,105, 100, /* z */ 105,120,100,105,105,122,125,110,105, 100, /* r */ 105,120, 95,105,100,115,120,110,100, 100, /* N */ - 100,120,100,100,100,100,100,100,100, 100 }; // SPARE + 100,120,100,100,100,100,100,100,100, 100 +}; // SPARE // as above, but for the last syllable in a word static unsigned char length_mods_en0[100] = { -/* a , t s n d z r N <- next */ + /* a , t s n d z r N <- next */ 100,150,100,105,110,115,110,110,110, 100, /* a <- next2 */ 105,150,105,110,125,135,140,115,135, 100, /* , */ 105,150, 90,105, 90,122,135,100, 90, 100, /* t */ @@ -334,11 +337,12 @@ static unsigned char length_mods_en0[100] = { 105,150,100,105,110,122,125,115,110, 100, /* z */ 105,150,100,105,105,122,135,120,105, 100, /* r */ 105,150,100,105,105,115,135,110,105, 100, /* N */ - 100,100,100,100,100,100,100,100,100, 100 }; // SPARE + 100,100,100,100,100,100,100,100,100, 100 +}; // SPARE static unsigned char length_mods_equal[100] = { -/* a , t s n d z r N <- next */ + /* a , t s n d z r N <- next */ 110,120,100,110,110,110,110,110,110, 110, /* a <- next2 */ 110,120,100,110,110,110,110,110,110, 110, /* , */ 110,120,100,110,100,110,110,110,100, 110, /* t */ @@ -348,17 +352,18 @@ static unsigned char length_mods_equal[100] = { 110,120,100,110,110,110,110,110,110, 110, /* z */ 110,120,100,110,110,110,110,110,110, 110, /* r */ 110,120,100,110,110,110,110,110,110, 110, /* N */ - 110,120,100,110,110,110,110,110,110, 110 }; // SPARE + 110,120,100,110,110,110,110,110,110, 110 +}; // SPARE static unsigned char *length_mod_tabs[6] = { - length_mods_en, - length_mods_en, // 1 - length_mods_en0, // 2 - length_mods_equal, // 3 - length_mods_equal, // 4 - length_mods_equal // 5 - }; + length_mods_en, + length_mods_en, // 1 + length_mods_en0, // 2 + length_mods_equal, // 3 + length_mods_equal, // 4 + length_mods_equal // 5 +}; void SetLengthMods(Translator *tr, int value) @@ -378,8 +383,9 @@ int IsAlpha(unsigned int c) // Replacement for iswalph() which also checks for some in-word symbols static const unsigned short extra_indic_alphas[] = { - 0xa70,0xa71, // Gurmukhi: tippi, addak - 0 }; + 0xa70,0xa71, // Gurmukhi: tippi, addak + 0 + }; if(iswalpha(c)) return(1); @@ -397,6 +403,9 @@ int IsAlpha(unsigned int c) return(0); } + if((c >= 0x5b0) && (c <= 0x5c2)) + return(1); // Hebrew vowel marks + if(c == 0x0605) return(1); @@ -520,8 +529,7 @@ int utf8_out(unsigned int c, char *buf) } if(c < 0x0800) n_bytes = 1; - else - if(c < 0x10000) + else if(c < 0x10000) n_bytes = 2; else n_bytes = 3; @@ -577,11 +585,9 @@ int utf8_in2(int *c, const char *buf, int backwards) { if((c1 & 0xe0) == 0xc0) n_bytes = 1; - else - if((c1 & 0xf0) == 0xe0) + else if((c1 & 0xf0) == 0xe0) n_bytes = 2; - else - if((c1 & 0xf8) == 0xf0) + else if((c1 & 0xf8) == 0xf0) n_bytes = 3; c1 &= mask[n_bytes]; @@ -631,8 +637,10 @@ static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int capitals = 0; int non_initial = 0; - if (spell_word > 2) - capitals = 2; + if(spell_word > 2) + capitals = 2; // speak 'capital' + if(spell_word > 1) + capitals |= 4; // speak charater code for unknown letters while((*word != ' ') && (*word != 0)) { @@ -673,19 +681,17 @@ static int CheckDottedAbbrev(char *word1, WORD_TAB *wtab) nbytes = utf8_in(&wc, word); if((word[nbytes] == ' ') && IsAlpha(wc)) { - if(word[nbytes+1] == '.') + if(word[nbytes+1] == '.') { if(word[nbytes+2] == ' ') ok = 1; - else - if(word[nbytes+2] =='\'') + else if(word[nbytes+2] =='\'') { nbytes += 2; // delete the final dot (eg. u.s.a.'s) ok = 2; } } - else - if((count > 0) && (word[nbytes] == ' ')) + else if((count > 0) && (word[nbytes] == ' ')) ok = 2; } @@ -811,8 +817,8 @@ int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes) -int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab) -{//=========================================================================== +int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab, char *word_out) +{//================================================================================================== // word1 is terminated by space (0x20) character char *word1; @@ -829,7 +835,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt int prefix_stress; char *wordx; char phonemes[N_WORD_PHONEMES]; - char phonemes2[N_WORD_PHONEMES]; + char phonemes2[N_WORD_PHONEMES]; char prefix_phonemes[N_WORD_PHONEMES]; char unpron_phonemes[N_WORD_PHONEMES]; char end_phonemes[N_WORD_PHONEMES]; @@ -839,7 +845,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt int word_copy_length; char prefix_chars[0x3f + 2]; int found=0; - int end_flags; + int end_flags; char c_temp; // save a character byte while we temporarily replace it with space int first_char; int last_char = 0; @@ -879,7 +885,6 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt unpron_phonemes[0] = 0; prefix_phonemes[0] = 0; end_phonemes[0] = 0; - current_alphabet = NULL; if(tr->data_dictlist == NULL) { @@ -910,8 +915,8 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) { - // retranslating a 1-character word using a different language, say its name - spell_word = 1; + // retranslating a 1-character word using a different language, say its name + spell_word = 1; } if(option_sayas == SAYAS_KEY) @@ -947,6 +952,9 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt if(dictionary_flags[0] & FLAG_TEXTMODE) { + if(word_out != NULL) + strcpy(word_out, word1); + first_char = word1[0]; stress_bits = dictionary_flags[0] & 0x7f; found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement @@ -961,8 +969,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt } } } - else - if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS)) + else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS)) { // grouped words, but no translation. Join the words with hyphens. wordx = word1; @@ -1001,11 +1008,11 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt return(0); } -if((wmark > 0) && (wmark < 8)) -{ - // the stressed syllable has been specified in the text (TESTING) - dictionary_flags[0] = (dictionary_flags[0] & ~0xf) | wmark; -} + if((wmark > 0) && (wmark < 8)) + { + // the stressed syllable has been specified in the text (TESTING) + dictionary_flags[0] = (dictionary_flags[0] & ~0xf) | wmark; + } if(!found && (dictionary_flags[0] & FLAG_ABBREV)) { @@ -1051,9 +1058,8 @@ if((wmark > 0) && (wmark < 8)) // emphasize words which are in capitals emphasize_allcaps = FLAG_EMPHASIZED; } - else - if(!found && !(dictionary_flags[0] & FLAG_SKIPWORDS) && (word_length<4) && (tr->clause_lower_count > 3) - && (tr->clause_upper_count <= tr->clause_lower_count)) + else if(!found && !(dictionary_flags[0] & FLAG_SKIPWORDS) && (word_length<4) && (tr->clause_lower_count > 3) + && (tr->clause_upper_count <= tr->clause_lower_count)) { // An upper case word in a lower case clause. This could be an abbreviation. spell_word = 1; @@ -1074,10 +1080,9 @@ if((wmark > 0) && (wmark < 8)) return(0); } strcpy(word_phonemes, phonemes); - return(0); // ?? + return(dictionary_flags[0] & FLAG_SKIPWORDS); // ?? } - else - if(found == 0) + else if(found == 0) { int posn; int non_initial; @@ -1110,9 +1115,9 @@ if((wmark > 0) && (wmark < 8)) // change to another language in order to translate this word strcpy(word_phonemes,unpron_phonemes); if(strcmp(&unpron_phonemes[1],"en")==0) - return(FLAG_SPELLWORD); // _^_en must have been set in TranslateLetter(), not *_rules + return(FLAG_SPELLWORD); // _^_en must have been set in TranslateLetter(), not *_rules which uses only _^_ return(0); - } + } #ifdef deleted p = &wordx[word_length-3]; // this looks wrong. Doesn't consider multi-byte chars. @@ -1153,10 +1158,10 @@ if((wmark > 0) && (wmark < 8)) // ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST if(end_type & SUFX_UNPRON) { - phonemes[0] = 0; // discard and retranslate as individual letters - SpeakIndividualLetters(tr, wordx, phonemes, 0); - strcpy(word_phonemes, phonemes); - return(0); + phonemes[0] = 0; // discard and retranslate as individual letters + SpeakIndividualLetters(tr, wordx, phonemes, 0); + strcpy(word_phonemes, phonemes); + return(0); } #endif @@ -1311,113 +1316,110 @@ if(end_type & SUFX_UNPRON) if((end_type != 0) && !(end_type & SUFX_P)) { - end_type1 = end_type; - strcpy(phonemes2,phonemes); + end_type1 = end_type; + strcpy(phonemes2,phonemes); // The word has a standard ending, re-translate without this ending end_flags = RemoveEnding(tr, wordx, end_type, word_copy); - more_suffixes = 1; + more_suffixes = 1; - while(more_suffixes) - { - more_suffixes = 0; - phonemes[0] = 0; + while(more_suffixes) + { + more_suffixes = 0; + phonemes[0] = 0; - if(prefix_phonemes[0] != 0) - { - // lookup the stem without the prefix removed - wordx[-1] = c_temp; - found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix - wordx[-1] = ' '; - if(phonemes[0] == phonSWITCH) - { - // change to another language in order to translate this word - memcpy(wordx,word_copy,strlen(word_copy)); - strcpy(word_phonemes,phonemes); - return(0); - } - if(dictionary_flags[0]==0) - { - dictionary_flags[0] = dictionary_flags2[0]; - dictionary_flags[1] = dictionary_flags2[1]; - } - if(found) - prefix_phonemes[0] = 0; // matched whole word, don't need prefix now + if(prefix_phonemes[0] != 0) + { + // lookup the stem without the prefix removed + wordx[-1] = c_temp; + found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix + wordx[-1] = ' '; + if(phonemes[0] == phonSWITCH) + { + // change to another language in order to translate this word + memcpy(wordx,word_copy,strlen(word_copy)); + strcpy(word_phonemes,phonemes); + return(0); + } + if(dictionary_flags[0]==0) + { + dictionary_flags[0] = dictionary_flags2[0]; + dictionary_flags[1] = dictionary_flags2[1]; + } + if(found) + prefix_phonemes[0] = 0; // matched whole word, don't need prefix now - if((found==0) && (dictionary_flags2[0] != 0)) - prefix_flags = 1; - } - if(found == 0) - { - found = LookupDictList(tr, &wordx, phonemes, dictionary_flags2, end_flags, wtab); // without prefix and suffix - if(phonemes[0] == phonSWITCH) - { - // change to another language in order to translate this word - memcpy(wordx,word_copy,strlen(word_copy)); - strcpy(word_phonemes,phonemes); - return(0); - } + if((found==0) && (dictionary_flags2[0] != 0)) + prefix_flags = 1; + } + if(found == 0) + { + found = LookupDictList(tr, &wordx, phonemes, dictionary_flags2, end_flags, wtab); // without prefix and suffix + if(phonemes[0] == phonSWITCH) + { + // change to another language in order to translate this word + memcpy(wordx,word_copy,strlen(word_copy)); + strcpy(word_phonemes,phonemes); + return(0); + } - if(dictionary_flags2[0] & FLAG_ABBREV) - { - // Removing the suffix leaves a word which should be spoken as individual letters - // Not yet implemented - } - if(dictionary_flags[0]==0) - { - dictionary_flags[0] = dictionary_flags2[0]; - dictionary_flags[1] = dictionary_flags2[1]; - } - } - if(found == 0) - { - if(end_type & SUFX_Q) - { - // don't retranslate, use the original lookup result - strcpy(phonemes,phonemes2); + if(dictionary_flags2[0] & FLAG_ABBREV) + { + // Removing the suffix leaves a word which should be spoken as individual letters + // Not yet implemented + } + if(dictionary_flags[0]==0) + { + dictionary_flags[0] = dictionary_flags2[0]; + dictionary_flags[1] = dictionary_flags2[1]; + } + } + if(found == 0) + { + if(end_type & SUFX_Q) + { + // don't retranslate, use the original lookup result + strcpy(phonemes,phonemes2); + } + else + { + if(end_flags & FLAG_SUFX) + wflags |= FLAG_SUFFIX_REMOVED; + if(end_type & SUFX_A) + wflags |= FLAG_SUFFIX_VOWEL; - // language specific changes - ApplySpecialAttribute(tr,phonemes,dictionary_flags[0]); - } - else - { - if(end_flags & FLAG_SUFX) - wflags |= FLAG_SUFFIX_REMOVED; - if(end_type & SUFX_A) - wflags |= FLAG_SUFFIX_VOWEL; + if(end_type & SUFX_M) + { + // allow more suffixes before this suffix + strcpy(end_phonemes2, end_phonemes); + end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags); + strcat(end_phonemes, end_phonemes2); // add the phonemes for the previous suffixes after this one - if(end_type & SUFX_M) - { - // allow more suffixes before this suffix - strcpy(end_phonemes2, end_phonemes); - end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags); - strcat(end_phonemes, end_phonemes2); // add the phonemes for the previous suffixes after this one + if((end_type != 0) && !(end_type & SUFX_P)) + { + // there is another suffix + end_flags = RemoveEnding(tr, wordx, end_type, NULL); + more_suffixes = 1; + } + } + else + { + // don't remove any previous suffix + TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, NULL, wflags, dictionary_flags); + end_type = 0; + } - if((end_type != 0) && !(end_type & SUFX_P)) - { - // there is another suffix - end_flags = RemoveEnding(tr, wordx, end_type, NULL); - more_suffixes = 1; - } - } - else - { - // don't remove any previous suffix - TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, NULL, wflags, dictionary_flags); - end_type = 0; - } - - if(phonemes[0] == phonSWITCH) - { - // change to another language in order to translate this word - strcpy(word_phonemes,phonemes); - memcpy(wordx,word_copy,strlen(word_copy)); - wordx[-1] = c_temp; - return(0); - } - } - } - } + if(phonemes[0] == phonSWITCH) + { + // change to another language in order to translate this word + strcpy(word_phonemes,phonemes); + memcpy(wordx,word_copy,strlen(word_copy)); + wordx[-1] = c_temp; + return(0); + } + } + } + } if((end_type1 & SUFX_T) == 0) @@ -1441,8 +1443,7 @@ if(end_type & SUFX_UNPRON) // s or 's suffix, append [s], [z] or [Iz] depending on previous letter if(last_char == 'f') TranslateRules(tr, &word_ss[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL); - else - if((last_char==0) || (strchr_w("hsx",last_char)==NULL)) + else if((last_char==0) || (strchr_w("hsx",last_char)==NULL)) TranslateRules(tr, &word_zz[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL); else TranslateRules(tr, &word_iz[1], phonemes, N_WORD_PHONEMES, NULL, 0, NULL); @@ -1549,8 +1550,7 @@ if(end_type & SUFX_UNPRON) { ChangeWordStress(tr,word_phonemes,3); } - else - if(wflags & FLAG_EMPHASIZED2) + else if(wflags & FLAG_EMPHASIZED2) { // A word is indicated in the source text as stressed // Give it stress level 6 (for the intonation module) @@ -1559,14 +1559,12 @@ if(end_type & SUFX_UNPRON) if(wflags & FLAG_EMPHASIZED) dictionary_flags[0] |= FLAG_PAUSE1; // precede by short pause } - else - if(wtab[dictionary_skipwords].flags & FLAG_LAST_WORD) + else if(wtab[dictionary_skipwords].flags & FLAG_LAST_WORD) { // the word has attribute to stress or unstress when at end of clause if(dictionary_flags[0] & (FLAG_STRESS_END | FLAG_STRESS_END2)) ChangeWordStress(tr,word_phonemes,4); - else - if((dictionary_flags[0] & FLAG_UNSTRESS_END) && (any_stressed_words)) + else if((dictionary_flags[0] & FLAG_UNSTRESS_END) && (any_stressed_words)) ChangeWordStress(tr,word_phonemes,3); } @@ -1587,16 +1585,14 @@ if(end_type & SUFX_UNPRON) tr->expect_verb = 0; tr->expect_noun = 0; } - else - if(dictionary_flags[1] & FLAG_VERBF) + else if(dictionary_flags[1] & FLAG_VERBF) { /* expect a verb in the next word */ tr->expect_verb = 2; tr->expect_verb_s = 0; /* verb won't have -s suffix */ tr->expect_noun = 0; } - else - if(dictionary_flags[1] & FLAG_VERBSF) + else if(dictionary_flags[1] & FLAG_VERBSF) { // expect a verb, must have a -s suffix tr->expect_verb = 0; @@ -1604,8 +1600,7 @@ if(end_type & SUFX_UNPRON) tr->expect_past = 0; tr->expect_noun = 0; } - else - if(dictionary_flags[1] & FLAG_NOUNF) + else if(dictionary_flags[1] & FLAG_NOUNF) { /* not expecting a verb next */ tr->expect_noun = 2; @@ -1764,6 +1759,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa int word_flags; int word_copy_len; char word_copy[N_WORD_BYTES+1]; + char word_replaced[N_WORD_BYTES+1]; char old_dictionary_name[40]; if((f_logespeak != NULL) && (logging_type & 8)) @@ -1784,6 +1780,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa word_flags = wtab[0].flags; if(word_flags & FLAG_EMBEDDED) { + wtab[0].flags &= ~FLAG_EMBEDDED; // clear it in case we call TranslateWord2() again for the same word embedded_flag = SFLAG_EMBEDDED; Word_EmbeddedCmd(); @@ -1875,7 +1872,8 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa while(((c2 = word_copy[ix] = word[ix]) != ' ') && (c2 != 0) && (ix < N_WORD_BYTES)) ix++; word_copy_len = ix; - flags = TranslateWord(translator, word, next_pause, wtab); + word_replaced[2] = 0; + flags = TranslateWord(translator, word, next_pause, wtab, &word_replaced[2]); if(flags & FLAG_SPELLWORD) { @@ -1910,7 +1908,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa { strcpy(ph_buf,word_phonemes); - flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1); + flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1, NULL); if((flags2[0] & FLAG_WAS_UNPRONOUNCABLE) || (word_phonemes[0] == phonSWITCH)) ok = 0; @@ -1938,12 +1936,12 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa if(ok) { *p2 = '-'; // replace next space by hyphen - flags = TranslateWord(translator, word, next_pause, wtab); // translate the combined word + flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) { // revert to separate words *p2 = ' '; - flags = TranslateWord(translator, word, next_pause, wtab); + flags = TranslateWord(translator, word, next_pause, wtab, NULL); } else { @@ -1955,31 +1953,44 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa } } - if(p[0] == phonSWITCH) + if(p[0]==phonSWITCH) { - // this word uses a different language - memcpy(word, word_copy, word_copy_len); - - new_language = (char *)(&p[1]); - if(new_language[0]==0) - new_language = "en"; - + int switch_attempt; strcpy(old_dictionary_name, dictionary_name); - switch_phonemes = SetTranslator2(new_language); - - if(switch_phonemes >= 0) + for(switch_attempt=0; switch_attempt < 2; switch_attempt++) { - // re-translate the word using the new translator - wtab[0].flags |= FLAG_TRANSLATOR2; - flags = TranslateWord(translator2, word, next_pause, wtab); -// strcpy((char *)p,translator2->word_phonemes); - if(p[0] == phonSWITCH) + // this word uses a different language + memcpy(word, word_copy, word_copy_len); + + new_language = (char *)(&p[1]); + if(new_language[0]==0) + new_language = "en"; + + switch_phonemes = SetTranslator2(new_language); + + if(switch_phonemes >= 0) { - // the second translator doesn't want to process this word -// switch_phonemes = -1; -return(FLAG_SPELLWORD); + // re-translate the word using the new translator + wtab[0].flags |= FLAG_TRANSLATOR2; + if(word_replaced[2] != 0) + { + word_replaced[0] = 0; // byte before the start of the word + word_replaced[1] = ' '; + flags = TranslateWord(translator2, &word_replaced[1], next_pause, wtab, NULL); + } + else + flags = TranslateWord(translator2, word, next_pause, wtab, &word_replaced[2]); } + + if(p[0] != phonSWITCH) + break; } + + // strcpy((char *)p,translator2->word_phonemes); + + if(p[0] == phonSWITCH) + return(FLAG_SPELLWORD); + if(switch_phonemes < 0) { // language code is not recognised or 2nd translator won't translate it @@ -2051,7 +2062,8 @@ return(FLAG_SPELLWORD); pre_pause--; } tr->end_stressed_vowel = 0; // forget about the previous word - tr->prev_dict_flags = 0; + tr->prev_dict_flags[0] = 0; + tr->prev_dict_flags[1] = 0; } if((option_capitals==1) && (word_flags & FLAG_FIRST_UPPER)) @@ -2068,17 +2080,29 @@ return(FLAG_SPELLWORD); if(switch_phonemes >= 0) { - // this word uses a different phoneme table - if(ph_list2[n_ph_list2-1].phcode == phonSWITCH) + if((p[0] == phonPAUSE) && (p[1] == phonSWITCH)) { - //previous phoneme is also a phonSWITCH, just change its phoneme table number - n_ph_list2--; + // the new word starts with a phoneme table switch, so there's no need to switch before it. + if(ph_list2[n_ph_list2-1].phcode == phonSWITCH) + { + //previous phoneme is also a phonSWITCH, delete it + n_ph_list2--; + } + } + else + { + // this word uses a different phoneme table + if(ph_list2[n_ph_list2-1].phcode == phonSWITCH) + { + //previous phoneme is also a phonSWITCH, just change its phoneme table number + n_ph_list2--; + } + else + { + SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); + } + ph_list2[n_ph_list2++].tone_ph = switch_phonemes; // temporary phoneme table number } - else - { - SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); - } - ph_list2[n_ph_list2++].tone_ph = switch_phonemes; // temporary phoneme table number } // remove initial pause from a word if it follows a hyphen @@ -2104,13 +2128,12 @@ return(FLAG_SPELLWORD); { ph_list2[n_ph_list2].phcode = ph_code; ph_list2[n_ph_list2].sourceix = 0; - ph_list2[n_ph_list2].synthflags = embedded_flag; + ph_list2[n_ph_list2].synthflags = 0; ph_list2[n_ph_list2++].tone_ph = *p; - SelectPhonemeTable(*p); - p++; + SelectPhonemeTable(*p); + p++; } - else - if(ph->type == phSTRESS) + else if(ph->type == phSTRESS) { // don't add stress phonemes codes to the list, but give their stress // value to the next vowel phoneme @@ -2130,29 +2153,25 @@ return(FLAG_SPELLWORD); } } } - else - if(ph_code == phonSYLLABIC) + else if(ph_code == phonSYLLABIC) { // mark the previous phoneme as a syllabic consonant prev_vowel = n_ph_list2-1; ph_list2[prev_vowel].synthflags |= SFLAG_SYLLABLE; ph_list2[prev_vowel].stresslevel = next_stress; } - else - if(ph_code == phonLENGTHEN) + else if(ph_code == phonLENGTHEN) { ph_list2[n_ph_list2-1].synthflags |= SFLAG_LENGTHEN; } - else - if(ph_code == phonEND_WORD) + else if(ph_code == phonEND_WORD) { // a || symbol in a phoneme string was used to indicate a word boundary // Don't add this phoneme to the list, but make sure the next phoneme has // a newword indication srcix = source_ix+1; } - else - if(ph_code == phonX1) + else if(ph_code == phonX1) { // a language specific action if(tr->langopts.param[LOPT_IT_DOUBLING]) @@ -2200,8 +2219,8 @@ return(FLAG_SPELLWORD); { if(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING]) { - if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || - (tr->end_stressed_vowel && (tr->langopts.param[LOPT_IT_DOUBLING] & 2))) + if(((tr->prev_dict_flags[0] & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || + (tr->end_stressed_vowel && (tr->langopts.param[LOPT_IT_DOUBLING] & 2))) { // italian, double the initial consonant if the previous word ends with a // stressed vowel, or is marked with a flag @@ -2256,7 +2275,7 @@ return(FLAG_SPELLWORD); ph_list2[max_stress_ix].synthflags |= SFLAG_PROMOTE_STRESS; } - tr->prev_dict_flags = flags; + tr->prev_dict_flags[0] = flags; return(flags); } // end of TranslateWord2 @@ -2281,8 +2300,7 @@ static int EmbeddedCommand(unsigned int &source_index) sign = 0x40; source_index++; } - else - if(c == '-') + else if(c == '-') { sign = 0x60; source_index++; @@ -2407,19 +2425,20 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, int next2; static const unsigned char hangul_compatibility[0x34] = { - 0, 0x00,0x01,0xaa,0x02,0xac,0xad,0x03, - 0x04,0x05,0xb0,0xb1,0xb2,0xb3,0xb4,0xb4, - 0xb6,0x06,0x07,0x08,0xb9,0x09,0x0a,0xbc, - 0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x61, - 0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69, - 0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71, - 0x72,0x73,0x74,0x75 }; + 0, 0x00,0x01,0xaa,0x02,0xac,0xad,0x03, + 0x04,0x05,0xb0,0xb1,0xb2,0xb3,0xb4,0xb4, + 0xb6,0x06,0x07,0x08,0xb9,0x09,0x0a,0xbc, + 0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x61, + 0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69, + 0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71, + 0x72,0x73,0x74,0x75 + }; switch(tr->translator_name) { case L('a','f'): case L('n','l'): - // look for 'n and replace by a special character (unicode: schwa) + // look for 'n and replace by a special character (unicode: schwa) if(!iswalpha(prev_in)) @@ -2466,8 +2485,7 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, } return(c); } - else - if(((code = c - 0x3130) >= 0) && (code < 0x34)) + else if(((code = c - 0x3130) >= 0) && (code < 0x34)) { // Hangul compatibility jamo return(hangul_compatibility[code] + 0x1100); @@ -2478,6 +2496,34 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, } +static const char *UCase_ga[] = {"bp","bhf","dt","gc","hA","mb","nd","ng","ts","tA","nA",NULL}; + +int UpperCaseInWord(Translator *tr, char *word, int c) +{//===================================================== + int ix; + int len; + const char *p; + + if(tr->translator_name == L('g','a')) + { + // Irish + for(ix=0; ; ix++) + { + if((p = UCase_ga[ix]) == NULL) + break; + + len = strlen(p); + if((word[-len]==' ') && (memcmp(&word[-len+1], p, len-1) == 0)) + { + if((c == p[len-1]) || ((p[len-1]=='A') && IsVowel(tr, c))) + return(1); + } + } + } + return(0); +} + + void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone_out, char **voice_change) {//========================================================================================================== int ix; @@ -2554,7 +2600,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t fprintf(f_logespeak,"ENDCLAUSE\n"); fflush(f_logespeak); } -p = source; + p = source; charix[charix_top+1] = 0; charix[charix_top+2] = 0x7fff; @@ -2615,7 +2661,8 @@ p = source; tr->expect_verb_s=0; tr->phonemes_repeat_count = 0; tr->end_stressed_vowel=0; - tr->prev_dict_flags = 0; + tr->prev_dict_flags[0] = 0; + tr->prev_dict_flags[1] = 0; word_count = 0; single_quoted = 0; @@ -2659,8 +2706,7 @@ p = source; prev_in = prev_in_save; prev_in_save = 0; } - else - if(source_index > 0) + else if(source_index > 0) { utf8_in2(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1]; } @@ -2726,8 +2772,7 @@ p = source; c = ' '; } } - else - if((option_sayas2 & 0xf0) == SAYAS_DIGITS) + else if((option_sayas2 & 0xf0) == SAYAS_DIGITS) { if(iswdigit(c)) { @@ -2750,8 +2795,7 @@ p = source; } } } - else - if((option_sayas2 & 0x10) == 0) + else if((option_sayas2 & 0x10) == 0) { // speak as words @@ -2875,7 +2919,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre if(tr->letter_bits_offset > 0) { if(((c < 0x250) && (prev_out >= tr->letter_bits_offset)) || - ((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250))) + ((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250))) { // Don't mix native and Latin characters in the same word // Break into separate words @@ -2903,13 +2947,21 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre { if(iswlower(prev_in)) { - c = ' '; // lower case followed by upper case, treat as new word - space_inserted = 1; - prev_in_save = c; -// next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set + // lower case followed by upper case in a word + if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) + { + // convert to lower case and continue + c = towlower(c); + } + else + { + c = ' '; // lower case followed by upper case, treat as new word + space_inserted = 1; + prev_in_save = c; + // next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set + } } - else - if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) + else if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) { int next2_in; utf8_in(&next2_in,&source[source_index + next_in_nbytes]); @@ -2943,8 +2995,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre all_upper_case = 0; } } - else - if(c=='-') + else if(c=='-') { if(!IsSpace(prev_in) && IsAlpha(next_in)) { @@ -2963,31 +3014,27 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre c = ' '; } } - else - if((prev_in==' ') && (next_in==' ')) + else if((prev_in==' ') && (next_in==' ')) { // ' - ' dash between two spaces, treat as pause c = ' '; pre_pause_add = 4; } - else - if(next_in=='-') + else if(next_in=='-') { // double hyphen, treat as pause source_index++; c = ' '; pre_pause_add = 4; } - else - if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) + else if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) { // insert extra space between a word + space + hyphen, to distinguish 'a -2' from 'a-2' sbuf[ix++] = ' '; words[word_count].start++; } } - else - if(c == '.') + else if(c == '.') { if(prev_out == '.') { @@ -2995,8 +3042,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre c = ' '; space_inserted = 1; } - else - if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in)) + else if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in)) { // dot after a word, with space following, probably an abbreviation words[word_count-1].flags |= FLAG_HAS_DOT; @@ -3005,26 +3051,22 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre c = ' '; // remove the dot if it's followed by a space or hyphen, so that it's not pronounced } } - else - if(c == '\'') + else if(c == '\'') { if(((prev_in == '.') || iswalnum(prev_in)) && IsAlpha(next_in)) { // between two letters, or in an abbreviation (eg. u.s.a.'s). Consider the apostrophe as part of the word single_quoted = 0; } - else - if((tr->langopts.param[LOPT_APOSTROPHE] & 1) && IsAlpha(next_in)) + else if((tr->langopts.param[LOPT_APOSTROPHE] & 1) && IsAlpha(next_in)) { single_quoted = 0; // apostrophe at start of word is part of the word } - else - if((tr->langopts.param[LOPT_APOSTROPHE] & 2) && IsAlpha(prev_in)) + else if((tr->langopts.param[LOPT_APOSTROPHE] & 2) && IsAlpha(prev_in)) { single_quoted = 0; // apostrophe at end of word is part of the word } - else - if((wcschr(tr->char_plus_apostrophe,prev_in) != 0) && (prev_out2 == ' ')) + else if((wcschr(tr->char_plus_apostrophe,prev_in) != 0) && (prev_out2 == ' ')) { // consider single character plus apostrophe as a word single_quoted = 0; @@ -3055,44 +3097,41 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre else #ifdef deleted // Brackets are now recognised in TranslateRules() - if(IsBracket(c)) - { - pre_pause_add = 4; - c = ' '; - } - else + if(IsBracket(c)) + { + pre_pause_add = 4; + c = ' '; + } + else #endif - if(lookupwchar(breaks,c) != 0) - { - c = ' '; // various characters to treat as space - } - else - if(iswdigit(c)) - { - if(tr->langopts.tone_numbers && IsAlpha(prev_out) && !IsDigit(next_in)) - { - } - else - if((prev_out != ' ') && !iswdigit(prev_out)) - { - if((prev_out != tr->langopts.decimal_sep) || ((decimal_sep_count > 0) && (tr->langopts.decimal_sep == ','))) + if(lookupwchar(breaks,c) != 0) { - c = ' '; - space_inserted = 1; + c = ' '; // various characters to treat as space } - else + else if(iswdigit(c)) { - decimal_sep_count = 1; + if(tr->langopts.tone_numbers && IsAlpha(prev_out) && !IsDigit(next_in)) + { + } + else if((prev_out != ' ') && !iswdigit(prev_out)) + { + if((prev_out != tr->langopts.decimal_sep) || ((decimal_sep_count > 0) && (tr->langopts.decimal_sep == ','))) + { + c = ' '; + space_inserted = 1; + } + else + { + decimal_sep_count = 1; + } + } + else if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) + { + // insert extra space between a word and a number, to distinguish 'a 2' from 'a2' + sbuf[ix++] = ' '; + words[word_count].start++; + } } - } - else - if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) - { - // insert extra space between a word and a number, to distinguish 'a 2' from 'a2' - sbuf[ix++] = ' '; - words[word_count].start++; - } - } } if(IsSpace(c)) @@ -3239,6 +3278,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre if(skipping_text) continue; + current_alphabet = NULL; // digits should have been converted to Latin alphabet ('0' to '9') word = pw = &sbuf[words[ix].start]; @@ -3253,9 +3293,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre { *pn++ = *pw++; } - else - if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ') - && iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' ')) // don't allow only 1 or 2 digits in the final part + else if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ') + && iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' ')) // don't allow only 1 or 2 digits in the final part { pw += 2; ix++; // skip "word" @@ -3301,16 +3340,20 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre *pn++ = tr->langopts.thousands_sep; } *pn++ = ' '; - if(tr->langopts.break_numbers & (1 << (nx-1))) + + if((words[ix].flags & FLAG_INDIVIDUAL_DIGITS) == 0) { - // the next group only has 1 digits (i.e. NUM2_10000), make it three - *pn++ = '0'; - *pn++ = '0'; - } - if(tr->langopts.break_numbers & (1 << (nx-2))) - { - // the next group only has 2 digits (i.e. NUM2_10000), make it three - *pn++ = '0'; + if(tr->langopts.break_numbers & (1 << (nx-1))) + { + // the next group only has 1 digits, make it three + *pn++ = '0'; + *pn++ = '0'; + } + if(tr->langopts.break_numbers & (1 << (nx-2))) + { + // the next group only has 2 digits (eg. Indian languages), make it three + *pn++ = '0'; + } } } } @@ -3319,7 +3362,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre for(j=1; j<=nw; j++) { - num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED); // don't use these flags for subsequent parts when splitting a number + num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED); // don't use these flags for subsequent parts when splitting a number } // include the next few characters, in case there are an ordinal indicator or other suffix diff --git a/src/translate.h b/src/translate.h index 9248d09e..e7460443 100644 --- a/src/translate.h +++ b/src/translate.h @@ -23,7 +23,7 @@ #define CTRL_EMBEDDED 0x01 // control character at the start of an embedded command #define REPLACED_E 'E' // 'e' replaced by silent e -#define N_WORD_PHONEMES 160 // max phonemes in a word +#define N_WORD_PHONEMES 200 // max phonemes in a word #define N_WORD_BYTES 160 // max bytes for the UTF8 characters in a word #define N_CLAUSE_WORDS 300 // max words in a clause #define N_RULE_GROUP2 120 // max num of two-letter rule chains @@ -37,27 +37,22 @@ #define FLAG_SKIPWORDS 0x80 #define FLAG_PREPAUSE 0x100 -#define FLAG_ONLY 0x200 -#define FLAG_ONLY_S 0x400 -#define BITNUM_FLAG_ONLY 9 // bit 9 is set -#define BITNUM_FLAG_ONLY_S 10 // bit 10 is set +#define FLAG_STRESS_END 0x200 // full stress if at end of clause +#define FLAG_STRESS_END2 0x400 // full stress if at end of clause, or only followed by unstressed +#define FLAG_UNSTRESS_END 0x800 // reduce stress at end of clause +#define FLAG_SPELLWORD 0x1000 // re-translate the word as individual letters, separated by spaces +#define FLAG_ABBREV 0x2000 // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters +#define FLAG_DOUBLING 0x4000 // doubles the following consonant -#define FLAG_STRESS_END 0x800 /* full stress if at end of clause */ -#define FLAG_STRESS_END2 0x1000 /* full stress if at end of clause, or only followed by unstressed */ -#define FLAG_UNSTRESS_END 0x2000 /* reduce stress at end of clause */ -#define FLAG_ATEND 0x4000 /* use this pronunciation if at end of clause */ -#define FLAG_ATSTART 0x8000 // use this pronunciation if at start of clause -#define FLAG_SPELLWORD 0x10000 // re-translate the word as individual letters, separated by spaces -#define FLAG_ABBREV 0x20000 // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters -#define FLAG_STEM 0x40000 // must have a suffix +#define BITNUM_FLAG_ALT 14 // bit number of FLAG_ALT_TRANS - 1 +#define FLAG_ALT_TRANS 0x8000 // language specific +#define FLAG_ALT2_TRANS 0x10000 // language specific +#define FLAG_ALT3_TRANS 0x20000 // language specific +#define FLAG_ALT4_TRANS 0x40000 // language specific +#define FLAG_ALT5_TRANS 0x80000 // language specific +#define FLAG_ALT6_TRANS 0x100000 // language specific -#define FLAG_DOUBLING 0x80000 // doubles the following consonant -#define BITNUM_FLAG_ALT 19 // bit number of FLAG_ALT_TRANS - 1 -#define FLAG_ALT_TRANS 0x100000 // language specific -#define FLAG_ALT2_TRANS 0x200000 // language specific -#define FLAG_ALT3_TRANS 0x400000 // language specific #define FLAG_COMBINE 0x800000 // combine with the next word - #define FLAG_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation) #define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot #define FLAG_WAS_UNPRONOUNCABLE 0x04000000 // the unpronounceable routine was used @@ -83,8 +78,16 @@ #define FLAG_ACCENT 0x800 // character name is base-character name + accent name #define FLAG_HYPHENATED 0x1000 // multiple-words, but needs hyphen between parts 1 and 2 #define FLAG_SENTENCE 0x2000 // only if the clause is a sentence +#define FLAG_ONLY 0x4000 +#define FLAG_ONLY_S 0x8000 +#define FLAG_STEM 0x10000 // must have a suffix +#define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */ +#define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause + #define BITNUM_FLAG_ALLCAPS 0x2a #define BITNUM_FLAG_HYPHENATED 0x2c +#define BITNUM_FLAG_ONLY 0x2e +#define BITNUM_FLAG_ONLY_S 0x2f // wordflags, flags in source word @@ -272,7 +275,9 @@ extern ALPHABET *current_alphabet; // alphabet flags #define AL_DONT_NAME 0x01 // don't speak the alphabet name #define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters -#define AL_NOT_WORDS 0x04 // don't use the language to speak words +#define AL_WORDS 0x04 // use the language to speak words +#define AL_NOT_CODE 0x08 // don't speak the character code +#define AL_NO_SYMBOL 0x10 // don't repeat "symbol" or "character" #define N_LOPTS 21 @@ -369,35 +374,58 @@ typedef struct { #define S_NO_DIM 0x02 #define S_FINAL_DIM 0x04 -#define S_FINAL_NO_2 0x10 -#define S_NO_AUTO_2 0x20 -#define S_2_TO_HEAVY 0x40 -#define S_FIRST_PRIMARY 0x80 -#define S_2_SYL_2 0x1000 -#define S_INITIAL_2 0x2000 -#define S_NO_AUTO_DIM 0x10000 -#define S_HYPEN_UNSTRESS 0x100000 -#define S_NO_EOC_LENGTHEN 0x200000 -// bit0=don't stress monosyllables, except at end of clause +#define S_FINAL_DIM_ONLY 0x06 // bit1=don't set diminished stress, // bit2=mark unstressed final syllables as diminished + // bit3=set consecutive unstressed syllables in unstressed words to diminished, but not in stressed words + +#define S_FINAL_NO_2 0x10 // bit4=don't allow secondary stress on last syllable + +#define S_NO_AUTO_2 0x20 // bit5-don't use automatic secondary stress + +#define S_2_TO_HEAVY 0x40 // bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish + +#define S_FIRST_PRIMARY 0x80 // bit7=if more than one primary stress, make the subsequent primaries to secondary stress + +#define S_FINAL_STRESS_C 0x100 // bit8=stress last syllable if it doesn't end in a vowel + +#define S_FINAL_SPANISH 0x200 // bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish + +#define S_2_SYL_2 0x1000 // bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress + +#define S_INITIAL_2 0x2000 // bit13= If there is only one syllable before the primary stress, give it a secondary stress -// bit15= Give stress to the first unstressed syllable -// bit16= Don't diminish consecutive syllables within a word. + +#define S_MID_DIM 0x10000 +// bit 16= Set (not first or last) syllables to diminished stress + +#define S_PRIORITY_STRESS 0x20000 // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" + +#define S_EO_CLAUSE1 0x40000 // bit18= don't lengthen short vowels more than long vowels at end-of-clause + +#define S_FINAL_LONG 0x80000 // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel + + +#define S_HYPEN_UNSTRESS 0x100000 // bit20= hyphenated words, 2nd part is unstressed + +#define S_NO_EOC_LENGTHEN 0x200000 // bit21= don't lengthen vowels at end-of-clause +// bit15= Give stress to the first unstressed syllable + + int stress_flags; int unstressed_wd1; // stress for $u word of 1 syllable int unstressed_wd2; // stress for $u word of >1 syllable @@ -515,6 +543,8 @@ typedef struct { int listx; // compile *_listx after *list const unsigned int *replace_chars; // characters to be substitutes const char *ascii_language; // switch to this language for Latin characters + int alt_alphabet; // offset for another language to recognize + const char *alt_alphabet_lang; // language for the alt_alphabet int max_lengthmod; int lengthen_tonic; // lengthen the tonic syllable int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character @@ -543,7 +573,7 @@ typedef struct const char *transpose_map; char dictionary_name[40]; - char phon_out[400]; + char phon_out[500]; char phonemes_repeat[20]; int phonemes_repeat_count; int phoneme_tab_ix; @@ -552,6 +582,7 @@ typedef struct unsigned char stress_amps_r[8]; short stress_lengths[8]; int dict_condition; // conditional apply some pronunciation rules and dict.lookups + int dict_min_size; const unsigned short *charset_a0; // unicodes for characters 0xa0 to oxff const wchar_t *char_plus_apostrophe; // single chars + apostrophe treated as words const wchar_t *punct_within_word; // allow these punctuation characters within words @@ -585,7 +616,6 @@ typedef struct unsigned char groups2_start[256]; // index into groups2 const short *frequent_pairs; // list of frequent pairs of letters, for use in compressed *_list - int expect_verb; int expect_past; // expect past tense int expect_verb_s; @@ -601,7 +631,7 @@ typedef struct int prepause_timeout; int end_stressed_vowel; // word ends with stressed vowel - int prev_dict_flags; // dictionary flags from previous word + int prev_dict_flags[2]; // dictionary flags from previous word int clause_terminator; } Translator; @@ -677,6 +707,7 @@ void InitText(int flags); void InitText2(void); int IsDigit(unsigned int c); int IsAlpha(unsigned int c); +int IsVowel(Translator *tr, int c); int isspace2(unsigned int c); int towlower2(unsigned int c); void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); @@ -703,7 +734,6 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f void MakePhonemeList(Translator *tr, int post_pause, int new_sentence); int ChangePhonemes_ru(Translator *tr, PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch); -void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags); void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags); void AppendPhonemes(Translator *tr, char *string, int size, const char *ph); @@ -714,14 +744,14 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); int Unpronouncable(Translator *tr, char *word, int posn); void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress); int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); -int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); +int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab, char *word_out); void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change); void SetVoiceStack(espeak_VOICE *v, const char *variant_name); void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata, WORD_PH_DATA *worddata); void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); -char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa); +char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags); extern FILE *f_trans; // for logging extern FILE *f_logespeak; diff --git a/src/transldlg.cpp b/src/transldlg.cpp index a71fa1ff..e79700d9 100644 --- a/src/transldlg.cpp +++ b/src/transldlg.cpp @@ -354,7 +354,7 @@ void TranslDlg::ReadVoice(int variant) wxString filename; char *p; char vname[40]; - char fname[sizeof(path_home)+10]; + char fname[sizeof(path_home)+30]; if(variant) { diff --git a/src/voice.h b/src/voice.h index 1007f5b4..2346dfb7 100644 --- a/src/voice.h +++ b/src/voice.h @@ -25,7 +25,7 @@ typedef struct { int phoneme_tab_ix; // phoneme table number int pitch_base; // Hz<<12 int pitch_range; // standard = 0x1000 - + int speedf1; int speedf2; int speedf3; diff --git a/src/voices.cpp b/src/voices.cpp index 3c177033..0072cd08 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2010 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -48,7 +48,8 @@ MNEM_TAB genders [] = { {"unknown", 0}, {"male", 1}, {"female", 2}, - {NULL, 0 }}; + {NULL, 0 } +}; int tone_points[12] = {600,170, 1200,135, 2000,110, 3000,110, -1,0}; //int tone_points[12] = {250,200, 400,170, 600,170, 1200,135, 2000,110, -1,0}; @@ -62,7 +63,7 @@ int formant_rate[9]; // values adjusted for actual sample rate #define DEFAULT_LANGUAGE_PRIORITY 5 -#define N_VOICES_LIST 200 +#define N_VOICES_LIST 250 static int n_voices_list = 0; static espeak_VOICE *voices_list[N_VOICES_LIST]; static int len_path_voices; @@ -99,6 +100,7 @@ enum { V_STRESSADD, V_DICTRULES, V_STRESSRULE, + V_STRESSOPT, V_CHARSET, V_NUMBERS, V_OPTION, @@ -107,6 +109,7 @@ enum { V_KLATT, V_FAST, V_SPEED, + V_DICTMIN, // these need a phoneme table to have been specified V_REPLACE, @@ -118,7 +121,8 @@ enum { static MNEM_TAB options_tab[] = { {"reduce_t", LOPT_REDUCE_T}, {"bracket", LOPT_BRACKET_PAUSE}, - {NULL, -1} }; + {NULL, -1} +}; static MNEM_TAB keyword_tab[] = { {"name", V_NAME}, @@ -128,7 +132,7 @@ static MNEM_TAB keyword_tab[] = { {"formant", V_FORMANT}, {"pitch", V_PITCH}, {"phonemes", V_PHONEMES}, - {"translator", V_TRANSLATOR}, + {"translator", V_TRANSLATOR}, {"dictionary", V_DICTIONARY}, {"stressLength", V_STRESSLENGTH}, {"stressAmp", V_STRESSAMP}, @@ -137,6 +141,7 @@ static MNEM_TAB keyword_tab[] = { {"tunes", V_TUNES}, {"dictrules", V_DICTRULES}, {"stressrule", V_STRESSRULE}, + {"stressopt", V_STRESSOPT}, {"charset", V_CHARSET}, {"replace", V_REPLACE}, {"words", V_WORDGAP}, @@ -155,6 +160,7 @@ static MNEM_TAB keyword_tab[] = { {"klatt", V_KLATT}, {"fast_test2", V_FAST}, {"speed", V_SPEED}, + {"dict_min", V_DICTMIN}, // these just set a value in langopts.param[] {"l_dieresis", 0x100+LOPT_DIERESES}, @@ -165,7 +171,8 @@ static MNEM_TAB keyword_tab[] = { {"l_sonorant_min", 0x100+LOPT_SONORANT_MIN}, {"l_length_mods", 0x100+LOPT_LENGTH_MODS}, {"apostrophe", 0x100+LOPT_APOSTROPHE}, - {NULL, 0} }; + {NULL, 0} +}; #define N_VOICE_VARIANTS 12 const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0}; @@ -186,6 +193,12 @@ static char *fgets_strip(char *buf, int size, FILE *f_in) if(fgets(buf,size,f_in) == NULL) return(NULL); + if(buf[0] == '#') + { + buf[0] = 0; + return(buf); + } + len = strlen(buf); while((--len > 0) && isspace(buf[len])) buf[len] = 0; @@ -259,9 +272,9 @@ void ReadTonePoints(char *string, int *tone_pts) tone_pts[ix] = -1; sscanf(string,"%d %d %d %d %d %d %d %d %d %d", - &tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3], - &tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7], - &tone_pts[8],&tone_pts[9]); + &tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3], + &tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7], + &tone_pts[8],&tone_pts[9]); } @@ -315,8 +328,7 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, const char*lea while(isspace(*p)) p++; strncpy0(vname,p,sizeof(vname)); } - else - if(memcmp(linebuf,"language",8)==0) + else if(memcmp(linebuf,"language",8)==0) { priority = DEFAULT_LANGUAGE_PRIORITY; vlanguage[0] = 0; @@ -333,13 +345,11 @@ static espeak_VOICE *ReadVoiceFile(FILE *f_in, const char *fname, const char*lea n_languages++; } } - else - if(memcmp(linebuf,"gender",6)==0) + else if(memcmp(linebuf,"gender",6)==0) { sscanf(&linebuf[6],"%s %d",vgender,&age); } - else - if(memcmp(linebuf,"variants",8)==0) + else if(memcmp(linebuf,"variants",8)==0) { sscanf(&linebuf[8],"%d",&n_variants); } @@ -386,8 +396,10 @@ void VoiceReset(int tone_only) // Set voice to the default values int pk; - static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; - static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; +// static unsigned char default_heights[N_PEAKS] = {140,128,120,110,90,90,128,128,128}; // changed for v.1.47 +// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; + static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version + static unsigned char default_widths[N_PEAKS] = {140,128,128,160,171,171,128,128,128}; static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; @@ -408,7 +420,7 @@ void VoiceReset(int tone_only) voice->n_harmonic_peaks = 5; voice->peak_shape = 0; voice->voicing = 64; - voice->consonant_amp = 100; + voice->consonant_amp = 85; // change to 85 for v.1.47 was 100 voice->consonant_ampv = 100; voice->samplerate = samplerate_native; memset(voice->klattv,0,sizeof(voice->klattv)); @@ -442,7 +454,7 @@ void VoiceReset(int tone_only) // Adjustment of harmonic amplitudes, steps of 8Hz // value of 128 means no change // memset(voice->tone_adjust,128,sizeof(voice->tone_adjust)); -SetToneAdjust(voice,tone_points); + SetToneAdjust(voice,tone_points); // default values of speed factors voice->speedf1 = 256; @@ -516,7 +528,7 @@ static int Read8Numbers(char *data_in,int *data) // Read 8 integer numbers memset(data, 0, 8+sizeof(int)); return(sscanf(data_in,"%d %d %d %d %d %d %d %d", - &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7])); + &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7])); } @@ -553,14 +565,16 @@ voice_t *LoadVoice(const char *vname, int control) char phonemes_name[40]; char option_name[40]; const char *language_type; - char buf[200]; + char buf[sizeof(path_home)+30]; char path_voices[sizeof(path_home)+12]; - char langname[4]; + int dict_min = 0; int stress_amps[8]; int stress_lengths[8]; int stress_add[8]; char names[8][40]; + char name2[80]; + const char *voice_dir; int pitch1; int pitch2; @@ -569,10 +583,14 @@ voice_t *LoadVoice(const char *vname, int control) static char voice_name[40]; // voice name for current_voice_selected static char voice_languages[100]; // list of languages and priorities for current_voice_selected - strcpy(voicename,vname); - if(voicename[0]==0) - strcpy(voicename,"default"); + // which directory to look for a named voice + static const char *voices_asia = + "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; + static const char *voices_europe = + "bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; + + strncpy0(voicename, vname, sizeof(voicename)); if(control & 0x10) { strcpy(buf,vname); @@ -581,25 +599,34 @@ voice_t *LoadVoice(const char *vname, int control) } else { + if(voicename[0]==0) + strcpy(voicename,"default"); + sprintf(path_voices,"%s%cvoices%c",path_home,PATHSEP,PATHSEP); - sprintf(buf,"%s%s",path_voices,voicename); + sprintf(buf,"%s%s",path_voices,voicename); // first, look in the main voices directory if(GetFileLength(buf) <= 0) { - // look for the voice in a sub-directory of the language name - langname[0] = voicename[0]; - langname[1] = voicename[1]; - langname[2] = 0; - sprintf(buf,"%s%s%c%s",path_voices,langname,PATHSEP,voicename); - - if(GetFileLength(buf) <= 0) + // then look in the appropriate subdirectory + if((voicename[0]=='m') && (voicename[1]=='b')) { - // look in "extra" sub-directory - sprintf(buf,"%sextra%c%s",path_voices,PATHSEP,voicename); + voice_dir = "mb"; // mbrola voices + } + else + { + sprintf(name2, "%s ", voicename); + if(strstr(voices_europe, voicename) != NULL) + voice_dir = "europe"; + else if(strstr(voices_asia, voicename) != NULL) + voice_dir = "asia"; + else + voice_dir = "other"; + + sprintf(buf,"%s%s%c%s", path_voices,voice_dir,PATHSEP,voicename); if(GetFileLength(buf) <= 0) { - // look in "test" sub-directory + // if not found, look in "test" sub-directory sprintf(buf,"%stest%c%s",path_voices,PATHSEP,voicename); } } @@ -668,48 +695,48 @@ voice_t *LoadVoice(const char *vname, int control) switch(key) { case V_LANGUAGE: + { + unsigned int len; + int priority; + + if(tone_only) + break; + + priority = DEFAULT_LANGUAGE_PRIORITY; + language_name[0] = 0; + + sscanf(p,"%s %d",language_name,&priority); + if(strcmp(language_name,"variant") == 0) + break; + + len = strlen(language_name) + 2; + // check for space in languages[] + if(len < (sizeof(voice_languages)-langix-1)) { - unsigned int len; - int priority; + voice_languages[langix] = priority; - if(tone_only) - break; - - priority = DEFAULT_LANGUAGE_PRIORITY; - language_name[0] = 0; - - sscanf(p,"%s %d",language_name,&priority); - if(strcmp(language_name,"variant") == 0) - break; - - len = strlen(language_name) + 2; - // check for space in languages[] - if(len < (sizeof(voice_languages)-langix-1)) - { - voice_languages[langix] = priority; - - strcpy(&voice_languages[langix+1],language_name); - langix += len; - } - - // only act on the first language line - if(language_set == 0) - { - language_type = strtok(language_name,"-"); - language_set = 1; - strcpy(translator_name,language_type); - strcpy(new_dictionary,language_type); - strcpy(phonemes_name,language_type); - SelectPhonemeTableName(phonemes_name); - - if(new_translator != NULL) - DeleteTranslator(new_translator); - - new_translator = SelectTranslator(translator_name); - langopts = &new_translator->langopts; - } + strcpy(&voice_languages[langix+1],language_name); + langix += len; } - break; + + // only act on the first language line + if(language_set == 0) + { + language_type = strtok(language_name,"-"); + language_set = 1; + strcpy(translator_name,language_type); + strcpy(new_dictionary,language_type); + strcpy(phonemes_name,language_type); + SelectPhonemeTableName(phonemes_name); + + if(new_translator != NULL) + DeleteTranslator(new_translator); + + new_translator = SelectTranslator(translator_name); + langopts = &new_translator->langopts; + } + } + break; case V_NAME: if(tone_only == 0) @@ -720,14 +747,14 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_GENDER: - { - int age = 0; - char vgender[80]; - sscanf(p,"%s %d",vgender,&age); - current_voice_selected.gender = LookupMnem(genders,vgender); - current_voice_selected.age = age; - } - break; + { + int age = 0; + char vgender[80]; + sscanf(p,"%s %d",vgender,&age); + current_voice_selected.gender = LookupMnem(genders,vgender); + current_voice_selected.age = age; + } + break; case V_TRANSLATOR: if(tone_only) break; @@ -735,7 +762,7 @@ voice_t *LoadVoice(const char *vname, int control) sscanf(p,"%s",translator_name); if(new_translator != NULL) - DeleteTranslator(new_translator); + DeleteTranslator(new_translator); new_translator = SelectTranslator(translator_name); langopts = &new_translator->langopts; @@ -754,16 +781,16 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_PITCH: - { - double factor; - // default is pitch 82 118 - n = sscanf(p,"%d %d",&pitch1,&pitch2); - voice->pitch_base = (pitch1 - 9) << 12; - voice->pitch_range = (pitch2 - pitch1) * 108; - factor = double(pitch1 - 82)/82; - voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch - } - break; + { + double factor; + // default is pitch 82 118 + n = sscanf(p,"%d %d",&pitch1,&pitch2); + voice->pitch_base = (pitch1 - 9) << 12; + voice->pitch_range = (pitch2 - pitch1) * 108; + factor = double(pitch1 - 82)/82; + voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch + } + break; case V_STRESSLENGTH: // stressLength stress_lengths_set = Read8Numbers(p,stress_lengths); @@ -799,14 +826,32 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_DICTRULES: // conditional dictionary rules and list entries + case V_NUMBERS: + case V_STRESSOPT: + // expect a list of numbers while(*p != 0) { while(isspace(*p)) p++; n = -1; - if(((n = atoi(p)) > 0) && (n < 32)) + if((n = atoi(p)) > 0) { p++; - conditional_rules |= (1 << n); + if(n < 32) + { + if(key==V_DICTRULES) + conditional_rules |= (1 << n); + else if(key==V_NUMBERS) + langopts->numbers |= (1 << n); + else if(key==V_STRESSOPT) + langopts->stress_flags |= (1 << n); + } + else + { + if((key==V_NUMBERS) && (n < 64)) + langopts->numbers |= (1 << (n-32)); + else + fprintf(stderr,"Bad option number %d\n", n); + } } while(isalnum(*p)) p++; } @@ -828,9 +873,9 @@ voice_t *LoadVoice(const char *vname, int control) case V_STRESSRULE: sscanf(p,"%d %d %d %d",&langopts->stress_rule, - &langopts->stress_flags, - &langopts->unstressed_wd1, - &langopts->unstressed_wd2); + &langopts->stress_flags, + &langopts->unstressed_wd1, + &langopts->unstressed_wd2); break; case V_CHARSET: @@ -838,10 +883,6 @@ voice_t *LoadVoice(const char *vname, int control) new_translator->charset_a0 = charsets[value]; break; - case V_NUMBERS: - sscanf(p,"%d %d",&langopts->numbers,&langopts->numbers2); - break; - case V_OPTION: value2 = 0; if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) @@ -885,12 +926,12 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_TONE: - { - int tone_data[12]; - ReadTonePoints(p,tone_data); - SetToneAdjust(voice,tone_data); - } - break; + { + int tone_data[12]; + ReadTonePoints(p,tone_data); + SetToneAdjust(voice,tone_data); + } + break; case V_VOICING: if(sscanf(p,"%d",&value)==1) @@ -898,16 +939,16 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_BREATH: - voice->breath[0] = Read8Numbers(p,&voice->breath[1]); - for(ix=1; ix<8; ix++) - { - if(ix % 2) - voice->breath[ix] = -voice->breath[ix]; - } + voice->breath[0] = Read8Numbers(p,&voice->breath[1]); + for(ix=1; ix<8; ix++) + { + if(ix % 2) + voice->breath[ix] = -voice->breath[ix]; + } break; case V_BREATHW: - voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]); + voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]); break; case V_CONSONANTS: @@ -919,20 +960,20 @@ voice_t *LoadVoice(const char *vname, int control) break; case V_MBROLA: - { - int srate = 16000; - char name[40]; - char phtrans[40]; + { + int srate = 16000; + char name[40]; + char phtrans[40]; - phtrans[0] = 0; - sscanf(p,"%s %s %d",name,phtrans,&srate); - if(LoadMbrolaTable(name,phtrans,srate) != EE_OK) - { - fprintf(stderr,"mbrola voice not found\n"); - } - voice->samplerate = srate; + phtrans[0] = 0; + sscanf(p,"%s %s %d",name,phtrans,&srate); + if(LoadMbrolaTable(name,phtrans,srate) != EE_OK) + { + fprintf(stderr,"mbrola voice not found\n"); } - break; + voice->samplerate = srate; + } + break; case V_KLATT: voice->klattv[0] = 1; // default source: IMPULSIVE @@ -945,6 +986,10 @@ voice_t *LoadVoice(const char *vname, int control) SetSpeed(3); break; + case V_DICTMIN: + sscanf(p,"%d",&dict_min); + break; + default: if((key & 0xff00) == 0x100) { @@ -987,6 +1032,7 @@ voice_t *LoadVoice(const char *vname, int control) } voice->phoneme_tab_ix = ix; new_translator->phoneme_tab_ix = ix; + new_translator->dict_min_size = dict_min; LoadDictionary(new_translator, new_dictionary, control & 4); if(dictionary_name[0]==0) return(NULL); // no dictionary loaded @@ -1011,6 +1057,7 @@ voice_t *LoadVoice(const char *vname, int control) translator = new_translator; } + // relative lengths of different stress syllables for(ix=0; ixname,voice->identifier)==0) + else if(strcmp(voice_spec->name,voice->identifier)==0) { score += 400; } } if(((voice_spec->gender == 1) || (voice_spec->gender == 2)) && - ((voice->gender == 1) || (voice->gender == 2))) + ((voice->gender == 1) || (voice->gender == 2))) { if(voice_spec->gender == voice->gender) score += 50; @@ -1365,8 +1411,7 @@ espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name2) { match_fname = ix; // matching identifier, use this if no matching name } - else - if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) + else if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) { match_fname2 = ix; } @@ -1463,8 +1508,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) gender = 0; if((voice_select2.gender == 2) || ((voice_select2.age > 0) && (voice_select2.age < 13))) gender = 2; - else - if(voice_select2.gender == 1) + else if(voice_select2.gender == 1) gender = 1; #define AGE_OLD 60 @@ -1595,8 +1639,8 @@ static void GetVoices(const char *path) } #else #ifdef PLATFORM_WINDOWS - WIN32_FIND_DATAA FindFileData; - HANDLE hFind = INVALID_HANDLE_VALUE; + WIN32_FIND_DATAA FindFileData; + HANDLE hFind = INVALID_HANDLE_VALUE; #undef UNICODE // we need FindFirstFileA() which takes an 8-bit c-string sprintf(fname,"%s\\*",path); @@ -1605,29 +1649,33 @@ static void GetVoices(const char *path) return; do { - sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName); + if(n_voices_list >= (N_VOICES_LIST-2)) + break; // voices list is full - ftype = GetFileLength(fname); - - if((ftype == -2) && (FindFileData.cFileName[0] != '.')) + if(FindFileData.cFileName[0] != '.') { - // a sub-sirectory - GetVoices(fname); - } - else - if(ftype > 0) - { - // a regular line, add it to the voices list - if((f_voice = fopen(fname,"r")) == NULL) - continue; + sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName); + ftype = GetFileLength(fname); - // pass voice file name within the voices directory - voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName); - fclose(f_voice); - - if(voice_data != NULL) + if(ftype == -2) { - voices_list[n_voices_list++] = voice_data; + // a sub-sirectory + GetVoices(fname); + } + else if(ftype > 0) + { + // a regular line, add it to the voices list + if((f_voice = fopen(fname,"r")) == NULL) + continue; + + // pass voice file name within the voices directory + voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName); + fclose(f_voice); + + if(voice_data != NULL) + { + voices_list[n_voices_list++] = voice_data; + } } } } while(FindNextFileA(hFind, &FindFileData) != 0); @@ -1648,17 +1696,19 @@ static void GetVoices(const char *path) break; // voices list is full } + if(ent->d_name[0] == '.') + continue; + sprintf(fname,"%s%c%s",path,PATHSEP,ent->d_name); ftype = GetFileLength(fname); - if((ftype == -2) && (ent->d_name[0] != '.')) + if(ftype == -2) { // a sub-sirectory GetVoices(fname); } - else - if(ftype > 0) + else if(ftype > 0) { // a regular line, add it to the voices list if((f_voice = fopen(fname,"r")) == NULL) @@ -1691,15 +1741,23 @@ static void GetVoices(const char *path) espeak_ERROR SetVoiceByName(const char *name) {//========================================= espeak_VOICE *v; + int ix; espeak_VOICE voice_selector; char *variant_name; static char buf[60]; strncpy0(buf,name,sizeof(buf)); + variant_name = ExtractVoiceVariantName(buf, 0, 1); + for(ix=0; ; ix++) + { + // convert voice name to lower case (ascii) + if((buf[ix] = tolower(buf[ix])) == 0) + break; + } + memset(&voice_selector,0,sizeof(voice_selector)); -// voice_selector.name = buf; voice_selector.name = (char *)name; // include variant name in voice stack ?? // first check for a voice with this filename @@ -1798,7 +1856,7 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) // sort the voices list qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), - (int (__cdecl *)(const void *,const void *))VoiceNameSorter); + (int (__cdecl *)(const void *,const void *))VoiceNameSorter); if(voice_spec) diff --git a/src/wave.cpp b/src/wave.cpp index b3d25992..b3e6593a 100644 --- a/src/wave.cpp +++ b/src/wave.cpp @@ -1195,7 +1195,7 @@ void *wave_test_get_write_buffer() // notdef USE_PORTAUDIO -int wave_init(int srate) {} +int wave_init(int srate) {return 1;} void* wave_open(const char* the_api) {return (void *)1;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} int wave_close(void* theHandler) {return 0;} diff --git a/src/wave_pulse.cpp b/src/wave_pulse.cpp index 85cab2d6..1bcb593a 100644 --- a/src/wave_pulse.cpp +++ b/src/wave_pulse.cpp @@ -870,7 +870,7 @@ void *wave_test_get_write_buffer() // notdef USE_PULSEAUDIO -int wave_init() {} +int wave_init(return 1;) {} void* wave_open(const char* the_api) {return (void *)1;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} int wave_close(void* theHandler) {return 0;} diff --git a/src/wave_sada.cpp b/src/wave_sada.cpp index 54295822..23d53c77 100644 --- a/src/wave_sada.cpp +++ b/src/wave_sada.cpp @@ -535,7 +535,7 @@ int wave_get_remaining_time(uint32_t sample, uint32_t* time) #else // notdef USE_SADA -void wave_init() {} +init wave_init() {return 1;} void* wave_open(const char* the_api) {return (void *)1;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} int wave_close(void* theHandler) {return 0;} diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 1f34cd22..32756be8 100644 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -244,7 +244,7 @@ static unsigned char wavemult[N_WAVEMULT] = { 105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14, 11, 8, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - + // set from y = pow(2,x) * 128, x=-1 to 1 unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { @@ -592,7 +592,7 @@ static PaError Pa_OpenDefaultStream2( PaStream** stream, hostApiOutputParameters.device = Pa_GetDefaultOutputDevice(); if( hostApiOutputParameters.device == paNoDevice ) - return paDeviceUnavailable; + return paDeviceUnavailable; hostApiOutputParameters.channelCount = outputChannelCount; hostApiOutputParameters.sampleFormat = sampleFormat; @@ -834,15 +834,6 @@ static void WavegenSetEcho(void) amp = embedded_value[EMBED_H]; delay = 130; } -#ifdef deleted - if(embedded_value[EMBED_T] > 0) - { - // announcing punctuation, add a small echo -// This seems unpopular - amp = embedded_value[EMBED_T] * 8; - delay = 60; - } -#endif if(delay == 0) amp = 0; @@ -854,7 +845,7 @@ static void WavegenSetEcho(void) if(amp > 20) echo_length = echo_head * 2; // perhaps allow 2 echo periods if the echo is loud. - // echo_amp units are 1/256ths of the amplitude of the original sound. + // echo_amp units are 1/256ths of the amplitude of the original sound. echo_amp = amp; // compensate (partially) for increase in amplitude due to echo general_amplitude = GetAmplitude(); @@ -1559,7 +1550,7 @@ static int SetWithRange0(int value, int max) static void SetPitchFormants() {//=========================== int ix; - int factor; + int factor = 256; int pitch_value; // adjust formants to give better results for a different voice pitch @@ -1570,11 +1561,13 @@ static void SetPitchFormants() { // only adjust if the pitch is higher than normal factor = 256 + (25 * (pitch_value - 50))/50; - for(ix=0; ix<=5; ix++) - { - wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; - } } + + for(ix=0; ix<=5; ix++) + { + wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; + } + factor = embedded_value[EMBED_T]*3; wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256; wvoice->height[1] = (wvoice->height2[1] * (256 - factor))/256; @@ -1755,7 +1748,7 @@ if(option_log_frames) fprintf(f_log,"%3dmS %3d %3d %4d %4d (%3d %3d %3d %3d) to %3d %3d %4d %4d (%3d %3d %3d %3d)\n",length*1000/samplerate, fr1->ffreq[0],fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3], fr1->fheight[0],fr1->fheight[1],fr1->fheight[2],fr1->fheight[3], fr2->ffreq[0],fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3], fr2->fheight[0],fr2->fheight[1],fr2->fheight[2],fr2->fheight[3] ); - + fclose(f_log); f_log=NULL; } @@ -2036,7 +2029,7 @@ static int SpeedUp(short *outbuf, int length_in, int length_out, int end_of_text { sonicSetSpeed(sonicSpeedupStream, sonicSpeed); } - + sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in); }