diff --git a/dictsource/de_list b/dictsource/de_list index c120992f..1d10a2a9 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -423,6 +423,7 @@ couch _^_EN cursor _^_EN debugger _^_EN dj _^_EN +download _^_EN email _^_EN enterprise _^_EN event _^_EN @@ -497,6 +498,7 @@ terminal _^_EN trip _^_EN tuner _^_EN unix _^_EN +update _^_EN venture _^_EN website _^_EN window _^_EN diff --git a/dictsource/en_list b/dictsource/en_list index f507c231..69d9788d 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -1426,6 +1426,7 @@ imperative Imp'Er@tIv imperfect Imp'3:fEkt impi $1 impinging Imp'IndZIN +implacable Impl'ak@b@L imprecise ImprIs'aIs impregnable Impr'Egn@b@L inanimate In'anIm@t @@ -1471,7 +1472,8 @@ interim $1 intermediate Int3m'i:di@t intern Int3:n $noun interrogatory $3 -inventory Inv@ntrI +inventory Inv@ntri +?3 inventory Inv@nto:ri interface $1 intermin Int'3:mIn // interminable intern $1 $onlys diff --git a/dictsource/en_rules b/dictsource/en_rules index 9badffd1..884e44f9 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -1402,7 +1402,8 @@ me) ch (a k mi) ch (a k chica (n SI2keI - ch (irA k + chi (rA kaI + _) chi (ropA kI2 a) ch (il k bra) ch k te) ch (K k diff --git a/dictsource/it_listx b/dictsource/it_listx index a30b04ee..2488e8cd 100644 --- a/dictsource/it_listx +++ b/dictsource/it_listx @@ -1078,7 +1078,7 @@ cortes $2 cortile $2 cortisol $3 cortocircuito kO@-*totSi@-*k'uito -cosa $2 +cosa $alt cosc $alt coscia $alt cosen $alt2 diff --git a/dictsource/it_rules b/dictsource/it_rules index e1652f5b..6cc802aa 100644 --- a/dictsource/it_rules +++ b/dictsource/it_rules @@ -8,7 +8,7 @@ // Y front vowels: e i (& accents) .L01 a à o ò ó u ù .L02 e é è - +.L03 b d g l m n r v // 's' is [z] before these .group a a a @@ -321,6 +321,7 @@ s s _) s s A) s (A z + s (L03 z l) s s p) s s @@ -377,6 +378,7 @@ .group z z ts A) zz ts: + A) z (A ts: _) z (i dz _) z (ì dz diff --git a/dictsource/kl_list b/dictsource/kl_list index dd5cd12e..8db1c6a8 100644 --- a/dictsource/kl_list +++ b/dictsource/kl_list @@ -2,42 +2,111 @@ // This file is UTF8 encoded // Spelling to phoneme rules for Greenlandic -b be -c se -d de -f ef -g ge +b bE +c sE +d dE +f Ef +g ji h ha -j je +j jE k ka -l el -m em -n en -p pe -q qa: -r er -s es -t te -v ve -w we +l El +m Em +n En +p pE +q qa +r Er +s Es +t tE +v vE +w wE x iks -z ze +z zE // y // æ // ø // å -_0 n'u:lu -_1 at'a:seq -_2 m'arluk -_3 p'iNasut -_4 s'isamat -_5 t'al#imat -_6 arf'inil#it -_7 arfineqm'arluk -_8 arfineqp'iNasut -_9 quliNil'uat -_10 q'uilit +// Native numbers 0-10 +_0n n'u:lu +_1n at'a:sEq +_2n m'arluk +_3n p'iNasut +_4n s'isamat +_5n t'al#imat +_6n arf'inil#it +_7n arfinEqm'arluk +_8n arfinEqp'iNasut +_9n quliNil'uat +_10n q'ulit + +// Danish numbers +_0 'nOl +_1 'en +_2 t'o +_3 tR'e +_4 f'iV +_5 f'Em +_6 s'EQs +_7 s'yw +_8 'O:d@ +_9 n'i +_10 t'i +_11 'Elv@ +_12 t'Vl +_13 tR'&d@-n +_14 fj'ord@-n +_15 f'emt@-n +_16 s'ajsd@-n +_17 s'Wd@-n +_18 '&d@-n +_19 n'ed@-n +_2X t'y:w +_3X tR'&Dv@ +_4X f'W:V +_5X h&l't*Es +_6X t*'Es +_7X h&lfj'&rs +_8X f'irs +_9X h&lf'Ems +_0C h'un*@:D +_1C ed||h'unr@:D +_0M1 t'u:s@-n +_1M1 ed||t'u:s@-n +_1M2 'e:n||milij'o:n +_0M2 milij'o:nV +_1M3 'e:n||milij'a:d +_0M3 milij'a:d3 +_1M4 'e:n||bilij'o:n +_0M4 bilij'o:n3 + +_0and V +_dpt kom:a_ + +// ordinals are followed by a dot in Danish +_ord 3 + +// exceptions for ordinals +_1o fWrsd3 +_2o &n@n +_3o trEdj3 +_4o fjeV +_5o fEmt3 +_6o sjEd3 +_7o syvn3 +_8o Vtn3 +_9o ni@n3 +_10o ti@n3 +_11o Elfd3 +_12o tVlfd3 + +_2Xo t'yv@n@ // 25. +_3Xo tr'&ft@ //36. +_4Xo fWV'tyv@n@ // 42. +_5Xo h<*'Esenstyv@n@ // 52. +_6Xo tr'Esenstyv@n@ // 62. +_7Xo h&lfj'&rsenstyv@n@ // 72. +_8Xo firsenstyv@n@ // 82. +_9Xo h&lf'Emsenstyv@n@ // 95. -_dpt kom:a diff --git a/dictsource/kl_rules b/dictsource/kl_rules index 30611c7e..52210281 100644 --- a/dictsource/kl_rules +++ b/dictsource/kl_rules @@ -3,10 +3,25 @@ // Spelling to phoneme rules for Greenlandic +// don't stress a vowel before these consonant clusters +.L01 ng nng + + .group a a a - aa a: - ai (_ aI + a (CC 'a + a (L01 a + + ak (_ &g + ap (_ &p + at (_ &t + + aa a: + aar a: + aaq a: + + ai (_ aI + .group b @@ -24,8 +39,11 @@ .group e - e e - ee e: + e E + e (CC 'E // a vowel before a consonant cluster is stressed + e (L01 E // ... except for these consonants + + ee E: .group f @@ -34,8 +52,8 @@ .group g - g Q - gg C: + g j + gg j: .group h @@ -45,6 +63,8 @@ .group i i i + i (CC 'i + i (L01 i ii i: @@ -54,8 +74,8 @@ .group k - k k - kk k: + k g + kk g: .group l @@ -70,6 +90,7 @@ .group n n n + na na nn n: ng N nng N: @@ -77,23 +98,25 @@ .group o o o + o (CC 'o + o (L01 o oo o: .group p - p p - p p: + p b + p b: + - .group q q q - qq q: - + qq qq + .group r r r rr X: - + rl rl# .group s s s @@ -101,33 +124,39 @@ .group t - t t - tt t: - tl tl# - ts ts + t d + ti ti + te te + tt d + tl tl# + ts ts .group u - u u - uu u: + u u + u (CC 'u + u (L01 u + uu u: .group v - v v - vv v: + v v + vv v: .group w - w w + w w .group x - x ks + x ks .group y - y j + y j K) y (K i // not before or after a vowel + K) y (CC 'i + K) y (L01 i .group z @@ -149,4 +178,3 @@ .group $ d'olar - \ No newline at end of file diff --git a/dictsource/si_list b/dictsource/si_list index 0ed0b11b..f4b55816 100644 --- a/dictsource/si_list +++ b/dictsource/si_list @@ -1,65 +1,141 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Sinhala - - -// speak Latin letters as English -a e:j -b bi: -c si: -d di: -e i: -f Ef -g dZi: -h e:tS -i a:j -j dZe:j -k ke:j -l El -m Em -n En -o o: -p pi: -q kju: -r a:r -s Es -t thi: -u ju: -v vi: -w dabalju: -x Eks -y wa:j -z zEd - - -// symbols -% sij@j@t.@ $max3 -* &st.@risk@j@ $max3 - -_; t'itk,oma:v@ - -// numbers -_1 ek@ -_2 dek@ -_3 tu:n@ -_4 hat@r@ -_5 pah@ -_6 haj@ -_7 hat@ -_8 at.@ -_9 nav@j@ -_10 dah@j@ -_11 ekol.@h@ -_12 dol.@h@ -_13 dah@tun@ -_14 dah@hat@r@ -_15 pah@l.ov@ -_16 dah@saj@ -_17 dah@hat@ -_18 dah@at.@ -_19 dah@nav@j@ -_2X viss@ -_0C sij@j@ -_0M1 dah@s@ -_0M2 milij@n@j@ -_0M3 bilij@n@j@ +// Sinhala Language. +// This SI_list file is written by Him Prasad Gautam [Kathmandu, nepal] +// This file is UTF-8 encoded. + +// letter groups: +// A - Alphabetical and Symbolic Vowels: +// 0x0D85~0x0D16, 0x0DCA~0x0DF3 +// B - Symbolic Vowels and Halkirima +// 0x0DCA~0x0DF3 +// C - Consonants: +// 0x0D9A~0x0DC2 + +// speak Latin letters as English + + +// numbers +_0 b'induv@ +_1 'ek@ +_2 d'ek@ +_3 t'un@ +_4 h'at@r@ +_5 p'ah@ +_6 h'aj@ +_7 h'at@ +_8 'at.@ +_9 n'av@j@ + +_1d 'ekki // numbers used in a decimal fraction +_2d d'ekki +_3d t'unni + +_10 d'ah@j@ +_11 'ekol,@h@ +_12 d'ol@h@ +_13 d'ah@t,un@ +_14 d'ah@h,@t@r@ +_15 p'ah@l.,ov@ +_16 d'ah@s,@j@ +_17 d'ah@h,@t@ +_18 d'ah@,@t.@ +_19 d'ah@n,@v@j@ +_2X v'isi +_20 v'iss@ +_30 t'ih@ +_31 t'isek@ +_32 t'isdek@ +_33 t'istun@ +_34 t'ish@t,@r@ +_35 t'isp@h@ +_36 t'ish@j@ +_37 t'ish@t@ +_38 t'is@t.@ +_39 t'isn@v,@j@ +_40 h'at@l,ih@ +_41 h'at@l,is'ek@ +_42 h'at@l,isdek@ +_43 h'at@l,istun@ +_44 h'at@l,ish@t,@r@ +_45 h'at@l,isp@h@ +_46 h'at@l,ish@j@ +_47 h'at@l,ish@t@ +_48 h'at@l,is@t.@ +_49 h'at@l,isn@v,@j@ +_5X p'an@s +_50 p'an@h@ +_6X h'&t.@ +_60 h'&t.@ +_7X h'&tt&: +_70 h'&tt&:v@ +_8X 'asu: +_80 'asu:v@ +_9X 'anu: +_90 'anu:v@ + +_1C s'ij@j@ +_0C s'ij@ +_0M1 d'ah@s +_0M1x 'ah@s // exact thousands +_0M2 l'akS +_0M2x l'akS@j@ +_0M3 k'o:t.i +_0M3x k'o:t.ij@ +_0M4 v'il'ij@n //what in sinhala? +_dpt d'aS@m#@ + +// Consonants + +ක k@ +ඛ kh@ +ග g@ +ඝ gh@ +ඞ N@ +ඟ N#g@ +ච tS@ +ඡ tSh@ +ජ dZ@ +ඣ dZh@ +ඤ n^@ +ඥ gn@ +ඦ n^#dZ@ +ට t.@ +ඨ t.h@ +ඩ d.@ +ඪ d.h@ +ණ n.@ +ඬ n.#d.@ +ත t@ +ථ th@ +ද d@ +ධ dh@ +න n@ +ඳ n#d@ +ප p@ +ඵ ph@ +බ b@ +භ bh@ +ම m@ +ඹ m#b@ +ය j@ +ර r@ +ල l@ +ව w@ +ශ S@ +ෂ S@ +ස s@ +හ h@ +ළ l.@ +ෆ f@ + +// symbols +_. t'it@ +_, k'oma:v@ +? pr'a:Sna:rt,@j@ +! v'iSm#@j,a:rt@j@ +_“ 'udrut,@pa:t.,@a:r,@mb@j@ +_” 'udhrut,@pa:t.h,@@w,@s.a:n,@j@ +_: t'itkom,a:v@ +_; d'etit@ +$ do:l.ar $max3 +% sij@j@t.@ $max3 +* &st.@risk@j@ $max3 diff --git a/dictsource/si_rules b/dictsource/si_rules index 56e98d76..a27479fe 100644 --- a/dictsource/si_rules +++ b/dictsource/si_rules @@ -1,270 +1,327 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Sinhala - -// A means vowel letters (not vowel signs) -// B means a combining vowel sign or a virama - - -.group ක - ක ka - ක (B k - -.group ඛ - ඛ ka - ඛ (B k - -.group ග - ග ga - ග (B g - -.group ඝ - ඝ ga - ඝ (B g - -.group ඞ - ඞ Na - ඞ (B N - -.group ඟ - ඟ N#ga - ඟ (B N#g - -.group ච - ච tSa - ච (B tS - -.group ඡ - ඡ tSa - ඡ (B tS - -.group ජ - ජ dZa - ජ (B dZ - -.group ඣ - ඣ dZa - ඣ (B dZh - -.group ඤ - ඤ n^a - ඤ (B n^ - -.group ඥ - ඥ gna - ඥ (B gn - -.group ඦ - ඦ n^#dZa - ඦ (B n^#dZ - -.group ට - ට t.a - ට (B t. - -.group ඨ - ඨ t.a - ඨ (B t. - -.group ඩ - ඩ d.a - ඩ (B d. - -.group ඪ - ඪ d.a - ඪ (B d. - -.group ණ - ණ n.a - ණ (B n. - -.group ඬ - ඬ n.#d.a - ඬ (B n.#d. - - -.group ත - ත ta - ත (B t - -.group ථ - ථ ta - ථ (B t - -.group ද - ද da - ද (B d - -.group ධ - ධ da - ධ (B d - -.group න - න na - න (B n - -.group ඳ - ඳ n#da - ඳ (B n#d - -.group ප - ප pa - ප (B p - -.group ඵ - ඵ pa - ඵ (B p - -.group බ - බ ba - බ (B b - -.group භ - භ ba - භ (B b - -.group ම - ම ma - ම (B m - -.group ඹ - ඹ m#ba - ඹ (B m#b - -.group ය - ය ja - ය (B j - -.group ර - ර ra - ර (B r - -.group ල - ල la - ල (B l - -.group ව - ව va - ව (B v - -.group ශ - ශ Sa - ශ (B S - -.group ෂ - ෂ Sa - ෂ (B S - -.group ස - ස sa - ස (B s - -.group හ - හ ha - හ (B h - -.group ළ - ළ l.a - ළ (B l. - -.group ෆ - ෆ fa - ෆ (B f - - -.group අ - අ a - -.group ආ - ආ a: - -.group ඇ - ඇ & - -.group ඈ - ඈ &: - -.group ඉ - ඉ i - -.group ඊ - ඊ i: - -.group උ - උ u - -.group ඌ - ඌ u: - -.group ඍ - ඍ ru - -.group ඎ - ඎ ru: - -.group ඏ - ඏ li - -.group ඐ - ඐ li: - -.group එ - එ e - -.group ඒ - ඒ e: - -.group ඓ - ඓ aI - -.group ඔ - ඔ o - -.group ඕ - ඕ o: - -.group ඖ - ඖ aU - -.group 0xe0b6 // characters which start with UTF-8 bytes: [e0 b6] - ං m // anusvaraya - ඃ n // visargaya - - -.group 0xe0b7 // characters which start with UTF-8 bytes: [e0 b7] - ා a: - ැ & - ෑ &: - ි i - ී i: - ු u - ූ u: - ෘ ru - ෙ e - ේ e: - ෛ aI - ො o - ෝ o: - ෞ aU - ෟ li - ෲ ru: - ෳ li: - - ් // hal kirima (virima) - - -.group 0xe0a4 // devanagari - 0xe0a4 _^_HI // switch to hindi voice for devanagari characters -.group 0xe0a5 // devanagari - 0xe0a5 _^_HI - -.group 0xe0ae // Tamil - 0xe0ae _^_TA // switch to Tamil voice for Tamil characters -.group 0xe0af // Tamil - 0xe0af _^_TA - - -.group - $ do:l.ar - - +// Sinhala Language. +// This SI_rules file is written by Him Prasad Gautam [Kathmandu, nepal] +// This file is UTF-8 encoded. + +// letter groups: +// A - Alphabetical and Symbolic Vowels: +// 0x0D85~0x0D16, 0x0DCA~0x0DF3 +// B - Symbolic Vowels and Halkirima +// 0x0DCA~0x0DF3 +// C - Consonants: +// 0x0D9A~0x0DC2 + +// speak Latin letters as English + + + +.group ක + ක ka + ක (B k + +.group ඛ + ඛ kha + ඛ (B kh + +.group ග + ග ga + ග (B g + +.group ඝ + ඝ gha + ඝ (B gh + +.group ඞ + ඞ Na + ඞ (B N + +.group ඟ + ඟ N#ga + ඟ (B N#g + +.group ච + ච tSa + ච (B tS + +.group ඡ + ඡ tSha + ඡ (B tSh + +.group ජ + ජ dZa + ජ (B dZ + +.group ඣ + ඣ dZha + ඣ (B dZh + +.group ඤ + ඤ n^a + ඤ (B n^ + +.group ඥ + ඥ gna + ඥ (B gn + +.group ඦ + ඦ n^#dZa + ඦ (B n^#dZ + +.group ට + ට t.a + ට (B t. + +.group ඨ + ඨ t.ha + ඨ (B t.h + +.group ඩ + ඩ d.a + ඩ (B d. + +.group ඪ + ඪ d.a + ඪ (B d. + +.group ණ + ණ n.a + ණ (B n. + +.group ඬ + ඬ n.#d.a + ඬ (B n.#d. + +.group ත + ත ta + ත (B t + +.group ථ + ථ tha + ථ (B th + +.group ද + ද da + ද (B d + +.group ධ + ධ dha + ධ (B dh + +.group න + න na + න (B n + +.group ඳ + ඳ n#da + ඳ (B n#d + +.group ප + ප pa + ප (B p + +.group ඵ + ඵ pha + ඵ (B ph + +.group බ + බ ba + බ (B b + +.group භ + භ bha + භ (B bh + +.group ම + ම ma + ම (B m + +.group ඹ + ඹ m#ba + ඹ (B m#b + +.group ය + ය ja + ය (B j + +.group ර + ර ra + ර (B r + +.group ල + ල la + ල (B l + +.group ව + ව wa + ව (B w + +.group ශ + ශ sa + ශ (B s + +.group ෂ + ෂ Sa + ෂ (B S + +.group ස + ස s.a + ස (B s. + +.group හ + හ ha + හ (B h + +.group ළ + ළ l.a + ළ (B l. + +.group ෆ + ෆ fa + ෆ (B f + +// The Vowel Alphabets + +.group අ + අ a + +.group ආ + ආ a: + +.group ඇ + ඇ & + +.group ඈ + ඈ &: + +.group ඉ + ඉ i + +.group ඊ + ඊ i: + +.group උ + උ u + +.group ඌ + ඌ u: + +.group ඍ + ඍ ru + +.group ඎ + ඎ ru: + +.group ඏ + ඏ li + +.group ඐ + ඐ li: + +.group එ + එ e + +.group ඒ + ඒ e: + +.group ඓ + ඓ aI + +.group ඔ + ඔ o + +.group ඕ + ඕ o: + +.group ඖ + ඖ aU + + + +.group ං // anusvaray@ + ං 'anus.w,a:r@j@ + A) ං m + C) ං m + +.group ඃ // visargaya + ඃ w'is.@rg,@j@ + A) ඃ n + C) ඃ n + +// The Vowelic Symbols + +.group ා + ා '&l@p,ill@ + C) ා a: + +.group ැ + ැ '&d@j@ + C) ැ & + +.group ෑ + ෑ d'i:rg@,&d@j@ + C) ෑ &: + +.group ි + ි 'ispill@ + C) ි i + +.group ී + ී d'i:rg@,ispill@ + C) ී i: + +.group ු + ු p'a:pill@ + C) ු u + +.group ූ + ූ d'i:rg@p,a:pill@ + C) ූ u: + +.group ෘ + ෘ g'&t.@p,ill@ + C) ෘ ru + +.group ෙ + ෙ k'ombuv@ + C) ෙ e + + +.group ෛ + ෛ k'ombud,ek@ + C) ෛ aI + +.group ෞ + ෞ g'ajan,ukitt@ + C) ෞ aU + + +.group 0xe0b7 // More vowelic symbols b7] + + ේ e: + ො o + ෝ o: + ෟ li + ෲ ru: + ෳ li: + + +.group ් + ් halk'ir'im#@ // Halkirima + C) ් + + +.group + $ do:l.ar + + + + +.group 0xe0a4 // devanagari + 0xe0a4 _^_NE // Nepali voice +.group 0xe0a5 // devanagari + 0xe0a5 _^_NE + +.group 0xe0ae // Tamil + 0xe0ae _^_TA // Tamil voice +.group 0xe0af // Tamil + 0xe0af _^_TA + diff --git a/dictsource/ta_list b/dictsource/ta_list index 2936a78c..509e757b 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -375,6 +375,7 @@ tamil தமிழ் $text பூந்தி $alt பாவிக்க $alt பார்ல $alt +பாட்டனி $alt // initial த as [d] @@ -534,8 +535,7 @@ tamil தமிழ் $text // p as [f] போன் fo:n போனில் fo:nil -பைல் faIl -பைலை faIlaI +//பைலை faIlaI பாதர் fa:dVr பாதரிடம் fa:dVrid.Vm பாதருடன் fa:dVrUd.Vn diff --git a/dictsource/ta_rules b/dictsource/ta_rules index d8c59a82..de1d7bf7 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -95,7 +95,7 @@ .L19 தம்பி தங்க // words after கோரப் [go:rVb] -.L20 பல் பற் போர போர +.L20 பல் பற் போர போர பசி // words before பாவ+ .L21 நேய ராக சகோதர சாந்த சிநேக சினேக முக முகத்தின் ராகங்களின் ராகத்தின் சம சமமான சமமாக சமநிலை @@ -113,7 +113,7 @@ .L25 நடன டான்ஸ நாட்டிய // words after கேஸ் -.L26 சிலிண்டர ஸ்டவ் கனெக் +.L26 சிலிண்டர ஸ்டவ் கனெக் அடுப்ப // consonants @@ -152,6 +152,7 @@ _) க (ங்குலி gV _) க (ங்கூலி gV _) க (ங்கை gV + _) க (ங்கோத gV _) க (ஞ்சா gV _) க (டகட gV _) க (டத்தில gV @@ -160,6 +161,7 @@ _) க (டப்பாரை gV _) க (டிகார gV _) க (டோத்கஜ gV + _) க (ட்காரி gV _) க (ணபதி gV _) க (ணீர gV _) க (ணே gV @@ -217,6 +219,7 @@ _) க (வுனை gV _) க (வுன்கள gV _) க (வுர gV + _) காங்டாக் ga:Nt.a:k _) காச (ியாபாத ga:z _) க (ாண்டாமிருக g _) க (ாண்டீப g @@ -255,6 +258,7 @@ _) கி (ரய k _) கி (ரவுண்ட g _) கி (ரஹ g + _) கி (ராL04 k _) கிராஃபைட gra:faIt.V# _) கி (ராக்கா k _) கி (ராக்கி g @@ -292,6 +296,7 @@ _) க (ிருஹஸ்தர g _) கி (ரேக்க g _) கி (ரேய k + _) கி (ரை k _) கி (ரைண்டர g _) கி (ரௌண்ட g _) க (ிர்ரெ g @@ -357,7 +362,11 @@ _மன்மதக்) க (ுகை g _) க (ுண்டம k _) க (ுண்டல k _) குண்டாந்த (டி gun.d.a:ntV + _) க (ுண்டானில k + _) க (ுண்டானை k + _) க (ுண்டான் k _) க (ுண்டி k + _) க (ுண்டின g _) குண்ட (ூர gun.t.V# _) க (ுதிக் g _) க (ுதிச் g @@ -388,10 +397,12 @@ _மன்மதக்) க (ுகை g _) க (ுருநா g _) க (ுருபகவான g _) குருப (த்தினி gurupV + _) க (ுருபர g _) குருப (ாத gurup _) குருப (ீட gurup _) குருப (ூ gurup _) க (ுருபூஜை g + _) குருப்பி (ரசாத gurupp _) க (ுருப்பெயர g _) க (ுருமார g _) க (ுருமூர்த்தி g @@ -417,6 +428,7 @@ _மன்மதக்) க (ுகை g _) குவ (ாலிபிகேஷன kw _) கு (வாலியர g _) க (ுஸ்தி g + _) க (ுஹ g _) க (ூகிள g _) க (ூகுள g _) க (ூடலூர g @@ -492,6 +504,7 @@ _மன்மதக்) க (ுகை g _) க (ோரத்தால g _) க (ோரத்தை g _) க (ோரப்_L20 g + _) க (ோரப்பசி g _) க (ோரப்பற் g _) க (ோரப்பல் g _) க (ோரப்போர g @@ -525,6 +538,7 @@ _மன்மதக்) க (ுகை g //endsort //sort + _கோபி) க kV# _ஸ்டா) க kV# _ஜமாய்) க kV# @@ -682,10 +696,15 @@ _தொன்ம) க (ால k மன்னார்) கு (டி ku2 நற்) க (ுண g _சற்) க (ுண g + _நாற்) க (ுண g + _கற்) க (ுண்டில g + _கற்) க (ுண்டு g + _கற்) க (ுண்டை g ஏறிக்) க (ுதி g க (ுமரன k _கண்ணியா) க (ுமரி k க (ுமார k + _சு) க (ுமார g _டா) குமெண்ட kUmen.tV# அழு) க (ுரல k _மெர்) க (ுரி k @@ -704,6 +723,7 @@ _மன்னர்) க (ுல k _டிரா) க (ுலா k _ட்ரா) க (ுலா k _கங்) க (ுலி g + _கை) க (ுலு k _) குல்க (ந்த gulkV _மெரு) க (ூட்ட g _தயை) க (ூர k @@ -756,7 +776,6 @@ _விவே) க் (_ k _வர்) க்க ggV# _சொர்) க்க ggV# _ஸ்வர்) க்க ggV# -_தீர்) க்க (_சுமங்கலி ggV _கை) க்க (டிகார kgV L03) க்க (ண்ட ggV _துணை) க்க (ண்ட ggV @@ -976,6 +995,7 @@ _தணிகா) ச (ல tSV _ரீ) ச (ார்ஜ tS _டிஸ்) ச (ார்ஜ tS _) ச (ார்ஜை tS + _மொ) ச (ார்ட z _) ச (ார்மினார tS _) ச (ார்லஸ tS _) ச (ார்லி tS @@ -1021,6 +1041,7 @@ _தணிகா) ச (ல tSV _) ச (ிப்பு tS _) ச (ிப்பை tS _) ச (ிப்ஸ tS + _) ச (ிம்னி tS _மலே) ச (ிய s. இந்தோனே) ச (ிய s. _பக்தி_) சிரத் (தை srVd @@ -1171,6 +1192,7 @@ _மங்களே) சு (வர s அ) ஜ (ாருதீன z _நா) ஜ (ி z _) ஜ (ியா z + _) ஜ (ீரோ z _) ஜ (ுல்ஃபி z _) ஜ (ுல்பி z _) ஜு (வால dZ @@ -1254,6 +1276,7 @@ _ஷிஃப்) ட t.V# இண்) ட (ர் t.V _) டர்பண்ட (ைன t.VrpVn.t. எண்) டர்பி (ரைL04 t.Vrp + _) ட (ர்பைன t.V _மெண்) ட (ல t.V _) ட (வர t.V _) ட (வல t.V @@ -1263,6 +1286,7 @@ _ஷிஃப்) ட t.V# அல்) ட (ா t. உல்) ட (ா t. _மால்) ட (ா t. + _டெல்) ட (ா t. _) டாக் (_ t.a:k _) ட (ாக்க t. // talkies _) டாக்குமெண்ட d.a:kkUmen.t.V# @@ -1341,6 +1365,7 @@ _செண்) டிமெண்ட t.imen.t.V# _) டி (ராமில t. _) டி (ராமை t. _) டி (ராம் t. + _) டி (ராய d. _) டி (ராயிங் d. கொலஸ்) டி (ரால _|t. _) டி (ராலி t. @@ -1352,6 +1377,7 @@ _செண்) டிமெண்ட t.imen.t.V# _) டி (ரிங்க் d. _) டிரிப் t.rip _) டி (ரிம் t. + _) டி (ரில d. _) டி (ரில்லியன t. _) டிரீட் t.ri:t. _) டி (ரெண் t. @@ -1403,6 +1429,7 @@ _ப்ளஸ்_) டூ t.u: _) ட (ெசோ t. _) ட (ெண்டர t. _) ட (ெண்டுல்கர t. + _) டெண்ட் t.en.t. _) டென்ச (ன t.ens.V _) டென்டுல்க (ர t.ent.UlkV _) ட (ென்னிஸ t. @@ -1411,6 +1438,7 @@ _லான்_) ட (ென்னிஸ t. _) ட (ென்ஷன t. _) டெம்ப (ர t.empV _) டெம்ப (ோ t.emp + _) டெம்ப்லேட் t.emple:t. _) ட (ெய்லர t. _) ட (ெர t. _) டெலஸ்கோப் t.elVsko:p @@ -1558,6 +1586,7 @@ _நடுரோ) ட் (ல t. // exceptions, த as [d] //sort + _) த (L04ா dV _) த (L08னா d _) த (கதக dV @@ -1644,6 +1673,7 @@ _நடுரோ) ட் (ல t. _) த (ரிசி dV _) தரித்த (ிர_ dVridd _) தரித்த (ிரத்த dVridd + _) தரித்த (ிரன dVridd _) த (ரித்திரம dV _) தரித்த (ிரம் dVridd _) த (ருமங் dV @@ -1801,6 +1831,7 @@ _அகாலி_) த (ள dV _) த (ீரரை d _) த (ீர்க d _) த (ீர்க்க t +_) தீர்க்க (_சுமங்கலி dirggV _) தீர்க்க (தரிச di:rggV _) தீர்க்க (த்துடன di:rggV# _) த (ீர்க்கமா d @@ -1976,6 +2007,7 @@ _பிரசார்_பார) த (ி t _ஜோ) திக (ா tik _கார்) திக் tik சட்ட) த (ிட்ட t + _நி) த (ின t எ) தியோப (ிய tijo:p எ) த (ியோப்பிய t _பிர) த (ீ t @@ -1987,8 +2019,14 @@ _பிரசார்_பார) த (ி t வீண்) த (ேவை t _நி) த (ேஷ t _நிவேதி) த (ை t + L03து) த (ொட t வீண்) த (ொல்லை t _தான்) த (ோன்ற t + _சந்) த (ோஷிட t + _சந்) த (ோஷின t + _சந்) த (ோஷு t + _சந்) த (ோஷை t + _சந்) த (ோஷ்_ t _சோவிய) த் t அம்பே) த்க tkV# _வா) த் (சல்ய t @@ -2023,6 +2061,7 @@ _பரிவர்) த்த (ன ddV சில) த்த (ினங் dd பல) த்த (ினங் dd வர்) த்த (ினி dd +_மL06ிஷாசுரமர்) த்த (ினி dd L03) த்த (ினி+ tt ம) த்த (ிய dd வா) த்த (ிய dd @@ -2046,6 +2085,7 @@ L03வ்வு) த்த (ியோக dd _சூ) த்த (ிரரி dd _சூ) த்த (ிரர் dd ஆதி) த்தி (ராவிட dd + _சேஷா) த்த (ிரி dd _வை) த்தீசு (வ ddi:s _வை) த்த (ீஸ்வ dd ராஜ) த்து (ரோக dd @@ -2216,6 +2256,7 @@ _சொந்த_) ப (ந்த bV _) ப (னாரச bV _) ப (னாரஸ bV _) ப (னியன bV + _) ப (ன்சல bV _) ப (ன்னாரி bV _டீயும்_) ப (ன்னும்_ bV _) ப (ன்னும்_டீயும் bV @@ -2225,6 +2266,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (ப்ளிமாஸ bV _) ப (ம்பர bV _) ப (ம்பாய bV + _) ப (ய_உணர் bV _) ப (யங் bV _) ப (யங்கர bV _) ப (யத் bV @@ -2315,6 +2357,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (லஹீன bV _) பலாத்க (ார bVla:dk _) ப (லிகடா bV + _) ப (லிகள bV _) ப (லிகொ bV _) ப (லிக்கடா bV _) ப (லிக்குச் bV @@ -2333,6 +2376,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (ளு bV _) ப (வநகர bV _) ப (வன bV + _) ப (வன்குமார pV _) ப (வாணி bV _) ப (வானி bV _) பவுண்ட (ன faUn.t.V @@ -2374,6 +2418,7 @@ _டெட்_) ப (ாடி b _) ப (ாடி_பில்டிங் b _) ப (ாடிக்கு b _) ப (ாடியை b + _) ப (ாட்டனிய b _) பா (ட்டரி be: _) ப (ாட்டலியன b _) பா (ட்டிங் be: @@ -2566,6 +2611,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ிங்கர்_ f _) ப (ிசிக்ஸ f _) ப (ிசினஸ b + _) ப (ிசினெஸ b _) ப (ிசிய b _) ப (ிஜிலி b _) ப (ிடில f @@ -2648,6 +2694,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரயோஜன p _) பி (ரலய p _) பி (ரளய p + _) பி (ரவகி p _) பி (ரவாக p _) பி (ரவீண p _) பி (ரவீன p @@ -2747,6 +2794,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரெயில b _) பி (ரெய்ல b _) பி (ரெஷ் f + _) பி (ரெஸ p _) பி (ரே p _) பி (ரேக்க b _) பிரேச (ில bre:z @@ -2847,6 +2895,7 @@ _பெனசீர்_) ப (ுட்டோ b _) புத்த (ம்_புதிய puttV _) புத்த (ம்_புது puttV _) புத்த (ரிசி puttV + _) புத்த (ழக puttV _) ப (ுத்திக் b _) ப (ுத்திசாலி b _) ப (ுத்திய b @@ -2932,9 +2981,12 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ெந்தகோஸ்த b _) ப (ெனசீர b _) பெனாச (ீர bena:z + _) ப (ெனாமி b + _) ப (ென்னட் b _) பெப்ப (ே bebb _) ப (ெப்ரவரி f _) ப (ெயில f + _) பெரோஸ fero:zV# _) பெர்ட் (ரண்ட bert. _) ப (ெர்த் b _) ப (ெர்னாட்ஷா b @@ -2955,9 +3007,11 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ேச்சிலர b _) ப (ேச்சுலர b _) ப (ேஜார b + _) ப (ேட்ஜ b _) ப (ேட்டரி b _) ப (ேட்டா b _) ப (ேட்டிங் b + _) ப (ேட்ஸ்மேன b _) ப (ேதங் b _) ப (ேதமி b _) ப (ேதமு b @@ -2992,8 +3046,8 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ைரன b _) ப (ைரவ b _) ப (ைராகி b - _) ப (ைலில f - _) ப (ைலு f + _) ப (ைல f + _) ப (ைலட் p _) ப (ொக்கே b _) ப (ொம்மன b _) ப (ொம்மனாட்டி p @@ -3041,9 +3095,11 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோனியாக b _) ப (ோனியை b _) ப (ோனில f + _) ப (ோனிலும் f _) ப (ோனுக்க f _) ப (ோனுடைய f _) ப (ோனுல f + _) ப (ோனை f _) ப (ோன்கள f _) ப (ோன்ஸ்லே b _) போப (ால bo:p @@ -3055,6 +3111,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோரும்_அடி b _) ப (ோர்_அடி b _) ப (ோர்ஜரி f + _) ப (ோர்ட b _) ப (ோர்தான்_அடி b _) ப (ோர்மேன f _) ப (ோர்வெல் b @@ -3175,6 +3232,7 @@ _விரகதா) ப (+ bV# _சிவ) ப (த pV _குளிர்) ப (தன pV _கல்) ப (தரு pV + உயர்) ப (தவி pV கஜ) பதி pVti கண) பதி pVti பசு) பத (ி pVt @@ -3274,6 +3332,7 @@ _முனிசி) ப (ல pV ஆல்) ப (ா f _ஷில்) ப (ா p _முஸ்த) ப (ா f + _ஹனி) ப (ா f _போதும்) ப (ா p _போலாம்) ப (ா p _வேண்டாம்) ப (ா p @@ -3292,6 +3351,7 @@ _வெளிப்) ப (ாக b ஈடு) ப (ாட p இடி) ப (ாட p _கட்டு) ப (ாட p + _மாசு) ப (ாட p _வசை) ப (ாட p _வழி) ப (ாட p இசை) ப (ாட p @@ -3336,7 +3396,9 @@ _வெளிப்) ப (ாக b _சரி) ப (ார p எதிர்) ப (ார p _பிளாட்) ப (ார f + _யுக) ப (ாரதி b இன்) ப (ார்ம f + _யூனி) ப (ார்ம f அ) பார்மெண்ட pa:rment.V# கண்) ப (ார்வை p இம்) ப (ால f @@ -3441,6 +3503,9 @@ L03ந்தப்) பி (ராய p ப (ிறகு+ p தேய்) ப (ிறை p வளர்) ப (ிறை p + ஈ) ப (ில f + _ரீ) ப (ில f + _ரை) ப (ில f _) பிலிப filipV# _) பி (லெட்சர f _சிம்) ப (ிள p @@ -3523,6 +3588,7 @@ _கோலாலம்) ப (ூர p _தவிடு) ப (ொடி p எரி) ப (ொரு p _வன்) ப (ொரு p + _மறை) ப (ொரு p _மென்) ப (ொரு p _ வெடி) ப (ொரு p _பழம்) ப (ொருள p @@ -3537,6 +3603,7 @@ _ வெடி) ப (ொரு p ப (ொழுதும்_+ p ப (ொழுதே_+ p ப (ொழுதோ_+ p +_விலை) ப (ோ p _ஏக) ப (ோக b ராஜ) ப (ோக b ப (ோக_ p @@ -3556,6 +3623,7 @@ _ வெடி) ப (ொரு p _மை) ப (ோட p அசை) ப (ோட p _சத்தம்) ப (ோட p + _திரை) ப (ோட p ப (ோதிலுமே_+ p ப (ோதிலும்+ p ஒம்) ப (ோது _ b @@ -3641,6 +3709,7 @@ _யாதவ) ப்பி (ரகாச pp _வெளி) ப்பி (ரகார pp அதிக) ப்பி (ரசங்க pp _நில) ப்பி (ரபு pp +_சத்திய) ப்பி (ரமா pp மன) ப்பி (ரமை bb _பர) ப்பி (ரம்ம pb _மணி) ப்பி (ரவா pp @@ -3653,6 +3722,7 @@ _வெளி) ப்பி (ரகார pp இரத்த) ப்பி (ரவாக pp _ஒL10ி) ப்பி (ரவாக pp தேச) ப்பி (ரஷ்ட pp + _ஜாதி) ப்பி (ரஷ்ட pp ஆ) ப்பி (ரிக்க f தென்னா) ப்பி (ரிக்க fV _கஜ) ப்ப (ிருஷ்ட bb @@ -3732,9 +3802,7 @@ _சந்தேக) ப்ப (ுத்தி bb மகா) ப (ாரத b L03க்க) ப (ாலி b - _) ப (ோனை f - _) ப (ைல்கள f - _) ப (ோனிலும் f + _சோ) ப (ா f // sofa _ஆ) ப (ீஸ f // office _ஆ) ப (ீச f // office @@ -3813,6 +3881,9 @@ _சந்தேக) ப்ப (ுத்தி bb ஸ sV ஸ (B s + _உ) ஸ்பெக் zbek + _நவா) ஸ zV# + .group ஹ ஹ HV @@ -3828,6 +3899,8 @@ _சந்தேக) ப்ப (ுத்தி bb ஃக gQV ஃக (B gQ + _) ஃபி (ரான் f + // vowel letters .group இ diff --git a/espeak-data/mbrola_ph/de2_phtrans b/espeak-data/mbrola_ph/de2_phtrans index 42b2bbc2..804a0d40 100644 Binary files a/espeak-data/mbrola_ph/de2_phtrans and b/espeak-data/mbrola_ph/de2_phtrans differ diff --git a/espeak-data/mbrola_ph/de4_phtrans b/espeak-data/mbrola_ph/de4_phtrans index ea2aa163..e626a582 100644 Binary files a/espeak-data/mbrola_ph/de4_phtrans and b/espeak-data/mbrola_ph/de4_phtrans differ diff --git a/espeak-data/mbrola_ph/de6_phtrans b/espeak-data/mbrola_ph/de6_phtrans index 09122cff..2aa70f4c 100644 Binary files a/espeak-data/mbrola_ph/de6_phtrans and b/espeak-data/mbrola_ph/de6_phtrans differ diff --git a/espeak-data/voices/test/kl b/espeak-data/voices/test/kl index eeb33e65..1ee5f0b5 100644 --- a/espeak-data/voices/test/kl +++ b/espeak-data/voices/test/kl @@ -1,5 +1,3 @@ name greenlandic language kl -stressrule 2 // penultimate (for testing) - diff --git a/phsource/mbrola/de2 b/phsource/mbrola/de2 index 694cd7f6..2aac03d3 100644 --- a/phsource/mbrola/de2 +++ b/phsource/mbrola/de2 @@ -37,7 +37,8 @@ 0 V# NULL 0 R 0 UR NULL 60 U R -0 eI NULL 60 E j +0 eI VWL 60 E j +0 eI NULL 0 e: 0 oU NULL 0 o: 0 W~ NULL 0 E~ 0 A~ NULL 0 a~ @@ -49,7 +50,7 @@ 0 @5 NULL 0 @ 0 a# NULL 0 @ 0 I2 NULL 0 I -0 i NULL 0 I +0 i NULL 0 i: 0 aa NULL 0 a 0 V NULL 0 a: 0 0 NULL 0 O diff --git a/phsource/mbrola/de4 b/phsource/mbrola/de4 index 65ed0148..e8a5ec6f 100644 --- a/phsource/mbrola/de4 +++ b/phsource/mbrola/de4 @@ -59,7 +59,7 @@ 0 @5 NULL 0 @ 0 a# NULL 0 @ 0 I2 NULL 0 I -0 i NULL 0 I +0 i NULL 0 i: 0 aa NULL 0 a 0 V NULL 0 a: 0 0 NULL 0 O diff --git a/phsource/mbrola/de6 b/phsource/mbrola/de6 index 1564267c..d2818910 100644 --- a/phsource/mbrola/de6 +++ b/phsource/mbrola/de6 @@ -41,7 +41,7 @@ 0 @5 NULL 0 @ 0 a# NULL 0 @ 0 I2 NULL 0 I -0 i NULL 0 I +0 i NULL 0 i: 0 aa NULL 0 a 0 V NULL 0 a: 0 0 NULL 0 a: diff --git a/phsource/ph_greenlandic b/phsource/ph_greenlandic index c0a050c2..d0b4a339 100644 --- a/phsource/ph_greenlandic +++ b/phsource/ph_greenlandic @@ -8,7 +8,7 @@ phoneme a FMT(vowel/a) endphoneme -phoneme e +phoneme E vowel starttype #e endtype #e length 150 IF thisPh(isWordEnd) THEN @@ -42,16 +42,32 @@ phoneme aI endphoneme +phoneme e + import_phoneme da/e +endphoneme + phoneme & import_phoneme da/& endphoneme +phoneme V + import_phoneme da/V +endphoneme + +phoneme O + import_phoneme da/O +endphoneme + +phoneme y + import_phoneme da/y +endphoneme + phoneme W import_phoneme da/W endphoneme -phoneme O - import_phoneme da/O +phoneme 3 + import_phoneme da/3 endphoneme phoneme : // lengthen previous vowel by "length" diff --git a/phsource/vowelcharts/kl b/phsource/vowelcharts/kl new file mode 100644 index 00000000..96e86d49 --- /dev/null +++ b/phsource/vowelcharts/kl @@ -0,0 +1,16 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 820 2360 320 820 2360 +E 1 504 1700 2480 504 1700 2480 +E 0 456 1980 2540 440 1980 2540 +aI 0 912 1320 2740 360 2200 2820 +& 0 645 1705 2520 645 1705 2520 +V 0 672 1180 2595 672 1180 2595 +O 0 480 760 2710 480 760 2710 +y 0 280 1720 2340 280 1720 2340 +W 0 525 1320 2200 525 1320 2200 +3 0 658 1408 2460 658 1408 2460 diff --git a/phsource/vowelcharts/kl.png b/phsource/vowelcharts/kl.png new file mode 100644 index 00000000..5fa1e31c Binary files /dev/null and b/phsource/vowelcharts/kl.png differ diff --git a/phsource/vowelcharts/si b/phsource/vowelcharts/si index 446157bd..568ebd37 100644 --- a/phsource/vowelcharts/si +++ b/phsource/vowelcharts/si @@ -6,7 +6,6 @@ o 0 512 860 2648 512 860 2648 u 0 320 940 2360 320 900 2360 i: 0 280 2280 2840 240 2339 2840 e: 0 504 1900 2544 496 1920 2552 -E 0 584 1820 2560 584 1820 2560 &: 0 680 1660 2520 680 1660 2520 a: 0 784 1180 2680 776 1200 2680 o: 0 512 860 2648 512 860 2648 diff --git a/phsource/vowelcharts/si.png b/phsource/vowelcharts/si.png index 225b6998..6e664643 100644 Binary files a/phsource/vowelcharts/si.png and b/phsource/vowelcharts/si.png differ diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 8ff80129..43128588 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.23 +AppVerName=eSpeak version 1.46.28 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -220,6 +220,7 @@ begin 'et': value := $425; 'eu': value := $42d; 'fi': value := $40b; + 'fil': value := $464; 'fr': value := $40c; 'ga': value := $83c; 'gu': value := $447; @@ -250,15 +251,19 @@ begin 'rw': value := $487; 'si': value := $45b; 'sk': value := $41b; + 'sl': value := $424; 'sq': value := $41c; 'sr': value := $81a; 'sv': value := $41d; 'sw': value := $441; 'ta': value := $449; 'te': value := $44a; + 'tg': value := $45e; // 'am' + 'tl': value := $464; 'tn': value := $432; 'tr': value := $41f; 'tt': value := $444; + 'ur': value := $420; 'vi': value := $42a; 'wo': value := $488; 'zh': value := $804; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 0aa1d63c..09a5c2be 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1129,6 +1129,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int stressflags; int dflags = 0; int first_primary; + int long_vowel; signed char vowel_stress[N_WORD_PHONEMES/2]; char syllable_weight[N_WORD_PHONEMES/2]; @@ -1444,6 +1445,39 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, vowel_stress[ix] = 4; } break; + + case 12: // LANG=kl (Greenlandic) + long_vowel = 0; + 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) + + if(vowel_length[ix] > 0) + { + long_vowel = ix; + vowel_stress[ix] = 3; // give secondary stress to all long vowels + } + } + + // 'stressed_syllable' gives the last marked stress + if(stressed_syllable == 0) + { + // no marked stress, choose the last long vowel + if(long_vowel > 0) + 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; + } + } + vowel_stress[stressed_syllable] = 4; + max_stress = 4; + break; } /* now guess the complete stress pattern */ diff --git a/src/numbers.cpp b/src/numbers.cpp index 90a246ed..c2a30153 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1146,6 +1146,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out // control bit 3: use feminine form of '2' (for thousands // control bit 4: speak zero tens // control bit 5: variant of ordinal number (lang=hu) +// bit 8 followed by decimal fraction int found; int ix; @@ -1385,6 +1386,22 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out } } + if(tr->langopts.numbers & NUM_SINGLE_STRESS_L) + { + // only one primary stress, on the first part (tens) + found = 0; + for(ix=0; ix < (signed)strlen(ph_out); ix++) + { + if(ph_out[ix] == phonSTRESS_P) + { + if(found) + ph_out[ix] = phonSTRESS_3; + else + found = 1; + } + } + } + else if(tr->langopts.numbers & NUM_SINGLE_STRESS) { // only one primary stress @@ -1410,6 +1427,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null // control bit 0, previous thousands // bit 1, ordinal number // bit 5 variant form of ordinal number +// bit 8 followed by decimal fraction int found; int hundreds; int tensunits; @@ -1610,7 +1628,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null x = 8; // use variant (feminine) for before thousands and millions } - if(LookupNum2(tr, tensunits, x, buf2) != 0) + if(LookupNum2(tr, tensunits, x | control & 0x100, buf2) != 0) { if(tr->langopts.numbers & NUM_SINGLE_AND) ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units @@ -1858,7 +1876,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned { // this "word" ends with a decimal point Lookup(tr, "_dpt", ph_append); - decimal_point = 1; + decimal_point = 0x100; } else if(suppress_null == 0) @@ -1913,6 +1931,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned // if((buf_digit_lookup[0] == 0) && (*p != '0') && (dot_ordinal==0)) if((buf_digit_lookup[0] == 0) && (*p != '0')) { + // LANG=hu ? // not found, lookup only the last digit (?? but not if dot-ordinal has been found) if(LookupDictList(tr, &p, buf_digit_lookup, flags, FLAG_SUFX, wtab)) // don't match '0', or entries with $only { @@ -1920,24 +1939,38 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } } - if((tr->langopts.numbers2 & NUM2_PERCENT_BEFORE) && (prev_thousands == 0)) + if(prev_thousands == 0) { - // LANG=si, say "percent" before the number - p2 = word; - while((*p2 != ' ') && (*p2 != 0)) + if((decimal_point == 0) && (ordinal == 0)) { - p2++; + // Look for special pronunciation for this number in isolation (LANG=kl) + sprintf(string, "_%dn", value); + if(Lookup(tr, string, ph_out)) + { + return(1); + } } - if(p2[1] == '%') + + if(tr->langopts.numbers2 & NUM2_PERCENT_BEFORE) { - Lookup(tr, "%", ph_out); - ph_out += strlen(ph_out); - p2[1] = ' '; + // LANG=si, say "percent" before the number + p2 = word; + while((*p2 != ' ') && (*p2 != 0)) + { + p2++; + } + if(p2[1] == '%') + { + Lookup(tr, "%", ph_out); + ph_out += strlen(ph_out); + p2[1] = ' '; + } } } + } - LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal); + LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal | decimal_point); if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_append,ph_buf2,ph_buf); // say "thousands" before its number else @@ -2005,6 +2038,17 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned n_digits += decimal_count; } break; + + case NUM_DFRACTION_7: + // alternative form of decimal fraction digits, except the final digit + while(decimal_count-- > 1) + { + sprintf(string,"_%cd", word[n_digits]); + if(Lookup(tr, string, buf1) == 0) + break; + n_digits++; + strcat(ph_out, buf1); + } } } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 60ef6e46..1e65d1bf 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.27 21.Oct.12"; +const char *version_string = "1.46.28 16.Nov.12"; const int version_phdata = 0x014624; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 4132d627..dc4b3938 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -113,12 +113,14 @@ 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 0x200c, 1, // zero width non-joiner 0x200d, 1, // zero width joiner 0, 0 }; // alternatively, ignore characters but allow zero-width-non-joiner (lang-fa) static const unsigned short chars_ignore_zwnj_hyphen[] = { + 0xad, 1, // soft hyphen 0x200c, '-', // zero width non-joiner, replace with hyphen 0x200d, 1, // zero width joiner 0, 0 }; @@ -943,6 +945,14 @@ SetLengthMods(tr,3); // all equal } break; + case L('k','l'): // Greenlandic + { + tr->langopts.stress_rule = 12; + tr->langopts.stress_flags = S_NO_AUTO_2; + tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL; + } + break; + case L('k','o'): // Korean, TEST { static const char ko_ivowels[] = {0x63,0x64,0x67,0x68,0x6d,0x72,0x74,0x75,0}; // y and i vowels @@ -1207,7 +1217,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4a; //virama - tr->langopts.numbers = NUM_OMIT_1_THOUSAND; + tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_SINGLE_STRESS_L | NUM_DFRACTION_7; tr->langopts.numbers2 = NUM2_PERCENT_BEFORE; tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi } diff --git a/src/translate.h b/src/translate.h index 76075f6f..b88f0b13 100644 --- a/src/translate.h +++ b/src/translate.h @@ -402,6 +402,7 @@ typedef struct { #define NUM_DFRACTION_4 0x8000 #define NUM_DFRACTION_5 0xa000 #define NUM_DFRACTION_6 0xc000 +#define NUM_DFRACTION_7 0xe000 // lang=si, alternative form of number for decimal fraction digits (except the last) #define NUM_ORDINAL_DOT 0x10000 #define NUM_NOPAUSE 0x20000 #define NUM_AND_HUNDRED 0x40000 @@ -414,6 +415,7 @@ typedef struct { #define NUM_ROMAN_CAPITALS 0x2000000 #define NUM_ROMAN_AFTER 0x4000000 #define NUM_ROMAN_ORDINAL 0x8000000 +#define NUM_SINGLE_STRESS_L 0x10000000 // bits0-1=which numbers routine to use. // bit2= thousands separator must be space @@ -442,6 +444,7 @@ typedef struct { // bit25= Roman numbers only if upper case // bit26= say "roman" after the number, not before // bit27= Roman numbers are ordinal numbers + // bit28= only one primary stress in tens+units (on the tens) int numbers; #define NUM2_THOUSANDS_VAR1 0x40