Conflicts: platforms/windows/make_espeakedit.issmaster
| @@ -195,6 +195,7 @@ dictionaries: src/espeak \ | |||
| espeak-data/sv_dict \ | |||
| espeak-data/sw_dict \ | |||
| espeak-data/ta_dict \ | |||
| espeak-data/te_dict \ | |||
| espeak-data/tr_dict \ | |||
| espeak-data/ur_dict \ | |||
| espeak-data/vi_dict \ | |||
| @@ -531,6 +532,12 @@ dictsource/ta_extra: | |||
| espeak-data/ta_dict: src/espeak espeak-data/phontab dictsource/ta_list dictsource/ta_rules dictsource/ta_extra | |||
| cd dictsource && ../src/espeak --compile=ta && cd .. | |||
| te: espeak-data/te_dict | |||
| dictsource/te_extra: | |||
| touch dictsource/te_extra | |||
| espeak-data/te_dict: src/espeak espeak-data/phontab dictsource/te_list dictsource/te_rules dictsource/te_extra | |||
| cd dictsource && ../src/espeak --compile=te && cd .. | |||
| tr: espeak-data/tr_dict | |||
| dictsource/tr_extra: | |||
| touch dictsource/tr_extra | |||
| @@ -1,4 +1,4 @@ | |||
| // Aragon translation rules | |||
| // Aragon translation rules | |||
| // This file is UTF-8 encoded | |||
| // letters | |||
| @@ -118,6 +118,9 @@ _x#º %o // for 1º 2º 3º | |||
| _x#ª %a | |||
| º orDin'al||maskul'in | |||
| ª orDin'al||femen'in | |||
| ºc gr'aUs||T'e | |||
| ºf gr'aUs||'Efe | |||
| ºk gr'aUs||k'a | |||
| _1ox prim'Er | |||
| _2ox seQ'und | |||
| @@ -179,6 +182,7 @@ $ d'olar | |||
| / baRRa | |||
| \ kontraBaRRa | |||
| | b'aRRaBertik'al | |||
| ° graUs | |||
| _- gj'on | |||
| ! TaRR'ar||eksklamaTj'on | |||
| @@ -483,6 +487,7 @@ espeak isp'ik | |||
| facebook f'eIsbuk | |||
| firefox f'aIrfoks | |||
| google g'ugEl | |||
| hotmail xotm'eIl | |||
| (i phone) 'aIfon | |||
| iphone 'aIfon | |||
| (i pod) 'aIpod | |||
| @@ -1,11 +1,11 @@ | |||
| // Translation rules for Bengali | |||
| // Translation rules for Bengali | |||
| // This file is UTF8 encoded | |||
| // Numbers | |||
| devanagari numbers are changed to latin characters before translation | |||
| // Bengali numbers are changed to latin characters before translation | |||
| _0 S'unjO | |||
| _1 '&k | |||
| _2 duj | |||
| _2 d'uj | |||
| _3 t'in | |||
| _4 tS'ar | |||
| _5 p'a~tS | |||
| @@ -14,11 +14,16 @@ _7 S'at | |||
| _8 'at.# | |||
| _9 n'Oj | |||
| _2a d'u // with hundreds etc. | |||
| _6a tS#'a | |||
| _9a n'O | |||
| _10 d'OS | |||
| _11 '&garo | |||
| _12 b'arO | |||
| _13 t'erO | |||
| _14 tS'owddO | |||
| _14 tS'oddO | |||
| _15 p'OnerO | |||
| _16 S'olO | |||
| _17 S'OterO | |||
| @@ -26,64 +31,101 @@ _18 'at.#arO | |||
| _19 'uniS | |||
| _20 k'uri // or b'iS ?? | |||
| _21 'ekuS | |||
| _21 ek'uS | |||
| _22 b'ajS | |||
| _23 t'ejS | |||
| _24 tS'ObbiS | |||
| _25 p'O~tSiS | |||
| _26 tSh'ObbiS | |||
| _27 S'ataS | |||
| _26 tSh'abbiS | |||
| _27 Sat'aS | |||
| _28 'at.#aS | |||
| _29 'untriS | |||
| _30 t'iriS | |||
| _31 'ektriS | |||
| _32 b'OtriS | |||
| _33 t'etriS | |||
| _34 tSowtriS | |||
| _35 pO~jtriS | |||
| _36 tS#'OtriS | |||
| _37 S'a~itriS | |||
| _38 'at.riS | |||
| _39 'unOtSOlliS | |||
| _40 tS'OlliS | |||
| _41 'ektSOlliS | |||
| _42 b'ialliS | |||
| _43 t'etalliS | |||
| _44 tS'oalliS | |||
| _45 p'O~jtalliS | |||
| _46 tS'etSOlliS | |||
| _47 S'atSOllis | |||
| _48 'atSOlliS | |||
| _49 'unOpO~tSaS | |||
| // numbers above 50 need to be corrected | |||
| _50 p'O~tSaS | |||
| _5X p'O~tSaS | |||
| _59 'unOsat. | |||
| _60 s'at. | |||
| _6X s'at. | |||
| _69 'unOS'OttOr | |||
| _70 S'OttOr | |||
| _7X S'OttOr | |||
| _79 'unOaSi | |||
| _29 unOtr'iS | |||
| _30 tr'iS | |||
| _31 ekOtr'iS | |||
| _32 bOtr'iS | |||
| _33 tetr'iS | |||
| _34 tSowtr'iS | |||
| _35 pO~jtr'iS | |||
| _36 tS#'Otr'iS | |||
| _37 Sa~itr'iS | |||
| _38 at.tr'iS | |||
| _39 'unOtSOll'iS | |||
| _40 tSOll'iS | |||
| _41 ektSOll'iS | |||
| _42 biall'iS | |||
| _43 tetall'iS | |||
| _44 tSoall'iS | |||
| _45 pO~jtall'iS | |||
| _46 tSetSOll'iS | |||
| _47 SatSOll'is | |||
| _48 atSOll'iS | |||
| _49 unOpO~tSaS | |||
| _50 pO~tS'aS | |||
| _51 &kann'o | |||
| _52 bajann'o | |||
| _53 tepann'o | |||
| _54 tSujann'o | |||
| _55 pontSann'o | |||
| _56 tS#apann'o | |||
| _57 Satann'o | |||
| _58 at.ann'o | |||
| _59 unOS'at. | |||
| _80 'aSi | |||
| _8X 'aSi | |||
| _89 'unOnObbOj | |||
| _90 n'ObbOj | |||
| _9X n'ObbOj | |||
| _60 s'at. | |||
| _61 ekSOt.t.'i | |||
| _62 baSOt.t.'i | |||
| _63 teSOt.t.'i | |||
| _64 tSowSOt.t.'i | |||
| _65 pojSOt.t.'i | |||
| _66 SeSOt.t.'i | |||
| _67 SatSOt.t.'i | |||
| _68 at.SOt.t.'i | |||
| _6X sat.t.'i | |||
| _69 unOSOtt'ur | |||
| _70 SOtt'Or | |||
| _71 ekatt'Or | |||
| _72 bahatt'Or | |||
| _73 tehatt'Or | |||
| _74 tSuhatt'Or | |||
| _75 pOtSatt'Or | |||
| _76 tS#ijatt'Or | |||
| _77 Satatt'Or | |||
| _78 at.att'Or | |||
| _79 unOaS'i | |||
| _80 aS'i | |||
| _81 &kaS'i | |||
| _82 beraS'i | |||
| _83 teraS'i | |||
| _84 tSuraS'i | |||
| _85 po~tSaS'i | |||
| _86 tS#ijaS'i | |||
| _87 SataS'i | |||
| _88 at.aS'i | |||
| _89 ,unOnObb'oj | |||
| _90 nObb'oj | |||
| _91 &kanObb'oj | |||
| _92 beranObb'oj | |||
| _93 teranObb'oj | |||
| _94 tSuranObb'oj | |||
| _95 pOtSanObb'oj | |||
| _96 tS#ijanObb'oj | |||
| _97 SatanObb'oj | |||
| _98 at.anObb'oj | |||
| _99 niranObb'oj | |||
| _0C S'o | |||
| _0M1 h'ajar | |||
| _0M2 l'ak# | |||
| _0M3 k'ot.i | |||
| _0M4 'Orbud | |||
| _dpt dOsomik | |||
| _dpt _d'Osomik_ | |||
| // Single consonants | |||
| @@ -91,40 +133,42 @@ _dpt dOsomik | |||
| খ k#O | |||
| গ gO | |||
| ঘ g#O | |||
| ঙ 'uNO | |||
| ঙ 'uNO~ | |||
| চ tSO | |||
| ছ tShO // [h] to distinguish from [tS] | |||
| জ JO | |||
| ঝ J#O | |||
| ঞ 'iNO | |||
| ঞ 'iNO~ | |||
| ট t.O | |||
| ঠ t.#O | |||
| ড d.O | |||
| ঢ d.#O | |||
| ণ m'odd#ennO | |||
| ণ m,odd#en.n.'O | |||
| ত tO | |||
| থ t#O | |||
| দ dO | |||
| ধ d#O | |||
| ন d'ontennO | |||
| ন d,ontenn'O | |||
| প pO | |||
| ফ fO // or [p#O] ? | |||
| ব bO | |||
| ভ b#O | |||
| ম mO | |||
| য় Oj | |||
| য ontostedZ'O | |||
| য ,ontostedZ'O | |||
| র rO | |||
| ড় r.O | |||
| ড় r.O // (d. + nukta) | |||
| ঢ় hr.O | |||
| ঢ় hr.O // (d#. + nukta) | |||
| ল lO | |||
| শ taleboS:O | |||
| ষ mud#en:oS:O | |||
| স d'onteS:O | |||
| শ t,aleboS:'O | |||
| ষ m,ud#en:oS:'O | |||
| স d,onteS:'O | |||
| হ hO | |||
| ৎ kh'Ond.otO | |||
| ৎ kh,Ond.ot'O | |||
| ক্ষ k,ojmud#en:oS:'O | |||
| // full vowels | |||
| অ O | |||
| @@ -134,11 +178,16 @@ _dpt dOsomik | |||
| উ hrOS:o'u | |||
| ঊ dirg#o'u | |||
| ঋ ri | |||
| এ e | |||
| ঐ oj | |||
| ও o | |||
| ঔ ow | |||
| এ e $u+ // word 'it' | |||
| ঐ oj $u+ // word 'that' | |||
| ও o $u+ $brk // 'and' | |||
| _এ e | |||
| _ঐ oj | |||
| _ও o | |||
| // combining vowel signs | |||
| া 'akar | |||
| ি r'oS:ikar | |||
| @@ -158,10 +207,17 @@ _dpt dOsomik | |||
| ঁ tS'Ondrobindu | |||
| ় b'indu | |||
| $ d.Olar | |||
| % SOtk'Ora | |||
| + jOg | |||
| = SOman | |||
| // Punctuation | |||
| । dVn.d.V | |||
| _, koma | |||
| _? pr'oSnOtSihnO | |||
| // Pronouns | |||
| আমি $u // main: I | |||
| @@ -264,3 +320,4 @@ _dpt dOsomik | |||
| // Exceptions | |||
| এত &to | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // This file is UTF8 encoded | |||
| // letter groups: | |||
| @@ -28,6 +28,7 @@ | |||
| .group অ | |||
| অ V | |||
| অঁ O~ | |||
| অ্যা & // V,ja in [æmiba] | |||
| .group আ | |||
| @@ -74,6 +75,8 @@ | |||
| .group এ | |||
| এ e | |||
| এঁ e~ | |||
| এ্যা & // e,ja [ækademi] | |||
| .group ও | |||
| @@ -288,7 +291,10 @@ | |||
| য় jV // nukta | |||
| য় (B j | |||
| ্) য (C & // ব্যস্ত [bæsto] | |||
| ্) যা & // ব্যাকরণ [bækɔron] | |||
| .group র | |||
| র rV | |||
| র (B r | |||
| @@ -378,3 +384,5 @@ | |||
| ৢ l- | |||
| ৣ l- | |||
| __) - (_D bij'og | |||
| D_) - (_D bij'og | |||
| @@ -54,38 +54,38 @@ _?? symbol | |||
| _#9 tab | |||
| _#32 blank | |||
| * 'asd&r,isg $max3 | |||
| % pRos'end $max3 | |||
| @ sn,&:bel'&: | |||
| / sgRVsdrai $max3 | |||
| \ 'Vmvendsgr,VsdRai $max3 | |||
| * '&sd@-r,isg $max3 | |||
| % pRos'End $max3 | |||
| @ sn,&b@-l'&: | |||
| / sgRVsdrAj $max3 | |||
| \ 'VmvEndsgr,VsdRai $max3 | |||
| _, k'oma: | |||
| _; se:mi:ko:lVn | |||
| _; semiko:lVn | |||
| _: k'o:lVn | |||
| _. pONtOm // PN u => O | |||
| _? spWrgsmVlstajn | |||
| _! udRVbstejn | |||
| _- binnesdrai | |||
| __ b'Onsdrai | |||
| _? spWrsmOlstAjn | |||
| _! udRVbstAjn | |||
| _- bin@-sdrAi | |||
| __ b'OnsdrAi | |||
| & _Vw | |||
| £ pun? | |||
| € euro | |||
| © kVpirajt | |||
| ÷ divid'eReD||meD | |||
| © kVpirAjt | |||
| ÷ divid'eRVD||mED | |||
| = l'imeD | |||
| # n'OmV | |||
| § paragr'af | |||
| × g'aNe | |||
| ª feminin||Wdin'al | |||
| º m'askulin||Wdin'al | |||
| ® registr'Er@D||v'ar@mErk3 | |||
| ¼ en||kvart | |||
| ¾ trEkv'art | |||
| ® registr'ErVD||v'Ar@-mErk@- | |||
| ¼ en||kvArt | |||
| ¾ trEkv'Art | |||
| ¢ s'ent | |||
| ¥ j'en: | |||
| µ my | |||
| ' apostr'Vf | |||
| ½ en'hal | |||
| ½ en'h&l | |||
| + plus | |||
| // numbers | |||
| @@ -102,19 +102,19 @@ _9 n'i | |||
| _10 t'i | |||
| _11 'Elv@ | |||
| _12 t'Vl | |||
| _13 tR'?&#d@-n | |||
| _13 t*'?&#d@-n | |||
| _14 fj'ord@-n | |||
| _15 f'Emd@-n | |||
| _16 s'ajsd@-n | |||
| _17 s'Wd@-n | |||
| _16 s'Ajsd@-n | |||
| _17 s'?Wd@-n | |||
| _18 '?&d@-n | |||
| _19 n'ed@-n | |||
| _19 n'?ed@-n | |||
| _2X t'y:?u | |||
| _3X tR'&#Dv@ | |||
| _3X t*'&#Dv@ | |||
| _4X f'?W:_|V | |||
| _5X h&l't*Es | |||
| _6X t*'Es | |||
| _7X h&lfj'&rs | |||
| _7X h&lfj'Ers | |||
| _8X f'irs | |||
| _9X h&lf'Ems // PB a changed to & | |||
| _0C h'unRVD | |||
| @@ -131,32 +131,32 @@ _0M4 bilij'o:n3 | |||
| _0and V | |||
| _dpt _k,Vm&: | |||
| // PB a number followed by dot | |||
| // A number followed by dot | |||
| // ordinals are followed by a dot in Danish | |||
| _ord 3 // 13. (trettende) | |||
| _ord @- // 13. (trettende) | |||
| // exceptions for ordinals | |||
| _1o fWrsd3 // 1. første | |||
| _1o fWrsd@- // 1. første | |||
| _2o &n@n // 2. anden | |||
| _3o trEdj3 // 3. tredje | |||
| _3o trEdj@- // 3. tredje | |||
| _4o fjeV // 4. fjerde | |||
| _5o fEmt3 // 5. femte | |||
| _6o sjEd3 // 6. sjette | |||
| _7o syvn3 // 7. syvende | |||
| _8o Vtn3 // 8. ottende | |||
| _9o ni@n3 // 9. niende | |||
| _10o ti@n3 // 10. tiende | |||
| _11o Elfd3 // 11. elvte/ellevete | |||
| _12o tVlfd3 // 12. tolvte | |||
| _5o fEmt@- // 5. femte | |||
| _6o sjEd@- // 6. sjette | |||
| _7o syvn@- // 7. syvende | |||
| _8o Vtn@- // 8. ottende | |||
| _9o ni@-n@- // 9. niende | |||
| _10o ti@-n@- // 10. tiende | |||
| _11o Elfd@- // 11. elvte/ellevete | |||
| _12o tVlfd@- // 12. tolvte | |||
| _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. | |||
| _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. | |||
| // function words | |||
| @@ -187,10 +187,10 @@ fra $u+ // from | |||
| ved $u+ // at | |||
| om $u+ $brk // about, within | |||
| med $u+ // with | |||
| af & | |||
| ad & | |||
| af &_! | |||
| ad &_! | |||
| ad &D $atend $sentence // "Det må ikke skille os ad." | |||
| at & $u | |||
| at &_! $u | |||
| hos | |||
| som sVm $u // which / that | |||
| @@ -203,7 +203,7 @@ hun $u | |||
| det de $u | |||
| dét de | |||
| vi vi $u | |||
| i _i $u+ | |||
| i _i_! $u+ | |||
| mig mAj $u // me | |||
| dig dAj $u+ | |||
| dem $u | |||
| @@ -220,10 +220,10 @@ hvis ves $u+ // PB - whose | |||
| // possessive pronouns | |||
| min min $u | |||
| mit mit $u | |||
| mine m'in3 | |||
| mine m'in@- | |||
| din d'in $u+ | |||
| dit d'it $u | |||
| dine d'in3 | |||
| dine d'in@- | |||
| deres dE:Vs $u | |||
| hans $u+ | |||
| hendes $u+ | |||
| @@ -1448,7 +1448,6 @@ elegance $alt | |||
| eminence $alt | |||
| excellence $alt | |||
| fajance $alt | |||
| hospice $alt | |||
| ignorance $alt | |||
| inspektrice $alt | |||
| intolerance $alt | |||
| @@ -1846,6 +1845,7 @@ afrikan $alt | |||
| afrikaan $alt | |||
| aleksandrin $alt | |||
| amerikan $alt | |||
| austral $alt | |||
| andorran $alt | |||
| anglikan $alt | |||
| angolan $alt | |||
| @@ -5968,6 +5968,7 @@ dediker $alt | |||
| deducer $alt | |||
| defiler $alt | |||
| definer $alt | |||
| omdefiner $alt | |||
| deflorer $alt | |||
| deformer $alt | |||
| degrader $alt | |||
| @@ -6547,6 +6548,7 @@ konstater $alt | |||
| konstituer $alt | |||
| konstringer $alt | |||
| konstruer $alt | |||
| rekonstruer $alt | |||
| konsulere $alt | |||
| konsulter $alt | |||
| konsumer $alt | |||
| @@ -11121,7 +11123,7 @@ sinecure $alt | |||
| tournure $alt | |||
| // exceptions | |||
| alene &l'en@ // alone | |||
| alene &l'en@- // alone | |||
| egen _|aj@-n | |||
| mc mak' $capital // PB McDonald | |||
| egne ajn@- | |||
| @@ -11130,7 +11132,7 @@ 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 | |||
| @@ -11138,8 +11140,8 @@ 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 | |||
| nogle n'o@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' | |||
| nogen n'o@-n // PB | |||
| ligesom l?isVm // PB | |||
| bliver blir // PB | |||
| konfirmand kVnferm'&nd // PB | |||
| @@ -11150,48 +11152,48 @@ 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 | |||
| breakdancen brEig'da:ns@-n // PB breakdancen | |||
| breakdancer brEig'da:nsV // PB breakdancer | |||
| breakdancere brEig'da:nsV3 // PB breakdancere | |||
| breakdancerne brEig'da:nsV-n@ // PB breakdancerne | |||
| breakdancernes brEig'da:nsV-n@s // PB breakdancernes | |||
| squaredance skw'e@da:ns // PB squaredance | |||
| squaredancer skw'e@da:nsV // PB squaredancer | |||
| squaredancere skw'e@da:nsV3 // PB squaredancere | |||
| squaredancen skw'e@da:ns@-n // PB squaredancen | |||
| squaredancerne skw'e@da:nsV-n@ // PB squaredancerne | |||
| squaredancernes skw'e@da:nsV-n@s // PB squaredancernes | |||
| baguette b%a'get // French word used in Danish | |||
| jambore djamboR'E // PB English? word used in Danish - stressed e | |||
| shampu Sjambo // PB Danish pronunciation - oo has been replaced by u | |||
| (en face) aN||f'as // PB 'en face' - French used in Danish | |||
| (en bloc) aN||'blVk // PB 'en bloc' - French used in Danish | |||
| aficionado afisjo'nA:do // PB | |||
| breakdance brEig'd&:ns // PB breakdance | |||
| breakdancen brEig'd&:ns@-n // PB breakdancen | |||
| breakdancer brEig'd&:nsV // PB breakdancer | |||
| breakdancere brEig'd&:nsV3 // PB breakdancere | |||
| breakdancerne brEig'd&:nsV-n@ // PB breakdancerne | |||
| breakdancernes brEig'd&:nsV-n@s // PB breakdancernes | |||
| squaredance skw'EVd&:ns // PB squaredance | |||
| squaredancer skw'EVd&:nsV // PB squaredancer | |||
| squaredancere skw'EVd&:nsV3 // PB squaredancere | |||
| squaredancen skw'EVd&:ns@-n // PB squaredancen | |||
| squaredancerne skw'EVd&:nsV-n@ // PB squaredancerne | |||
| squaredancernes skw'EVd&:nsV-n@s // PB squaredancernes | |||
| baguette b?&'gEt // French word used in Danish | |||
| jambore djAmboR'E // PB English? word used in Danish - stressed e | |||
| shampu SjAmbo // PB Danish pronunciation - oo has been replaced by u | |||
| (en face) AN||f'as // PB 'en face' - French used in Danish | |||
| (en bloc) AN||'blVk // PB 'en bloc' - French used in Danish | |||
| (haute couture) %o:tku'ty:r // PB - french word | |||
| (par excellence) pa:egs@'la:Ns // PB - french word | |||
| (public service) pVblek||s@:vis // PB | |||
| (public servicen) pVblek||s@:vis@-n // PB | |||
| (par excellence) pA:Egs@'la:Ns // PB - french word | |||
| (public service) pVblek||sW:vis // PB | |||
| (public servicen) pVblek||sW:vis@-n // PB | |||
| (tour de force) tu:@d@||'fV:s // PB | |||
| (al qaeda) al||k'ajda // PB | |||
| (force majeure) fVrs||,ma'sjW:r // PB | |||
| (diner transportable) din'e|trANspVt'abl@ // PB | |||
| (diner transportable) din'e|trANspVt'abl@- // PB | |||
| (quiche lorraine) kiS||lor'E:n: | |||
| (fait accompli) fEtakVmpl'i // PB | |||
| (fait accompli) fEt&kVmpl'i // PB | |||
| (salt lake city) s'Vlt||lEjk||s'iti | |||
| 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 | |||
| calais k&l'E // PB Calais - town in France | |||
| date dEjt // PB date - stævnemøde | |||
| //siger sir // PB silent d | |||
| (tids nok) tis||n'Vk // PB silent d | |||
| skateboardet sk'eitbo@d3D // PB | |||
| skateboardet sk'EitbO:d@-D // PB | |||
| (hole in one) h'oulinw,0n // PB English golf expression used in Danish | |||
| (en passant) AN||p&s'AN | |||
| (coney island) 'kouni||'ajl3nd // PB | |||
| (union station) junj3n||steisj@n // PB | |||
| (secret service) sigred||s'Wvis | |||
| (happy hour) h&pi||'AuV | |||
| chevrolet sjEvrol'e | |||
| chevrolet sjEvrol'E | |||
| saigon sAjgVn // PB Saigon | |||
| managua m&n'&:gw& | |||
| (deja-vu) deSja||'vy | |||
| @@ -11246,32 +11248,37 @@ ikes ajks // PB | |||
| // Try to catch errors | |||
| (et kvarter) et||kvA'ter // PB | |||
| (mit kvarter) mit||kvA'ter // PB | |||
| (vores kvarter) vV:s||kvA'ter // PB | |||
| (deres kvarter) dE:Vs||kvA'ter // PB | |||
| (det kvarter) de||kvA'ter // PB | |||
| (mit kvarter) mit||kvA'ter | |||
| (vores kvarter) vV:s||kvA'ter | |||
| (deres kvarter) dE:Vs||kvA'ter | |||
| (det kvarter) de||kvA'ter | |||
| (i kvarter) i||kv'A:dV | |||
| (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 | |||
| // the verb 'have', not the noun 'have' = garden/oceans | |||
| (at have) &||h& | |||
| (vil have) vel||h'& | |||
| (ville have) v?il3||h'& | |||
| (du have) du||h&_! | |||
| (må have) mO:||h& | |||
| (skal have) sk?&||h& | |||
| (helst have) h'Elst||h& | |||
| (gerne have) g'Ern3||h& | |||
| (kan have) k?&n||h& // PB | |||
| (ikke have) ege||h& // PB | |||
| (kan have) k?&n||h& | |||
| (ikke have) eg@-||h& | |||
| (have ret) h&||R'&#d | |||
| (måtte have) m'?Vt@-||h& | |||
| (have været) h&||v'?E3-VD | |||
| (have gjort) h&||gj'Ort | |||
| // PB 'hav' = ocean - 'hav' = have (a nice day) | |||
| (et hav) ed||hAu | |||
| (stort hav) stord||hAu | |||
| hav hAu $atend | |||
| (et for) ed||'for // PB for i jakke - lining | |||
| (et for) ed||'for // for i jakke - lining | |||
| (et for dig) ed||fV||dAj // vælge et for dig | |||
| // PB problem with 'sig' [si] = "say" and 'sig' = "himself/herself" [saj] | |||
| //(sig mig) si||maj // PB sig mig engang | |||
| (sig hvad) si||v& // PB sig hvad du mener | |||
| sig $atend $sentence saj // end of a sentence - han vaskede sig. | |||
| (gør sig til) g,Wr||saj||t'el // PB | |||
| (gav sig til) g&||saj||tel // PB han gav sig til at ... | |||
| (sig hvad) si||v& // sig hvad du mener | |||
| sig $atend $sentence sAj // end of a sentence - han vaskede sig. | |||
| (gør sig til) g,Wr||sAj||t'el | |||
| (gav sig til) g&||sAj||tel // han gav sig til at ... | |||
| // PB avoid [staj] as in "flæskesteg" | |||
| (han steg) h&n||st'e | |||
| (hun steg) hOn||st'e | |||
| @@ -11280,7 +11287,7 @@ sig $atend $sentence saj // end of a sentence - han vaskede sig. | |||
| (alle steg) &l3||st'e | |||
| (vandet steg) v&n@D||st'e | |||
| steg sdaj $atend $sentence | |||
| steget ste@d | |||
| //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 | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // You can use the en_extra file, rather than this one | |||
| // to add your own pronunciation definitions. | |||
| @@ -70,6 +70,7 @@ a eI $atend | |||
| ï $accent | |||
| ö $accent | |||
| ü $accent | |||
| û $accent | |||
| č $accent | |||
| š $accent | |||
| ş $accent | |||
| @@ -324,37 +325,54 @@ _zh tS'aIni:z | |||
| // Arabic letters | |||
| ء h'amza | |||
| آ 'Elifm,adda# | |||
| أ 'Elifh,amza | |||
| ا 'Elif | |||
| ب bE? | |||
| آ al'if_mamd'uda# | |||
| أ h'amza_taht_al'if | |||
| ؤ h'amza_?la_waw | |||
| إ al'if_taht_h'amza | |||
| ئ h'amza_?la_jE? | |||
| ا al'if | |||
| ب ba | |||
| ة t'E?maR2b'uta# | |||
| ت tE? | |||
| ت ta | |||
| ث TE? | |||
| ج ZIm | |||
| ج dZi:m | |||
| ح hE? | |||
| خ xE? | |||
| د dEl/1 | |||
| ذ DEl/1 | |||
| د dal/1 | |||
| ذ Dal/1 | |||
| ر R2A:? | |||
| ز zEjn | |||
| س si:n | |||
| ش Si:n | |||
| ص sO:d@- | |||
| ض dO:d@- | |||
| ص sa:d@- | |||
| ض da:d@- | |||
| ط thA:? | |||
| ظ DA:? | |||
| ع ?ajn | |||
| غ Q"ajn | |||
| ف fE? | |||
| ق qO:f | |||
| ك kEf | |||
| ل lEm | |||
| ع '?Ein | |||
| غ 'Q"Ein | |||
| ف fa | |||
| ق qa:f | |||
| ك kaf | |||
| ل lam | |||
| م mi:m | |||
| ن nu|:n | |||
| ه hE? | |||
| و wO:w | |||
| ه ha | |||
| و waw | |||
| ى al'if_maks'ura | |||
| ي jE? | |||
| // Farsi | |||
| پ pa | |||
| چ tSa | |||
| ژ Za | |||
| گ ga:f | |||
| ی f'A@si||j'e | |||
| ک k'a:f | |||
| // Urdu | |||
| ٹ te | |||
| ڈ de | |||
| ڑ z.e | |||
| ے barij'e | |||
| ھ h'@ | |||
| َ a | |||
| ِ i | |||
| @@ -724,6 +742,7 @@ aka aka# | |||
| alas a#l'as | |||
| albeit O:lb'i:It | |||
| alfalfa alf'alf@ | |||
| algebra aldZI2br@ | |||
| alias eIli@s | |||
| alibi al@baI | |||
| alibis al@baIz | |||
| @@ -754,6 +773,7 @@ ambassador a#mbas@d3 | |||
| ambidextrous $3 | |||
| amen ,A:m'En $onlys | |||
| ?3 amen ,eIm'En | |||
| ?3 amo amoU | |||
| amok a#m0k | |||
| amoral eIm'0r@L | |||
| amount a#maUnt | |||
| @@ -767,8 +787,6 @@ analyses an@laIzI#z $verb | |||
| analysis a#nal@sIs | |||
| anemone a#nEm@ni | |||
| angel eIndZ@L | |||
| anecdote anIkdoUt | |||
| anecdotal anIkd'oUt@L | |||
| anemometer anIm'0mI2t3 | |||
| anew a#nju: | |||
| ?3 anew a#nu: | |||
| @@ -829,7 +847,7 @@ arena a#ri:n@ | |||
| argon A@g0n | |||
| argue A@gju: | |||
| aries e@ri:z | |||
| arithmetic a#rITm@tIk | |||
| arithmetic a#rITm@tIk $onlys | |||
| arise a#raIz | |||
| arisen @rIz@n | |||
| armslength ,A@mzl'ENT | |||
| @@ -877,6 +895,7 @@ average av@-rI2dZ | |||
| aviary eIvi@ri | |||
| awry a#raI | |||
| axes aksI#z | |||
| axon aks0n | |||
| backend bak'End | |||
| backstory baksto@ri | |||
| @@ -1115,6 +1134,7 @@ circumference $2 | |||
| circumvent s3:k@mvEnt | |||
| ?5 circumvent sIRk@mvEnt | |||
| citadel sIt@dEl | |||
| clandestine $2 | |||
| clarinet klar@n'Et | |||
| cleanliness klEnlIn@s | |||
| cleanse klEnz | |||
| @@ -1236,6 +1256,7 @@ coordinate koU'O:dI2neIt $verb | |||
| copier k0pi@3 | |||
| copilot koUpaIl@t | |||
| coral k0r@L | |||
| ?3 cordial kO@dZ@L | |||
| coronet k0r@nEt | |||
| corollary $2 | |||
| corporal kO@pr@L | |||
| @@ -1291,6 +1312,7 @@ debut deIbju: | |||
| ?3 debut deIb'ju: | |||
| decade dEkeId | |||
| decent di:s@nt | |||
| decibel dEsI#b@L | |||
| declaration dEkl@'reIS@n | |||
| decolletage deIk0lt'A:Z | |||
| decor deIkO@ | |||
| @@ -1380,6 +1402,7 @@ doctrine d0ktrI2n | |||
| doctrinal $alt1 | |||
| doer du:3 | |||
| dogged d0gI#d | |||
| dogmatic d0gm'atIk | |||
| doin du:In | |||
| domino $1 | |||
| donor doUn3 | |||
| @@ -1626,6 +1649,7 @@ gigantic dZaIg'antIk | |||
| gilead g'IlIad | |||
| gimme gImi | |||
| giraffe dZI2raaf | |||
| github gIthVb | |||
| glacier gleIS3 | |||
| goin ,goUI2n $only // for goin' | |||
| gonna g,@n@ | |||
| @@ -1796,6 +1820,7 @@ intestine I2ntEstI#n | |||
| inventory Inv@ntri | |||
| ?3 inventory Inv@nto:ri | |||
| interface $1 | |||
| interlude $1 | |||
| intermin Int'3:mIn // interminable | |||
| intern $1 $onlys | |||
| internee Int'3:ni: | |||
| @@ -2056,6 +2081,7 @@ molybdenum $2 | |||
| momentary moUm@nt@ri | |||
| ?3 momentary moUm@nt2e@ri | |||
| momentum $2 | |||
| monarchic m@nA@kIk | |||
| monday mVndeI | |||
| monotone m0n@toUn | |||
| monsieur m@sj3: | |||
| @@ -2251,6 +2277,7 @@ pear pe@ | |||
| pecan pi:k@n | |||
| peculiar pI2kju:lI3 | |||
| pedalo pEd@loU | |||
| pedestal pEdI2st@L | |||
| pedestrian $alt3 | |||
| pegasus pEg@s@s | |||
| pejorative p@dZ0r@tIv | |||
| @@ -2545,6 +2572,7 @@ ruby ru:bi | |||
| rugged rVgI#d | |||
| ruin ru:I2n // for ruining | |||
| sabbatic $alt3 | |||
| sabotage sab@tA:Z | |||
| saboteur sab@t'3: | |||
| ?5 saboteur sab@t'VR | |||
| @@ -2552,6 +2580,7 @@ sabre seIb3 | |||
| sachet saSeI | |||
| sacred seIkr@d | |||
| sacrifice sakrI2faIs | |||
| sadistic $alt3 | |||
| safety seIfti | |||
| saga sA:g@ | |||
| sahara $alt3 | |||
| @@ -2566,6 +2595,7 @@ saloon $alt3 | |||
| san ,san $only | |||
| sardine $2 | |||
| satanic $alt3 | |||
| satiric $alt3 | |||
| saucepan sO:sp@n | |||
| saudi saUdi | |||
| saute sO:teI | |||
| @@ -2706,6 +2736,7 @@ stagnate $2 | |||
| stampede $2 | |||
| starboard stA@b3d | |||
| starry stA:rI | |||
| statistic $alt3 | |||
| stiletto stI2lEtoU | |||
| strychnine str'Ikni:n | |||
| sterile stEraIl | |||
| @@ -2780,7 +2811,6 @@ tear te@ $verb | |||
| (tear apart) t,e@||a#pA@t | |||
| (tear off) t'e@||'0f | |||
| teargas ti@3gas | |||
| techy tEki | |||
| teddybear t'EdIb,e@ | |||
| telemetry t@lEm@tri | |||
| telepathy t@lEp@Ti | |||
| @@ -2882,6 +2912,7 @@ unaware Vn@w'e@ | |||
| uncle VNk@L | |||
| undeny VndIn'aI | |||
| underling $1 | |||
| underlings Vnd3lINz | |||
| underworld $1 | |||
| undies Vndiz | |||
| undo Vnd'u: | |||
| @@ -3241,8 +3272,9 @@ Lvov l@-v0v | |||
| ?5 Luxembourg lVks@mbVRg | |||
| Madagascar mad@g'ask3 | |||
| Madras m@draas | |||
| Madrid m@drId | |||
| Madrid m@drId | |||
| Malawi $alt3 | |||
| Malayalam maleI'A:l@m | |||
| Maldives mO:ld'i:v | |||
| Mali mA:li | |||
| Mandalay $3 | |||
| @@ -3283,6 +3315,7 @@ Noumea nu:m'eI@ | |||
| Oahu oU'A:hu: | |||
| Oklahoma oUkla#h'oUm@ | |||
| Ohio oUh'aIoU | |||
| Ohioan oUh'aIoU@n | |||
| Omagh oUmA: | |||
| Omaha oUma#hA: | |||
| Oman oUm'an | |||
| @@ -3369,6 +3402,7 @@ Wisconsin wI2sk'0nsI2n | |||
| Wyoming waI'oUmIN | |||
| Xhosa kO:s@ | |||
| Yemen $alt2 | |||
| Yosemite joUs'Em@ti | |||
| zaire zaI'i@3 | |||
| zimbabwe zI2mbA:bwi | |||
| zimbabwean zI2mbA:bwI@n | |||
| @@ -3648,6 +3682,7 @@ Phoebe fi:bi: | |||
| Rachael reItS@L | |||
| Rachel reItS@L | |||
| Rafael rA:faI'El | |||
| Rashid rA:S'i:d | |||
| Raul raU'u:l | |||
| Rees ri:s | |||
| Reese ri:s | |||
| @@ -3672,6 +3707,7 @@ Sebastian $alt3 | |||
| Sheila Si:l@ | |||
| Simon saIm@n | |||
| Sinead SI2neId | |||
| Sinéad SI2neId | |||
| Siobhan S@vO:n | |||
| Siobhán S@vO:n | |||
| Sonia s0nj@ | |||
| @@ -504,6 +504,7 @@ | |||
| portr) ai (t I# | |||
| .group al | |||
| @ic) al (_S2 @L | |||
| _) al (@ a#l | |||
| gonz) al 'A:l | |||
| _) alaba al@b'a | |||
| @@ -720,6 +721,7 @@ | |||
| p) an (c an | |||
| @m) an (d aan | |||
| sl) an (d aan | |||
| _) anecdo anIkdoU | |||
| C) an (t aan | |||
| an (ath a#n | |||
| ann (eal a#n | |||
| @@ -1066,8 +1068,8 @@ | |||
| as (thm as | |||
| as (tral as | |||
| as (tro as | |||
| as (trolog a#s | |||
| as (trono a#s | |||
| _) as (trolog a#s | |||
| _) as (trono a#s | |||
| &) as (ty_ a#s | |||
| ass (ym as | |||
| purch) as (e Is | |||
| @@ -1093,11 +1095,12 @@ | |||
| _s) ata (n eIt@ | |||
| _g) ator eIt3 | |||
| &) ate (_$w_alt2 @t | |||
| der) ated (_ eItI#d | |||
| pal) ate (_ @t | |||
| consul) ate (_ @t | |||
| macul) ate (_ @t | |||
| tim) ate (_ @t | |||
| tim) ated (_ eItI2d | |||
| tim) ated (_ eItI#d | |||
| tim) ating (_ eItIN | |||
| din) ate (_ @t | |||
| ion) ate (_ @t | |||
| @@ -1128,7 +1131,6 @@ | |||
| at (io_ eIS | |||
| ati (aX 'eIS | |||
| &) atism @tIz@m | |||
| st) at (ist @t | |||
| w) at (t 0t | |||
| @) ath (An_ @T | |||
| athed (_ eIDd | |||
| @@ -1334,6 +1336,7 @@ | |||
| bi (nm bI | |||
| bi (noc bI2 | |||
| _) bio (@P3 b,aIoU | |||
| bi (ol baI | |||
| bi (otic baI | |||
| @) bi (osA baI | |||
| bi (oC_ bI | |||
| @@ -1461,6 +1464,7 @@ | |||
| a) ch (il k | |||
| bra) ch k | |||
| te) ch (K k | |||
| _te) ch k | |||
| ch (isC k | |||
| ch (ic_ k | |||
| @@Car) ch (_ k | |||
| @@ -1685,6 +1689,7 @@ | |||
| de (ft dE | |||
| _) de (g@ dI2 | |||
| _) de (hyd ,di: | |||
| _) de (ist deI | |||
| _) de (j dI2 | |||
| _) de (l@ dI2 | |||
| de (law dE | |||
| @@ -1865,6 +1870,7 @@ | |||
| sp) e (cies i: | |||
| depr) ec (L02 i:S | |||
| _) e (cl %I | |||
| _) eccles (i I2kli:z | |||
| econo (m Ik'0n@ | |||
| econo (mic i:k@n'0 | |||
| _) eco (s i:koU | |||
| @@ -1927,23 +1933,6 @@ | |||
| h) e (sion_ 'i: | |||
| @) e (tio i: | |||
| discr) e (tion E | |||
| eu ju: | |||
| ?3 n) eu u: | |||
| ?3 n) eu (r U@ | |||
| r) eu (d OI | |||
| eu (m_ 'i:@ | |||
| s) eu (m_ 'i@ | |||
| l) eur 3: | |||
| ?5 eur VR | |||
| eur (_ '3: | |||
| ?3 eur (_ 'U@ | |||
| ?5 eur (_ 'VR | |||
| _) euro jU@roU | |||
| _) euro (pe jU@r-@ | |||
| &) eus (_ =I2@s | |||
| @) euse (_ '3:z | |||
| ?3 @) euse (_ 'u:z | |||
| d) eu (ts OI | |||
| ew ju: | |||
| _s) ew u: | |||
| ?3 d) ew u: | |||
| @@ -2458,6 +2447,7 @@ | |||
| er (nal_ '3: | |||
| &) er (n_ 3 | |||
| c) er (n_ 3: | |||
| _g) er (on Er | |||
| &) er (oCe_ =@r | |||
| er (se 3: | |||
| v) er (sal '3: | |||
| @@ -2531,7 +2521,7 @@ | |||
| pr) es (ent Ez | |||
| es (iA i:z | |||
| es (ian_ 'i:z | |||
| es (ic 'i:z | |||
| @) es (ic 'i:z | |||
| esis (_ 'i:sIs | |||
| th) eses (_ @si:z | |||
| th) esis (_ @sIs | |||
| @@ -2599,6 +2589,27 @@ | |||
| m) etry (_ =@tr%I | |||
| &) ett (_ I2t | |||
| .group eu | |||
| eu ju: | |||
| ?3 n) eu u: | |||
| ?3 n) eu (r U@ | |||
| r) eu (d OI | |||
| eu (m_ 'i:@ | |||
| s) eu (m_ 'i@ | |||
| l) eur 3: | |||
| ?5 eur VR | |||
| eur (_ '3: | |||
| ?3 eur (_ 'U@ | |||
| ?5 eur (_ 'VR | |||
| _) euro jU@roU | |||
| _) euro (pe jU@r-@ | |||
| &) eus (_ =I2@s | |||
| @) euse (_ '3:z | |||
| ?3 @) euse (_ 'u:z | |||
| d) eu (ts OI | |||
| .group ev | |||
| _) ev I2v | |||
| _) eva (ne Ev@ | |||
| @@ -2915,40 +2926,10 @@ | |||
| n) ihi aI|@ | |||
| _) i (h aI | |||
| ii (_ IaI | |||
| ij (C eI // Dutch | |||
| f) i (j i: | |||
| h) i (j aI | |||
| @b) il (_ @L | |||
| @Cc) il (_ @L | |||
| @p) il (_ @L | |||
| @r) il (_ @L | |||
| @s) il (_ @L | |||
| 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 | |||
| _m) i (ld aI | |||
| _w) i (ld aI | |||
| ch) i (ld aI | |||
| w) i (lderC I | |||
| ch) i (ldr I | |||
| sacr) ile IlI | |||
| i (leA I | |||
| &) ile (ge @lI | |||
| il (ise @l | |||
| il (ize @l | |||
| s) i (len aI | |||
| C) i (ler aI | |||
| _) il (l@ %Il | |||
| @) illa (_ 'Il@ | |||
| &) illard (_ i:A: | |||
| _) il (ln Il | |||
| @) i (less I | |||
| _) il (lust Il | |||
| _C) i (lo aI | |||
| &) ily (_S2i l%I | |||
| @) i (ness I | |||
| i (o I2 | |||
| _) i (o aI | |||
| @@ -2971,7 +2952,7 @@ | |||
| ize (_ aIz | |||
| ial) ize (_S3 aIz | |||
| ize (d_ aIz | |||
| i (zen I2 | |||
| i (zen I | |||
| iz (er_ aIz | |||
| i (zon_ 'aI | |||
| _p) izz i:t|s | |||
| @@ -3055,6 +3036,7 @@ | |||
| &n) iel (_ j@L | |||
| &r) iel (_ =i:@L | |||
| ie (n i@ | |||
| &) ie (n_ =i@n | |||
| d) iene (_ 'aIi:n | |||
| ie (ntal I'E | |||
| g) ie (n i: | |||
| @@ -3135,6 +3117,40 @@ | |||
| igu (e 'i:g | |||
| igu (_ 'i:g | |||
| .group il | |||
| @b) il (_ @L | |||
| @Cc) il (_ @L | |||
| @p) il (_ @L | |||
| @r) il (_ @L | |||
| @s) il (_ @L | |||
| nt) il (_ @L | |||
| @v) il (_ @L | |||
| @) ila (_ 'Il@ | |||
| ?3 &) ile (_$w_alt2 @L | |||
| _C) il (age aIl | |||
| _d) il (at %aIl | |||
| l) il (ah_ aIl | |||
| _m) il (d aIl | |||
| _w) il (d aIl | |||
| ch) il (d aIl | |||
| w) il (derC Il | |||
| ch) il (dr Il | |||
| sacr) ile IlI | |||
| il (eA Il | |||
| &) ile (ge @lI | |||
| il (ise @l | |||
| il (ize @l | |||
| s) il (en aIl | |||
| C) il (er aIl | |||
| _) il (l@ %Il | |||
| @) illa (_ 'Il@ | |||
| &) illard (_ i:A: | |||
| _) il (ln Il | |||
| _) il (lust Il | |||
| _C) il (o aIl | |||
| &) ily (_S2i l%I | |||
| .group im | |||
| &) im (_ I#m | |||
| cl) im aIm | |||
| @@ -3161,6 +3177,7 @@ | |||
| imm (in Im | |||
| immo (bi Im'oU | |||
| imm (unis Im | |||
| _) immu (no I2mju: | |||
| @) imous (_ =Im@s | |||
| im (pac Im | |||
| im (pecu ,Im | |||
| @@ -3241,6 +3258,7 @@ | |||
| in (ga_ 'IN | |||
| in (got IN | |||
| _) in (gro IN | |||
| _) in (im I2n | |||
| _) in (jur In | |||
| _) in (k IN | |||
| _) in (l In | |||
| @@ -3493,7 +3511,7 @@ | |||
| @) istan (_ =Istan | |||
| @) istani (_ Ist'A:nI | |||
| @) iste (_ 'i:st | |||
| @) is (tic 'Is | |||
| @) is (tic_ 'Is | |||
| r) is (y_ =@s | |||
| @@ -4074,7 +4092,6 @@ | |||
| betr) oth oUD | |||
| ?3 cl) o (th O | |||
| cl) othe oUD | |||
| tr) othe oUD | |||
| b) o (ther 0 | |||
| _r) o (ther 0 | |||
| o (ther+ V | |||
| @@ -4212,7 +4229,7 @@ | |||
| dr) on (_ @n | |||
| or) on (_ 0n | |||
| cr) on (_ 0n | |||
| x) on (_+ 0n | |||
| @x) on (_ @n | |||
| phot) on @n | |||
| pers) on @n | |||
| pers) on (i '0n | |||
| @@ -4295,6 +4312,7 @@ | |||
| .group or | |||
| or o@ | |||
| _) or O@ | |||
| _) organo (@P6 O@g,anoU | |||
| or (ch_ O@ | |||
| or (m_ O@ | |||
| st) or (m o@ | |||
| @@ -5221,6 +5239,7 @@ | |||
| ?5 _) sur sVR | |||
| _) sure SU@ | |||
| sur (anc SU@ | |||
| sur (g+ s3: | |||
| sur (m s3 | |||
| sur (pa s3 | |||
| sur (pr s3 | |||
| @@ -5253,6 +5272,7 @@ | |||
| te (rrest t2@ | |||
| r) tga (g gI | |||
| @) t (ia S | |||
| _pi) t (ia t | |||
| s) t (l | |||
| to (morr t@ | |||
| _) to (nn tV | |||
| @@ -5265,6 +5285,7 @@ | |||
| tribe traIb | |||
| _) tri (bu trI | |||
| _) tri (g trI | |||
| _) tri (gonA trI | |||
| _) tri (ni trI | |||
| _) tri (vi trI | |||
| _) tri (xA trI | |||
| @@ -5274,23 +5295,6 @@ | |||
| _) tsu tsu: | |||
| _) two tu: | |||
| ttu (r t@ | |||
| @) tu (al tSu: | |||
| @) tu (at tSu: | |||
| _sta) tu tSu: | |||
| ?3 _sta) tu (to tS@ | |||
| c) tu (al_ =tSu: | |||
| r) tue (_ tSu: | |||
| ?3 tu (la_ tS@ | |||
| @) tu (lat =tSU | |||
| ?3 tu (Ant tSu: | |||
| ?3 tu (Ancy tSu: | |||
| tu (ous tSu: | |||
| @) tur (A tS@r | |||
| @) tur (al_ tS=@r | |||
| &) tur (y tS@r | |||
| &) tur (_ tS3 | |||
| &) ture (_ tS3 | |||
| tz ts | |||
| tze (_ tsi | |||
| @@ -5367,7 +5371,26 @@ | |||
| &) tious S=@s | |||
| AC) tive (_ =tIv | |||
| .group tu | |||
| @) tu (al tSu: | |||
| @) tu (at tSu: | |||
| _sta) tu tSu: | |||
| ?3 _sta) tu (to tS@ | |||
| c) tu (al_ =tSu: | |||
| r) tue (_ tSu: | |||
| ?3 tu (la_ tS@ | |||
| @) tu (lat =tSU | |||
| ?3 tu (Ant tSu: | |||
| ?3 tu (Ancy tSu: | |||
| tu (ous tSu: | |||
| @) tur (A tS@r | |||
| @) tur (al_ tS=@r | |||
| &) tur (y tS@r | |||
| &) tur (_ tS3 | |||
| &) ture (_ tS3 | |||
| .group u | |||
| u V | |||
| man) u ju: | |||
| @@ -6069,6 +6092,7 @@ | |||
| ö 3: | |||
| ör 3: | |||
| ü u: | |||
| û u: | |||
| ç s | |||
| ß s | |||
| č tS | |||
| @@ -29,6 +29,7 @@ _tld t'ilde | |||
| // names of symbols | |||
| ª a | |||
| º o | |||
| ° grados | |||
| _. punto | |||
| _, koma | |||
| _; p,untoik'oma | |||
| @@ -123,6 +124,9 @@ _dpt koma | |||
| _#º o | |||
| _#ª a | |||
| _ord o | |||
| ºc gr'ados||T'e | |||
| ºf gr'ados||'Efe | |||
| ºk gr'ados||k'a | |||
| _1o prim'Er | |||
| _2o seQ'und | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage | |||
| // This file is UTF-8 encoded | |||
| @@ -40,6 +40,50 @@ | |||
| y ipsilon | |||
| z z@ | |||
| ž Z@ | |||
| а a | |||
| б b@ | |||
| ц ts@ | |||
| ћ tS;@2 | |||
| ч tS@ | |||
| џ dZ@ | |||
| ѕ dz@ | |||
| д d@ | |||
| ђ dZ;@2 | |||
| е E | |||
| ф f@ | |||
| г g@ | |||
| х x@ | |||
| и i | |||
| ј j@2 | |||
| к k@ | |||
| љ l^@ | |||
| л l@ | |||
| м m@ | |||
| њ n^@ | |||
| н n@ | |||
| о o | |||
| п p@ | |||
| р R@ | |||
| _с s@ | |||
| ш S@ | |||
| т t@ | |||
| у u | |||
| в v@ | |||
| з z@ | |||
| ж Z@ | |||
| ѓ dZ;@2 | |||
| ќ tS;@2 | |||
| ё jo | |||
| й kr,atko||'i | |||
| щ StS;@2 | |||
| ъ tvR2d'i||zn,ak | |||
| ы jeri | |||
| ь m'eki||z,nak | |||
| э e | |||
| ю ju | |||
| я ja | |||
| _á $accent | |||
| _é $accent | |||
| @@ -47,6 +91,10 @@ _í $accent | |||
| _ó $accent | |||
| _ú $accent | |||
| _ar 'Arapsko | |||
| _cyr tS;'iRilitsa | |||
| // accent names | |||
| _lig l'ig&t,UR& | |||
| _acu 'akUt | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage | |||
| // This file is UTF-8 encoded | |||
| @@ -31,7 +31,9 @@ | |||
| .group d | |||
| d d | |||
| dz dz | |||
| _) dz (_ dz@ | |||
| dž dZ | |||
| _) dž (_ dZ@ | |||
| .group đ | |||
| đ dZ; | |||
| @@ -67,6 +69,8 @@ | |||
| .group l | |||
| l l | |||
| K) l (K l- | |||
| _) lj (_ l^@ | |||
| lj (+ l^ | |||
| v) lj lj | |||
| @@ -79,6 +83,7 @@ | |||
| n (k N | |||
| nj n^ | |||
| _) nj (_ n^@ | |||
| .group o | |||
| o o | |||
| @@ -162,7 +162,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
| श S@ | |||
| ष s.@ // retroflex [S] | |||
| स s@ | |||
| ह H@- | |||
| ह H@ | |||
| क़ q@ | |||
| ख़ x@ | |||
| ग़ Q@ | |||
| @@ -196,10 +196,21 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
| _?? Vks.@r | |||
| // Alphabet names | |||
| _ar 'Vrbi | |||
| _cyr sIrIk'Ik | |||
| _zh c'i@ni | |||
| // Punctuation | |||
| । dVn.d.V | |||
| $ dOl@r | |||
| % pVt'IS@t | |||
| + plVs | |||
| = bVr'a:b@r | |||
| * ta:r'a:Nk@n | |||
| * | |||
| // Pronouns | |||
| मैं $u // main: IrI | |||
| मुझे $u | |||
| @@ -262,7 +273,7 @@ _?? Vks.@r | |||
| को $u // ko: to | |||
| तक $u // tak: until, for(time) | |||
| बिना $u $pause // without (preposition) | |||
| में $u // me: in | |||
| में me~: $u+ // me: in | |||
| से $u // se: from, with, by | |||
| @@ -272,7 +283,7 @@ _?? Vks.@r | |||
| // Conjunctions | |||
| और $u $pause // aur: and | |||
| और $u $brk // aur: and | |||
| य j@ $u $pause // ja: or | |||
| अगर $u $pause // agar: if | |||
| यदि $u $pause // yadi: if, whether | |||
| @@ -299,5 +310,5 @@ _?? Vks.@r | |||
| // Exceptions | |||
| क्रिकेट krIk'Et | |||
| क्रिकेट kr'IkIt | |||
| सायबर s'aIb@r | |||
| @@ -390,7 +390,7 @@ | |||
| ः H // visarga | |||
| .group ् // virama | |||
| ् | |||
| ् | |||
| // Extra consonants | |||
| @@ -410,7 +410,7 @@ | |||
| ज़ zV | |||
| ज़ (B z | |||
| .group ड़ // dddha (should retroflex flap) | |||
| .group ड़ // dddha (should retroflex flap ?) | |||
| ड़ r.V | |||
| ड़ (B r. | |||
| @@ -443,8 +443,3 @@ | |||
| .group | |||
| $ dOlV | |||
| % pVsEnt | |||
| @@ -1,4 +1,4 @@ | |||
| // This file is UTF-8 encoded | |||
| // This file is UTF-8 encoded | |||
| // $alt change [e] or [o] in the stressed syllable to [E] or [O] | |||
| @@ -82,6 +82,7 @@ _tld t'ilde | |||
| # kantSellet:o | |||
| @ ki'otS:ola | |||
| ~ tilde | |||
| ° g@-*'a:di | |||
| : d,uep'unti | |||
| _! p,untoesklamat'ivo | |||
| @@ -24,8 +24,8 @@ _9X g'u_!||s'ip_! | |||
| _0C p'Eq_! | |||
| // Larger numbers | |||
| _0M0 tS'h-@n // 10^3 | |||
| _1M0 tS'h-@n | |||
| _0M0 tS'h@n // 10^3 | |||
| _1M0 tS'h@n | |||
| _0M1 m'an // 10^4 | |||
| _1M1 m'an | |||
| _0M2 '@q // 10^8 | |||
| @@ -50,7 +50,7 @@ _1M4 gj'@N | |||
| ᄋ i;'u-N | |||
| ᄌ tS;i;'u-t | |||
| ᄍ 's-aNdZ;,i;u-t | |||
| ᄎ tSh-'i;u-t | |||
| ᄎ tSh'i;u-t | |||
| ᄏ khi;'u-k | |||
| ᄐ thi;'u-t- | |||
| ᄑ phi;'u-p | |||
| @@ -83,7 +83,7 @@ | |||
| ᄍ 'tS;- // TODO: phoneme | |||
| .group ᄎ // ㅊ | |||
| ᄎ tSh- // TODO: phoneme | |||
| ᄎ tSh // TODO: phoneme | |||
| .group ᄂ // ㄴ | |||
| ᄂ ;n | |||
| @@ -198,7 +198,7 @@ | |||
| ᇀᄂ nn | |||
| ᇀᄆ mm | |||
| ᇀ (A th | |||
| ᇀ (L02 tSh; | |||
| ᇀ (L02 tS;h | |||
| .group ᆸ // ㅂ | |||
| ᆸ p | |||
| @@ -236,7 +236,7 @@ | |||
| ᆾ t | |||
| ᆾᄂ nn | |||
| ᆾᄆ mm | |||
| ᆾ (A tSh; | |||
| ᆾ (A tS;h | |||
| .group ᆫ // ㄴ | |||
| ᆫ n | |||
| @@ -295,12 +295,5 @@ | |||
| .group 0xe0a4 // devanagari | |||
| 0xe0a4 _^_HI // switch to hindi voice | |||
| .group 0xe0a5 // devanagari | |||
| 0xe0a5 _^_HI | |||
| .group | |||
| $ do:l.ar | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // This file in UTF8 encoded | |||
| // $alt2, remove s from plural, remove en from plural | |||
| @@ -58,7 +58,7 @@ _tld t'Ild@ | |||
| // punctuation | |||
| . p8nt $max3 | |||
| . p8nt | |||
| _, k'Oma: | |||
| _: d'8b@l@p,8nt | |||
| _; p'8ntkOm,a: | |||
| @@ -75,10 +75,12 @@ _) h'a:kj@sl'Wyt@n | |||
| _{ v'irkAnt@h,a:k | |||
| _} v'irkAnt@h,a:ksl'Wyt@n | |||
| _- k'OpElt,e:k@n | |||
| + pl'8s $max3 | |||
| * st'E*rEt;@ $max3 | |||
| + pl'8s | |||
| * st'E*rEt;@ | |||
| = Q@l'EIkte:k@n | |||
| __ l'IgEntst@-*'e:pj@ | |||
| € 'Y:*o:t,e:k@n | |||
| ° Qra:d@n | |||
| // numbers | |||
| @@ -133,6 +135,7 @@ _0Co h'OndErtst@ | |||
| // abbreviations | |||
| be $abbrev // used as domain abbrev for Belgium and in a lot of other names | |||
| ca ka: $hasdot | |||
| enz Enzo:vo:rt | |||
| bvb bEIv'o:rbe:lt | |||
| eu e:_y: $abbrev | |||
| @@ -379,6 +382,7 @@ reken $alt | |||
| schepen $alt | |||
| steven $alt | |||
| teken $alt | |||
| volwassen $alt | |||
| wapen $alt | |||
| zegen $alt | |||
| trokken $alt | |||
| @@ -4,7 +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 | |||
| .L02 _ t_ d_ de_ den_ nen_ // verb endings ('nen' for 'scannen') | |||
| .group a | |||
| @@ -330,13 +330,20 @@ | |||
| g Q // ph_dutch changes to [x] before unvoiced, NULL after [x] | |||
| gg Q | |||
| s) g x | |||
| @) gi (eus Z | |||
| @) gi (euz Z | |||
| reli) gi (eu Qij | |||
| .group ge | |||
| _) ge (@P2 Q@ | |||
| ge (bied Q@ | |||
| _) gee Qe: | |||
| _) gei QEI | |||
| gener (aal Q,e:n@r | |||
| _) gelijk Q@lEIk | |||
| _) ge (lC QE | |||
| _) ge (rC QE | |||
| _) geu QY: | |||
| _) ge (ven Qe: | |||
| @@ -346,10 +353,8 @@ | |||
| ge (sprek Q@ // in compounds | |||
| @) gi (eus Z | |||
| @) gi (euz Z | |||
| reli) gi (eu Qij | |||
| .group h | |||
| h h | |||
| @@ -360,6 +365,7 @@ | |||
| _) herinn h%ErIn // herinneren | |||
| _) hersen h'Ers@n | |||
| &) heid (_S4 hEIt | |||
| _) hulp (@@P4 h'8lp | |||
| .group i | |||
| @@ -546,13 +552,14 @@ _) inn (@P2 'I // ?? inneren | |||
| pl) oi (t v#A | |||
| c) oi (ffu v#A | |||
| pr) o (gram o: | |||
| omgeving OmQ'e:vIN | |||
| 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 | |||
| _) op (enen+ 'o:p | |||
| _) openings (P8 'o:p@nINs | |||
| _) op (era 'o:p | |||
| _) op (tion Op | |||
| @@ -329,8 +329,7 @@ vocês $u2+ $verbf | |||
| eles $u+ $verbf | |||
| elas $u+ $verbf | |||
| me $u // reflexive | |||
| me $u $verbf | |||
| me $u $verbf // reflexive | |||
| te $u $verbf | |||
| nos $u $nounf | |||
| la $u | |||
| @@ -345,7 +344,7 @@ se $u | |||
| ?2 nesta $u+ $nounf | |||
| ?2 neste $u+ $nounf n'estSi //in this | |||
| ?2 esse $u+ $nounf 'esi // that | |||
| essa 'Es& $u+ | |||
| essa 'Es& $u+ $noun | |||
| desse $u+ $nounf | |||
| desta $nounf | |||
| nesse n'esy $u+ $nounf | |||
| @@ -384,7 +383,7 @@ duma $u $nounf | |||
| duns $u $nounf | |||
| dumas $u $nounf | |||
| em $u // in,on,at | |||
| em $u $noun // in,on,at | |||
| no nu $u $nounf | |||
| na $u $nounf | |||
| num $u $nounf | |||
| @@ -427,7 +426,7 @@ com $u // with | |||
| // conjunctions | |||
| ?1 e i $u // and | |||
| ?2 e i $u // and | |||
| se $u // if | |||
| se $u+ $verbf // if | |||
| ?2 mas $u // but | |||
| @@ -522,7 +521,7 @@ estão $u | |||
| estava $u | |||
| estávamos $u | |||
| astavam $u | |||
| estavam $u | |||
| estive $u | |||
| ?2 esteve estevy $u2 | |||
| @@ -619,9 +618,14 @@ o O $atend | |||
| // some common adjectives and adverbs | |||
| alguns $u // some | |||
| algumas $u // some | |||
| não n,&U~ $strend // not | |||
| alguns $u $noun // some | |||
| algumas $u $noun // some | |||
| não n,&U~ $verbf $strend // not | |||
| nunca $u+ $verbf | |||
| sempre $u+ $verbf | |||
| qualquer $u $nounf | |||
| quaisquer $u $nounf | |||
| jamais $u+ $verbf | |||
| // MAIN WORD DICTIONARY | |||
| @@ -639,18 +643,19 @@ acervo $alt2 | |||
| adepto $alt | |||
| adore $alt | |||
| adorno $alt $verb | |||
| aeroporto $alt2 | |||
| aeroportos $alt | |||
| albatrozes $alt | |||
| alcateia $alt | |||
| alcova $alt2 | |||
| alferes $alt | |||
| algozes $alt | |||
| alicerce $alt | |||
| almoço $alt $verb | |||
| amarelo $alt | |||
| ameba $alt | |||
| amores $alt2 | |||
| antonieta $alt2 | |||
| apego $alt2 $noun | |||
| apelo $alt $verb | |||
| apelo $alt2 $noun | |||
| aposto $alt $verb | |||
| aperto $alt2 $noun | |||
| apneia $alt | |||
| @@ -660,8 +665,8 @@ arremesso $alt2 $noun | |||
| arroz $alt2 | |||
| assembleia $alt | |||
| ateia $alt | |||
| aterro $alt2 $noun | |||
| aterros $alt2 | |||
| aterro $alt2 | |||
| aterro $alt $verb | |||
| atmosfera $alt | |||
| atrozes $alt | |||
| autora $alt2 | |||
| @@ -671,10 +676,10 @@ azeda $alt $verb | |||
| azedo $alt $verb | |||
| baqueta $alt2 | |||
| beco $alt2 | |||
| belo $alt | |||
| besta $alt2 | |||
| bilhete $alt2 | |||
| boca $alt2 | |||
| boceta $alt2 | |||
| bochecha $alt2 | |||
| bojo $alt2 | |||
| boleia $alt | |||
| @@ -683,37 +688,41 @@ bolo $alt2 | |||
| bolo $alt $verb | |||
| borboleta $alt2 | |||
| bordo $alt | |||
| borra $alt2 $noun | |||
| bosque $alt | |||
| boto $alt2 $noun | |||
| boxe $alt | |||
| brejo $alt | |||
| bromelha $alt | |||
| cabelo $alt2 | |||
| cabresto $alt2 | |||
| cacete $alt2 | |||
| cachorra $alt2 | |||
| caderneta $alt2 | |||
| cadete $alt2 | |||
| camelha $alt | |||
| camelo $alt2 | |||
| caminhonete $alt | |||
| camiseta $alt2 | |||
| cantora $alt2 | |||
| capacete $alt2 | |||
| caractere $alt | |||
| caramelo $alt | |||
| carbureto $alt2 | |||
| careta $alt2 | |||
| carreta $alt2 | |||
| carroça $alt | |||
| casebre $alt | |||
| castelo $alt | |||
| cateto $alt2 | |||
| catorze $alt2 | |||
| cebola $alt2 | |||
| cefaleia $alt | |||
| centopeia $alt | |||
| centopeia $alt | |||
| cerca $alt | |||
| cerca $alt2 $noun | |||
| cerco $alt $verb | |||
| chamego $alt2 | |||
| chefe $alt | |||
| checam $alt | |||
| cheque $alt | |||
| chinelo $alt | |||
| choro $alt2 $noun | |||
| chovesse $alt2 | |||
| chupeta $alt2 | |||
| @@ -721,7 +730,6 @@ clamores $alt2 | |||
| clero $alt | |||
| coco $alt2 | |||
| cofre $alt | |||
| cogumelo $alt | |||
| coice $alt2 | |||
| colabore $alt | |||
| colete $alt2 | |||
| @@ -736,9 +744,11 @@ concerto $alt2 $noun | |||
| concertos $alt2 | |||
| concordo $alt | |||
| conforto $alt $verb | |||
| congelo $alt | |||
| console $alt2 $noun | |||
| consolo $alt2 $noun | |||
| controle $alt2 $noun | |||
| controles $alt2 | |||
| controles $alt $verb | |||
| controlo $alt2 $noun | |||
| coreia $alt | |||
| coreto $alt2 | |||
| @@ -749,37 +759,39 @@ corto $alt | |||
| corveta $alt2 | |||
| corvos $alt | |||
| coto $alt2 | |||
| cotovelo $alt2 | |||
| cratera $alt | |||
| crede $alt2 | |||
| crepe $alt | |||
| decore $alt | |||
| degelo $alt2 | |||
| desapego $alt2 $noun | |||
| descabelo $alt | |||
| descordo $alt | |||
| desemprego $alt2 | |||
| desemprego $alt $verb | |||
| desespero $alt2 $noun | |||
| desfecho $alt2 | |||
| desmantelo $alt $verb | |||
| desmantelo $alt2 $noun | |||
| desporto $alt2 | |||
| desportos $alt | |||
| desprezo $alt2 $noun | |||
| desse $alt2 | |||
| desse $alt $verb | |||
| deste $alt2 | |||
| deste $alt $verb | |||
| desterro $alt2 | |||
| destroem $alt | |||
| destroem $alt | |||
| deveras $alt | |||
| dez $alt | |||
| diarreia $alt | |||
| diego $alt2 | |||
| discordo $alt | |||
| dobro $alt2 $noun | |||
| doce $alt2 | |||
| doutora $alt2 | |||
| droga $alt | |||
| duelo $alt | |||
| dueto $alt2 | |||
| elixir eliSir | |||
| elo $alt | |||
| emprego $alt2 $noun | |||
| empregos $alt2 | |||
| encosto $alt $verb | |||
| @@ -787,73 +799,77 @@ endereço $alt $verb | |||
| enforco $alt | |||
| engordo $alt | |||
| enredo $alt $verb | |||
| enrosco $alt $verb | |||
| enrosco $alt $verb | |||
| enterro $alt2 $noun | |||
| enumerem $alt | |||
| envelope $alt | |||
| envolto $alt2 | |||
| enxaqueca $alt2 | |||
| enxerto $alt2 $noun | |||
| epopeia $alt | |||
| eritreia $alt | |||
| erro $alt2 $noun | |||
| erros $alt2 | |||
| erro $alt2 | |||
| erro $alt $verb | |||
| esboço $alt $verb | |||
| escopeta $alt2 | |||
| escova $alt2 $noun | |||
| escovas $alt2 | |||
| escovas $alt2 | |||
| escovo $alt | |||
| escroto $alt2 | |||
| esforço $alt $verb | |||
| esforços $alt | |||
| esgoto $alt2 $noun | |||
| esgotos $alt2 | |||
| esgoto $alt2 | |||
| esgoto $alt $verb | |||
| esperma $alt | |||
| espeto $alt2 $noun | |||
| espiroqueta $alt2 | |||
| espoleta $alt2 | |||
| esposa $alt2 | |||
| esqueleto $alt2 | |||
| estilete $alt2 | |||
| estilete $alt2 | |||
| estrela $alt2 | |||
| estrofe $alt | |||
| estorno $alt $verb | |||
| estorvo $alt $verb | |||
| etiqueta $alt2 | |||
| europa $alt | |||
| europeia $alt | |||
| europeia $alt | |||
| exagero $alt $verb | |||
| explore $alt | |||
| faceta $alt2 | |||
| fantoche $alt | |||
| farelo $alt | |||
| fantoche $alt | |||
| farofa $alt | |||
| farolete $alt2 | |||
| febre $alt | |||
| fera $alt | |||
| feitora $alt2 | |||
| ferozes $alt | |||
| fezes $alt | |||
| filete $alt2 | |||
| ?1 fixe fiSy | |||
| foda $alt2 $verb | |||
| folheto $alt2 | |||
| folga $alt | |||
| fogos $alt | |||
| foguete $alt2 | |||
| foice $alt2 | |||
| folheto $alt2 | |||
| fora $alt | |||
| fora $alt2 $verb | |||
| forca $alt2 | |||
| força $alt2 $noun | |||
| forças $alt2 | |||
| forço $alt | |||
| formos $alt2 | |||
| forro $alt $verb | |||
| frevo $alt2 | |||
| fulgores $alt2 | |||
| galera $alt | |||
| galileia $alt | |||
| gameta $alt2 | |||
| garçonete $alt2 | |||
| geleia $alt | |||
| gelo $alt2 | |||
| gelo $alt $verb | |||
| genebra $alt | |||
| germe $alt | |||
| gesso $alt2 | |||
| golpe $alt | |||
| gonorreia $alt | |||
| @@ -871,28 +887,30 @@ hemorroida $alt | |||
| hoje $alt2 | |||
| horrores $alt2 | |||
| ideia $alt | |||
| interesse $alt2 $noun | |||
| imberbe $alt | |||
| interesse $alt2 | |||
| interesse $alt $verb | |||
| jogo $alt2 $noun | |||
| joguete $alt2 | |||
| lagosta $alt2 | |||
| lambreta $alt2 | |||
| lanchonete $alt | |||
| lebre $alt | |||
| lembrete $alt2 | |||
| lepra $alt | |||
| leste $alt2 $verb | |||
| lingueta $alt2 | |||
| lopes $alt | |||
| macete $alt2 | |||
| maior $alt | |||
| maleta $alt2 | |||
| marcelo $alt | |||
| marmelo $alt | |||
| marionete $alt | |||
| marreta $alt2 | |||
| martelo $alt | |||
| megera $alt | |||
| melhor $alt | |||
| menor $alt | |||
| merda $alt | |||
| megera $alt | |||
| melo $alt | |||
| mentora $alt2 | |||
| merda $alt | |||
| meta $alt $noun | |||
| meteoro $alt | |||
| metro $alt | |||
| @@ -902,8 +920,11 @@ mexo m'eSU | |||
| minueto $alt2 | |||
| miolo $alt2 | |||
| miolos $alt | |||
| modelo $alt2 | |||
| modelo $alt $verb | |||
| moeda $alt | |||
| mofo $alt $verb | |||
| moem $alt | |||
| mofo $alt $verb | |||
| molho $alt2 $noun | |||
| monera $alt | |||
| morcego $alt2 | |||
| @@ -922,12 +943,15 @@ namoro $alt2 $noun | |||
| naquela $nounf | |||
| naquele $alt2 $nounf | |||
| nervo $alt2 | |||
| nojo $alt2 | |||
| novelo $alt2 | |||
| novos $alt | |||
| obstetra $alt | |||
| odisseia $alt | |||
| onu $1 | |||
| olho $alt2 $noun | |||
| onomatopeia $alt | |||
| olho $alt2 $noun | |||
| olhos $alt | |||
| onomatopeia $alt | |||
| opereta $alt2 | |||
| ordens $alt | |||
| osso $alt2 | |||
| @@ -941,16 +965,14 @@ palacete $alt2 | |||
| palheta $alt2 | |||
| panfleto $alt2 | |||
| pangeia $alt | |||
| panqueca p,&~Nk'Ek& | |||
| pantera $alt | |||
| paralelo $alt | |||
| parede $alt2 | |||
| pastora $alt2 | |||
| patinete $alt | |||
| pedra $alt | |||
| pela $alt $verb | |||
| pelego $alt2 | |||
| pela $alt $verb | |||
| pelo $alt $verb | |||
| pelo $alt2 | |||
| pelo $alt $verb | |||
| peso $alt $verb | |||
| piloto $alt2 $noun | |||
| pintora $alt2 | |||
| @@ -969,7 +991,7 @@ pose $alt2 | |||
| povos $alt | |||
| poxa p'oS& | |||
| primavera $alt | |||
| prosopopeia $alt | |||
| prosopopeia $alt | |||
| quarteto $alt2 | |||
| queda $alt | |||
| quede $alt2 | |||
| @@ -985,12 +1007,17 @@ reforço $alt $verb | |||
| reforços $alt | |||
| refresco $alt $verb | |||
| reitora $alt2 | |||
| rejo $alt | |||
| relevo $alt2 $noun | |||
| remorso $alt | |||
| renovo $alt $verb | |||
| retorno $alt $verb | |||
| reuva x'EUv& | |||
| rigores $alt2 | |||
| rixa x'iS& | |||
| rocha $alt | |||
| rock $alt | |||
| roem $alt | |||
| rola $alt2 $noun | |||
| rolo $alt2 $noun | |||
| rota $alt2 | |||
| @@ -1003,12 +1030,12 @@ seca $alt2 $noun | |||
| secas $alt2 | |||
| seco $alt2 | |||
| seco $alt $verb | |||
| selo $alt $verb | |||
| selo $alt2 | |||
| selo $alt $verb | |||
| selvagem seUv'aZeIN | |||
| sexteto $alt2 | |||
| ?1 senhora $alt2 | |||
| senhores $alt2 | |||
| singelo $alt | |||
| sinopse $alt | |||
| soco $alt2 | |||
| soco $alt $verb | |||
| @@ -1025,6 +1052,7 @@ suor swOr | |||
| tapete $alt2 | |||
| temores $alt2 | |||
| tempero $alt2 $noun | |||
| tenores $alt2 | |||
| terrores $alt2 | |||
| teta $alt2 | |||
| tetra $alt | |||
| @@ -1032,9 +1060,10 @@ tocha $alt | |||
| toga $alt | |||
| topo $alt $verb | |||
| torno $alt $verb | |||
| tornozelo $alt2 | |||
| torre $alt2 $noun | |||
| torres $alt2 | |||
| torro $alt | |||
| torro $alt | |||
| tortos $alt | |||
| traqueia $alt | |||
| travesso $alt2 | |||
| @@ -1047,17 +1076,14 @@ trombeta $alt2 | |||
| tumores $alt2 | |||
| valeta $alt2 | |||
| vanessa $alt2 | |||
| velo $alt | |||
| velozes $alt | |||
| verme $alt | |||
| verbete $alt2 | |||
| violeta $alt2 | |||
| violoncelo $alt | |||
| voga $alt | |||
| vozes $alt | |||
| xarope $alt | |||
| xeque $alt | |||
| zelo $alt $verb | |||
| zero $alt | |||
| zelo $alt2 $noun | |||
| zorra $alt2 | |||
| @@ -1067,7 +1093,8 @@ zorra $alt2 | |||
| ?1 back b'Ek | |||
| ?2 backup bEk'&p | |||
| ?2 backups bEk'&ps | |||
| ?1 blind bl'aind | |||
| blind bl'aind | |||
| book buk | |||
| ?1 braille b:r'aily | |||
| ?2 Braille bR'aili | |||
| ?1 cancel k'&ns'El | |||
| @@ -1083,8 +1110,10 @@ zorra $alt2 | |||
| ?1 download d'a,wnl'oud | |||
| ?2 download daUNl'owd | |||
| ?3 download dau~Nl'owd | |||
| drive dR'aivy | |||
| driver dR'aiver | |||
| drivers dR'aiveRs | |||
| ?1 end 'end | |||
| ?1 escape Sk'eIpy | |||
| ?2 esc 'Esk | |||
| ?3 esc 'EskI | |||
| ?1 explorer ,ekspl'O:*&r- | |||
| @@ -1107,6 +1136,7 @@ zorra $alt2 | |||
| ?2 Intranet iNtRan'Et | |||
| ?1 kernel k'Ern,El | |||
| ?2 kernel k'Ern@l | |||
| laptop lEptOp | |||
| ?1 line l'ain | |||
| layout l'eI,aUt | |||
| ?2 logo l'OgU | |||
| @@ -1123,6 +1153,7 @@ zorra $alt2 | |||
| ?1 ovo 'ovu | |||
| ?1 pause p'au:z | |||
| page p'eIdZ | |||
| pizza p'its& | |||
| python p'aIT&~N | |||
| ?1 readme r'i:dmi: | |||
| ?1 sapi s,ap'i | |||
| @@ -1137,14 +1168,13 @@ símbolo s'imbolU | |||
| ?2 software s'Oftwe@- | |||
| ?1 space sp'eIsy | |||
| ?1 sporting sp'Ort,ing | |||
| ?1 tab t'ab | |||
| tab t'aby | |||
| tablet t'ablet | |||
| ?1 telemóvel t,El,Em'OvEl | |||
| ?1 telemóveis t,El,Em'OveIs# | |||
| ?1 up &p | |||
| ?1 upload &pl'oud | |||
| ?2 web w'Eb | |||
| ?2 verbete verb'etSi | |||
| ?2 verbetes verb'etSis | |||
| ?1 yahoo 'i,ah'u | |||
| ?2 yahoo iah'u | |||
| ?1 yes j'Es | |||
| @@ -1158,14 +1188,16 @@ louis _^_FR | |||
| // foreign product names | |||
| ?1 access 'aks,Es | |||
| ?1 adobe &d'Oby | |||
| apple 'Epow | |||
| chrome kR'owmi | |||
| debian d'Ebj&~N | |||
| ?1 excel ,Eks'El | |||
| ?1 express ,Ekspr'Es | |||
| espeak isp'i:k | |||
| ?1 espeakedit isp'i:kEd,it | |||
| facebook feisybuk | |||
| ?1 fedora _^_EN | |||
| ?1 firefox f'ai&rfOks | |||
| ?2 firefox f'ai@fOks | |||
| firefox f'ai@fOks | |||
| ?1 front fr'ont | |||
| ?1 jaws dZ'au:z | |||
| ?1 linux l,in'uks | |||
| @@ -1178,7 +1210,8 @@ louis _^_FR | |||
| ?2 microsoft m'aIkRows'Oft | |||
| ?1 movie m'uvi | |||
| ?1 nero n'Eru | |||
| ?1 office 'Of,is | |||
| /1 office 'Of,is | |||
| ?2 office 'Ofsy | |||
| openoffice 'opeIN|'Ofis | |||
| ?1 outlook 'autl'uk | |||
| ?2 Outlook ,aUtl'uk | |||
| @@ -1200,6 +1233,7 @@ playstation _^_EN | |||
| suse z'u:ts@ | |||
| ?1 start st'art // nero StartSmart | |||
| ?1 time t'aImy // nero show time | |||
| twitter tw'iter | |||
| ubuntu ub'untu | |||
| ?1 unix ,u:n'iks | |||
| ?2 unix j'uniks | |||
| @@ -47,7 +47,6 @@ | |||
| ?1 a (lK ,A // Algarve, Almerinda, etc... | |||
| ?2 al (K aU | |||
| a (lh+ a | |||
| a (m &~ | |||
| a (mAr_ & | |||
| a (mA@ & | |||
| @@ -100,6 +99,7 @@ | |||
| ái (s ''aI | |||
| á (iCK ''a | |||
| áy ''aI | |||
| ál (C ''aU | |||
| áu ''aU | |||
| áu (s ''aU | |||
| ?1 ál ''Al | |||
| @@ -198,7 +198,7 @@ | |||
| e (guem_ E | |||
| e (lA_ E | |||
| e (lo_ e | |||
| e (lo_ E | |||
| e (lAm_ E | |||
| i) e (r_ E | |||
| @@ -220,9 +220,15 @@ | |||
| f) e (re_ E | |||
| f) e (rem_ E | |||
| e (que_ E | |||
| e (quem_ E | |||
| e (rgA_ E | |||
| e (rgAm_ E | |||
| e (rgue_ E | |||
| e (rguem_ E | |||
| e (rsA_ E | |||
| e (rsAm_ E | |||
| @@ -236,6 +242,8 @@ | |||
| e (stAm_ E | |||
| e (strA_ E | |||
| e (rme_ E | |||
| e (rnA_ E | |||
| e (rnAm_ E | |||
| @@ -265,7 +273,6 @@ | |||
| e (xA_ E | |||
| e (xAm_ E | |||
| ?2 _n) e (t E | |||
| em (C eIm | |||
| en (K eIN | |||
| enh en^ | |||
| @@ -359,6 +366,7 @@ | |||
| _perd) e (L05_ e | |||
| _quis) e (L05_ E | |||
| _soub) e (L05_ E | |||
| _talh) e (L05_ E | |||
| _trem) e (L05_ e | |||
| diss) e (L06_ E // contra- | |||
| fend) e (L06_ e // de- o- | |||
| @@ -452,25 +460,26 @@ respond) e (L07_ e // cor- | |||
| _hosp) e (dL03_ E | |||
| _gr) e (gL03_ e | |||
| _gal) e (gL03_ e | |||
| _pel) e (gL03_ e | |||
| _n) e (grL03_ e | |||
| _ch) e (guL02_ e | |||
| estr) ei (L04_ EI | |||
| _inv) e (jL04_ E | |||
| tr) e (pL04_ E // es- | |||
| _dec) e (pL04_ E | |||
| _in) e (ptL03_ E | |||
| _p) e (quL02_ E | |||
| _s) e (quL02_ E | |||
| ad) e (quL04_ E | |||
| l) e (que_ E | |||
| _imp) e (rL03_ E | |||
| _sev) e (rL03_ E | |||
| _reit) e (rL03_ E | |||
| _sinc) e (rL03_ E | |||
| _g) e (rL04_ E | |||
| _z) e (rL04_ E | |||
| qu) e (rL04_ E // re- | |||
| _op) e (rL04_ E | |||
| gen) e (rL04_ E // de- re- | |||
| _alt) e (rL04_ E | |||
| _enc) e (rL04_ E | |||
| _sug) e (rL04_ E | |||
| _sup) e (rL04_ E | |||
| _tol) e (rL04_ E | |||
| @@ -482,16 +491,16 @@ respond) e (L07_ e // cor- | |||
| _recup) e (rL04_ E | |||
| _refrig) e (rL04_ E | |||
| _v) e (rbL03_ E | |||
| _alic) e (rcL02_ 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 | |||
| _inv) e (rtL03_ e | |||
| _f) e (rvL03_ e | |||
| _alic) e (rçL03_ E | |||
| _p) e (sL01_ E | |||
| _l) e (sL03_ E | |||
| _refr) e (scL01_ E | |||
| _d) e (scL02_ E | |||
| _cr) e (scL02_ E | |||
| @@ -517,6 +526,7 @@ _obsol) e (tL03_ e | |||
| _atr) e (vL03_ e | |||
| _r) e (zL04_ E | |||
| _pr) e (zL04_ E | |||
| _rev) e (zL04_ E | |||
| _despr) e (zL04_ E | |||
| _embel) e (zL04_ E | |||
| _menospr) e (zL04_ E | |||
| @@ -534,6 +544,7 @@ _entorp) e (çL03_ e | |||
| éi (s ''EI | |||
| é (iCK ''E | |||
| éy ''eI | |||
| él (C ''EU | |||
| éu ''EU | |||
| éu (s ''EU | |||
| é (uCK ''E | |||
| @@ -573,11 +584,19 @@ _entorp) e (çL03_ e | |||
| g (Y Z // ge gi | |||
| gu (Y g | |||
| a) gu (ent gw | |||
| _ar) gu (i gw | |||
| averi) gu (e gw | |||
| enxa) gu (e gw | |||
| i) gu (idade gw | |||
| lin) gu (e gw | |||
| lin) gu (i gw | |||
| _min) gu (e gw | |||
| _pin) gu (im_ gw | |||
| _pin) gu (ins_ gw | |||
| _sa) gu (i gw | |||
| san) gu (ín gw | |||
| san) gu (in gw | |||
| tin) gu (i gw | |||
| ?1 n) gu (A gw // eg: língua, etc. | |||
| ?1 man) gu (ei g // mangueira | |||
| ?1 gu (ém_ g // eg: alguém, ninguém, etc... | |||
| @@ -610,6 +629,8 @@ _entorp) e (çL03_ e | |||
| i (A_ 'i | |||
| i (am_ 'i | |||
| i (em_ 'i | |||
| io (_ iU | |||
| io (s_ iU | |||
| i (oCK i | |||
| @@ -647,6 +668,7 @@ _entorp) e (çL03_ e | |||
| ím (C ''im | |||
| ín (K ''iN | |||
| ính ''in^ | |||
| íl (C ''IU | |||
| .group j | |||
| @@ -673,9 +695,9 @@ _entorp) e (çL03_ e | |||
| _) l (_ 'Ele | |||
| l l | |||
| l) l | |||
| lh l^ | |||
| lh lj | |||
| A) lh lj | |||
| ?1 A) lh l^ | |||
| A) lh l^ | |||
| ?4 A) lh l^ | |||
| @@ -741,9 +763,15 @@ _entorp) e (çL03_ e | |||
| o (lA_ O | |||
| o (lAm_ O | |||
| o (lhe_ O | |||
| o (lhem_ O | |||
| o (ltA_ O | |||
| o (ltAm_ O | |||
| o (lve_ O | |||
| o (lvem_ O | |||
| o (sA_ O | |||
| o (so_N o // not for osos_ | |||
| o (sAm_ O | |||
| @@ -760,9 +788,7 @@ _entorp) e (çL03_ e | |||
| ?1 o (l_ 'O | |||
| ?2 ol (_ Ow | |||
| o (lh o | |||
| ?2 _) o (lhA_ O | |||
| ?2 _) o (lhAm_ O | |||
| om (_ oN | |||
| o (ma_ o | |||
| @@ -820,10 +846,12 @@ _entorp) e (çL03_ e | |||
| //sort | |||
| _f) o (L05_ o | |||
| _pormen) o (L05_ O | |||
| _f) o (L07_ o | |||
| _engl) o (bL01_ O | |||
| _s) o (bL02_ O | |||
| _af) o (bL04_ O | |||
| _esn) o (bL04_ O | |||
| _engl) o (bL04_ O | |||
| br) o (chL04_ O | |||
| _deb) o (chL04_ O | |||
| _m) o (fL01_ O | |||
| @@ -838,19 +866,17 @@ _entorp) e (çL03_ e | |||
| _ap) oi (L02_ OI | |||
| _b) oi (L04_ OI | |||
| _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 | |||
| _dev) o (lvL02_ O | |||
| _res) o (lvL02_ O | |||
| _rev) o (lvL02_ O | |||
| _ent) o (pL02_ O | |||
| _f) o (lgL04_ O | |||
| _emp) o (lgL04_ O | |||
| _) o (lhL04_ O | |||
| m) o (lhL04_ O | |||
| ent) o (pL02_ O | |||
| _c) o (pL03_ O | |||
| _ens) o (pL04_ O | |||
| _s) o (prL04_ O | |||
| _) o (ptL04_ O | |||
| p) o (rL02_ o | |||
| _dev) o (rL02_ O | |||
| _defl) o (rL02_ O | |||
| _impl) o (rL02_ O | |||
| _inod) o (rL03_ O | |||
| @@ -926,17 +952,21 @@ _remem) o (rL04_ O | |||
| ?1 _) qua kwa // quatro, etc. | |||
| ?1 _) que ke // quente, etc. | |||
| ?1 _) quei (C k'eI // queira, queima, etc | |||
| A) quên (C kw'eIN // frequência, etc. | |||
| quên kw'eN // quinquênio, etc. | |||
| ade) qu (e kw | |||
| _a) qu (idade_ kw | |||
| _a) qu (ífero_ kw | |||
| e) qu (estr kw | |||
| ese) qu (ív kw | |||
| _e) qu (in kw | |||
| fre) qu (ent kw | |||
| _ini) qu (idade_ kw | |||
| li) qu (id kw | |||
| lí) qu (id kw | |||
| n) qu (en kw | |||
| _) qu (inqu kw | |||
| se) qu (en kw | |||
| tran) qu (il kw | |||
| ?1 quec kes // esquece, etc. | |||
| ?1 queç kes // esqueça. | |||
| ?1 A) que (nA_ ke // pequeno, etc. | |||
| ?1 C) quê (_ ke // porquê, etc. | |||
| @@ -994,6 +1024,14 @@ _remem) o (rL04_ O | |||
| ?1 A) s (G+ Z | |||
| ?1 A) s (_KS1 s# | |||
| ?1 A) s (_G+S1 Z | |||
| s (b z | |||
| s (d z | |||
| s (g z | |||
| s (l z | |||
| s (m z | |||
| s (n z | |||
| sr zx | |||
| s (v z | |||
| _) sobre (@P5 sob*e | |||
| @@ -1027,6 +1065,8 @@ _remem) o (rL04_ O | |||
| u (iu w | |||
| u (iCK u | |||
| uy uI | |||
| ul (K uw | |||
| u (lh+ u | |||
| um (_ u~N | |||
| um (C u~m | |||
| @@ -28,7 +28,7 @@ _10 d;'es;It; | |||
| _11 Od;'innVttsVt; | |||
| _12 dv;In'AttsVt; | |||
| _13 tR;In'AttsVt; | |||
| _14 ts;It'y@-*nVttsVt; | |||
| _14 tS;It'y@-*nVttsVt; | |||
| _15 p;Itn'AttsVt; | |||
| _16 SE#stn'AttsVt; | |||
| _17 s;Imn'AttsVt; | |||
| @@ -45,15 +45,15 @@ _9X d;E2v;In'ostO | |||
| _0C st'o | |||
| _2C dv;'es;t;I | |||
| _3C tr;'ista | |||
| _4C ts;It'yr;E2sta | |||
| _4C tS;It'yr;E2sta | |||
| _5C p;,It;s'ot | |||
| _6C S,E#s;t;s'ot | |||
| _7C s;,Ims'ot | |||
| _8C vOs;Ims'ot | |||
| _9C dev;Vts'ot | |||
| _1MA1 t'ys;Its;V // no '1' before thousand | |||
| _0MA1 t'ys;Its;i | |||
| _0M1 t'ys;Vts; | |||
| _1MA1 t'ys;ItS;V // no '1' before thousand | |||
| _0MA1 t'ys;ItS;i | |||
| _0M1 t'ys;VtS; | |||
| _1MA2 m;,IlI;'on | |||
| _0MA2 m;,IlI;'ona | |||
| _0M2 m;,IlI;'onof | |||
| @@ -0,0 +1,171 @@ | |||
| // This file is UTF8 encoded | |||
| // Spelling to phoneme rules for Telugu | |||
| // 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:rp | |||
| s Es | |||
| t t#i: | |||
| u ju: | |||
| v vi: | |||
| w dabalju: | |||
| x Eks | |||
| y wa:j | |||
| z zEd | |||
| // numbers | |||
| _0 sunna | |||
| _1 okat.i | |||
| _1a oka | |||
| _2 rend.u | |||
| _3 mu:d.u | |||
| _4 na:lugu | |||
| _5 aIdu | |||
| _6 a:ru | |||
| _7 ;e:d.u | |||
| _8 ;enimidi | |||
| _9 tommidi | |||
| _1X padi | |||
| _11 padakond.u | |||
| _12 pannend.u | |||
| _13 padammu:d.u: | |||
| _14 pad#na:lugu | |||
| _15 padihe:nu | |||
| _16 padaha:ru | |||
| _17 padihe:d.u | |||
| _18 padd#enimidi | |||
| _19 pandommidi | |||
| _2X irav#aI | |||
| _3X muppaI | |||
| _4X nalub#aI | |||
| _5X ja:b#aI | |||
| _6X arav#aI | |||
| _7X d.#eb#baI | |||
| _8X jenab#aI | |||
| _9X tomb#aI | |||
| _0C v#andala | |||
| _0C0 v#andalu | |||
| _1C okav#anda | |||
| _0M1 v#ela | |||
| _0M1x v#elu | |||
| _1M1 okav#ejji | |||
| _0M2 laks.ala | |||
| _0M2x laks.alu | |||
| _1M2 laks.a | |||
| _0M3 kotla | |||
| _0M3x kotlu | |||
| _1M3 koti | |||
| _dpt _d,aS;a:mkam | |||
| // symbols | |||
| _?? aks.aram // 'unknown character' | |||
| % S;a:tam | |||
| + ku:d.ika | |||
| * naks.atra | |||
| \ bja:kasla:s. | |||
| / kudiva:lugi:ta | |||
| © ka:pi:raIt. | |||
| ¶ v#e:ra: | |||
| _, ka:ma: | |||
| _; semi:ko:lan | |||
| _: ko:lan | |||
| _! a:S;carja:rt#aka | |||
| _? praS;na:rt#aka | |||
| _- haIfan | |||
| __ amd.ar||sko:r | |||
| // unstressed function words | |||
| // articles | |||
| ద $u | |||
| అ $u+ | |||
| ఆ $u+ | |||
| ఒక $u | |||
| // letter names | |||
| U+c01 am | |||
| U+c02 an | |||
| U+c03 ah | |||
| U+c4d v#ottu | |||
| // consonants with virama | |||
| క్ ik | |||
| ఖ్ ik# | |||
| గ్ ig | |||
| ఘ్ ig# | |||
| ఙ్ iN | |||
| చ్ ic | |||
| ఛ్ ic# | |||
| జ్ iJ | |||
| ఝ్ iJ# | |||
| ఞ్ in^ | |||
| ట్ it. | |||
| ఠ్ it.# | |||
| డ్ id. | |||
| ఢ్ id.# | |||
| ణ్ in. | |||
| త్ it | |||
| థ్ it# | |||
| ద్ id | |||
| ధ్ id# | |||
| న్ in | |||
| ప్ ip | |||
| ఫ్ ip# | |||
| బ్ ib | |||
| భ్ ib# | |||
| మ్ imu: | |||
| య్ ij | |||
| ర్ ir | |||
| ఱ్ ir | |||
| ల్ il | |||
| ళ్ il. | |||
| వ్ iv# | |||
| శ్ iS; | |||
| ష్ is. | |||
| స్ is | |||
| హ్ ih | |||
| ౘ్ its | |||
| ౙ్ idz | |||
| // combining vowels, precede by a click so they | |||
| // can be distinguished from stand-alone vowels | |||
| ా #X2a:: | |||
| ి #X1i | |||
| ీ #X2i:: | |||
| ు #X1u | |||
| ూ #X2u:: | |||
| ృ #X1ru | |||
| ౄ #X2ru: | |||
| ె #X1e | |||
| ే #X2e:: | |||
| ై #X2aI | |||
| ొ #X1o | |||
| ో #X2o:: | |||
| ౌ #X2aU | |||
| @@ -0,0 +1,271 @@ | |||
| // This file is UTF8 encoded | |||
| // Spelling to phoneme rules for Telugu | |||
| // A means vowel letters (not vowel signs) | |||
| // B means a combining vowel sign or a virama | |||
| .replace | |||
| ౦ 0 // Convert Telugu numbers | |||
| ౧ 1 | |||
| ౨ 2 | |||
| ౩ 3 | |||
| ౪ 4 | |||
| ౫ 5 | |||
| ౬ 6 | |||
| ౭ 7 | |||
| ౮ 8 | |||
| ౯ 9 | |||
| .group క | |||
| క ka | |||
| క (B k | |||
| .group ఖ | |||
| ఖ k#a | |||
| ఖ (B k# | |||
| .group గ | |||
| గ ga | |||
| గ (B g | |||
| .group ఘ | |||
| ఘ g#a | |||
| ఘ (B g# | |||
| .group ఙ | |||
| ఙ Na | |||
| ఙ (B N | |||
| .group చ | |||
| చ ca | |||
| చ (B c | |||
| .group ఛ | |||
| ఛ c#a | |||
| ఛ (B c# | |||
| .group జ | |||
| జ Ja | |||
| జ (B J | |||
| .group ఝ | |||
| ఝ J#a | |||
| ఝ (B J# | |||
| .group ఞ | |||
| ఞ n^a | |||
| ఞ (B n^ | |||
| .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 త | |||
| త ta | |||
| త (B t | |||
| .group థ | |||
| థ t#a | |||
| థ (B t# | |||
| .group ద | |||
| ద da | |||
| ద (B d | |||
| .group ధ | |||
| ధ d#a | |||
| ధ (B d# | |||
| .group న | |||
| న na | |||
| న (B n | |||
| .group ప | |||
| ప pa | |||
| ప (B p | |||
| .group ఫ | |||
| ఫ p#a | |||
| ఫ (B p# | |||
| .group బ | |||
| బ ba | |||
| బ (B b | |||
| .group భ | |||
| భ b#a | |||
| భ (B b# | |||
| .group మ | |||
| మ ma | |||
| మ (B m | |||
| .group య | |||
| య ja | |||
| య (B j | |||
| .group ర | |||
| ర ra | |||
| ర (B r | |||
| .group ఱ | |||
| ఱ ra | |||
| ఱ (B r | |||
| .group ల | |||
| ల la | |||
| ల (B l | |||
| .group ళ | |||
| ళ l.a | |||
| ళ (B l. | |||
| .group వ | |||
| వ v#a | |||
| వ (B v# | |||
| .group శ | |||
| శ S;a | |||
| శ (B S; | |||
| .group ష | |||
| ష s.a | |||
| ష (B s. | |||
| .group స | |||
| స sa | |||
| స (B s | |||
| .group హ | |||
| హ ha | |||
| హ (B h | |||
| .group ౘ | |||
| ౘ tsa | |||
| ౘ (B ts | |||
| .group ౙ | |||
| ౙ dza | |||
| ౙ (B dz | |||
| .group ౠ | |||
| ౠ ru | |||
| .group ౡ | |||
| ౡ l- | |||
| // Stand-alone vowels | |||
| .group అ | |||
| అ a | |||
| .group ఆ | |||
| ఆ a: | |||
| .group ఇ | |||
| ఇ i | |||
| .group ఈ | |||
| ఈ i: | |||
| .group ఉ | |||
| ఉ u | |||
| .group ఊ | |||
| ఊ u: | |||
| .group ఋ | |||
| ఋ ru | |||
| .group ఌ | |||
| ఌ l- | |||
| .group ఎ | |||
| ఎ e | |||
| _) ఎ ;e | |||
| .group ఏ | |||
| ఏ e: | |||
| .group ఐ | |||
| ఐ aI | |||
| .group ఒ | |||
| ఒ o | |||
| .group ఓ | |||
| ఓ o: | |||
| .group ఔ | |||
| ఔ aU | |||
| .group 0xe0b0 // characters which start with UTF-8 bytes: [e0 b0] | |||
| . ఁ n // candrabindu | |||
| ం n // anusvara (this should nasalize the vowel) | |||
| ః h // visarga | |||
| // combining vowel signs | |||
| ా a: | |||
| ి i | |||
| .group 0xe0b1 // characters which start with UTF-8 bytes: [e0 b1] | |||
| ీ i: | |||
| ు u | |||
| ూ u: | |||
| ృ r- | |||
| ౄ r-: | |||
| ె e | |||
| ే e: | |||
| ై aI | |||
| ొ o | |||
| ో o: | |||
| ౌ aU | |||
| ్ // virama | |||
| ౕ : // length mark ?? | |||
| ౖ : // ai length mark ?? | |||
| .group | |||
| $ d.a:lar | |||
| @@ -36,7 +36,7 @@ | |||
| ل la:m | |||
| م mi:m | |||
| ن nu:n | |||
| و va:O | |||
| _و va:O | |||
| ہ He: | |||
| ں g#Unna | |||
| ﮨ c#o:ti:||He: | |||
| @@ -45,10 +45,13 @@ | |||
| ی c#o:t.i:||je: | |||
| ے bar.i:||je: | |||
| ئ h'amza | |||
| ۂ He:h'amza | |||
| _ؤ va:Oh'amza | |||
| َ z@b@R | |||
| ِ ze:R | |||
| ُ pe:S | |||
| ٰ ,alIfmaqs'u:R,a | |||
| ّ t,aSd'i:d | |||
| ً d'o:zab'aR | |||
| @@ -166,8 +169,7 @@ _dpt _ISaRI'Ia_ | |||
| // pronouns | |||
| یہ jE $u | |||
| کہ kE $u | |||
| یہ j'e:H $u | |||
| وہ wo: $u | |||
| آپ $u | |||
| تم tUm $u | |||
| @@ -186,8 +188,8 @@ _dpt _ISaRI'Ia_ | |||
| تجھے t'UJ#e: | |||
| جن J'In | |||
| جنھیں J,InH'e:n | |||
| انھوں ,UnH'o:n | |||
| انھیں ,InH'e:n | |||
| انہوں ,UnH'o:n | |||
| انہیں ,UnH'e:n | |||
| // unstressed prepositions | |||
| کا $u | |||
| @@ -196,6 +198,7 @@ _dpt _ISaRI'Ia_ | |||
| سے $u | |||
| اور OR $u $brk | |||
| کہ k'e:H $u | |||
| // unstressed verbs | |||
| ہے $u | |||
| @@ -206,7 +209,6 @@ _dpt _ISaRI'Ia_ | |||
| // Pronunciation exceptions | |||
| پاکستان p'a:k'i:st'a:n | |||
| سندھ s'Ind# | |||
| کچھ k'Uc# | |||
| لنکس l'Ink,s | |||
| لفظ l'afz. | |||
| @@ -218,7 +220,6 @@ _dpt _ISaRI'Ia_ | |||
| مسلح m,Usal'aH | |||
| متفق mUt'afIq | |||
| سابق s'a:bIq | |||
| برسر b,aRs'aR | |||
| اعلان e:l'a:n | |||
| سنئیے sUn'i:;e: | |||
| کلنگ k'IlIn,g | |||
| @@ -226,7 +227,6 @@ _dpt _ISaRI'Ia_ | |||
| جسٹس J'ast.,Is | |||
| شکایت S,Ika:j'at | |||
| شکست SIk'ast | |||
| منزل m'anz,Il | |||
| شعر S'e:R | |||
| فعل f'e:l | |||
| خصوصی xUs.'u:s.i: | |||
| @@ -256,7 +256,6 @@ _dpt _ISaRI'Ia_ | |||
| باہر 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 | |||
| @@ -303,7 +302,6 @@ _dpt _ISaRI'Ia_ | |||
| بغیر baQ'e:R | |||
| ممکن m'Umk,In | |||
| ممکنہ m'Unk,In,a | |||
| طرح taR'aH | |||
| الیکشن ,Ile:kS'an | |||
| ووٹنگ vo:t.'Ing | |||
| شواہد Sav'a:HId | |||
| @@ -348,11 +346,188 @@ _dpt _ISaRI'Ia_ | |||
| تعین 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 | |||
| کورٹ k'o:Rt. | |||
| برطرف b,aRtaR'af | |||
| برطرفی b,aRt'aRf,i: | |||
| لئے l'i:;e: | |||
| نامزد n,a:mz'ad | |||
| نامزدگی n,a:mz'adg,i: | |||
| معطل m,Oat'al | |||
| معطلی m,Oat'ali: | |||
| تین t'i:n | |||
| تینوں ti:n'o:n | |||
| ڈاکٹر d.,a:kt.'aR | |||
| اقبال ,Iqb'a:l | |||
| جرم J'URm | |||
| اقتدار ,IqtId'a:R | |||
| عشرت ,ISR'at | |||
| نگران n,IgR'a:n | |||
| نگرانی n,IgR'a:ni: | |||
| مستقل m,Ust'aqIl | |||
| مستقبل m,Ust'aqb,Il | |||
| میر m'i:R | |||
| چھ c#'eh_! | |||
| خفیہ xUf'i:;a | |||
| اٹھانا Ut.#'a:na: | |||
| اٹھانی Ut.#'a:ni: | |||
| اٹھانے Ut.#'a:ne: | |||
| اٹھا 'Ut.#a: | |||
| اٹھی 'Ut.#i: | |||
| اٹھے 'Ut.#e: | |||
| قوت qu:v'at | |||
| اٹھایا Ut.#'a:ja: | |||
| اٹھائی Ut.#'a:ji: | |||
| اٹھائے Ut.#'a:je: | |||
| مدافعت m,Uda:fI;'at | |||
| خطرہ x'atRa | |||
| مظفر m,Uz.af'aR | |||
| کرکٹ kRIk,It. | |||
| انگلینڈ ,Ingl'e:nd. | |||
| رنز R'anz | |||
| انسداد ,InsId'a:d | |||
| نہیں naH'i:n | |||
| صحتِ s.e:H'ate: | |||
| متفقہ mUt'afIqa | |||
| تعلق t'a:lUq | |||
| متعلق mUt'a:lIq | |||
| متعلقہ mUt'a:lIqa | |||
| مسترد m,UstaR'ad | |||
| مثبت m,Usb'at | |||
| تاہم ta:H'am | |||
| پیشرفت p,e:SR'aft | |||
| تعطل t'a:tUl | |||
| متعدد mUt'a:dId | |||
| گیا g'aja: | |||
| (کیا گیا) k'i:;a:||g'aja: | |||
| (ہوا تھا) H'u:a||t#a: | |||
| (کیا ہوا) kj'a:||H'u:a: | |||
| اتحاد ,ItaH'a:d | |||
| اننگز In'Ingz | |||
| بیٹنگ be:t.'Ing | |||
| منٹ m'InIt. | |||
| ناممکن n'a:mUmkIn | |||
| (کیا جائے) k'i:;a:||J'a:je: | |||
| جمعرات J,Ume:R'a:t | |||
| جمعہ J'Uma: | |||
| برسرِ b,aRs'aRe: | |||
| درجنوں d,aRJan'o:n | |||
| درجن d,aRJ'an | |||
| خلاف xIl'a:f | |||
| برخلاف b,aRxIl'a:f | |||
| کرکٹر kRIkIt.'aR | |||
| ذمہ D'Im,a | |||
| دستخط d,astx'at | |||
| اجاگر ,UJa:g'aR | |||
| فطرت f,ItR'at | |||
| فطرتاً f,ItRat'an | |||
| طاقتور ta:q'atvaR | |||
| دفتر d,aft'aR | |||
| مشرف m,USaR'af | |||
| سنگھ s'Ing# | |||
| کمپلیکس k,ampl'e:ks | |||
| مرتبہ m,aRt'ab,a | |||
| واقع v'a:qe: | |||
| یہیں jaH'i:n | |||
| کیونکہ kj,u:nk'e:H | |||
| گفتگو g'Uft,Ugu: | |||
| جستجو J'Ust,UJu: | |||
| بھانت b#'a:nt | |||
| چکے c'Uke: | |||
| مفت m'Uft | |||
| (تو نے) t'u||n'e: | |||
| پرسکون p,URsUk'u:n | |||
| منحصر m,UnH'as.IR | |||
| سکون sUk'u:n | |||
| گشت g'aSt | |||
| گذار gUD'a:R | |||
| پرور p'aRvaR | |||
| قصے q'Is.e: | |||
| قصہ q'Is.,a | |||
| قصوں qIs.'o:n | |||
| محفوظ m,e:Hf'u:z. | |||
| مقدس m,Uqad'as | |||
| و o: | |||
| انحراف ,InHIR'a:f | |||
| مبینہ m,Ubai:;'an,a | |||
| متبادل m,Utab'a:dIl | |||
| گنا g'Una: | |||
| ملک m'Ulk | |||
| ملکی m'Ulk,i: | |||
| ملکوں m,Ulk'o:n | |||
| ممالک mUm'a:lIk | |||
| سنیچر s,ani:c'aR | |||
| اختر ,axt'aR | |||
| ملا m'Ila: | |||
| سٹیڈیم st.e:d.i:;'am | |||
| مدت mUd'at | |||
| باکس b'a:ks | |||
| آفس 'a:fIs | |||
| اشاعت ,ISa:'a:t | |||
| اظہار ,Iz.H'a:R | |||
| برقرار b,aRqaR'a:R | |||
| گھریلو g#aR'e:lu: | |||
| ٹھیک t.#'i:k | |||
| مشتمل m,USt'amIl | |||
| متلاشی m,Utal'a:Si: | |||
| ذکر D'IkR | |||
| محسوس m,e:Hs'u:s | |||
| برعکس b,aR'aks | |||
| بت b'Ut | |||
| بتوں bUt'o:n | |||
| سسٹم sIst.'am | |||
| معمر m,Oam'aR | |||
| حلیے H'Ulje: | |||
| ہلا H'Ila: | |||
| گذشتہ gUD'aSta | |||
| خطوط xUt'u:t | |||
| ہفتہ H'afta | |||
| مکرر m,UkaR'aR | |||
| چینی c'i:ni: | |||
| خیرمقدم x,e:Rm,aqd'am | |||
| محترمہ m,UHt'aRma | |||
| محترم m,UHtaR'am | |||
| ورزش v'aRz,IS | |||
| شروع S'URu: | |||
| انٹرنیٹ ,Int.,aRn'e:t. | |||
| سروس s'aRvIs | |||
| سروسز s'aRvIs,Iz | |||
| لطف l'Utf | |||
| سامع s'a:me: | |||
| ہوائیں H,ava:j'e:n | |||
| سرے s'IRe: | |||
| طبیعت t,abi:;'at | |||
| سخن sUx'an | |||
| گہر go:H'aR | |||
| سست s'Ust | |||
| لیکن l'e:kIn | |||
| سیاست sja:s'at | |||
| ریاست Rja:s'at | |||
| منسلک mUns'alIk | |||
| داخل d'a:xIl | |||
| نجی n'IJi: | |||
| منہدم m,UnH'adIm | |||
| گم g'Um | |||
| محدود m,e:Hd'u:d | |||
| متحارب m,UtaH'a:RIb | |||
| جنت Jan'at | |||
| سفر saf'aR | |||
| (فیس بک) f'e:s||b'Uk | |||
| بینک b'e:nk | |||
| حقوق HUq'u:q | |||
| آئندہ a:'Ind,a | |||
| اہتمام 'e:HtIm,a:m | |||
| قلت qIl'at | |||
| استحکام ,Iste:Hk'a:m | |||
| حصول HUs.'u:l | |||
| منقطع m,Unq'ata: | |||
| مرتکب m,URt'akIb | |||
| منہ m'u:n | |||
| فتنہ f'Itna | |||
| ذرائع DaR'a:e: | |||
| مریم m,aRi:;'am | |||
| @@ -16,7 +16,7 @@ | |||
| ٨ 8 | |||
| ٩ 9 | |||
| ي ی | |||
| یٰ ا | |||
| // vowel signs, alif acts as consonants at start of word if these follow | |||
| @@ -81,6 +81,26 @@ _) ای e: | |||
| _) ایمان i:m'a:n | |||
| _) اعت 'e:tI | |||
| _) اضاف Iz'a:f | |||
| _) اختلاف ,IxtIl'a:f | |||
| _) اسمبلی as'ambli: | |||
| _) اٹھت 'Ut.#t | |||
| _) اٹھن 'Ut.#n | |||
| _) اٹھات Ut.#'a:t | |||
| اقلیت ,aqali:;'at | |||
| استثن ,Ist'asn | |||
| اندھیر 'and#e:R | |||
| انتالیس ,Unta:l'i:s | |||
| انتیس ,Unt'i:s | |||
| اکثر ,aks'aR | |||
| ایران i:R'a:n | |||
| اجتماع ,IJtIm'a: | |||
| استحصال ,Ist,e:Hs.'a:l | |||
| _) امنگ Um'ang | |||
| انعام In'a:m | |||
| امتحان ,ImtIH'a:n | |||
| الزام ,Ilz'a:m | |||
| اشتہار ,IStIH'a:R | |||
| اصول Us.'u:l | |||
| .group آ | |||
| آ a: | |||
| @@ -91,7 +111,8 @@ _) ای e: | |||
| عا a: | |||
| _) ع a | |||
| _) عیس 'i:s | |||
| _) عید 'i:d | |||
| عنوان Unv'a:n | |||
| .group و | |||
| و o: | |||
| @@ -117,6 +138,9 @@ _) ای e: | |||
| .group ے // yeh barree | |||
| ے e: | |||
| .group ۂ | |||
| ۂ 'ae: | |||
| // with hamza | |||
| .group ئ | |||
| ئ | |||
| @@ -148,7 +172,14 @@ _) ای e: | |||
| بھیک bh'i:k | |||
| بھیگ bh'i:g | |||
| بھول bh'u:l | |||
| _) بیان baj'a:n | |||
| _) بٹھا b'It.#a: | |||
| بئی b'ai: | |||
| بیوی b'i:vi: | |||
| _) بیوا b'e:va: | |||
| برسر b,aRs'aR | |||
| بگاڑ bIg'a:r. | |||
| بغاوت b,aQa:v'at | |||
| .group پ | |||
| پ pV | |||
| @@ -160,7 +191,8 @@ _) ای e: | |||
| _) پھر ph'IR | |||
| پھول ph'u:l | |||
| _) پہل (L01 p'e:Hl | |||
| پہنچ paH'Unc | |||
| پوچھ p'u:c# | |||
| .group ت | |||
| ت tV | |||
| @@ -169,6 +201,9 @@ _) ای e: | |||
| تھ (L01 t# | |||
| تّ ttV | |||
| تّ (L01 tt | |||
| _) تمہ t'UmH | |||
| تحقیق t,e:Hq'i:q | |||
| _) ترجم t'aRJ,Um | |||
| .group ٹ | |||
| @@ -178,6 +213,8 @@ _) ای e: | |||
| ٹھ (L01 t.# | |||
| ٹّ t.t.V | |||
| ٹّ (L01 t.t. | |||
| ٹریفک t.R'e:fIk | |||
| _) ٹکڑ t.'Ukr. | |||
| .group ث | |||
| @@ -196,7 +233,10 @@ _) ای e: | |||
| جّ (L01 JJ | |||
| _) جیت J'i:t | |||
| _) جوا J'ava: | |||
| جانب J'a:nIb | |||
| _) جنس J'Ins | |||
| جھوٹ J#'u:t. | |||
| _) جمل J'Uml | |||
| .group چ | |||
| چ cV | |||
| @@ -205,12 +245,19 @@ _) ای e: | |||
| چھ (L01 c# | |||
| چّ ccV | |||
| چّ (L01 cc | |||
| _) چکا c'Uka: | |||
| .group ح | |||
| ح HV | |||
| ح (L01 H | |||
| ح (_ H | |||
| ح (_ 'aH | |||
| L01) ح (_ H | |||
| حکومت H,Uku:m'at | |||
| حکمران H,UkmaR'a:n | |||
| _) حوال Hav'a:l | |||
| حّ HHV | |||
| حّ (L01 HH | |||
| @@ -218,7 +265,7 @@ _) ای e: | |||
| .group خ | |||
| خ xV | |||
| خ (L01 x | |||
| خت(_ xt | |||
| @) خ (ت x | |||
| خّ xxV | |||
| خّ (L01 xx | |||
| _) خوش x'US | |||
| @@ -233,7 +280,12 @@ _) ای e: | |||
| دھ (L01 d# | |||
| دّ ddV | |||
| دّ (L01 dd | |||
| درخواست d,aRxv'a:st | |||
| دیا(_ d'i:;a: | |||
| درج d'aRJ | |||
| دیوا d'i:va: | |||
| _) دوسر d'u:sR | |||
| دفاع d'Ifa: | |||
| .group ڈ | |||
| ڈ d.V | |||
| @@ -242,6 +294,7 @@ _) ای e: | |||
| ڈھ (L01 d.# | |||
| ڈّ d.d.V | |||
| ڈّ (L01 d.d. | |||
| ڈھونڈ d.#'u:nd. | |||
| .group ذ | |||
| ذ DV | |||
| @@ -254,6 +307,11 @@ _) ای e: | |||
| ر (L01 R | |||
| رّ RRV | |||
| رّ (l01 RR | |||
| @) ر (ٹ R | |||
| @) ر (ڈ R | |||
| _) رہت R'e:Ht | |||
| @) ر (د R | |||
| @) ر (چ R | |||
| .group ڑ | |||
| ڑ r.V | |||
| @@ -268,6 +326,7 @@ _) ای e: | |||
| ز (L01 z | |||
| زّ zzV | |||
| زّ (L01 zz | |||
| _) زند z'Ind | |||
| .group ژ | |||
| ژ ZV | |||
| @@ -284,18 +343,32 @@ _) ای e: | |||
| _) سلجھ (L01 sUlJh | |||
| _) سدھر sUdh'aR | |||
| _) سدھر (L01 sUdhR | |||
| _) سلسل s'Ils,Il | |||
| _) ستار sIt'a:R | |||
| @) س (ٹ s | |||
| سندھ s'Ind# | |||
| سیکھ s'i:k# | |||
| @) س (ت s | |||
| _) سپرد sUp'URd | |||
| .group ش | |||
| ش SV | |||
| ش (L01 S | |||
| شّ SSV | |||
| شّ (L01 SS | |||
| _) شعب S'Ob | |||
| شاعر Sa:'a:IR | |||
| _) شعرا S'ORa: | |||
| _) شعل S'Ol | |||
| @) ش (ت S | |||
| _) شخص S'axs. | |||
| .group ص | |||
| ص s.V | |||
| ص (L01 s. | |||
| صّ ssV | |||
| صّ (L01 ss | |||
| صوب s.'u:b | |||
| .group ض | |||
| ض zV | |||
| @@ -306,7 +379,7 @@ _) ای e: | |||
| .group ط | |||
| ط tV | |||
| طھ t#V | |||
| ط (L01 t | |||
| ط (L01 t | |||
| طھ (L01 t# | |||
| طّ ttV | |||
| طّ (L01 tt | |||
| @@ -328,12 +401,14 @@ _) ای e: | |||
| ف (L01 f | |||
| فّ ffV | |||
| فّ (L01 ff | |||
| _) فکر f'IkR | |||
| .group ق | |||
| ق qV | |||
| ق (L01 q | |||
| قّ qqV | |||
| قّ (L01 qq | |||
| قاعد q'a:jd | |||
| .group ک | |||
| ک kV | |||
| @@ -343,6 +418,9 @@ _) ای e: | |||
| کّ kkV | |||
| کّ (L01 kk | |||
| _) کتن k'Itn | |||
| کوئل k'o:Il | |||
| کتاب kIt'a:b | |||
| کوشش k'o:SIS | |||
| .group گ | |||
| گ gV | |||
| @@ -354,6 +432,10 @@ _) ای e: | |||
| _) گرفت g'IRIft | |||
| _) گزر gUz'aR | |||
| _) گزر (L01 gUzR | |||
| گئے g'ae: | |||
| گئی g'ai: | |||
| گمشد g'UmS,Ud | |||
| _) گھما g#'Uma: | |||
| .group ل | |||
| ل lV | |||
| @@ -368,6 +450,29 @@ _) ای e: | |||
| مّ mmV | |||
| مّ (L01 mm | |||
| _) مشکل m'USk,Il | |||
| محکم me:He:km | |||
| مظاہر mUz.'a:HIR | |||
| _) ملن (L01 m'Iln | |||
| مسجد m'asJ,Id | |||
| مشرق m'aSR,Iq | |||
| مقدم mUq'adm | |||
| مسلم m'Usl,Im | |||
| مسلما mUs'alm,a: | |||
| @) م (پ m | |||
| موجود mo:J'u:d | |||
| منزل m'anz,Il | |||
| @) م (ب m | |||
| محقق mUH'aqIq | |||
| منظر m,anz.'aR | |||
| محفل m'e:Hf,Il | |||
| مسکرا m'Usk,URa: | |||
| مسکراہٹ m,Usk,URa:H'at. | |||
| محسن m'o:Hs,In | |||
| مجرم m'UJR,Im | |||
| منظور m,anz.'u:R | |||
| ملزم m'Ulz,Im | |||
| مغرب m'aQR,Ib | |||
| منسوخ m'ansu:x | |||
| .group ن | |||
| ن nV | |||
| @@ -383,6 +488,14 @@ _) ای e: | |||
| @) ن (چ n | |||
| _) نکال nIk'a:l | |||
| _) نگاہ nIg'a:H | |||
| _) نمٹ nIm'at. | |||
| _) نمٹ (L01 nImt. | |||
| @) ن (پ n | |||
| @) نچل n'Icl | |||
| نشان nIS'a:n | |||
| @) ن (ڈ n | |||
| _) نظر naz.'aR | |||
| _) نظام nIz.'a:m | |||
| .group ں | |||
| ں n // this should nasalize the vowel | |||
| @@ -1,6 +1,6 @@ | |||
| name english | |||
| language en-uk 2 | |||
| language en-gb 2 | |||
| language en-uk 2 | |||
| language en 2 | |||
| gender male | |||
| @@ -9,7 +9,7 @@ phonemes en-us | |||
| dictrules 3 6 | |||
| option reduce_t 1 | |||
| stressLength 145 125 190 170 0 0 260 300 | |||
| stressLength 140 120 190 170 0 0 255 290 | |||
| stressAmp 17 16 19 19 19 19 21 19 | |||
| replace 03 I i | |||
| @@ -1,4 +1,4 @@ | |||
| name spanish-latin-american | |||
| name spanish-latin-am | |||
| language es-la | |||
| language es-mx 6 | |||
| language es 6 | |||
| @@ -1,4 +0,0 @@ | |||
| name akan-test | |||
| language ak | |||
| translator sw | |||
| @@ -1,3 +0,0 @@ | |||
| name azerbaijani-test | |||
| language az | |||
| @@ -1,3 +1,3 @@ | |||
| name bengali | |||
| name bengali-test | |||
| language bn | |||
| gender male | |||
| @@ -1,3 +0,0 @@ | |||
| name divehi-test | |||
| language dv | |||
| @@ -1,3 +0,0 @@ | |||
| name haitian | |||
| language ht | |||
| @@ -1,3 +0,0 @@ | |||
| name kazakh | |||
| language kk | |||
| @@ -1,4 +1,4 @@ | |||
| name Korean | |||
| name korean-test | |||
| language ko | |||
| gender male | |||
| pitch 80 118 | |||
| @@ -1,3 +0,0 @@ | |||
| name maltese-test | |||
| language mt | |||
| @@ -1,3 +0,0 @@ | |||
| name northern-sotho | |||
| language nso | |||
| translator sw | |||
| @@ -1,5 +0,0 @@ | |||
| name dari-test | |||
| language prs | |||
| translator fa | |||
| stressrule 10 | |||
| @@ -1,4 +0,0 @@ | |||
| name kinyarwanda-test | |||
| language rw | |||
| gender male | |||
| @@ -1,4 +1,4 @@ | |||
| name sinhala | |||
| name sinhala-test | |||
| language si | |||
| intonation 2 | |||
| @@ -1,4 +1,4 @@ | |||
| name telugu | |||
| name telugu-test | |||
| language te | |||
| intonation 2 | |||
| @@ -1,3 +0,0 @@ | |||
| name setswana-test | |||
| language tn | |||
| @@ -1,5 +0,0 @@ | |||
| name tatar-test | |||
| language tt | |||
| tunes s3 c3 q3 e3 | |||
| @@ -1,4 +0,0 @@ | |||
| name wolof-test | |||
| language wo | |||
| @@ -29,43 +29,43 @@ endphoneme | |||
| phoneme a | |||
| vowel starttype #a endtype #a | |||
| length 225 | |||
| FMT(vowel/aa_9) | |||
| FMT(vowel/a_3) | |||
| endphoneme | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| length 200 | |||
| length 210 | |||
| FMT(vowel/i_6) | |||
| endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| length 200 | |||
| length 210 | |||
| FMT(vowel/u) | |||
| endphoneme | |||
| phoneme e | |||
| vowel starttype #e endtype #e | |||
| length 200 | |||
| length 210 | |||
| FMT(vowel/e) | |||
| endphoneme | |||
| phoneme & | |||
| vowel starttype #a endtype #a | |||
| length 200 | |||
| length 210 | |||
| FMT(vowel/&_2) | |||
| endphoneme | |||
| phoneme o | |||
| vowel starttype #o endtype #o | |||
| length 200 | |||
| length 210 | |||
| IF nextPhW(w) THEN | |||
| length 160 | |||
| length 170 | |||
| ENDIF | |||
| FMT(vowel/o) | |||
| endphoneme | |||
| @@ -1,13 +1,123 @@ | |||
| // PB General rules for vowels: | |||
| // Short vowels | |||
| // ACC: Short "pille" [p?el@-] | |||
| // AC[V]: Short "piler" [p?ilV] | |||
| // ACC: Short "pille" [p?el@-], "andre" [AndRV] | |||
| // AC[V]: Short "piler" [p?ilV] - verbs, not nouns, which is a problem | |||
| // 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@-] | |||
| // A + @- OR V: Long "ae" "aer" [&:@-] | |||
| // AC + @- OR V: Long "pile" [pi:l@-] | |||
| // AC[i]: Long "smidig" [smi:Di] | |||
| // Change the length of short vowels (?+vowel) | |||
| procedure ShortVowelLength | |||
| // "endelig" - Short initial vowel sounds too short | |||
| IF thisPh(isWordStart) THEN | |||
| length 160 | |||
| RETURN | |||
| ENDIF | |||
| // "slutte" t/d + @- makes the u too long | |||
| IF next2PhW(@-) THEN | |||
| IF nextPhW(t) OR nextPhW(d) THEN | |||
| //length 100 | |||
| LengthAdd -50 | |||
| // Don't shorten it further if it comes after an "r" sound | |||
| // Exit the procedure | |||
| RETURN | |||
| ENDIF | |||
| ENDIF | |||
| // "bygget" - consonant + [@-D] makes the vowel too long | |||
| IF next2PhW(@-) THEN | |||
| IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN | |||
| LengthAdd -50 | |||
| // Don't shorten it further if it comes after an "r" sound ("brygget") | |||
| // Exit the procedure | |||
| RETURN | |||
| ENDIF | |||
| ENDIF | |||
| // "bygger" - consonant + [V] makes the vowel too long | |||
| IF nextPhW(isNotVowel) AND next2PhW(V) THEN | |||
| LengthAdd -50 | |||
| // Don't shorten it further if it comes after an "r" sound ("brygger") | |||
| // Exit the procedure | |||
| RETURN | |||
| ENDIF | |||
| // "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long | |||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||
| // length 100 | |||
| LengthAdd -50 | |||
| ENDIF | |||
| // "ring", "ringe", "fængsel" | |||
| IF nextPhW(N) THEN | |||
| // length 100 | |||
| LengthAdd -10 | |||
| ENDIF | |||
| // "sigte" t/d + @- makes the vowel too long | |||
| IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN | |||
| IF next3PhW(@-) THEN | |||
| // length 100 | |||
| LengthAdd -50 | |||
| ENDIF | |||
| ENDIF | |||
| endprocedure | |||
| // Change the length of normal vowels (without ? in front of them) | |||
| procedure LongVowelLength | |||
| // "alene" - Short initial vowel sounds too short at length 140 | |||
| IF thisPh(isWordStart) THEN | |||
| length 160 | |||
| RETURN | |||
| ENDIF | |||
| // "forlade" - [D@-] makes the vowel too long | |||
| IF nextPhW(D) AND next2PhW(@-) THEN | |||
| length 180 | |||
| RETURN | |||
| ENDIF | |||
| // PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] | |||
| IF nextPhW(@-) OR nextPhW(V) THEN | |||
| length 225 | |||
| ENDIF | |||
| // PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] | |||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
| length 225 | |||
| ENDIF | |||
| // "ræve", "dele", "mene", "røve", "møve" | |||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| // "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| // Don't make "møve" [m'Ww_!@-_!] short | |||
| IF NOT next2PhW(_!) THEN | |||
| length 140 | |||
| ENDIF | |||
| ENDIF | |||
| // "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long | |||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||
| IF next2PhW(@-) OR next2PhW(V) THEN | |||
| // length 180 | |||
| LengthAdd -70 | |||
| ENDIF | |||
| ENDIF | |||
| // "syste", "sylte" t/d/D + @- makes the vowel too long | |||
| // "international", - added [V] TEST | |||
| IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) OR next2PhW(D) THEN | |||
| IF next3PhW(@-) OR next3PhW(V) THEN | |||
| length 110 | |||
| ENDIF | |||
| ENDIF | |||
| // "glimrende" [l/3] makes the following vowel too long | |||
| // LengthAdd doesn't work here. The length could be 225 or 140 - 30 | |||
| IF prevPhW(l/3) THEN | |||
| // LengthAdd -30 | |||
| length 110 | |||
| ENDIF | |||
| // "længe" - short - 2 consonants => 1 consonant (ng => [N]) | |||
| IF nextPhW(N) THEN | |||
| length 140 | |||
| ENDIF | |||
| endprocedure | |||
| // A bit longer than [@-] | |||
| phoneme @ | |||
| vowel starttype #@ endtype #@ | |||
| unstressed | |||
| @@ -22,7 +132,18 @@ phoneme @- // very short schwa | |||
| IF nextPhW(*) OR nextPhW(r) THEN | |||
| ipa NULL // @-* is used to make 'r' | |||
| ENDIF | |||
| length 40 | |||
| length 50 | |||
| // "femten", "manden" - only a short "n" sound | |||
| IF nextPhW(n) THEN | |||
| length 15 | |||
| ENDIF | |||
| IF prevPhW(isNotVowel) AND thisPh(isWordEnd) THEN | |||
| length 15 | |||
| ENDIF | |||
| // "lige" [li@-] | |||
| IF prevPhW(i) AND thisPh(isWordEnd) THEN | |||
| length 15 | |||
| ENDIF | |||
| FMT(vowel/@-) | |||
| endphoneme | |||
| @@ -45,38 +166,24 @@ endphoneme | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| length 95 //150 | |||
| // PB long vowel followed by consonant and certain vowels "gide" | |||
| IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN | |||
| length 150 | |||
| length 140 | |||
| // Long vowel followed by consonant and @- "gide", "pile" | |||
| IF nextPhW(isNotVowel) AND next2PhW(@-) THEN | |||
| // length 225 | |||
| ENDIF | |||
| // "gider", vrider" | |||
| IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | |||
| length 95 | |||
| 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 | |||
| length 140 | |||
| ENDIF | |||
| // "vilje" - short followed by 2 consonants | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| length 95 | |||
| //"skider" short | |||
| IF nextPhW(D) AND next2PhW(V) THEN | |||
| length 140 | |||
| 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 | |||
| //"skideren" long | |||
| IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/i_4) | |||
| endphoneme | |||
| @@ -84,7 +191,8 @@ endphoneme | |||
| // sviret vs. svirret | |||
| phoneme ?i | |||
| vowel starttype #i endtype #i | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| IfNextVowelAppend(;) | |||
| FMT(vowel/i_4) | |||
| endphoneme | |||
| @@ -99,27 +207,9 @@ endphoneme | |||
| phoneme e | |||
| vowel starttype #e endtype #e | |||
| length 95 //150 | |||
| // "delte", "mente" | |||
| IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN | |||
| length 150 | |||
| ENDIF | |||
| // PB "ring", "ringe" | |||
| IF nextPhW(N) THEN | |||
| length 95 | |||
| 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 95 | |||
| ENDIF | |||
| length 140 | |||
| CALL LongVowelLength | |||
| CALL ShortVowelLength | |||
| FMT(vowel/e) | |||
| endphoneme | |||
| @@ -127,44 +217,30 @@ endphoneme | |||
| // "skille" vs. "skele", "pille" vs. "pile" | |||
| phoneme ?e | |||
| vowel starttype #e endtype #e | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/e) | |||
| endphoneme | |||
| phoneme E | |||
| vowel starttype #e endtype #e | |||
| length 100 //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 160 | |||
| length 140 | |||
| // no link with next vowel | |||
| IF thisPh(isWordEnd) THEN | |||
| IfNextVowelAppend(_!) | |||
| ENDIF | |||
| // "ære", "kærester", "ærefrygt" - longer E | |||
| // "ære", "kærester", "ærefrygt" - vowel + vowel | |||
| IF nextPhW(V) THEN | |||
| length 180 | |||
| ENDIF | |||
| // Only the letter "æ" - long | |||
| IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
| length 160 | |||
| length 225 | |||
| ENDIF | |||
| // "stædig" [st'EDi] long | |||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
| length 160 | |||
| ENDIF | |||
| // "længe" - short - 2 consonants => 1 consonant | |||
| IF nextPhW(N) THEN | |||
| length 120 | |||
| // "dræber" TEST shortened by -70 in procedure because of the "r" sound | |||
| IF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) AND next2PhW(V) THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| // "værelse" [v'E3-Vls@_!] | |||
| IF nextPhW(3-) AND next2PhW(V) THEN | |||
| length 120 | |||
| ENDIF | |||
| // "mælkebøtte" - short followed by 2 consonants | |||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
| length 120 | |||
| length 100 | |||
| ENDIF | |||
| FMT(vowel/e_mid2) | |||
| endphoneme | |||
| @@ -174,64 +250,47 @@ endphoneme | |||
| phoneme ?E | |||
| vowel starttype #e endtype #e | |||
| ipa ε | |||
| length 100 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/e_mid2) | |||
| endphoneme | |||
| phoneme & | |||
| vowel starttype #e endtype #e | |||
| ipa a | |||
| length 90 //150 | |||
| // "same", "sale", "bade" - consonant + gooup #e or group #@: long | |||
| IF next2PhW(#@) OR next2PhW(#e) THEN | |||
| length 150 | |||
| ipa æ | |||
| length 140 | |||
| // "same", "sale", "bade" - consonant + @-: long | |||
| // but NOT "hinanden" | |||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) THEN | |||
| IF NOT next3PhW(n) THEN | |||
| length 225 | |||
| ENDIF | |||
| ENDIF | |||
| // ThisPh + gooup #e or group #@ | |||
| // ThisPh + V or @- | |||
| // "ae", "aer" vowel + vowel: extra length | |||
| IF nextPhW(#@) OR nextPhW(#e) THEN | |||
| length 220 | |||
| 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 | |||
| IF nextPhW(@-) OR nextPhW(V) THEN | |||
| length 260 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/ee_2) | |||
| endphoneme | |||
| // PB Short & | |||
| // Short & | |||
| // e.g. the last a in "staldkarl" | |||
| // "sale" vs. "sal" | |||
| phoneme ?& | |||
| ipa a | |||
| vowel starttype #e endtype #e | |||
| length 90 | |||
| FMT(vowel/ee_2) | |||
| length 140 | |||
| FMT(vowel/ee_2) | |||
| endphoneme | |||
| // PB added for the æ in "dræbt" | |||
| // Added for the æ in "dræbt" | |||
| 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 | |||
| length 140 | |||
| ipa a | |||
| CALL LongVowelLength | |||
| // CALL ShortVowelLength | |||
| FMT(vowel/&) | |||
| endphoneme | |||
| @@ -239,102 +298,63 @@ endphoneme | |||
| // "revl" vs. "tremme" | |||
| phoneme ?&# | |||
| vowel starttype #e endtype #e | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/&) | |||
| endphoneme | |||
| //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 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 | |||
| length 140 | |||
| CALL LongVowelLength | |||
| // "fare" [f'A:A] | |||
| IF nextPhW(A) THEN | |||
| length 150 | |||
| length 225 | |||
| ENDIF | |||
| FMT(vowel/a_8) | |||
| endphoneme | |||
| // PB short A | |||
| // "drab" vs. "drabelig" | |||
| // "krabbe" 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 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/a_8) | |||
| endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| length 90 //150 | |||
| length 140 | |||
| // "suge", "uge", "bluse", "julegave" | |||
| IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN | |||
| length 150 | |||
| ENDIF | |||
| // "umulig" [u:m'uli] | |||
| 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 | |||
| // "fugl" [ful] - a bit longer | |||
| IF nextPhW(isWordEnd) THEN | |||
| length 120 | |||
| IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/u_bck) | |||
| endphoneme | |||
| // PB glottal u | |||
| // Short u | |||
| // "tude" vs. "tuden" - [tuD3] [t?uD@n] | |||
| phoneme ?u | |||
| vowel starttype #u endtype #u | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/u_bck) | |||
| endphoneme | |||
| phoneme o | |||
| vowel starttype #o endtype #o | |||
| length 90 //150 | |||
| // "bore", "borer" | |||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN | |||
| length 150 | |||
| length 140 | |||
| // "bore", "borer" [boV] o + V | |||
| IF nextPhW(V) OR nextPhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| // "modig" - long vowel after consonant + [i] | |||
| IF nextPhW(D) AND next2PhW(i) THEN | |||
| length 150 | |||
| // "kone", "koner" o + consonant + V or @- | |||
| IF next2PhW(V) OR next2PhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/o_2) | |||
| endphoneme | |||
| @@ -342,25 +362,27 @@ endphoneme | |||
| // "patron" vs. "kone" | |||
| phoneme ?o | |||
| vowel starttype #o endtype #o | |||
| length 95 | |||
| length 140 | |||
| FMT(vowel/o_2) | |||
| endphoneme | |||
| phoneme O | |||
| vowel starttype #o endtype #o | |||
| length 90 // 150 | |||
| // "sove", "sover" - consonant + #e or #@: long | |||
| IF next2PhW(#@) OR next2PhW(#e) THEN | |||
| length 150 | |||
| length 140 | |||
| ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ | |||
| // "sove", "sover" - consonant + @ or V: long | |||
| IF next2PhW(@-) OR next2PhW(V) THEN | |||
| length 225 | |||
| ENDIF | |||
| // PB "gået" - ThisPh + #e or #@ | |||
| IF nextPhW(#e) OR nextPhW(#@) THEN | |||
| length 150 | |||
| // PB "gået" - ThisPh + V or @- | |||
| IF nextPhW(V) OR nextPhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| // "rådig" | |||
| IF nextVowel(i) AND nextVowel(isFinalVowel) THEN | |||
| length 180 | |||
| // "såre", "sårede" [s'O:?OD@-] | |||
| IF nextPhW(O) OR nextPhW(?O) THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/o_5) | |||
| endphoneme | |||
| @@ -368,95 +390,60 @@ endphoneme | |||
| // "toget" vs. "tåget" | |||
| phoneme ?O | |||
| vowel starttype #o endtype #o | |||
| length 90 | |||
| length 140 | |||
| 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 | |||
| // "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 | |||
| // PB "konge" | |||
| IF nextPhW(N) THEN | |||
| length 95 | |||
| ENDIF | |||
| length 140 | |||
| CALL LongVowelLength | |||
| FMT(vowel/V_4) | |||
| endphoneme | |||
| // PB Short å | |||
| // PB Short V | |||
| // "forstår" vs. "kåre" | |||
| phoneme ?V | |||
| vowel starttype #@ endtype #@ | |||
| length 90 | |||
| length 140 | |||
| 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 | |||
| length 140 | |||
| ipa ɔ | |||
| FMT(vowel/oo_2) | |||
| endphoneme | |||
| // Short 0 "sukker" | |||
| phoneme ?0 | |||
| vowel starttype #o endtype #o | |||
| length 90 | |||
| length 140 | |||
| ipa ɔ | |||
| FMT(vowel/oo_2) | |||
| endphoneme | |||
| phoneme y | |||
| vowel starttype #i endtype #i | |||
| // Length changed to short since most vowels are short. | |||
| // It's probably easier only to make rules for long vowels. | |||
| length 90 //150 | |||
| length 140 | |||
| // 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 | |||
| // "gyde", "gyder" | |||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN | |||
| // not "gebyret" TEST | |||
| IF NOT nextPhW(3-) AND NOT nextPhW(R) AND NOT nextPhW(r) THEN | |||
| length 225 | |||
| ENDIF | |||
| ENDIF | |||
| // "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] | |||
| IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN | |||
| length 200 | |||
| // "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] | |||
| IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN | |||
| length 225 | |||
| ENDIF | |||
| // "tyve" | |||
| IF nextPhW(?u) AND next2PhW(@-) THEN | |||
| length 150 | |||
| IF nextPhW(w) AND next2PhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/y) | |||
| endphoneme | |||
| @@ -464,50 +451,32 @@ endphoneme | |||
| // "kylling" vs. "kyle", "krybbe" vs. "krybe" | |||
| phoneme ?y | |||
| vowel starttype #i endtype #i | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| 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 | |||
| length 140 | |||
| IF nextPhW(V) OR nextPhW(@-) THEN | |||
| length 225 | |||
| ENDIF | |||
| FMT(vowel/yy) | |||
| endphoneme | |||
| phoneme W | |||
| vowel starttype #@ endtype #@ | |||
| length 90 //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" but NOT "surfer" [sWf?V] TEST | |||
| length 140 | |||
| // "røveri" but NOT "surfer" [sWfV] TEST | |||
| IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) 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 | |||
| length 140 | |||
| ENDIF | |||
| // "børnebog" | |||
| IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN | |||
| length 150 | |||
| // "børnebog" - short | |||
| IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN | |||
| length 140 | |||
| ENDIF | |||
| CALL LongVowelLength | |||
| FMT(vowel/oe) | |||
| endphoneme | |||
| @@ -515,21 +484,18 @@ endphoneme | |||
| // "prøv" vs. "prøve" | |||
| phoneme ?W | |||
| vowel starttype #@ endtype #@ | |||
| length 95 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/oe) | |||
| endphoneme | |||
| // Added for the ø in "røv", "røg", "øje" instead of [V3] | |||
| phoneme W# | |||
| vowel starttype #@ endtype #@ | |||
| length 90 //150 | |||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
| glstop | |||
| // length 90 | |||
| ENDIF | |||
| length 140 //225 | |||
| // PB long vowel followed by consonant and certain vowels | |||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN | |||
| length 150 | |||
| length 225 | |||
| ENDIF | |||
| FMT(vowel/V) | |||
| endphoneme | |||
| @@ -538,7 +504,8 @@ endphoneme | |||
| // "rømme" | |||
| phoneme ?W# | |||
| vowel starttype #@ endtype #@ | |||
| length 90 | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/V) | |||
| endphoneme | |||
| @@ -547,7 +514,7 @@ phoneme aI | |||
| length 300 | |||
| IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN | |||
| glstop | |||
| length 150 | |||
| length 225 | |||
| ENDIF | |||
| // "dreje" [dR'aI@-_!] | |||
| IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
| @@ -571,6 +538,10 @@ endphoneme | |||
| phoneme l | |||
| liquid | |||
| lengthmod 7 | |||
| // [ll] => [-l] - avoid double l | |||
| IF nextPhW(l) THEN | |||
| // ChangePhoneme(-) | |||
| ENDIF | |||
| ChangePhoneme(l/3) | |||
| // CALL base/l | |||
| endphoneme | |||
| @@ -578,24 +549,6 @@ 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,-70) // kvalt, kapital | |||
| VowelEnding(l/l_e, -40) | |||
| VowelEnding(l/l_i, -70) | |||
| VowelEnding(l/l_o,-70) // stole, skole, pistol | |||
| VowelEnding(l/l_u, -70) | |||
| EndSwitch | |||
| // IF nextPh(isLiquid) THEN | |||
| // FMT(l/_l) | |||
| // ENDIF | |||
| FMT(l/l_) | |||
| endphoneme | |||
| @@ -678,7 +631,10 @@ endphoneme | |||
| phoneme j | |||
| liquid palatal | |||
| lengthmod 7 | |||
| // no link with next vowel | |||
| IF thisPh(isWordEnd) THEN | |||
| IfNextVowelAppend(_!) | |||
| ENDIF | |||
| IF nextPhW(isVowel) THEN | |||
| NextVowelStarts | |||
| VowelStart(j/j@) | |||
| @@ -194,6 +194,11 @@ phoneme aa // 'bath' etc. | |||
| vowel starttype #a endtype #a | |||
| ipa a | |||
| length 185 | |||
| IF MbrolaSynth THEN | |||
| ChangePhoneme(A:) | |||
| ENDIF | |||
| IfNextVowelAppend(r-) | |||
| FMT(vowel/a) | |||
| endphoneme | |||
| @@ -219,18 +224,30 @@ phoneme I2 | |||
| vowel starttype #i endtype #i | |||
| unstressed | |||
| length 130 | |||
| IF MbrolaSynth THEN | |||
| ChangePhoneme(I) | |||
| ENDIF | |||
| IfNextVowelAppend(;) | |||
| FMT(vowel/ii_4) | |||
| endphoneme | |||
| phoneme I# // used for [I] which may be [@] in some accents | |||
| vowel starttype #i endtype #i | |||
| unstressed | |||
| length 130 | |||
| IF MbrolaSynth THEN | |||
| ChangePhoneme(I) | |||
| ENDIF | |||
| IfNextVowelAppend(;) | |||
| ChangePhoneme(I2) | |||
| endphoneme | |||
| phoneme i // optional variant of [I] for end of words | |||
| vowel starttype #i endtype #i | |||
| ipa ɪ | |||
| @@ -342,6 +359,11 @@ phoneme o@ | |||
| vowel starttype #o endtype #o | |||
| ipa ɔː | |||
| length 250 | |||
| IF MbrolaSynth THEN | |||
| ChangePhoneme(O@) | |||
| ENDIF | |||
| IfNextVowelAppend(r-) | |||
| FMT(vowel/oo_en) | |||
| endphoneme | |||
| @@ -418,6 +440,11 @@ endphoneme | |||
| phoneme i@3 | |||
| vowel starttype #i endtype #@ | |||
| length 250 | |||
| IF MbrolaSynth THEN | |||
| ChangePhoneme(i@) | |||
| ENDIF | |||
| IfNextVowelAppend(r-) | |||
| FMT(vdiph2/ii@) | |||
| endphoneme | |||
| @@ -69,7 +69,7 @@ endphoneme | |||
| phoneme E | |||
| vowel starttype #e endtype #e | |||
| length 195 | |||
| length 190 | |||
| ChangeIfDiminished(I2) | |||
| FMT(vwl_en_us/ee) | |||
| endphoneme | |||
| @@ -181,7 +181,7 @@ endphoneme | |||
| phoneme O: | |||
| vowel starttype #o endtype #o | |||
| length 210 | |||
| length 200 | |||
| ChangeIfDiminished(@) | |||
| IF nextPh(r) THEN | |||
| FMT(vwl_en_us/oor) | |||
| @@ -245,7 +245,7 @@ endphoneme | |||
| phoneme aI | |||
| vowel starttype #a endtype #i | |||
| length 250 | |||
| length 240 | |||
| IF nextPh(#a) OR nextPh(#o) THEN | |||
| AppendPhoneme(;) | |||
| ENDIF | |||
| @@ -255,14 +255,15 @@ endphoneme | |||
| phoneme eI | |||
| vowel starttype #e endtype #i | |||
| length 230 | |||
| FMT(vdiph/eei_5) | |||
| length 220 | |||
| FMT(vdiph2/ei_4) | |||
| // FMT(vdiph/eei_5) | |||
| endphoneme | |||
| phoneme OI | |||
| vowel starttype #o endtype #i | |||
| length 285 | |||
| length 280 | |||
| FMT(vdiph/ooi_4) | |||
| endphoneme | |||
| @@ -321,7 +322,7 @@ endphoneme | |||
| phoneme aI3 | |||
| vowel starttype #a endtype #@ | |||
| length 300 | |||
| length 310 | |||
| ipa aɪɚ | |||
| IfNextVowelAppend(r-) | |||
| FMT(vwl_en_us/ai3) | |||
| @@ -439,7 +439,7 @@ endphoneme | |||
| phoneme c# | |||
| CALL base/tS; | |||
| ipa ch | |||
| ipa cU+02B0 | |||
| endphoneme | |||
| @@ -95,6 +95,26 @@ phoneme dZ; // voiced /ㅈ/ | |||
| FMT(dzh/dzh) addWav(x/dz_pzd) | |||
| endphoneme | |||
| phoneme s- | |||
| import_phoneme base/s // temporary | |||
| endphoneme | |||
| phoneme q- | |||
| import_phoneme base/q // temporary | |||
| endphoneme | |||
| phoneme tS;- | |||
| import_phoneme base/tS; // temporary | |||
| endphoneme | |||
| phoneme d- | |||
| import_phoneme base/d | |||
| endphoneme | |||
| // phoneme tSh; ?? changed to [tS;h] in ko_rules | |||
| // phoneme h- in ko_list (for 10^3) ?? changed to [h] | |||
| // phoneme tSh- changed to tSh | |||
| phoneme * // r(ㄹ) at initial, medial | |||
| vcd alv flp rhotic | |||
| ipa ɾ | |||
| @@ -25,7 +25,7 @@ phoneme a | |||
| length 130 | |||
| IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN | |||
| FMT(vowel/a#_2) | |||
| FMT(vowel/a#_4) | |||
| ELSE | |||
| ChangeIfUnstressed(@) | |||
| @@ -144,3 +144,121 @@ phoneme d2 // 'rr' sounds like English 'd' | |||
| endphoneme | |||
| // Aspirated voice stops, sound like aspirated unvoiced stops ? | |||
| phoneme b# | |||
| vls blb stop prevoice | |||
| lengthmod 2 | |||
| voicingswitch b | |||
| Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||
| Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||
| IF PreVoicing THEN | |||
| IF prevPhW(isVowel) THEN | |||
| FMT(b/xb) | |||
| ELSE | |||
| FMT(voc/murmur1) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) THEN | |||
| WAV(ustop/p_) | |||
| ENDIF | |||
| IF nextPh(l) THEN | |||
| WAV(ustop/pl) | |||
| ENDIF | |||
| WAV(ustop/p_asp) | |||
| endphoneme | |||
| phoneme d# | |||
| vls dnt stop prevoice | |||
| lengthmod 2 | |||
| voicingswitch d | |||
| Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16 | |||
| Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | |||
| IF PreVoicing THEN | |||
| IF prevPhW(isVowel) THEN | |||
| FMT(d/xd) | |||
| ELSE | |||
| FMT(voc/murmur1) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) THEN | |||
| WAV(ustop/t_dnt, 35) | |||
| ENDIF | |||
| WAV(ustop/t_dnt, 50) | |||
| endphoneme | |||
| phoneme d.# | |||
| vls rfx stop prevoice | |||
| lengthmod 2 | |||
| ipa ʈU+02B0 | |||
| Vowelin f1=0 f2=1800 -300 300 f3=-400 80 | |||
| Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 | |||
| IF PreVoicing THEN | |||
| IF prevPhW(isVowel) THEN | |||
| FMT(d/xdr) | |||
| ELSE | |||
| FMT(voc/murmur1) | |||
| ENDIF | |||
| ENDIF | |||
| voicingswitch d.# | |||
| WAV(ustop/t) | |||
| endphoneme | |||
| phoneme J# | |||
| vls pal afr sibilant palatal prevoice | |||
| voicingswitch c# | |||
| lengthmod 2 | |||
| Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | |||
| IF PreVoicing THEN | |||
| IF prevPhW(isVowel) THEN | |||
| FMT(dzh/xdz_pzd) | |||
| ELSE | |||
| FMT(voc/murmur1) | |||
| ENDIF | |||
| ENDIF | |||
| IF nextPh(isPause2) THEN | |||
| WAV(ustop/ts_pzd) | |||
| ENDIF | |||
| WAV(ustop/ts_pzd) | |||
| endphoneme | |||
| phoneme g# | |||
| vls vel stop prevoice | |||
| lengthmod 2 | |||
| Vowelin f1=1 f2=1400 -100 100 f3=-150 80 | |||
| Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | |||
| IF PreVoicing THEN | |||
| IF prevPhW(isVowel) THEN | |||
| FMT(g/xg) | |||
| ELSE | |||
| FMT(voc/murmur1) | |||
| ENDIF | |||
| ENDIF | |||
| 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 | |||
| @@ -48,21 +48,21 @@ endphoneme | |||
| phoneme E | |||
| vowel starttype #e endtype #e | |||
| length 170 | |||
| length 180 | |||
| ChangeIfUnstressed(y) | |||
| FMT(vowel/e_mid) | |||
| endphoneme | |||
| phoneme e | |||
| vowel starttype #e endtype #e | |||
| length 160 | |||
| length 180 | |||
| ChangeIfUnstressed(y) | |||
| FMT(vowel/e) | |||
| endphoneme | |||
| phoneme y | |||
| vowel starttype #@ endtype #@ | |||
| length 110 | |||
| length 130 | |||
| ipa ɨ | |||
| FMT(vowel/i#_5) | |||
| endphoneme | |||
| @@ -70,7 +70,7 @@ endphoneme | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| length 150 | |||
| length 170 | |||
| IfNextVowelAppend(;) | |||
| FMT(vowel/i) | |||
| endphoneme | |||
| @@ -78,7 +78,7 @@ endphoneme | |||
| phoneme i/ // changes to NULL before a vowel | |||
| vowel starttype #i endtype #i | |||
| length 100 | |||
| length 130 | |||
| ipa ɨ | |||
| IF nextPh(isVowel) THEN | |||
| ChangePhoneme(NULL) | |||
| @@ -90,7 +90,7 @@ endphoneme | |||
| phoneme O | |||
| vowel starttype #o endtype #o | |||
| length 170 | |||
| length 180 | |||
| // ChangeIfNotStressed(o) | |||
| FMT(vowel/0_2) | |||
| endphoneme | |||
| @@ -98,7 +98,7 @@ endphoneme | |||
| phoneme o | |||
| vowel starttype #o endtype #o | |||
| length 170 | |||
| length 180 | |||
| ChangeIfNotStressed(u) | |||
| FMT(vowel/o) | |||
| endphoneme | |||
| @@ -106,13 +106,13 @@ endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| length 160 | |||
| length 180 | |||
| FMT(vowel/u_6) | |||
| endphoneme | |||
| phoneme U | |||
| vowel starttype #u endtype #u | |||
| length 110 | |||
| length 130 | |||
| IF nextPh(isVowel) THEN | |||
| ChangePhoneme(w) | |||
| ENDIF | |||
| @@ -122,7 +122,7 @@ endphoneme | |||
| phoneme EU | |||
| vowel starttype #e endtype #u | |||
| length 220 | |||
| length 230 | |||
| FMT(vdiph/eeu_2) | |||
| endphoneme | |||
| @@ -159,3 +159,7 @@ phoneme # // a NULL phoneme for 'virama' | |||
| ChangePhoneme(NULL) | |||
| endphoneme | |||
| phoneme z. | |||
| CALL base/z. | |||
| ipa U+027B | |||
| endphoneme | |||
| @@ -1745,6 +1745,9 @@ include ph_kannada | |||
| phonemetable ml hi | |||
| include ph_malayalam | |||
| phonemetable te hi | |||
| include ph_telugu | |||
| phonemetable hu base | |||
| @@ -1875,17 +1878,20 @@ include ph_greenlandic | |||
| phonemetable am base | |||
| include ph_amhari | |||
| phonemetable si hi | |||
| include ph_sinhala | |||
| //************************************************************************************** | |||
| // The following lines are experimental, for future additions. | |||
| // These langauges are not in a usable state. | |||
| // These lines can be deleted. | |||
| phonemetable rw base2 | |||
| include ph_kinyarwanda | |||
| phonemetable si hi | |||
| include ph_sinhala | |||
| phonemetable sl sk | |||
| include ph_slovenian | |||
| //phonemetable rw base2 | |||
| //include ph_kinyarwanda | |||
| //phonemetable mr hi | |||
| //include ph_marathi | |||
| @@ -1899,9 +1905,6 @@ include ph_kinyarwanda | |||
| //phonemetable prs base | |||
| //include ph_dari | |||
| phonemetable sl sk | |||
| include ph_slovenian | |||
| //phonemetable gd base | |||
| //include ph_s_gaelic | |||
| @@ -1923,13 +1926,9 @@ include ph_slovenian | |||
| //phonemetable dv hi | |||
| //include ph_divehi | |||
| //phonemetable te hi | |||
| //include ph_telugu | |||
| //phonemetable tn base | |||
| //include ph_setswana | |||
| //phonemetable mt base | |||
| //include ph_maltese | |||
| @@ -2,8 +2,8 @@ | |||
| # Toolflags: | |||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -zM | |||
| C++flags = -c -depend !Depend -IC: -throwback -zM | |||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41 | |||
| C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41 | |||
| Linkflags = -rmf -c++ -o $@ | |||
| ObjAsmflags = -throwback -NoCache -depend !Depend | |||
| CMHGflags = | |||
| @@ -61,3 +61,4 @@ Squeezeflags = -o $@ | |||
| objasm $(objasmflags) -from @.s.assemb -to @.o.assemb | |||
| # Dynamic dependencies: | |||
| @@ -1,6 +1,6 @@ | |||
| /*************************************************************************** | |||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
| * email: [email protected] * | |||
| * * | |||
| * This program is free software; you can redistribute it and/or modify * | |||
| @@ -26,6 +26,7 @@ | |||
| #include <ctype.h> | |||
| #include <locale.h> | |||
| #include "kernel.h" | |||
| #include <math.h> | |||
| #include "speech.h" | |||
| #include "speak_lib.h" | |||
| @@ -221,6 +222,7 @@ void ReadVoiceNames2(char *directory) | |||
| voice_variant_names[n_voice_variant_files++] = p; | |||
| } | |||
| else | |||
| if(strcmp(p, "default") != 0) | |||
| { | |||
| if(n_voice_files >= (N_VOICE_NAMES-1)) | |||
| continue; | |||
| @@ -233,11 +235,17 @@ void ReadVoiceNames2(char *directory) | |||
| void ReadVoiceNames() | |||
| {//=================== | |||
| char directory[sizeof(path_home)+10]; | |||
| char directory[sizeof(path_home)+20]; | |||
| n_voice_files = 0; | |||
| n_voice_variant_files = 0; | |||
| sprintf(directory,"%s.voices.default", path_home); | |||
| if(GetFileLength(directory) > 0) | |||
| { | |||
| // put the 'default' voice at the start of the list | |||
| voice_names[n_voice_files++] = "default"; | |||
| } | |||
| sprintf(directory,"%s.voices",path_home); | |||
| ReadVoiceNames2(directory); | |||
| @@ -400,11 +408,27 @@ void FillSoundBuf(int size) | |||
| int initialise(void) | |||
| {//================= | |||
| sprintf(path_home,"%s.espeak-data","<eSpeak$Dir>"); | |||
| char buf[N_PATH_HOME]; | |||
| _kernel_swi_regs regs; | |||
| _kernel_oserror *error; | |||
| buf[0] = 0; | |||
| regs.r[0] = (int)"eSpeak$Dir"; | |||
| regs.r[1] = (int)buf; | |||
| regs.r[2] = sizeof(buf); | |||
| regs.r[3] = 0; | |||
| regs.r[4] = 0; | |||
| regs.r[5] = 0; | |||
| error = _kernel_swi(0x20023,®s,®s); // OS_ReadVarVal | |||
| buf[regs.r[2]] = 0; | |||
| sprintf(path_home,"%s.espeak-data",buf); | |||
| if(GetFileLength(path_home) != -2) | |||
| { | |||
| // not found, try the 10 character version of the directory name | |||
| sprintf(path_home,"%s.espeak-dat","<eSpeak$Dir>"); | |||
| sprintf(path_home,"%s.espeak-dat",buf); | |||
| } | |||
| if(GetFileLength(path_home) != -2) | |||
| { | |||
| @@ -414,7 +438,7 @@ int initialise(void) | |||
| } | |||
| WavegenInit(22050,0); | |||
| LoadPhData(); | |||
| LoadPhData(NULL); | |||
| SetVoiceStack(NULL, ""); | |||
| SynthesizeInit(); | |||
| return(0); | |||
| @@ -453,7 +477,7 @@ void speak_text_string(char *data, int terminator, int len, int wait, int voice_ | |||
| static_length = 0; | |||
| else | |||
| { | |||
| strcat(&static_buf[static_length]," : "); | |||
| strcat(&static_buf[static_length]," \n "); | |||
| static_length+=3; | |||
| } | |||
| @@ -578,13 +602,14 @@ void set_say_options(int reg2, int reg3) | |||
| void jsd_swi_functions(int *r) | |||
| /****************************/ | |||
| { | |||
| int use_ipa; | |||
| espeak_VOICE voice_select; | |||
| switch(r[0]) | |||
| { | |||
| case 0: /* major version */ | |||
| r[0] = 4; | |||
| r[1] = 331; | |||
| r[1] = 347; | |||
| break; | |||
| case 1: /* register user */ | |||
| @@ -594,7 +619,13 @@ void jsd_swi_functions(int *r) | |||
| break; | |||
| case 3: | |||
| // r[0] = (int)speech_to_phonemes((char *)r[1]); | |||
| // translate into phonemes | |||
| use_ipa = 0; | |||
| if((r[2] >= 1) && (use_ipa <= 3)) | |||
| use_ipa = r[2]; | |||
| TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); | |||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||
| r[0] = (int)translator->phon_out; | |||
| break; | |||
| case 4: | |||
| @@ -642,6 +673,7 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) | |||
| /*********************************************************/ | |||
| { | |||
| int value; | |||
| int value2; | |||
| int q_length; | |||
| value = r[0]; | |||
| @@ -650,21 +682,23 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) | |||
| case 0: // ready ? | |||
| // returns the index into the source text of the currently speaking word | |||
| if(current_source_index > 0) | |||
| r[1] = current_source_index-1; | |||
| else | |||
| r[1] = current_source_index; /* source index */ | |||
| if(current_source_index > 0) | |||
| r[1] = current_source_index-1; | |||
| else | |||
| r[1] = current_source_index; /* source index */ | |||
| r[2] = 0; /* source tag */ | |||
| r[3] = 0; /* for future expansion */ | |||
| r[4] = 0; | |||
| r[5] = 0; | |||
| if(wcmdq_head == wcmdq_tail) | |||
| if(WcmdqUsed() < 5) | |||
| { | |||
| r[0] = -1; /* ready, or nearly */ | |||
| } | |||
| else | |||
| { | |||
| r[0] = 0; | |||
| } | |||
| break; | |||
| case 1: /* restore old sound channel. DO NOTHING */ | |||
| @@ -692,19 +726,32 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) | |||
| break; | |||
| case 7: /* pitch */ | |||
| // not implemented | |||
| value = (value * 50)/128; | |||
| SetParameter(espeakPITCH, value, 0); | |||
| break; | |||
| case 8: /* speed */ | |||
| SetParameter(espeakRATE,value,0); | |||
| case 8: // speed, convert to range 80 to 400, mid-value=180 | |||
| if(value < 128) | |||
| value2 = 80 + (value*100)/128; // linear range for 0-127 -> 80-179 | |||
| else | |||
| value2 = 80 + pow((float)value/128.0, 1.75)*100; | |||
| SetParameter(espeakRATE,value2,0); | |||
| break; | |||
| case 9: /* word_gap */ | |||
| if(value >= 128) | |||
| value = value - 128; | |||
| if(value > 1) | |||
| value = (value-1) * 5; | |||
| SetParameter(espeakWORDGAP,value,0); | |||
| break; | |||
| case 10: /* pitch_range */ | |||
| // not implemented | |||
| value = (value * 50)/128; | |||
| SetParameter(espeakRANGE, value, 0); | |||
| break; | |||
| case 12: /* reset */ | |||
| @@ -712,7 +759,22 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw) | |||
| break; | |||
| case 13: /* volume */ | |||
| SetParameter(espeakVOLUME,value,0); | |||
| // convert to range 6-255 to 10-400, mid-value=100 | |||
| if(value < 6) | |||
| value2 = value + 4; | |||
| else | |||
| if(value < 128) | |||
| { | |||
| value2 = pow((float)(value+40)/168.0, 1.75)*100; | |||
| } | |||
| else | |||
| value2 = pow((float)value/128.0, 2.0)*100; | |||
| SetParameter(espeakVOLUME,value2,0); | |||
| WavegenSetVoice(voice); | |||
| break; | |||
| case 14: // set voice by name | |||
| SetVoiceByName((char *)r[0]); | |||
| WavegenSetVoice(voice); | |||
| break; | |||
| } | |||
| @@ -835,6 +897,13 @@ int param_number(char **argp) | |||
| return(value); | |||
| } | |||
| void PrintVersion() | |||
| {//================ | |||
| char buf[120]; | |||
| printf("\nspeak text-to-speech: %s Data at: %s\n", version_string, path_home); | |||
| } | |||
| void command_line(char *arg_string, int wait) | |||
| {//========================================== | |||
| @@ -854,6 +923,7 @@ void command_line(char *arg_string, int wait) | |||
| char command[80]; | |||
| char *p; | |||
| int ix; | |||
| int quiet; | |||
| voicename[0] = 0; | |||
| wavefile[0] = 0; | |||
| @@ -861,7 +931,7 @@ void command_line(char *arg_string, int wait) | |||
| option_linelength = 0; | |||
| option_phonemes = 0; | |||
| option_waveout = 0; | |||
| option_quiet = 0; | |||
| quiet = 0; | |||
| option_multibyte = 0; // auto | |||
| option_capitals = 0; | |||
| option_punctuation = 0; | |||
| @@ -887,7 +957,8 @@ void command_line(char *arg_string, int wait) | |||
| break; | |||
| case 'h': | |||
| printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); | |||
| PrintVersion(); | |||
| printf("\n%s",help_text); | |||
| return; | |||
| case 'k': | |||
| @@ -912,7 +983,7 @@ void command_line(char *arg_string, int wait) | |||
| break; | |||
| case 'q': | |||
| option_quiet = 1; | |||
| quiet = 1; | |||
| break; | |||
| case 'f': | |||
| @@ -963,7 +1034,8 @@ void command_line(char *arg_string, int wait) | |||
| else | |||
| if(strcmp(command,"help")==0) | |||
| { | |||
| printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); | |||
| PrintVersion(); | |||
| printf("\n%s",help_text); | |||
| return; | |||
| } | |||
| else | |||
| @@ -980,6 +1052,17 @@ void command_line(char *arg_string, int wait) | |||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||
| } | |||
| else | |||
| if(memcmp(command,"version",7)==0) | |||
| { | |||
| PrintVersion(); | |||
| return; | |||
| } | |||
| else | |||
| if(memcmp(command,"ipa",3)==0) | |||
| { | |||
| option_phonemes = 3; | |||
| } | |||
| else | |||
| { | |||
| printf("Command not recognised\n"); | |||
| } | |||
| @@ -997,22 +1080,25 @@ void command_line(char *arg_string, int wait) | |||
| } | |||
| } | |||
| if((option_phonemes > 1) && !option_waveout) | |||
| quiet = 1; // can't call sprintf() during callback | |||
| SetVoiceByName(voicename); | |||
| if((filename[0]==0) && (p[0]=='\r')) | |||
| { | |||
| // nothing to speak | |||
| if(option_quiet) | |||
| if(quiet) | |||
| { | |||
| SpeakNextClause(NULL,NULL,2); // stop speaking | |||
| more_text = 0; | |||
| } | |||
| } | |||
| if(option_waveout || option_quiet) | |||
| if(option_waveout || quiet) | |||
| { | |||
| // write speech to a WAV file | |||
| if(option_quiet) | |||
| if(quiet) | |||
| { | |||
| OpenWaveFile(NULL,samplerate); | |||
| option_waveout = 2; | |||
| @@ -2,7 +2,7 @@ | |||
| [Setup] | |||
| AppName=eSpeak | |||
| AppVerName=eSpeak version 1.47.01 | |||
| AppVerName=eSpeak version 1.47.04 | |||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | |||
| WindowVisible=yes | |||
| @@ -146,7 +146,7 @@ begin | |||
| $0e: Result := 'hu'; | |||
| $0f: Result := 'is'; | |||
| $10: Result := 'it'; | |||
| //$12: Result := 'ko'; | |||
| $12: Result := 'ko'; | |||
| $13: Result := 'nl'; | |||
| $14: Result := 'no'; | |||
| $15: Result := 'pl'; | |||
| @@ -158,7 +158,7 @@ begin | |||
| $1c: Result := 'sq'; | |||
| $1d: Result := 'sv'; | |||
| $1f: Result := 'tr'; | |||
| //$20: Result := 'ur'; | |||
| $20: Result := 'ur'; | |||
| $21: Result := 'id'; | |||
| $25: Result := 'et'; | |||
| $26: Result := 'lv'; | |||
| @@ -174,6 +174,7 @@ begin | |||
| $39: Result := 'hi'; | |||
| //$3a: Result := 'mt'; | |||
| $3c: Result := 'ga'; | |||
| $3e: Result := 'ms'; | |||
| //$3f: Result := 'kk'; | |||
| $41: Result := 'sw'; | |||
| //$44: Result := 'tt'; | |||
| @@ -263,6 +264,7 @@ begin | |||
| 'mk': value := $42f; | |||
| 'ml': value := $44c; | |||
| 'mn': value := $450; | |||
| 'ms': value := $43e; | |||
| 'mt': value := $43a; | |||
| 'my': value := $455; | |||
| 'ne': value := $461; | |||
| @@ -1,58 +1,64 @@ | |||
| [Setup] | |||
| AppName=eSpeakEdit | |||
| AppVerName=eSpeakEdit version 1.47.01 | |||
| DefaultDirName={pf}\eSpeak | |||
| DefaultGroupName=eSpeak | |||
| OutputBaseFilename=setup_espeakedit | |||
| Compression=lzma | |||
| SolidCompression=yes | |||
| DirExistsWarning=no | |||
| ShowLanguageDialog=auto | |||
| [Icons] | |||
| Name: "{group}\espeakedit"; Filename: "{app}\espeakedit.exe"; WorkingDir: "{app}"; Flags: runmaximized | |||
| Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}" | |||
| [InstallDelete] | |||
| Type: filesandordirs; Name: "{app}\phsource\vowelcharts" | |||
| Type: filesandordirs; Name: "{app}\espeakedit" | |||
| [Files] | |||
| Source: "espeakedit.exe"; DestDir: "{app}" | |||
| ;Source: "dictsource\*"; DestDir: "{app}\dictsource"; Flags: recursesubdirs | |||
| Source: "espeakedit\*"; DestDir: "{app}\espeakedit"; Flags: recursesubdirs | |||
| Source: "phsource\*"; DestDir: "{app}\phsource"; Flags: recursesubdirs | |||
| Source: "docs\*"; DestDir: "{app}\docs"; Flags: recursesubdirs | |||
| Source: "License.txt"; DestDir: "{app}"; | |||
| ;Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme | |||
| [Languages] | |||
| Name: "en"; MessagesFile: "compiler:Default.isl" | |||
| Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" | |||
| Name: "bs"; MessagesFile: "compiler:Languages\Bosnian.isl" | |||
| Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" | |||
| Name: "de"; MessagesFile: "compiler:Languages\German.isl" | |||
| Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" | |||
| Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" | |||
| Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" | |||
| Name: "fr"; MessagesFile: "compiler:Languages\French.isl" | |||
| Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" | |||
| Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" | |||
| Name: "id"; MessagesFile: "compiler:Languages\Indonesian-5.1.11.isl" | |||
| Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" | |||
| Name: "lv"; MessagesFile: "compiler:Languages\Latvian-1-5.1.11.isl" | |||
| Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" | |||
| Name: "no"; MessagesFile: "compiler:Languages\Norwegian.isl" | |||
| Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" | |||
| Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" | |||
| Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" | |||
| Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" | |||
| Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" | |||
| ;Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl" | |||
| Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" | |||
| Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl" | |||
| Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" | |||
| [Setup] | |||
| AppName=eSpeakEdit | |||
| AppVerName=eSpeakEdit version 1.47.04 | |||
| DefaultDirName={pf}\eSpeak | |||
| DefaultGroupName=eSpeak | |||
| OutputBaseFilename=setup_espeakedit | |||
| Compression=lzma | |||
| SolidCompression=yes | |||
| DirExistsWarning=no | |||
| ShowLanguageDialog=auto | |||
| [Icons] | |||
| Name: "{group}\espeakedit"; Filename: "{app}\espeakedit.exe"; WorkingDir: "{app}"; Flags: runmaximized | |||
| Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}" | |||
| [InstallDelete] | |||
| Type: filesandordirs; Name: "{app}\phsource\vowelcharts" | |||
| Type: filesandordirs; Name: "{app}\espeakedit" | |||
| [Files] | |||
| Source: "espeakedit.exe"; DestDir: "{app}" | |||
| ;Source: "dictsource\*"; DestDir: "{app}\dictsource"; Flags: recursesubdirs | |||
| Source: "espeakedit\*"; DestDir: "{app}\espeakedit"; Flags: recursesubdirs | |||
| Source: "phsource\*"; DestDir: "{app}\phsource"; Flags: recursesubdirs | |||
| Source: "docs\*"; DestDir: "{app}\docs"; Flags: recursesubdirs | |||
| Source: "License.txt"; DestDir: "{app}"; | |||
| ;Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme | |||
| [Languages] | |||
| Name: "en"; MessagesFile: "compiler:Default.isl" | |||
| Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" | |||
| Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl" | |||
| Name: "bs"; MessagesFile: "compiler:Languages\Bosnian.isl" | |||
| Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" | |||
| Name: "da"; MessagesFile: "compiler:Languages\Danish.isl" | |||
| Name: "de"; MessagesFile: "compiler:Languages\German.isl" | |||
| Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" | |||
| Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" | |||
| Name: "fa"; MessagesFile: "compiler:Languages\Farsi.isl" | |||
| Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" | |||
| Name: "fr"; MessagesFile: "compiler:Languages\French.isl" | |||
| Name: "hi"; MessagesFile: "compiler:Languages\Hindi.islu" | |||
| Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" | |||
| Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" | |||
| Name: "id"; MessagesFile: "compiler:Languages\Indonesian-5.1.11.isl" | |||
| Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" | |||
| Name: "ka"; MessagesFile: "compiler:Languages\Georgian.islu" | |||
| Name: "lv"; MessagesFile: "compiler:Languages\Latvian.isl" | |||
| Name: "ne"; MessagesFile: "compiler:Languages\Nepali.islu" | |||
| Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" | |||
| Name: "no"; MessagesFile: "compiler:Languages\Norwegian.isl" | |||
| Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" | |||
| Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" | |||
| Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" | |||
| Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" | |||
| Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" | |||
| Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" | |||
| Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl" | |||
| Name: "vi"; MessagesFile: "compiler:Languages\Vietnamese.isl" | |||
| Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" | |||
| @@ -2866,8 +2866,8 @@ int CompilePhoneme(int compile_phoneme) | |||
| break; | |||
| case i_ADD_LENGTH: | |||
| value = NextItem(tSIGNEDNUMBER); | |||
| *prog_out++ = (i_ADD_LENGTH << 8) + value/2; | |||
| value = NextItem(tSIGNEDNUMBER) / 2; | |||
| *prog_out++ = (i_ADD_LENGTH << 8) + (value & 0xff); | |||
| DecThenCount(); | |||
| break; | |||
| @@ -3059,6 +3059,7 @@ int CompilePhoneme(int compile_phoneme) | |||
| case kRETURN: | |||
| *prog_out++ = i_RETURN; | |||
| DecThenCount(); | |||
| break; | |||
| case kINCLUDE: | |||
| @@ -3473,16 +3473,34 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f | |||
| } // end of LookupDictList | |||
| extern char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes | |||
| int Lookup(Translator *tr, const char *word, char *ph_out) | |||
| {//=================================================== | |||
| int found; | |||
| unsigned int flags[2]; | |||
| int say_as; | |||
| char *word1 = (char *)word; | |||
| char text[80]; | |||
| flags[0] = 0; | |||
| flags[1] = FLAG_LOOKUP_SYMBOL; | |||
| char *word1 = (char *)word; | |||
| return(LookupDictList(tr, &word1, ph_out, flags, 0, NULL)); | |||
| found = LookupDictList(tr, &word1, ph_out, flags, FLAG_ALLOW_TEXTMODE, NULL); | |||
| if(flags[0] & FLAG_TEXTMODE) | |||
| { | |||
| say_as = option_sayas; | |||
| option_sayas = 0; // don't speak replacement word as letter names | |||
| text[0] = 0; | |||
| strncpy0(&text[1], word1, sizeof(text)); | |||
| found = TranslateWord(tr, &text[1], 0, NULL, NULL); | |||
| strcpy(ph_out, word_phonemes); | |||
| option_sayas = say_as; | |||
| } | |||
| return(found); | |||
| } | |||
| int LookupFlags(Translator *tr, const char *word) | |||
| {//============================================== | |||
| char buf[100]; | |||
| @@ -655,7 +655,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
| current_alphabet = alphabet; | |||
| if((alphabet != NULL) && !(al_flags & AL_DONT_NAME) && (al_offset != translator->letter_bits_offset)) | |||
| { | |||
| if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet)) | |||
| if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet) || (al_offset == translator->langopts.our_alphabet)) | |||
| { | |||
| // don't say the alphabet name | |||
| } | |||
| @@ -703,11 +703,38 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
| else | |||
| language = L('e','n'); | |||
| if(language != tr->translator_name) | |||
| if((language != tr->translator_name) || (language == L('k','o'))) | |||
| { | |||
| char *p3; | |||
| int initial, code; | |||
| char hangul_buf[12]; | |||
| // 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(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af)) | |||
| { | |||
| // Special case for Korean letters. | |||
| // break a syllable hangul into 2 or 3 individual jamo | |||
| hangul_buf[0] = ' '; | |||
| p3 = &hangul_buf[1]; | |||
| if((initial = (code/28)/21) != 11) | |||
| { | |||
| p3 += utf8_out(initial + 0x1100, p3); | |||
| } | |||
| utf8_out(((code/28) % 21) + 0x1161, p3); // medial | |||
| utf8_out((code % 28) + 0x11a7, &p3[3]); // final | |||
| p3[6] = ' '; | |||
| p3[7] = 0; | |||
| ph_buf[3] = 0; | |||
| TranslateRules(translator2, &hangul_buf[1], &ph_buf[3], sizeof(ph_buf)-3, NULL, 0, NULL); | |||
| SetWordStress(translator2, &ph_buf[3], NULL, -1, 0); | |||
| } | |||
| else | |||
| { | |||
| LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1); | |||
| } | |||
| if(ph_buf[3] == phonSWITCH) | |||
| { | |||
| @@ -125,6 +125,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| int delete_count; | |||
| int word_start; | |||
| int inserted; | |||
| int deleted; | |||
| PHONEME_DATA phdata; | |||
| int n_ph_list3; | |||
| @@ -343,6 +344,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| plist3 = &ph_list3[j]; | |||
| inserted = 0; | |||
| deleted = 0; | |||
| if(insert_ph != 0) | |||
| { | |||
| // we have a (linking) phoneme which we need to insert here | |||
| @@ -431,23 +433,27 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| plist3->phcode = alternative; | |||
| if(alternative == 1) | |||
| continue; // NULL phoneme, discard | |||
| if(ph->type == phVOWEL) | |||
| { | |||
| plist3->synthflags |= SFLAG_SYLLABLE; | |||
| if(ph2->type != phVOWEL) | |||
| plist3->stresslevel = 0; // change from non-vowel to vowel, make sure it's unstressed | |||
| deleted = 1; // NULL phoneme, discard | |||
| } | |||
| else | |||
| plist3->synthflags &= ~SFLAG_SYLLABLE; | |||
| { | |||
| if(ph->type == phVOWEL) | |||
| { | |||
| plist3->synthflags |= SFLAG_SYLLABLE; | |||
| if(ph2->type != phVOWEL) | |||
| plist3->stresslevel = 0; // change from non-vowel to vowel, make sure it's unstressed | |||
| } | |||
| else | |||
| plist3->synthflags &= ~SFLAG_SYLLABLE; | |||
| // re-interpret the changed phoneme | |||
| // But it doesn't obey a second ChangePhoneme() | |||
| InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata); | |||
| // re-interpret the changed phoneme | |||
| // But it doesn't obey a second ChangePhoneme() | |||
| InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata); | |||
| } | |||
| } | |||
| if(ph->type == phVOWEL) | |||
| if((ph->type == phVOWEL) && (deleted == 0)) | |||
| { | |||
| PHONEME_LIST *p; | |||
| @@ -552,7 +558,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| } | |||
| } | |||
| if(plist3 != plist3_inserted) | |||
| if((plist3 != plist3_inserted) && (ix > 0)) | |||
| { | |||
| if((x = (tr->langopts.word_gap & 0x7)) != 0) | |||
| { | |||
| @@ -585,51 +591,54 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
| // not yet implemented | |||
| } | |||
| 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; | |||
| phlist[ix].stresslevel = plist3->stresslevel & 0xf; | |||
| phlist[ix].wordstress = plist3->wordstress; | |||
| phlist[ix].tone_ph = plist3->tone_ph; | |||
| phlist[ix].sourceix = 0; | |||
| phlist[ix].phcode = ph->code; | |||
| if(plist3->sourceix != 0) | |||
| if(deleted == 0) | |||
| { | |||
| phlist[ix].sourceix = plist3->sourceix; | |||
| phlist[ix].newword = 1; // this phoneme is the start of a word | |||
| 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; | |||
| phlist[ix].stresslevel = plist3->stresslevel & 0xf; | |||
| phlist[ix].wordstress = plist3->wordstress; | |||
| phlist[ix].tone_ph = plist3->tone_ph; | |||
| phlist[ix].sourceix = 0; | |||
| phlist[ix].phcode = ph->code; | |||
| if(plist3->sourceix != 0) | |||
| { | |||
| phlist[ix].sourceix = plist3->sourceix; | |||
| phlist[ix].newword = 1; // this phoneme is the start of a word | |||
| if(start_sentence) | |||
| if(start_sentence) | |||
| { | |||
| phlist[ix].newword = 5; // start of sentence + start of word | |||
| start_sentence = 0; | |||
| } | |||
| } | |||
| else | |||
| { | |||
| phlist[ix].newword = 5; // start of sentence + start of word | |||
| start_sentence = 0; | |||
| phlist[ix].newword = 0; | |||
| } | |||
| } | |||
| else | |||
| { | |||
| phlist[ix].newword = 0; | |||
| } | |||
| // phlist[ix].length = ph->std_length; | |||
| phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2; | |||
| if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0)) | |||
| { | |||
| phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT]; | |||
| phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed | |||
| } | |||
| // phlist[ix].length = ph->std_length; | |||
| phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2; | |||
| if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0) && (plist3[1].sourceix != 0)) | |||
| { | |||
| phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT]; | |||
| phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed | |||
| } | |||
| if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE) | |||
| { | |||
| phlist[ix].length = 128; // length_mod | |||
| phlist[ix].env = PITCHfall; | |||
| } | |||
| if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE)) | |||
| { | |||
| phlist[ix].length = 128; // length_mod | |||
| phlist[ix].env = PITCHfall; | |||
| } | |||
| phlist[ix].prepause = 0; | |||
| phlist[ix].amp = 20; // default, will be changed later | |||
| phlist[ix].pitch1 = 255; | |||
| phlist[ix].pitch2 = 255; | |||
| ix++; | |||
| phlist[ix].prepause = 0; | |||
| phlist[ix].amp = 20; // default, will be changed later | |||
| phlist[ix].pitch1 = 255; | |||
| phlist[ix].pitch2 = 255; | |||
| ix++; | |||
| } | |||
| } | |||
| phlist[ix].newword = 2; // end of clause | |||
| @@ -90,6 +90,7 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';', | |||
| 0x055e, // Armenian question | |||
| 0x055b, // Armenian emphasis mark | |||
| 0x060c, // Arabic , | |||
| 0x061b, // Arabic ; | |||
| 0x061f, // Arabic ? | |||
| 0x06d4, // Arabic . | |||
| @@ -137,6 +138,7 @@ static const unsigned int punct_attributes [] = { 0, | |||
| CLAUSE_QUESTION | PUNCT_IN_WORD, // Armenian question | |||
| CLAUSE_PERIOD | PUNCT_IN_WORD, // Armenian emphasis mark | |||
| CLAUSE_COMMA, // Arabic , | |||
| CLAUSE_SEMICOLON, // Arabic ; | |||
| CLAUSE_QUESTION, // Arabic question mark | |||
| CLAUSE_PERIOD, // Arabic full stop | |||
| @@ -575,6 +575,7 @@ void CalcLengths(Translator *tr) | |||
| int last_pitch = 0; | |||
| int pitch_start; | |||
| int length_mod; | |||
| int next2type; | |||
| int len; | |||
| int env2; | |||
| int end_of_clause; | |||
| @@ -689,8 +690,19 @@ void CalcLengths(Translator *tr) | |||
| p->prepause = 40; | |||
| if((prev->type == phPAUSE) || (prev->type == phVOWEL)) // || (prev->ph->mnemonic == ('/'*256+'r'))) | |||
| p->prepause = 0; | |||
| if(prev->type == phVOWEL) | |||
| { | |||
| p->prepause = 0; // use murmur instead to link from the preceding vowel | |||
| } | |||
| else | |||
| if(prev->type == phPAUSE) | |||
| { | |||
| // reduce by the length of the preceding pause | |||
| if(prev->length < p->prepause) | |||
| p->prepause -= prev->length; | |||
| else | |||
| p->prepause = 0; | |||
| } | |||
| else | |||
| if(p->newword==0) | |||
| { | |||
| @@ -827,9 +839,17 @@ if(stress <= 1) | |||
| next3 = &phoneme_list[ix+4]; | |||
| } | |||
| next2type = next2->ph->length_mod; | |||
| if(more_syllables==0) | |||
| { | |||
| len = tr->langopts.length_mods0[next2->ph->length_mod *10+ next->ph->length_mod]; | |||
| if(next->newword || next2->newword) | |||
| { | |||
| // don't use 2nd phoneme over a word boundary, unless it's a pause | |||
| if(next2type != 1) | |||
| next2type = 0; | |||
| } | |||
| len = tr->langopts.length_mods0[next2type *10+ next->ph->length_mod]; | |||
| if((next->newword) && (tr->langopts.word_gap & 0x20)) | |||
| { | |||
| @@ -841,7 +861,7 @@ if(stress <= 1) | |||
| } | |||
| else | |||
| { | |||
| length_mod = tr->langopts.length_mods[next2->ph->length_mod *10+ next->ph->length_mod]; | |||
| length_mod = tr->langopts.length_mods[next2type *10+ next->ph->length_mod]; | |||
| if((next->type == phNASAL) && (next2->type == phSTOP || next2->type == phVSTOP) && (next3->ph->phflags & phFORTIS)) | |||
| length_mod -= 15; | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.47.03c 23.Mar.13"; | |||
| const char *version_string = "1.47.04 02.Apr.13"; | |||
| const int version_phdata = 0x014701; | |||
| int option_device_number = -1; | |||
| @@ -1032,6 +1032,16 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ | |||
| phdata->pd_param[i_APPEND_PHONEME] = data; | |||
| } | |||
| else | |||
| if(instn2 == i_ADD_LENGTH) | |||
| { | |||
| if(data & 0x80) | |||
| { | |||
| // a negative value, do sign extension | |||
| data = -(0x100 - data); | |||
| } | |||
| phdata->pd_param[i_SET_LENGTH] += data; | |||
| } | |||
| else | |||
| if(instn2 == i_IPA_NAME) | |||
| { | |||
| // followed by utf-8 characters, 2 per instn word | |||
| @@ -1426,7 +1426,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
| EndAmplitude(); | |||
| if(p->prepause > 0) | |||
| if((p->prepause > 0) && !(p->ph->phflags & phPREVOICE)) | |||
| DoPause(p->prepause,1); | |||
| done_phoneme_marker = 0; | |||
| @@ -1455,6 +1455,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
| case phSTOP: | |||
| released = 0; | |||
| ph = p->ph; | |||
| if(next->type==phVOWEL) | |||
| { | |||
| released = 1; | |||
| @@ -1468,6 +1469,23 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
| if(released == 0) | |||
| p->synthflags |= SFLAG_NEXT_PAUSE; | |||
| if(ph->phflags & phPREVOICE) | |||
| { | |||
| // a period of voicing before the release | |||
| memset(&fmtp, 0, sizeof(fmtp)); | |||
| InterpretPhoneme(NULL, 0x01, p, &phdata, &worddata); | |||
| fmtp.fmt_addr = phdata.sound_addr[pd_FMT]; | |||
| fmtp.fmt_amp = phdata.sound_param[pd_FMT]; | |||
| if(last_pitch_cmd < 0) | |||
| { | |||
| DoAmplitude(next->amp,NULL); | |||
| DoPitch(envelope_data[p->env],next->pitch1,next->pitch2); | |||
| } | |||
| DoSpect2(ph, 0, &fmtp, p, 0); | |||
| } | |||
| InterpretPhoneme(NULL, 0, p, &phdata, &worddata); | |||
| phdata.pd_control |= pd_DONTLENGTHEN; | |||
| DoSample3(&phdata, 0, 0); | |||
| @@ -79,7 +79,7 @@ ALPHABET alphabets [] = { | |||
| {"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0}, | |||
| {"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, | |||
| {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, | |||
| {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0}, | |||
| {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b','n'), 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}, | |||
| @@ -93,12 +93,12 @@ ALPHABET alphabets [] = { | |||
| {"_ti", OFFSET_TIBET, 0xf00, 0xfff, 0, 0}, | |||
| {"_my", OFFSET_MYANMAR, 0x1000,0x109f, 0, 0}, | |||
| {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | |||
| {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | |||
| {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, L('k','o'), AL_WORDS}, | |||
| {"_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}, | |||
| {"_ko", 0xa700, 0xa700,0xd7ff, L('k','o'), AL_NOT_CODE | AL_WORDS}, | |||
| {NULL, 0, 0, 0, 0, 0} | |||
| }; | |||
| @@ -518,6 +518,7 @@ Translator *SelectTranslator(const char *name) | |||
| { | |||
| SetCyrillicLetters(tr); | |||
| SetLetterVowel(tr,0x2a); | |||
| tr->charset_a0 = charsets[5]; // ISO-8859-5 | |||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word | |||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v) | |||
| tr->langopts.param[LOPT_REDUCE] = 2; | |||
| @@ -654,10 +655,10 @@ Translator *SelectTranslator(const char *name) | |||
| // character codes offset by 0x380 | |||
| static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; | |||
| static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ έ ή ί ύ | |||
| static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; // θ κ ξ π ς σ τ φ χ | |||
| static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ έ ή ί ύ _ | |||
| static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; // θ κ ξ π ς σ τ φ χ _ | |||
| static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0}; | |||
| static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ | |||
| static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ _ | |||
| SetupTranslator(tr,stress_lengths_el,stress_amps_el); | |||
| @@ -670,7 +671,7 @@ Translator *SelectTranslator(const char *name) | |||
| SetLetterBits(tr,LETTERGP_VOWEL2,el_vowels); | |||
| SetLetterBits(tr,LETTERGP_B,el_voiceless); | |||
| SetLetterBits(tr,LETTERGP_C,el_consonants); | |||
| SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ | |||
| SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ _ | |||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
| tr->langopts.stress_rule = STRESSPOSN_2R; | |||
| @@ -912,6 +913,7 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||
| tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_DECIMAL_COMMA | NUM_THOUS_SPACE | NUM_DFRACTION_2 | NUM_ROMAN_CAPITALS; | |||
| tr->langopts.numbers2 = 0xa + NUM2_THOUSANDS_VAR5; // variant numbers before thousands,milliards | |||
| tr->langopts.replace_chars = replace_cyrillic_latin; | |||
| tr->langopts.our_alphabet = OFFSET_CYRILLIC; // don't say "cyrillic" before letter names | |||
| SetLetterVowel(tr,'y'); | |||
| SetLetterVowel(tr,'r'); | |||
| @@ -1113,6 +1115,7 @@ SetLengthMods(tr,3); // all equal | |||
| static const unsigned char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0}; // voiced consonants, l,m,n,N | |||
| tr->letter_bits_offset = OFFSET_KOREAN; | |||
| tr->langopts.our_alphabet = 0xa700; | |||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x61,0x75); | |||
| SetLetterBits(tr,LETTERGP_Y,ko_ivowels); | |||
| @@ -1194,6 +1197,7 @@ SetLengthMods(tr,3); // all equal | |||
| SetupTranslator(tr,stress_lengths_mk,stress_amps_mk); | |||
| tr->charset_a0 = charsets[5]; // ISO-8859-5 | |||
| tr->letter_groups[0] = tr->letter_groups[7] = vowels_cyrillic; | |||
| tr->letter_bits_offset = OFFSET_CYRILLIC; | |||
| tr->langopts.stress_rule = STRESSPOSN_3R; // antipenultimate | |||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; | |||
| @@ -1608,6 +1612,7 @@ SetLengthMods(tr,3); // all equal | |||
| 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) | |||
| tr->langopts.ideographs = 1; | |||
| tr->langopts.our_alphabet = 0x3100; | |||
| tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word | |||
| if(name2 == L('z','h')) | |||
| { | |||
| @@ -1736,6 +1736,7 @@ int SetTranslator2(const char *new_language) | |||
| translator2->phoneme_tab_ix = new_phoneme_tab; | |||
| } | |||
| } | |||
| translator2->phonemes_repeat[0] = 0; | |||
| return(new_phoneme_tab); | |||
| } // end of SetTranslator2 | |||
| @@ -2444,6 +2445,35 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, | |||
| 0x72,0x73,0x74,0x75 | |||
| }; | |||
| // check for Korean Hangul letters | |||
| if(((code = c - 0xac00) >= 0) && (c <= 0xd7af)) | |||
| { | |||
| // break a syllable hangul into 2 or 3 individual jamo | |||
| initial = (code/28)/21; | |||
| medial = (code/28) % 21; | |||
| final = code % 28; | |||
| if(initial == 11) | |||
| { | |||
| // null initial | |||
| c = medial + 0x1161; | |||
| if(final > 0) | |||
| *insert = final + 0x11a7; | |||
| } | |||
| else | |||
| { | |||
| // extact the initial and insert the remainder with a null initial | |||
| c = initial + 0x1100; | |||
| *insert = (11*28*21) + (medial*28) + final + 0xac00; | |||
| } | |||
| return(c); | |||
| } | |||
| else if(((code = c - 0x3130) >= 0) && (code < 0x34)) | |||
| { | |||
| // Hangul compatibility jamo | |||
| return(hangul_compatibility[code] + 0x1100); | |||
| } | |||
| switch(tr->translator_name) | |||
| { | |||
| case L('a','f'): | |||
| @@ -2471,36 +2501,6 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, | |||
| } | |||
| } | |||
| break; | |||
| case L('k','o'): | |||
| if(((code = c - 0xac00) >= 0) && (c <= 0xd7af)) | |||
| { | |||
| // break a syllable hangul into 2 or 3 individual jamo | |||
| initial = (code/28)/21; | |||
| medial = (code/28) % 21; | |||
| final = code % 28; | |||
| if(initial == 11) | |||
| { | |||
| // null initial | |||
| c = medial + 0x1161; | |||
| if(final > 0) | |||
| *insert = final + 0x11a7; | |||
| } | |||
| else | |||
| { | |||
| // extact the initial and insert the remainder with a null initial | |||
| c = initial + 0x1100; | |||
| *insert = (11*28*21) + (medial*28) + final + 0xac00; | |||
| } | |||
| return(c); | |||
| } | |||
| else if(((code = c - 0x3130) >= 0) && (code < 0x34)) | |||
| { | |||
| // Hangul compatibility jamo | |||
| return(hangul_compatibility[code] + 0x1100); | |||
| } | |||
| break; | |||
| } | |||
| return(SubstituteChar(tr, c, next_in, insert, wordflags)); | |||
| } | |||
| @@ -2955,7 +2955,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| } | |||
| else | |||
| { | |||
| if(iswlower(prev_in)) | |||
| if((iswlower(prev_in)) && (prev_in != 0xba)) // Windows thinks masc.ordinal (0xba) is lower-case | |||
| { | |||
| // lower case followed by upper case in a word | |||
| if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) | |||
| @@ -3473,7 +3473,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| prev_clause_pause = clause_pause; | |||
| *tone_out = tone; | |||
| if(tone_out != NULL) | |||
| *tone_out = tone; | |||
| new_sentence = 0; | |||
| if(terminator & CLAUSE_BIT_SENTENCE) | |||
| @@ -546,6 +546,7 @@ typedef struct { | |||
| int listx; // compile *_listx after *list | |||
| const unsigned int *replace_chars; // characters to be substitutes | |||
| char ascii_language[8]; // switch to this language for Latin characters | |||
| int our_alphabet; // offset for main alphabet (if not set in letter_bits_offset) | |||
| int alt_alphabet; // offset for another language to recognize | |||
| int alt_alphabet_lang; // language for the alt_alphabet | |||
| int max_lengthmod; | |||
| @@ -602,7 +602,7 @@ voice_t *LoadVoice(const char *vname, int control) | |||
| // which directory to look for a named voice. List of voice names, must end in a space. | |||
| static const char *voices_asia = | |||
| "fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta tr vi vi-hue zh zh-yue "; | |||
| "bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue zh zh-yue "; | |||
| static const char *voices_europe = | |||
| "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | |||
| @@ -1894,12 +1894,24 @@ void FreeVoiceList() | |||
| ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) | |||
| {//======================================================================== | |||
| #ifndef PLATFORM_RISCOS | |||
| char path_voices[sizeof(path_home)+12]; | |||
| #ifdef PLATFORM_RISCOS | |||
| if(n_voices_list == 0) | |||
| { | |||
| sprintf(path_voices,"%s%cvoices",path_home,PATHSEP); | |||
| len_path_voices = strlen(path_voices)+1; | |||
| GetVoices(path_voices); | |||
| voices_list[n_voices_list] = NULL; // voices list terminator | |||
| } | |||
| return((const espeak_VOICE **)voices_list); | |||
| #else | |||
| int ix; | |||
| int j; | |||
| espeak_VOICE *v; | |||
| static espeak_VOICE **voices = NULL; | |||
| char path_voices[sizeof(path_home)+12]; | |||
| // free previous voice list data | |||
| FreeVoiceList(); | |||
| @@ -1938,7 +1950,6 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) | |||
| } | |||
| return((const espeak_VOICE **)voices); | |||
| #endif | |||
| return((const espeak_VOICE **)voices_list); | |||
| } // end of espeak_ListVoices | |||