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 |