Browse Source

Merge commit '3b2094592c' into android

master
Reece H. Dunn 12 years ago
parent
commit
2c06ab5d7d
56 changed files with 2000 additions and 677 deletions
  1. 16
    3
      dictsource/an_list
  2. 217
    128
      dictsource/en_list
  3. 148
    76
      dictsource/en_rules
  4. 848
    13
      dictsource/fa_list
  5. 34
    17
      dictsource/fa_rules
  6. 2
    0
      dictsource/ka_list
  7. 81
    17
      dictsource/pt_list
  8. 106
    70
      dictsource/pt_rules
  9. 13
    9
      dictsource/ur_list
  10. 113
    60
      dictsource/ur_rules
  11. 46
    24
      dictsource/vi_rules
  12. 0
    1
      espeak-data/voices/test/ur
  13. BIN
      phsource/envelopes.png
  14. 8
    5
      phsource/ph_english_sc
  15. 4
    11
      phsource/ph_english_us
  16. 13
    1
      phsource/ph_georgian
  17. 7
    1
      phsource/ph_pt_brazil
  18. 45
    0
      phsource/ph_urdu
  19. 145
    29
      phsource/ph_vietnam
  20. 4
    1
      phsource/phonemes
  21. BIN
      phsource/ustop/k_asp2.wav
  22. BIN
      phsource/ustop/q2.wav
  23. BIN
      phsource/ustop/q2_i.wav
  24. BIN
      phsource/vdiph/eei_5
  25. BIN
      phsource/vietnam/_c.wav
  26. BIN
      phsource/vietnam/a
  27. BIN
      phsource/vietnam/ch.wav
  28. BIN
      phsource/vietnam/dd.wav
  29. BIN
      phsource/vietnam/kh.wav
  30. BIN
      phsource/vietnam/n.wav
  31. BIN
      phsource/vietnam/nh.wav
  32. BIN
      phsource/vietnam/nn
  33. BIN
      phsource/vietnam/oe
  34. BIN
      phsource/vietnam/oong
  35. BIN
      phsource/vietnam/th.wav
  36. BIN
      phsource/vietnam/tr.wav
  37. BIN
      phsource/vowelr/e_r
  38. BIN
      phsource/vwl_en_us/ar
  39. 0
    133
      phsource/xph_nepali
  40. 43
    22
      src/compiledata.cpp
  41. 6
    2
      src/compiledict.cpp
  42. 33
    18
      src/dictionary.cpp
  43. 6
    2
      src/espeak.cpp
  44. 2
    2
      src/espeakedit.cpp
  45. 3
    3
      src/prosodydisplay.cpp
  46. 3
    1
      src/readclause.cpp
  47. 17
    6
      src/speak_lib.cpp
  48. 3
    2
      src/synthdata.cpp
  49. 1
    0
      src/synthesize.h
  50. 12
    1
      src/translate.cpp
  51. 1
    1
      src/translate.h
  52. 4
    4
      src/vowelchart.cpp
  53. 8
    7
      src/wave.cpp
  54. 1
    1
      src/wave.h
  55. 3
    3
      src/wave_pulse.cpp
  56. 4
    3
      src/wave_sada.cpp

+ 16
- 3
dictsource/an_list View File

ñ En^e ñ En^e
p pe p pe
q ku q ku
r ERR2e
r ERR2e
s Ese s Ese
t te t te
u u u u
v ,be||b'aIksa
v ,be||b'aSa
w ,be||d'Ople w ,be||d'Ople
x Se x Se
z Teta z Teta
_8C gwitoTj'Entos _8C gwitoTj'Entos
_9C nowTj'Entos _9C nowTj'Entos
_0M1 m'il _0M1 m'il
_0M2 mil^'ones
_0M2 mil^'ons
_1M2 un||mil^'on
_0M4 bil^'ons
_1M4 un||bil^'on


_0and i _0and i
_dpt kon _dpt kon


// unstressed words // unstressed words
lo $u lo $u
la $u
los $u
las $u
ne $u
nes $u
me $u
te $u
se $u
le $u
les $u

+ 217
- 128
dictsource/en_list
File diff suppressed because it is too large
View File


+ 148
- 76
dictsource/en_rules View File

.L03 a i o u // vowel, not 'e' .L03 a i o u // vowel, not 'e'
.L05 c g k .L05 c g k
.L06 s z .L06 s z
.L07 b d g m n r bE dE lE nE // before voiced s in -sman
.L08 t d s z n x // dental, drop [j] before [u:]


.L10 grap log met scop // scientific endings .L10 grap log met scop // scientific endings


a (Cee+ a a (Cee+ a
a (BeCo_ a a (BeCo_ a
a (BerA a a (BerA a
a (BeroA# eI
a (BerC a a (BerC a
a (Bet a a (Bet a
@) a (Bia 'eI @) a (Bia 'eI
m) a (jes a m) a (jes a
m) a (jor_ eI m) a (jor_ eI
m) a (jore eI m) a (jore eI
_) a (k@ a#
_) a (ki a#
@) a (ki_ 'a @) a (ki_ 'a
@) ak (ia ak @) ak (ia ak
aku (_ 'A:ku: aku (_ 'A:ku:
acne aknI acne aknI
acou (st a#ku: acou (st a#ku:
ac (quie ,a ac (quie ,a
_) acre eIk@
_) acre eIk3
mass) acre @k3 mass) acre @k3
_) ac (ri ak _) ac (ri ak
ac (ro ak ac (ro ak
@) age (ment I2dZ @) age (ment I2dZ
g) age (ment 'eIdZ g) age (ment 'eIdZ
m) ag (enta @dZ m) ag (enta @dZ
agh (_ @
agh (_ A:g
agio (_ 'A:dZIoU agio (_ 'A:dZIoU
t) agi (o eIdZj
t) agi (o eIdZ
_) ag (l@ a#g _) ag (l@ a#g
&) ag (on_ @g &) ag (on_ @g
dr) agon ag@n dr) agon ag@n
_) alexan alIgz'aan _) alexan alIgz'aan
_) alfa alf@ _) alfa alf@
_) al (g al _) al (g al
_) algo (r alg@
&) al (iBe @l &) al (iBe @l
&) al (iBati @l &) al (iBati @l
al (ia eIl al (ia eIl
&) ali (sC_ @lI &) ali (sC_ @lI
&) al (isCic @l &) al (isCic @l
_) al (k al _) al (k al
C) al (k O:
_) all (@ a#l _) all (@ a#l
_) all (C@P3 O:l _) all (C@P3 O:l
_) all (a al _) all (a al
_) al (y al _) al (y al
alz alt|s alz alt|s
&) al (_ @L &) al (_ @L
&) ally (_ @li
?8 &) al (_ a#l ?8 &) al (_ a#l
@) ally (_S2 %i @) ally (_S2 %i
@@c) ally (_S4 l%i @@c) ally (_S4 l%i
b) al (d+ O:l b) al (d+ O:l
b) al (k O:l b) al (k O:l
f) al (k 0l f) al (k 0l
alkali ak@laI
b) all (K O:l b) all (K O:l
&b) all (er_ O:l &b) all (er_ O:l
_c) al (e al _c) al (e al
?3 h) al (f a ?3 h) al (f a
s) al (f 0l s) al (f 0l
@) algia (_ 'aldZ@ @) algia (_ 'aldZ@
g) al (i_ 'A:l
al (i_ 'A:l
al (ity 'al al (ity 'al
p) al (et al p) al (et al
qu) al (@ 0l qu) al (@ 0l
qu) al (m A: qu) al (m A:
equ) al @l equ) al @l
ch) al (k O: ch) al (k O:
t) al (k O:
w) al (C 0l w) al (C 0l
w) al (k O:
all (_ O:l all (_ O:l
aller (_ O:l3 aller (_ O:l3
allers (_ O:l3z allers (_ O:l3z
_n) ame eIm _n) ame eIm
&) am (ent @m &) am (ent @m
amer (ic a#mEr amer (ic a#mEr
c) am (ero am
c) am (el am c) am (el am
am (i_ 'A:m am (i_ 'A:m
ami (g a#mi: ami (g a#mi:
.group an .group an
@) ana (_ 'A:n@ @) ana (_ 'A:n@
_c) an (adi a#n _c) an (adi a#n
_) an (aem a#n
ph) an (age @n ph) an (age @n
C) an (c aan C) an (c aan
c) an (c an c) an (c an
hum) an (_ @n hum) an (_ @n
&) an (ty_ @n &) an (ty_ @n
&) an (t_ @n &) an (t_ @n
&) an (t_$w_alt an
?8 &) an (t_ a#n ?8 &) an (t_ a#n
_f) an (at a#n _f) an (at a#n
pl) an (t_ an pl) an (t_ an
arr (_ A@ arr (_ A@
_) arr (@ a#r _) arr (@ a#r
_) arr (ant ar _) arr (ant ar
_n) arr (at a#r
_) arr (o ar _) arr (o ar
_) arro (g ar@ _) arro (g ar@
ar (i_ 'A:r ar (i_ 'A:r
&) ar (dy_ 3 &) ar (dy_ 3
h) ar (dy_ A@ h) ar (dy_ A@
are e@ are e@
z) are (_ 'A@reI
%C) ared (_ 3d %C) ared (_ 3d
%C) aring (_ 3rI2N %C) aring (_ 3rI2N
area e@ri@ area e@ri@
ar (iaC_ 'e@ ar (iaC_ 'e@
ar (ia_ 'e@ ar (ia_ 'e@
@) arily (_ 'Er@l%I @) arily (_ 'Er@l%I
?3 @) arily (_ 'e@r@l%I
ch) ar (it ar ch) ar (it ar
ph) ar (i ar ph) ar (i ar
m) ar (i @r m) ar (i @r
cl) ass (iC as cl) ass (iC as
ass (ag as ass (ag as
&v) ass (_ @s &v) ass (_ @s
ass (et as
_) ass (et as
_) ass (h as _) ass (h as
ass (on as ass (on as
ass (u @S ass (u @S
b b b b
_) bh b _) bh b
_) b (L01Y b // allow _bl _br _) b (L01Y b // allow _bl _br
_) bj (A bj
_) brz (e brz _) brz (e brz


b (b b (b
_) be (f bI2 _) be (f bI2
_) beg (AnK b%Ig _) beg (AnK b%Ig
_) be (gg bE _) be (gg bE
_) belarus bEl@r'u:s
_) be (lC bE _) be (lC bE
_) be (lli bI2 _) be (lli bI2
_) be (sC bI2 _) be (sC bI2
beha (v bI2heI beha (v bI2heI
belly bElI2 belly bElI2
be (mu bI2 be (mu bI2
_) be (na bE
_) bene bEnI _) bene bEnI
benevo b@nEv@ benevo b@nEv@
_) be (o beI _) be (o beI
cism (_ sIz@m cism (_ sIz@m
c (ish k c (ish k
e) cua kwa e) cua kwa
_) cu (o kw
_) cwm kUm _) cwm kUm
czech tSEk czech tSEk


ba) che tS@ ba) che tS@
tra) ch k tra) ch k
cre) ch S cre) ch S
e) ch (el S
cli) ch S cli) ch S
fi) ch S fi) ch S
ni) ch S ni) ch S
colle (gi k@li: colle (gi k@li:
co (llis k@ co (llis k@
co (llid k@ co (llid k@
collo (quiA k@loU
co (llu k@ co (llu k@
co (loss k@ co (loss k@
_) co (m@ k@ _) co (m@ k@
co (mmerce k0 co (mmerce k0
co (mmodor k0 co (mmodor k0
common k0m@n common k0m@n
commun k0mju:n
commun k0#mju:n
commun (a k@mju:n commun (a k@mju:n
commun (ic k@mju:n commun (ic k@mju:n
co (mmuta k0 co (mmuta k0
_) co (ngre k0 _) co (ngre k0
?3 _) congress k0ngr@s ?3 _) congress k0ngr@s
congru k0ngru: congru k0ngru:
_) con (k k0#n
_) co (ni k0 _) co (ni k0
_) co (njug k0 _) co (njug k0
_) co (njur kV _) co (njur kV
_) co (nsul k0 _) co (nsul k0
_) co (nsult k%0# _) co (nsult k%0#
_) co (ntact k0 _) co (ntact k0
_) co (ntempl k0
_) co (ntempl k0#
_) co (ntext k0 _) co (ntext k0
co (ntine k0 co (ntine k0
_) co (ntour k0 _) co (ntour k0
_) co (ntrA k0
_) co (ntrA k0#
_) contra (C@P6 k,0ntr@ _) contra (C@P6 k,0ntr@
_) contrast k0ntraast
_) contrast k0#ntraast
contrac (t k%0#ntrak contrac (t k%0#ntrak
contrar k%0#ntre@ contrar k%0#ntre@
_) co (ntrib k0
_) co (ntrib k0#
_) co (ntrov k,0 _) co (ntrov k,0
co (ntrol+ k@ co (ntrol+ k@
conva (l k0nv@ conva (l k0nv@
_) co (nw k0 _) co (nw k0
_) copy k0pI _) copy k0pI
_) copoly k'oUp,0lI _) copoly k'oUp,0lI
coro (ll k0r0
coro (ll k0#r0
co (rrect k@ co (rrect k@
correspo k,0rIsp'0 correspo k,0rIsp'0
_) co (rri k0 _) co (rri k0
_) du (p du: _) du (p du:
?!3 du (pl dju: ?!3 du (pl dju:
dur (A djU@ dur (A djU@
?3 dur (A dU@
dur (_ djU@ dur (_ djU@
ce) dure dZ3 ce) dure dZ3
_) dye daI _) dye daI
de (rog dI2 de (rog dI2
de (rACatio dE de (rACatio dE
_) des (@ dI2s _) des (@ dI2s
des (ca dE
des (ec dEs des (ec dEs
des (eg d%i:s des (eg d%i:s
dese (l d,i:sI2 dese (l d,i:sI2
_) dia daI|@ _) dia daI|@
_) dia (gon daI'a _) dia (gon daI'a
_) dia (l daI@ _) dia (l daI@
_) diamond daI@m@nd
_) dia (n daI'a _) dia (n daI'a
dicho (t daIk'0 dicho (t daIk'0
di (chro daI di (chro daI
ch) eese i:z ch) eese i:z
eeze (@ i:z eeze (@ i:z
d) e (fault i: d) e (fault i:
_) e (ffac %I
e (ffec %I e (ffec %I
e (ffic %I e (ffic %I
efier (_ I2faI3 efier (_ I2faI3
discr) e (tion E discr) e (tion E
eu ju: eu ju:
?3 n) eu u: ?3 n) eu u:
?3 n) eu (r U@
r) eu (d OI r) eu (d OI
eu (m_ 'i:@ eu (m_ 'i:@
s) eu (m_ 'i@ s) eu (m_ 'i@
?8 &) el (s_ El ?8 &) el (s_ El
ela (_ 'El@ ela (_ 'El@
ella (_ 'El@ ella (_ 'El@
&C) eller (_ @l@
&C) eler (_ @l@
&C) eller (_ @l3
&C) eler (_ @l3
@) elli (_ 'ElI @) elli (_ 'ElI
&) elling @lI2N &) elling @lI2N
&) eling @lI2N &) eling @lI2N
sph) em @m sph) em @m
sph) em (e 'i:m sph) em (e 'i:m
&) em (y_ @m &) em (y_ @m
yst) em @m
yst) em (i Em


.group en .group en
_) en (@ %En _) en (@ %En
&) er (oCe_ =@r &) er (oCe_ =@r
er (se 3: er (se 3:
v) er (sal '3: v) er (sal '3:
@) er (sial '3:
@) ersi (al '3:S
@) er (sy 3: @) er (sy 3:
er (sib 3: er (sib 3:
er (sif 3: er (sif 3:
er (ve 3: er (ve 3:
s) er (van 3: s) er (van 3:
ery (_ @r%i ery (_ @r%i
?3 @@AC) ery (_ e@ri
ery (A 3j ery (A 3j
_v) ery ErI2 _v) ery ErI2
qu) ery i@rI qu) ery i@rI
&ph) es (_S1 z &ph) es (_S1 z
neri) es (_S2i z neri) es (_S2i z
&s) es (_S1 I#z &s) es (_S1 I#z
&us) es (_S2e I#z
us) es (_S2e I#z
lus) es (_S2 I#z
&rus) es (_S2 I#z &rus) es (_S2 I#z
&tus) es (_S2 I#z &tus) es (_S2 I#z
&ss) es (_S2 I#z &ss) es (_S2 I#z
_m) et (ic @t _m) et (ic @t
etry (_S2 rI etry (_S2 rI
etries (_S4 rIz etries (_S4 rIz
@) et (_ I2t
&) et (_ I2t
&Ar) et (_ @t &Ar) et (_ @t
rk) et It rk) et It
ll) et (_ It ll) et (_ It
for (see f%O@ for (see f%O@
for (ward f'o@ // straightforward for (ward f'o@ // straightforward
ft (en f ft (en f
&) ful (_S3 f@L
&) fully (_S5 f@li
&) fulness (_S7 f@Ln@s


.group g .group g
g g g g
gh (an g gh (an g
gm (_ m gm (_ m
gn (_ n gn (_ n
_poi) gn nj
_) gnu g@nu: _) gnu g@nu:
hun) g g hun) g g
g (ear g g (ear g
gei (st_ gaI
%A) g (er g %A) g (er g
g (et g g (et g
g (ette_ dZ g (ette_ dZ
er) g (et dZ er) g (et dZ
for) ge (t gE for) ge (t gE
bo) g (Ey g bo) g (Ey g
_) gia (@@ dZa#
_) g (iant dZ
&) gia (_ dZ@ &) gia (_ dZ@
&) gia (C_ dZ@ &) gia (C_ dZ@
go) g (ic_ g go) g (ic_ g
@) guay (_ gwaI @) guay (_ gwaI
gue (_ g gue (_ g
gu (e g gu (e g
_) gu (i g
_) g (yn g _) g (yn g
o) g (y_ g o) g (y_ g
g (ynous_ =dZ g (ynous_ =dZ
iza (tion aIzeI iza (tion aIzeI
?3 iza (tion @zeI ?3 iza (tion @zeI
ize (_ aIz ize (_ aIz
ial) ize (_S3 aIz
ize (d_ aIz ize (d_ aIz
i (zen I2 i (zen I2
iz (er_ aIz iz (er_ aIz
&) iary =j@r%I &) iary =j@r%I
&l) iary =i@r%I &l) iary =i@r%I
_) ian i@n _) ian i@n
@) ia (_ =i|@
&) ia (_N =i|@
&) ia (_ =i@
@@) ia (_ =i@ @@) ia (_ =i@
@) ian (cy I|@n @) ian (cy I|@n
l) iais I|eIz l) iais I|eIz
&) ie (t_ i@ &) ie (t_ i@
@) ie (th i@ @) ie (th i@
iesta i:'Est@ iesta i:'Est@
iessa i:'Es@
ie (tt I2'E ie (tt I2'E
@) iety 'aI@t%I @) iety 'aI@t%I
l) ieu u: l) ieu u:
l) im Im l) im Im
_pr) im (a aIm _pr) im (a aIm
sh) im (a_ 'i:m sh) im (a_ 'i:m
im (age Im
imag (e ImI2dZ
l) ime aIm l) ime aIm
d) ime (ns aImE d) ime (ns aImE
im (ent+ Im im (ent+ Im
im (portu ,Im im (portu ,Im
impo (ten Imp@ impo (ten Imp@
_) im (pre@P2 %Im _) im (pre@P2 %Im
im (pregna ,Im
impreg Impr'Eg
impreg (nat ImprEg
im (presa ,Im im (presa ,Im
im (provis Im im (provis Im
im (pulse_ Im im (pulse_ Im
adm) ini InI adm) ini InI
m) iniatur InItS3 m) iniatur InItS3
m) inera (l In@r@ m) inera (l In@r@
in (al_$w_alt 'aIn
&m) in (al_ =In &m) in (al_ =In
f) in (a aIn f) in (a aIn
@g) in (a_ aIn @g) in (a_ aIn
ir (able 'aI3 ir (able 'aI3
m) ir (ac Ir m) ir (ac Ir
sp) iral aI3r@L sp) iral aI3r@L
@) ir (ation Ir
ir (at %aIr
@) ir (ation @r
ir (ate =i@r ir (ate =i@r
consp) ira (t Ir@ consp) ira (t Ir@
ire aI3 ire aI3
prAm) is Is prAm) is Is
b) is (_ Is b) is (_ Is
c) is (_ Is c) is (_ Is
@@m) is (_ Is
am) is (_S1 z
v) is (_ Is
@Cs) is (_ =Is @Cs) is (_ =Is
&) is (abl aIz &) is (abl aIz
isa (tion aIzeI isa (tion aIzeI
v) is (coun aI v) is (coun aI
v) is (it Iz v) is (it Iz
_d) is (e I2s _d) is (e I2s
ial) ise (_S3 aIz
ise (_ aIz ise (_ aIz
ise (d_ aIz ise (d_ aIz
is (er+_ aIz is (er+_ aIz


jokull (_S6 j3:ku:th jokull (_S6 j3:ku:th
jökull (_S6 j3:ku:th jökull (_S6 j3:ku:th
juan hwA:n
_) juan hwA:n
juan w'A:n


.group k .group k
k k k k
mEntary (_ m'Ent@r%I mEntary (_ m'Ent@r%I
_) meta (@ m,Et@ _) meta (@ m,Et@
_) metal (C mEt@L _) metal (C mEt@L
_) metall (ic m@tal
metabo m@t'ab0 metabo m@t'ab0
_) meta (llu m%Eta _) meta (llu m%Eta
_) mobile moUbaIl _) mobile moUbaIl


.group o .group o
o 0 o 0
_) o 0
X) o 0# X) o 0#
X) o ($w_alt3 %0# X) o ($w_alt3 %0#
_) o'(P2 %oU // prefix _) o'(P2 %oU // prefix
oar o@ oar o@
oar (_ o@ oar (_ o@
cr) o (at oU cr) o (at oU
o (ba oU
X) o (ba oU
t) o (bacc @ t) o (bacc @
o (bed oU o (bed oU
_r) o (ber 0 _r) o (ber 0
o (bic_ 'oU o (bic_ 'oU
n) o (bil oU n) o (bil oU
_m) o (bil oU _m) o (bil oU
o (bje %0#
o (bje %0
_) o (bl %0# _) o (bl %0#
n) o (bl oU n) o (bl oU
o (bliga 0 o (bliga 0
o (bligato %0# o (bligato %0#
o (blo 0 o (blo 0
_r) o (bo oU _r) o (bo oU
_) o (bs %0#
_) obs (er %0#bz
_) o (bs %0
_) obs (er %0bz
obso (l 0bs@ obso (l 0bs@
o (bstin 0 o (bstin 0
_) o (bt %0#
_) o (bt %0
o (by_ oU o (by_ oU
f) o (cA oU f) o (cA oU
_l) o (cA oU _l) o (cA oU
l) o (cat %oU l) o (cat %oU
_) o (ccasi @ _) o (ccasi @
_) o (cclu @ _) o (cclu @
_) o (ct 0
X) o (ct 0
occur @k3: occur @k3:
?5 occur @kVR ?5 occur @kVR
occurr @k3: occurr @k3:
k) o (dA oU k) o (dA oU
meth) o (d_ @ meth) o (d_ @
peri) o (d_ @ peri) o (d_ @
o (da_ oU
d) o (dec %oU d) o (dec %oU
m) o (del 0 m) o (del 0
m) o (der 0 m) o (der 0
oi (c oUI2 oi (c oUI2
oi (ce OI oi (ce OI
oi (ck OI oi (ck OI
oi (zA oUaI
c) o (inci %oU c) o (inci %oU
o (ing oU o (ing oU
d) o (ing u: d) o (ing u:
p) o (tenti @ p) o (tenti @
b) o (th oU b) o (th oU
betr) oth oUD betr) oth oUD
?3 m) o (th O
?3 cl) o (th O ?3 cl) o (th O
cl) othe oUD cl) othe oUD
tr) othe oUD tr) othe oUD
@) ome (tre '0mI @) ome (tre '0mI
@) ome (try '0m@ @) ome (try '0m@
&) omer (_ @m3 &) omer (_ @m3
c) omer (_ Vm3
gl) om (er 0m gl) om (er 0m
_p) om (e 0m _p) om (e 0m
_s) ome Vm _s) ome Vm
nt) or (_ o@ nt) or (_ o@
vent) or (_ 3 vent) or (_ 3
y) or (k O@ y) or (k O@
&) or (ation @r
or (arL02 3r
&) or (ation 3r
_) ora (to 0r@ _) ora (to 0r@
@) or (ca_ 'O@ @) or (ca_ 'O@
w) orce (st U w) orce (st U
&f) or (d_ 3 &f) or (d_ 3
ore o@ ore o@
&) or (ene_ 3
or (esis O@ or (esis O@
oresc @r'Es oresc @r'Es
ora (cl 0r@ ora (cl 0r@
?3 or (r O: ?3 or (r O:
bb) or (n 3 bb) or (n 3
f) oreign 0r@n f) oreign 0r@n
f) or (ever O@
f) or (ever 3
f) or (gAt 3 f) or (gAt 3
_f) org (Av @g _f) org (Av @g
fl) or (i 0r fl) or (i 0r
pl) or o@ pl) or o@
m) or (al 0r m) or (al 0r
w) or (K 3: w) or (K 3:
?5 w) or VR
?5 w) or (K VR
w) or (m 3: w) or (m 3:
?5 w) or (m VR ?5 w) or (m VR
w) or (se 3: w) or (se 3:
c) ou (pl V c) ou (pl V
&) our (_ 3 &) our (_ 3
np) our (_ o@ np) our (_ o@
&) oured @d
&) oured 3d
ev) our (ed aU@ ev) our (ed aU@
our (n 3: our (n 3:
?5 our (n VR ?5 our (n VR
per (cus p3 per (cus p3
_) peregrin pEr@grIn _) peregrin pEr@grIn
per (fec p3 per (fec p3
_) per (iC@@ p,Er
_) perini pErIn'i:
per (iph p3r per (iph p3r
_) per (isc pEr
_) per (ish pEr
perme (a p3:mI perme (a p3:mI
per (miss p3 per (miss p3
per (mit p3 per (mit p3
per (sis p3 per (sis p3
persever p3:sIv'i@3 persever p3:sIv'i@3
per (sp p3 per (sp p3
perspi (ra p3:sp@
per (su p3 per (su p3
per (tai p3 per (tai p3
per (tu p3 per (tu p3
_) pre (C@ pr%I _) pre (C@ pr%I
_) pre (C% prE _) pre (C% prE
_) prea (ch pri: _) prea (ch pri:
_) pre (ad pr%i:
_) pre (am pri: _) pre (am pri:
_) pre (cinc pri: _) pre (cinc pri:
pre (cio prE pre (cio prE
_) pre (coP3 pr,i: _) pre (coP3 pr,i:
preda (to prEd@ preda (to prEd@
prede (ces pri:dI prede (ces pri:dI
_) pre (diP3 pr%i
_) pre (diP3 pr%i:
_) pre (dic pr%I _) pre (dic pr%I
_) pre (em pr%i: _) pre (em pr%i:
_) pre (fec pri: _) pre (fec pri:
re (solu rE re (solu rE
re (son rE re (son rE
re (stl rE re (stl rE
re (stro rE
res (ult rI2z res (ult rI2z
re (tail ri: re (tail ri:
re (tic rE
re (tina rE
re (ti rE
_) re (tir rI2
re (trib rE re (trib rE
retro (P5 r,EtroU // prefix retro (P5 r,EtroU // prefix
re (vel rE re (vel rE
w) se z w) se z
Co) s (Er z Co) s (Er z
Co) s (En z Co) s (En z
r) s (d z
e) s (d z
_) se (clu sI2 _) se (clu sI2
secur sI2kjU@ secur sI2kjU@
self (_ 'sElf self (_ 'sElf
A) sion Z@n A) sion Z@n
?8 C) sion SVn ?8 C) sion SVn
?8 A) sion ZVn ?8 A) sion ZVn
a) sin (_ s@n
ai) sin (_ z@n ai) sin (_ z@n
u) sin (_ z@n u) sin (_ z@n
A) s (itiv z A) s (itiv z
_) size (C@ saIz _) size (C@ saIz
a) s (m z a) s (m z
o) s (m z o) s (m z
L07) s (mAn_ z
_) socie (t s@saI@ _) socie (t s@saI@
_) soma (li s@mA: _) soma (li s@mA:
pri) s (o z pri) s (o z
?8 ssion (_ =SVn ?8 ssion (_ =SVn
1_) st (_ 1_) st (_
_) st (_ s@nt _) st (_ s@nt
_) state (@ steIt
stein staIn stein staIn
ti) ssue Su: ti) ssue Su:
_) s (u s _) s (u s
_) tera tEr@ _) tera tEr@
te (rrest t2@ te (rrest t2@
r) tga (g gI r) tga (g gI
&) tia (_ S@
&s) tia (_ tS@
@) t (ia S @) t (ia S
pi) t (ia t
is) t (ian+ t
&) tian (_ =S@n
_) tian tjan
&) tial S@L
&s) tial tj@L
&) ti (ali SI
i) tia (liL06 S@
&) tien S@n
&) tience S@ns
t (ime_ t2
&) tion S=@n
&s) tion tS@n
?8 &) tion S=Vn
?8 &s) tion tSVn
tion (al S=@-n
&) tious S=@s
AC) tive (_ =tIv
s) t (l
s) t (l ?
to (morr t@ to (morr t@
_) to (nn tV _) to (nn tV
t (ooth t2 t (ooth t2
_) tri (g trI _) tri (g trI
_) tri (ni trI _) tri (ni trI
_) tri (vi trI _) tri (vi trI
_) tri (xA trI
_) tri (xA trI
tsch tS tsch tS
tse (_ tsi tse (_ tsi
_) tsk t'@sk _) tsk t'@sk
_) two tu: _) two tu:
ttu (r t@ ttu (r t@
@) tu (al tSu: @) tu (al tSu:
@) tu (at tSu:
_sta) tu tSu: _sta) tu tSu:
?3 _sta) tu (to tS@ ?3 _sta) tu (to tS@
c) tu (al_ =tSu: c) tu (al_ =tSu:
r) tue (_ tSu:
?3 tu (la_ tS@ ?3 tu (la_ tS@
@) tu (lat =tSU @) tu (lat =tSU
?3 tu (Ant tSu:
?3 tu (Ancy tSu:

tu (ous tSu:
@) tur (A tS@r @) tur (A tS@r
@) tur (al_ tS=@r @) tur (al_ tS=@r
@) tur (y tS@r
@) tur (_ tS3
ture (_ tS3
&) tur (y tS@r
&) tur (_ tS3
&) ture (_ tS3
tz ts tz ts
tze (_ tsi tze (_ tsi


_) them D%Em _) them D%Em
_) the (mA Ti: _) the (mA Ti:


.group ti
&) tia (_ S@
&s) tia (_ tS@
propi) ti (a tI
ti (ac tI
&) tian (_ =S@n
&s) tian (_ tS@n
_) tian tjan
&) tial S@L
&s) tial tj@L
&) ti (ali SI
i) tia (liL06 S@
&) tien S@n
&) tience S@ns
ti (me_ t2aI
&) tion S=@n
&s) tion tS@n
?8 &) tion S=Vn
?8 &s) tion tSVn
tion (al S=@-n
&) tious S=@s
AC) tive (_ =tIv

.group u .group u
u V u V
man) u ju: man) u ju:
val) u ju: val) u ju:
u (a ju: u (a ju:
l) u (a u: l) u (a u:
?3 L08) u (a u:
contin) u ju:
_g) ua wA: _g) ua wA:
_l) u (a u: _l) u (a u:
r) u (aC+ u: r) u (aC+ u:
?3 n) uclear u:kli@3 ?3 n) uclear u:kli@3
ucul VkjUl ucul VkjUl
@) u (da_ 'ju: @) u (da_ 'ju:
?3 @) u (da_ 'u:
?3 @L08) u (da_ 'u:
b) u (ddh U b) u (ddh U
u (esq ju: u (esq ju:
u (ga_ 'u: u (ga_ 'u:
g) u (i w g) u (i w
r) u (i u: r) u (i u:
s) u (i u: s) u (i u:
?3 t) u (i u:
?3 L08) u (i u:
u (ki_ 'u: u (ki_ 'u:
_) u (krain %ju: _) u (krain %ju:
ll) u (l ju: ll) u (l ju:
u (ly u: u (ly u:
d) u (ly ju: d) u (ly ju:
z) u (l_ 'u: z) u (l_ 'u:
&) um (_ @m
vol) u (m ju: vol) u (m ju:
u (ma_ 'u: u (ma_ 'u:
h) u (man ju: h) u (man ju:
.group ue .group ue
ue ju: ue ju:
uee ju:i: uee ju:i:
?3 L08) ue u:
l) ue u: l) ue u:
r) ue u: r) ue u:
_s) ue u: _s) ue u:
?3 t) ue u:
?3 _L08) ue (l u:@
_C) ue (l ju:@ _C) ue (l ju:@
_CC) ue (l u:@ _CC) ue (l u:@
ue (n ju:@ ue (n ju:@
@) ur (ation jUr @) ur (ation jUr
ure (_ jU@ ure (_ jU@
ur (ed_ jU@ ur (ed_ jU@
g) ured (_ @d
g) ured (_ 3d
b) ur (e jU@r b) ur (e jU@r
g) ure (_ 3 g) ure (_ 3
?3 g) ure (_ j3 ?3 g) ure (_ j3
_) x (Y z _) x (Y z
xio (n kS@ xio (n kS@
xious =kS@s xious =kS@s
xas (_ =ks@s
xis (_ =ksIs xis (_ =ksIs
xus (_ =ks@s
xu (a =kSu: xu (a =kSu:
lu) x (ur gZ lu) x (ur gZ
?3 lu) xu (r gZU@
xure (_ kS%U@ xure (_ kS%U@


.group y .group y
_) z (wY z _) z (wY z


@) zales (_ z'A:l@s @) zales (_ z'A:l@s
zei zaI
zes (_ zI2z zes (_ zI2z
zh Z zh Z
zu (_ =zu: zu (_ =zu:
?8 Ening (_ EnI2N ?8 Ening (_ EnI2N
Ene (_ i:n Ene (_ i:n
Ened (_ @nd Ened (_ @nd
E (nt_ @
En (g @n
E (nt @
E (ning E E (ning E
E (nti 'E E (nti 'E
E (ntu 'E E (ntu 'E
Eri (A 'i@rI2 Eri (A 'i@rI2
Er (ie_ @r Er (ie_ @r
Er (ic_ Er Er (ic_ Er
Er (ous_ @r
Er (_ 3 Er (_ 3
ad) Er (_S1 3 ad) Er (_S1 3
ad) Ers (_S2 3z ad) Ers (_S2 3z


// non-ascii characters with specified pronunciations // non-ascii characters with specified pronunciations
// List the accented characters in en_list with the $accent attribute // List the accented characters in en_list with the $accent attribute
á (X 'A:
à a à a
é eI é eI
é (X 'eI
é (CA_ 'eI
_) é %I _) é %I
ée i: ée i:
ê E: ê E:
ë E ë E
ï i: ï i:
ö 3: ö 3:
ör 3:
ü u: ü u:
ç s ç s
ß s ß s

+ 848
- 13
dictsource/fa_list
File diff suppressed because it is too large
View File


+ 34
- 17
dictsource/fa_rules View File

_) اصغر (آL09L09P4@ asq1aR _) اصغر (آL09L09P4@ asq1aR
_) ابو (L04L09L09P3@ abu _) ابو (L04L09L09P3@ abu
_) ابو (آL09L09P3@ abu _) ابو (آL09L09P3@ abu
_) ابوال (L04L09L09P5@ abol'
_) ابوال (آL09L09P5@ abol'


// Suffixes ا // Suffixes ا
L09L04) الله (_Sm4 ollAh L09L04) الله (_Sm4 ollAh
L09L04) انداز (_Sm5 andAz L09L04) انداز (_Sm5 andAz
L09L04) انگیز (_Sm5 angiz L09L04) انگیز (_Sm5 angiz
L09L04) اباد (_Sm4 AbAd L09L04) اباد (_Sm4 AbAd
L09L09) امیر (_Sm4 amiR
L09L09) اکبر (_Sm4 akbaR
L09L09) اصغر (_Sm4 asq1aR
// Special passive pronouns eg. خوابانده // Special passive pronouns eg. خوابانده
l09l09l03) انده (_Sm4 Ande: l09l09l03) انده (_Sm4 Ande:
l09l09l03) اندۀ (_Sm4 Andeje l09l09l03) اندۀ (_Sm4 Andeje
_) چار (آL09L09P3@ 'tSAR _) چار (آL09L09P3@ 'tSAR
_) چهار (L04L09L09P4@ 'tSAhAR _) چهار (L04L09L09P4@ 'tSAhAR
_) چهار (آL09L09P4@ 'tSAhAR _) چهار (آL09L09P4@ 'tSAhAR
_) چند (L04L09L09P3@ 'tSAand
_) چند (آL09L09P3@ 'tSAand
_) چند (L04L09L09P3@ 'tSand
_) چند (آL09L09P3@ 'tSand


// Suffixes چ // Suffixes چ
L09L09L09) چی (_Sm2 tSi L09L09L09) چی (_Sm2 tSi
_) خویش (آL09L09P4@ xiS _) خویش (آL09L09P4@ xiS
_) خان (L04L09L09P3@ xAn _) خان (L04L09L09P3@ xAn
_) خان (آL09L09P3@ xAn _) خان (آL09L09P3@ xAn
_) خواهش (L04L09L09P5@ xAheS
_) خواهش (آL09L09P5@ xAheS
_) خواهد (L04L09L09P5@ xAhad
_) خواهد (آL09L09P5@ xAhad
_) خواهید (L04L09L09P6@ xAhid
_) خواهید (آL09L09P6@ xAhid


// suffixes خ // suffixes خ
L09L09) خر (_Sm2 xaR L09L09) خر (_Sm2 xaR
L09L09) خوش (_Sm3 xoS L09L09) خوش (_Sm3 xoS
L09L09) خیز (_Sm3 xiz L09L09) خیز (_Sm3 xiz
L09L09) خواست (_Sm5 xAst L09L09) خواست (_Sm5 xAst
L09L09) خواب (_Sm4 xAb


// arabic form of words (Babs) خ // arabic form of words (Babs) خ
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) دست (_Sm3 dast L09L09) دست (_Sm3 dast
L09L09) درد (_Sm3 daRd L09L09) درد (_Sm3 daRd
L09L09) دوش (_Sm3 duS L09L09) دوش (_Sm3 duS
L09L09) دهی (_Sm3 dehi


// arabic form of words (Babs) د // arabic form of words (Babs) د
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) زده (_+Sm3 zade: L09L09) زده (_+Sm3 zade:
L09L09) زدۀ (_+Sm3 zadeje L09L09) زدۀ (_+Sm3 zadeje
L09L09) زدن (_Sm3 zadan L09L09) زدن (_Sm3 zadan
L09L09) زدا (_Sm3 zodA


// arabic form of words (Babs) ز // arabic form of words (Babs) ز
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09L09L09) ص (L03L09L09L09_ sa L09L09L09L09) ص (L03L09L09L09_ sa


// Prefixes ص // Prefixes ص
_) صاحب (L04L09L09P4@ saheb
_) صاحب (آL09L09P4@ saheb
_) صاحب (L04L09L09P4@ sAheb
_) صاحب (آL09L09P4@ sAheb
_) صدر (L04L09L09P5@ sadr _) صدر (L04L09L09P5@ sadr
_) صدر (آL09L09P5@ sadr _) صدر (آL09L09P5@ sadr


// Suffixes ط // Suffixes ط
L09L09) طلب (_Sm3 talab L09L09) طلب (_Sm3 talab
L09L09) طلبان (_Sm5 talabAn


// arabic form of words (Babs) ط // arabic form of words (Babs) ط
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ع // Prefixes ع
_) عبد (L04L09L09P3@ 'a:bd _) عبد (L04L09L09P3@ 'a:bd
_) عبد (آL09L09P3@ 'a:bd _) عبد (آL09L09P3@ 'a:bd

_) عبدال (L04L09L09P5@ abdol'
_) عبدال (آL09L09P5@ abdol'
_) علی (L04L09L09P3@ a:li _) علی (L04L09L09P3@ a:li
_) علی (آL09L09P3@ a:li _) علی (آL09L09P3@ a:li


L09L09) کنان (_Sm4 konAn L09L09) کنان (_Sm4 konAn
L09L09) کننده (_Sm5 konande: L09L09) کننده (_Sm5 konande:
L09L09) کنندۀ (_Sm5 konandeje L09L09) کنندۀ (_Sm5 konandeje
L09L09) کنندگان (_Sm7 konandegAn
L09L09) کوچک (_Sm4 kutSak L09L09) کوچک (_Sm4 kutSak


// arabic form of words (Babs) ک // arabic form of words (Babs) ک
L09L09) گرفت (_Sm4 geReft L09L09) گرفت (_Sm4 geReft
L09L09) گشا (_Sm3 goSA L09L09) گشا (_Sm3 goSA
L09L09) گریز (_Sm4 goRiz L09L09) گریز (_Sm4 goRiz
L09L09) گسار (_Sm4 gosAR


// arabic form of words (Babs) گ // arabic form of words (Babs) گ
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ل // Prefixes ل
// Suffixes ل // Suffixes ل
L09L09) لوژ (_Sm3 lotZ
L09L09) لوژیک (_Sm5 lotZik
L09L09) لوژ (_Sm3 loZ
L09L09) لوژیک (_Sm5 loZik
L09L09) لوگ (_Sm3 log L09L09) لوگ (_Sm3 log


// arabic form of words (Babs) ل // arabic form of words (Babs) ل
L09L09L03) ند (_NSm2 and L09L09L03) ند (_NSm2 and
L09L09) نوشت (_Sm4 neveSt L09L09) نوشت (_Sm4 neveSt
L09L09) نشین (_Sm4 neSin L09L09) نشین (_Sm4 neSin
L09L09) نکردن (_Sm5 nakaRdan
L09L09L09) نشدن (_Sm4 naSodan


// arabic form of words (Babs) ن // arabic form of words (Babs) ن
//فواعل eg. جوامع //فواعل eg. جوامع
_) هم (آL09P2@ ham _) هم (آL09P2@ ham


// suffixes ه // suffixes ه
L09L03) ه (_++NSm1 e:
L09L01و) ه (_++NSm1 e:
L09) هٔ (_Sm2 eje
L09L03) ه (_++Sm1 e:
L09L01و) ه (_++Sm1 e:
L09L09) ها (_NSm2 hA L09L09) ها (_NSm2 hA
// Plural pronoun ها // Plural pronoun ها
L09L09) های (_NSm3 h'Aje L09L09) های (_NSm3 h'Aje
// Suffixes یی // Suffixes یی
L09L01) یی (_Sm2 i: L09L01) یی (_Sm2 i:
L09L03) یی (_Sm2 ii
L09L03) یی (_Sm1 i
L09L01) ییم (_NSm3 i:m L09L01) ییم (_NSm3 i:m
L09L03) ییم (_NSm3 iim L09L03) ییم (_NSm3 iim
L09L09L01) یید (_NSm3 i:d L09L09L01) یید (_NSm3 i:d
L09و) ی (L01 j L09و) ی (L01 j
L09ا) ی (L03 j L09ا) ی (L03 j
L09ا) ی (L01 j L09ا) ی (L01 j
L03) ی (وL03 j
L03) ی (وL03 ij
//otherwise //otherwise
L02) ی (_ j L02) ی (_ j
_ع) ی (L03_ j _ع) ی (L03_ j
L09L01) ی (_Sm1 j L09L01) ی (_Sm1 j
L09L09آ) ی (_Sm1 je L09L09آ) ی (_Sm1 je
L09L09ا) ی (_NSm1 je L09L09ا) ی (_NSm1 je
L09L09ی) ی (_Sm1 je
L09L01و) ی (_Sm1 i L09L01و) ی (_Sm1 i
L09L03و) ی (_Sm1 je L09L03و) ی (_Sm1 je
L09L01) یند (_Sm3 jand L09L01) یند (_Sm3 jand


.group ء .group ء
ء ? ء ?
// suffixes ء
L09L09L04) ء (_Sm1 ?
L09L09ا) ء (_Sm1
L09L09آ) ء (_Sm1



//this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ " //this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ "


ٔ ٔ


// suffixes ٔ // suffixes ٔ
L09L09) ٔ (_Sm1
L09L03) ٔ (_NSm1 je




.group ّ .group ّ

+ 2
- 0
dictsource/ka_list View File

ჸ elifi ჸ elifi
უ u უ u


v _^_EN // not 'roman'
x _^_EN


% prots#enti $max3 % prots#enti $max3
+ pliusi $max3 + pliusi $max3

+ 81
- 17
dictsource/pt_list View File

// pronouns // pronouns
eu $u+ $verbf eu $u+ $verbf
tu $u+ tu $u+
você vos'e $u+
você vose $u2+
ele 'ely $u+ ele 'ely $u+
ela $u+ ela $u+
nós $u+ nós $u+
vós $u+ vós $u+
vocês $u+
vocês $u2+
eles $u+ eles $u+
elas $u+ elas $u+


eram E*&U~ $u1 eram E*&U~ $u1


fui $u // .. preterite fui $u // .. preterite
foste $u
foste fostSy $u1 // & fostes
foi $u foi $u
fomos $u fomos $u
fostes $u


fora $u // .. pluperfect fora $u // .. pluperfect
fômamos $u fômamos $u


abacaxi abakaSy abacaxi abakaSy
abordo $alt abordo $alt
aborto $alt $verb
aborto $alt $verb
acerto $alt2 $noun acerto $alt2 $noun
acertos $alt2 acertos $alt2
acervo $alt2 acervo $alt2
adepto $alt adepto $alt
adereço $alt2 adereço $alt2
adore $alt adore $alt
adorno $alt $verb
albatrozes $alt albatrozes $alt
alcateia $alt alcateia $alt
alferes $alt alferes $alt
alicerce $alt alicerce $alt
amanheça $alt2 amanheça $alt2
amanheço $alt2 amanheço $alt2
amanhecesse $alt2
amarelo $alt amarelo $alt
ameba $alt ameba $alt
amores $alt2 amores $alt2
anoitecesse $alt2
anoiteça $alt2 anoiteça $alt2
anoiteço $alt2 anoiteço $alt2
apego $alt2
apego $alt2 $noun
apelo $alt $verb
aposto $alt $verb
apreço $alt2 apreço $alt2
aperto $alt2 $noun aperto $alt2 $noun
apoio $alt $verb
apoio $alt $verb
aprendeste $alt2 aprendeste $alt2
aprovo $alt aprovo $alt
arredores $alt arredores $alt
arremesso $alt2 $noun arremesso $alt2 $noun
arroz $alt2 arroz $alt2
assembleia $alt assembleia $alt
aterro $alt2 $noun
atmosfera $alt atmosfera $alt
atrozes $alt atrozes $alt
austera $alt austera $alt
bilhete $alt2 bilhete $alt2
boca $alt2 boca $alt2
bochecha $alt2 bochecha $alt2
bojo $alt2
boleia $alt boleia $alt
bolero $alt
bolo $alt2 bolo $alt2
bolo $alt $verb
borboleta $alt2 borboleta $alt2
bordo $alt bordo $alt
boto $alt2 $noun
bromelha $alt bromelha $alt
cabeça $alt2 cabeça $alt2
cabresto $alt2 cabresto $alt2
camiseta $alt2 camiseta $alt2
cantora $alt2 cantora $alt2
caractere $alt caractere $alt
caramelo $alt
careta $alt2 careta $alt2
carreta $alt2 carreta $alt2
casebre $alt casebre $alt
castelo $alt castelo $alt
cateto $alt2 cateto $alt2
catorze $alt2 catorze $alt2
cebola $alt2
cefaleia $alt cefaleia $alt
cerca $alt $verb cerca $alt $verb
cerco $alt $verb cerco $alt $verb
cesta $alt
cesta $alt2
cesto $alt2
chamego $alt2 chamego $alt2
chefe $alt chefe $alt
chinelo $alt chinelo $alt
choro $alt2 $noun choro $alt2 $noun
chupeta $alt2 chupeta $alt2
clamores $alt2
coco $alt2 coco $alt2
cofre $alt cofre $alt
coice $alt2 coice $alt2
colabore $alt colabore $alt
colheste $alt2 colheste $alt2
colmeia $alt colmeia $alt
colore $alt
começo $alt2 $noun começo $alt2 $noun
comodo $alt2 comodo $alt2
comera $alt2 comera $alt2
comeres $alt2 comeres $alt2
comeste $alt2 comeste $alt2
concerto $alt2 $noun
concordo $alt concordo $alt
conforto $alt $verb
conheceste $alt2 conheceste $alt2
conheço $alt2 conheço $alt2
consolo $alt2 $noun
contivermos $alt contivermos $alt
copa $alt copa $alt
copo $alt copo $alt
descova $alt2 descova $alt2
desespero $alt2 $noun desespero $alt2 $noun
desfecho $alt2 desfecho $alt2
desprezo $alt $verb
desprezo $alt $verb
deva $alt2 deva $alt2
devo $alt2 devo $alt2
deveras $alt deveras $alt
dissermos $alt dissermos $alt
dobro $alt2 $noun dobro $alt2 $noun
doce $alt2 doce $alt2
doutora $alt2
droga $alt droga $alt
duelo $alt
dueto $alt2
elixir eliSir elixir eliSir
elo $alt
emprego $alt2 $noun emprego $alt2 $noun
encosto $alt $verb
endereço $alt2 endereço $alt2
endereço $alt $verb
enforco $alt enforco $alt
engordo $alt engordo $alt
enumerem $alt enumerem $alt
enredo $alt $verb
enredo $alt $verb
enterro $alt2 $noun enterro $alt2 $noun
envelope $alt envelope $alt
envolto $alt2 envolto $alt2
eritreia $alt eritreia $alt
erro $alt2 $noun erro $alt2 $noun
erros $alt2 erros $alt2
esboço $alt $verb
escopeta $alt2 escopeta $alt2
escroto $alt2 escroto $alt2
esforço $alt $verb
esforço $alt $verb
esforços $alt esforços $alt
esgoto $alt2 $noun
esperma $alt esperma $alt
espeto $alt2 $noun espeto $alt2 $noun
espiroqueta $alt2 espiroqueta $alt2
estiveres $alt estiveres $alt
estivermos $alt estivermos $alt
estrela $alt2 estrela $alt2
estremeceste $alt2
estrofe $alt estrofe $alt
estorno $alt $verb
estorvo $alt $verb
etiqueta $alt2 etiqueta $alt2
europa $alt europa $alt
exagero $alt $verb exagero $alt $verb
expeça $alt2 expeça $alt2
expeço $alt2 expeço $alt2
explore $alt explore $alt
faceta $alt2
farelo $alt
farofa $alt farofa $alt
febre $alt febre $alt
feitora $alt2 feitora $alt2
forro $alt $verb forro $alt $verb
fosse $alt2 fosse $alt2
fossem $alt2 fossem $alt2
foste $alt2
frevo $alt2 frevo $alt2
galera $alt galera $alt
gameta $alt2 gameta $alt2
gorda $alt2 gorda $alt2
gota $alt2 gota $alt2
gozo $alt $verb gozo $alt $verb
graveto $alt2
grego $alt2 grego $alt2
grelha $alt grelha $alt
grega $alt2 grega $alt2
hoje $alt2 hoje $alt2
houvermos $alt houvermos $alt
ideia $alt ideia $alt
insonoro $alt
joga $alt joga $alt
jogam $alt jogam $alt
jogos $alt jogos $alt
mantiverdes $alt mantiverdes $alt
mantiveres $alt mantiveres $alt
mantivermos $alt mantivermos $alt
marmelo $alt
marreta $alt2 marreta $alt2
martelo $alt martelo $alt
merda $alt merda $alt
morda $alt2 morda $alt2
moreia $alt moreia $alt
mortos $alt mortos $alt
motora $alt2
?2 mulher mulj'Er ?2 mulher mulj'Er
?4 mulher mul^'Er ?4 mulher mul^'Er
mui mwi mui mwi
mulheres $alt mulheres $alt
mureta $alt2 mureta $alt2
mutreta $alt2 mutreta $alt2
namoro $alt2 $noun
naquele $alt2 naquele $alt2
negra $alt2 negra $alt2
negro $alt2 negro $alt2
obstetra $alt obstetra $alt
obsoleta $alt2 obsoleta $alt2
obsoleto $alt2 obsoleto $alt2
pbvivera $alt
obtivermos $alt obtivermos $alt
odisseia $alt odisseia $alt
onu $1 onu $1
opereta $alt2 opereta $alt2
ordens $alt ordens $alt
osso $alt2 osso $alt2
ostra $alt2
ovos $alt ovos $alt
pachorra $alt2
padeceste $alt2 padeceste $alt2
paexa paeSa paexa paeSa
pangeia $alt
palacete $alt2 palacete $alt2
palheta $alt2 palheta $alt2
pangeia $alt
pantera $alt
paralelo $alt paralelo $alt
parede $alt2 parede $alt2
pastora $alt2 pastora $alt2
pedra $alt pedra $alt
pelego $alt2 pelego $alt2
pelo $alt $verb
perde $alt perde $alt
perdem $alt perdem $alt
perede $alt2 perede $alt2
peso $alt peso $alt
peso $alt2 $noun peso $alt2 $noun
piloto $alt2 piloto $alt2
pintora $alt2
pirueta $alt2 pirueta $alt2
plateia $alt plateia $alt
plebeia $alt plebeia $alt
polca $alt
porcos $alt porcos $alt
porrete $alt2 porrete $alt2
porra $alt2 porra $alt2
puder $alt puder $alt
punheta $alt punheta $alt
puserdes $alt puserdes $alt
quarteto $alt2
quinteto $alt2
quisermos $alt quisermos $alt
recomeço $alt2 $noun recomeço $alt2 $noun
recordo $alt recordo $alt
recorto $alt recorto $alt
rede $alt2 rede $alt2
redor $alt redor $alt
reembolso $alt $verb
reforços $alt reforços $alt
refresco $alt $verb
reforço $alt $verb
refresco $alt $verb
reitora $alt2 reitora $alt2
relevo $alt2 $noun
remorso $alt remorso $alt
reprovo $alt reprovo $alt
resolve $alt resolve $alt
resolvem $alt resolvem $alt
rixa x'iS& rixa x'iS&
rocha $alt
rock $alt
rogas $alt rogas $alt
rolo $alt2 $noun
rumores $alt2
saleta $alt2 saleta $alt2
sarjeta $alt sarjeta $alt
severa $alt severa $alt
severo $alt severo $alt
seborreia $alt seborreia $alt
seco $alt2 $noun seco $alt2 $noun
selo $alt $verb
secos $alt2
selo $alt $verb
selvagem seUv'aZeIN selvagem seUv'aZeIN
sexteto $alt2
?1 senhora $alt2 ?1 senhora $alt2
sesta $alt2
senhores $alt2
sincera $alt sincera $alt
sincero $alt sincero $alt
sinopse $alt sinopse $alt
sopre $alt sopre $alt
soprem $alt soprem $alt
sopro $alt $verb sopro $alt $verb
soro $alt2
sorvete $alt2 sorvete $alt2
sossego $alt2 $noun sossego $alt2 $noun
souberdes $alt souberdes $alt
soubermos $alt soubermos $alt
suborno $alt $verb
sufoco $alt2 $noun
sufocos $alt2
sugere $alt sugere $alt
sugerem $alt sugerem $alt
suporto $alt suporto $alt
suor swOr suor swOr
tapete $alt2 tapete $alt2
tempero $alt $verb
tempero $alt2 $noun
teta $alt2 teta $alt2
tetra $alt
tiver $alt tiver $alt
tivera $alt
tiveres $alt tiveres $alt
tivermos $alt tivermos $alt
tocha $alt tocha $alt
toga $alt toga $alt
tola $alt2
tolo $alt2
topo $alt $verb
torno $alt $verb
torres $alt2 torres $alt2
tortos $alt tortos $alt
traqueia $alt traqueia $alt
travesso $alt2 travesso $alt2
tremores $alt2
trevo $alt2 trevo $alt2
troco $alt2 $noun troco $alt2 $noun
tropa $alt tropa $alt

+ 106
- 70
dictsource/pt_rules View File

.L04 a am e em o ue uem .L04 a am e em o ue uem
.L05 r ra ram re rem rdes .L05 r ra ram re rem rdes
.L06 ra ram ste re rem .L06 ra ram ste re rem
.L07 sse ssem ste




.group a .group a
@s) e (rAm_ E @s) e (rAm_ E
sp) e (rA_ E sp) e (rA_ E
sp) e (rAm_ E sp) e (rAm_ E
f) e (re_ E
f) e (rem_ E


e (rgA_ E e (rgA_ E
e (rgAm_ E e (rgAm_ E
sf) e (ra_ E // esfera, biosfera sf) e (ra_ E // esfera, biosfera
//sort //sort
qu) e (brL04_ E
_hosp) e (dL03_ E
_estr) ei (L03_ EI
_inv) e (jL04_ E
_dec) e (pL04_ E
_g) e (rL04_ E
_op) e (rL04_ E
_qu) e (rL04_ E
_alt) e (rL04_ E
_inv) e (rtL03_ e
_f) e (rvL03_ e
_p) e (scL03_ E
_m) e (sclL04_ E
_m) e (tL03_ e
_com) e (tL03_ e
_rem) e (tL03_ e
_derr) e (tL03_ e
_prom) e (tL03_ e
_subm) e (tL03_ e
_fiz) e (L05_ E
_exag) e (L05_ E
_houv) e (L05_ E
_perd) e (L05_ e
_soub) e (L05_ E
_rend) e (L06_ e
_vend) e (L06_ e
_atend) e (L06_ e
_compreend) e (L06_ e
_entend) e (L06_ e
_estend) e (L06_ e
respond) e (L06_ e // cor-
com) e (L07_ e
_bat) e (L07_ e
_beb) e (L07_ e
_tem) e (L07_ e
_viv) e (L07_ e
colh) e (L07_ e // & es-
_corr) e (L07_ e
_eleg) e (L07_ e
_morr) e (L07_ e
_perd) e (L07_ e
_sofr) e (L07_ e
_torc) e (L07_ e
_venc) e (L07_ e
_adoec) e (L07_ e
_aperd) e (L07_ e
_merec) e (L07_ e
conhec) e (L07_ e // & re-
entend) e (L07_ e
preend) e (L07_ e // sur- com-
respond) e (L07_ e // cor-
_convenc) e (L07_ e
_entristec) e (L07_ e
_envaidec) e (L07_ e
_escond) e (L07_ e
_obedec) e (L07_ e
interromp) e (L07_ e
intromet) e (L07_ e
qu) e (brL04_ E
_hosp) e (dL03_ E
_estr) ei (L03_ EI
_inv) e (jL04_ E
_dec) e (pL04_ E
_p) e (quL02_ E
_s) e (quL02_ E
l) e (que_ E
_imp) e (rL03_ E
_reit) e (rL03_ E
_g) e (rL04_ E
_op) e (rL04_ E
_qu) e (rL04_ E
_alt) e (rL04_ E
_sup) e (rL04_ E
_tol) e (rL04_ E
_coop) e (rL04_ E
_temp) e (rL04_ E
_) e (rguL02_ E
_alb) e (rguL02_ E
_enx) e (rguL02_ E
_inv) e (rtL03_ e
_f) e (rvL03_ e
_p) e (scL03_ E
_m) e (sclL04 E
_l) e (ssL02_ e
_esp) e (ssL03_ e
_m) e (tL03_ e
_com) e (tL03_ e
_rem) e (tL03_ e
_derr) e (tL03_ e
_prom) e (tL03_ e
_subm) e (tL03_ e
_comprom) e (tL03_ e _comprom) e (tL03_ e
_sol) e (trL03_ E
_atr) e (vL03_ e
_escr) e (vL03_ e
_descr) e (vL03_ e
_embel) e (zL04_ E
_pr) e (zL04_ E
_acont) e (çL01_ e
_ado) e (çL03_ e
_aqu) e (çL03_ e
_car) e (çL03_ e
_mer) e (çL03_ e
_pad) e (çL03_ e
_per) e (çL03_ e
_esqu) e (çL03_ e
_obed) e (çL03_ e
_ofer) e (çL03_ e
_aborr) e (çL03_ e
_sol) e (trL03_ E
_pen) e (trL04_ E
scr) e (vL03_ e // e- in- pre- ree-
_atr) e (vL03_ e
_descr) e (vL03_ e
_pr) e (zL04_ E
_embel) e (zL04_ E
par) e (çL01_ e // pareça, apareça
_acont) e (çL01_ e
_arref) e (çL01_ e
_ado) e (çL03_ e
_aqu) e (çL03_ e
_car) e (çL03_ e
_mer) e (çL03_ e
_pad) e (çL03_ e
_per) e (çL03_ e
_esqu) e (çL03_ e
_obed) e (çL03_ e
_ofer) e (çL03_ e
_aborr) e (çL03_ e
_compar) e (çL03_ e _compar) e (çL03_ e
_desapar) e (çL03_ e _desapar) e (çL03_ e
_enfraqu) e (çL03_ e _enfraqu) e (çL03_ e
_enriqu) e (çL03_ e _enriqu) e (çL03_ e
_envaid) e (çL03_ e _envaid) e (çL03_ e
_esclar) e (çL03_ e
_esclar) e (çL03_ e
_reapar) e (çL03_ e _reapar) e (çL03_ e
_reconh) e (çL03_ e _reconh) e (çL03_ e
_coop) e (rL04_ E
_sup) e (rL04_ E
_imp) e (rL03_ E
_temp) e (rL04_ E
_esp) e (ssL03_ e
_l) e (ssL02_ e
_perd) e (L05_ e
_rend) e (L06_ e
_atend) e (L06_ e
_pen) e (trL04_ E
_Xref) e (rL02_ E
_desf) e (rL02_ E
_conf) e (rL02_ E
_reit) e (rL03_ E
par) e (çL01_ e // pareça, apareça
_arref) e (çL01_ e
_beb) e (ssL02_ e
com) e (ssL02_ e
//endsort //endsort


_exag) e (L05_ E
_fiz) e (L05_ E
_houv) e (L05_ E
_soub) e (L05_ E


_compreend) e (L06_ e
_correspond) e (L06_ e
_entend) e (L06_ e
_estend) e (L06_ e
_respond)e (L06_ e
_vend) e (L06_ e


.group é .group é
é ''E é ''E


//sort //sort
_engl) o (bL01_ O _engl) o (bL01_ O
_esn) o (bL04_ O
_deb) o (chL04_ O
_desabr) o (chL04_ O
_r) o (gL04_ O _r) o (gL04_ O
_adv) o (gL04_ O _adv) o (gL04_ O
_ref) o (gL04_ O _ref) o (gL04_ O
_ap) oi (L01_ OI _ap) oi (L01_ OI
_esc) o (lhL02_ O
_m) o (lhL04_ O _m) o (lhL04_ O
_abs) o (lvL02_ O _abs) o (lvL02_ O
_env) o (lvL02_ O _env) o (lvL02_ O
c) o (rrL01_ o // escorra, incorra, corra, recorra
_m) o (rrL01_ o
p) ostos (_ Ost=Us# // dispostos etc.
_esn) o (bL04_ O
_esc) o (lhL02_ O
_rev) o (lvL02_ O _rev) o (lvL02_ O
_desenv) o (lvL02_ O _desenv) o (lvL02_ O
_ent) o (pL02_ O _ent) o (pL02_ O
c) o (rrL01_ o // escorra, incorra, corra, recorra
_m) o (rrL01_ o
_r) o (snL01_ O
_c) o (spL02_ O _c) o (spL02_ O
p) ostos (_ Ost=Us# // dispostos etc.
//endsort //endsort


.group ô .group ô
r) u (_A u r) u (_A u
u (A_ 'u u (A_ 'u


u (am_ 'u
u (em_ 'u u (em_ 'u
ui uI ui uI
ui (_ 'uI ui (_ 'uI
mo) x (a S mo) x (a S
_o) x (A S _o) x (A S
_o) x (i ks _o) x (i ks
_o) x (í ks
pi) x (A S pi) x (A S
_pro) x (A S _pro) x (A S
_pra) x (A S _pra) x (A S

+ 13
- 9
dictsource/ur_list View File

// This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal)
// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling to phoneme exceptions for Urdu
// Letter Names, Numbers and exceptional pronounciation of Urdu




// Letter names
// The Letter names
ا alIf ا alIf
ب be: ب be:
پ pe: پ pe:
ُ pe:S ُ pe:S




// numbers
// The numbers
_0 s'IfaR _0 s'IfaR
_1 'e:k _1 'e:k
_2 'do: _2 'do:
_3 t'i:n _3 t'i:n
_4 c'a:R _4 c'a:R
_5 p'a:Nc _5 p'a:Nc
_6 ch'aI
_6 ch'eh
_7 s'a:t _7 s'a:t
_8 'a:th _8 'a:th
_9 n'aU _9 n'aU
_28 stha:'i:s _28 stha:'i:s
_29 Unt'i:s _29 Unt'i:s
_30 t'i:s _30 t'i:s
_31 ikt'i:s
_31 ikVt'i:s
_32 bat:'i:s _32 bat:'i:s
_33 taINt'i:s
_33 t'aINt'i:s
_34 caUNt'i:s _34 caUNt'i:s
_35 paINt'i:s _35 paINt'i:s
_36 chat:'i:s _36 chat:'i:s
_38 aRt'i:s _38 aRt'i:s
_39 Unta:l'i:s _39 Unta:l'i:s
_40 ca:l'i:s _40 ca:l'i:s
_41 Ikta:l'i:s
_41 IkVta:l'i:s
_42 baja:l'i:s _42 baja:l'i:s
_43 te:Nta:l'i:s _43 te:Nta:l'i:s
_44 cava:l'i:s _44 cava:l'i:s
_0M2 l'a:kh _0M2 l'a:kh
_0M3 kaR'o:R _0M3 kaR'o:R
_0M4 'aRab _0M4 'aRab
_0M5 'khaRab
_dpt _ISaRI'Ia_ _dpt _ISaRI'Ia_


jonathan dZ'Onathan

// Exception of phonemes

پاکستان p'a:k'i:st'a:n

+ 113
- 60
dictsource/ur_rules View File



// This ur_rules file is written by Him Prasad Gautam (Kathmandu, Nepal).
// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling to phoneme rules for Urdu
// phoneme rules for Urdu
// Letter group - l01: Vowels


.replace .replace
٠ 0 ٠ 0






// vowel signs, alif is silent at start of word if these follow
// vowel signs, alif acts as consonants at start of word if these follow
.L01 َ ِ ُ و ی ع ا .L01 َ ِ ُ و ی ع ا



// VOWELS // VOWELS


.group َ .group َ
ُع O ُع O


.group ھ .group ھ
ھ H
ھ HV
ھ (_ H:
ھ (l01 H


.group ا .group ا
ا a: ا a:
_) ا (L01 // silent before a vowel
_) ا a
_) او u:
_) ای i:
_) ا (L01 // Acts like Consonants if followed by a vowel but is silent.
_) ا a
_) او u:
_) ای i:


.group آ .group آ
آ a: آ a:



.group ع .group ع
ع a: ع a:
عا a: عا a:
_) ع a
_) ع a




.group و .group و
وُ u: وُ u:
وٗ u: وٗ u:
و (L01 v و (L01 v
_) و v
_) و v


.group ی .group ی
ی e: ی e:
ی (L01 j ی (L01 j
ی (_ i: ی (_ i:
_) ی j
_) ی j




.group ے // yeh barree .group ے // yeh barree
// CONSONANTS // CONSONANTS


.group ب .group ب
ب b
بھ bh

ب bV
بھ bhV
بھ (L01 bh
ب (L01 b


.group پ .group پ
پ p
پھ ph
پ pV
پھ phV
پ (L01 p
پھ (L01 ph




.group ت .group ت
ت t
تھ th

ت tV
تھ thV
ت (L01 t
تھ (L01 th


.group ٹ .group ٹ
ٹ t.
ٹھ th.

ٹ t.V
ٹھ th.V
ٹ (L01 t.
ٹھ (L01 th.


.group ث .group ث
ث s
ث sV
ث (L01 s


.group ج .group ج
ج J
جھ Jh
ج JV
جھ JhV
ج (L01 J
جھ (L01 Jh




.group چ .group چ
چ c
چھ ch
چ cV
چھ chV
چ (L01 c
چھ (L01 ch


.group ح .group ح
ح H
ح HV
ح (L01 H


.group خ .group خ
خ x
خ xV
خ (L01 x


.group د .group د
د d
دھ dh
د dV
دھ dhV
د (L01 d
دھ (L01 dh


.group ڈ .group ڈ
ڈ d.
ڈھ dh.
ڈ d.V
ڈھ dh.V
ڈ (L01 d.
ڈھ (L01 dh.


.group ذ .group ذ
ذ D
ذ DV
ذ (L01 D


.group ر .group ر
ر R
ر RV
ر (L01 R


.group ڑ .group ڑ
ڑ r.
ڑ r.V
ڑ (L01 r.


.group ز .group ز
ز z
ز zV
ز (L01 z


.group ژ .group ژ
ژ Z
ژ ZV
ژ (L01 Z


.group س .group س
س s
س sV
س (L01 s


.group ش .group ش
ش S
ش SV
ش (L01 S


.group ص .group ص
ص s.
ص s.V
ص (L01 s.


.group ض .group ض
ض z
ض zV
ض (L01 z


.group ط .group ط
ط t
طھ th
ط tV
طھ thV
ط (L01 t
طھ (L01 th


.group ظ .group ظ
ظ z.
ظ z.V
ظ (L01 z.


.group غ .group غ
غ Q
غ QV
غ (L01 Q


.group ف .group ف
ف f
ف fV
ف (L01 f


.group ق .group ق
ق q
ق qV
ق (L01 q


.group ک .group ک
ک k
کھ kh
ک kV
کھ khV
ک (L01 k
کھ (L01 kh


.group گ .group گ
گ g
گھ gh
گ gV
گھ ghV
گ (L01 g
گھ (L01 gh


.group ل .group ل
ل l
ل lV
ل (L01 l


.group م .group م
م m
م mV
م (L01 m


.group ن .group ن
ن n
ن nV
ن (L01 n


.group ں .group ں
ں n // this should nasalize the vowel ں n // this should nasalize the vowel
ہ (_ a ہ (_ a




// Common symbols

.group
$ do:l@R
, sVkat.Vh // Sakata سکتہ
! f'iJa:ja //Fijaya فجائیہ
; w'ak't'a //Waqfa وقفہ
: r'a:b'tah//Rabtar رابطہ
? saw'a:l'i:ja:n'is'a:nV // Sawaliya Nishan سوالیہ نشان
% f'i:sVd //Fisad فیصد


.group 0xe0a4 // devanagari .group 0xe0a4 // devanagari
0xe0a4 _^_HI // switch to hindi voice
0xe0a4 _^_NE // switch to Nepali voice
.group 0xe0a5 // devanagari .group 0xe0a5 // devanagari
0xe0a5 _^_HI
0xe0a5 _^_NE


.group
$ do:l@R

+ 46
- 24
dictsource/vi_rules View File

_) b _b _) b _b


.group c .group c
c k
c g //k
c (_ kh c (_ kh
ch c // try [tS;] [tS] [c] ch c // try [tS;] [tS] [c]


.group d .group d
d J // try [z] [J] [dZ] [dZ;] [J^]
d J^ // try [z] [J] [dZ] [dZ;] [J^]


.group đ .group đ
đ d đ d
.group g .group g
g Q // try [g] [Q] g Q // try [g] [Q]
gh Q // or [g] [Q] gh Q // or [g] [Q]
g (i D // try [D] [z] [j] [J^] [z;] [J] [dZ]
g (ì D
g (í D
g (ỉ D
g (ĩ D
g (ị D
gi D
g (i J^ // try [D] [z] [j] [J^] [z;] [J] [dZ]
g (ì J^
g (í J^
g (ỉ J^
g (ĩ J^
g (ị J^
gi J^


.group h .group h
h h h h
ng N ng N
ngh N ngh N
nh n^ nh n^
.group ñ .group ñ
ñ n^ ñ n^


.group q .group q
q k q k
q (_ kh q (_ kh
qu kw
qu w //kw


.group r .group r
r z. // try [z] [z.] [r] [z;] r z. // try [z] [z.] [r] [z;]
aĩ a:I5 aĩ a:I5
aị a:I6 aị a:I6
ay aI ay aI
aỳ aI2
aỳ aI2
aý aI3 aý aI3
aỷ aI4 aỷ aI4
aỹ aI5
aỵ aI6
aỹ aI5
aỵ aI6
ao a:U ao a:U
aò a:U2 aò a:U2
aó a:U3 aó a:U3
//========================= //=========================
.group o .group o
o O o O
o (A w
oa o@ // modify oa sound example: hoa,khoa // o (A w
oi OI oi OI
oì OI2 oì OI2
oí OI3 oí OI3
oỉ OI4 oỉ OI4
oĩ OI5 oĩ OI5
oị OI6 oị OI6

ong O#
oe o& // Adding oe sound example: lóe sáng,toét mắt
.group ò .group ò
ò O2 ò O2
òi OI2 òi OI2
ò (A w2
òa o@2 //ò (A w2
òng O#2
òe o&2


.group ó .group ó
ó O3 ó O3
ói OI3 ói OI3
ó (A w3
óa o@3 //ó (A w3
óng O#3
óe o&3


.group ỏ .group ỏ
ỏ O4 ỏ O4
ỏi OI4 ỏi OI4
ỏ (A w4
ỏa o@4 //ỏ (A w4
ỏng O#4
ỏe o&4


.group õ .group õ
õ O5 õ O5
õi OI5 õi OI5
õ (A w5
õa o@5 //õ (A w5
õng O#5
õe o&5


.group ọ .group ọ
ọ O6 ọ O6
ọi OI6 ọi OI6
ọ (A w6
ọa o@6 //ọ (A w6
ọng O#6
ọe o&6




//============================= //=============================
.group ô .group ô
ô o ô o
ôi oI ôi oI
ông o# // ông sound


.group ồ .group ồ
ồ o2 ồ o2
ồi oI2 ồi oI2
ồng o#2


.group ố .group ố
ố o3 ố o3
ối oI3 ối oI3
ống o#3


.group ổ .group ổ
ổ o4 ổ o4
ổi oI4 ổi oI4
ổng o#4


.group ỗ .group ỗ
ỗ o5 ỗ o5
ỗi oI5 ỗi oI5
ỗng o#5


.group ộ .group ộ
ộ o6 ộ o6
ội oI6 ội oI6
ộng o#6






uổi u@j4 uổi u@j4
uỗi u@j5 uỗi u@j5
uội u@j6 uội u@j6
//ung u#
.group ù .group ù
ù u2 ù u2
ù (A w2 ù (A w2
ùi uI2 ùi uI2
ùa u@2 ùa u@2
//ùng u#2


.group ú .group ú
ú u3 ú u3
ú (A w3 ú (A w3
úi uI3 úi uI3
úa u@3 úa u@3
//úng u#3


.group ủ .group ủ
ủ u4 ủ u4
ủ (A w4 ủ (A w4
ủi uI4 ủi uI4
ủa u@4 ủa u@4
//ủng u#4


.group ũ .group ũ
ũ u5 ũ u5
ũ (A w5 ũ (A w5
ũi uI5 ũi uI5
ũa u@5 ũa u@5
//ũng u#5


.group ụ .group ụ
ụ u6 ụ u6
ụ (A w6 ụ (A w6
ụi uI6 ụi uI6
ụa u@6 ụa u@6
//ụng u#6


//============================= //=============================
.group ư .group ư




.group .group
% f'@2n||tS;'am
% f'@2n||cr'am
! _:c'@3m_|t'a:7n_: ! _:c'@3m_|t'a:7n_:
! (\! ! (\!
// : koUl@n // : koUl@n
D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30 D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30
$ d'o||l'a $ d'o||l'a
!= x,o1N_|_b'a2N_
!= x'o#_|_b'a2N_
>= l'@:3n_|h'@:1n_|hw,a6kh_b'a2N >= l'@:3n_|h'@:1n_|hw,a6kh_b'a2N
<= n^'O4_|h'@:1n_|hw,a6kh_b'a2N <= n^'O4_|h'@:1n_|hw,a6kh_b'a2N



+ 0
- 1
espeak-data/voices/test/ur View File

name urdu-test name urdu-test
language ur language ur


phonemes hi
stressrule 6 stressrule 6



BIN
phsource/envelopes.png View File


+ 8
- 5
phsource/ph_english_sc View File

CALL I CALL I
endphoneme endphoneme


phoneme I#
vowel starttype #@ endtype #@
ChangePhoneme(I2)
endphoneme


phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #e vowel starttype #i endtype #e


phoneme 3: phoneme 3:
vowel starttype #e endtype #@ vowel starttype #e endtype #@
length 210
length 230
ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file
ipa e ipa e
AppendPhoneme(r)
FMT(vdiph2/e@)
FMT(vowelr/e_r)
endphoneme endphoneme




length 230 length 230
ipa o ipa o
AppendPhoneme(r) AppendPhoneme(r)
FMT(vowelr/o_r)
FMT(vowelr/oo_r)
endphoneme endphoneme




phoneme i@3 phoneme i@3
vowel starttype #i endtype #@ vowel starttype #i endtype #@
ipa ɪ ipa ɪ
length 220
length 240
AppendPhoneme(r) AppendPhoneme(r)
FMT(vowelr/i_r) FMT(vowelr/i_r)
endphoneme endphoneme

+ 4
- 11
phsource/ph_english_us View File

FMT(vowel/@_low2) FMT(vowel/@_low2)
endphoneme endphoneme


phoneme @L
vowel starttype #@ endtype l
ipa əl
unstressed
length 160
FMT(vwl_en/@L)
endphoneme



phoneme a phoneme a
vowel starttype #e endtype #@ vowel starttype #e endtype #@
ChangeIfDiminished(@) ChangeIfDiminished(@)
IF nextPh(r) THEN IF nextPh(r) THEN
ChangePhoneme(O:) ChangePhoneme(O:)
// FMT(vwl_en_us/oor)
ENDIF ENDIF
FMT(vowel/aa_8) FMT(vowel/aa_8)
endphoneme endphoneme
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 240 length 240
IfNextVowelAppend(r-) IfNextVowelAppend(r-)
ChangeIfDiminished(3)
FMT(vwl_en_us/3_us2) FMT(vwl_en_us/3_us2)
endphoneme endphoneme


phoneme eI phoneme eI
vowel starttype #e endtype #i vowel starttype #e endtype #i
length 230 length 230
FMT(vdiph2/ei_4)
FMT(vdiph/eei_5)
endphoneme endphoneme




voicingswitch d voicingswitch d
lengthmod 2 lengthmod 2


IF prevPhW(isVowel) OR prevPhW(n) THEN
// IF prevPhW(isVowel) OR prevPhW(n) THEN
IF prevPhW(isVowel) THEN // test, don't reduce [t] after [n]
IF nextPhW(isVowel) AND nextPh(isUnstressed) THEN IF nextPhW(isVowel) AND nextPh(isUnstressed) THEN
IF next2Ph(n) AND next2Ph(notWordStart) THEN IF next2Ph(n) AND next2Ph(notWordStart) THEN
ELSE ELSE

+ 13
- 1
phsource/ph_georgian View File

import_phoneme consonants/k- import_phoneme consonants/k-
endphoneme endphoneme


phoneme q
vls uvl stop
lengthmod 2
Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30
Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35

IF nextPh(#i) THEN
WAV(ustop/q2_i, 40)
ENDIF
WAV(ustop/q2, 48)
endphoneme





phoneme Q phoneme Q
import_phoneme base/Q"
import_phoneme base/r"
endphoneme endphoneme


phoneme r phoneme r

+ 7
- 1
phsource/ph_pt_brazil View File

vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa ɐU+0303 ipa ɐU+0303
length 180 length 180
// ChangeIfNotStressed(&)
FMT(vnasal/a#_n) FMT(vnasal/a#_n)
endphoneme endphoneme


endphoneme endphoneme




// TESTING
phoneme &2~
vowel starttype #@ endtype #@
ipa ɐU+0303
length 200
FMT(vnasal/W_n)
endphoneme

+ 45
- 0
phsource/ph_urdu View File

//====================================================
// Phonemes adjusted for Urdu by Him Prasad Gautam.
//====================================================


phoneme : // Lengthen the previous vowel by "length"
virtual
length 120
endphoneme

phoneme @
vowel flag1 starttype #@ endtype #@
length 130

ChangeIfDiminished(@-)
IF nextPh(H) THEN
FMT(vowel/@_low)
ENDIF
FMT(vowel/@_bck)
endphoneme


phoneme V
vowel flag1 starttype #@ endtype #@
length 150
CALL hi/V
endphoneme


phoneme @2
vowel flag1 starttype #@ endtype #@
length 150
FMT(vowel/@_low)
endphoneme

phoneme @3
vowel flag1 starttype #@ endtype #@
length 150
ChangeIfDiminished(@-)
FMT(vowel/@_3)
endphoneme


//====================================================
// The rest Phonemes are inherted from Hindi.

phsource/ph_vi → phsource/ph_vietnam View File



phoneme 2 // huyền tone: low falling phoneme 2 // huyền tone: low falling
stress stress
Tone(20, 8, envelope/p_fall, NULL)
Tone(20, 8, envelope/p_fall, NULL) //20
endphoneme endphoneme




phoneme 3 // sắc Tone(rising phoneme 3 // sắc Tone(rising
stress stress
Tone(25, 50, envelope/p_rise, NULL)
Tone(25, 50, envelope/p_rise, NULL) // 25
endphoneme endphoneme






phoneme 5 // ngã tone: broken (creaking rising) phoneme 5 // ngã tone: broken (creaking rising)
stress stress
Tone(28, 58, envelope/p_214, envelope/vi_5amp)
Tone(28,58, envelope/p_214, envelope/vi_5amp) // 28,58
endphoneme endphoneme




phoneme 6 // nặng Tone(drop (constricted) phoneme 6 // nặng Tone(drop (constricted)
stress stress
length 75 // reduce the length of the vowel
//length 150 // ignore because it make too short sound 75 // reduce the length of the vowel
Tone(40, 20, envelope/p_512, envelope/vi_6amp) Tone(40, 20, envelope/p_512, envelope/vi_6amp)
endphoneme endphoneme




phoneme a phoneme a
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 130
FMT(vowel/a_4)
length 120
FMT(vowel/a_6) //a_4)
endphoneme endphoneme


phoneme a: phoneme a:
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 280
FMT(vowel/a_6)
length 200 //280
FMT(vietnam/a) //FMT(vowel/a_6)
endphoneme endphoneme






phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 200
FMT(vowel/aa_4)
IF nextPh(kh) THEN
length 95
ELSE
length 200
ENDIF
FMT(vowel/aa_4)
endphoneme endphoneme


phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 200
IF nextPh(kh) THEN
length 95
ELSE
length 200
ENDIF
FMT(vowel/o_2) FMT(vowel/o_2)
endphoneme endphoneme




phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 200
FMT(vowel/u_7)
IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound
length 120
ELSE
length 200
ENDIF
FMT(vnasal/u_n) //vowel/u_7)
endphoneme endphoneme


phoneme y phoneme y
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 200
IF nextPh(kh) OR nextPh(N) THEN
length 120
ELSE
length 200
ENDIF
FMT(vowel/u#_5) FMT(vowel/u#_5)
endphoneme endphoneme




phoneme @ phoneme @
vowel starttype #@ endtype #a vowel starttype #@ endtype #a
length 130
FMT(vowel/@_2)
IF nextPh(kh) OR nextPh(N) THEN
length 120
ELSE
length 170
ENDIF
FMT(vowel/V) //vowel/@_2)
endphoneme endphoneme






phoneme aI phoneme aI
vowel starttype #a endtype #i vowel starttype #a endtype #i
length 250
FMT(vdiph/&i_3)
length 200 //250
FMT(vdiph/&y)
endphoneme endphoneme




phoneme a:I phoneme a:I
vowel starttype #a endtype #i vowel starttype #a endtype #i
length 250
length 200 //250
FMT(vdiph/ai) FMT(vdiph/ai)
endphoneme endphoneme




phoneme @I phoneme @I
vowel starttype #@ endtype #i vowel starttype #@ endtype #i
length 250
length 200 //250
FMT(vdiph/@i) FMT(vdiph/@i)
endphoneme endphoneme




phoneme @:I phoneme @:I
vowel starttype #@ endtype #i vowel starttype #@ endtype #i
length 250
length 200 //250
FMT(vdiph/@i) FMT(vdiph/@i)
endphoneme endphoneme




phoneme a:U phoneme a:U
vowel starttype #a endtype #u vowel starttype #a endtype #u
length 270
length 230 //270
FMT(vdiph/au) FMT(vdiph/au)
endphoneme endphoneme


phoneme @U phoneme @U
vowel starttype #@ endtype #u vowel starttype #@ endtype #u
length 200 length 200
FMT(vdiph/@u)
FMT(vdiph/@u_3)
endphoneme endphoneme


phoneme @:U phoneme @:U
FMT(vdiph2/uu@) FMT(vdiph2/uu@)
endphoneme endphoneme


// Addition Dipthongs

phoneme o# // ông
vowel starttype #o endtype #o
length 200
FMT(vnasal/a#u_n)
endphoneme

phoneme O# // ong
vowel starttype #o endtype #o
length 200
FMT(vnasal/&u_n)
endphoneme



phoneme o@
vowel starttype #o endtype #o
length 160
FMT(vdiph2/oa)
endphoneme

phoneme o&
vowel starttype #o endtype #o
length 160
FMT(vietnam/oe)
endphoneme


phoneme kh phoneme kh
vls vel frc vls vel frc
lengthmod 3 lengthmod 3
Vowelin f1=0 f2=2300 200 400 f3=200 80 Vowelin f1=0 f2=2300 200 400 f3=200 80
Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
WAV(ufric/x, 50)
WAV(vietnam/_c,5) //ufric/x, 50)
endphoneme endphoneme




phoneme l phoneme l
liquid liquid
lengthmod 7 lengthmod 7
//IF nextPh(isNotVowel) THEN
// ChangePhoneme(l/2)
//ENDIF


IF nextPh(isNotVowel) THEN
ChangePhoneme(l/2)
ENDIF

CALL vowelstart_l
//CALL vowelstart_l


FMT(l/l_vi) FMT(l/l_vi)
endphoneme endphoneme


phoneme t
vls alv stop
//voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20

WAV(vietnam/th, 50)
endphoneme

phoneme cr
vls pla afr sibilant
//voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

WAV(vietnam/tr,10)
endphoneme

phoneme d
vcd alv stop
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
WAV(vietnam/dd)
endphoneme
phoneme c
vls pal stop palatal
//voicingswitch J
lengthmod 2
length 75
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1

WAV(vietnam/ch,5)
endphoneme


phoneme p
vls blb stop
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22

WAV(ustop/p_unasp_,10)
endphoneme

phoneme n
vcd alv nasal
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
lengthmod 4
FMT(n/n#_)
endphoneme

phoneme t[ // dental variant of /t/
vls dnt stop
voicingswitch d[
lengthmod 2
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20

IF nextPh(isPause2) THEN
WAV(ustop/t_unasp2, 5)
ENDIF
WAV(ustop/t_hi, 70)
endphoneme

+ 4
- 1
phsource/phonemes View File

phonemetable ml hi phonemetable ml hi
include ph_malayalam include ph_malayalam


phonemetable ur hi
include ph_urdu



phonemetable hu base phonemetable hu base
include ph_hungarian include ph_hungarian
include ph_icelandic include ph_icelandic


phonemetable vi base phonemetable vi base
include ph_vi
include ph_vietnam


phonemetable zhy base phonemetable zhy base
include ph_zh_yue include ph_zh_yue

BIN
phsource/ustop/k_asp2.wav View File


BIN
phsource/ustop/q2.wav View File


BIN
phsource/ustop/q2_i.wav View File


BIN
phsource/vdiph/eei_5 View File


BIN
phsource/vietnam/_c.wav View File


BIN
phsource/vietnam/a View File


BIN
phsource/vietnam/ch.wav View File


BIN
phsource/vietnam/dd.wav View File


BIN
phsource/vietnam/kh.wav View File


BIN
phsource/vietnam/n.wav View File


BIN
phsource/vietnam/nh.wav View File


BIN
phsource/vietnam/nn View File


BIN
phsource/vietnam/oe View File


BIN
phsource/vietnam/oong View File


BIN
phsource/vietnam/th.wav View File


BIN
phsource/vietnam/tr.wav View File


BIN
phsource/vowelr/e_r View File


BIN
phsource/vwl_en_us/ar View File


+ 0
- 133
phsource/xph_nepali View File


//====================================================
// Nepali (inherits from Hindi)
//====================================================

phoneme V
vowel starttype #@ endtype #@
length 160
ChangeIfNotStressed(@)
IF nextPh(H) THEN
FMT(vowel/@_low)
ENDIF
FMT(vowel/@_bck)
endphoneme

phoneme @3 // use a more front [@] after palatal consonants
vowel starttype #@ endtype #@
length 140
FMT(vowel/@_3)
endphoneme

phoneme @/
vowel starttype #@ endtype #@
length 130
IF nextPh(H) THEN
FMT(vowel/@_low)
ENDIF
FMT(vowel/@_bck)
endphoneme


phoneme i
vowel starttype #i endtype #i
length 160
IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme

phoneme e
vowel starttype #e endtype #e
length 180
FMT(vowel/e)
endphoneme

phoneme a
vowel long starttype #a endtype #a
length 230
FMT(vowel/aa_9)
endphoneme

phoneme o
vowel starttype #o endtype #o
length 180
FMT(vowel/o_mid)
endphoneme

phoneme u
vowel starttype #u endtype #u
length 160
FMT(vowel/u_bck)
endphoneme





// Diphthongs
//===========


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

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

phoneme eI
vowel long starttype #e endtype #i
length 240
long
FMT(vdiph/eei)
endphoneme

phoneme eU
vowel long starttype #e endtype #u
length 240
long
FMT(vdiph/eu)
endphoneme

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

phoneme VU
vowel long starttype #@ endtype #u
length 240
long
FMT(vdiph/Vu)
endphoneme

phoneme oI
vowel long starttype #o endtype #i
length 240
long
FMT(vdiph/oi)
endphoneme

phoneme oU
vowel long starttype #o endtype #u
length 240
long
FMT(vdiph/ou)
endphoneme

phoneme uI
vowel long starttype #u endtype #i
length 240
long
FMT(vdiph/ui)
endphoneme


+ 43
- 22
src/compiledata.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
static FILE *f_phcontents; static FILE *f_phcontents;
static FILE *f_errors = stderr; static FILE *f_errors = stderr;
static FILE *f_prog_log = NULL; static FILE *f_prog_log = NULL;
static FILE *f_report;




static FILE *f_in; static FILE *f_in;
static int duplicate_references = 0; static int duplicate_references = 0;
static int count_frames = 0; static int count_frames = 0;
static int error_count = 0; static int error_count = 0;
static int resample_count = 0;
static int then_count = 0; static int then_count = 0;
static int after_if = 0; static int after_if = 0;






#define N_ENVELOPES 30 #define N_ENVELOPES 30
static int n_envelopes = 0;
static char envelope_paths[N_ENVELOPES][80];
static unsigned char envelope_dat[N_ENVELOPES][ENV_LEN];
int n_envelopes = 0;
char envelope_paths[N_ENVELOPES][80];
unsigned char envelope_dat[N_ENVELOPES][ENV_LEN];




typedef struct { typedef struct {
int n; int n;
REF_HASH_TAB *p; REF_HASH_TAB *p;
REF_HASH_TAB **list; REF_HASH_TAB **list;
FILE *f_report;
const char *data_path; const char *data_path;
int prev_table; int prev_table;
int prev_mnemonic; int prev_mnemonic;
char fname[sizeof(path_source)+20]; char fname[sizeof(path_source)+20];


if(f_report == NULL)
return;

// make a list of all the references and sort it // make a list of all the references and sort it
list = (REF_HASH_TAB **)malloc((count_references)* sizeof(REF_HASH_TAB *)); list = (REF_HASH_TAB **)malloc((count_references)* sizeof(REF_HASH_TAB *));
if(list == NULL) if(list == NULL)
return; return;


sprintf(fname,"%scompile_report",path_source);
f_report = fopen(fname,"w");
if(f_report == NULL)
{
free(list);
return;
}

fprintf(f_report,"%d phoneme tables\n",n_phoneme_tabs);
fprintf(f_report," new total\n");
fprintf(f_report,"\n%d phoneme tables\n",n_phoneme_tabs);
fprintf(f_report," new total\n");
for(ix=0; ix<n_phoneme_tabs; ix++) for(ix=0; ix<n_phoneme_tabs; ix++)
{ {
fprintf(f_report,"%8s %3d %4d\n",phoneme_tab_list2[ix].name, phoneme_tab_list2[ix].n_phonemes, n_phcodes_list[ix]+1); fprintf(f_report,"%8s %3d %4d\n",phoneme_tab_list2[ix].name, phoneme_tab_list2[ix].n_phonemes, n_phcodes_list[ix]+1);
if((fd_temp = mkstemp(fname_temp)) >= 0) if((fd_temp = mkstemp(fname_temp)) >= 0)
{ {
close(fd_temp); close(fd_temp);
sprintf(command,"sox \"%s%s.wav\" -r %d -c 1 -w %s polyphase\n",path_source,fname,samplerate_native,fname_temp);
sprintf(command,"sox \"%s%s.wav\" -c1 -t wav %s rate -h %d\n",path_source,fname,fname_temp,samplerate_native);
if(system(command) < 0) if(system(command) < 0)
{ {
error("Failed to resample: %s",command); error("Failed to resample: %s",command);
remove(fname_temp);
return(0); return(0);
} }
} }


if(GetFileLength(fname_temp) <= 0)
{
error("Failed to resample: %s",command);
remove(fname_temp);
return(0);
}

f = fopen(fname_temp,"rb"); f = fopen(fname_temp,"rb");
if(f == NULL) if(f == NULL)
{ {
error("Can't read temp file: %s",fname_temp); error("Can't read temp file: %s",fname_temp);
return(0); return(0);
} }
if(f_report != NULL)
fprintf(f_report, "resampled %s\n", fname);
resample_count++;
resample_wav = 1; resample_wav = 1;
fseek(f,40,SEEK_SET); // skip past the WAV header, up to before "data length" fseek(f,40,SEEK_SET); // skip past the WAV header, up to before "data length"
} }
if((f_errors = fopen_log(f_errors,fname,"w")) == NULL) if((f_errors = fopen_log(f_errors,fname,"w")) == NULL)
f_errors = stderr; f_errors = stderr;


sprintf(fname,"%s%s",path_source,"compile_report");
f_report = fopen_log(f_errors, fname,"w");


sprintf(fname,"%s/%s",path_home,"phondata-manifest"); sprintf(fname,"%s/%s",path_home,"phondata-manifest");
if((f_phcontents = fopen_log(f_phcontents,fname,"w")) == NULL) if((f_phcontents = fopen_log(f_phcontents,fname,"w")) == NULL)
f_phcontents = stderr; f_phcontents = stderr;
fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references); fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references);
fclose(f_in); fclose(f_in);
fclose(f_phdata); fclose(f_phdata);
if(f_errors != stderr)
fclose(f_errors);
if(f_prog_log != NULL) if(f_prog_log != NULL)
fclose(f_prog_log); fclose(f_prog_log);
fclose(f_phindex); fclose(f_phindex);
LoadPhData(); LoadPhData();
LoadVoice(voice_name2,0); LoadVoice(voice_name2,0);



CompileReport(); CompileReport();
report_dict = CompileAllDictionaries(); report_dict = CompileAllDictionaries();
//#ifdef deleted
DrawEnvelopes(); DrawEnvelopes();
//#endif


if(gui_flag) if(gui_flag)
{ {
delete progress; delete progress;
} }


report.Printf(_T("Compiled phonemes: %d errors."),error_count);
if(resample_count > 0)
{
fprintf(f_errors, "\n%d WAV files resampled to %d Hz\n", resample_count, samplerate_native);
report.Printf(_T("Compiled phonemes: %d errors, %d files resampled to %d Hz. "),error_count, resample_count, samplerate_native);
}
else
{
report.Printf(_T("Compiled phonemes: %d errors."),error_count);
}

if(f_errors != stderr)
fclose(f_errors);

if(error_count > 0) if(error_count > 0)
{ {
report += _T(" See file: 'phsource/error_log'."); report += _T(" See file: 'phsource/error_log'.");
char buf[sizeof(path_source)+120]; char buf[sizeof(path_source)+120];


error_count = 0; error_count = 0;
resample_count = 0;


sprintf(fname_errors,"%s%s",path_source,"error_intonation"); sprintf(fname_errors,"%s%s",path_source,"error_intonation");
if((f_errors = fopen(fname_errors,"w")) == NULL) if((f_errors = fopen(fname_errors,"w")) == NULL)
fwrite(tune_data, n_tune_names, sizeof(TUNE), f_out); fwrite(tune_data, n_tune_names, sizeof(TUNE), f_out);
fclose(f_in); fclose(f_in);
fclose(f_out); fclose(f_out);
fclose(f_errors);


report.Printf(_T("Compiled %d intonation tunes: %d errors."),n_tune_names, error_count); report.Printf(_T("Compiled %d intonation tunes: %d errors."),n_tune_names, error_count);
wxLogStatus(report); wxLogStatus(report);

+ 6
- 2
src/compiledict.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *


MNEM_TAB mnem_rules[] = { MNEM_TAB mnem_rules[] = {
{"unpr", 0x01}, {"unpr", 0x01},
{"w_alt1", 0x11},
{"w_alt2", 0x12}, {"w_alt2", 0x12},
{"w_alt3", 0x13}, {"w_alt3", 0x13},
// {"w_alt4", 0x14},
{"w_alt", 0x11}, // note: put longer names before their sub-strings {"w_alt", 0x11}, // note: put longer names before their sub-strings
{"p_alt1", 0x21},
{"p_alt2", 0x22}, {"p_alt2", 0x22},
{"p_alt3", 0x23}, {"p_alt3", 0x23},
// {"p_alt4", 0x24},
{"p_alt", 0x21}, {"p_alt", 0x21},
{NULL, -1} }; {NULL, -1} };


items[n_items] = p_start = p; items[n_items] = p_start = p;
while((*p & 0xff) > ' ') while((*p & 0xff) > ' ')
{ {
if (*p == '_') *p = ' '; // allow '_' for word break
if (*p == '_') *p = ' '; // allow '_' for word break
p++; p++;
} }
*p++ = 0; *p++ = 0;

+ 33
- 18
src/dictionary.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
stress = 3; stress = 3;




if((stressflags & 0x1000) && (vowel_count == 2))
if(unstressed_word == 0)
{ {
// Two syllable word, if one syllable has primary stress, then give the other secondary stress
if(vowel_stress[1] == 4)
vowel_stress[2] = 3;
if(vowel_stress[2] == 4)
vowel_stress[1] = 3;
}
if((stressflags & 0x1000) && (vowel_count == 3))
{
// Two syllable word, if one syllable has primary stress, then give the other secondary stress
if(vowel_stress[1] == 4)
vowel_stress[2] = 3;
if(vowel_stress[2] == 4)
vowel_stress[1] = 3;
}


if((stressflags & 0x2000) && (vowel_stress[1] < 0))
{
// If there is only one syllable before the primary stress, give it a secondary stress
if((vowel_count > 2) && (vowel_stress[2] >= 4))
if((stressflags & 0x2000) && (vowel_stress[1] < 0))
{ {
vowel_stress[1] = 3;
// If there is only one syllable before the primary stress, give it a secondary stress
if((vowel_count > 3) && (vowel_stress[2] >= 4))
{
vowel_stress[1] = 3;
}
} }
} }


if(word_flags & FLAG_UNPRON_TEST) if(word_flags & FLAG_UNPRON_TEST)
return(match1.end_type | 1); return(match1.end_type | 1);


#ifdef deleted
// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
if((match1.end_type & SUFX_UNPRON) && !(word_flags & FLAG_SUFFIX_REMOVED))
return(match1.end_type);
#endif

if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0)) if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0))
{ {
// an instruction to switch language, return immediately so we can re-translate // an instruction to switch language, return immediately so we can re-translate
int max; int max;
const char *map; const char *map;
char *p = text; char *p = text;
char *p2 = text;
char *p2;
int all_alpha=1; int all_alpha=1;
int bits; int bits;
int acc; int acc;
int pairs_start; int pairs_start;
const short *pairs_list; const short *pairs_list;
char buf[N_WORD_BYTES];


p2 = buf;
offset = tr->transpose_min - 1; offset = tr->transpose_min - 1;
min = tr->transpose_min; min = tr->transpose_min;
max = tr->transpose_max; max = tr->transpose_max;
acc=0; acc=0;
bits=0; bits=0;


p = text;
p2 = text;
p = buf;
p2 = buf;
while((c = *p++) != 0) while((c = *p++) != 0)
{ {
if((pairs_list = tr->frequent_pairs) != NULL) if((pairs_list = tr->frequent_pairs) != NULL)
*p2++ = (acc << (8-bits)); *p2++ = (acc << (8-bits));
} }
*p2 = 0; *p2 = 0;
return((p2 - text) | 0x40); // bit 6 indicates compressed characters
strcpy(text, buf);
return((p2 - buf) | 0x40); // bit 6 indicates compressed characters
}
else
{
return(strlen(text));
} }
return(p2 - text);
} // end of TransposeAlphabet } // end of TransposeAlphabet





+ 6
- 2
src/espeak.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2006 to 2007 by Jonathan Duddington *
* Copyright (C) 2006 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
fclose(f_text); fclose(f_text);
} }


espeak_Synchronize();
if(espeak_Synchronize() != EE_OK)
{
fprintf(stderr, "espeak_Synchronize() failed, maybe error when opening output device\n");
exit(4);
}


if(f_phonemes_out != stdout) if(f_phonemes_out != stdout)
fclose(f_phonemes_out); // needed for WinCE fclose(f_phonemes_out); // needed for WinCE

+ 2
- 2
src/espeakedit.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
if(len > 0) if(len > 0)
{ {
if(len > 1500) if(len > 1500)
len = 1500; // restrict length to pppppevent crash in wxLogMessage()
len = 1500; // restrict length to prevent crash in wxLogMessage()
msg = (char *)malloc(len+1); msg = (char *)malloc(len+1);
if(msg != NULL) if(msg != NULL)
{ {

+ 3
- 3
src/prosodydisplay.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
} }
y1 = p->pitch1; y1 = p->pitch1;
y2 = p->pitch2; y2 = p->pitch2;
sprintf(buf,"Stress %s%d Amp %2d LenMod %2d Pitch %3d %3d %s PhFlags %.2x ",
emphasized,p->stresslevel&0x7,p->amp,p->length,y1,y2,name,p->ph->phflags);
sprintf(buf,"Stress %s%d Amp %2d StdLength %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x ",
emphasized,p->stresslevel&0x7,p->amp,p->std_length*2, p->length,y1,y2,name,p->ph->phflags);
wxLogStatus(wxString(buf,wxConvLocal)); wxLogStatus(wxString(buf,wxConvLocal));
} }



+ 3
- 1
src/readclause.cpp View File

0x055e, // Armenian question 0x055e, // Armenian question
0x055b, // Armenian emphasis mark 0x055b, // Armenian emphasis mark


0x0b1b, // Arabic ;
0x061b, // Arabic ;
0x061f, // Arabic ? 0x061f, // Arabic ?
0x06d4, // Arabic .


0x0f0d, // Tibet Shad 0x0f0d, // Tibet Shad
0x0f0e, 0x0f0e,


CLAUSE_SEMICOLON, // Arabic ; CLAUSE_SEMICOLON, // Arabic ;
CLAUSE_QUESTION, // Arabic question mark CLAUSE_QUESTION, // Arabic question mark
CLAUSE_PERIOD, // Arabic full stop


CLAUSE_PERIOD+0x8000, // Tibet period CLAUSE_PERIOD+0x8000, // Tibet period
CLAUSE_PARAGRAPH, CLAUSE_PARAGRAPH,

+ 17
- 6
src/speak_lib.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
static int synchronous_mode = 1; static int synchronous_mode = 1;
static int out_samplerate = 0; static int out_samplerate = 0;
static int voice_samplerate = 22050; static int voice_samplerate = 22050;
static espeak_ERROR err = EE_OK;


t_espeak_callback* synth_callback = NULL; t_espeak_callback* synth_callback = NULL;
int (* uri_callback)(int, const char *, const char *) = NULL; int (* uri_callback)(int, const char *, const char *) = NULL;
sleep(1); sleep(1);
} }
out_samplerate = voice_samplerate; out_samplerate = voice_samplerate;
wave_init(voice_samplerate);
if(!wave_init(voice_samplerate))
{
err = EE_INTERNAL_ERROR;
return(-1);
}
wave_set_callback_is_output_enabled( fifo_is_command_enabled); wave_set_callback_is_output_enabled( fifo_is_command_enabled);
my_audio = wave_open("alsa"); my_audio = wave_open("alsa");
event_init(); event_init();
} }


SHOW_TIME("LEAVE dispatch_audio\n"); SHOW_TIME("LEAVE dispatch_audio\n");
return (a_wave_can_be_played==0); // 1 = stop synthesis
return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error
} }




int param; int param;
int result; int result;


err = EE_OK;
LoadConfig(); LoadConfig();
WavegenInit(22050,0); // 22050 WavegenInit(22050,0); // 22050
if((result = LoadPhData()) != 1) if((result = LoadPhData()) != 1)
{ {
#ifdef USE_ASYNC #ifdef USE_ASYNC
finished = create_events((short *)outbuf, length, event_list, a_write_pos); finished = create_events((short *)outbuf, length, event_list, a_write_pos);
if(finished < 0)
return EE_INTERNAL_ERROR;
length = 0; // the wave data are played once. length = 0; // the wave data are played once.
#endif #endif
} }
#ifdef USE_ASYNC #ifdef USE_ASYNC
if (my_mode==AUDIO_OUTPUT_PLAYBACK) if (my_mode==AUDIO_OUTPUT_PLAYBACK)
{ {
dispatch_audio(NULL, 0, NULL); // TBD: test case
if(dispatch_audio(NULL, 0, NULL) < 0) // TBD: test case
return err = EE_INTERNAL_ERROR;
} }
else else
{ {


ESPEAK_API espeak_ERROR espeak_Synchronize(void) ESPEAK_API espeak_ERROR espeak_Synchronize(void)
{//============================================= {//=============================================
espeak_ERROR berr = err;
#ifdef USE_ASYNC #ifdef USE_ASYNC
SHOW_TIME("espeak_Synchronize > ENTER"); SHOW_TIME("espeak_Synchronize > ENTER");
while (espeak_IsPlaying()) while (espeak_IsPlaying())
usleep(20000); usleep(20000);
} }
#endif #endif
err = EE_OK;
SHOW_TIME("espeak_Synchronize > LEAVE"); SHOW_TIME("espeak_Synchronize > LEAVE");
return EE_OK;
return berr;
} // end of espeak_Synchronize } // end of espeak_Synchronize





+ 3
- 2
src/synthdata.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.46.32 30.Jan.13";
const char *version_string = "1.46.35 14.Feb.13";
const int version_phdata = 0x014631; const int version_phdata = 0x014631;


int option_device_number = -1; int option_device_number = -1;
memcpy(&worddata->prev_vowel, &plist[0], sizeof(PHONEME_LIST)); memcpy(&worddata->prev_vowel, &plist[0], sizeof(PHONEME_LIST));
} }


plist->std_length = phdata->pd_param[i_SET_LENGTH];
} // end of InterpretPhoneme } // end of InterpretPhoneme





+ 1
- 0
src/synthesize.h View File

unsigned char newword; // bit 0=start of word, bit 1=end of clause, bit 2=start of sentence unsigned char newword; // bit 0=start of word, bit 1=end of clause, bit 2=start of sentence
unsigned char pitch1; unsigned char pitch1;
unsigned char pitch2; unsigned char pitch2;
unsigned char std_length;
} PHONEME_LIST; } PHONEME_LIST;





+ 12
- 1
src/translate.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
return(0); return(0);
} }


#ifdef deleted
// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
if(end_type & SUFX_UNPRON)
{
phonemes[0] = 0; // discard and retranslate as individual letters
SpeakIndividualLetters(tr, wordx, phonemes, 0);
strcpy(word_phonemes, phonemes);
return(0);
}
#endif

if((phonemes[0] == 0) && (end_phonemes[0] == 0)) if((phonemes[0] == 0) && (end_phonemes[0] == 0))
{ {
int wc; int wc;

+ 1
- 1
src/translate.h View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *

+ 4
- 4
src/vowelchart.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *




#define N_ENVELOPES 30 #define N_ENVELOPES 30
int n_envelopes = 0;
char envelope_paths[N_ENVELOPES][80];
unsigned char envelope_dat[N_ENVELOPES][ENV_LEN];
extern int n_envelopes;
extern char envelope_paths[N_ENVELOPES][80];
extern unsigned char envelope_dat[N_ENVELOPES][ENV_LEN];


#define HT_ENV 140 #define HT_ENV 140
#define WD_ENV 128*2 #define WD_ENV 128*2

+ 8
- 7
src/wave.cpp View File

static int pulse_running; static int pulse_running;


// wave.cpp (this file) // wave.cpp (this file)
void wave_port_init(int);
int wave_port_init(int);
void* wave_port_open(const char* the_api); void* wave_port_open(const char* the_api);
size_t wave_port_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize); size_t wave_port_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize);
int wave_port_close(void* theHandler); int wave_port_close(void* theHandler);


// wave_pulse.cpp // wave_pulse.cpp
int is_pulse_running(); int is_pulse_running();
void wave_pulse_init(int);
int wave_pulse_init(int);
void* wave_pulse_open(const char* the_api); void* wave_pulse_open(const char* the_api);
size_t wave_pulse_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize); size_t wave_pulse_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize);
int wave_pulse_close(void* theHandler); int wave_pulse_close(void* theHandler);
int wave_pulse_get_remaining_time(uint32_t sample, uint32_t* time); int wave_pulse_get_remaining_time(uint32_t sample, uint32_t* time);


// wrappers // wrappers
void wave_init(int srate) {
int wave_init(int srate) {
pulse_running = is_pulse_running(); pulse_running = is_pulse_running();


if (pulse_running) if (pulse_running)
wave_pulse_init(srate);
return wave_pulse_init(srate);
else else
wave_port_init(srate);
return wave_port_init(srate);
} }


void* wave_open(const char* the_api) { void* wave_open(const char* the_api) {
//<wave_init //<wave_init


// TBD: the arg could be "alsa", "oss",... // TBD: the arg could be "alsa", "oss",...
void wave_init(int srate)
int wave_init(int srate)
{ {
ENTER("wave_init"); ENTER("wave_init");
PaError err; PaError err;
{ {
SHOW_TIME("wave_init > Failed to initialise the PortAudio sound"); SHOW_TIME("wave_init > Failed to initialise the PortAudio sound");
} }
return err == paNoError;
} }


//> //>
// notdef USE_PORTAUDIO // notdef USE_PORTAUDIO




void wave_init(int srate) {}
int wave_init(int srate) {}
void* wave_open(const char* the_api) {return (void *)1;} void* wave_open(const char* the_api) {return (void *)1;}
size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;}
int wave_close(void* theHandler) {return 0;} int wave_close(void* theHandler) {return 0;}

+ 1
- 1
src/wave.h View File



extern int option_device_number; extern int option_device_number;


extern void wave_init(int samplerate);
extern int wave_init(int samplerate);
// TBD: the arg could be "alsa", "oss",... // TBD: the arg could be "alsa", "oss",...
extern void* wave_open(const char* the_api); extern void* wave_open(const char* the_api);



+ 3
- 3
src/wave_pulse.cpp View File

//> //>
//<wave_init //<wave_init


void wave_init(int srate)
int wave_init(int srate)
{ {
ENTER("wave_init"); ENTER("wave_init");


stream = NULL; stream = NULL;
wave_samplerate = srate; wave_samplerate = srate;


pulse_open();
return pulse_open() == PULSE_OK;
} }


//> //>
// notdef USE_PULSEAUDIO // notdef USE_PULSEAUDIO




void wave_init() {}
int wave_init() {}
void* wave_open(const char* the_api) {return (void *)1;} void* wave_open(const char* the_api) {return (void *)1;}
size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;}
int wave_close(void* theHandler) {return 0;} int wave_close(void* theHandler) {return 0;}

+ 4
- 3
src/wave_sada.cpp View File

// //
//<wave_init //<wave_init


void wave_init(int srate) {
int wave_init(int srate) {
ENTER("wave_init"); ENTER("wave_init");


audio_info_t ainfo; audio_info_t ainfo;
SHOW("wave_init() sun_audio_fd: %d\n", sun_audio_fd); SHOW("wave_init() sun_audio_fd: %d\n", sun_audio_fd);


if (sun_audio_fd < 0) { if (sun_audio_fd < 0) {
return;
return(0);
} }


ioctl(sun_audio_fd, AUDIO_GETINFO, &ainfo); ioctl(sun_audio_fd, AUDIO_GETINFO, &ainfo);
if (ioctl(sun_audio_fd, AUDIO_SETINFO, &ainfo) == -1) { if (ioctl(sun_audio_fd, AUDIO_SETINFO, &ainfo) == -1) {
SHOW("wave_init() failed to set audio params: %s\n", strerror(errno)); SHOW("wave_init() failed to set audio params: %s\n", strerror(errno));
close(sun_audio_fd); close(sun_audio_fd);
return;
return(0);
} }
return(1);
} }


//> //>

Loading…
Cancel
Save