Added languages for possible development: bn, ml Changes to phonemes: [x] [C] hi: [ph] [th] git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@194 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -134,9 +134,9 @@ W~ y Y | |||
| : ; b c d dZ f g | |||
| h j k l m n N n2 | |||
| n^ p p2 r R r2 s S | |||
| t t2 t3 tS v w z Z | |||
| z2 z3 | |||
| n^ p p2 r R R2 r2 s | |||
| S t t2 t3 tS v w z | |||
| Z z2 z3 | |||
| Dictionary grc_dict | |||
| @@ -474,11 +474,23 @@ tS v w z | |||
| Dictionary ml_dict | |||
| a a: aI aU e E e: i | |||
| I i: l- o o: r- u u: | |||
| V y | |||
| I i: o o: r- u u: V | |||
| y | |||
| : b c ch d d. dZ f | |||
| g h j J k kh l l. | |||
| m n N n. n^ p ph R | |||
| R2 s s. S; t t. t.h th | |||
| tS v w z z. | |||
| Dictionary bn_dict | |||
| a a~ e e: e~ i I i~ | |||
| l- o O oI oU o~ O~ r- | |||
| u u~ V | |||
| ** b c ch d d. e[ g | |||
| h j J k kh l m n | |||
| N p ph r R s S t | |||
| t. t.h th z. | |||
| @@ -1245,7 +1245,6 @@ laser leIz3 | |||
| lasso las'u: | |||
| lawyer lOI3 | |||
| lava lA:v@ | |||
| layout leIaUt | |||
| le l@ $only | |||
| lead li:d | |||
| leafy li:fI2 | |||
| @@ -1292,6 +1291,7 @@ machismo m@tSIzmoU | |||
| mademoiselle mad@m@zEl | |||
| magazine $3 | |||
| magi meIdZaI | |||
| (main st) m'eInstr,i:t | |||
| maintain $2 | |||
| maintainer $2 | |||
| majority m@dZ0rItI2 | |||
| @@ -2047,6 +2047,7 @@ visit vIzIt | |||
| voila vwal'a | |||
| volcano v0lk'eInoU | |||
| (wall st) w'O:lstr,i:t | |||
| wane weIn | |||
| wannabe w0na2bi: | |||
| warring wO@rIN | |||
| @@ -2291,6 +2292,7 @@ Provence pr0v'A~s | |||
| Pyrenees pIr@n'i:z | |||
| Qatar katA@ | |||
| Quebec kwI2bEk | |||
| Reno ri:noU | |||
| Sahel sA:h'El | |||
| Saigon saIg'0n | |||
| Santiago santI'A:goU | |||
| @@ -100,8 +100,8 @@ | |||
| &) ah (_ @ | |||
| m) a (hog @ | |||
| m) a (jes a | |||
| m) a (jesti @ | |||
| m) a (jor_ eI | |||
| m) a (jore eI | |||
| _) a (k@ a2 | |||
| @) a (ki_ 'a | |||
| n) aked eIkId | |||
| @@ -1519,6 +1519,7 @@ | |||
| de (pt dE | |||
| de (put dE | |||
| _) de (rai dI2 | |||
| de (reg d%i: | |||
| de (rel dE | |||
| de (riC dI2 | |||
| de (rog dI2 | |||
| @@ -2876,7 +2877,7 @@ | |||
| in (dex In | |||
| in (dia In | |||
| _) in (dic In | |||
| _) indi (ge ,IndI2 | |||
| _) indi (ge IndI | |||
| _) in (digo In | |||
| _) in (dir In | |||
| _) in (disP2 ,In | |||
| @@ -3991,6 +3992,7 @@ | |||
| c) ou (th u: | |||
| s) ou (ther V | |||
| y) ou (t u: | |||
| y) ou (t_ aU | |||
| ou (v u: | |||
| oux (_ u: | |||
| @@ -4040,6 +4042,7 @@ | |||
| .group ow | |||
| ow oU | |||
| ow (itz =oUv | |||
| ow (ay_ @w | |||
| kn) owle (d 0lI | |||
| _) ow (l aU | |||
| @@ -4301,6 +4304,7 @@ | |||
| rea (gen rI2eI | |||
| _) re (alig ,ri: | |||
| _) re (all ,ri: | |||
| rea (m ri: | |||
| _) re (au@P2 ,ri: | |||
| re (ck rE | |||
| reckon rEk@n | |||
| @@ -4586,6 +4590,7 @@ | |||
| @) tur (y tS@r | |||
| @) tur (_ tS3 | |||
| ture (_ tS3 | |||
| tz ts | |||
| .group th | |||
| th T | |||
| @@ -4956,6 +4961,7 @@ | |||
| .group y | |||
| y j | |||
| _) y' (CP2 j@ | |||
| y (C_ I | |||
| y (CC I | |||
| _) y (C@ I | |||
| @@ -24,7 +24,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2008-09-13 Michel Such <[email protected]> | |||
| // Updated 2008-09-21 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -87,7 +87,7 @@ _ac2 dublaksA~tEg'y | |||
| _brv bR'Ev | |||
| _ced sed'ij | |||
| _cir aksA~sirkO~fl'Eks | |||
| _dia trem'a | |||
| _dia tR@m'a | |||
| _dot pwE~syskr'i | |||
| _grv aksA~gr'av | |||
| _hac kar'O~ | |||
| @@ -109,7 +109,7 @@ _#32 Espas | |||
| _" gijmE | |||
| _# djEz | |||
| _' apOstrOf | |||
| _' a2postR'Of | |||
| _( 'uvr@-parA~t'Ez | |||
| _) f'Erm parA~t'Ez | |||
| _* asterisk: | |||
| @@ -140,8 +140,8 @@ _} f'E2rm_akOl'ad | |||
| _0 zero | |||
| _1 W~ | |||
| _2 dYz2 | |||
| _3 tRwAz2 | |||
| _4 katr | |||
| _3 tR2wAz2 | |||
| _4 katR2=@- | |||
| _5 sE~k | |||
| _6 siz3 | |||
| _7 sEt | |||
| @@ -150,7 +150,7 @@ _9 nWf | |||
| _10 diz3 | |||
| _11 _!O~z | |||
| _12 duz | |||
| _13 tREz | |||
| _13 tR2Ez | |||
| _14 katOrz | |||
| _15 kE~z | |||
| _16 sEz | |||
| @@ -160,15 +160,15 @@ _19 diznWf | |||
| _20 vE~ | |||
| _21 vE~te:W~ | |||
| _22 vE~tdYz2 | |||
| _23 vE~t:trwAz2 | |||
| _24 vE~tkatr | |||
| _23 vE~t:tR2wAz2 | |||
| _24 vE~tkatR2=@- | |||
| _25 vE~tsE~k | |||
| _26 vE~tsiz3 | |||
| _27 vE~tsEt | |||
| _28 vE~tw^it3 | |||
| _29 vE~tnWf | |||
| _3X tRA~t | |||
| _31 tRA~te:W~ | |||
| _3X tR2A~t | |||
| _31 tR2A~te:W~ | |||
| _4X karA~t | |||
| _41 karA~te:W~ | |||
| _5X sE~kA~t | |||
| @@ -178,25 +178,25 @@ _61 swAsA~te:W~ | |||
| _7X swAsA~t:diz3 | |||
| _71 swAsA~te:O~z | |||
| _72 swAsA~t:duz | |||
| _73 swAsA~t:trEz | |||
| _73 swAsA~t:tR2Ez | |||
| _74 swAsA~t:katOrz | |||
| _75 swAsA~t:kE~z | |||
| _76 swAsA~t:sEz | |||
| _77 swAsA~t:dis:Et | |||
| _78 swAsA~t:diz'w^it3 | |||
| _79 swAsA~t:diznWf | |||
| _8X katr@vE~ | |||
| _80 katR@vE~z2 | |||
| _9X katR@vE~diz3 | |||
| _91 katR@vE~:O~z | |||
| _92 katR@vE~:duz | |||
| _93 katR@vE~:trEz | |||
| _94 katR@vE~:katOrz | |||
| _95 katR@vE~:kE~z | |||
| _96 katR@vE~:sEz | |||
| _97 katR@vE~:dis:Et | |||
| _98 katR@vE~:dizw^it3 | |||
| _99 katR@vE~:diznWf | |||
| _8X katR2@vE~ | |||
| _80 katR2@vE~z2 | |||
| _9X katR2@vE~diz3 | |||
| _91 katR2@vE~:O~z | |||
| _92 katR2@vE~:duz | |||
| _93 katR2@vE~:tR2Ez | |||
| _94 katR2@vE~:katOrz | |||
| _95 katR2@vE~:kE~z | |||
| _96 katR2@vE~:sEz | |||
| _97 katR2@vE~:dis:Et | |||
| _98 katR2@vE~:dizw^it3 | |||
| _99 katR2@vE~:diznWf | |||
| _0C sA~ | |||
| _1C0 sA~t2 | |||
| _0M1 mil | |||
| @@ -210,8 +210,8 @@ _dpt virgyl | |||
| ?2 _7X sEptA~t | |||
| ?2 _71 sEptA~te:W~ | |||
| ?2 _72 sEptA~t:dYz2 | |||
| ?2 _73 sEptA~t:trwAz2 | |||
| ?2 _74 sEptA~t:katr | |||
| ?2 _73 sEptA~t:tR2wAz2 | |||
| ?2 _74 sEptA~t:katR2=@- | |||
| ?2 _75 sEptA~t:sE~k | |||
| ?2 _76 sEptA~t:siz3 | |||
| ?2 _77 sEptA~t:sEt | |||
| @@ -220,8 +220,8 @@ _dpt virgyl | |||
| ?2 _9X no2nA~t | |||
| ?2 _91 no2nA~te:W~ | |||
| ?2 _92 no2nA~t:dYz2 | |||
| ?2 _93 no2nA~t:trwAz2 | |||
| ?2 _94 no2nA~t:katr | |||
| ?2 _93 no2nA~t:tR2wAz2 | |||
| ?2 _94 no2nA~t:katR2=@- | |||
| ?2 _95 no2nA~t:sE~k | |||
| ?2 _96 no2nA~t:siz3 | |||
| ?2 _97 no2nA~t:sEt | |||
| @@ -229,11 +229,11 @@ _dpt virgyl | |||
| ?2 _99 no2nA~t:nWf | |||
| (21 ème) vE~te:yniEm | |||
| (31 ème) tRA~te:yniEm | |||
| (31 ème) tR2A~te:yniEm | |||
| (41 ème) karA~te:yniEm | |||
| (51 ème) sE~kA~te:yniEm | |||
| (61 ème) swAsA~te:yniEm | |||
| (81 ème) katR@vE~:yniEm | |||
| (81 ème) katR2@vE~:yniEm | |||
| // ABBREVIATIONS | |||
| //************** | |||
| @@ -264,7 +264,7 @@ jaws dZ'O2wz | |||
| kde $abbrev | |||
| kg kilogRam | |||
| khz kiloE2rts | |||
| km kilomEtr | |||
| km kilomètre $text | |||
| kw kilowat | |||
| m. m@sjY | |||
| mbrola EmbRola | |||
| @@ -521,7 +521,7 @@ telles $u+ | |||
| tout t'ut2 $u+ | |||
| toute t'ut $u+ | |||
| toutes t'utz2 $u+ | |||
| rien rjE~n2 $u+ | |||
| rien Ri'E~n2 $u+ | |||
| // Letters which can be words | |||
| //=========================== | |||
| @@ -575,8 +575,10 @@ bus bys | |||
| bus by $verb | |||
| campus kA~pys | |||
| (chef d'oeuvre) chédeuvre $text | |||
| (chef d'oeuvres) chédeuvres $text | |||
| choeur kWr | |||
| cocus coky | |||
| converter converteur $text | |||
| dernier dE2rnjer2 | |||
| éloquent ElokA~t2 | |||
| fier fier $verb | |||
| @@ -23,7 +23,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2008-09-16 Michel Such <[email protected]> | |||
| // Updated: 2008-09-19 Michel Such <[email protected]> | |||
| // | |||
| // Letter classes: | |||
| @@ -33,6 +33,7 @@ | |||
| // K not a vowel (i.e. consonant, space, ) | |||
| .L01 d e l n r t u | |||
| .L02 b c d f g h k p t v | |||
| .group a | |||
| @@ -960,7 +961,10 @@ C) oing (_ _^_en // going | |||
| .group r | |||
| C) r R | |||
| L02) r R2 | |||
| L02) re (_ R2=@- | |||
| L02) re (s_ R2=@- | |||
| _) r R | |||
| _su) rr rr // surréaliste | |||
| cou) rr rr // courrai | |||
| @@ -968,7 +972,7 @@ cou) rr (i r // courrier | |||
| mou) rr rr // mourrai | |||
| rr r // erreur | |||
| r r // rien | |||
| _) radio (@P5 radio | |||
| _) radio (@P5 Radio | |||
| // group r: English section | |||
| _) real _^_en | |||
| @@ -2,7 +2,7 @@ name afrikaans | |||
| language af | |||
| gender male | |||
| roughness 0 | |||
| pitch 55 122 | |||
| pitch 60 122 | |||
| @@ -1,4 +1,4 @@ | |||
| 52 phoneme tables | |||
| 53 phoneme tables | |||
| new total | |||
| base 98 98 | |||
| base2 24 117 | |||
| @@ -15,11 +15,10 @@ | |||
| eo 13 110 | |||
| jbo 4 111 | |||
| fi 40 129 | |||
| fr 54 134 | |||
| fr_ca 11 134 | |||
| fr 55 135 | |||
| fr_ca 11 135 | |||
| hi 51 135 | |||
| ta 17 138 | |||
| ml 13 137 | |||
| hu 23 114 | |||
| nl 28 121 | |||
| pl 18 111 | |||
| @@ -52,6 +51,8 @@ | |||
| ko 18 145 | |||
| da 15 128 | |||
| sq 12 122 | |||
| ml 13 137 | |||
| bn 20 143 | |||
| Data file Used by | |||
| b/b [b] base | |||
| @@ -246,7 +247,6 @@ h/h@ [h] base | |||
| [h] fi | |||
| [H] hi | |||
| [h] hi | |||
| [th] hi | |||
| [h] sr | |||
| [<h>] la | |||
| h/ha [h] base | |||
| @@ -281,6 +281,7 @@ j2/j2i [(i)] base | |||
| j2/j2o [(o)] base | |||
| j2/j2u [(u)] base | |||
| j2/xj2 [(i)] base | |||
| j/e_ [e[] bn | |||
| j/_j [j] base | |||
| [j] zh | |||
| j/j_ [j/] base | |||
| @@ -310,7 +311,6 @@ l/l [l] base | |||
| [l] en_wi | |||
| [l] af | |||
| [l] fr | |||
| [l/] fr | |||
| [l] hu | |||
| [l] sk | |||
| [l] ru | |||
| @@ -334,6 +334,11 @@ l/_l [l] base | |||
| [l] zh | |||
| l/l_ [l/] base | |||
| [l/] fr | |||
| l/l_@ [@] fr | |||
| [W] fr | |||
| [Y] fr | |||
| [@2] fr | |||
| [W2] fr | |||
| l/l@ [(@)] base | |||
| [W] fr | |||
| [Y] fr | |||
| @@ -341,15 +346,9 @@ l/l@ [(@)] base | |||
| l/L1_aL [(a)] base | |||
| l/L1_eL [(e)] base | |||
| l/L1_iL [(i)] base | |||
| [i] fr | |||
| [i:] fr | |||
| l/L1_@L [(@)] base | |||
| l/L1_oL [(o)] base | |||
| [o2] fr | |||
| l/L1_uL [(u)] base | |||
| [u] fr | |||
| [y] fr | |||
| [u:] fr | |||
| l/L2_aL [(a)] base | |||
| l/L2_eL [(e)] base | |||
| l/L2_iL [(i)] base | |||
| @@ -366,19 +365,27 @@ l/l_4 [ll] sq | |||
| l/la [(a)] base | |||
| [a] fr | |||
| [a2] fr | |||
| l/l_a [a] fr | |||
| [a2] fr | |||
| [wA] fr | |||
| [A~] fr | |||
| l/le [(e)] base | |||
| [E] fr | |||
| [e] fr | |||
| [E2] fr | |||
| l/l_e [E] fr | |||
| [E2] fr | |||
| l/L_eL_af [&] af | |||
| [&:] af | |||
| l/li [(i)] base | |||
| [i] fr | |||
| [i:] fr | |||
| [l] zh | |||
| l/l_i [i] fr | |||
| [i:] fr | |||
| [w^i] fr | |||
| l/l_long [l] base | |||
| [l] fr | |||
| [l/] fr | |||
| [l] la | |||
| [l;] ro | |||
| l/lo [(o)] base | |||
| @@ -387,6 +394,9 @@ l/lo [(o)] base | |||
| [O2] fr | |||
| [o2] fr | |||
| [wA] fr | |||
| l/l_o [O] fr | |||
| [O2] fr | |||
| [o2] fr | |||
| l^/l_rfx [l.] hi | |||
| [l.] sq | |||
| l/lu [(u)] base | |||
| @@ -394,6 +404,9 @@ l/lu [(u)] base | |||
| [y] fr | |||
| [u:] fr | |||
| [w^i] fr | |||
| l/l_u [u] fr | |||
| [u:] fr | |||
| l/l_y [y] fr | |||
| l/tl [l] base | |||
| [l] en | |||
| [l] en_wi | |||
| @@ -411,17 +424,7 @@ l/xl [(@)] base | |||
| [(i)] base | |||
| [(o)] base | |||
| [(u)] base | |||
| [@] fr | |||
| [E] fr | |||
| [O] fr | |||
| [W] fr | |||
| [Y] fr | |||
| [a] fr | |||
| [e] fr | |||
| [@2] fr | |||
| [W2] fr | |||
| [wA] fr | |||
| [w^i] fr | |||
| m/_m [m] base | |||
| [m;] ru | |||
| [m;] ro | |||
| @@ -497,22 +500,21 @@ r2/r2o [(o)] base | |||
| r2/r2u [(u)] base | |||
| r3/r_ [r/] base | |||
| [r/] af | |||
| [r/2] fr | |||
| [r/] ru | |||
| r3/r_@ [(@)] base | |||
| [@2] fr | |||
| r3/r#_ [r#] is | |||
| r3/r_2 [r/] fr | |||
| r3/r_a [(a)] base | |||
| r3/r_e [(e)] base | |||
| [E] fr | |||
| r3/r_i [(i)] base | |||
| [i] fr | |||
| [w^i] fr | |||
| r3/r_n [r/] base | |||
| [r/] fr | |||
| [r/2] fr | |||
| [r/] ru | |||
| r3/r_o [(o)] base | |||
| [O] fr | |||
| [O2] fr | |||
| r3/r_ru [R4] ru | |||
| r3/r_ru2 [R4] ru | |||
| r3/r_trill [R2] base | |||
| @@ -541,8 +543,9 @@ r3/rx [*] base | |||
| [r/] af | |||
| [R] fr | |||
| [r] fr | |||
| [r/] fr | |||
| [R2] fr | |||
| [r2] fr | |||
| [r/2] fr | |||
| [R] fr_ca | |||
| [r/] ru | |||
| [x] pt_pt | |||
| @@ -579,7 +582,7 @@ r/rr [r/] base | |||
| [r/] af | |||
| [r] de | |||
| [r] fi | |||
| [r/] fr | |||
| [r/2] fr | |||
| [r2] nl | |||
| [r] ru | |||
| [r/] ru | |||
| @@ -589,11 +592,12 @@ r/ru [(u)] base | |||
| r/tr [r] base | |||
| [r] en_sc | |||
| [R] fr | |||
| [R2] fr | |||
| r/trr [r/] base | |||
| [r/] af | |||
| [r] de | |||
| [r] fi | |||
| [r/] fr | |||
| [r/2] fr | |||
| [r2] nl | |||
| [r] ru | |||
| [r/] ru | |||
| @@ -610,16 +614,14 @@ r/xr [(@)] base | |||
| [e] fr | |||
| [i] fr | |||
| [u] fr | |||
| [y] fr | |||
| [a2] fr | |||
| [i:] fr | |||
| [u:] fr | |||
| [wA] fr | |||
| [A~] fr | |||
| [w^i] fr | |||
| ufric/ch [C] base | |||
| [J^] base | |||
| [C2] de | |||
| ufric/ch_ [C] base | |||
| ufric/ch_sr [h] sr | |||
| [x] sr | |||
| ufric/f [f] base | |||
| @@ -697,7 +699,8 @@ ufric/x2 [x2] af | |||
| [x2] nl | |||
| [x2] pt | |||
| [x] ku | |||
| ufric/x_hr [x] hr | |||
| ufric/x_hr [x] base | |||
| [x] hr | |||
| ufric/x_sr [h] sr | |||
| [x] sr | |||
| ustop/c [c] base | |||
| @@ -775,13 +778,13 @@ ustop/null [?] base | |||
| ustop/p [p] base | |||
| [p] fr | |||
| [p2] fr | |||
| [ph] hi | |||
| [p] zhy | |||
| ustop/p_ [p] base | |||
| [p] fr | |||
| [p2] fr | |||
| [ph] hi | |||
| [ph] zh | |||
| ustop/p_asp [ph] hi | |||
| ustop/percus10 [(X1] base | |||
| ustop/pl [p] base | |||
| [p] base2 | |||
| @@ -846,6 +849,7 @@ ustop/t_dnt [t] base | |||
| [t2] en | |||
| [t] fi | |||
| [t] hi | |||
| [th] hi | |||
| [t] hu | |||
| [t] pl | |||
| [t] hr | |||
| @@ -856,13 +860,11 @@ ustop/t_dnt [t] base | |||
| [t`] ko | |||
| ustop/t_dnt2 [t[] vi | |||
| ustop/t_hi [t] hi | |||
| [th] hi | |||
| ustop/t_pzd [t;] pl | |||
| [t;] ru | |||
| ustop/tr [t] base | |||
| [t[] base | |||
| [t2] en | |||
| [t] fr | |||
| [t.h] hi | |||
| [t] ru | |||
| ustop/ts [ts] base2 | |||
| @@ -1074,6 +1076,7 @@ vdiph/oi [oI] base2 | |||
| [oI] it | |||
| [OI] la | |||
| [oI] vi | |||
| [oI] bn | |||
| vdiph/oi_2 [oI] af | |||
| vdiph/ooi [OI] en | |||
| [OI] en_n | |||
| @@ -1091,6 +1094,7 @@ vdiph/oou [oU] cs | |||
| [OU] grc | |||
| vdiph/ou [ou] fi | |||
| [ou] zhy | |||
| [oU] bn | |||
| vdiph/ou_2 [oU] sk | |||
| [oU] ro | |||
| vdiph/ou_3 [oU] is | |||
| @@ -1137,28 +1141,35 @@ vnasal/a#u_n [&U~] pt | |||
| [&U~] pt_pt | |||
| vnasal/ee_n [E~] en | |||
| [E~] fr_ca | |||
| [E~] bn | |||
| vnasal/ee_n2 [a] en_us | |||
| [E~] hi | |||
| [&~] pt_pt | |||
| vnasal/ee_u_n [E~] pl | |||
| vnasal/e_n [e~] af | |||
| [e~] pt | |||
| [e~] bn | |||
| vnasal/i_n [i~] pt | |||
| [i~] bn | |||
| vnasal/m- [m-] sw | |||
| vnasal/&_n [a~] bn | |||
| vnasal/n- [n-] sw | |||
| vnasal/nn- [N-] sw | |||
| vnasal/oi_n [oI~] pt | |||
| vnasal/o_n [o~] hi | |||
| [o~] pt | |||
| [o~] bn | |||
| vnasal/o_n2 [o~] af | |||
| vnasal/o_n3 [O~] fr | |||
| vnasal/oo_n [O~] en | |||
| vnasal/oo_n2 [O~] hi | |||
| [o] zh | |||
| [O~] bn | |||
| vnasal/oo_n3 [O~] pl | |||
| vnasal/u_n [u~] hi | |||
| [u~] pt | |||
| [u] zh | |||
| [u~] bn | |||
| vnasal/W_n [E~] fr | |||
| [W~] fr | |||
| voc/bh [B] base | |||
| @@ -1247,8 +1258,8 @@ vowel/@ [@] base | |||
| [@] en_rp | |||
| [V] cy | |||
| [@4] hi | |||
| [@] ml | |||
| [@] sq | |||
| [@] ml | |||
| vowel/@- [@-] base | |||
| [r*] hr | |||
| vowel/& [a] en_rp | |||
| @@ -1304,6 +1315,7 @@ vowel/a [a] en_n | |||
| [a] zh | |||
| [a] id | |||
| [a] ko | |||
| [a] bn | |||
| vowel/a# [a/] base2 | |||
| [a2] en_sc | |||
| [a2] en_wi | |||
| @@ -1345,23 +1357,23 @@ vowel/a#_3 [a2] en | |||
| [3] de | |||
| [@] de | |||
| [a] hi | |||
| [a] ml | |||
| [a#] ru | |||
| [&] pt_pt | |||
| [&/] pt_pt | |||
| [@] vi | |||
| [a] zhy | |||
| [a] ml | |||
| vowel/a_4 [a/] el | |||
| [a] vi | |||
| vowel/a_5 [a] fr | |||
| [a2] fr | |||
| [a:] ta | |||
| [a:] ml | |||
| [a/] it | |||
| [a] la | |||
| [a] sv | |||
| [a] sw | |||
| [a] tr | |||
| [a:] ml | |||
| vowel/aa [a] fi | |||
| [A] fr_ca | |||
| [A] no | |||
| @@ -1407,8 +1419,6 @@ vowel/e [e] base2 | |||
| [E:] fr | |||
| [e] ta | |||
| [e:] ta | |||
| [e] ml | |||
| [e:] ml | |||
| [e] hr | |||
| [e/] it | |||
| [e:] la | |||
| @@ -1421,6 +1431,9 @@ vowel/e [e] base2 | |||
| [e#] rw | |||
| [e] ko | |||
| [e] da | |||
| [e] ml | |||
| [e:] ml | |||
| [e] bn | |||
| vowel/e# [I] en_sc | |||
| [I2] en_sc | |||
| vowel/e_2 [eI] en_sc | |||
| @@ -1452,6 +1465,7 @@ vowel/ee_2 [E] en | |||
| [E] zh | |||
| [E#] ku | |||
| [&] da | |||
| [E] bn | |||
| vowel/ee#_2 [E-] sv | |||
| vowel/ee_3 [&] af | |||
| [&:] af | |||
| @@ -1510,7 +1524,6 @@ vowel/i [i] base2 | |||
| [i] eo | |||
| [I] fr | |||
| [i:] ta | |||
| [i:] ml | |||
| [i:] hu | |||
| [i] it | |||
| [i] pt_pt | |||
| @@ -1523,6 +1536,7 @@ vowel/i [i] base2 | |||
| [i] rw | |||
| [i#] rw | |||
| [i] ko | |||
| [i:] ml | |||
| vowel/i# [i] en_rp | |||
| [y:] cy | |||
| vowel/i_2 [i:] en_rp | |||
| @@ -1545,11 +1559,12 @@ vowel/i#_5 [y] pt_pt | |||
| [i/] pt_pt | |||
| [y] ro | |||
| vowel/i_6 [i] ta | |||
| [i] ml | |||
| [i] hr | |||
| [i] tr | |||
| [i] ku | |||
| [i] id | |||
| [i] ml | |||
| [i] bn | |||
| vowel/i#_6 [i.] zh | |||
| vowel/i_7 [i] pl | |||
| vowel/i#_7 [i[] zh | |||
| @@ -1571,9 +1586,9 @@ vowel/ii [I] en_rp | |||
| [i] zhy | |||
| [I] ku | |||
| vowel/ii# [Y] cy | |||
| [y] ml | |||
| [Y] ru | |||
| [I] ku | |||
| [y] ml | |||
| vowel/ii_2 [i] zh | |||
| vowel/ii#_2 [y] pl | |||
| vowel/ii_3 [I] cy | |||
| @@ -1621,8 +1636,6 @@ vowel/o [o] base2 | |||
| [o] hi | |||
| [o] ta | |||
| [o:] ta | |||
| [o] ml | |||
| [o:] ml | |||
| [o] it | |||
| [o/] it | |||
| [O] la | |||
| @@ -1632,6 +1645,9 @@ vowel/o [o] base2 | |||
| [o] id | |||
| [o] rw | |||
| [o#] rw | |||
| [o] ml | |||
| [o:] ml | |||
| [o] bn | |||
| vowel/o_2 [o:] cy | |||
| [o2] fr | |||
| [o:] hi | |||
| @@ -1699,6 +1715,7 @@ vowel/oo_4 [O] base2 | |||
| [3:] en_wi | |||
| [O:] hi | |||
| [O] it | |||
| [O] bn | |||
| vowel/oo_5 [O] pl | |||
| [O] is | |||
| vowel/oo_en [O] en | |||
| @@ -1728,11 +1745,12 @@ vowel/u [u:] en_wi | |||
| [U] fr | |||
| [u] ta | |||
| [u:] ta | |||
| [u] ml | |||
| [u:] ml | |||
| [u:] cs | |||
| [U] la | |||
| [u] id | |||
| [u] ml | |||
| [u:] ml | |||
| [u] bn | |||
| vowel/u# [u:] en_sc | |||
| [Y] tr | |||
| vowel/u_2 [u1] fi | |||
| @@ -1805,6 +1823,7 @@ vowel/V_2 [V] en | |||
| vowel/V_3 [V] en_rp | |||
| [V] hi | |||
| [V] ta | |||
| [V] bn | |||
| vowel/V_4 [V] en_sc | |||
| [@:] vi | |||
| [V] da | |||
| @@ -1908,15 +1927,13 @@ vwl_fr/@R [x] pt_pt | |||
| vwl_fr/@R2 [R] fr_ca | |||
| vwl_fr/@R3 [R] fr | |||
| [r] fr | |||
| [R2] fr | |||
| [r2] fr | |||
| vwl_fr/@R4 [r] fr | |||
| vwl_fr/@R4 [R] fr | |||
| [r] fr | |||
| [r2] fr | |||
| vwl_fr/r_a [a] fr | |||
| [a2] fr | |||
| vwl_fr/r_e [E2] fr | |||
| vwl_fr/ri [i] fr | |||
| vwl_fr/r_u [u] fr | |||
| vwl_fr/r_y [y] fr | |||
| vwl_fr/w_a [wA] fr | |||
| vwl_hi/A [a:] hi | |||
| vwl_hi/l-voc [l-] jbo | |||
| @@ -1982,6 +1999,7 @@ w/w [w] base | |||
| w/_w [w] base | |||
| [w] zh | |||
| w/w_ [w/] base | |||
| [o[] bn | |||
| w/w@ [(@)] base | |||
| w/w2 [w2] base2 | |||
| [w] pl | |||
| @@ -2,6 +2,7 @@ volume 15 | |||
| 0 l/2 NULL 0 l | |||
| 0 l/ NULL 0 l | |||
| 0 r/ NULL 0 R | |||
| 0 r/2 NULL 0 R | |||
| 0 r- NULL 0 R | |||
| 0 l- NULL 0 l | |||
| 0 w/ NULL 0 w | |||
| @@ -35,6 +36,7 @@ volume 15 | |||
| 0 n2 NULL 0 n | |||
| 0 p2 NULL 0 p | |||
| 0 r2 NULL 0 R | |||
| 0 R2 NULL 0 R | |||
| 0 t2 NULL 0 t | |||
| 0 t3 NULL 0 t | |||
| 0 z2 NULL 0 z | |||
| @@ -12,7 +12,7 @@ phoneme @ | |||
| vowel starttype (@) endtype (@) | |||
| length 170 | |||
| formants vowel/@_hgh | |||
| before l/ DFT-30+l/xl+20 | |||
| before l/ DFT+l/l_@ | |||
| endphoneme | |||
| @@ -20,8 +20,7 @@ phoneme @2 | |||
| vowel starttype (@) endtype (@) | |||
| length 150 | |||
| formants vowel/@_fr | |||
| before l/ DFT-30+l/xl+20 | |||
| before R DFT-20+r3/r_@ | |||
| before l/ DFT+l/l_@ | |||
| endphoneme | |||
| @@ -30,8 +29,7 @@ phoneme a | |||
| length 170 | |||
| formants vowel/a_5 | |||
| after l l/la-15 | |||
| before l/ DFT-20+l/xl | |||
| before r/ DFT+vwl_fr/r_a | |||
| before l/ DFT+l/l_a | |||
| reduceto a2 1 | |||
| endphoneme | |||
| @@ -41,8 +39,8 @@ phoneme a2 | |||
| length 150 | |||
| formants vowel/a_5 | |||
| after l l/la-15 | |||
| before l/ DFT+l/l_a | |||
| before (r) DFT-20+r/xr | |||
| before r/ DFT+vwl_fr/r_a | |||
| endphoneme | |||
| @@ -62,8 +60,8 @@ phoneme E | |||
| length 175 | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before l/ DFT-20+l/xl | |||
| before r/ DFT+r3/r_e | |||
| before l/ DFT+l/l_e | |||
| before r/2 DFT+r3/r_e | |||
| reduceto E2 1 | |||
| endphoneme | |||
| @@ -73,7 +71,7 @@ phoneme E2 | |||
| length 175 | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before r/ DFT+vwl_fr/r_e | |||
| before l/ DFT+l/l_e | |||
| endphoneme | |||
| @@ -84,9 +82,9 @@ phoneme i | |||
| linkout ; | |||
| after l l/li-15 | |||
| after (r) vwl_fr/ri | |||
| before l/ DFT-20+l/L1_iL-80 | |||
| before l/ DFT+l/l_i | |||
| before (r) DFT+r/xr | |||
| before r/ DFT+r3/r_i | |||
| before r/2 DFT+r3/r_i | |||
| endphoneme | |||
| @@ -96,8 +94,8 @@ phoneme i: // longer than i | |||
| formants vowel/i_3 | |||
| linkout ; | |||
| after l l/li-15 | |||
| before l/ DFT-20+l/L1_iL-80 | |||
| before r/ DFT-20+r/xr-25 | |||
| before l/ DFT+l/l_i | |||
| before r/2 DFT-20+r/xr-25 | |||
| endphoneme | |||
| @@ -114,7 +112,7 @@ phoneme o2 | |||
| length 170 | |||
| formants vowel/o_2 | |||
| after l l/lo-10 | |||
| before l/ DFT-20+l/L1_oL-80 | |||
| before l/ DFT+l/l_o | |||
| endphoneme | |||
| @@ -123,8 +121,8 @@ phoneme O | |||
| length 170 | |||
| formants vowel/o_mid | |||
| after l l/lo-10 | |||
| before l/ DFT-10+l/xl | |||
| before r/ DFT-30+r3/r_o | |||
| before l/ DFT+l/l_o | |||
| before r/2 DFT+r3/r_o | |||
| reduceto o 1 | |||
| endphoneme | |||
| @@ -134,18 +132,19 @@ phoneme O2 // Like O but no reduceto | |||
| length 170 | |||
| formants vowel/o_mid | |||
| after l l/lo-10 | |||
| before r/ DFT-20+r3/r_o | |||
| before l/ DFT+l/l_o | |||
| // before r/2 DFT+r3/r_o | |||
| endphoneme | |||
| phoneme u | |||
| vowel starttype (u) endtype (u) | |||
| length 180 | |||
| length 170 | |||
| formants vowel/u_3 | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/L1_uL-80 | |||
| before l/ DFT-20+l/l_u | |||
| before (r) DFT+r/xr | |||
| before r/ DFT-20+vwl_fr/r_u | |||
| before r/2 DFT+vwl_fr/r_u | |||
| endphoneme | |||
| @@ -154,8 +153,9 @@ phoneme u: // slitely longer than u | |||
| length 220 | |||
| formants vowel/u_3 | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/L1_uL-80 | |||
| before r/ DFT+r/xr-40 | |||
| before l/ DFT-20+l/l_u | |||
| before l/ DFT-20+l/l_u | |||
| before r/2 DFT+r/xr-40 | |||
| endphoneme | |||
| @@ -164,9 +164,7 @@ phoneme y | |||
| length 170 | |||
| formants vowel/y_2 | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/L1_uL-80 | |||
| before (r) vwl_fr/r_y | |||
| before r/ DFT+r/xr-30 | |||
| before l/ DFT-30+l/l_y | |||
| endphoneme | |||
| @@ -175,8 +173,8 @@ phoneme Y | |||
| length 170 | |||
| formants vowel/y# | |||
| after l l/l@-20 | |||
| before l/ DFT-40+l/xl+15 | |||
| before r/ DFT+r/xr-40 | |||
| before l/ DFT-20+l/l_@ | |||
| before r/2 DFT+r/xr-40 | |||
| endphoneme | |||
| @@ -185,8 +183,8 @@ phoneme W | |||
| length 180 | |||
| formants vowel/@_5 | |||
| after l l/l@-20 | |||
| before l/ DFT-40+l/xl+15 | |||
| before r/ DFT+vwl_fr/r_@ | |||
| before l/ DFT-20+l/l_@ | |||
| before r/2 DFT+vwl_fr/r_@ | |||
| reduceto Y 1 | |||
| endphoneme | |||
| @@ -196,8 +194,8 @@ phoneme W2 // same as W but don't reduce | |||
| length 180 | |||
| formants vowel/@_3 | |||
| after l l/l@-20 | |||
| before l/ DFT-40+l/xl+15 | |||
| before r/ DFT+vwl_fr/r_@ | |||
| before l/ DFT-20+l/l_@ | |||
| before r/2 DFT+vwl_fr/r_@ | |||
| endphoneme | |||
| @@ -206,8 +204,7 @@ phoneme wA | |||
| length 240 | |||
| formants vwl_fr/w_a | |||
| after l l/lo-10 | |||
| before l/ DFT-10+l/xl | |||
| before r/ DFT-30+r/xr | |||
| before l/ DFT-10+l/l_a | |||
| endphoneme | |||
| @@ -216,8 +213,8 @@ phoneme w^i | |||
| length 220 | |||
| formants vdiph/yi_fr | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/xl | |||
| before r/ DFT+r/xr-30 | |||
| before l/ DFT+l/l_i | |||
| before r/2 DFT+r3/r_i | |||
| endphoneme | |||
| @@ -225,7 +222,8 @@ phoneme A~ | |||
| vowel starttype (a) endtype (a) | |||
| length 190 | |||
| formants vnasal/aa_n2 | |||
| before r/ DFT+r/xr-40 | |||
| before r/2 DFT+r/xr-40 | |||
| before l/ DFT+l/l_a | |||
| endphoneme | |||
| @@ -298,7 +296,8 @@ phoneme b | |||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | |||
| formants b/b+x/b%70 | |||
| before _ b/b_+x/b_ | |||
| before R b/b+x/b_ | |||
| before l/ b/b_+x/b_ | |||
| before R2 b/b_+x/b_ | |||
| after _ NULL | |||
| after @ b/xb%50 | |||
| lengthmod 5 | |||
| @@ -311,8 +310,8 @@ phoneme d | |||
| vowelout f1=0 f2=1700 -300 300 f3=-100 80 | |||
| formants d/d+x/d%40 | |||
| before _ d/d_+x/d_%50 | |||
| before (r) d/dr+x/d%50 | |||
| before r/ d/dr+x/d%50 | |||
| before R2 d/dr+x/d%50 | |||
| before r/2 d/dr+x/d%50 | |||
| after _ d/d+x/d%50 | |||
| after (@) d/xd | |||
| lengthmod 5 | |||
| @@ -340,8 +339,8 @@ phoneme k | |||
| lengthmod 2 | |||
| wave ustop/k%40 // reduce strength of noise burst | |||
| before _ ustop/k_ | |||
| before R ustop/kr%45 | |||
| before r/ ustop/kr%45 | |||
| before R2 ustop/kr%45 | |||
| before r/2 ustop/kr%45 | |||
| before l ustop/kl%45 | |||
| before l/ ustop/kl%45 | |||
| before (i) ustop/ki%45 | |||
| @@ -366,8 +365,6 @@ phoneme l/ // used for [l] when not before a vowel | |||
| length 100 | |||
| lengthmod 7 | |||
| formants l/l_ | |||
| before b l/l_long | |||
| after b l/l | |||
| before (r) l/_l | |||
| beforevowel l | |||
| endphoneme | |||
| @@ -392,9 +389,10 @@ phoneme p | |||
| wave ustop/p%50 | |||
| after _ ustop/p%70 | |||
| before _ ustop/p_%70 | |||
| before R ustop/pr%70 | |||
| before R2 ustop/pr%75 | |||
| before @- ustop/p_unasp%60 | |||
| before l ustop/pl%30 | |||
| before l/ ustop/pl%30 | |||
| switchvoicing b | |||
| endphoneme | |||
| @@ -411,12 +409,12 @@ endphoneme | |||
| phoneme r | |||
| liquid pal starttype (r) endtype (r) | |||
| liquid rfx starttype (r) endtype (r) | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40 | |||
| vowelout f1=0 f2=1500 -400 400 f3=-600 80 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/ | |||
| beforenotvowel r/2 | |||
| formants vwl_fr/@R3+r3/rx%30 | |||
| after (e) vwl_fr/@R4+r3/rx%15 | |||
| after (u) vwl_fr/@R4+r3/rx%15 | |||
| @@ -425,7 +423,7 @@ endphoneme | |||
| phoneme r2 // silent unless followed by vowel | |||
| liquid pal starttype (r) endtype (r) | |||
| liquid rfx starttype (r) endtype (r) | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40 | |||
| vowelout f1=0 f2=1500 -400 400 f3=-600 80 | |||
| length 100 | |||
| @@ -440,23 +438,38 @@ endphoneme | |||
| phoneme R // for beginning of words | |||
| vcd pal frc | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 100 | |||
| vcd rfx flp | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 80 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/ | |||
| formants vwl_fr/@R3+r3/rx%40 | |||
| beforenotvowel r/2 | |||
| formants vwl_fr/@R3-20+r3/rx%25 | |||
| before (u) vwl_fr/@R4-20+r3/rx%25 | |||
| after k r/tr | |||
| after p r/tr | |||
| after t r/tr | |||
| endphoneme | |||
| phoneme r/ // variant of [r] when not preceding a vowel | |||
| vcd pal frc | |||
| phoneme R2 // After consonnants | |||
| vcd rfx frc | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 80 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/2 | |||
| formants vwl_fr/@R3-20+r3/rx%25 | |||
| after k r/tr | |||
| after p r/tr | |||
| after t r/tr | |||
| endphoneme | |||
| phoneme r/2 // variant of [r] when not preceding a vowel | |||
| vcd rfx frc | |||
| vowelout f1=0 f2=800 -50 50 f3=-600 80 len=40 | |||
| length 100 | |||
| lengthmod 2 | |||
| formants r3/r_2+r3/rx%40 | |||
| formants r3/r_+r3/rx%35 | |||
| after _ r/rr | |||
| after t r/trr | |||
| after p r/trr | |||
| @@ -466,7 +479,6 @@ phoneme r/ // variant of [r] when not preceding a vowel | |||
| endphoneme | |||
| phoneme s | |||
| vls alv frc sibilant | |||
| vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
| @@ -500,8 +512,8 @@ phoneme t | |||
| lengthmod 2 | |||
| wave ustop/t_short%50 | |||
| before _ ustop/t_%40 | |||
| before R ustop/tr%30 | |||
| before r/ ustop/t_short%50 | |||
| before R2 ustop/t_short%50 | |||
| before r/2 ustop/t_short%50 | |||
| switchvoicing d | |||
| endphoneme | |||
| @@ -285,7 +285,7 @@ phoneme ph | |||
| vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||
| vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||
| lengthmod 2 | |||
| wave ustop/p | |||
| wave ustop/p_asp | |||
| before _ ustop/p_ | |||
| before r ustop/pr | |||
| before l ustop/pl | |||
| @@ -347,12 +347,14 @@ endphoneme | |||
| phoneme th // dental variant of /t/ Same as [t] for now | |||
| phoneme th // dental variant of /t/ | |||
| vls dnt stop | |||
| vowelin f1=0 f2=1500 -300 300 f3=-100 80 | |||
| vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | |||
| lengthmod 2 | |||
| wave ustop/t_hi%50+h/h@ | |||
| wave ustop/t_dnt%50 | |||
| before _ ustop/t_dnt%35 | |||
| // wave ustop/t_hi%50+h/h@ | |||
| switchvoicing d | |||
| endphoneme | |||
| @@ -554,3 +556,4 @@ endphoneme | |||
| // switchvoicing k | |||
| //endphoneme | |||
| @@ -5,7 +5,7 @@ | |||
| phoneme a | |||
| vowel starttype (@) endtype (@) | |||
| vowel starttype (a) endtype (a) | |||
| length 130 | |||
| formants vowel/a | |||
| reduceto V 4 | |||
| @@ -512,7 +512,6 @@ endphoneme | |||
| phoneme ; // linking j, (formerly [j-]) used between (i) vowels | |||
| // and a following vowel | |||
| // also to palatalize consonants | |||
| @@ -1101,6 +1100,7 @@ phoneme C | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/ch | |||
| before _ ufric/ch_ | |||
| endphoneme | |||
| @@ -1110,7 +1110,8 @@ phoneme x | |||
| vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/x | |||
| wave ufric/x_hr%30 | |||
| before _ ufric/x%120 | |||
| switchvoicing Q | |||
| endphoneme | |||
| @@ -1190,9 +1191,6 @@ include ph_hindi | |||
| phonemetable ta hi | |||
| include ph_tamil | |||
| phonemetable ml hi | |||
| include ph_malayalam | |||
| phonemetable hu base | |||
| include ph_hungarian | |||
| @@ -1292,3 +1290,10 @@ include ph_danish | |||
| phonemetable sq es | |||
| include ph_albanian | |||
| phonemetable ml hi | |||
| include ph_malayalam | |||
| phonemetable bn hi | |||
| include ph_bengali | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.39.04 19.Sep.08"; | |||
| const char *version_string = "1.39.05 22.Sep.08"; | |||
| const int version_phdata = 0x013900; | |||
| int option_device_number = -1; | |||
| @@ -46,6 +46,7 @@ | |||
| #define OFFSET_GREEK 0x380 | |||
| #define OFFSET_CYRILLIC 0x420 | |||
| #define OFFSET_DEVANAGARI 0x900 | |||
| #define OFFSET_BENGALI 0x980 | |||
| #define OFFSET_TAMIL 0xb80 | |||
| #define OFFSET_MALAYALAM 0xd00 | |||
| #define OFFSET_KOREAN 0x1100 | |||
| @@ -88,6 +89,20 @@ static const unsigned int replace_cyrillic_latin[] = | |||
| 0}; // ѓ ѕ ќ | |||
| void SetIndicLetters(Translator *tr) | |||
| { | |||
| // Set letter types for Indic scripts, Devanagari, Tamill, etc | |||
| static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | |||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4c); // vowel signs | |||
| SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama | |||
| SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | |||
| SetLetterBits(tr,LETTERGP_C,dev_consonants2); // additional consonants | |||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||
| } | |||
| void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps) | |||
| {//================================================================================== | |||
| if(lengths != NULL) | |||
| @@ -313,7 +328,6 @@ Translator *SelectTranslator(const char *name) | |||
| case L('h','i'): | |||
| { | |||
| static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | |||
| static const short stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; | |||
| static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,24, 24,22 }; | |||
| @@ -327,13 +341,7 @@ Translator *SelectTranslator(const char *name) | |||
| tr->langopts.numbers = 0x011; | |||
| tr->langopts.numbers2 = 0x100; | |||
| tr->letter_bits_offset = OFFSET_DEVANAGARI; | |||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x06,0x14); // vowel letters | |||
| SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs + virama | |||
| SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | |||
| SetLetterBits(tr,LETTERGP_C,dev_consonants2); // additional consonants | |||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||
| SetIndicLetters(tr); | |||
| } | |||
| break; | |||
| @@ -713,6 +721,7 @@ SetLengthMods(tr,3); // all equal | |||
| case L('t','a'): // Tamil | |||
| case L('m','l'): // Malayalam | |||
| case L('b','n'): // Bengali | |||
| { | |||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
| @@ -729,14 +738,12 @@ SetLengthMods(tr,3); // all equal | |||
| { | |||
| tr->letter_bits_offset = OFFSET_MALAYALAM; | |||
| } | |||
| if(name2 == L('b','n')) | |||
| { | |||
| tr->letter_bits_offset = OFFSET_BENGALI; | |||
| } | |||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x05,0x14); // vowel letters | |||
| SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4c); // vowel signs | |||
| SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama | |||
| SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | |||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||
| SetIndicLetters(tr); | |||
| } | |||
| break; | |||
| @@ -361,14 +361,13 @@ int IsAlpha(unsigned int c) | |||
| if(iswalpha(c)) | |||
| return(1); | |||
| if((c >= 0x901) && (c <= 0x957)) | |||
| return(1); // Devanagari vowel signs and other signs | |||
| if((c >= 0xb81) && (c <= 0xbe5)) | |||
| return(1); // Tamil vowel signs and other signs | |||
| if((c >= 0xd01) && (c <= 0xd57)) | |||
| return(1); // Malayalam vowel signs and other signs | |||
| if((c >= 0x901) && (c <= 0xdf7)) | |||
| { | |||
| // Indic scripts: Devanagari, Tamil, etc | |||
| if((c & 0x7f) < 0x64) | |||
| return(1); | |||
| return(0); | |||
| } | |||
| if((c >= 0x300) && (c <= 0x36f)) | |||
| return(1); // combining accents | |||
| @@ -1924,6 +1923,7 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i | |||
| int initial; | |||
| int medial; | |||
| int final; | |||
| int next2; | |||
| static const unsigned char hangul_compatibility[0x34] = { | |||
| 0, 0x00,0x01,0xaa,0x02,0xac,0xad,0x03, | |||
| @@ -1938,10 +1938,12 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i | |||
| { | |||
| case L('a','f'): | |||
| // look for 'n and replace by a special character (unicode: schwa) | |||
| utf8_in(&next2, &ptr[1], 0); | |||
| if(!iswalpha(prev_in)) | |||
| { | |||
| if((c == '\'') && (next_in == 'n') && isspace(ptr[1])) | |||
| if((c == '\'') && (next_in == 'n') && IsSpace(next2)) | |||
| { | |||
| // n preceded by either apostrophe or U2019 "right single quotation mark" | |||
| ptr[0] = ' '; // delete the n | |||