Browse Source

[1.39.06]

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-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
359b2327a9

+ 17
- 5
dictsource/dict_phonemes View File



: ; b c d dZ f g : ; b c d dZ f g
h j k l m n N n2 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 Dictionary grc_dict
Dictionary ml_dict Dictionary ml_dict


a a: aI aU e E e: i 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 : b c ch d d. dZ f
g h j J k kh l l. g h j J k kh l l.
m n N n. n^ p ph R m n N n. n^ p ph R
R2 s s. S; t t. t.h th R2 s s. S; t t. t.h th
tS v w z z. 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.

+ 3
- 1
dictsource/en_list View File

lasso las'u: lasso las'u:
lawyer lOI3 lawyer lOI3
lava lA:v@ lava lA:v@
layout leIaUt
le l@ $only le l@ $only
lead li:d lead li:d
leafy li:fI2 leafy li:fI2
mademoiselle mad@m@zEl mademoiselle mad@m@zEl
magazine $3 magazine $3
magi meIdZaI magi meIdZaI
(main st) m'eInstr,i:t
maintain $2 maintain $2
maintainer $2 maintainer $2
majority m@dZ0rItI2 majority m@dZ0rItI2
voila vwal'a voila vwal'a
volcano v0lk'eInoU volcano v0lk'eInoU


(wall st) w'O:lstr,i:t
wane weIn wane weIn
wannabe w0na2bi: wannabe w0na2bi:
warring wO@rIN warring wO@rIN
Pyrenees pIr@n'i:z Pyrenees pIr@n'i:z
Qatar katA@ Qatar katA@
Quebec kwI2bEk Quebec kwI2bEk
Reno ri:noU
Sahel sA:h'El Sahel sA:h'El
Saigon saIg'0n Saigon saIg'0n
Santiago santI'A:goU Santiago santI'A:goU

+ 8
- 2
dictsource/en_rules View File

&) ah (_ @ &) ah (_ @
m) a (hog @ m) a (hog @
m) a (jes a m) a (jes a
m) a (jesti @
m) a (jor_ eI m) a (jor_ eI
m) a (jore eI
_) a (k@ a2 _) a (k@ a2
@) a (ki_ 'a @) a (ki_ 'a
n) aked eIkId n) aked eIkId
de (pt dE de (pt dE
de (put dE de (put dE
_) de (rai dI2 _) de (rai dI2
de (reg d%i:
de (rel dE de (rel dE
de (riC dI2 de (riC dI2
de (rog dI2 de (rog dI2
in (dex In in (dex In
in (dia In in (dia In
_) in (dic In _) in (dic In
_) indi (ge ,IndI2
_) indi (ge IndI
_) in (digo In _) in (digo In
_) in (dir In _) in (dir In
_) in (disP2 ,In _) in (disP2 ,In
c) ou (th u: c) ou (th u:
s) ou (ther V s) ou (ther V
y) ou (t u: y) ou (t u:
y) ou (t_ aU
ou (v u: ou (v u:
oux (_ u: oux (_ u:




.group ow .group ow
ow oU ow oU
ow (itz =oUv
ow (ay_ @w ow (ay_ @w
kn) owle (d 0lI kn) owle (d 0lI
_) ow (l aU _) ow (l aU
rea (gen rI2eI rea (gen rI2eI
_) re (alig ,ri: _) re (alig ,ri:
_) re (all ,ri: _) re (all ,ri:
rea (m ri:
_) re (au@P2 ,ri: _) re (au@P2 ,ri:
re (ck rE re (ck rE
reckon rEk@n reckon rEk@n
@) tur (y tS@r @) tur (y tS@r
@) tur (_ tS3 @) tur (_ tS3
ture (_ tS3 ture (_ tS3
tz ts


.group th .group th
th T th T


.group y .group y
y j y j
_) y' (CP2 j@
y (C_ I y (C_ I
y (CC I y (CC I
_) y (C@ I _) y (C@ I

+ 33
- 31
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 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. // * Numbers, a few abbreviations and exceptions.
// //
_brv bR'Ev _brv bR'Ev
_ced sed'ij _ced sed'ij
_cir aksA~sirkO~fl'Eks _cir aksA~sirkO~fl'Eks
_dia trem'a
_dia tR@m'a
_dot pwE~syskr'i _dot pwE~syskr'i
_grv aksA~gr'av _grv aksA~gr'av
_hac kar'O~ _hac kar'O~


_" gijmE _" gijmE
_# djEz _# djEz
_' apOstrOf
_' a2postR'Of
_( 'uvr@-parA~t'Ez _( 'uvr@-parA~t'Ez
_) f'Erm parA~t'Ez _) f'Erm parA~t'Ez
_* asterisk: _* asterisk:
_0 zero _0 zero
_1 W~ _1 W~
_2 dYz2 _2 dYz2
_3 tRwAz2
_4 katr
_3 tR2wAz2
_4 katR2=@-
_5 sE~k _5 sE~k
_6 siz3 _6 siz3
_7 sEt _7 sEt
_10 diz3 _10 diz3
_11 _!O~z _11 _!O~z
_12 duz _12 duz
_13 tREz
_13 tR2Ez
_14 katOrz _14 katOrz
_15 kE~z _15 kE~z
_16 sEz _16 sEz
_20 vE~ _20 vE~
_21 vE~te:W~ _21 vE~te:W~
_22 vE~tdYz2 _22 vE~tdYz2
_23 vE~t:trwAz2
_24 vE~tkatr
_23 vE~t:tR2wAz2
_24 vE~tkatR2=@-
_25 vE~tsE~k _25 vE~tsE~k
_26 vE~tsiz3 _26 vE~tsiz3
_27 vE~tsEt _27 vE~tsEt
_28 vE~tw^it3 _28 vE~tw^it3
_29 vE~tnWf _29 vE~tnWf
_3X tRA~t
_31 tRA~te:W~
_3X tR2A~t
_31 tR2A~te:W~
_4X karA~t _4X karA~t
_41 karA~te:W~ _41 karA~te:W~
_5X sE~kA~t _5X sE~kA~t
_7X swAsA~t:diz3 _7X swAsA~t:diz3
_71 swAsA~te:O~z _71 swAsA~te:O~z
_72 swAsA~t:duz _72 swAsA~t:duz
_73 swAsA~t:trEz
_73 swAsA~t:tR2Ez
_74 swAsA~t:katOrz _74 swAsA~t:katOrz
_75 swAsA~t:kE~z _75 swAsA~t:kE~z
_76 swAsA~t:sEz _76 swAsA~t:sEz
_77 swAsA~t:dis:Et _77 swAsA~t:dis:Et
_78 swAsA~t:diz'w^it3 _78 swAsA~t:diz'w^it3
_79 swAsA~t:diznWf _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~ _0C sA~
_1C0 sA~t2 _1C0 sA~t2
_0M1 mil _0M1 mil
?2 _7X sEptA~t ?2 _7X sEptA~t
?2 _71 sEptA~te:W~ ?2 _71 sEptA~te:W~
?2 _72 sEptA~t:dYz2 ?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 _75 sEptA~t:sE~k
?2 _76 sEptA~t:siz3 ?2 _76 sEptA~t:siz3
?2 _77 sEptA~t:sEt ?2 _77 sEptA~t:sEt
?2 _9X no2nA~t ?2 _9X no2nA~t
?2 _91 no2nA~te:W~ ?2 _91 no2nA~te:W~
?2 _92 no2nA~t:dYz2 ?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 _95 no2nA~t:sE~k
?2 _96 no2nA~t:siz3 ?2 _96 no2nA~t:siz3
?2 _97 no2nA~t:sEt ?2 _97 no2nA~t:sEt
?2 _99 no2nA~t:nWf ?2 _99 no2nA~t:nWf


(21 ème) vE~te:yniEm (21 ème) vE~te:yniEm
(31 ème) tRA~te:yniEm
(31 ème) tR2A~te:yniEm
(41 ème) karA~te:yniEm (41 ème) karA~te:yniEm
(51 ème) sE~kA~te:yniEm (51 ème) sE~kA~te:yniEm
(61 ème) swAsA~te:yniEm (61 ème) swAsA~te:yniEm
(81 ème) katR@vE~:yniEm
(81 ème) katR2@vE~:yniEm


// ABBREVIATIONS // ABBREVIATIONS
//************** //**************
kde $abbrev kde $abbrev
kg kilogRam kg kilogRam
khz kiloE2rts khz kiloE2rts
km kilomEtr
km kilomètre $text
kw kilowat kw kilowat
m. m@sjY m. m@sjY
mbrola EmbRola mbrola EmbRola
tout t'ut2 $u+ tout t'ut2 $u+
toute t'ut $u+ toute t'ut $u+
toutes t'utz2 $u+ toutes t'utz2 $u+
rien rjE~n2 $u+
rien Ri'E~n2 $u+


// Letters which can be words // Letters which can be words
//=========================== //===========================
bus by $verb bus by $verb
campus kA~pys campus kA~pys
(chef d'oeuvre) chédeuvre $text (chef d'oeuvre) chédeuvre $text
(chef d'oeuvres) chédeuvres $text
choeur kWr choeur kWr
cocus coky cocus coky
converter converteur $text
dernier dE2rnjer2 dernier dE2rnjer2
éloquent ElokA~t2 éloquent ElokA~t2
fier fier $verb fier fier $verb

+ 7
- 3
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 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: // Letter classes:
// K not a vowel (i.e. consonant, space, ) // K not a vowel (i.e. consonant, space, )


.L01 d e l n r t u .L01 d e l n r t u
.L02 b c d f g h k p t v




.group a .group a




.group r .group r
C) r R
L02) r R2
L02) re (_ R2=@-
L02) re (s_ R2=@-
_) r R
_su) rr rr // surréaliste _su) rr rr // surréaliste


cou) rr rr // courrai cou) rr rr // courrai
mou) rr rr // mourrai mou) rr rr // mourrai
rr r // erreur rr r // erreur
r r // rien r r // rien
_) radio (@P5 radio
_) radio (@P5 Radio


// group r: English section // group r: English section
_) real _^_en _) real _^_en

+ 1
- 1
espeak-data/voices/af View File

language af language af
gender male gender male
roughness 0 roughness 0
pitch 55 122
pitch 60 122







+ 72
- 54
phsource/compile_report View File

52 phoneme tables
53 phoneme tables
new total new total
base 98 98 base 98 98
base2 24 117 base2 24 117
eo 13 110 eo 13 110
jbo 4 111 jbo 4 111
fi 40 129 fi 40 129
fr 54 134
fr_ca 11 134
fr 55 135
fr_ca 11 135
hi 51 135 hi 51 135
ta 17 138 ta 17 138
ml 13 137
hu 23 114 hu 23 114
nl 28 121 nl 28 121
pl 18 111 pl 18 111
ko 18 145 ko 18 145
da 15 128 da 15 128
sq 12 122 sq 12 122
ml 13 137
bn 20 143


Data file Used by Data file Used by
b/b [b] base b/b [b] base
[h] fi [h] fi
[H] hi [H] hi
[h] hi [h] hi
[th] hi
[h] sr [h] sr
[<h>] la [<h>] la
h/ha [h] base h/ha [h] base
j2/j2o [(o)] base j2/j2o [(o)] base
j2/j2u [(u)] base j2/j2u [(u)] base
j2/xj2 [(i)] base j2/xj2 [(i)] base
j/e_ [e[] bn
j/_j [j] base j/_j [j] base
[j] zh [j] zh
j/j_ [j/] base j/j_ [j/] base
[l] en_wi [l] en_wi
[l] af [l] af
[l] fr [l] fr
[l/] fr
[l] hu [l] hu
[l] sk [l] sk
[l] ru [l] ru
[l] zh [l] zh
l/l_ [l/] base l/l_ [l/] base
[l/] fr [l/] fr
l/l_@ [@] fr
[W] fr
[Y] fr
[@2] fr
[W2] fr
l/l@ [(@)] base l/l@ [(@)] base
[W] fr [W] fr
[Y] fr [Y] fr
l/L1_aL [(a)] base l/L1_aL [(a)] base
l/L1_eL [(e)] base l/L1_eL [(e)] base
l/L1_iL [(i)] base l/L1_iL [(i)] base
[i] fr
[i:] fr
l/L1_@L [(@)] base l/L1_@L [(@)] base
l/L1_oL [(o)] base l/L1_oL [(o)] base
[o2] fr
l/L1_uL [(u)] base l/L1_uL [(u)] base
[u] fr
[y] fr
[u:] fr
l/L2_aL [(a)] base l/L2_aL [(a)] base
l/L2_eL [(e)] base l/L2_eL [(e)] base
l/L2_iL [(i)] base l/L2_iL [(i)] base
l/la [(a)] base l/la [(a)] base
[a] fr [a] fr
[a2] fr [a2] fr
l/l_a [a] fr
[a2] fr
[wA] fr
[A~] fr
l/le [(e)] base l/le [(e)] base
[E] fr [E] fr
[e] fr [e] fr
[E2] fr [E2] fr
l/l_e [E] fr
[E2] fr
l/L_eL_af [&] af l/L_eL_af [&] af
[&:] af [&:] af
l/li [(i)] base l/li [(i)] base
[i] fr [i] fr
[i:] fr [i:] fr
[l] zh [l] zh
l/l_i [i] fr
[i:] fr
[w^i] fr
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
[l/] fr
[l] la [l] la
[l;] ro [l;] ro
l/lo [(o)] base l/lo [(o)] base
[O2] fr [O2] fr
[o2] fr [o2] fr
[wA] fr [wA] fr
l/l_o [O] fr
[O2] fr
[o2] fr
l^/l_rfx [l.] hi l^/l_rfx [l.] hi
[l.] sq [l.] sq
l/lu [(u)] base l/lu [(u)] base
[y] fr [y] fr
[u:] fr [u:] fr
[w^i] fr [w^i] fr
l/l_u [u] fr
[u:] fr
l/l_y [y] fr
l/tl [l] base l/tl [l] base
[l] en [l] en
[l] en_wi [l] en_wi
[(i)] base [(i)] base
[(o)] base [(o)] base
[(u)] base [(u)] base
[@] fr
[E] fr
[O] fr
[W] fr
[Y] fr
[a] fr
[e] fr [e] fr
[@2] fr
[W2] fr
[wA] fr
[w^i] fr
m/_m [m] base m/_m [m] base
[m;] ru [m;] ru
[m;] ro [m;] ro
r2/r2u [(u)] base r2/r2u [(u)] base
r3/r_ [r/] base r3/r_ [r/] base
[r/] af [r/] af
[r/2] fr
[r/] ru [r/] ru
r3/r_@ [(@)] base r3/r_@ [(@)] base
[@2] fr
r3/r#_ [r#] is r3/r#_ [r#] is
r3/r_2 [r/] fr
r3/r_a [(a)] base r3/r_a [(a)] base
r3/r_e [(e)] base r3/r_e [(e)] base
[E] fr [E] fr
r3/r_i [(i)] base r3/r_i [(i)] base
[i] fr [i] fr
[w^i] fr
r3/r_n [r/] base r3/r_n [r/] base
[r/] fr
[r/2] fr
[r/] ru [r/] ru
r3/r_o [(o)] base r3/r_o [(o)] base
[O] fr [O] fr
[O2] fr
r3/r_ru [R4] ru r3/r_ru [R4] ru
r3/r_ru2 [R4] ru r3/r_ru2 [R4] ru
r3/r_trill [R2] base r3/r_trill [R2] base
[r/] af [r/] af
[R] fr [R] fr
[r] fr [r] fr
[r/] fr
[R2] fr
[r2] fr [r2] fr
[r/2] fr
[R] fr_ca [R] fr_ca
[r/] ru [r/] ru
[x] pt_pt [x] pt_pt
[r/] af [r/] af
[r] de [r] de
[r] fi [r] fi
[r/] fr
[r/2] fr
[r2] nl [r2] nl
[r] ru [r] ru
[r/] ru [r/] ru
r/tr [r] base r/tr [r] base
[r] en_sc [r] en_sc
[R] fr [R] fr
[R2] fr
r/trr [r/] base r/trr [r/] base
[r/] af [r/] af
[r] de [r] de
[r] fi [r] fi
[r/] fr
[r/2] fr
[r2] nl [r2] nl
[r] ru [r] ru
[r/] ru [r/] ru
[e] fr [e] fr
[i] fr [i] fr
[u] fr [u] fr
[y] fr
[a2] fr [a2] fr
[i:] fr [i:] fr
[u:] fr [u:] fr
[wA] fr
[A~] fr [A~] fr
[w^i] fr
ufric/ch [C] base ufric/ch [C] base
[J^] base [J^] base
[C2] de [C2] de
ufric/ch_ [C] base
ufric/ch_sr [h] sr ufric/ch_sr [h] sr
[x] sr [x] sr
ufric/f [f] base ufric/f [f] base
[x2] nl [x2] nl
[x2] pt [x2] pt
[x] ku [x] ku
ufric/x_hr [x] hr
ufric/x_hr [x] base
[x] hr
ufric/x_sr [h] sr ufric/x_sr [h] sr
[x] sr [x] sr
ustop/c [c] base ustop/c [c] base
ustop/p [p] base ustop/p [p] base
[p] fr [p] fr
[p2] fr [p2] fr
[ph] hi
[p] zhy [p] zhy
ustop/p_ [p] base ustop/p_ [p] base
[p] fr [p] fr
[p2] fr [p2] fr
[ph] hi [ph] hi
[ph] zh [ph] zh
ustop/p_asp [ph] hi
ustop/percus10 [(X1] base ustop/percus10 [(X1] base
ustop/pl [p] base ustop/pl [p] base
[p] base2 [p] base2
[t2] en [t2] en
[t] fi [t] fi
[t] hi [t] hi
[th] hi
[t] hu [t] hu
[t] pl [t] pl
[t] hr [t] hr
[t`] ko [t`] ko
ustop/t_dnt2 [t[] vi ustop/t_dnt2 [t[] vi
ustop/t_hi [t] hi ustop/t_hi [t] hi
[th] hi
ustop/t_pzd [t;] pl ustop/t_pzd [t;] pl
[t;] ru [t;] ru
ustop/tr [t] base ustop/tr [t] base
[t[] base [t[] base
[t2] en [t2] en
[t] fr
[t.h] hi [t.h] hi
[t] ru [t] ru
ustop/ts [ts] base2 ustop/ts [ts] base2
[oI] it [oI] it
[OI] la [OI] la
[oI] vi [oI] vi
[oI] bn
vdiph/oi_2 [oI] af vdiph/oi_2 [oI] af
vdiph/ooi [OI] en vdiph/ooi [OI] en
[OI] en_n [OI] en_n
[OU] grc [OU] grc
vdiph/ou [ou] fi vdiph/ou [ou] fi
[ou] zhy [ou] zhy
[oU] bn
vdiph/ou_2 [oU] sk vdiph/ou_2 [oU] sk
[oU] ro [oU] ro
vdiph/ou_3 [oU] is vdiph/ou_3 [oU] is
[&U~] pt_pt [&U~] pt_pt
vnasal/ee_n [E~] en vnasal/ee_n [E~] en
[E~] fr_ca [E~] fr_ca
[E~] bn
vnasal/ee_n2 [a] en_us vnasal/ee_n2 [a] en_us
[E~] hi [E~] hi
[&~] pt_pt [&~] pt_pt
vnasal/ee_u_n [E~] pl vnasal/ee_u_n [E~] pl
vnasal/e_n [e~] af vnasal/e_n [e~] af
[e~] pt [e~] pt
[e~] bn
vnasal/i_n [i~] pt vnasal/i_n [i~] pt
[i~] bn
vnasal/m- [m-] sw vnasal/m- [m-] sw
vnasal/&_n [a~] bn
vnasal/n- [n-] sw vnasal/n- [n-] sw
vnasal/nn- [N-] sw vnasal/nn- [N-] sw
vnasal/oi_n [oI~] pt vnasal/oi_n [oI~] pt
vnasal/o_n [o~] hi vnasal/o_n [o~] hi
[o~] pt [o~] pt
[o~] bn
vnasal/o_n2 [o~] af vnasal/o_n2 [o~] af
vnasal/o_n3 [O~] fr vnasal/o_n3 [O~] fr
vnasal/oo_n [O~] en vnasal/oo_n [O~] en
vnasal/oo_n2 [O~] hi vnasal/oo_n2 [O~] hi
[o] zh [o] zh
[O~] bn
vnasal/oo_n3 [O~] pl vnasal/oo_n3 [O~] pl
vnasal/u_n [u~] hi vnasal/u_n [u~] hi
[u~] pt [u~] pt
[u] zh [u] zh
[u~] bn
vnasal/W_n [E~] fr vnasal/W_n [E~] fr
[W~] fr [W~] fr
voc/bh [B] base voc/bh [B] base
[@] en_rp [@] en_rp
[V] cy [V] cy
[@4] hi [@4] hi
[@] ml
[@] sq [@] sq
[@] ml
vowel/@- [@-] base vowel/@- [@-] base
[r*] hr [r*] hr
vowel/& [a] en_rp vowel/& [a] en_rp
[a] zh [a] zh
[a] id [a] id
[a] ko [a] ko
[a] bn
vowel/a# [a/] base2 vowel/a# [a/] base2
[a2] en_sc [a2] en_sc
[a2] en_wi [a2] en_wi
[3] de [3] de
[@] de [@] de
[a] hi [a] hi
[a] ml
[a#] ru [a#] ru
[&] pt_pt [&] pt_pt
[&/] pt_pt [&/] pt_pt
[@] vi [@] vi
[a] zhy [a] zhy
[a] ml
vowel/a_4 [a/] el vowel/a_4 [a/] el
[a] vi [a] vi
vowel/a_5 [a] fr vowel/a_5 [a] fr
[a2] fr [a2] fr
[a:] ta [a:] ta
[a:] ml
[a/] it [a/] it
[a] la [a] la
[a] sv [a] sv
[a] sw [a] sw
[a] tr [a] tr
[a:] ml
vowel/aa [a] fi vowel/aa [a] fi
[A] fr_ca [A] fr_ca
[A] no [A] no
[E:] fr [E:] fr
[e] ta [e] ta
[e:] ta [e:] ta
[e] ml
[e:] ml
[e] hr [e] hr
[e/] it [e/] it
[e:] la [e:] la
[e#] rw [e#] rw
[e] ko [e] ko
[e] da [e] da
[e] ml
[e:] ml
[e] bn
vowel/e# [I] en_sc vowel/e# [I] en_sc
[I2] en_sc [I2] en_sc
vowel/e_2 [eI] en_sc vowel/e_2 [eI] en_sc
[E] zh [E] zh
[E#] ku [E#] ku
[&] da [&] da
[E] bn
vowel/ee#_2 [E-] sv vowel/ee#_2 [E-] sv
vowel/ee_3 [&] af vowel/ee_3 [&] af
[&:] af [&:] af
[i] eo [i] eo
[I] fr [I] fr
[i:] ta [i:] ta
[i:] ml
[i:] hu [i:] hu
[i] it [i] it
[i] pt_pt [i] pt_pt
[i] rw [i] rw
[i#] rw [i#] rw
[i] ko [i] ko
[i:] ml
vowel/i# [i] en_rp vowel/i# [i] en_rp
[y:] cy [y:] cy
vowel/i_2 [i:] en_rp vowel/i_2 [i:] en_rp
[i/] pt_pt [i/] pt_pt
[y] ro [y] ro
vowel/i_6 [i] ta vowel/i_6 [i] ta
[i] ml
[i] hr [i] hr
[i] tr [i] tr
[i] ku [i] ku
[i] id [i] id
[i] ml
[i] bn
vowel/i#_6 [i.] zh vowel/i#_6 [i.] zh
vowel/i_7 [i] pl vowel/i_7 [i] pl
vowel/i#_7 [i[] zh vowel/i#_7 [i[] zh
[i] zhy [i] zhy
[I] ku [I] ku
vowel/ii# [Y] cy vowel/ii# [Y] cy
[y] ml
[Y] ru [Y] ru
[I] ku [I] ku
[y] ml
vowel/ii_2 [i] zh vowel/ii_2 [i] zh
vowel/ii#_2 [y] pl vowel/ii#_2 [y] pl
vowel/ii_3 [I] cy vowel/ii_3 [I] cy
[o] hi [o] hi
[o] ta [o] ta
[o:] ta [o:] ta
[o] ml
[o:] ml
[o] it [o] it
[o/] it [o/] it
[O] la [O] la
[o] id [o] id
[o] rw [o] rw
[o#] rw [o#] rw
[o] ml
[o:] ml
[o] bn
vowel/o_2 [o:] cy vowel/o_2 [o:] cy
[o2] fr [o2] fr
[o:] hi [o:] hi
[3:] en_wi [3:] en_wi
[O:] hi [O:] hi
[O] it [O] it
[O] bn
vowel/oo_5 [O] pl vowel/oo_5 [O] pl
[O] is [O] is
vowel/oo_en [O] en vowel/oo_en [O] en
[U] fr [U] fr
[u] ta [u] ta
[u:] ta [u:] ta
[u] ml
[u:] ml
[u:] cs [u:] cs
[U] la [U] la
[u] id [u] id
[u] ml
[u:] ml
[u] bn
vowel/u# [u:] en_sc vowel/u# [u:] en_sc
[Y] tr [Y] tr
vowel/u_2 [u1] fi vowel/u_2 [u1] fi
vowel/V_3 [V] en_rp vowel/V_3 [V] en_rp
[V] hi [V] hi
[V] ta [V] ta
[V] bn
vowel/V_4 [V] en_sc vowel/V_4 [V] en_sc
[@:] vi [@:] vi
[V] da [V] da
vwl_fr/@R2 [R] fr_ca vwl_fr/@R2 [R] fr_ca
vwl_fr/@R3 [R] fr vwl_fr/@R3 [R] fr
[r] fr [r] fr
[R2] fr
[r2] fr [r2] fr
vwl_fr/@R4 [r] fr
vwl_fr/@R4 [R] fr
[r] fr
[r2] fr [r2] fr
vwl_fr/r_a [a] fr
[a2] fr
vwl_fr/r_e [E2] fr
vwl_fr/ri [i] fr vwl_fr/ri [i] fr
vwl_fr/r_u [u] fr vwl_fr/r_u [u] fr
vwl_fr/r_y [y] fr
vwl_fr/w_a [wA] fr vwl_fr/w_a [wA] fr
vwl_hi/A [a:] hi vwl_hi/A [a:] hi
vwl_hi/l-voc [l-] jbo vwl_hi/l-voc [l-] jbo
w/_w [w] base w/_w [w] base
[w] zh [w] zh
w/w_ [w/] base w/w_ [w/] base
[o[] bn
w/w@ [(@)] base w/w@ [(@)] base
w/w2 [w2] base2 w/w2 [w2] base2
[w] pl [w] pl

+ 2
- 0
phsource/mbrola/fr1 View File

0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l
0 r/ NULL 0 R 0 r/ NULL 0 R
0 r/2 NULL 0 R
0 r- NULL 0 R 0 r- NULL 0 R
0 l- NULL 0 l 0 l- NULL 0 l
0 w/ NULL 0 w 0 w/ NULL 0 w
0 n2 NULL 0 n 0 n2 NULL 0 n
0 p2 NULL 0 p 0 p2 NULL 0 p
0 r2 NULL 0 R 0 r2 NULL 0 R
0 R2 NULL 0 R
0 t2 NULL 0 t 0 t2 NULL 0 t
0 t3 NULL 0 t 0 t3 NULL 0 t
0 z2 NULL 0 z 0 z2 NULL 0 z

+ 69
- 57
phsource/ph_french View File

vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 170 length 170
formants vowel/@_hgh formants vowel/@_hgh
before l/ DFT-30+l/xl+20
before l/ DFT+l/l_@
endphoneme endphoneme




vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 150 length 150
formants vowel/@_fr formants vowel/@_fr
before l/ DFT-30+l/xl+20
before R DFT-20+r3/r_@
before l/ DFT+l/l_@
endphoneme endphoneme




length 170 length 170
formants vowel/a_5 formants vowel/a_5
after l l/la-15 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 reduceto a2 1
endphoneme endphoneme


length 150 length 150
formants vowel/a_5 formants vowel/a_5
after l l/la-15 after l l/la-15
before l/ DFT+l/l_a
before (r) DFT-20+r/xr before (r) DFT-20+r/xr
before r/ DFT+vwl_fr/r_a
endphoneme endphoneme




length 175 length 175
formants vowel/e_mid formants vowel/e_mid
after l l/le-15 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 reduceto E2 1
endphoneme endphoneme


length 175 length 175
formants vowel/e_mid formants vowel/e_mid
after l l/le-15 after l l/le-15
before r/ DFT+vwl_fr/r_e
before l/ DFT+l/l_e
endphoneme endphoneme




linkout ; linkout ;
after l l/li-15 after l l/li-15
after (r) vwl_fr/ri 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+r/xr
before r/ DFT+r3/r_i
before r/2 DFT+r3/r_i
endphoneme endphoneme




formants vowel/i_3 formants vowel/i_3
linkout ; linkout ;
after l l/li-15 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 endphoneme




length 170 length 170
formants vowel/o_2 formants vowel/o_2
after l l/lo-10 after l l/lo-10
before l/ DFT-20+l/L1_oL-80
before l/ DFT+l/l_o
endphoneme endphoneme




length 170 length 170
formants vowel/o_mid formants vowel/o_mid
after l l/lo-10 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 reduceto o 1
endphoneme endphoneme


length 170 length 170
formants vowel/o_mid formants vowel/o_mid
after l l/lo-10 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 endphoneme




phoneme u phoneme u
vowel starttype (u) endtype (u) vowel starttype (u) endtype (u)
length 180
length 170
formants vowel/u_3 formants vowel/u_3
after l l/lu-20 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+r/xr
before r/ DFT-20+vwl_fr/r_u
before r/2 DFT+vwl_fr/r_u
endphoneme endphoneme




length 220 length 220
formants vowel/u_3 formants vowel/u_3
after l l/lu-20 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 endphoneme




length 170 length 170
formants vowel/y_2 formants vowel/y_2
after l l/lu-20 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 endphoneme




length 170 length 170
formants vowel/y# formants vowel/y#
after l l/l@-20 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 endphoneme




length 180 length 180
formants vowel/@_5 formants vowel/@_5
after l l/l@-20 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 reduceto Y 1
endphoneme endphoneme


length 180 length 180
formants vowel/@_3 formants vowel/@_3
after l l/l@-20 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 endphoneme




length 240 length 240
formants vwl_fr/w_a formants vwl_fr/w_a
after l l/lo-10 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 endphoneme




length 220 length 220
formants vdiph/yi_fr formants vdiph/yi_fr
after l l/lu-20 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 endphoneme




vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)
length 190 length 190
formants vnasal/aa_n2 formants vnasal/aa_n2
before r/ DFT+r/xr-40
before r/2 DFT+r/xr-40
before l/ DFT+l/l_a
endphoneme endphoneme




vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk
formants b/b+x/b%70 formants b/b+x/b%70
before _ b/b_+x/b_ 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 _ NULL
after @ b/xb%50 after @ b/xb%50
lengthmod 5 lengthmod 5
vowelout f1=0 f2=1700 -300 300 f3=-100 80 vowelout f1=0 f2=1700 -300 300 f3=-100 80
formants d/d+x/d%40 formants d/d+x/d%40
before _ d/d_+x/d_%50 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/d+x/d%50
after (@) d/xd after (@) d/xd
lengthmod 5 lengthmod 5
lengthmod 2 lengthmod 2
wave ustop/k%40 // reduce strength of noise burst wave ustop/k%40 // reduce strength of noise burst
before _ ustop/k_ 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 l/ ustop/kl%45 before l/ ustop/kl%45
before (i) ustop/ki%45 before (i) ustop/ki%45
length 100 length 100
lengthmod 7 lengthmod 7
formants l/l_ formants l/l_
before b l/l_long
after b l/l
before (r) l/_l before (r) l/_l
beforevowel l beforevowel l
endphoneme endphoneme
wave ustop/p%50 wave ustop/p%50
after _ ustop/p%70 after _ ustop/p%70
before _ ustop/p_%70 before _ ustop/p_%70
before R ustop/pr%70
before R2 ustop/pr%75
before @- ustop/p_unasp%60 before @- ustop/p_unasp%60
before l ustop/pl%30 before l ustop/pl%30
before l/ ustop/pl%30
switchvoicing b switchvoicing b
endphoneme endphoneme






phoneme r 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 vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40
vowelout f1=0 f2=1500 -400 400 f3=-600 80 vowelout f1=0 f2=1500 -400 400 f3=-600 80
length 100 length 100
lengthmod 7 lengthmod 7
beforenotvowel r/
beforenotvowel r/2
formants vwl_fr/@R3+r3/rx%30 formants vwl_fr/@R3+r3/rx%30
after (e) vwl_fr/@R4+r3/rx%15 after (e) vwl_fr/@R4+r3/rx%15
after (u) vwl_fr/@R4+r3/rx%15 after (u) vwl_fr/@R4+r3/rx%15




phoneme r2 // silent unless followed by vowel 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 vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40
vowelout f1=0 f2=1500 -400 400 f3=-600 80 vowelout f1=0 f2=1500 -400 400 f3=-600 80
length 100 length 100




phoneme R // for beginning of words 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 length 100
lengthmod 7 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 k r/tr
after p r/tr after p r/tr
after t r/tr after t r/tr
endphoneme 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 vowelout f1=0 f2=800 -50 50 f3=-600 80 len=40
length 100 length 100
lengthmod 2 lengthmod 2
formants r3/r_2+r3/rx%40
formants r3/r_+r3/rx%35
after _ r/rr after _ r/rr
after t r/trr after t r/trr
after p r/trr after p r/trr
endphoneme endphoneme





phoneme s phoneme s
vls alv frc sibilant vls alv frc sibilant
vowelin f1=0 f2=1700 -300 300 f3=-100 80 vowelin f1=0 f2=1700 -300 300 f3=-100 80
lengthmod 2 lengthmod 2
wave ustop/t_short%50 wave ustop/t_short%50
before _ ustop/t_%40 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 switchvoicing d
endphoneme endphoneme



+ 6
- 3
phsource/ph_hindi View File

vowelin f1=0 f2=1000 -50 -100 f3=-200 80 vowelin f1=0 f2=1000 -50 -100 f3=-200 80
vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
lengthmod 2 lengthmod 2
wave ustop/p
wave ustop/p_asp
before _ ustop/p_ before _ ustop/p_
before r ustop/pr before r ustop/pr
before l ustop/pl before l ustop/pl






phoneme th // dental variant of /t/ Same as [t] for now
phoneme th // dental variant of /t/
vls dnt stop vls dnt stop
vowelin f1=0 f2=1500 -300 300 f3=-100 80 vowelin f1=0 f2=1500 -300 300 f3=-100 80
vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
lengthmod 2 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 switchvoicing d
endphoneme endphoneme


// switchvoicing k // switchvoicing k
//endphoneme //endphoneme




+ 1
- 1
phsource/ph_tamil View File





phoneme a phoneme a
vowel starttype (@) endtype (@)
vowel starttype (a) endtype (a)
length 130 length 130
formants vowel/a formants vowel/a
reduceto V 4 reduceto V 4

+ 10
- 5
phsource/phonemes View File








phoneme ; // linking j, (formerly [j-]) used between (i) vowels phoneme ; // linking j, (formerly [j-]) used between (i) vowels
// and a following vowel // and a following vowel
// also to palatalize consonants // also to palatalize consonants
length 100 length 100
lengthmod 3 lengthmod 3
wave ufric/ch wave ufric/ch
before _ ufric/ch_
endphoneme endphoneme




vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
length 100 length 100
lengthmod 3 lengthmod 3
wave ufric/x
wave ufric/x_hr%30
before _ ufric/x%120
switchvoicing Q switchvoicing Q
endphoneme endphoneme


phonemetable ta hi phonemetable ta hi
include ph_tamil include ph_tamil


phonemetable ml hi
include ph_malayalam

phonemetable hu base phonemetable hu base
include ph_hungarian include ph_hungarian




phonemetable sq es phonemetable sq es
include ph_albanian include ph_albanian

phonemetable ml hi
include ph_malayalam

phonemetable bn hi
include ph_bengali


BIN
phsource/ufric/ch.wav View File


BIN
phsource/ufric/ch_.wav View File


+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.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; const int version_phdata = 0x013900;


int option_device_number = -1; int option_device_number = -1;

+ 22
- 15
src/tr_languages.cpp View File

#define OFFSET_GREEK 0x380 #define OFFSET_GREEK 0x380
#define OFFSET_CYRILLIC 0x420 #define OFFSET_CYRILLIC 0x420
#define OFFSET_DEVANAGARI 0x900 #define OFFSET_DEVANAGARI 0x900
#define OFFSET_BENGALI 0x980
#define OFFSET_TAMIL 0xb80 #define OFFSET_TAMIL 0xb80
#define OFFSET_MALAYALAM 0xd00 #define OFFSET_MALAYALAM 0xd00
#define OFFSET_KOREAN 0x1100 #define OFFSET_KOREAN 0x1100
0}; // ѓ ѕ ќ 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) void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps)
{//================================================================================== {//==================================================================================
if(lengths != NULL) if(lengths != NULL)


case L('h','i'): 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 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 }; static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,24, 24,22 };


tr->langopts.numbers = 0x011; tr->langopts.numbers = 0x011;
tr->langopts.numbers2 = 0x100; tr->langopts.numbers2 = 0x100;
tr->letter_bits_offset = OFFSET_DEVANAGARI; 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; break;




case L('t','a'): // Tamil case L('t','a'): // Tamil
case L('m','l'): // Malayalam 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 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 }; static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 };
{ {
tr->letter_bits_offset = OFFSET_MALAYALAM; 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 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; break;



+ 12
- 10
src/translate.cpp View File

if(iswalpha(c)) if(iswalpha(c))
return(1); 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)) if((c >= 0x300) && (c <= 0x36f))
return(1); // combining accents return(1); // combining accents
int initial; int initial;
int medial; int medial;
int final; int final;
int next2;


static const unsigned char hangul_compatibility[0x34] = { static const unsigned char hangul_compatibility[0x34] = {
0, 0x00,0x01,0xaa,0x02,0xac,0xad,0x03, 0, 0x00,0x01,0xaa,0x02,0xac,0xad,0x03,
{ {
case L('a','f'): case L('a','f'):
// look for 'n and replace by a special character (unicode: schwa) // look for 'n and replace by a special character (unicode: schwa)

utf8_in(&next2, &ptr[1], 0);

if(!iswalpha(prev_in)) 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" // n preceded by either apostrophe or U2019 "right single quotation mark"
ptr[0] = ' '; // delete the n ptr[0] = ' '; // delete the n

Loading…
Cancel
Save