Browse Source

Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
	phsource/compile_report
master
Reece H. Dunn 11 years ago
parent
commit
cd902f7278

+ 12
- 3
dictsource/an_rules View File

@@ -76,7 +76,8 @@
u) e E
y) e E
L06_) e e# // unstressed 'e' silent at start of word after a,e,o
L06_) e (CC e# // unstressed 'e' silent at start of word after a,e,o
L06_h) e (CC e# // unstressed 'e' silent at start of word after a,e,o

_) ent' (AP4 ent
_) enta' ,ent%a
@@ -107,8 +108,8 @@

.group h
h // silent
hu (e gw
hu (i gw
hu (Y gw

.group i
i i
@@ -233,9 +234,16 @@ q k
u (i u
r) uix uS
r) u (A u
A) u (Y gw
u (A w
_) u (u u
_) u (A gw
//Ar) u (Y gw
_des) u (Y gw
_es) u (Y gw

_cir) ue (ll gwe
_esquir) ue (l gwe

.group v // same as 'b'
v b
@@ -258,6 +266,7 @@ q k
x ks
_) x S
i) x S
C) x S

.group y
y j

+ 140
- 39
dictsource/en_list
File diff suppressed because it is too large
View File


+ 92
- 37
dictsource/en_rules View File

@@ -389,8 +389,6 @@
ad (vent ad
ad (ventu a#d
ad (ver ad
adver (s adv'3:
ad (versa a#d
ad (vert_ ad
ad (vert a#d
_) advo adv@
@@ -496,6 +494,7 @@
aig (n 'eI
curt) ai (l 'eI
ent) ai (l 'eI
&) ai (n_$w_alt2 I
air e@
@) aire (_ 'e@
_) ais (li aS
@@ -538,6 +537,7 @@
&) al (cy_ @l
_) al (d O:l
_c) al (d 0l
&) al (dry_ @L
alde (hy 'aldI
ale (_ eIl
ale (h eIl
@@ -695,6 +695,7 @@
@n) am (_ A:m
&s) am (_ @m
_) am (al a#m
_s) am (ari a#m
amateur am@t3
?3 amateur am@tS3
amaz a#meIz
@@ -734,6 +735,7 @@
_) am (ino a#m
_) am (iss a#m
am (use a#m
_isl) am A:m

.group an
@) ana (_ 'A:n@
@@ -771,12 +773,15 @@
Asc) an (_ =@n
l) an (_ an
&Cl) an (_ @n
pl) an (_+ an
&m) an (_ @n
?8 &m) an (_ a#n
p) an (_ an
tr) an (_ an
@@r) an (_ @n
@@st) an (_ an
v) an (_ an
lv) an (_ @n
m) an (_ an
hum) an (_ @n
&) an (ty_ @n
@@ -808,6 +813,7 @@
p) an (el an
&) an (ese @n
_) ane (s anI
_) angel (K eIndZ@L
an (gul 'an
_) ani anI
_) ani (on anaI
@@ -852,11 +858,13 @@
tr) an (som an
answ (er aans
ante (nn ant'E
an (thropy 'an
_) anti (@P4 ,antI // prefix
_) ant (iq+ ant
_) anti (ci ant'I
_) any EnI2
an (za 'an
tyr) ann (o 'an

.group ap
_) ap (@ a#p
@@ -868,6 +876,7 @@
_) aper (t ap@
_) aph (id eIf
_) aph (o af
_ser) aph @f
&gr) apher =@f3
aphro afr@
&gr) aph (y =@f
@@ -902,6 +911,7 @@
st) ap (l eIp
c) ap (on eIp
_v) ap (o eIp
&) ap (y_ @p

.group ar
ar A@
@@ -944,11 +954,12 @@
&) ar (dis 3
&) ar (diz 3
&) ar (d_$w_alt2 3
%C) ar (d_ 3
&d) ar (d_ 3
gg) ar (d_ 3
&h) ar (d_ 3
&ch) ar (d 3
&k) ar (d_ 3
ll) ar (d_ A@
&p) ar (d_ 3
&st) ar (d_ 3
&w) ar (d_ 3
@@ -980,6 +991,7 @@
&) ar (dy_ 3
h) ar (dy_ A@
are e@
ar (ez_ @r
z) are (_ 'A@reI
%C) ared (_ 3d
%C) aring (_ 3rI2N
@@ -1067,7 +1079,7 @@
&v) ass (_ @s
as (al eIz
b) as (al as
ascii askI
ascii (_ askI
f) asc (ia eIS
f) asci (s aSI
_) as (e as
@@ -1130,6 +1142,7 @@
h) as (te eIs
p) as (te_ eIs
t) as (t eIs
t) as (te# eIs
nt) as (t as
as (ive 'eIs
as (ymp as
@@ -1186,6 +1199,7 @@
@) ath (is =@T
_) at (lan a#t
at (omi a#t
_) at (omiz at
_) ato (n a#toU
_) ato (na %eItoU
&) atory @t3ri
@@ -1253,6 +1267,7 @@
aul (k O:
_) au (nt aa
aur (_ O@
_) au (ror a#
s) au (rus_ 'O:
@) au (ri 'O:
C) aus (_ aUs
@@ -1322,6 +1337,7 @@
may) be (_ bi:
_) be (CA bI2
_) be (C% bE
_) be (atiC b%i:
_) be (b bi:
_) be (cl bI2
_) be (ck bE
@@ -1434,7 +1450,7 @@
so) cc (er k
cc (i ks
co) cc (i_ k
cc (ino tS
u) cc (i tS
c (aes s
caco (ph ka#k'0
_) cement sI2mEnt
@@ -1563,6 +1579,8 @@
_) co (eCP2 k,oU
_) coe (l si:
_) co (g k0
_) co (foun koU
_) co (gen koU
_) cogno k0gn@
co (hab k%oU
co (llab k@
@@ -1714,6 +1732,7 @@
dg (_ dZ
dg (B dZ
dg (e dZ
dge (@ dZ
dged (_ dZd
dg (i dZ
dg (y dZ
@@ -1722,9 +1741,10 @@
we) dne (sd n
dt (_ t
?3 &) du (CA dZu:
du (al_ dZu:
@) du (al_ dZu:
du (cat dZu:
@) dum (_ =d@m
?3 _) du (o du:
_) du (p du:
?!3 du (pl dju:
dur (A djU@
@@ -1771,15 +1791,14 @@
de (law dE
de (leg dE
de (lica dE
_) de (ll dE
de (lph dE
_) de (lt dE
_) de (lC dE
delu (g dElju:
de (lv+ dE
de (ma dI2
de (magog dE
demea dI2m'i:
de (men dI2
_) de (milit d%i:
de (mise dI2
demo (bi dI2moU
de (mocrac dI2
@@ -1804,9 +1823,10 @@
_) de (rai dI2
de (reg d%i:
de (rel dE
_) de (rest d,i:
de (riC dI2
_) de (rAX dE
de (rog dI2
de (rogato dI2
de (rACatio dE
_) des (@ dI2s
des (ec dEs
@@ -1865,6 +1885,7 @@
dilu (t daIl'u:
di (mens d%aI
di (min dI2
_) di (onL02 daI
di (ox d%aI
_) di (s@ dI2
_) dis (a@P3 ,dIs
@@ -2146,6 +2167,7 @@
@t) ed (_S2vdei I#d
?8 @t) ed (_S2vdei Ed
@fr) ed (_S2v Id
eur) ed (_S2v d
yw) ed (_ Ed
@x) ed (_S2vi t
y) ed (_S2v d
@@ -2156,12 +2178,11 @@
p) edal Ed@L
rs) ed (e 'i:d
m) ed (ia i:d
_m) edia i:di@
_m) edia i:di:@
_m) ed (iat i:d
@) ed (ien 'i:d
m) ed (io i:d
m) ed (iu i:d
edg (e# EdZ
@m) ediate i:dI2@t
cr) edib EdIb
@dr) ed (_ Id
@@ -2234,6 +2255,7 @@
_) el (iot El
ella (_ 'El@
&C) eller (_ @l3
t) eller (_+ El3
&C) eler (_ @l3
@) elli (_ 'ElI
&) elling @lI2N
@@ -2381,6 +2403,7 @@
_) en (u I2n
@) en (tu 'En
@) en (tous 'En
m) enu Enju:
en (viA En
enviro %EnvaIr@
en (voy En
@@ -2437,6 +2460,7 @@
ch) eon @n
j) eo (p E
_l) eo i@
_p) eo (n i@
p) eo (pl i:
_) eor eI3
@) eosis i:'oUsIs
@@ -2490,6 +2514,7 @@
&) er (s_ 3
?3 b) erry (_ Er%I
g) eral (d Er@L
g) er (iat Er
er (bial '3:
?!3 _d) er (b A@
&) er (A 3r
@@ -2506,8 +2531,8 @@
p) er (cen 3
exp) eri (en i@rI2
XC) er 3:
_h) er (A Er
_CC) er (A Er
X) er (A E#r
_h) eretical I2rEtIk@L
_qu) er 3:
c) er (am I2r
&) ere (_ 3
@@ -2606,8 +2631,8 @@
&s) es (_S1 I#z
us) es (_S2e I#z
lus) es (_S2 I#z
&rus) es (_S2 I#z
&tus) es (_S2 I#z
&&rus) es (_S2 I#z
&&tus) es (_S2 I#z
&ss) es (_S2 I#z
sh) es (_S2 I#z
&th) es (_S1 z
@@ -2662,7 +2687,7 @@
_) et (ern I2t
_) eth (A i:T
?!3 eth (ane i:T
_) eth (a ET
_) eth (a@ ET
_) eth (el ET
eth (ic ET
eth (yl i:T
@@ -2698,8 +2723,9 @@
m) etre i:t3
m) etry (_ =@tr%I
&) ett (_ I2t
&) et (y_ I2t

.group eu
eu ju:
l) eu u:
@@ -2851,7 +2877,6 @@
gh (C g
gh (an g
gm (_ m
gm (y_ m
gn (_ n
_poi) gn nj
_) gnu g@nu:
@@ -2872,6 +2897,8 @@
_) g (iant dZ
&) gia (_ dZ@
&) gia (C_ dZ@
g (ibb g
g (ibbe dZ
go) g (ic_ g
&) giu (m dZ@
_) g (id g
@@ -2912,6 +2939,7 @@
&) head (_S4 hEd
heir e@
hero hi@roU
_) hero (n hEr@
_) hetero hEtroU
K) hl l#
&) hold (_S4 hoUld
@@ -3073,9 +3101,10 @@
s) i (zA aI
&) i (zabl aI
iza (tion aIzeI
?3 iza (tion I#zeI
//?3 iza (tion I#zeI
ize (_ aIz
&l) ize (_S3 aIz
&l) izes (_S4 aIzI#z
&l) ized (_S4 aIzd
&l) izing (_S5 ,aIzIN
ize (d_ aIz
@@ -3277,6 +3306,7 @@
_) il (ln Il
_) il (lust Il
_C) il (o aIl
iloqui 'Il@kwI
&) ily (_S2i l%I


@@ -3343,6 +3373,7 @@
er) ings (_S4v %INz
er) ingly (_S5vf %INl%I
er) ingment (_S7v %INm@nt
eur) ing (_S3v %IN
&Br) ing (_ %IN

?7 &) in (_ @n
@@ -3421,7 +3452,7 @@
_) in (sti In
_) in (stil %In
_) in (strum In
_) in (sub In
_) insub InsVb
_) in (sul In
_) in (teg In
_) in (tegri %In
@@ -3431,6 +3462,7 @@
inter (est Intr
interfer Int@f'i@3
_) int (erio+ %Int
_) int (ermin+ %Int
_) inter (nK %Int3:
_) inter (nal %Int3:
_) inter (pr %Int3:
@@ -3462,6 +3494,7 @@
l) in (a_ 'i:n
r) in (a_ 'i:n
t) in (a_ 'i:n
sp) in (al_ 'aIn
@) in (ate =I#n
@) in (ation I#n
@) in (cial 'In
@@ -3519,6 +3552,7 @@
inism (_ InIz@m
infor (matio Inf3
ino (_ 'i:noU
_s) inew Inju:
_m) inu (te aIn'ju:
_m) inute (m InIt
_) intra Intr@
@@ -3559,7 +3593,7 @@
g) ious =@s
ioux u:
_r) io (t aI@
io (t_ I|@
io (tX I|@

.group ir
_) ir (a I2r
@@ -3744,7 +3778,9 @@
v) iv (e aIv
w) iv (e_ aIv
XCC) iv (en Iv
_t) iv (o i:v
iv (or_ aIv
iv (orous 'Iv

.group j
j dZ
@@ -3815,6 +3851,7 @@
Al) l (_
_) libre (P5 li:br@
_) lib (rett lI2b
&) like (_S4 laIk
&) lim (ent lIm
&B) ling (_ lIN
&B) lings (_ lINz
@@ -3861,6 +3898,7 @@
@d) le (C@ @L
@g) le (C@ @L
@t) le (C@ @L
@t) le (ry_ l3
tt) le (@ @-l
&C) le (ss l@
@) less (_S4i l@s
@@ -3885,7 +3923,7 @@
_) mac (mP3 m@k
_) machia maki@
_) mal (fP3 m,al
_) mal (i m@l
_) mal (ig m@l
_) mal (ev m@l
_) mal (nP3 m,al
_) mal (pP3 m,al
@@ -3911,8 +3949,6 @@
&) ment (_S4 m@nt
&) ments (_S5 m@nt|s
&) ment's (_S6 m@nt|s
u) ment (_ m@nt
u) ments (_ m@nt|s
?8 &) ment (_S4 mEnt
?8 &) ments (_S5 mEnt|s
mEnt (_ m@nt
@@ -3964,6 +4000,7 @@
mis (tres mIs
mi (sta mI2
micr (o maIkr
_) micro (ph maIkr@
micro (sco maIkr@
micro (grap maIkr@
_) micro (@P5 m'aIkroU
@@ -4223,7 +4260,9 @@
h) o (p_ 0
pr) o (pe 0
&) oped (_ @pd
&) oping (_ @pIN
c) oped (_ oUpd
c) oping (_ oUpIN
_) ope (n oUp@
un) ope (n oUp@
_) o (per 0
@@ -4300,7 +4339,7 @@
olo (gi '0l@
olo (gic @l'0
&) ol (ous_ @l
_b) ol (st oU
_b) ol (st oUl
olt oUlt
v) olt oUlt
v) ol (C 0l
@@ -4335,6 +4374,7 @@
_p) om (e 0m
_s) ome Vm
s) om (e_ Vm
s) ome (th 'Vm
st) omach Vm@k
r) om (an oUm
r) oman (ti oUm'an
@@ -4617,7 +4657,7 @@
.group ot
piv) ot @t
&g) ot (_ @t
rr) ot (_ @t
&rr) ot (_ @t
&) ot (_$w_alt2 @t
n) ot (a oUt
r) ot (a oUt
@@ -4632,6 +4672,7 @@
b) oth (er 0D
_r) oth (er 0D
oth (er+ VD
othe (rap+ oUTE
l) oth (i oUD
l) oth (ian oUD
n) otic (A oUtI2s
@@ -4804,15 +4845,14 @@
_sl) ov (enA oUv
pl) ov oUv
pull) ov oUv
m) ov (A u:v
m) ov (A+++ u:v
n) ov (el 0v
p) over (@ 0v3
pr) ov (e# u:v
gr) ov (el 0v
tr) ov (er 0v
pr) ov (er 0v
pr) ov (er 0#v
_b) ov (i oUv
m) ov (i u:v
ov (ich_ =Vv
s) overeign 0v@rIn
@) ovitch (_ =@vItS
@@ -4881,9 +4921,10 @@
_) pt (Y t

ph f
p (ph p
p (ph
p (h$w_alt4 p
pha (m_ p@
pheles (_ =f@li:z
phenome (n fI2n0mI
phenyl f,i:naIl
p (haza p
@@ -4926,6 +4967,7 @@

.group pe
peace pi:s
_) pe (culi pI%
_) pe (nr p%E
pe (ninsu p@
per (cep p3
@@ -4958,6 +5000,7 @@
per (fun p3
per (fus p3
per (su p3
_) perus (e p3ru:z
_) peri (Be pErI2

.group pr
@@ -4966,8 +5009,10 @@
_) pre (C@ pr%I
_) pre (C% prE
_) prea (ch pri:
_) pre (ad pr%i:
_) pre (adP3 pr%i:
_) pre (am pri:
_) pre (appP3 pr%i:
_) pre (assP3 pr%i:
_) pre (cinc pri:
pre (cio prE
_) pre (coc pr%I
@@ -5357,7 +5402,9 @@
@) sian (_S1 n
A) sib z@b
&) sib s@b
l) sing (_ sIN
&) s (ic_ z
ss (ic s
mu) s (ic z
ea) s (ie z
ea) s (il z
@@ -5523,8 +5570,10 @@
_) tsk t'@sk
_) tsu tsu:
tt (i_ =t
Xe) ttin (_ ?n // gettin, lettin
_) two tu:
ttu (r t@
type t2aIp
tz ts
tze (_ tsi

@@ -5540,6 +5589,7 @@
th (ood th
th (ouse th
th (ill th
gh) th (A th
ee) thing DI2N
the (_ D
&) th (L03_ =T
@@ -5604,6 +5654,7 @@
?8 &s) tion tSVn
tion (al_ S=@-n
tion (al S@-n
tion (ality S@n
&) tious S=@s
AC) tive (_ =tIv

@@ -5652,7 +5703,6 @@
u (_ ju:
h) u (_ =u:
L01) u (_ u:
men) u (_ ju:
u (_N u:
val) u ju:
u (a ju:
@@ -5742,12 +5792,14 @@
d) u (ly ju:
z) u (l_ 'u:
&) um (_ @m
&ll) um (_ =@m
circ) um @m
vol) u (me ju:
u (ma_ 'u:
h) u (man ju:
u (me ju:
r) um (ent @m
um (ent ju:m
u (mo_ 'u:
u (o ju:
fl) uor U@
@@ -5846,8 +5898,8 @@
r) une (_ u:n
?3 t) une (_ u:n
_) una (b ,Vna#
t) un (e ju:n
?3 t) un (e+ u:n
t) un (e# ju:n
?3 t) un (e#+ u:n
un (ani %ju:n
_) under (@P5 ,Vnd3 // prefix
_) un (deP2 ,Vn
@@ -5993,15 +6045,17 @@
s) wor (d o@
ss) wor (d w3:
?5 ss) wor (d wVR
&) work (_S4 w3:k
wor (th_ w3:
?5 wor (th_ wVR
As) w (ick

.group x
x ks
x) x (A
xx ks
_) xy zaI
_) x (Y z
C) x (_ Eks
xio (n kS@
xious =kS@s
xas (_ =ks@s
@@ -6023,6 +6077,7 @@
_) y (C@ I
_) y (n@ V
_) y (s@ V
&Ck) y (_S1 i
C) y (abl I2
y (C I
C) y %I
@@ -6104,7 +6159,6 @@
@C) y (gen I
?!3 d) y (nas I
s) ynch Ink
t) ype aIp
t) y (pist aI
t) y (pic I
t) y (p_ aI
@@ -6251,6 +6305,7 @@
Eus (_ I2@s
Ew (_ u:
ob) Ey (_ eI
E (z_ E


.group '

+ 84
- 140
dictsource/es_list View File

@@ -93,7 +93,7 @@ _13 tr'eTe
_14 kat'OrTe
_15 k'inTe
_20 b'eInte
_2X b'eInt
_2X beInt
_3X tr'eInta
_4X kwar'Enta
_5X Tinkw'Enta
@@ -101,11 +101,16 @@ _6X sEs'Enta
_7X sEt'Enta
_8X OtS'Enta
_9X nOB'Enta
_0C Tj'EntOs
// _0C Tj'EntOs
_1C0 Tj'en // exactly one hundred
_1C Tj'ento
_2C dosTj'entos
_3C tresTj'entos
_4C kwatroTj'entos
_5C kinj'EntOs
_6C seIsTj'entos
_7C s,eteTj'EntOs
_8C otSoTj'entos
_9C n,OBeTj'EntOs
_0M1 m'il
_0M2 miJ^'ones
@@ -164,16 +169,11 @@ vi bi // not a Roman number

// unstressed words
// articles
el $u
el $atend
los $u
los $atend
la $u
la $atend
las $u
las $atend
lo $u
lo $atend
el $u+
los $u+
la $u+
las $u+
lo $u+



@@ -183,123 +183,70 @@ lo $atend

// pronouns

me $u $only // reflexive pronouns
me $atend
te $u
te $atend
le $u
le $atend
les $u
les $atend
se $u
se $atend
nos $u
nos $atend
os $u
os $atend
me $u+ $only // reflexive pronouns
te $u+
le $u+
les $u+
se $u+
nos $u+
os $u+


// possessives
mi $u
mi $atend
mis $u
mis $atend
tu $u
tu $atend
tus $u
tus $atend
su $u
su $atend
sus $u
sus $atend
nuestro $u
nuestro $atend
nuestros $u
nuestros $atend
nuestra $u
nuestra $atend
nuestras $u
nuestras $atend
vuestro $u
vuestro $atend
vuestros $u
vuestros $atend
vuestra $u
vuestra $atend
vuestras $u
vuestras $atend
mi $u+
mis $u+
tu $u+
tus $u+
su $u+
sus $u+
nuestro $u+
nuestros $u+
nuestra $u+
nuestras $u+
vuestro $u+
vuestros $u+
vuestra $u+
vuestras $u+
// prepositions
a $u // at
a $atend
al $u
al $atend
de $u // of,from
de $atend
del $u
del $atend
en $u
en $atend
con $u // with
con $atend
sin $u
sin $atend
por $u // for,through,along,via
por $atend
tras $u
tras $atend
ante $u $only
ante $atend
para $u // for,in order,by
para $atend
entre $u
entre $atend
sobre $u
sobre $atend
bajo $u
bajo $atend
desde $u // from,since
desde $atend
hasta $u
hasta $atend
hacia $u
hacia $atend


e $u $only
e $atend
a $u+ // at
al $u+
de $u+ // of,from
del $u+
en $u+
con $u+ // with
sin $u+
por $u+ // for,through,along,via
tras $u+
ante $u+ $only
para $u+ // for,in order,by
entre $u+
sobre $u+
bajo $u+ $only
desde $u+ // from,since
hasta $u+
hacia $u+


e $u+ $only
y %i // and
o $u // or
o $atend
u $u
u $atend


aunque $u // although
aunque $atend
pero $u
pero $atend
porque $u // because
porque $atend


que $u // what
que $atend
cuando $u
cuando $atend
cuanto $u
cuanto $atend
donde $u
donde $atend
como $u
como $atend
quien $u
quien $atend
quienes $u
quienes $atend
mientras $u
mientras $atend
si $u
si $atend
o $u+ // or
u $u+


aunque $u+ // although
pero $u+
porque $u+ // because


que $u+ // that
cuando $u+
cuanto $u+
donde $u+
como $u+
quien $u+
quienes $u+
mientras $u+
si $u+



@@ -312,39 +259,37 @@ si $atend
b be
c Te
d de
f _|Efe
f Efe
g xe
h atSe
j xOta
k ka
l _|Ele
m _|Eme
n _|Ene
ñ _|En^e
l Ele
m Eme
n Ene
ñ En^e
p pe
q ku
r _|Ere
s _|Ese
r Ere
s Ese
t te
v _|uBe
v uBe
w uBe||d'OBle
x _|Ekis
x Ekis
z TEta

_a a
_e e
_o o
_y igri'eQa
y igri'eQa $atend
ch tSe
ll 'El^e
á 'a||aTEntw'aDa
é 'e||aTEntw'aDa
í 'i||aTEntw'aDa
_ó 'o||aTEntw'aDa
ó 'o||aTEntw'aDa $atend
ú 'u||aTEntw'aDa
ü ,uDj'ErEsis
ü 'u||kon||dj'ErEsis



@@ -379,8 +324,7 @@ Uds ustedes $text $capital $dot

linux $1
méxico m'Exiko
mexicano mExikano

vietnam $2
spanish sp'aniS
english ínglish $text
firefox f'aIrfoks
@@ -394,8 +338,8 @@ facebook f'eIsbuk
twitter tw'iter
twit tw'it
mozilla moT'ila
espeak isp'ik
(e speak) isp'ik
espeak 'isp'ik
(e speak) 'isp'ik
eloquence 'elokwens
speech sp'itS
platform pl'atfom

+ 283
- 279
dictsource/es_rules View File

@@ -1,279 +1,283 @@
// translation rules for Spanish
// This file is UTF-8 encoded

// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1

.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j s y z r // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c

.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU


.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b

.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch (A tS // allow _ch

c (Y T // ce, ci
ch tS
A) ck k

.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ D
d (cY D
d (L03 D
d (v D
m) d d
n) d d
l) d d
r) d d


.group e
e e
// e (CK E
e (nK E
e (r E
e (Ch e
Ar) e E
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU


.group f
f f
_) f (L01A f // allow fl fr at start of word


.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_ Q
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi


.group h
h // silent
_) hi (A j


.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i


.group j
j x


.group k
k k
_) k (L01A k // allow kl kr at start of word


.group l
l l
ll (_ l
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^



.group m
m m
@) m (_ =m
_) mn (em n
_) mb (A mb


.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n

.group o
o o
o (CK O
o (r O
o (Ch o
Ar) o O
oi oI
oy (K oI
oy (_ 'oI
ou ow

.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t


.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty


.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A R
l) r (A R
m) r (A R
n) r (A R
s) r (A R
rr RR2


.group s
s s
&) s (_S1 s
_) s (K@ s
ss s
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent

.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS


.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í

.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b


.group w
w w
_) wh (A w


.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent

.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A j:
_) y (A J^
u) y (K j:
n_) y (A dZ
y (_ i

.group z
z T
?2 z (L02 z
zz ts


.group
á ''a
é ''E
í ''i
ó ''O
ú ''u
ü u
ñ n^
$ d'Olar

_) - (_D m'EnOs
A_) - (_D _
C_) - (_D _

, (D kOma

// translation rules for Spanish
// This file is UTF-8 encoded
// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1
.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j r s y z // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c
.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU
.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b
.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch
c (Y T // ce, ci
ch tS
A) ck k
.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ d
d (_A D
d (cY D
d (L03 D
l) d d
d (v D
m) d d
n) d d
r) d d
.group e
e e
// e (CK E
e (nK E
e (r E
e (Ch e
Ar) e E
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU
.group f
f f
_) f (L01A f // allow fl fr at start of word
.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_A Q
g (_ g
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi
n) g (_ // ing
.group h
h // silent
_) hi (A j
.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i
?!3 Al) i (A j
?!3 Ar) i (A j
.group j
j x
.group k
k k
_) k (L01A k // allow kl kr at start of word
.group l
l l
ll (_ l^
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^
.group m
m m
// @) m (_ =m
_) mn (em n
_) mb (A mb
.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n
.group o
o o
o (CK O
o (r O
o (Ch o
Ar) o O
oi oI
oy (K oI
oy (_ 'oI
ou ow
.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t
.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty
.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A R2
l) r (A R2
m) r (A R2
n) r (A R2
s) r (A R2
rr R2
.group s
s s
&) s (_S1 s
_) s (K@ s
ss s:
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent
.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS
.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í
.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b
.group w
w w
_) wh (A w
.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent
me) x (ic x // mexicano, mexicana, etc.
.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A j:
_) y (A J^
u) y (K j:
n_) y (A dZ
y (_ i
.group z
z T
zz ts
.group
á ''a
é ''E
í ''i
ó ''O
ú ''u
ü u
ñ n^
$ d'Olar
_) - (_D m'EnOs
A_) - (_D _
C_) - (_D _
, (D kOma

+ 3969
- 52
dictsource/fa_list
File diff suppressed because it is too large
View File


+ 258
- 40
dictsource/fa_rules View File

@@ -1,6 +1,5 @@
// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.0
// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.0
// * This file writen by Shadyar Khodayari 2013
// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.1
// * This file writen by Shadyar Khodayari 11-14-2013
//*********
// * This program is free software; you can redistribute it and/or modify *
// * it under the terms of the GNU General Public License as published by *
@@ -26,12 +25,9 @@
// replacing unknown characters and Arabic numbers with Farsi characters and Latin numbers
.replace
٪ %
ي ی
ۍ ی
ى ی
ك ک
ە ه
ھ ه
ٔ ٴ
ي ی // this is "ي" Shift + x on the Persian Keyboard ("ye Arabi") that has been replaced with "ی" Standard for some programing reasones.
٠ 0
۰ 0
۱ 1
@@ -52,6 +48,133 @@
۸ 8
٩ 9
۹ 9
ﺁ آ
ﺍ ا
ﺎ ا
ﺄ أ
ﺏ ب
ﺐ ب
ﺑ ب
ﺒ ب
ﭖ پ
ﭗ پ
ﭘ پ
ﭙ پ
ﺕ ت
ﺖ ت
ﺗ ت
ﺘ ت
ﺚ ث
ﺛ ث
ﺜ ث
ﺝ ج
ﺞ ج
ﺠ ج
ﺟ ج
ﭻ چ
ﭼ چ
ﭽ چ
ﺢ ح
ﺣ ح
ﺤ ح
ﺥ خ
ﺦ خ
ﺧ خ
ﺨ خ
ﺩ د
ﺪ د
ﺫ ذ
ﺬ ذ
ﺭ ر
ﺮ ر
ﺯ ز
ﺰ ز
ﮊ ژ
ﺱ س
ﺲ س
ﺳ س
ﺴ س
ﺵ ش
ﺶ ش
ﺷ ش
ﺸ ش
ﺹ ص
ﺺ ص
ﺻ ص
ﺼ ص
ﺽ ض
ﺿ ض
ﻀ ض
ﻁ ط
ﻂ ط
ﻃ ط
ﻄ ط
ﻇ ظ
ﻈ ظ
ﻉ ع
ﻊ ع
ﻋ ع
ﻌ ع
ﻍ غ
ﻎ غ
ﻏ غ
ﻐ غ
ﻑ ف
ﻒ ف
ﻓ ف
ﻔ ف
ﻕ ق
ﻖ ق
ﻗ ق
ﻘ ق
ك ک
ﮎ ک
ﮏ ک
ﮐ ک
ﮑ ک
ﻛ ک
ﮒ گ
ﮓ گ
ﮔ گ
ﮕ گ
ﻝ ل
ﻞ ل
ﻟ ل
ﻠ ل
ﻡ م
ﻢ م
ﻣ م
ﻤ م
ﻥ ن
ﻦ ن
ﻧ ن
ﻨ ن
ﻭ و
ﻮ و
ھ ه
ە ه
ﻩ ه
ﻪ ه
ﻫ ه
ﻬ ه
ى ی
ۍ ی
ﯼ ی
ﯽ ی
ﯾ ی
ﯿ ی
ﻰ ی
ﻱ ی
ﻲ ی
ﻳ ی
ﻴ ی
ﻻ لا
ﻼ لا
ﺔ ة
ﺋ ئ
ﺌ ئ
ﺀ ء


// (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" have been definded for this character in the rules.
@@ -88,6 +211,14 @@
// (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" has been definded for this character in the rules.


.group +
__) + (_D mosbate-


.group -
__) - (_D manfije-


.group آ
_) آN 'A:
آ 'A
@@ -105,6 +236,7 @@
L09L09) آموخته (_Sm6 Amuxte:
L09L09) آموختۀ (_Sm6 Amuxteje
L09L09) آگاه (_Sm4 AgAh
L09L09)آلات (_Sm4 AlAt


.group ا
@@ -121,6 +253,7 @@
اً an
اٍ en
اٌ on
ا (ٓ A

// Prefixes ا
_) ال (L09L09L09P2@ al
@@ -201,9 +334,22 @@
l09l09l03) انیدید (_NSm6 Anidid
l09l09l03) انیدند (_NSm6 Anidand
l09l09l03) انیدن (_NSm5 Anidan
L09L04) افرین (_Sm5 AfaRin
L09L04) الدین (_Sm5 oddin
L09L04) الدّین (_Sm6 oddin
L09L04) الدوله (_Sm6 oddole:
L09L04) الدّوله (_Sm7 oddole:
L09L04) الدولۀ (_Sm6 oddoleje
L09L04) الدّولۀ (_Sm7 oddoleje
L09L04) الملک (_Sm5 olmolk
L09L04) الملوک (_Sm6 olmoluk
L09L04) الحکما (_Sm6 olhokamA
L09L04) الممالک (_Sm7 olmamAlek
L09L04) السلطنه (_Sm7 ossaltane:
L09L04) السّلطنه (_Sm8 ossaltane:
L09L04) السلطنۀ (_Sm7 ossaltaneje
L09L04) السّلطنۀ (_Sm8 ossaltaneje
L09L04) السادات (_Sm7 ossAdAt
L09L04) السّادات (_Sm8 ossAdAt

// arabic form of words (Babs) ا
//استفعال eg. استخراج (Fa eSpeak read itd correctly)
@@ -304,6 +450,10 @@
_) ب (وL02L09P1@ be
_) بر (L04L09L09P2@ baR
_) بر (آL09L09P2@ baR
_) برمی (L04L09L09P4@ baRmi
_) برمی (آL09L09P4@ baRmi
_) برنمی (L04L09L09P5@ baRnemi
_) برنمی (آL09L09P5@ baRnemi
_) به (L04L09L09P2@ beh
_) به (آL09L09P2@ beh
_) بد (آL09L09P2@ bad\
@@ -315,6 +465,8 @@
_) بلا (آL09L09P3@ belA
_) بزرگ (L04L09L09P4@ bozoRg
_) بزرگ (آL09L09P4@ bozoRg
_) بنفش (آL09L09P4@ banafS
_) بنفش (L04L09L09P4@ banafS

// suffixes ب
L09L09) بخش (_Sm3 baxS
@@ -341,6 +493,7 @@
L09L09) بندهاتون (_NSm8 bandhAtun
L09L09) بندهایشان (_NSm9 bandhAjeSAn
L09L09) بندهاشون (_NSm8 bandhASun
L09L09) بار (_Sm3 bAR
L09L09) باز (_Sm3 bAz
L09L09) بست (_Sm3 bast
L09L09) بان (_Sm3 bAn
@@ -352,7 +505,10 @@
L09L09) باش (_Sm3 bAS
L09L09) بزرگ (_Sm4 bozoRg
L09L09) باور (_Sm4 bAvaR
L09L09) برانگیز (_Sm baRangiz
L09L09) برانگیز (_Sm7 baRangiz
L09L09) باف (_Sm3 bAf
L09L09) بافت (_Sm4 bAft
L09L09) بلند (_Sm4 boland

// arabic form of words (Babs) ب
//فواعل eg. جوامع
@@ -526,6 +682,7 @@
L09L09) پندار (_Sm5 pendAR
L09L09) پرست (_Sm4 paRast
L09L09) پناه (_Sm4 panAh
L09L09) پسند (_Sm4 pasand

// arabic form of words (Babs) پ
//فواعل eg. جوامع
@@ -1502,6 +1659,9 @@
L09L09) خیز (_Sm3 xiz
L09L09) خواست (_Sm5 xAst
L09L09) خواب (_Sm4 xAb
L09L09) خواند (_Sm5 xAnd
L09L09) خورد (_Sm4 xoRd
L09L09) خوردگی (_Sm6 xoRdegi

// arabic form of words (Babs) خ
//فواعل eg. جوامع
@@ -1659,6 +1819,12 @@
_) دست (آL09L09P3@ dast
_) درست (L04L09L09P4@ dorost
_) درست (آL09L09P4@ dorost
_) دراز (L04L09L09P4@ deRAz
_) دراز (آL09L09P4@ deRAz
_) درال (L04L09L09P4@ dARol
_) درال (تL09L09+P4@ dARo_'
_) درال (دL09L09+P4@ dARo_'
_) درال (آL09L09P4@ dARol

// suffixes د
L09L09) داد (_Sm3 dAd
@@ -1679,6 +1845,8 @@
L09L09) دوش (_Sm3 duS
L09L09) دهی (_Sm3 dehi
L09L09) دوست (_Sm4 dust
L09L09) دوز (_Sm3 duz
L09L09) دخت (_Sm3 doxt

// arabic form of words (Babs) د
//فواعل eg. جوامع
@@ -1834,6 +2002,8 @@
// Prefixes ذ
_) ذی (L04L09L09P2@ zi
_) ذی (آL09L09P2@ zi
_) ذوال (L04L09L09P4@ zol
_) ذوال (آL09L09P4@ zol

// Suffixes ذ
@@ -1984,10 +2154,12 @@
// Prefixes ر
_) رضا (L04L09L09P3@ RezA
_) رضا (آL09L09P3@ RezA
_) ریز (L04L09L09P2@ Riz
_) ریز (L04L09L09P3@ Riz
_) ریز (آL09L09P3@ Riz
_) راست (L04L09L09P4@ RAst:
_) راست (آL09L09P4@ RAst
_) رنگ (L04L09L09P3@ Rang
_) رنگ (آL09L09P3@ Rang

// suffixes ر
//L09L09L09) ران (_Sm3 RAn
@@ -2161,6 +2333,8 @@
_) زود (L04L09L09P3@ zud
_) زود (آL09L09P3@ zud
_) زیر (آL09L09P3@ ziR
_) زرد (L04L09L09P3@ zaRd
_) زرد (آL09L09P3@ zaRd

// suffixes ز
L09L09) زاد (_Sm3 zAd
@@ -2415,6 +2589,7 @@
س (ـــL02 s
س (ـــL03 sa
س (ــ sa
_) ست (_ set // eg. "این سِتِ جواهر"
// Consonants Analyzer
// Right to left characters Analyzer
// Analyzing 2nd Consonant of 3 Consonants
@@ -2476,13 +2651,26 @@
_) سوء (L09L09P3@ su?e
_) سانتی (L04L09L09P5@ sAnti
_) سانتی (آL09L09P5@ sAnti
_) سید (L09P3@ sej:ed:
_) سید (آL09L09P3@ sej:ed
_) سید (L04L09L09P3@ sejjed
_) سید (آL09L09P3@ sejjed
_) سیّد (L04L09L09P4@ sejjed
_) سیّد (آL09L09P4@ sejjed
_) سپید (L04L09L09P4@ sepid
_) سپید (آL09L09P4@ sepid
_) سفید (L04L09L09P4@ sefid
_) سفید (آL09L09P4@ sefid
_) سپید (آL09L09P4@ sepid
_) سبز (L04L09L09P3@ sabz
_) سبز (آL09L09P3@ sabz
_) سنگ (L04L09L09P3@ sang
_) سنگ (آL09L09P3@ sang

// suffixes س
L09L01) ست (_+NSm2 st
L09L03) ست (_+NSm2 ast
-) ست (_+NSm2 st // eg. "کجا‌ست"
L09L01) ست (_++NSm2 st
L09L03) ست (_++NSm2 ast
L01-) ست (_+NSm2 st // eg. "کجا‌ست"
L02-) ست (_+NSm2 ast
L03-) ست (_+NSm2 ast // eg. "میز‌ست"
L09L03) ستان (_Sm4 estAn
L09L01) ستان (_Sm4 stAn
L09L09) سان (_Sm3 sAn
@@ -2494,6 +2682,8 @@
L09L09) سوار (_Sm4 savAR
L09L09) سال (_Sm3 sAl
L09L09) سالار (_Sm5 sAlAR
L09L09) سرشت (_Sm4 seReSt
L09L09) ستیز (_Sm4 setiz

// arabic form of words (Babs) س
//فواعل eg. جوامع
@@ -2646,6 +2836,8 @@
_) شاد (آL09L09P3@ S'Ad
_) شاه (L04L09L09P3@ S'Ah
_) شاه (آL09L09P3@ S'Ah
_) شیر (L04L09L09P3@ SiR-
_) شیر (آL09L09P3@ SiR-

// suffixes ش
L09L09) شناس (_Sm4 SenAs
@@ -2840,7 +3032,8 @@
_) صدر (آL09L09P5@ sadr

// Suffixes ص
L09L09) صد (_Sm2 sad
// L09L09) صد (_Sm2 sad
L09L09) صفت (_Sm3 sefat

// arabic form of words (Babs) ص
//فواعل eg. جوامع
@@ -3787,6 +3980,7 @@
L09L09) فریب (_Sm4 faRib
L09L09) فرما (_Sm4 faRmA
L09L09) فرسا (_Sm4 faRsA
L09L09) فرنگی (_Sm5 faRangi

// arabic form of words (Babs) ف
//فواعل eg. جوامع
@@ -3933,6 +4127,8 @@
// Prefixes ق
_) قابل (L04L09L09P4@ q1'Abele
_) قابل (آL09L09P4@ q1'Abele
_) قرمز (L04L09L09P4@ q1eRmez
_) قرمز (آL09L09P4@ q1eRmez

// suffixes ق
@@ -4103,6 +4299,8 @@
L09L09) کنندۀ (_Sm5 konandeje
L09L09) کنندگان (_Sm7 konandegAn
L09L09) کوچک (_Sm4 kutSak
L09L09) کلام (_Sm4 kalAm
L09L09) کرد (_Sm3 kaRd

// arabic form of words (Babs) ک
//فواعل eg. جوامع
@@ -4286,10 +4484,8 @@
L09L01) گانمان (_Sm6 gAnemAn
L09L01) گانتان (_Sm6 gAnetAn
L09L01) گانشان (_Sm6 gAneSAn
L09L01) گانه (_Sm4 g'Ane:
L09L01) گانۀ (_Sm4 g'Aneje
L09L03) گانه (_Sm4 eg'Ane:
L09L03) گانۀ (_Sm4 eg'Aneje
L09L09) گانه (_Sm4 g'Ane:
L09L09) گانۀ (_Sm4 g'Aneje
L09L09) گون (_Sm3 gun
L09L09) گونه (_Sm4 gune:
L09L09) گاه (_Sm3 g'Ah
@@ -4307,6 +4503,8 @@
L09L09) گشا (_Sm3 goSA
L09L09) گریز (_Sm4 goRiz
L09L09) گسار (_Sm4 gosAR
L09L09) گراف (_Sm4 geRAf
L09L09) گزین (_Sm4 gozin

// arabic form of words (Babs) گ
//فواعل eg. جوامع
@@ -4636,12 +4834,18 @@
_) مصطفی (L04L09L09P5@ mostafA
_) میلی (L04L09L09P4@ mili
_) میلی (آL09L09P4@ mili
_) ماه (L04L09L09P3@ mAh
_) ماه (L03L09L09P3@ mAh
_) ماه(آL09L09P3@ mAh
_) مگا (L04L09L09P3@ megA
_) مگا(آL09L09P3@ megA
_) مولتی (L04L09L09P5@ multi
_) مولتی(آL09L09P5@ multi
_) مایکرو (L04L09L09P6@ mAjkRo
_) مایکرو (آL09L09P6@ mAjkRo
_) میکرو (L04L09L09P5@ mikRo
_) میکرو (آL09L09P5@ mikRo
_) ماکرو (L04L09L09P5@ mAkRo
_) ماکرو (آL09L09P5@ mAkRo

// suffixes م
L09L09) ماه (_Sm3 mAh
@@ -4674,6 +4878,8 @@
L09L09) مردان (_Sm5 maRdAn
L09L09) منش (_Sm3 maneS
L09L09) مآب (_Sm3 maAb
L09L09) مقام (_Sm4 maq1Am
L09L09) مرغ (_Sm3 moRq1

// arabic form of words (Babs) م
//فواعل eg. جوامع
@@ -4852,6 +5058,8 @@
_) نو (آL09L09P2@ no'
_) نیم (L04L09L09P3@ nim
_) نیم (آL09L09P3@ nim
_) نیکو (L04L09L09P4@ niku
_) نیکو (آL09L09P4@ niku

// suffixes ن
L09L09L03) ن (_NSm1 an
@@ -4888,6 +5096,8 @@
L09L09) نشین (_Sm4 neSin
L09L09) نکردن (_Sm5 nakaRdan
L09L09L09) نشدن (_Sm4 naSodan
L09L09L09) نشانده (_Sm6 neSAnde:
L09L09L09) نشاندۀ (_Sm6 neSAndeje

// arabic form of words (Babs) ن
//فواعل eg. جوامع
@@ -4975,13 +5185,13 @@
//و in first of words
_) و (L03 va
_) و (L01 v
// و preceded by another latter
// و preceded by another letter
_ا) و (L03 u:
_ا) و (یا u:
_ا) و (یو u:
_ا) و (ا av
_ا) و (یL03 av
_ا) و (یی av
_ا) و (ا v
_ا) و (یL03 v
_ا) و (یی v
_ای) و (L01 v
_ای) و (L03 va
_ی) و (L01 v
@@ -5008,9 +5218,11 @@
L03) و (ا v
L03) و (یL03 v
L03) و (یL01 u
_L03) و (آ av
//otherwise
L09ا) و (ا v
L09ا) و (آ v
_و) و u
L09ا) و (و_ v
او) و (_ v
L09او) و (_ u
@@ -5040,7 +5252,9 @@
_آ) و (L03_ va

// Prefixes و
_) والا (L04L09P4@ vAlA
_) والا (آL09P4@ vAlA

// Suffixes و
L09L01) ور (_NSm2 vaR
L09L09) وند (_Sm3 vand
@@ -5345,6 +5559,8 @@
L02) ی j
L09و) ی (L03 i
L09و) ی (L01 j
L09و) ی (و_+ ej
L09و) ی (وL09+ i
L09ا) ی (L03 j
L09ا) ی (L01 j
L03) ی (وL03 ij
@@ -5371,7 +5587,7 @@
// Prefixes ی
_) یک (L04L09L09P2@ jek
_) یک (آL09L09P2@ jek
_) یاد (L09L09P3@ jAd
_) یاد (L04L09L09P3@ jAd
_) یاد (آL09L09P3@ jAd

// suffixes ی
@@ -5532,17 +5748,16 @@
//this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ "


.group ٔ
L04) ٔ
ا) ٔ a?
ٔ
.group ٴ
L04) ٴ
ا) ٴ a?
ٴ

// suffixes ٔ
L09L03) ٔ (_NSm1 je
// suffixes ٴ
L09L03) ٴ (_NSm1 je


.group ّ
ّ (L02 taSdid
L02) ّ taSdid


@@ -5580,9 +5795,11 @@


.group ٰ
ٰ (L04 A
ٰ (ا
ٰ (آ
ٰ A


.group ٓ
ٓ


//short vowels that are not usually written:
@@ -5637,10 +5854,12 @@

.group أ
أ a?
أ (َ


.group إ
إ e?
إ (ِ


.group ـ
@@ -5648,7 +5867,6 @@


.group ،
، _


.group ؛

+ 154
- 120
dictsource/gu_list View File

@@ -1,132 +1,144 @@
// This file is written by Him Prasad Gautam (Nepal)
// This gu_rules file is prepared by Maheshinder Singh Khosla< [email protected] >.

// This file is UTF8 encoded

// Numbers
// Gujarati numbers are changed to latin characters before translation

_0 S'u:nj@-
_1 'e:k
_2 b'e:
_3 tr'@n.V
_4 c'a:r
_5 p'a:n^c
_6 c#'@
_7 s'a:t
_8 'a:,t.#
_9 n'aw
_10 d'@s:
_11 'ag'Ija:r
_12 b'a:r
_13 t'e:r
_14 c'O:d
_15 p'Vnd@r
_16 s'o:d.
_17 s'@t@r
_18 'Vd.#a:r
_19 ,o:gn.'i:s
_20 w'i:s
_21 ,e:kw'i:s
_22 baU'i:s
_23 tre:w'i:s
_24 co:w'i:s
_25 p,@c'i:s
_26 c#@3w'i:s
_27 s,@tjaU'i:s
_28 ,Vt.#jaU'i:s
_29 ,o:[email protected]'i:s
_30 tr'i:s
_31 ,e:k@tr'i:s
_32 b@tr'i:s
_33 te:tr'i:s
_34 co:tr'i:s
_35 pa:ntr'i:s
_36 c#@3tr'i:s
_37 s,a:d.tr'i:s
_38 ,a:d.tr'i:s
_39 ,o:[email protected]:l'i:s
_40 ca:l'i:s
_41 ,e:kta:l'i:s
_42 b,e:ta:l'i:s
_43 t,e:ta:l'Is
_44 c,Uma:l'i:s
_45 p,Ista:l'i:s
_46 c#,e:ta:l'i:s
_47 s,@d.ta:l'i:s
_48 ,Vd.ta:l'i:s
_49 o:g'Vn.,p@c'a:s
_50 p@c'a:s
_51 e:k'aUn
_52 b'aUn
_53 tre:p'Vn
_54 co:p'Vn
_55 p@n^c'aUn
_56 c#@3p:'Vn
_57 s@t'aUn
_58 Vt.#'aUn
_59 ,o:[email protected]:'It.#
_60 sa:'It.#
_61 ,e:k@s'Vt.#
_62 ba:s'Vt.#
_63 tre:s'Vt.#
_64 co:s'Vt.#
_65 pa:s'Vt.#
_66 c#a:s'Vt.#
_67 s,@d.@s'Vt.#
_68 ,Vd.@s'Vt.#
_69 ,o:[email protected]'i:te:r
_70 s'i:te:r
_71 e:k'o:te:r
_72 b'o:te:r
_73 t'o:te:r
_74 cUm'o:te:r
_75 p@n^c'o:te:r
_76 c#'o:te:r
_77 s@t'o:te:r
_78 Vt.#'o:te:r
_79 ,o:g@n.'e:si;
_80 'e:nsi;
_81 ,e:kj'a:si
_82 b'j'a:si
_83 tr@2j'a:si
_84 c,o:*j'a:si
_85 p,@cj'a:si
_86 c#@3j'a:si
_87 s,@tj'a:si;
_88 ,Vt.#j'a:si
_89 n,e:wj'a:si
_90 n'e:wU
_91 e:k'a:n.U
_92 b'a:n.U
_93 tr'a:n.U
_94 co:r'a:n.U
_95 p@n^c'a:n.U
_96 c#'VnnU
_97 s@t'a:n.U
_98 Vt.#'a:n.U
_99 n@w'a:n.U

_0C s'o:
_0M1 h'VJa:r
_0M2 l'a:k#
_0M3 k@r'o:r.V
_0M4 'VrVb
_0M5 k#'VrVb
_dpt p'u:r'n.'a:,Nk
_0 S'u:nj@-
_1 'e:k
_2 b'e:
_3 tr'@2n.
_4 c'a:r
_5 p'a:n^c
_6 c#'@3
_7 s'a:t
_8 'a:t.#
_9 n'Vu
?3 _9 n'aU

_10 d'Vs
_11 ,VgIj'a:r
_12 b'a:r
_13 t'e:r
_14 c'O:d
_15 p@nd'Vr
_16 s'o:r.
_17 s@tt'Vr
_18 Vd.#'@r
_19 ,o:gn.'i:s

_20 w'i:s
_21 ,e:kv'i:s
_22 b'a:w'i:s
_23 te:v'i:s
_24 co:v'i:s
_25 p@cc'i:s
_26 c#@3v'i:s
_27 s,@t:e:a:v'i:s
_28 ,Vt.#:e:a:v'i:s
_29 ,o:[email protected]'i:s
_30 tr'i:s

_31 ,e:k@t:r'i:s
_32 b,@t:r'i:s
_33 t'e:tr'i:s
_34 c'o~tr'i:s
_35 p'V~tr'i:s
_36 c#@3tr'i:s
_37 s,a:r.atr'i:s
_38 ,a:r.atr'i:s
_39 ,o:[email protected]:l'i:s

_40 ca:l'i:s
_41 ,e:kta:l'i:s
_42 b,e:ta:l'i:s
_43 t,e:ta:l'i:s
_44 c,u~ma:l'i:s
_45 p,Ista:l'i:s
_46 c#,e:ta:l'i:s
_47 s,ur.ta:l'i:s
_48 ,Vr.ta:l'i:s
_49 ,o:g@n.,@pc'a:s

_50 p@c'a:s
_51 e:k'aUn
_52 b'aUn
_53 tre:p'Vn
_54 co:p'Vn
_55 p@n^c'aUn
_56 c#@3p:'Vn
_57 s@t:'aUn
_58 Vt.#:'aUn
_59 ,o:[email protected]:'i~t.#

_60 sa:H'i~t.#
_61 ,e:ks'Vt.#
_62 ba:s'Vt.#
_63 tre:s'Vt.#
_64 co:s'Vt.#
_65 pV~s'Vt.#
_66 c#V~s'Vt.#
_67 s,@r.@s'Vt.#
_68 ,Vr.@s'Vt.#
_69 ,o:[email protected]:'e:*

_70 sIt:'e:*
_71 ,e:ko:t'e:r
_72 bo~t'e:r
_73 to~t'e:r
_74 c,Imo:t'e:r
_75 p,Inco:t'e:r
_76 c#o~t'e:r
_77 s,It:o:t'e:r
_78 ,It.#:o:t'e:r
_79 ,o:gn.ja:'e~:sI

_80 'e~:sI
_81 ,e:kj'a:si
_82 bj'V~si
_83 t:j'V~si
_84 c,urI;'a:si
_85 pInc'a:si
_86 c#e:'V~si
_87 s@t:j'a:si
_88 ,Vt.#j'a:si
_89 nIvj'a:si

_90 n'e:vu~
_91 e:k'a:n.u~
_92 b'a:n.u~
_93 tr'a:n.u~
_94 co:r'a:n.u~
_95 p@nc'a:n.u~
_96 c#'Vnnu~
_97 s@t:'a:n.u~
_98 Vt.#:'a:n.u~
_99 n@vv'a:n.u~

_0C s'O:
_0M1 h@J,a:r
_0M2 l'a:kh
_0M3 k@ro:r.V
_0M4 Vb'VJ
_0M5 kh'Vr@b
_dpt _d@s@ml'o:_


// Single consonants
ક k@
ક઼ q@
ખ k#@
ખ kh@
ખ઼ x@
ગ g@
ગ઼ Q@
ઘ g#@
ઘ gh@
ઙ N@
ચ c@
છ c#@
છ ch@
જ J@
જ઼ z@
ઝ J#@
ઝ Jh@
ઞ n^@
ટ t.@
ઠ t.#@
@@ -135,18 +147,19 @@ _dpt p'u:r'n.'a:,Nk
ઢ d.#@
ણ n.@ // retroflex n.@
ત t@
થ t#@
થ th@
દ d@
ધ d#@
ધ dh@
ન n@
પ p@
ફ p#@
ફ ph@
ફ઼ f@
બ b@
ભ b#@
ભ bh@
મ m@
ય j@
ર r@

લ l@
ળ l.@
વ v@
@@ -155,13 +168,34 @@ _dpt p'u:r'n.'a:,Nk
સ s@
હ H@

// combining vowel signs
ા #X2a:
િ #X1I
ી #X2i:
ુ #X1U
ૂ #X2u:
ૃ #X1ru
ૄ #X1ru
ૅ #X1E
ે #X2e:
ૈ #X2aI
?2 ૈ #X2aI
ૉ #X1O
ો #X2o:
ૌ #X2aU
?3 ૌ #X2aU
ૢ #X1l-
ૣ #X2l-:
ૐ #X1o~m


// Punctuation
। p'urn'a,b'ira:m
૱ r'u:p'i:ja:
$ d@l@r
। dVn.d.V
્ H@l'Vnt
$ dOl@r
% pVt'IS@t
+ plVs
= bVr'a:b@r
* ta:r'a:Nk@n



+ 291
- 304
dictsource/gu_rules View File

@@ -1,17 +1,15 @@
// This file is developed by Him Prasad Gautam (Nepal)

// Gujarati Language.
// This gu_rules file is prepared by Maheshinder Singh Khosla< [email protected] >.

// This file is UTF8 encoded

// letter groups:
// A vowel letters and vowel signs
// B vowel signs and virama
// B vowel signs and virama
// C consonants
// Y vowel letters and vowel signs

// conditional rules
// ?2 use diphthong for "ai"
// ?3 use diphthong for "au"


.replace
૦ 0
૧ 1
@@ -25,444 +23,433 @@
૯ 9



// Vowels


.group અ
V
અ (હ E // (h
અહ) અ E
V
અ (હ E // (h
અહ) અ E

.group આ
આ a:
આ a:
આં V~

.group ઇ
I
ઇઁ i~
ઇં i~
I
// ઇઁ i~
ઇં i~

.group ઈ
i:
ઈ (_ i
i:
ઈ (_ i

.group ઉ
U
U

.group ઊ
u
ઊં (_ u~ // + anusvara
ઊઁ (_ u~ // + candrabinbu
u
ઊં u~ // + anusvara
ઊઁ (_ u~ // + candrabinbu

.group ઋ
ઋ rI
ઋ ru

.group ઌ
ઌ l-ri: // vocalic l
ઌ l- // vocalic l

.group ઍ
ઍ E // candra e
ઍ E // candra e

.group એ
e:
એઁ e~:
એં (_ e~:
ા) એઁ (_ j
e:
એઁ e~:
એં e~:
ા) એઁ (_ j

.group ઐ
ઐ E: // ?? [aI] [E:] [&:]
ઐં (_ E~
ઐઁ (_ E~
?2 ઐ aI // ?? [aI] [E:] [&:]
ઐ aI // ?? [aI] [E:] [&:]
ઐં E~
ઐઁ (_ E~
?2 ઐ aI // ?? [aI] [E:] [&:]

.group ઑ
ઑ O // candra O
ઑ O // candra O

.group ઓ
ઓ o:
ઓં (_ o~ // +anusvara
ઓઁ (_ o~ // +candrabindu
ા) ઓં (_ w // +anusvara
ા) ઓઁ (_ w

ઓ o:
ઓં o~ // +anusvara
ઓઁ (_ o~ // +candrabindu
ા) ઓં (_ w // +anusvara
ા) ઓઁ (_ w
.group ઔ
ઔ O: // ?? [aU] [O:]
ઔં (_ O~ // +anusvara
ઔઁ (_ O~ // +candrabindu
?3 ઔ aU // ?? [aU] [O:]
ઔ O: // ?? [aU] [O:]
ઔં O~ // +anusvara
ઔઁ (_ O~ // +candrabindu
?3 ઔ aU // ?? [aU] [O:]


// Vowel Signs

.group ા
ા k'a:n'o
C) ા a:
C) ા (ઁ a~
C) ાઁ (_ a~
C) ાં (_ a~
ા a:
ા (ઁ V~
ાઁ (_ V~
ાં V~
ાવ aU

.group િ
િ i,c'i:nh'a
C) િ i
C) િઁ i~
C) િં i~
િ I
// િઁ i~
િં i~

.group ી
ી d'i:rg#@i:,c'i:n'h'a
C) ી i:
C) ી (_ i
C)ી (ઁ i~
C) ીઁ (_ i~
C) ીં (_ i~
ી i:
ી (_ i
ી (ઁ i~
ીઁ (_ i~
ીં i~

.group ુ
ુ u,c'i:n'h'a
C) ુ U
C) ુ (ઁ u~
C) ું (_ u~
C) ુઁ (_ u~
ુ u
ુ (ઁ u~
ું u~
ુઁ (_ u~

.group ૂ
ૂ d'i:rg#@u:,c'i:n'h'a
C) ૂ u:
C) ૂ (ઁ u~
C) ૂં (_ u~ // or O~ ??
C) ૂઁ (_ u~
ૂ u:
ૂ (ઁ u~
ૂં u~ // or O~ ??
ૂઁ (_ u~

.group ૃ
ૃ r'I,c'i:n'h'a
C) ૃ rI
ૃ ru

.group ૄ
ૄ d'i:rg#@r'I,c'i:n'h'a
C) ૄ rI
ૄ ru

.group ૅ
ૅ 'e,c'i:n'h'a
C) ૅ E
ૅ E

.group ે
ે 'e:,c'i:n'h'a
C) ે e:
C) ે (ઁ e~
C) ેં (_ e~:
C) ેઁ (_ e~:
ે e:
ે (ઁ e~
ેં e~:
ેઁ (_ e~:

.group ૈ
ૈ E:,c'i:n'h'a
C) ૈ E: // ?? [aI] [E:] [&:]
C) ૈં E~
C) ૈ (ઁ E~
C) ૈં (_ E~
C) ૈઁ (_ E~
?2 C) ૈ aI // ?? [aI] [E:] [&:]
ૈ E: // ?? [aI] [E:] [&:]
ૈં E~
ૈ (ઁ E~
ૈઁ (_ E~
?2 ૈ aI // ?? [aI] [E:] [&:]

.group ૉ
ૉ O,c'i:n'h'a
C) ૉ O
ૉ O

.group ો
ો o:,c'i:n'h'a
C) ો o:
C) ો (ઁ o~
C) ોં (_ o~
C) ોઁ (_ o~
ો o:
ોં o~
ો (ઁ o~
ોઁ (_ o~

.group ૌ
ૌ aU,c'i:n'h'a // [O:] or [aU] ??
C) ૌ O:
C) ૌ (ઁ O~ // [O:] or [aU] ??
C) ૌં (_ O~
C) ૌઁ (_ O~
?3 C) ૌ aU // [O:] or [aU] ??
ૌ O: // [O:] or [aU] ??
ૌ (ઁ O~ // [O:] or [aU] ??
ૌં O~
ૌઁ (_ O~
?3 ૌ aU // [O:] or [aU] ??

.group ૢ // vowel sign l
_) ૢ (_ l'ri:,c'i:n'h'a
ૢ l-
.group ૢ // vowel sign l
ૢ l-

.group ૣ // vowel sign ll
_) ૣ (_ d'i:rg#,l'ri:,c'i:n'h'a
ૣ l-:
.group ૣ // vowel sign ll
ૣ l-:

.group ૐ
o~m
o~m

// Consonants

.group ક
kV
ક (B k
ક (્ય k:
ક઼ qV
ક઼ (B q
ક્ક k:V // kk -> k:
ક્ક (B k:
ક્ષ kSV
ક્ષ (B kS
kV
ક (B k
ક (્ય k:
ક઼ qV
ક઼ (B q
ક્ક k:V // kk -> k:
ક્ક (B k:
ક્ષ kSV
ક્ષ (B kS
.group ખ
k#V
ખ (B k#
ખ઼ xV
ખ઼ (B x
k#V
ખ (B k#
ખ઼ xV
ખ઼ (B x

.group ગ
gV
ગ (B g
ગ઼ QV
ગ઼ (B Q
gV
ગ (B g
ગ઼ QV
ગ઼ (B Q

.group ઘ
g#V
ઘ (B g#
g#V
ઘ (B g#

.group ઙ
NV
ઙ (B N
્) ઙ (_ N@
NV
ઙ (B N
્) ઙ (_ N@

.group ચ
cV
ચ (B c
ચ (્ય c:
cV
ચ (B c
ચ (્ય c:

.group છ
c#V
છ (B c#
c#V
છ (B c#

.group જ
JV
જ (B J
જ઼ zV
જ઼ (B z
જ્ઞ gjV
જ્ઞ (B gj
JV
જ (B J
જ઼ zV
જ઼ (B z
જ્ઞ gjV
જ્ઞ (B gj

.group ઝ
ઝ J#V
ઝ (B J#

ઝ J#V
ઝ (B J#

.group ઞ
ઞ n^V
ઞ (B n^
્) ઞ (_ n^@

ઞ n^V
ઞ (B n^
્) ઞ (_ n^

.group ટ
ટ t.V
ટ (B t.
ટ (્ય t.:
ટ્ટ t.:V // t.t. -> t.:
ટ્ટ (B t.:
ટ્ઠ t.#:V // t.t.# -> t.#:
ટ્ઠ (B t.#:
ટ t.V
ટ (B t.
ટ (્ય t.:

ટ્ટ t.:V // t.t. -> t.:
ટ્ટ (B t.:

ટ્ઠ t.#:V // t.t.# -> t.#:
ટ્ઠ (B t.#:

.group ઠ
t.#V
ઠ (B t.#
ઠ્ઠ t.#:V // t.#t.# -> t.#:
ઠ્ઠ (B t.#:
t.#V
ઠ (B t.#
ઠ્ઠ t.#:V // t.#t.# -> t.#:
ઠ્ઠ (B t.#:
.group ડ
d.V
ડ (B d.
d.V
ડ (B d.

ડ઼ r.V
ડ઼ (B r.
ડ઼ r.V
ડ઼ (B r.

.group ઢ
d.#V
ઢ (B d.#
ઢ઼ r.hV // nukta (should retroflex flap)
ઢ઼ (B r.h // nukta
d.#V
ઢ (B d.#
ઢ઼ r.hV // nukta (should retroflex flap)
ઢ઼ (B r.h // nukta

.group ણ
ણ n.V
ણ (B n.
્) ણ (_ n.@
ણ n.V
ણ (B n.
્) ણ (_ n.@

.group ત
ત tV
ત (B t
ત (્ય t:
ત tV
ત (B t
ત (્ય t:

ત્ત t:V // tt -> t:
ત્ત (B t:

ત્ત t:V // tt -> t:
ત્ત (B t:
.group થ
t#V
થ (B t#
થ t#V
થ (B t#

.group દ
dV
દ (B d
dV
દ (B d

.group ધ
d#V
ધ (B d#
d#V
ધ (B d#

.group ન
ન nV
ન (B n
્) ન (_ n@
ર્) ન (_ n // r +virama

ન nV
ન (B n
્) ન (_ n@
ર્) ન (_ n // r +virama

.group પ
પ pV
પ (B p
પ (્ય p:
પ્પ p:V // pp -> p:
પ્પ (B p:
પ pV
પ (B p
પ (્ય p:

પ્પ p:V // pp -> p:
પ્પ (B p:

.group ફ
p#V
ફ (B p#
ફ઼ fV
ફ઼ (B f
p#V
ફ (B p#
ફ઼ fV
ફ઼ (B f

.group બ
bV
બ (B b
bV
બ (B b

.group ભ
b#V
ભ (B b#
b#V
ભ (B b#

.group મ
mV
મ (B m
્) મ (_ m@
ર્) મ (_ m // r +virama
ન્) મ (_ m // n +virama
mV
મ (B m
્) મ (_ m@
ર્) મ (_ m // r +virama
ન્) મ (_ m // n +virama

.group ય
ય jV
ય (B j
C) ય (_ Ej // [Ej] not [@j]
્) ય (_ j@
ય j@
ય (B j
્) ય (_ j@
C) ય (_ Ej // [Ej] not [@j]

.group ર
rV
ર (B r
ર (_ r
્) ર (_ r@
rV
ર (B r
્) ર (_ r@

.group લ
lV
લ (B l
્) લ (_ l@
lV
લ (B l
્) લ (_ l@

.group ળ
ળ l.V
ળ (B l.
્) ળ (_ l.@

ળ l.V
ળ (B l.
્) ળ (_ l.@

.group વ
વ wV
વ (B w
_) વ wV
_) વ (B w
_) વ (્ w // +virma
વ (_ w
વ vV
વ (B v
_) વ wV
_) વ (B w
_) વ (્ v // +virma

.group શ
SV
શ (B S
SV
શ (B S

.group ષ
ષ s.V
ષ (B s.
ષ s.V
ષ (B s.

.group સ
sV
સ (B s
sV
સ (B s

.group હ
હ HV
હ (B H
હ HV
હ (B H


.group ઼
઼ t.'Vp,k'u:
A) ઼
C) ઼
઼ // nukta, modifies a consonant

.group ઽ // avagraha, lengthens a vowel ??
ઽ 'Vn'un'a:s'i:k
A) ઽ :
C) ઽ :
.group ઽ // avagraha, lengthens a vowel ??
ઽ :

.group ઁ
ઁ 'ard.'a,c'Vndr'a // candrabindu
C) ઁ n
A) ઁ n
ઁ n // candrabindu

.group ં
ં 'Vn'Uswa:r
A) ં n
C) ં n
ં (પ m
ં (ફ m
ં (બ m
ં (ભ m
ં (મ m

ં (ટ n.
ં (ઠ n.
ં (ડ n.
ં (ઢ n.
ં (ણ n.

ં (ચ n^
ં (છ n^
ં (જ n^
ં (ઝ n^
ં (ઞ n^
ં (ય n^

ં (ક N
ં (ખ N
ં (ગ N
ં (ઘ N
ં (ઙ N

ં n // anusvara
ં (પ m
ં (ફ m
ં (બ m
ં (ભ m
ં (મ m

ં (ટ n.
ં (ઠ n.
ં (ડ n.
ં (ઢ n.
ં (ણ n.

ં (ચ n^
ં (છ n^
ં (જ n^
ં (ઝ n^
ં (ઞ n^
ં (ય n^

ં (ક N
ં (ખ N
ં (ગ N
ં (ઘ N
ં (ઙ N

.group ઃ
ઃ g'ur'u,v'ir'a:m
A) ઃ H // visarga
C) ઃ H // visarga
ઁ) ઃ H
ં) ઃ H
ઃ H // visarga

.group ્ // virama
્ k#'od.o
C) ્
.group ્ // virama

// Extra consonants

.group ક઼ // qa
ક઼ qV

.group ખ઼ // khha
ખ઼ xV

.group ગ઼ // ghha
ગ઼ QV

.group જ઼ // za
જ઼ zV

.group ફ઼ // fa
ફ઼ fV

.group ૠ // rr
ૠ V-rr

.group ૡ // ll
ૡ l-: // long syllabic l


// If we find a Latin letter a-z, then translate as English
// (This is now done automatically by the eSpeak program)

.group o
o _^_EN
D__) of (__D    me




.group
$ dOlV
% pVsEnt

.group ૠ // rr
ૠ V-rr

.group ૡ // ll
ૡ l-: // long syllabic l

.group %
% p'Vrs'ent.
0) % t.'Vkk'a:
1) % t.'Vkk'a:
2) % t.'Vkk'a:
3) % t.'Vkk'a:
4) % t.'Vkk'a:
5) % t.'Vkk'a:
6) % t.'Vkk'a:
7) % t.'Vkk'a:
8) % t.'Vkk'a:
9) % t.'Vkk'a:

+ 1
- 0
dictsource/hi_rules View File

@@ -392,6 +392,7 @@
_) व (B w
_) व (् v // +virma
व (_ w
्) व (_ w@

.group श
श SV

+ 1297
- 233
dictsource/it_list
File diff suppressed because it is too large
View File


+ 210
- 307
dictsource/it_listx
File diff suppressed because it is too large
View File


+ 85
- 35
dictsource/it_rules View File

@@ -1,6 +1,6 @@
// translation rules
// Italian translation rules
// This file is UTF-8 encoded
// Last update: 2013-11-01 Chris, Christian Leo M, <[email protected]>
// letter groups
// A any vowel
// C any consonant
@@ -9,27 +9,34 @@
.L01 a à o ò ó u ù
.L02 e é è
.L03 b d g l m n r v // 's' is [z] before these
.L04 mi ti gli lo la le si ci vi li ne melo telo selo celo velo mela tela sela cela vela meli teli seli celi veli mele tele sele cele vele mene tene sene cene vene glielo gliela glieli gliele gliene

// Hours and minutes
.L16 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
.L17 0 1 2 3 4 5


.group a
a a
ai (K aI
ao (_N aU
au a%u

@C) a (_S1q a // lookup it_list without suffix
@i) a (_S1q a // lookup it_list without suffix

@) a (cA_ =a
@) a (che_ =a
a (istA_ a
a (ismo_ a
a (ismo_ 'a
@) a (bile_ 'a
@) a (ggine_ 'a

_) ae (r aI
_) ae (r aE
// @) a (no_ =a //ByFilo, this seems to make it_listx longer
@) avano (_S5 'avano
a (tterA_ 'a
_) all' (P4t all
_) anch' (P5t ank
@) amo (L04_ 'amo

.group à
à ''a
@@ -44,6 +51,8 @@
.group c
c k
cc k:
ck k:
cqu k:w2
c (' tS
c (Y tS
cc (Y tS:
@@ -58,9 +67,15 @@
dd d:
n) dere =deRe

_) dall' (P5t dall
_) dell' (P5t dell
decider (L04 detS'ide@-*

.group e
e e
ei Ej (K
ei (K Ej
r) ei (_ 'ei
@C) e (_ e
@C) e (_S1q e // lookup it_list without suffix
@Ar) e (_ e

@@ -110,10 +125,13 @@
e (vo_ E
@) e (volA_ 'e
e (zA E
C) ender (L04_ 'ende@-*
C) erder (L04_ 'E@-*de@-*
esser (L04_ 'es:eR

.group f
f f
ff f:
@A) f (ilo_ =f
A) f (ero_ =f
@@ -134,6 +152,8 @@
gli (A l^
_) gl gl
gn n^
@) gn (A_ n^;
a) gn (A_ n^:
gu (A gw

@@ -149,6 +169,7 @@
r) i (A %i
_C) i (a i
_C) i (à i
_C) ie (_ 'ie
i (o i
i (ò i
i (ó i
@@ -156,11 +177,14 @@
@) ià (_ i'a
X) ia (_ 'ia
af) ia (_ 'ia
af) ie (_ 'ie
fon) ia (_ 'ia
scop) ia (_ 'ia
er) ia (_ 'ia
er) ie (_ 'ie
gor) ia (_ 'ia
metr) ia (_ 'ia
metr) ie (_ 'ie
t) ia (_ 'ia
@) io (_S1q =i%o
a) i (+ j
@@ -198,17 +222,18 @@
@) i (mo_ =i
inas (_ 'inas
i (ne_ =i
@) issima(_S6 'issima
@) issime(_S6 'issime
@) issimi(_S6 'issimi
@) issimo(_S6 'issimo
@) issero(_S6 'issero
@) issim (A_ 'issim
@) issero(_S6q 'issero
p) i (te_ =i
@) iono (_ =iono
issano (_ 'is:ano

.group j
j j

j dZ
j (j
_) juan _^_ES
.group k
k k
kk k:
@@ -217,18 +242,24 @@
l l
ll (C l_
ll (_ l
_) l' (P2t l
A) l (bA l:


.group m
m m
A) mi (a_ m'i
_) m' (P2t m
metter (L04_ m'ette@-*

.group n
n n
n (g N
n (gY n
n (k N
_) nell' (P5t nell
ndo (L04_ =ndo // for pronominal verbs

.group o
o o
oi O%I
@@ -239,15 +270,11 @@
o (CACA_ O
o (Cr O
o (CC_ O


@C) o (_S1q o // lookup it_list without suffix
@i) o (_S1q o // lookup it_list without suffix

i) o O
i) o (ne o
i) o (so_ o

m) o (bile O
o (ca_ O
o (co_ O
@@ -281,7 +308,8 @@
dr) o (mo_ =o
o (ni O
o (ni_ o
o (no_ O
@) o (no_ =O
u) o (no_ 'o
@) o (nomo_ 'O
@) o (nzolo_ 'o
o (o O
@@ -297,8 +325,8 @@
o (stracA_ 'O
o (ttol O
o (zA O
osano (_ 'ozano

.group p
p p
pp p:
@@ -307,16 +335,20 @@
@m) p (ere_ =p

.group q
q kw2
q k
qu kw2
_) quell' (P6t kw2Ell
_) quest' (P6t kw2est

.group r
C) r @-*
r @-*
r (_ @-*
_) r @-*
rr R*
A) r (A R
@) r (L04_ =@-* // for Italian pronominal verbs and reflexive verbs

.group s
s s
_) s s
@@ -341,18 +373,26 @@
sch (Y sk
sh (K S // foreign words
K) sh S // foreign words
A) sh (A S
@) sia z'ia
@C) sia s'ia
@) sià zi'a
@) s (_S1 s
@) s (_S1 s
_) sull' (P5t sull
scriver (L04_ sk@-*'iv%E@-*

.group t
t t
tt t:
@a) tria (_ t@-*'ia
@a) trie (_ t@-*'ie
@) tt (ano_ =t:
a) ttoria (_ t:oR'ia
a) ttorie (_ t:oR'Ie

.group u
u u
u (A w2
_) u (A w2
Kr) u (A u
Kl) u (A u

@@ -360,10 +400,12 @@
@) u (colo_ 'u
u (ito_ 'u
@) u (lA_ =u

_) un' (P3t un
@@) u (A_ =u
.group v
v v
vv v:

.group w
w w2

@@ -378,13 +420,19 @@
.group z
z ts
A) zz ts:
A) z (A ts:
A) z (A ts
_) z (AC |dz|
_) z (i dz
_) z (ì dz
z (L01A dz

@) zz (ano_ =ts:
ziono (_ tsi'Ono
.group

gn n^
ñ n^
_L16_) : (_L17D_ ||%E_|| // Say time

è ''E
èi (K ''Ej

@@ -412,3 +460,5 @@
C_) - (_D _

§ setsi'one

+ 4
- 1
dictsource/pt_list View File

@@ -861,6 +861,7 @@ dissabores $alt2
dobro $alt2
dobro $alt $verb
doce $alt2
dogma $alt
dores $alt2
dorminhoco $alt2
dorminhocos $alt
@@ -914,6 +915,7 @@ estrogonofe $alt
eta $alt2
europa $alt
europeia $alt
?2 ex es
exagero $alt $verb
exorto $alt
explore $alt
@@ -1056,6 +1058,7 @@ panfleto $alt2
pangeia $alt
pantera $alt
papoco $alt2 $noun
paradoxo $alt
parede $alt2
pateta $alt
peba $alt
@@ -1304,7 +1307,7 @@ python p'aIT&~N
right r'aIt
?1 sapi s,ap'i
?1 scanner sk'En&r
sky sk'ay
sky sk'aI
shake S'eIk
?1 shift S'ift
?1 scroll sk:r'ol

+ 1
- 0
dictsource/ta_list View File

@@ -478,6 +478,7 @@ tamil தமிழ் $text
// initial ச as [tS]
சீ $alt
சே $alt
சே s'e: $hasdot
சீசீ tSi:tSi:
சீச்சீ $alt
சிட்டாய் $alt

+ 123
- 71
dictsource/ta_rules View File

@@ -190,6 +190,7 @@
_) க (திகலங் gV
_) க (திக் gV
_) க (திதா gV
_) க (தின gV
_) க (திமோட்ச gV
_) க (திய gV
_) க (தியில் gV
@@ -265,6 +266,7 @@
_) க (ானம g
_) க (ானவித்தை g
_) க (ானா g
_) க (ாப்ரியல g
_) க (ாயத்திரி g
_) காரண்ட ga:rVn.t.V#
க (ாரன k
@@ -273,6 +275,11 @@
_) க (ால்ஃப் g
_) கால்ப் ga:lf
_) க (ிஃப்ட g
_) க (ிடாரிட g
_) க (ிடாரின g
_) க (ிடாரில g
_) க (ிடாரை g
_) க (ிடார் g
_) க (ிடுகிடு g
_) க (ிண்ணென்ற g
_) க (ின்னஸ g
@@ -380,6 +387,7 @@ _மன்மதக்) க (ுகை g
_) க (ுஜால g
_) க (ுடியாத்த g
_) க (ுடுகுடு g
_) க (ுட்கா g
_) க (ுணக் g
_) க (ுணங் g
_) க (ுணசாலி g
@@ -441,6 +449,7 @@ _மன்மதக்) க (ுகை g
_) க (ுருக்குல g
_) க (ுருசாமி g
_) க (ுருஜி g
_) க (ுருதாஸ g
_) க (ுருதேவ g
_) க (ுருத்வார g
_) க (ுருநா g
@@ -456,6 +465,7 @@ _மன்மதக்) க (ுகை g
_) க (ுருப்பெயர g
_) க (ுருப்யோ g
_) க (ுருமார g
_) குருமுக (ி gurumuk
_) க (ுருமூர்த்தி g
_) க (ுருரா g
_) க (ுருவடி g
@@ -505,6 +515,7 @@ _மன்மதக்) க (ுகை g
_) கெள (ரி gaU
_) க (ெஸ்ட g
_) க (ேட்டண்டை g
_) க (ேட்டில g
_) க (ேட்டிலிருந்த g
_) க (ேட்டுகள g
_) க (ேட்டுக்கருக g
@@ -512,6 +523,7 @@ _மன்மதக்) க (ுகை g
_) க (ேட்டைக் g
_) க (ேட்டைத் g
_) க (ேட்டைப் g
_) கேட் (ல ge:t.
_) க (ேப்ரியல g
_) க (ேமை g
_) க (ேம்ஸ g
@@ -530,6 +542,7 @@ _மன்மதக்) க (ுகை g
_) கோக (ில go:k
_) க (ோகுல g
_) க (ோசாலை g
_) க (ோசுவாமி g
_) கோட்ச (ே go:d.s
_) க (ோட்டு_வாத்திய g
_) க (ோண்டு g
@@ -574,15 +587,18 @@ _மன்மதக்) க (ுகை g
_) க (ோரப்பல் g
_) க (ோரப்போர g
_) க (ோரம g
_) கோர்க (ாலாந்த go:rk
_) க (ோர்க்காலாந்த g
_) க (ோலிக g
_) க (ோலிய g
_) க (ோல்கொண்டா g
_) க (ோல்ட்_L30 g
_) க (ோல்மால g
_) கோவர்த்த go:vVrddV#
_) க (ோவா g
_) க (ோவிந்த g
_) க (ோஷ g
_) க (ோஸ்வாமி g
_) கௌசிக kaUsikV#
_) க (ௌட g
_) கௌத gaUtV#
@@ -603,29 +619,15 @@ _மன்மதக்) க (ுகை g
_) க் (ளாஸ்_ g
_) க்வ (A kw
_) க் (வாலியர g
_) க (ுட்கா g
_) கோவர்த்த go:vVrddV#
_) கோர்க (ாலாந்த go:rk
_) குருமுக (ி gurumuk
_) க (ோஸ்வாமி g
_) க (ோசுவாமி g
_) க (ிடார் g
_) க (ிடாரை g
_) க (ிடாரில g
_) க (ிடாரின g
_) க (ிடாரிட g
//endsort

//sort
_முட்) க (டிகார gV
_தமிழ்) க (ூற k
_து) க (ாராம k
_நாகர்) க (ோவில k
_கோபி) க kV#
_ஸ்டா) க kV#
_ஜமாய்) க kV#
_வெங்) கட kVt.V#
அலை) க (டல kV
_முட்) க (டிகார gV
சமையல்) க (ட் kV
உச்ச) க (ட்ட kV
உள்) க (ட்ட kV
@@ -741,6 +743,7 @@ _வளை) க (ாப்ப k
_தையல்) க (ாரர k
_வண்டி) க (ாரர k
அங்) க (ாரா k
_து) க (ாராம k
_பூ) க (ாரி k
_பால்) க (ாரி k
_கடை) க (ாரி k
@@ -776,7 +779,6 @@ _தொன்ம) க (ால k
அப) க (ீர்த்தி k
க (ீழே_ k
க (ீழ்_ k
_பல்) க (ு k
_கற்) க (ுகை g
மலைக்) க (ுகை g
_பால்) க (ுட k
@@ -835,6 +837,7 @@ _மன்னர்) க (ுல k
_நினைவு) க (ூர k
_மு) க (ூர்த H
_குறை) க (ூற k
_தமிழ்) க (ூற k
அறை) க (ூவ k
_மார்) கெட் ket.
_ஓ) க (ே k
@@ -871,6 +874,7 @@ _ஸ்ரீஹரி) க (ோட்ட k
வீண்) க (ோப k
_முன்) க (ோப k
_நாகர்) க (ோயில k
_நாகர்) க (ோவில k
_ட) க் k
_மை) க் k
_ஷா) க் (_ k
@@ -1027,6 +1031,7 @@ _துப்பாக்கி) க்க (ுண்ட gg
_) ச (ண்டாள tSV
_) ச (ண்டி_ tSV
_) ச (ண்டிகர tSV
_) ச (ண்டிப்பூர tSV
ச (ண்பக s.V
ச (ண்மு s.V
_) ச (துர் tSV
@@ -1135,6 +1140,7 @@ _விருந்துப) ச (ார tS
_வி) ச (ாரம tS
_சிவா) ச (ாரி tS
_சுகா) ச (ாரி tS
_பரமா) ச (ாரி tS
_ரங்கா) ச (ாரி tS
_வரதா) ச (ாரி tS
_வேதா) ச (ாரி tS
@@ -1144,6 +1150,7 @@ _கோவிந்தா) ச (ாரி tS
_சங்கரா) ச (ாரி tS
_தேசிகா) ச (ாரி tS
_பட்டா) ச (ாரி tS
_பாஸ்கரா) ச (ாரி tS
_பிரம்ம) ச (ாரி tS
_மத்வா) ச (ாரி tS
அனந்தா) ச (ாரி tS
@@ -1219,6 +1226,7 @@ _மத்வா) ச (ாரி tS
இந்தோனே) ச (ிய s.
_) ச (ியர்ஸ tS
_) சி (யாம s.
_) சிரத்த(ையோட srVdd
_பக்தி_) சிரத் (தை srVd
_) சிரத்த (ைL27 srVdd
சி (ரம s
@@ -1268,6 +1276,7 @@ L28ரங்க) ச (ீப z
_ஜலகண்டே) சு (வ s
அர்த்தனாரீ) சு (வ s
_) சு (வமேத s
அ) சு (வமேத s
_சனீ) சு (வர s
ராஜே) சு (வர s
_மங்களே) சு (வர s
@@ -1279,6 +1288,7 @@ _மங்களே) சு (வர s
_) சுவர்க்க (ோழி suvVrkk
_) சு (வர்ண s
_) சு (வாச s
_) சு (வாதி s
சு (வாதீன s
சு (வாமி s
_) சுவாரசி (ய sva:rVs
@@ -1290,11 +1300,13 @@ _மங்களே) சு (வர s
_வெனி) ச (ுவேல z
_) ச (ூயிங் tS
_) ச (ூரண tS
_) ச (ூரிச் z
_) செக் (_ tSek
_) ச (ெக்கிங் tS
_) ச (ெக்கோL04 tS
_) ச (ெங்கிஸ tS
_) செச (னியா tSetSV
_) செச (ன்ய tSetSV
_) செச (ன்யா tSetSV
_) செச் (னியா tSetS
_கோபி) ச (ெட்டி tS
@@ -1339,6 +1351,7 @@ _வெனி) ச (ுவேல z
_) ச (ேட்டர்ஜி tS
_குரு) ச (ேத்திர s.
_) ச (ேனல tS
_) ச (ேம்பர tS
_) ச (ேரி tS
_தல) ச (ேரி tS
_) ச (ேர்கள tS
@@ -1353,10 +1366,13 @@ _வெனி) ச (ுவேல z
_) ச (ைனா_நேவால s
_) ச (ைனாவ tS
_) ச (ைனீஸ tS
அ) சோக (் s.o:k
_) ச (ோட்டா tS
ஓ) ச (ோன z
அரி) ச (ோன z
_) ச (ோன்ன tS
_மி) ச (ோரம z
_மி) ச (ோராம z
_) ச (ோவு tS
_) ச (ோவெ tS
_) ச (ௌக்கிதார tS
@@ -1368,12 +1384,6 @@ _வெனி) ச (ுவேல z
_) ச (ௌஹான tS
_ந) ச் (னு tS
_கா) ச்மூச tSmu:tSV#
அ) சு (வமேத s
அ) சோக (் s.o:k
_பாஸ்கரா) ச (ாரி tS
_பரமா) ச (ாரி tS
_மி) ச (ோராம z
_) சு (வாதி s
//endsort


@@ -1386,6 +1396,7 @@ _பாஸ்கரா) ச (ாரி tS
_ட) ஜ (ன zV
_டின்) ஜ (ர tSV
_) ஜ (ர்தாரி zV
அ) ஜ (ர்பைஜான zV
_க) ஜ (லா zV
_க) ஜ (லி zV
_க) ஜ (லை zV
@@ -1398,6 +1409,7 @@ _பாஸ்கரா) ச (ாரி tS
_ப) ஜ (ார z
அ) ஜ (ாருதீன z
_நா) ஜ (ி z
_) ஜ (ிந்தாபாத z
_) ஜிப்(_ zip
_) ஜ (ிப்ப z
_) ஜ (ிப்பா dZ
@@ -1410,6 +1422,7 @@ _பாஸ்கரா) ச (ாரி tS
_) ஜ (ுல்ஃபி z
_) ஜ (ுல்பி z
_) ஜு (வால dZ
_) ஜ (ூரிச் z
_) ஜ (ூலு z
_) ஜ (ெனித் z
_) ஜ (ெராக்ஸ z
@@ -1582,7 +1595,10 @@ _செண்) டிமெண்ட t.imen.t.V#
_) டி (ரான்ஸ்மீட்டர t.
_) டி (ரான்ஸ்லே t.
_) டி (ரான்ஸ்வேல t.
_) டிராப (ி_ t.ra:f
_) டிராப (ிகள t.ra:f
_) டிராபிக் t.ra:fik
_) டிராப (ிய t.ra:f
_) டிராப் t.ra:p
_) டி (ராமா d.
_) டி (ராமில t.
@@ -1620,6 +1636,7 @@ _செண்) டிமெண்ட t.imen.t.V#
_) டி (ரை_செஞ்ச t.
_) டி (ரை_செய் t.
_) டி (ரை_பண் t.
_ஸ்) டி (ரைக் t.
_) டி (ரைலர t.
_) டி (ரைவ d.
கண்) டி (ரோல t.
@@ -1649,6 +1666,7 @@ _ப்ளஸ்_) டூ t.u:
_) டூத் t.u:t
_கார்) ட (ூன t.
_) ட (ூர t.
_) ட (ூல t.
இண்) ட (ெ t.
_) டெக (்சாஸ t.ek
_) டெக் (னாலஜி t.ek
@@ -1692,6 +1710,7 @@ _லான்_) ட (ென்னிஸ t.
_) ட (ைல்ஸ t.
_) டொக் t.ok
_) ட (ொபாகோ t.
_) டொரண்ட (ோ t.orVn.t.
_) ட (ோக்கன t.
_) ட (ோக்கியோ t.
_) ட (ோட்டல t.
@@ -1752,6 +1771,7 @@ _ஹாலிவு) ட்ட d.d.V#
_) ட் (ரான்ஸ்மீட்டர t.
_) ட் (ரான்ஸ்லே t.
_) ட் (ரான்ஸ்வேல t.
_) ட்ராப (ி t.ra:f
_) ட்ராபிக் t.ra:fik
_) ட் (ராமில t.
_) ட் (ராமை t.
@@ -1808,8 +1828,6 @@ _நடுரோ) ட் (ல t.
அ) ட்லாண்ட t.la:n.t.V# // atlant
_) ட்விங்க (ிள t.wiNk
_) ட்வ (ிட்டர t.w
_ஸ்) டி (ரைக் t.
_) ட (ூல t.
//endsort


@@ -1971,7 +1989,8 @@ _நடுரோ) ட் (ல t.
_) த (ர்ம dV
_) த (லித் dV
_) தலீத் dVli:t
_அகாலி_) த (ள dV
_அகாலி_) த (ள dV // l. or l ?
_ஜனதா_) த (ள dV
_) த (ளவாய dV
_) த (வக்கால dV
_) த (வக்கோல dV
@@ -2017,6 +2036,8 @@ _அகாலி_) த (ள dV
_) த (ாவணி d
_) த (ாவாக்க d
_) த (ாவாவ d
_) த (ாவீத d
_) த (ாவூத d
_) த (ாவேய d
_) த (ாஸ d
_) த (ிகம்பர d
@@ -2150,6 +2171,8 @@ _) தீர்க்க (_சுமங்கலி di:rggV
_) த (ுரதிஷ்ட d
_) துராக்க (ிர dra:gg
_) த (ுராசை d
_) த (ுராத்மா d
_) த (ுரியானந்த d
_) த (ுரியோதனன d
_) த (ுரியோதனா d
_) த (ுருவங் d
@@ -2230,13 +2253,9 @@ _) தீர்க்க (_சுமங்கலி di:rggV
_) த (ோஹா d
_) தௌலதாப (ாத daUlVd.a:b
_) த (்ராட்சை d
_) த (ாவீத d
_) த (ுரியானந்த d
_) த (ாவூத d
//endsort

//sort
_அர்) த்த (_L32 ddV#
_நிசப்) த dV#
அனந்) த tV#
_வசந்) த tV#
@@ -2274,6 +2293,7 @@ _மனோ) த (த்துவ tV
_சமந்) த (ா t
_சுஜி) த (ா t
_சுனி) த (ா t
_ஜன) த (ா t
_நமி) த (ா t
_மம்) த (ா t
_ஹரி) த (ா t
@@ -2312,6 +2332,7 @@ _துஷ்யந்) த (ி t
_பார்வ) த (ி t
_பிரசார்_பார) த (ி t
_புஷ்பவ) த (ி t
_வாஸந்) த (ி t
பிரபாவ) த (ி t
_ஜோ) திக (ா tik
_கார்) திக் tik
@@ -2327,6 +2348,7 @@ _புஷ்பவ) த (ி t
_பெருந்) த (ுறை d
ஆழ்) த (ுளை t
த (ூக்க t // in word
ஏ) த (ென் t
வீண்) த (ேவை t
_நி) த (ேஷ t
_நிவேதி) த (ை t
@@ -2345,6 +2367,7 @@ _சோவிய) த் t
_சிரார்) த்த ddV#
_ஸ்ரார்) த்த ddV#
அர்) த்த (L09ார ddV
_அர்) த்த (_L32 ddV#
L03) த்த (டவை ddV
_முரட்டு) த்த (டியன ddV
_முரட்டு) த்த (டியர ddV
@@ -2401,7 +2424,7 @@ L03வ்வு) த்த (ியோக dd
_ரௌ) த்த (ிர dd
_சூ) த்த (ிரச் dd
_சூ) த்த (ிரச்சி dd
_சூ) த்த (ிரத் dd
_சூ) த்த (ிரத்_ dd
_சூ) த்த (ிரன dd
_சூ) த்த (ிரப் dd
_சூ) த்த (ிரரி dd
@@ -2461,9 +2484,12 @@ _வில்வி) த்த (ை dd
_மி) த் (ர t
_மூ) த் (ர t
_காமசூ) த் (ர t
_சூ) த் (ரங்கள t
_ப) த் (ரங்கள t
_சூ) த் (ரத்த t
_ப) த் (ரத்த t
ச) த்ரபதி trVpVti
_சூ) த் (ரம t
_ப) த் (ரம t
_சி) த்ரலேக (ா trVle:k
சி) த (்ரா t
@@ -2472,6 +2498,7 @@ _சி) த்ரலேக (ா trVle:k
பவி) த (்ரா t
_காய) த் (ரி t
_சாவி) த் (ரி t
_யா) த் (ரீக t
ச) த (்ரு t
த) த (்ரூப t
பா) த (்ரூம t
@@ -2570,6 +2597,8 @@ _சி) த்ரலேக (ா trVle:k
_) ப (ட்டன_ pV
_) ப (ட்டனப்பாக்க pV
_) ப (ட்டாசாரி bV
_) ப (ட்டாச்சாரி bV
_) ப (ண்டாரி bV
_) ப (தில bV
_) பத்த (ிரகாளி bVdd
_) பத்த (ிரபாகு bVdd
@@ -2594,6 +2623,7 @@ _சொந்த_) ப (ந்த bV
_L14_) ப (ந்தம pV
_) ப (ந்தாக்கள bV
_) ப (ந்தாவ bV
_ஜுகல்_) ப (ந்தி bV
_) ப (ந்துக்கள bV
_) பந்த (ுலு bVnt
_) ப (ந்துவ bV
@@ -2685,10 +2715,12 @@ _டீயும்_) ப (ன்னும்_ bV
_) ப (லப்படு bV
_) ப (லப்பத்த bV
_) ப (லப்பம bV
_) ப (லப்பரீக்ஷை bV
_) ப (லப்பரீட்சை bV
_) பலப்பி (ரயோ bVlVpp
_) ப (லமணைத்த bV
_) ப (லமற்ற bV
_) ப (லமளி bV
_) ப (லமாகC் bV
_) ப (லமாகவ bV
_) ப (லமாகவே bV
@@ -2726,6 +2758,7 @@ _டீயும்_) ப (ன்னும்_ bV
_) ப (லிஜா bV
_) ப (லிபீட bV
_) ப (லிய bV
_) ப (லிஷ்ட bV
_) ப (லீஜா bV
_) பலுச (ிஸ்தான bVlUtS
_) ப (லூன bV
@@ -2747,6 +2780,7 @@ _டீயும்_) ப (ன்னும்_ bV
_) ப (வுலிங் bV
_) ப (வேரிய bV
_) ப (வ்ய bV
_) ப (வ்விய bV
_) ப (ஷீர bV
_) ப (ஸ bV
_) ப (ஹதூர bV
@@ -2800,6 +2834,8 @@ _டெட்_) ப (ாடி b
_) ப (ாட்டில்கள b
_) பாட்மிண்ட (ன ba:d.min.t.V
_) ப (ாணங் b
_) ப (ாணத்த b
_) ப (ாணம b
_) ப (ாணமு b
_) ப (ாணர b
_) ப (ாணாசுர b
@@ -2860,6 +2896,7 @@ _டெட்_) ப (ாடி b
_) ப (ாதிப்பை b
_) ப (ாதிப்போ b
_) பாத (ிமா fa:t
_) ப (ாதியாத b
_) ப (ாதுஷா b
_) ப (ாத்திமா f
_) பாத்த (ியதை ba:dd
@@ -2880,6 +2917,7 @@ _டெட்_) ப (ாடி b
_) பாப (ாசாஹேப் ba:b
_) பாப (ாவ ba:b
_) ப (ாபிலோன b
_) பாப (ுஜி ba:p
_) ப (ாபுவ b
_டைம்_) ப (ாம b
_) ப (ாமாவ b
@@ -2995,6 +3033,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ாஸ்கி b
_) ப (ாஸ்கெட் b
_) ப (ாஸ்டன b
_) ப (ாஸ்பேட் f
_) ப (ாஸ்மதி b
_) ப (ாஹியான f
_) ப (ாஹுலேயன b
@@ -3002,6 +3041,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ி_._பி_._சி b // b.b.c
_) ப (ிகர f
_) பிக (ான bik
_) பிக (ார biH
_) ப (ிகில b
_) ப (ிகுவ b
_) ப (ிக்கு b
@@ -3009,9 +3049,13 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ிக்ஷூ b
_) ப (ிங்கர்_ f
_) ப (ிசிக்ஸ f
_) ப (ிசினச b
_) ப (ிசினஸ b
_) ப (ிசினெச b
_) ப (ிசினெஸ b
_) ப (ிசிய b
_) ப (ிஜி_ f
_) ப (ிஜிய f
_) ப (ிஜிலி b
_) ப (ிடில f
_) ப (ிட்சு b
@@ -3075,6 +3119,8 @@ _விளையாடு_) ப (ாம்பே p
_) பி (ரதேச p
_) பி (ரதேஷ p
_) பி (ரதோஷ p
_) பி (ரத்தியக்ஷ p
_) பி (ரத்தியட்ச p
_) பி (ரத்தியேக p
_) பிரத் (யக்ஷ prVt
_) பிரத் (யட்ச prVt
@@ -3100,6 +3146,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ிரம்மை b
_) பி (ரம்மை b
_) பி (ரயத்தன p
_) பி (ரயர்த்தன p
_) பி (ரயா p
_) பி (ரயோக p
_) பி (ரயோசன p
@@ -3109,11 +3156,14 @@ _விளையாடு_) ப (ாம்பே p
_) பி (ரவகி p
_) பி (ரவாக p
_) பி (ரவாள p
_) பி (ரவாஹ p
_) பி (ரவீண p
_) பி (ரவீன p
_) பி (ரவுச b
_) பி (ரவுன b
_) பி (ரவேச p
_) பி (ரவேசி p
_) பி (ரஷர p
_) பி (ரஷ் b
_) பி (ரஷ்ட p
_) பி (ரஸ p
@@ -3176,6 +3226,7 @@ _விளையாடு_) ப (ாம்பே p
_) பி (ரிஜேஷ b
_) பி (ரிட b
_) பிரிட (ோரிய prit.
_) பி (ரிட்ஜ f
_) பி (ரிட்டோரிய p
_) பிரிண்ட prin.t.V#
_) பிரிண்ட (ர prin.t.V
@@ -3220,6 +3271,7 @@ _விளையாடு_) ப (ாம்பே p
_) பி (ரெய்ல b
_) பி (ரெஷ் f
_) பி (ரெஸ p
_) பி (ரெஸ்ட b
_) பி (ரே p
_) பி (ரேக்க b
_) பிரேச (ில bre:z
@@ -3245,6 +3297,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ில்லி b
_) ப (ில்லு b
_) ப (ில்லை b
_) பி (ளட் b
_) பி (ளவர f
_) பி (ளவுஸ b
_) பி (ளஸ p
@@ -3269,6 +3322,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ிஸ்மில்லா b
_) ப (ிஸ்லரி b
_) ப (ிஸ்வாஸ b
_) ப (ிஹார b
_) ப (ீகார b
_) ப (ீச்சில b
_) ப (ீச்சுக்க b
@@ -3326,6 +3380,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) புத்த(K buddV
_) புத் (தJ_புத+ put
_) புத்த (க puttV
_) புத்த (கய buddV
_) புத்த (க் buddV
_) புத்த (ம்_புதிய puttV
_) புத்த (ம்_புது puttV
@@ -3335,6 +3390,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ுத்திக் b
_) ப (ுத்திசாலி b
_) ப (ுத்திய b
_) புத்த (ியக்க putt
_) புரஃப (L04ர profV
_) புரப (L04ர profV
_) புரபொ (சர profV
@@ -3361,6 +3417,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ுல்லாக்க b
_) புல்லெட் bullet.
_) பு (ளுடோனிய p
_) புளூடூத் bl.u:t.u:T
_) பு (ளூட்டோ p
_) பு (ளூஸ b
_) பு (ளோரிடா f
@@ -3370,6 +3427,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ூகம்ப b
_) ப (ூகோல b
_) ப (ூகோள b
_) ப (ூசுக்த b
_) ப (ூச்சாண்டி b
_) பூட (ான bu:t.
_) ப (ூட்ஸ b
@@ -3413,6 +3471,8 @@ _பெனசீர்_) ப (ுட்டோ b
_) பெஞ்ச ben^tSV#
_) ப (ெஞ்சமின b
_) பெஞ்ச (மின ben^dZV
_) ப (ெடரல f
_) ப (ெடரே f
_) ப (ெட்டர b
_) பெட்ட (ுக்கு bed.d.
_) ப (ெட்ரூம b
@@ -3473,6 +3533,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ேரலை p
_) ப (ேரிக்கா b
_) ப (ேலன்ஸ b
_) ப (ேலூர b
_) ப (ேல் b
_) ப (ேஷன f
_) ப (ேஷன்ட p
@@ -3534,6 +3595,8 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ோண்டி b
_) ப (ோதகன b
_) ப (ோதகர b
_) ப (ோதங்கள b
_) ப (ோதத் b
_) ப (ோதன b
_) ப (ோதம b
_) ப (ோதிக்க b
@@ -3593,10 +3656,13 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ௌளிங் b
_) ப (ௌஷ b
சு) ப்பி (ரமணி b
L03) ப்ப (ூதகண bb
L03) ப்ப (ூதங்கள bb
_) ப் (ரசல்ஸ b
_) ப்ரபொ (சர profV
_) ப் (ரம்ம b
_) ப் (ரவுச b
_) ப் (ரவுன b
_) ப் (ரஷ் b
_) ப் (ரஸல்ஸ b
_) ப் (ராங் f
@@ -3606,6 +3672,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப் (ரான்சிஸ்க f
_) ப் (ரான்ஸ f
_) ப் (ராவ b
_) ப் (ரிட்ஜ f
_) ப்ரிஸ்ப (ேன brisb
_) ப் (ருனாய b
_) ப் (ரெஞ்ச் f
@@ -3628,51 +3695,13 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப்ளாப் fl.a:p
_) ப் (ளாஷ f
_) ப் (ளாஸ்க f
_) ப்ளூடூத் bl.u:t.u:T
_) ப் (ளூஸ b
_) ப் (ளோரிடா f
_) ப் (ளௌஸ b
_) புத்த (கய buddV
_) பாப (ுஜி ba:p
_) பிக (ார biH
_) ப (ிஹார b
_) ப (வ்விய bV
_) பி (ளட் b
L03) ப்ப (ூதகண bb
L03) ப்ப (ூதங்கள bb
_) புளூடூத் bl.u:t.u:T
_) ப்ளூடூத் bl.u:t.u:T
_) பி (ரவுன b
_) ப் (ரவுன b
_) ப (ட்டாச்சாரி bV
_) ப (ிசினச b
_) ப (ிசினெச b
_) ப (ூசுக்த b
_) ப (ேலூர b
_) பி (ரஷர p
_) பி (ரத்தியட்ச p
_) பி (ரத்தியக்ஷ p
_) ப (ோதத் b
_) ப (ோதங்கள b
_ஜுகல்_) ப (ந்தி bV
_) புத்த (ியக்க putt
_) ப (ாணம b
_) ப (ாணத்த b
//endsort

//sort
_சுக) ப (ோக_ b
_க) ப (ளீகர bV
_ஜா) ப (ர fV
_முரண்) ப (ாட p
_வழி) ப (ார் p
_வழி) ப (ோட p
_பழி) ப (ோட p
_துர்) ப்ப (ுத்தி bb
அவிர்) ப்ப (ாக bb
L03) ப்பி (ரேத pp
L03) ப்பி (ரதே pp
_துண்டு) ப்பி (ரசுர pp
_கை) ப்பி (ரசுர pp
_நீர்) ப pV#
_ப்ரூ) ப fV#
இடர்) ப pV#
@@ -3762,6 +3791,7 @@ _விரகதா) ப (+ bV#
திரௌ) ப (தி pV
பிரஜா) பத (ி pVt
மகுட) பதி pVti
_கமலா) ப (தி pV
அலோ) ப (தி pV
உத்திரா) ப (தி pV
பிரகஸ்) பதி pVti
@@ -3782,6 +3812,7 @@ _ராஷ்டிர) ப (தி pV
_க) ப (த் bV
அரா) பத் fVt
அல்) ப (த் pV
ராம) ப (த் bV
_கிலா) பத் fVt
_தா) ப (த்த bV
வீர) ப (த்தினி pV
@@ -3814,6 +3845,7 @@ _சொந்த) ப (ந்த bV
_ஊடு) ப (யிர pV
_நடை) ப (யிற்சி pV
கா) ப (ர bV
_ஜா) ப (ர fV
_ஜெனி) ப (ர fV
நாகா) ப (ரண bV
வீர) ப (ராக்கிரம pV
@@ -3847,6 +3879,7 @@ _முனிசி) ப (ல pV
_மணி) ப (ல்லவ pV
அனு) ப (ல்லவி pV
_க) ப (ளிகர bV
_க) ப (ளீகர bV
வேலைப்) ப (ளு bV
வட) ப (ழ pV
வீண்) ப (ழி pV
@@ -3896,6 +3929,7 @@ _வெளிப்) ப (ாக b
_வேறு) ப (ாட p
சமன்) ப (ாட p
முரன்) ப (ாட p
_முரண்) ப (ாட p
_க) ப (ாடபுர+ b
_விட்ட) ப (ாடாக p
ப (ாடில்லை p
@@ -3934,6 +3968,8 @@ _வெளிப்) ப (ாக b
அல்) ப (ாயு p
_டீ) ப (ாய் p
_சரி) ப (ார p
_குறி) ப (ார p
_வழி) ப (ார p
எதிர்) ப (ார p
_பிளாட்) ப (ார f
_யுக) ப (ாரதி b
@@ -4020,6 +4056,7 @@ _கன்னா) ப (ின்னா p
@) ப (ின்னால்_ p
_) ப (ிப்ரவரி f
_லெஸ்) ப (ியன b
_சோ) ப (ியா f
_மா) ப (ியா f
_கன்) பி (யுச f
_பெர்) பி (யூம f
@@ -4053,6 +4090,7 @@ L03ந்தப்) பி (ரளய p
பி (ராய p
L03ந்தப்) பி (ராய p
ஆ) ப (ிரிக்க f
_கேம்) பி (ரிட்ஜ b
_சிவ) பி (ரிய p
_சண்முக) பி (ரிய p
_லக்ஷ்மி) பி (ரிய p
@@ -4070,6 +4108,7 @@ _ஷண்முக) பி (ரிய p
ஈ) ப (ில f
_ரீ) ப (ில f
_ரை) ப (ில f
_க) ப (ிலவஸ்த p
_) பிலிப filipV#
_) பி (லெட்சர f
_சிம்) ப (ிள p
@@ -4108,6 +4147,7 @@ _தபாலா) ப (ீ f
இன்) ப (ுற b
_துன்) ப (ுற b
_நம்) ப (ுற b
_மாண்) ப (ுற b
ப (ுறK p
_பா) ப (ுலர p
_) பு (ளோரன்ஸ f
@@ -4184,6 +4224,7 @@ _விலை) ப (ோ p
_ஏக) ப (ோக b
ராஜ) ப (ோக b
ப (ோக_ p
_சுக) ப (ோக_ b
ப (ோகவில்லை_ p
ப (ோகின்ற p
ப (ோகிற p
@@ -4196,11 +4237,14 @@ _விலை) ப (ோ p
_கை) ப (ோட p
எடை) ப (ோட p
_தடை) ப (ோட p
_பழி) ப (ோட p
_மார்) ப (ோட b
_மை) ப (ோட p
_வழி) ப (ோட p
அசை) ப (ோட p
_சத்தம்) ப (ோட p
_திரை) ப (ோட p
_வலை) ப (ோட p
ப (ோதிலுமே_+ p
ப (ோதிலும்+ p
ஒம்) ப (ோது _ b
@@ -4225,6 +4269,7 @@ _விலை) ப (ோ p
ப (ோய் p
எம்) ப (ோரியல p
ஏர்) போர்ட po:rt.V#
ஆக்ஸ்) ப (ோர்ட f
கலி) ப (ோர்னிய f
ப (ோல_ p
ப (ோலக்_ p
@@ -4283,6 +4328,7 @@ _மைக்ரோசா) ப் (ட f
L03) ப்ப (ஸ bbV
_ட) ப்ப (ா bb
அடி) ப்ப (ாக bb
அவிர்) ப்ப (ாக bb
இறுதி) ப்ப (ாக bb
துர்) ப்ப (ாக்கிய bb
ஆர்) ப்ப (ாட்ட bb
@@ -4303,6 +4349,9 @@ _யாதவ) ப்பி (ரகாச pp
_வெளி) ப்பி (ரகார pp
அதிக) ப்பி (ரசங்க pp
L03) ப்பிரச (ார pprVtS
_கை) ப்பி (ரசுர pp
_துண்டு) ப்பி (ரசுர pp
L03) ப்பி (ரதே pp
_மலை) ப்பி (ரதேச pp
_வன) ப்பி (ரதேச pp
_காட்டு) ப்பி (ரதேச pp
@@ -4325,13 +4374,16 @@ _ஒL10ி) ப்பி (ரவாக pp
தேச) ப்பி (ரஷ்ட pp
_ஜாதி) ப்பி (ரஷ்ட pp
_வான) ப்பி (ரஸ்த pp
_கூட்டு) ப்பி (ரார்த்தனை pp
ஆ) ப்பி (ரிக்க f
தென்னா) ப்பி (ரிக்க fV
_கஜ) ப்ப (ிருஷ்ட bb
L03) ப்பி (ரேத pp
_ஹ) ப்ப (ிள bb
_க்ள) ப்ப (ுகள bb
உ) ப்ப (ுசத்த bb
உ) ப்ப (ுசம bb
_துர்) ப்ப (ுத்தி bb
_சந்தேக) ப்ப (ுத்தி bb
L03) ப்ப (ூதத் bb
L03) ப்ப (ூதம bb
@@ -4561,8 +4613,10 @@ _சந்தேக) ப்ப (ுத்தி bb
இ (ராணுவ
இ (ராதாகி
இ (ராதாவ
இ (ராத்_
இ (ராத்த
இ (ராப்_
இ (ராப்பகல
இ (ராப்பிச்சை
இ (ராப்பொழு
இ (ராம
@@ -4596,8 +4650,6 @@ _சந்தேக) ப்ப (ுத்தி bb
இலேக்க (ிய le:gg
இ (லேச
இ (லையோலா
இ (ராத்_
இ (ராப்பகல
//endsort

.group உ

+ 4
- 1
dictsource/te_rules View File

@@ -50,6 +50,9 @@
.group జ
జ Ja
జ (B J
జ్ఞ gna
జ్ఞ (B gn


.group ఝ
ఝ J#a
@@ -243,7 +246,7 @@

ూ u:

ృ r-
ృ ru

ౄ r-:


+ 536
- 314
dictsource/vi_rules
File diff suppressed because it is too large
View File


+ 3
- 3
docs/dictionary.html View File

@@ -268,18 +268,18 @@ Note, that matching characters in the &lt;pre&gt; part do not affect the syllabl
</ul>

eg.
<pre> @) ly (_$2 lI // "ly", at end of a word with at least one other
<pre> @) ly (_S2 lI // "ly", at end of a word with at least one other
// syllable, is a suffix pronounced [lI]. Remove
// it and retranslate the word.

_) un (@P2 ¬Vn // "un" at the start of a word is an unstressed
_) un (@P2 %Vn // "un" at the start of a word is an unstressed
// prefix pronounced [Vn]
_) un (i ju: // ... except in words starting "uni"
_) un (inP2 ,Vn // ... but it is for words starting "unin"
</pre>
S and P must be at the end of the &lt;post&gt; string.
<p>
S&lt;number&gt; may be followed by additonal letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be made for other languages.
S&lt;number&gt; may be followed by additional letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be made for other languages.

<ul><table>
<tbody>

+ 117
- 58
docs/speak_lib.h View File

@@ -1,7 +1,7 @@
#ifndef SPEAK_LIB_H
#define SPEAK_LIB_H
/***************************************************************************
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2012 by Jonathan Duddington *
* email: [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -28,7 +28,13 @@
#include <stdio.h>
#include <stddef.h>

#define ESPEAK_API_REVISION 6
#ifdef __WIN32__
#define ESPEAK_API __declspec(dllexport)
#else
#define ESPEAK_API
#endif

#define ESPEAK_API_REVISION 9
/*
Revision 2
Added parameter "options" to eSpeakInitialize()
@@ -44,6 +50,17 @@ Revision 5

Revision 6
Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL

Revision 7 24.Dec.2011
Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics.
Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names.

Revision 8 26.Apr.2013
Added function espeak_TextToPhonemes().

Revision 9 30.May.2013
Changed function espeak_TextToPhonemes().

*/
/********************/
/* Initialization */
@@ -78,11 +95,12 @@ typedef struct {
int sample; // sample id (internal use)
void* user_data; // pointer supplied by the calling program
union {
int number; // used for WORD and SENTENCE events. For PHONEME events this is the phoneme mnemonic.
int number; // used for WORD and SENTENCE events.
const char *name; // used for MARK and PLAY events. UTF8 string
char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes.
} id;
} espeak_EVENT;
/*
/*
When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called.


@@ -90,16 +108,16 @@ typedef struct {

In PLAYBACK mode, the callback function is called as soon as an event happens.

For example suppose that the following message is supplied to espeak_Synth:
For example suppose that the following message is supplied to espeak_Synth:
"hello, hello."


* Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function :

** Block 1:
<audio data> +
<audio data> +
List of events: SENTENCE + WORD + LIST_TERMINATED
** Block 2:
<audio data> +
List of events: WORD + END + LIST_TERMINATED
@@ -136,11 +154,11 @@ typedef enum {

typedef enum {
/* PLAYBACK mode: plays the audio data, supplies events to the calling program*/
AUDIO_OUTPUT_PLAYBACK,
AUDIO_OUTPUT_PLAYBACK,

/* RETRIEVAL mode: supplies audio data and events to the calling program */
AUDIO_OUTPUT_RETRIEVAL,
/* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */
AUDIO_OUTPUT_SYNCHRONOUS,

@@ -157,20 +175,26 @@ typedef enum {
EE_NOT_FOUND=2
} espeak_ERROR;

#define espeakINITIALIZE_PHONEME_EVENTS 0x0001
#define espeakINITIALIZE_PHONEME_IPA 0x0002
#define espeakINITIALIZE_DONT_EXIT 0x8000

#ifdef __cplusplus
extern "C"
#endif
int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options);
ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options);
/* Must be called before any synthesis functions are called.
output: the audio data can either be played by eSpeak or passed back by the SynthCallback function.

buflength: The length in mS of sound buffers passed to the SynthCallback function.
Value=0 gives a default of 200mS.
This paramater is only used for AUDIO_OUTPUT_RETRIEVAL and AUDIO_OUTPUT_SYNCHRONOUS modes.

path: The directory which contains the espeak-data directory, or NULL for the default location.

options: bit 0: 1=allow espeakEVENT_PHONEME events.

options: bit 0: 1=allow espeakEVENT_PHONEME events.
bit 1: 1= espeakEVENT_PHONEME events give IPA phoneme names, not eSpeak phoneme names
bit 15: 1=don't exit if espeak_data is not found (used for --help)

Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR).
*/
@@ -180,10 +204,10 @@ typedef int (t_espeak_callback)(short*, int, espeak_EVENT*);
#ifdef __cplusplus
extern "C"
#endif
void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
/* Must be called before any synthesis functions are called.
This specifies a function in the calling program which is called when a buffer of
speech sound data has been produced.
speech sound data has been produced.


The callback function is of the form:
@@ -208,7 +232,7 @@ int SynthCallback(short *wav, int numsamples, espeak_EVENT *events);
#ifdef __cplusplus
extern "C"
#endif
void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*));
ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*));
/* This function may be called before synthesis functions are used, in order to deal with
<audio> tags. It specifies a callback function which is called when an <audio> element is
encountered and allows the calling program to indicate whether the sound file which
@@ -249,7 +273,7 @@ int UriCallback(int type, const char *uri, const char *base);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Synth(const void *text,
ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
size_t size,
unsigned int position,
espeak_POSITION_TYPE position_type,
@@ -272,7 +296,7 @@ espeak_ERROR espeak_Synth(const void *text,
start of the text.

position_type: Determines whether "position" is a number of characters, words, or sentences.
Values:
Values:

end_position: If set, this gives a character position at which speaking will stop. A value
of zero indicates no end position.
@@ -283,6 +307,7 @@ espeak_ERROR espeak_Synth(const void *text,
espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language.
espeakCHARS_AUTO 8 bit or UTF8 (this is the default)
espeakCHARS_WCHAR Wide characters (wchar_t)
espeakCHARS_16BIT 16 bit characters.

espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored.

@@ -291,13 +316,16 @@ espeak_ERROR espeak_Synth(const void *text,
espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then
this pause is suppressed.

unique_identifier: message identifier; helpful for identifying later
data supplied to the callback.
unique_identifier: This must be either NULL, or point to an integer variable to
which eSpeak writes a message identifier number.
eSpeak includes this number in espeak_EVENT messages which are the result of
this call of espeak_Synth().

user_data: pointer which will be passed to the callback function.
user_data: a pointer (or NULL) which will be passed to the callback function in
espeak_EVENT messages.

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -305,7 +333,7 @@ espeak_ERROR espeak_Synth(const void *text,
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Synth_Mark(const void *text,
ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text,
size_t size,
const char *index_mark,
unsigned int end_position,
@@ -320,8 +348,8 @@ espeak_ERROR espeak_Synth_Mark(const void *text,

For the other parameters, see espeak_Synth()

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -329,13 +357,13 @@ espeak_ERROR espeak_Synth_Mark(const void *text,
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Key(const char *key_name);
ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
/* Speak the name of a keyboard key.
If key_name is a single character, it speaks the name of the character.
Otherwise, it speaks key_name as a text string.

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -343,11 +371,11 @@ espeak_ERROR espeak_Key(const char *key_name);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Char(wchar_t character);
/* Speak the name of the given character
ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
/* Speak the name of the given character

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -388,7 +416,7 @@ typedef enum {
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative);
ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative);
/* Sets the value of the specified parameter.
relative=0 Sets the absolute value of the parameter.
relative=1 Sets a relative value of the parameter.
@@ -404,7 +432,7 @@ espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int rela
espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal

espeakPUNCTUATION: which punctuation characters to announce:
value in espeak_PUNCT_TYPE (none, all, some),
value in espeak_PUNCT_TYPE (none, all, some),
see espeak_GetParameter() to specify which characters are announced.

espeakCAPITALS: announce capital letters by:
@@ -416,8 +444,8 @@ espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int rela

espeakWORDGAP: pause between words, units of 10mS (at the default speed)

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -425,7 +453,7 @@ espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int rela
#ifdef __cplusplus
extern "C"
#endif
int espeak_GetParameter(espeak_PARAMETER parameter, int current);
ESPEAK_API int espeak_GetParameter(espeak_PARAMETER parameter, int current);
/* current=0 Returns the default value of the specified parameter.
current=1 Returns the current value of the specified parameter, as set by SetParameter()
*/
@@ -433,14 +461,14 @@ int espeak_GetParameter(espeak_PARAMETER parameter, int current);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
/* Specified a list of punctuation characters whose names are to be spoken when the
value of the Punctuation parameter is set to "some".

punctlist: A list of character codes, terminated by a zero character.

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -448,7 +476,7 @@ espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
#ifdef __cplusplus
extern "C"
#endif
void espeak_SetPhonemeTrace(int value, FILE *stream);
ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream);
/* Controls the output of phoneme symbols for the text
value=0 No phoneme output (default)
value=1 Output the translated phoneme symbols for the text
@@ -461,7 +489,38 @@ void espeak_SetPhonemeTrace(int value, FILE *stream);
#ifdef __cplusplus
extern "C"
#endif
void espeak_CompileDictionary(const char *path, FILE *log, int flags);
ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode);
/* Translates text into phonemes. Call espeak_SetVoiceByName() first, to select a language.

It returns a pointer to a character string which contains the phonemes for the text up to
end of a sentence, or comma, semicolon, colon, or similar punctuation.

textptr: The address of a pointer to the input text which is terminated by a zero character.
On return, the pointer has been advanced past the text which has been translated, or else set
to NULL to indicate that the end of the text has been reached.

textmode: Type of character codes, one of:
espeakCHARS_UTF8 UTF8 encoding
espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language.
espeakCHARS_AUTO 8 bit or UTF8 (this is the default)
espeakCHARS_WCHAR Wide characters (wchar_t)
espeakCHARS_16BIT 16 bit characters.

phonememode: bits0-3:
0= just phonemes.
1= include ties (U+361) for phoneme names of more than one letter.
2= include zero-width-joiner for phoneme names of more than one letter.
3= separate phonemes with underscore characters.

bits 4-7:
0= eSpeak's ascii phoneme names.
1= International Phonetic Alphabet (as UTF-8 characters).
*/

#ifdef __cplusplus
extern "C"
#endif
ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags);
/* Compile pronunciation dictionary for a language which corresponds to the currently
selected voice. The required voice should be selected before calling this function.

@@ -485,7 +544,7 @@ typedef struct {
unsigned char gender; // 0=none 1=male, 2=female,
unsigned char age; // 0=not specified, or age in years
unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties
unsigned char xx1; // for internal use
unsigned char xx1; // for internal use
int score; // for internal use
void *spare; // for internal use
} espeak_VOICE;
@@ -514,7 +573,7 @@ typedef struct {
#ifdef __cplusplus
extern "C"
#endif
const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec);
ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec);
/* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers.
The list is terminated by a NULL pointer

@@ -526,12 +585,12 @@ const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_SetVoiceByName(const char *name);
ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name);
/* Searches for a voice with a matching "name" field. Language is not considered.
"name" is a UTF8 string.

Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered;
you may try after a while to call the function again.
EE_INTERNAL_ERROR.
*/
@@ -539,7 +598,7 @@ espeak_ERROR espeak_SetVoiceByName(const char *name);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
/* An espeak_VOICE structure is used to pass criteria to select a voice. Any of the following
fields may be set:

@@ -559,7 +618,7 @@ espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
#ifdef __cplusplus
extern "C"
#endif
espeak_VOICE *espeak_GetCurrentVoice(void);
ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void);
/* Returns the espeak_VOICE data for the currently selected voice.
This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s>
*/
@@ -567,12 +626,12 @@ espeak_VOICE *espeak_GetCurrentVoice(void);
#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Cancel(void);
ESPEAK_API espeak_ERROR espeak_Cancel(void);
/* Stop immediately synthesis and audio output of the current text. When this
function returns, the audio output is fully stopped and the synthesizer is ready to
synthesize a new message.

Return: EE_OK: operation achieved
Return: EE_OK: operation achieved
EE_INTERNAL_ERROR.
*/

@@ -580,25 +639,25 @@ espeak_ERROR espeak_Cancel(void);
#ifdef __cplusplus
extern "C"
#endif
int espeak_IsPlaying(void);
ESPEAK_API int espeak_IsPlaying(void);
/* Returns 1 if audio is played, 0 otherwise.
*/

#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Synchronize(void);
ESPEAK_API espeak_ERROR espeak_Synchronize(void);
/* This function returns when all data have been spoken.
Return: EE_OK: operation achieved
Return: EE_OK: operation achieved
EE_INTERNAL_ERROR.
*/

#ifdef __cplusplus
extern "C"
#endif
espeak_ERROR espeak_Terminate(void);
ESPEAK_API espeak_ERROR espeak_Terminate(void);
/* last function to be called.
Return: EE_OK: operation achieved
Return: EE_OK: operation achieved
EE_INTERNAL_ERROR.
*/

@@ -606,8 +665,8 @@ espeak_ERROR espeak_Terminate(void);
#ifdef __cplusplus
extern "C"
#endif
const char *espeak_Info(void* ptr);
ESPEAK_API const char *espeak_Info(const char **path_data);
/* Returns the version number string.
The parameter is for future use, and should be set to NULL
path_data returns the path to espeak_data
*/
#endif

+ 14
- 0
docs/voices.html View File

@@ -255,6 +255,20 @@ Used to specify a language to be used to speak words which are written in a non-
Alphabets names include: latin, cyr (cyrillic), ar (arabic). The default language for latin alphabet is English.
</dd>
<p>
<dt>
<strong>dictdialect &nbsp;&lt;dialect&gt;</strong><br>
<dd>
Words can be marked in the *_list or *_rules file to be spoken using a foreign voice. This <b>dictdialect</b> attribute
can be used to specify which dialect of the foreign language should be used, instead of the default dialect.
The currently available dialects are:<br>
<b>en-us</b> (US English)<br>
<b>es-la</b> (Latin American Spanish).<br>
eg.
<pre> dictdialect en-us
</pre>
This means that any words or rules which are maked with _^_EN will be spoken with the US English voice instead of the default UK English voice.
</dd>
<p>
Additional attributes are available to set various internal options which control how language is processed. These would normally be set in the program code rather than in a voice file.
</ul>
<hr>

+ 53
- 0
phsource/intonation View File

@@ -7,6 +7,17 @@ nucleus0 fall 64 8
nucleus fall 70 18 24 12
endtune

tune s_ml
prehead 46 57
headenv fall 16
head 3 40 60 15 30
headextend 0 63 38 13 0
nucleus0 fall 64 8
nucleus fall 70 18 24 12
endtune



tune c1
prehead 46 57
headenv fall 16
@@ -132,3 +143,45 @@ nucleus0 fall 92 8
nucleus fall 92 80 76 8
endtune


// italian (by [email protected])

tune s4
prehead 46 57
headenv fall 16
head 4 80 50 -8 -5
headextend 0 63 38 13 0
nucleus0 fall 64 8
nucleus fall 70 18 24 12
endtune

tune c4
prehead 46 57
headenv fall 16
head 4 76 42 -8 -5
headextend 0 63 38 13 0
nucleus0 fall-rise 77 25
nucleus fall-rise2 78 25 24 52
endtune

tune q4
prehead 47 58
headenv fall 16
head 5 75 53 -7 1
headextend 0 60 55 45 60
onset 60 48 62
headlast 60 44 40
nucleus0 fall-rise 95 29
nucleus fall-rise2 92 21 34 79
endtune

tune e4
prehead 46 57
headenv fall 16
head 5 77 53 -7 0
headextend 40 80 75 70 67
headlast 80 72 60
nucleus0 fall 92 8
nucleus fall 88 77 75 10
endtune


+ 12
- 1
phsource/ph_english View File

@@ -212,6 +212,17 @@ phoneme E
endphoneme


phoneme E# // [@] in unstressed syllables, if next vowel is stressed
vowel starttype #e endtype #e

IF thisPh(isUnstressed) AND nextVowel(isVowel) AND nextVowel(isStressed) THEN
ChangePhoneme(@)
ENDIF

ChangePhoneme(E)
endphoneme


phoneme I
vowel starttype #i endtype #i
length 130
@@ -250,7 +261,7 @@ endphoneme

phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #i
ipa ɪ
ipa i
length 140
IfNextVowelAppend(;)
FMT(vowel/ii_7)

+ 15
- 0
phsource/ph_gujarati View File

@@ -2,3 +2,18 @@
// Phonemes for gujarati
// This inherits from ph_hindi

phoneme aI
vowel long starttype #@ endtype #i
length 240
long
FMT(vdiph/@i_4)
endphoneme

phoneme aU
vowel long starttype #a endtype #u
length 240
long
FMT(vdiph/a#u)
endphoneme



+ 4
- 0
phsource/ph_spanish_la View File

@@ -3,4 +3,8 @@
// Latin American Spanish - based on Spanish
//====================================================

phoneme T
vls alv frc sibilant
ChangePhoneme(s)
endphoneme


BIN
phsource/vdiph/@i_4 View File


BIN
phsource/vdiph/a#u View File


+ 7
- 1
platforms/windows/make_espeak.iss View File

@@ -2,7 +2,7 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.47.09
AppVerName=eSpeak version 1.47.14
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes
@@ -183,10 +183,13 @@ begin
$41: Result := 'sw';
//$44: Result := 'tt';
$46: Result := 'pa';
//$48: Result := 'or';
$49: Result := 'ta';
$46: Result := 'pa';
$4a: Result := 'te';
$4b: Result := 'kn';
$4c: Result := 'ml';
//$4d: Result := 'as';
//$50: Result := 'mn';
$52: Result := 'cy';
//$5e: Result := 'am';
@@ -231,6 +234,7 @@ begin
'af': value := $436;
'am': value := $45e;
'an': value := $40a; // Aragon, use code for Spanish
'as': value := $44d;
'az': value := $42c;
'bg': value := $402;
'bn': value := $445;
@@ -274,6 +278,7 @@ begin
'ne': value := $461;
'nl': value := $413;
'no': value := $414;
'or': value := $448;
'pa': value := $446;
'pl': value := $415;
'pt': value := $416;
@@ -312,6 +317,7 @@ begin
'-hu': value := $40e;
'-ic': value := $40f;
'-in': value := $439;
'-ir': value := $429;
'-it': value := $410;
'-mx': value := $80a;
'-nl': value := $413;

+ 9
- 4
src/compiledict.cpp View File

@@ -235,6 +235,7 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
unsigned char rb;
unsigned char c;
char *p;
char *p_end;
int ix;
int match_type;
int finished=0;
@@ -245,10 +246,10 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
int condition_num=0;
int at_start = 0;
const char *name;
char buf[60];
char buf_pre[60];
char buf[200];
char buf_pre[200];
char suffix[20];
static char output[60];
static char output[80];

static char symbols[] =
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
@@ -367,6 +368,8 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
*p = 0;

p = output;
p_end = p + sizeof(output) - 1;

if(linenum > 0)
{
sprintf(p,"%5d:\t",linenum);
@@ -381,12 +384,14 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
{
if(at_start)
*p++ = '_';
while(--ix >= 0)
while((--ix >= 0) && (p < p_end-3))
*p++ = buf_pre[ix];
*p++ = ')';
*p++ = ' ';
}
*p = 0;

buf[p_end - p] = 0; // prevent overflow in output[]
strcat(p,buf);
ix = strlen(output);
while(ix < 8)

+ 22
- 9
src/dictionary.cpp View File

@@ -526,7 +526,7 @@ unsigned short ipa1[96] = {
};

#define N_PHON_OUT 500 // realloc increment
static char *phon_out_buf = NULL;
static char *phon_out_buf = NULL; // passes the result of GetTranslatedPhonemeString()
static int phon_out_size = 0;


@@ -663,6 +663,16 @@ const char *GetTranslatedPhonemeString(int phoneme_mode)
use_ipa = phoneme_mode & 0x10;
use_tie = phoneme_mode & 0x0f;

if(phon_out_buf == NULL)
{
phon_out_size = N_PHON_OUT;
if((phon_out_buf = (char *)realloc(phon_out_buf, phon_out_size)) == NULL)
{
phon_out_size = 0;
return("");
}
}

if(use_tie >= 3)
{
// separate individual phonemes with underscores
@@ -670,6 +680,7 @@ const char *GetTranslatedPhonemeString(int phoneme_mode)
use_tie = 0;
}


for(ix=1; ix<(n_phoneme_list-2); ix++)
{
buf = phon_buf;
@@ -2911,9 +2922,10 @@ int TransposeAlphabet(Translator *tr, char *text)
int acc;
int pairs_start;
const short *pairs_list;
char buf[N_WORD_BYTES];
int bufix;
char buf[N_WORD_BYTES+1];


p2 = buf;
offset = tr->transpose_min - 1;
min = tr->transpose_min;
max = tr->transpose_max;
@@ -2921,6 +2933,7 @@ int TransposeAlphabet(Translator *tr, char *text)

pairs_start = max - min + 2;

bufix = 0;
do {
p += utf8_in(&c,p);
if(c != 0)
@@ -2929,30 +2942,30 @@ int TransposeAlphabet(Translator *tr, char *text)
{
if(map == NULL)
{
*p2++ = c - offset;
buf[bufix++] = c - offset;
}
else
{
// get the code from the transpose map
if(map[c - min] > 0)
{
*p2++ = map[c - min];
buf[bufix++] = map[c - min];
}
else
{
p2 += utf8_out(c,p2);
all_alpha=0;
break;
}
}
}
else
{
p2 += utf8_out(c,p2);
all_alpha=0;
break;
}
}
} while (c != 0);
*p2 = 0;
} while ((c != 0) && (bufix < N_WORD_BYTES));
buf[bufix] = 0;

if(all_alpha)
{

+ 0
- 4
src/espeakedit.cpp View File

@@ -92,10 +92,6 @@ int frame_x, frame_y, frame_w, frame_h;

int adding_page = 0; // fix for wxWidgets (2,8,7) bug, adding first page to a wxNotebook gives emptystring for GetPageTex() in Notebook_Page_Changed event.

wxFont FONT_SMALL(8,wxSWISS,wxNORMAL,wxNORMAL);
wxFont FONT_MEDIUM(9,wxSWISS,wxNORMAL,wxNORMAL);
wxFont FONT_NORMAL(10,wxSWISS,wxNORMAL,wxNORMAL);

IMPLEMENT_APP(MyApp)

wxString AppName = _T("espeakedit");

+ 7
- 6
src/main.h View File

@@ -110,11 +110,6 @@ extern TranslDlg *transldlg;
extern wchar_t ipa1[256];



extern wxFont FONT_SMALL;
extern wxFont FONT_MEDIUM;
extern wxFont FONT_NORMAL;

enum {
MENU_QUIT = 1,
MENU_SPECTRUM,
@@ -183,5 +178,11 @@ enum {
};



// wxWidgets 3 name changes
#if wxCHECK_VERSION(3, 0, 0)
#define wxOPEN wxFD_OPEN
#define wxSAVE wxFD_SAVE
#define WXK_PRIOR WXK_PAGEUP
#define WXK_NEXT WXK_PAGEDOWN
#endif


+ 9
- 9
src/numbers.cpp View File

@@ -1407,7 +1407,7 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, int thou
} // end f LookupThousands


static int LookupNum2(Translator *tr, int value, const int control, char *ph_out)
static int LookupNum2(Translator *tr, int value, int thousandplex, const int control, char *ph_out)
{//=============================================================================
// Lookup a 2 digit number
// control bit 0: ordinal number
@@ -1506,8 +1506,8 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out
else
{
// followed by hundreds or thousands etc
if(tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS)
sprintf(string, "_%do", value);
if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
sprintf(string, "_%do", value); // LANG=TA
else
sprintf(string, "_%da", value);
found = Lookup(tr, string, ph_digits);
@@ -1615,8 +1615,8 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out
else if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0))
{
// followed by hundreds or thousands (or tens)
if(tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS)
sprintf(string, "_%do", units);
if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
sprintf(string, "_%do", units); // LANG=TA, only for 100s, 1000s
else
sprintf(string, "_%da", units);
found = Lookup(tr, string, ph_digits);
@@ -1792,7 +1792,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
x = 8; // use variant (feminine) for before thousands and millions
if(tr->translator_name == L('m','l'))
x = 0x208;
LookupNum2(tr, hundreds/10, x, ph_digits);
LookupNum2(tr, hundreds/10, thousandplex, x, ph_digits);
}

if(tr->langopts.numbers2 & 0x200)
@@ -1875,7 +1875,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null

if(say_one_hundred != 0)
{
LookupNum2(tr, hundreds, 0, ph_digits);
LookupNum2(tr, hundreds, thousandplex, 0, ph_digits);
}
}
}
@@ -1934,7 +1934,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
x |= 0x208; // use #f form for both tens and units
}

if(LookupNum2(tr, tensunits, x | (control & 0x100), buf2) != 0)
if(LookupNum2(tr, tensunits, thousandplex, x | (control & 0x100), buf2) != 0)
{
if(tr->langopts.numbers & NUM_SINGLE_AND)
ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units
@@ -2362,7 +2362,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
{
// speak any remaining decimal fraction digits individually
value = word[n_digits++] - '0';
LookupNum2(tr, value, 2, buf1);
LookupNum2(tr, value, 0, 2, buf1);
len = strlen(ph_out);
sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1);
}

+ 8
- 3
src/speak_lib.cpp View File

@@ -732,8 +732,12 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist)
my_unique_identifier = 0;
my_user_data = NULL;

wcsncpy(option_punctlist, punctlist, N_PUNCTLIST);
option_punctlist[N_PUNCTLIST-1] = 0;
option_punctlist[0] = 0;
if(punctlist != NULL)
{
wcsncpy(option_punctlist, punctlist, N_PUNCTLIST);
option_punctlist[N_PUNCTLIST-1] = 0;
}
} // end of sync_espeak_SetPunctuationList


@@ -792,8 +796,9 @@ ENTER("espeak_Initialize");
}

// buflength is in mS, allocate 2 bytes per sample
if(buf_length == 0)
if((buf_length == 0) || (output_type == AUDIO_OUTPUT_PLAYBACK) || (output_type == AUDIO_OUTPUT_SYNCH_PLAYBACK))
buf_length = 200;

outbuf_size = (buf_length * samplerate)/500;
outbuf = (unsigned char*)realloc(outbuf,outbuf_size);
if((out_start = outbuf) == NULL)

+ 2
- 0
src/speak_lib.h View File

@@ -187,6 +187,8 @@ ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, cons
output: the audio data can either be played by eSpeak or passed back by the SynthCallback function.

buflength: The length in mS of sound buffers passed to the SynthCallback function.
Value=0 gives a default of 200mS.
This paramater is only used for AUDIO_OUTPUT_RETRIEVAL and AUDIO_OUTPUT_SYNCHRONOUS modes.

path: The directory which contains the espeak-data directory, or NULL for the default location.


+ 9
- 6
src/spect.cpp View File

@@ -50,7 +50,7 @@ wxBrush BRUSH_MARKER[N_MARKERS] = {
wxBrush(wxColour(200,0,255),wxSOLID),
wxBrush(wxColour(200,0,255),wxSOLID),
wxBrush(wxColour(255,0,200),wxSOLID) };
#define DRAWPEAKWIDTH 2000
#define PEAKSHAPEW 256

@@ -86,7 +86,7 @@ float SpectTilt(int value, int freq)
}
else
{
return(sqrt(y));
return(sqrt(y));
}
}

@@ -96,6 +96,9 @@ SpectFrame::SpectFrame(SpectFrame *copy)

int ix;

FONT_SMALL = wxFont(8, wxSWISS, wxNORMAL, wxNORMAL); // wxWidgets 3, Font creation needs a GTK+ Window
FONT_MEDIUM = wxFont(9, wxSWISS, wxNORMAL, wxNORMAL);

selected = 0;
keyframe = 0;
spect = NULL;
@@ -210,7 +213,7 @@ int SpectFrame::ImportSPC2(wxInputStream& stream, float &time_acc)

stream.Read(&cy,44);
size = SPC2_size_cycle(&cy);
p = (CYCLE *)malloc(size);
if(p == NULL)
{
@@ -218,14 +221,14 @@ int SpectFrame::ImportSPC2(wxInputStream& stream, float &time_acc)
}
stream.SeekI(-44,wxFromCurrent);
stream.Read(p,size);
time = time_acc;
len = cy.length / 15625.0;
time_acc += len;
pitch = float(cy.pitch) / 16.0;
nx = cy.n_harm;
dx = pitch;
for(ix=0; ix<7; ix++)
{
peaks[ix].pkfreq = cy.peak_data[ix].freq * peak_factor[ix];
@@ -244,7 +247,7 @@ int SpectFrame::ImportSPC2(wxInputStream& stream, float &time_acc)
}
if(((cy.flags & 0x80)==0) && (peaks[1].pkheight > 0))
keyframe = 1;
if(cy.flags & 0x08)
markers |= 4;
if(cy.flags & 0x10)

+ 2
- 0
src/spect.h View File

@@ -171,6 +171,8 @@ public:
private:
void DrawPeaks(wxDC *dc, int offy, int frame_width, int seq_amplitude, double scalex);

wxFont FONT_SMALL;
wxFont FONT_MEDIUM;
};

class SpectSeq

+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.47.13 22.Oct.13";
const char *version_string = "1.47.14 29.Nov.13";
const int version_phdata = 0x014709;

int option_device_number = -1;

+ 1
- 1
src/tr_languages.cpp View File

@@ -1046,7 +1046,7 @@ SetLengthMods(tr,3); // all equal
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels
tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list
tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2
tr->langopts.numbers = NUM_SINGLE_VOWEL | NUM_OMIT_1_HUNDRED |NUM_DECIMAL_COMMA | NUM_ROMAN | NUM_DFRACTION_1;
tr->langopts.numbers = NUM_SINGLE_VOWEL | NUM_OMIT_1_HUNDRED |NUM_DECIMAL_COMMA | NUM_ROMAN | NUM_DFRACTION_1 | NUM_ROMAN_CAPITALS | NUM_ROMAN_AFTER;
tr->langopts.accents = 2; // Say "Capital" after the letter.
SetLetterVowel(tr,'y');
}

+ 33
- 2
src/translate.cpp View File

@@ -409,7 +409,7 @@ int IsAlpha(unsigned int c)
if(c == 0x0605)
return(1);

if((c >= 0x64b) && (c <= 0x65e))
if((c == 0x670) || ((c >= 0x64b) && (c <= 0x65e)))
return(1); // arabic vowel marks

if((c >= 0x300) && (c <= 0x36f))
@@ -1714,8 +1714,26 @@ int SetTranslator2(const char *new_language)
{//=========================================
// Set translator2 to a second language
int new_phoneme_tab;
const char *new_phtab_name;
int bitmap;
int dialect = 0;

if((new_phoneme_tab = SelectPhonemeTableName(new_language)) >= 0)
new_phtab_name = new_language;
if((bitmap = translator->langopts.dict_dialect) != 0)
{
if((bitmap & (1 << DICTDIALECT_EN_US)) && (strcmp(new_language, "en") == 0))
{
new_phtab_name = "en-us";
dialect = DICTDIALECT_EN_US;
}
if((bitmap & (1 << DICTDIALECT_ES_LA)) && (strcmp(new_language, "es") == 0))
{
new_phtab_name = "es-la";
dialect = DICTDIALECT_ES_LA;
}
}

if((new_phoneme_tab = SelectPhonemeTableName(new_phtab_name)) >= 0)
{
if((translator2 != NULL) && (strcmp(new_language,translator2_language) != 0))
{
@@ -1735,6 +1753,19 @@ int SetTranslator2(const char *new_language)
new_phoneme_tab = -1;
translator2_language[0] = 0;
}
else
{
if(dialect == DICTDIALECT_EN_US)
{
// en-us
translator2->dict_condition = 0x48; // bits 3, 6
translator2->langopts.param[LOPT_REDUCE_T] = 1;
}
if(dialect == DICTDIALECT_ES_LA)
{
translator2->dict_condition = 0x04; // bit 2
}
}
translator2->phoneme_tab_ix = new_phoneme_tab;
}
}

+ 4
- 0
src/translate.h View File

@@ -558,6 +558,10 @@ typedef struct {
int max_lengthmod;
int lengthen_tonic; // lengthen the tonic syllable
int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character

#define DICTDIALECT_EN_US 1 // bit number
#define DICTDIALECT_ES_LA 2
int dict_dialect; // bitmap, use a dialect for foreign words
} LANGUAGE_OPTIONS;



+ 24
- 0
src/voices.cpp View File

@@ -110,6 +110,7 @@ enum {
V_SPEED,
V_DICTMIN,
V_ALPHABET2,
V_DICTDIALECT,

// these need a phoneme table to have been specified
V_REPLACE,
@@ -162,6 +163,7 @@ static MNEM_TAB keyword_tab[] = {
{"speed", V_SPEED},
{"dict_min", V_DICTMIN},
{"alphabet2", V_ALPHABET2},
{"dictdialect", V_DICTDIALECT},

// these just set a value in langopts.param[]
{"l_dieresis", 0x100+LOPT_DIERESES},
@@ -175,6 +177,13 @@ static MNEM_TAB keyword_tab[] = {
{NULL, 0}
};

static MNEM_TAB dict_dialects[] = {
{"en-us", DICTDIALECT_EN_US},
{"es-la", DICTDIALECT_ES_LA},
{NULL, 0}
};


#define N_VOICE_VARIANTS 12
const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0};
const char variants_male[N_VOICE_VARIANTS] = {1,2,3,4,5,6,0};
@@ -1028,6 +1037,21 @@ voice_t *LoadVoice(const char *vname, int control)
}
break;

case V_DICTDIALECT:
// specify a dialect to use for foreign words, eg, en-us for _^_EN
if(sscanf(p, "%s", name1) == 1)
{
if((ix = LookupMnem(dict_dialects, name1)) > 0)
{
langopts->dict_dialect |= (1 << ix);
}
else
{
fprintf(stderr, "dictdialect name '%s' not recognized\n", name1);
}
}
break;

default:
if((key & 0xff00) == 0x100)
{

Loading…
Cancel
Save