Browse Source

[1.41.08]

espeakedit, add menu item Help->Documentation.
lang-hu: fix ordinal numbers.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@223 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 15 years ago
parent
commit
5b52f78f2e
55 changed files with 2142 additions and 926 deletions
  1. 14
    11
      dictsource/da_list
  2. 261
    81
      dictsource/da_rules
  3. 2
    2
      dictsource/de_list
  4. 11
    3
      dictsource/de_rules
  5. 352
    353
      dictsource/dict_phonemes
  6. 16
    0
      dictsource/en_list
  7. 6
    1
      dictsource/en_rules
  8. 106
    76
      dictsource/fr_list
  9. 117
    79
      dictsource/fr_rules
  10. 130
    21
      dictsource/hu_list
  11. 139
    29
      dictsource/hu_rules
  12. 4
    0
      dictsource/ru_list
  13. 87
    16
      dictsource/ta_list
  14. 18
    4
      dictsource/ta_rules
  15. 314
    34
      phsource/compile_report
  16. BIN
      phsource/j2/j2e
  17. BIN
      phsource/l/l_i
  18. BIN
      phsource/l/l_o
  19. 3
    2
      phsource/mbrola/fr1
  20. 1
    1
      phsource/ph_armenian
  21. 153
    123
      phsource/ph_french
  22. 34
    7
      phsource/ph_tamil
  23. 26
    0
      phsource/phonemes
  24. BIN
      phsource/vdiph/ai_8
  25. BIN
      phsource/vdiph/vowelchart.png
  26. BIN
      phsource/vdiph2/vowelchart.png
  27. BIN
      phsource/vnasal/vowelchart.png
  28. BIN
      phsource/vowel/o_mid2
  29. BIN
      phsource/vowel/vowelchart.png
  30. BIN
      phsource/vwl_fr/@R5
  31. BIN
      phsource/vwl_fr/r_@
  32. BIN
      phsource/vwl_fr/r_a
  33. BIN
      phsource/vwl_fr/r_e
  34. BIN
      phsource/vwl_fr/r_i
  35. BIN
      phsource/vwl_fr/r_o
  36. BIN
      phsource/vwl_fr/r_u
  37. BIN
      phsource/vwl_fr/r_y
  38. BIN
      phsource/vwl_fr/w_a
  39. 2
    2
      platforms/windows/espeakedit/espeakedit.dsp
  40. 3
    1
      platforms/windows/make_espeak.iss
  41. 6
    1
      platforms/windows/make_espeakedit.iss
  42. 13
    0
      src/compiledict.cpp
  43. 2
    2
      src/espeak_command.cpp
  44. 116
    9
      src/espeakedit.cpp
  45. 31
    5
      src/formantdlg.cpp
  46. 1
    0
      src/main.h
  47. 3
    2
      src/menus.cpp
  48. 110
    49
      src/numbers.cpp
  49. 3
    0
      src/spectdisplay.cpp
  50. 1
    1
      src/synthdata.cpp
  51. 7
    3
      src/tr_languages.cpp
  52. 9
    1
      src/translate.cpp
  53. 8
    2
      src/translate.h
  54. 28
    4
      src/transldlg.cpp
  55. 5
    1
      src/wave_sada.cpp

+ 14
- 11
dictsource/da_list View File

@@ -130,6 +130,8 @@ fordi fVdi $pause // because
når nVr $pause // while
som $u+ $pause // who (relative)
der dA $u+ $pause
hvor v'Vr // where
hvorfor vVf'Vr // why

// prepositions
på pO $u+
@@ -141,7 +143,7 @@ med $u+ // with
af a? $u+ // of
at at $u+ // to
hos $u+ // at
som $u sVm // which / that


// pronouns
@@ -169,17 +171,17 @@ disse $u+ // these
// possessive pronouns
Min min $u
Mit mit $u
Mine min@ $u
din di?n
dit di?t $u
dine $u
Mine m'in@
din d'in
dit d'it $u
dine d'ine
deres $u
hans $u
hendes $u
dens $u
dets $u
sin si?n
sit si?t $u
sin s'in
sit s'it $u
sine $u
vor $u
vort $u
@@ -230,10 +232,11 @@ z sEt
egen a:j@n
eget a:j@D
egne a:in@
igen igen
enter entV
også Vs@
sig sAi // oneself
sagde sa@ // said
igen igen
Ny ny // new
også Vs@ // also
havde h'aD@ // had
sagde sa@ // said
sig sAi // oneself


+ 261
- 81
dictsource/da_rules View File

@@ -1,4 +1,4 @@


// This file is UTF8 encoded

@@ -22,6 +22,7 @@
C) a (C a
a (tion a
a (CK a
a (g a_
a (nK a
a (r+ A:
r) a A:
@@ -29,7 +30,8 @@
ai (K aj

au (K au

ch) au (f o
nive) au o
aw (K aw
ay (K aj
aa O:
@@ -44,9 +46,8 @@
b b
bb b
_) be (@P2 be

_) be (d bE
b (il 'b


.group c
@@ -55,7 +56,10 @@

c (e s
c (i s
c (k
ch S
mi) ch (a k S
ch (r k
e) c (h k
c (ha S
cc ks
@@ -68,39 +72,107 @@

.group d
d d
dd D
A) d (d D
A) d (_ D
A) d D
A) d (A D
A) dd D
A) d (i d
A) d (ig D
A) d (isk D
A) d (es D
A) d (et D
&) de (_ D@
i) d d
a) d (g D
a) d (k D
A) de (_ D@
d) d D
i) d (e d
l) d (+
æ) d d
u) d (er d
bu) d (get
ej) d (e d
le) d (t
li) d (e D
li) d (s D
me) d (b D
me) d (l D
mi) d (l D
ne) d (C D
o) d (a d
o) d (i d
re) d (a d
re) d (i d
ri) d (e D
si) d (e D
ti) d (e D
ti) d (s D
vi) d (e D
al) d (o d
an) d (re d
el) d (i d
ol) d (a d
æl) d (e d
æl) d (i d
æl) d (re d
æn) d (e
æn) d (re d
æn) d (ri d
ær) d (es d
mo) d (C D
mo) d (ul 'd
mo) d (al 'd
bla) d (r D
kor) d d
smu) d (s
pu) d (s
ro) d (s
ry) d (ni D
æ) d D
An) d (rA d
An) d (re d
dar) d d
in) d (C
in) d (i d
in) d (u d
in) d (uC d
in) d (ue d
Co) d (C D
Co) d (A D
go) d (s
go) d (t_
or) d (ne d
or) d (ning d
or) d (re d
or) d (ret
Aor) d (ret d
kre) d (s
tro) d (s
u) d (A D
u) d (C D
ø) d (C D
ø) d (t
å) d (an d
d (CA D
d (t ?
d (CA d
d (t =
be) d (r D
be) d (st :
bol) d d
a) d (s
i) d (s
r) d (K
ar) d (K d
or) d (re d
in) d
ir) d (_ d
or) d (en
aar) d (K
klo) d (s
nor) d
pro) d (u d
pu) d (s
ur) d (e d
ver) d (en d
sli) d(so D
sli) d(s


.group e
@@ -109,88 +181,133 @@
e (rK &
b) e (ds E
d) e (_ @
ed) e (- @D
ed) e (- @
g) e (C e
g) e (js aj
r) e V%
em) e (nt a
plem) e (nter e
elem) e (nt e
em) e (ntal e
glem) e (nt a
glem) e (ntal e
ni) e
ni) e (n e
niv) e (au
ani) e (l e
lini) e e
r) e (_ V%
_r) e e V%
@st) e (n e:
budg) e (t 'E
carst) e (n @
karst) e (n @
Kr) e (ag e
@h) e (n 'e
p) e (ge a
p) e (gnin a
r) e (l e
r) e (kt aj
r) e (CK e
r) e (L01 Aj
eg (et aj
m) eg aj
n) e (K e
ea i:
ee e:
eg (e e@
eg (e 'e:
en (gage an^
en (tre an^
p) en (sion an^
r) en (ce an^
r) eg (n A:j
r) e (d e
r) e (v e
tr) e e
tr) e (A e
ei A:j
ej (+ ai
v) ej (r 'e ai
ffic) e
ffic) e (r e
&) e (_ @:
&r) e (_ e

&r) e (_ V
&) ede (_ @D@
&r) ede (_ 3D@
&r) en (_ 3n
&r) en (ing 'en
for) en (ing 'en
&r) en (s_ 3n
&r) et (_ 3D
&) er (_ 3
&) en (_ @-n
&) er (_ V
&) en (_ '@-n
&) ene (_ @-n@
&) ende (_ @-nn@
&) eren (_ 3r3n
&) eren (s_ 3r3n
&) es (_ @s
&) et (_ @D
icha) e (l
ika) e (l
ir) e (n 'e
yr) e (n 'e







.group f

f f

ff f
_) for (@P3 f%V
_) for (um f%or
_) for (&@P3 f%V
_) for (e f%V
_) for (um f%or
a) f (A u
a) f (C u
a) f (it f
a) f (on f
a) f (rik f
a) f (sted
a) f (ten f
a) f (tes_ f
Ca) f (t f
ga) f (fel f
gra) f ( f
gra) f (A f
gra) f (C f
ra) f (ik f
ra) f (fe f
kra) f (t f
sa) f (ar f
ska) f (f f
sta) f (e f



.group g
g g
gg g
g (ent g
g (ment g
a) g (A w
a) g (C ?w
a) g (e
la) g (e
a) g (en g
g) g g
e) g (e
n) g n^
i) g (t g
i) g j
i) g (t_
gti) g
i) g
i) g (A
i) g (ere g
redi) g (er g
i) g (i g
n) g n^
n) gr n^gr
r) g (_ w
r) g (e w
Ca) g (en j
ra) g (_ w
ra) g (e w
ør) g (s
l) g (_ j
li) g
li) g (g g
u) g g
u) g (e
u) g (l ?
@@ -199,35 +316,67 @@
y) g (A g
ø) g (e
ø) g (n
æ) g (e j
&e) g j
an) g (å g
ba) g (e
da) g (e
ba) g (C u
ba) g (t g
ba) g (ta u
da) g (C u
ga) g (e S
la) g (e
li) g (t
pli) g (t g
sa) g (s '
si) g (t g
&ti) g
bud) g (et S
rea) g (er g
aga) g (e S
aga) g (te g
arran) g (e S
eta) g (e S
gara) g (e S
onta) g (e S
reta) g (e
foreta) g (e
ru) g (_
a) g (A j
l) g (_ j
l) g (e j
l) g (s j
Ca) g (t k
o) g u
bo) g (C u
æda) g (og g'
no) g (e
no) g (le

nø) g j
re) g (e g
re) g (i g
o) g (r g
o) g (n g
o) g (s u
o) g (st k
bo) g (st k
ø) g (_ j
ø) g (t g
sal) g j
val) g j
lå) g (e u
navi) g (er g
vå) g (e u
vå) g (n u
vå) g (ne u
go) g =
lo) g =
lo) g (a g
lo) g (i =g
_lo) g (i- S
lo) g (o =g
_lo) g (_ g
_lo) g (g g
ør) g w
a) g (K ?
_) ge (@P2 ge
@@ -235,7 +384,8 @@
_) ge (nere Se
_) ge (nert Se
_) ge (nerel ge
_) ge (nera ge
ge (nera ge
ge (nerer ge
ta) g (e


@@ -243,7 +393,7 @@

h h
h (j
h (v
hv v
A) h (K
t) h (en h

@@ -258,15 +408,14 @@
i (nK i
i (nn e
i (mK e
k) i (C_ 'i
k) i (CC_ 'i
l) i (e j
n) i (e i
r) i (g i
t) i (e j

s) i (e j

t) i (on // i ommitted because of sj

s) i (on j


@@ -278,6 +427,7 @@
j j
j (aw dZ
j (ack dZ
j (ob dZ
j (ohn dZ
o) j (e S
a) j (o S
@@ -291,8 +441,7 @@

s) k g

&) k g // after stressed vowel

&) k k // after stressed vowel
&) kk g


@@ -302,15 +451,17 @@
.group l

l l

ll l

ld (K l

&) ld (e_ l

&) ld (ekk l

o) ld l
bo) ld ld
fo) ld l
he) ld l
he) ld (ig ld
no) ld l
æ) ld (r ld



@@ -318,50 +469,62 @@
.group m
m m?
mm m
m (A 'm
m (A m



.group n

n n

nn n
nd (e n
nd (K n
nd (ow nd
nd (r nd
u) nd ( n
n (k N

n (g

pag) n (e nj
gleme) n (t n^




.group ng

ng (_ n^
a) ng (A ng
a) ng (C n^
ng (a ng
ng (i ng
arra) ng n^S
fu) ng n^'g


.group o
o o:
kr) o (C o
cr) o (C 'o
h) o (ld 'V
h) o (ved o
o (CK o
o (r O-
o (p 'V
o (r o
o (rdn o
m) o (rC V
o (gK o
oo u
b) oo (k u
l) oo (k u
ou Vw
ov Vw
@) o (C V
ov Vv
@) o (C 'o
@@) o (C 'o
_C) o (l 'V
_C) o (p 'V
_CC) o (p 'V
_CC) o (l 'V
_f) o (r 'V
b) o (C 'o
sk) o (le 'o
_f) o (r V
_f) o (re 'V
l) o (kk V
p) o (li o
st) o (K 'o
@@ -371,9 +534,7 @@
.group p

p p

pp p

&) p b

&) pp b
@@ -400,6 +561,7 @@
bu) rd (eK rd
no) rd (eKK r
no) rd (isk rd
o) rd (en rd
tu) rd (eK rd
ve) rd (eKK rd

@@ -414,31 +576,30 @@
s (A s
s (ie s
s (ion S



s (j s

s (ch S
kompromi) s


.group t

t t
A) t (_ t:
th t
th th
&) t t

&) tt t

&) th d

t (ie t

t (ion+ sj'


emen) t
elemen) t t
emen) t (al t
glemen) t
glemen) t (al t
lemen) t (er t
poin) t
poin) t (e t



@@ -448,6 +609,7 @@
u (nK u
u (mK O
a) u (g u
b) u (dget y
l) u (k O?
l) u (kas u
m) u (k O?
@@ -455,6 +617,9 @@
r) u u
r) u (m O
r) u (nd O?
fris) u (r y
frit) u (r y
men) u y
g) u (st O
r) u (s u

@@ -466,10 +631,13 @@
a) v (n u
&A) v v
&r) v v
l) v (C
l) v (A


al) v (A v
el) v (C
el) v (A
el) v (e v
il) v (A v
ur) v v
hal) v


.group w
@@ -517,28 +685,39 @@
æ E?
æ (CK E:
l) æ E:
r) æ &:
r) æ (CK e
r) æ E
r) æ (kk aj
r) æ (v e
r) æ (L01 Aj
r) æ (k Aj
t) æ (C E:
v) æ E:
pr) æ (ge E:
tr) æ E
tr) æ (k 'aj
tr) æ (kA E


.group ø
ø W?
ø (CK W:
b) ø (g W
d) ø (r W
f) ø (r W:
g) ø (r @:
h) ø (j V
h) ø (r W:
k) ø (r W:
l) ø (s W:
m) ø W:
r) ø W:
s) ø W:
ø (r w
t) ø (r W
ø (r W
r) ø (CK W:
øg Vj
øj Vj
øg W
d) øg (n Vj
øj oj

.group å
å O:?
@@ -550,3 +729,4 @@
$ dVlar




+ 2
- 2
dictsource/de_list View File

@@ -113,7 +113,7 @@ _2X 'tsvantsIC
_3X 'd@-*aIsIC
_4X 'fi:*tsIC
_5X 'fynftsIC
_6X 'zEktsIC
_6X 'zECtsIC
_7X 'zi:btsIC
_8X '_axttsIC
_9X 'nOYntsIC
@@ -612,7 +612,6 @@ kurie $alt
lakaienhaft l%akaInhaft
lappalie $alt
lilie $alt
linie $alt
logier lo:Z'i:*
luetisch lu:'e:tIS

@@ -653,6 +652,7 @@ privatisier p@-*i:vati:z'i:*
problematisier p@-*o:ble:m'a:tIzi:*

reliquie $alt
risik $1
rupie $alt

sabbat zabat

+ 11
- 3
dictsource/de_rules View File

@@ -324,9 +324,9 @@
&) eren (_S4 @*@n
&) erer (_S4 @*3
&) eres (_S4 @*@s
&) er (C_ @*
&) er (C_ @:*
er (d_ e:*
&) er (n_ @*
&) er (n_ @:*
&) er (r_ E
w) er (k_ E*
&) er (nd_ @*
@@ -569,7 +569,10 @@
_) inter Int@*
&) in (_ i2n
l) in (_ 'i:n
m) in (_ 'i:n
s) in (_ 'i:n
z) in (_ 'i:n
@) in (o_ 'i:n
@) ion (_ j'o:n
@) io (n Io:
io Io:
@@ -593,6 +596,7 @@

&) ie (ll_ I'E
&) ie (r_ 'i:
ie (rs@ 'i:
u) ie (r_ _|'i:
&) ie (rlich 'i:
bank) ie (r I'e:
@@ -633,6 +637,7 @@
fol) ie (_ =I@
formal) ie =I@
stud) ie (_ =I@
in) ie (_ I@


.group j
@@ -1016,7 +1021,9 @@
_) vi vi:

_) v v
_) v (ater f
vater fA:t3
väter fE:t3
_) v (ät f
_) v (ie f
_) v (iet v
_) v (iz f
@@ -1028,6 +1035,7 @@
_) vehe ve:he:
_) ver (@P3 f%E*
_) ver (bal v%E*
_) ver (sion vE*
_) ver (tik vE*
@) versich fE*z,IC
@) vergess fE*g,Es

+ 352
- 353
dictsource/dict_phonemes View File

@@ -1,97 +1,123 @@
Phonemes which are used in the *_rules and *_list files


Dictionary af_dict
Dictionary zhy_dict

& &: 3: @ @- @L @U a
A: aI AI aU A~ E e: e@
eI e~ I i iu O O: o@
OI oI o~ u uI W y Y@
Yy
a aa aai aan aau ai au e
ei eo eoi eu i iu o oe
oi ong ou u ui yu

- : ; ? b c d dZ
f g h j k l L m
n N p r s S t T
tS v w x x2 z Z
b c d f g h j k
l m n N p r s t
tS v w z


Dictionary bn_dict
Dictionary fr_dict

& a a: a~ e E e~ i
I i: i:~ i~ l- o O o:
O~ o~ r- U u u: u:~ u~
V
@ @- @2 a A~ e E E2
E: E~ i i- i: o O o2
O2 o3 O~ u u: W w^i wA
W~ y Y

* b B bh c C ch d
d. d.h dh g gh h j J
Jh k kh l m n N n.
n^ p ph Q r r. s S
s. t t. t.h th tS x z
: b d dZ f g h j
k l m n N n2 n^ p
p2 r R r2 s S t t2
t3 tS v w z Z z2 z3


Dictionary ca_dict
Dictionary nl_dict

@ a a# aI e E E2 i
o O u U
8 @ @- A a: E e: EI
eU i I O O: o: u VU
Wy y Y: yU

* ** : ; b B d D
dZ; f g j J J^ k l
l^ m n N n^ p Q R
R2 s S; t T ts tS; v
v# w z Z Z;
* : ; b C d f g
h j k l m n N n^
p Q r s S t tS v
v2 w x z


Dictionary cs_dict
Dictionary jbo_dict

@- a a: aU e e: eI eU
i i: l- o o: oU r- u
u:
@ @- a aI aU e eI i
l- o oI r- u

* ; b c d dZ dz f
g h j J k l l^ m
n N n^ p r R R^ R^/
s S t tS ts v x z
* - b d dZ f g h
j k l m n N p R
s S t tS v w x z
Z


Dictionary cy_dict
Dictionary hu_dict

@ @- @I @Y a A: aI aU
AY aY E e: eU I i: Iu
O o: OI OY U u: uY V
Y y: Yu
A a: E e: i i: o o:
u u: Y y y: Y:

: b C d D dZ f g
h j k l L m n N
p r s S t T v w
x z
: b c C d dZ f g
h j J k l l^ m n
N n^ p R R2 s S s2
t tS ts v z Z


Dictionary kn_dict
Dictionary hy_dict

a a: aI aU e E e: i
I i: o o: r- u u: V
y
@ a aI e eI i i@ o
u W y

: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s S
s. S; t t. t.h th tS v
w z
** b c d dZ dz f g
h j k k# l m n p
p# r R r" s S t t#
tS ts ts# v X z Z


Dictionary de_dict
Dictionary zh_dict

3 @ @- a A A: aI aU
E E2 E: e: EI I i2 i:
O o: OY U u: W y y:
Y:
@ @r a A ai Au E ei
i i. i[ iA iE io iou N-
o o- ong ou u u@ ua uai
uei uo y y& y@ yE yi yu

* : ; b C C2 d D
dZ f g h j k l m
n N p pF r s S t
tS ts v x z Z
; C f h j k kh l
L m n N p ph r R
s s. S; t th ts ts. ts.
tS; tS; tsh v w x X z.


Dictionary ca_dict

@ a a# aI e E E2 i
o O u U

* ** : ; b B d D
dZ; f g j J J^ k l
l^ m n N n^ p Q R
R2 s S; t T ts tS; v
v# w z Z Z;


Dictionary af_dict

& &: 3: @ @- @L @U a
A: aI AI aU A~ E e: e@
eI e~ I i iu O O: o@
OI oI o~ u uI W y Y@
Yy

- : ; ? b c d dZ
f g h j k l L m
n N p r s S t T
tS v w x x2 z Z


Dictionary id_dict

@ a aI aU e E E2 i
o O u

* : ? b d dZ f g
h j k l m n N n^
p r R R2 s S t tS
v w x z


Dictionary el_dict
@@ -121,51 +147,17 @@ s S t T t2 tS v w
x z Z


Dictionary eo_dict

@- a aI aU e eI eU i
o oI u uI

* - b d dZ f g h
j k l m n p r R
s S t T tS ts v w
x z Z


Dictionary es_dict

a aI aU e E eI eU i
o O oI u

* ** : b B d D f
g j J J^ k l m n
N n^ p Q R R2 s t
T tS v v# w x z


Dictionary fi_dict

& &i &y a a2 ai au e
ei eu ey i I ie iu iy
o oi ou u ui uo Y y
Yi yi Yy yY

: b d f g h j k
l m n N p r s S
s2 t v w Z


Dictionary fr_dict
Dictionary cs_dict

@ @- @2 a A~ e E E~
i I i- i: o O o2 O2
O~ u u: W W2 w^i wA W~
y Y
@- a a: aU e e: eI eU
i i: l- o o: oU r- u
u:

: b d dZ f g h j
k l m n N n2 n^ p
p2 r r2 s S t t2 t3
tS v w z Z z2 z3
* ; b c d dZ dz f
g h j J k l l^ m
n N n^ p r R R^ R^/
s S t tS ts v x z
Z


Dictionary grc_dict
@@ -179,6 +171,19 @@ l m n N p R s t
T v x z


Dictionary cy_dict

@ @- @I @Y a A: aI aU
AY aY E e: eU I i: Iu
O o: OI OY U u: uY V
Y y: Yu

: b C d D dZ f g
h j k l L m n N
p r s S t T v w
x z


Dictionary hbs_dict

& @ @2 a A a: aI aU
@@ -191,67 +196,6 @@ N n^ p r R R2 s S
t tS ts tS; v x z Z


Dictionary hi_dict

@ @- @2 @3 a a: aI aU
e E e: E: E~ i I i:
l- o O o: O: O~ o~ r-
U u: u~ V

- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z


Dictionary hu_dict

A a: E e: i i: o o:
u u: Y y y: Y:

: b c C d dZ f g
h j J k l l^ m n
N n^ p R R2 s S s2
t tS ts v z Z


Dictionary hy_dict

@ a aI e eI i i@ o
u W y

** b c d dZ dz f g
h j k k# l m n p
p# r R r" s S t t#
tS ts ts# v X z Z


Dictionary id_dict

@ a aI aU e E E2 i
o O u

* : ? b d dZ f g
h j k l m n N n^
p r R R2 s S t tS
v w x z


Dictionary is_dict

& @- a aI aU e E eI
i I o O oU oU2 u W
y y# Yy

* ** : ; b c C d
D f g h j J k l
l# m m# n N n# N# n^
n^# p Q r R r# R2 s
s2 t T tl# v x z


Dictionary it_dict

@- a a/ aI aU e E eI
@@ -263,58 +207,19 @@ n^ p r R s S t tS
ts v w w2 z


Dictionary jbo_dict
Dictionary sk_dict

@ @- a aI aU e eI i
l- o oI r- u
& @- a a: e e: i i:
l- l: o o: oU r- r: u
u:

* - b d dZ f g h
j k l m n N p R
s S t tS v w x z
* ; b d d; dZ dz f
g h j k l l^ m n
N n^ p r R R^ R^/ s
S t t; tS ts v x z
Z


Dictionary ml_dict

a a: aI aU e E e: i
I i: o o: r- u u: V
y

: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s s.
S; t t. t.h th tS v w
z z.


Dictionary ne_dict

@ @/ @2 @3 a aI aU a~
e E eI eU e~ E~ i I
i~ l- o O o: oI oU O~
o~ r- u uI u~ V VI VU
V~

- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z z.


Dictionary om_dict

a A a# a: E e E# I
I# i: O O# o: U U# u:

** : b B c` d D d`
dZ f g h j k k` l
m n n^ p p` R s S
s2 t t` tS v w z


Dictionary ku_dict

8 a e E E# eI eU i
@@ -326,97 +231,104 @@ q r R s S t tS v
w x z Z


Dictionary la_dict
Dictionary sq_dict

@- a a: aI aU E e: EU
I i: O o: OI U u: y
y:
@ @/ a A a/ aI E e
eI i I I# O OI u V
y yE

* : ; <h> ? b d f
g h j k l m n N
p r R s t w z
** : ; b c d D dZ
dz dZ; f g h j k l
L ll m n n^ p r R
R2 s S t T tS ts v
w z Z


Dictionary lv_dict
Dictionary sw_dict

a a: ai au e e: ei i
i: ie iu o o: u u: ui
uo
@- a a/ e i m- n- N-
o u

: b c d dZ f g h
j J k l l^ m n N
n^ p r R R2 s S t
tS ts v z Z
* : b d D f g h
j J k l m n N n^
p Q R s S t T tS
v w x z


Dictionary mk_dict
Dictionary fi_dict

& @ @- @2 a A a: E
e e: i I i: l- o o:
oU r- u u:
& &i &y a a2 ai au e
ei eu ey i I ie iu iy
o oi ou u ui uo Y y
Yi yi Yy yY

* b d dZ dz dZ; f g
h j k k^ l l^ m n
N n^ p r R s S t
tS ts tS; v x z Z
: b d f g h j k
l m n N p r s S
s2 t v w Z


Dictionary rw_dict
Dictionary pl_dict

a e i o u
a E E# E~ i O O~ u
y

* : b B c d dZ f
g h j J k l m n
N n^ p q R s S S;
t tS v w x z
: ; b c C d d; dZ
dz dz; f g h j k l
m n N n^ p r R s
S s; S; t t; tS ts ts;
tS; v w x z Z Z;


Dictionary eu_dict
Dictionary no_dict

a aI aU e eI eU i o
oI u Y
@ @2 a A a: A: AI aI
aU E E: e: I i: O o:
OI U u- u-: u-I u: W y
y: Y: Yy

* ** : ; b B c d
D f g h j J k l
l^ m n n^ p Q r R
s S t tS ts tz v w
x z
: ; b d f g h j
k l m n N p r R
s S s; t v w x z


Dictionary nl_dict
Dictionary vi_dict

8 @ @- A a: E e: EI
eU i I O O: o: u VU
Wy y Y: yU
@ @: @:I @:U @I @U a a:
a:I a:U aI aU E e eU EU
i i@ iU O o OI oI u
u@ uI y y@ yI

* : ; b C d f g
h j k l m n N n^
p Q r s S t tS v
v2 w x z
b c d D f g h j
J k kh l m n N n^
p Q r s s. t t[ ts;
tS; v w x z Z z.


Dictionary no_dict
Dictionary ro_dict

@ @2 a A a: A: AI aI
aU E E: e: I i: O o:
OI U u- u-: u-I u: W y
y: Y: Yy
@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o O Oa oI oU u uI
y Y yI yU

: ; b d f g h j
k l m n N p r R
s S s; t v w x z
* *; - b b; c C d
d; dZ f f; g h j k
l l; m m; n N n; p
p; r s S S; t t; tS
ts ts; v v; w w2 x z
Z z; Z;


Dictionary pl_dict
Dictionary lv_dict

a E E# E~ i O O~ u
y
a a: ai au e e: ei i
i: ie iu o o: u u: ui
uo

: ; b c C d d; dZ
dz dz; f g h j k l
m n N n^ p r R s
S s; S; t t; tS ts ts;
tS; v w x z Z Z;
: b c d dZ f g h
j J k l l^ m n N
n^ p r R R2 s S t
tS ts v z Z


Dictionary pt_dict
@@ -433,19 +345,15 @@ S s# s; t T tS ts v
w x z Z


Dictionary ro_dict
Dictionary tr_dict

@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o O Oa oI oU u uI
y Y yI yU
a e E i I o O u
U u# W y Y

* *; - b b; c C d
d; dZ f f; g h j k
l l; m m; n N n; p
p; r s S S; t t; tS
ts ts; v v; w w2 x z
Z z; Z;
* : b c d dZ f g
h j J k l m n p
Q r R s S t tS v
w z Z


Dictionary ru_dict
@@ -462,6 +370,53 @@ t; ts ts; tS; v x z Z
z; Z;


Dictionary eo_dict

@- a aI aU e eI eU i
o oI u uI

* - b d dZ f g h
j k l m n p r R
s S t T tS ts v w
x z Z


Dictionary mk_dict

& @ @- @2 a A a: E
e e: i I i: l- o o:
oU r- u u:

* b d dZ dz dZ; f g
h j k k^ l l^ m n
N n^ p r R s S t
tS ts tS; v x z Z


Dictionary es_dict

a aI aU e E eI eU i
o O oI u

* ** : b B d D f
g j J J^ k l m n
N n^ p Q R R2 s t
T tS v v# w x z


Dictionary is_dict

& @- a aI aU e E eI
i I o O oU oU2 u W
y y# Yy

* ** : ; b c C d
D f g h j J k l
l# m m# n N n# N# n^
n^# p Q r R r# R2 s
s2 t T tl# v x z


Dictionary da_dict

& 0 3 @ @- a A e
@@ -474,30 +429,17 @@ m n N n^ p r R s
S t tS v w


Dictionary sk_dict

& @- a a: e e: i i:
l- l: o o: oU r- r: u
u:

* ; b d d; dZ dz f
g h j k l l^ m n
N n^ p r R R^ R^/ s
S t t; tS ts v x z
Z


Dictionary sq_dict
Dictionary de_dict

@ @/ a A a/ aI E e
eI i I I# O OI u V
y yE
3 @ @- a A A: aI aU
E E2 E: e: EI I i2 i:
O o: OY U u: W y y:
Y:

** : ; b c d D dZ
dz dZ; f g h j k l
L ll m n n^ p r R
R2 s S t T tS ts v
w z Z
* : ; b C C2 d D
dZ f g h j k l m
n N p pF r s S t
tS ts v x z Z


Dictionary sv_dict
@@ -511,74 +453,121 @@ k l m n N p R s
S s. S; sx t v w z


Dictionary sw_dict
Dictionary la_dict

@- a a/ e i m- n- N-
o u
@- a a: aI aU E e: EU
I i: O o: OI U u: y
y:

* : b d D f g h
j J k l m n N n^
p Q R s S t T tS
v w x z
* : ; <h> ? b d f
g h j k l m n N
p r R s t w z


Dictionary hi_dict

@ @- @2 @3 a a: aI aU
e E e: E: E~ i I i:
l- o O o: O: O~ o~ r-
U u: u~ V

- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z


Dictionary ta_dict

a a: aU e E e: E: i
a a: aI aU e E e: i
I i: o o: U u u: V

: b c C d d. dZ f
g h j k l l. m n
N n. n^ p r R s S
s. t t. tS v w z z.
: ; b c C d d. dZ
f g h j k l l. m
n N n. n^ p r R s
S s. t t. th tS v w
z z.


Dictionary tr_dict
Dictionary bn_dict

a e E i I o O u
U u# W y Y
& a a: a~ e E e~ i
I i: i:~ i~ l- o O o:
O~ o~ r- U u u: u:~ u~
V

* : b c d dZ f g
h j J k l m n p
Q r R s S t tS v
w z Z
* b B bh c C ch d
d. d.h dh g gh h j J
Jh k kh l m n N n.
n^ p ph Q r r. s S
s. t t. t.h th tS x z


Dictionary vi_dict
Dictionary eu_dict

@ @: @:I @:U @I @U a a:
a:I a:U aI aU E e eU EU
i i@ iU O o OI oI u
u@ uI y y@ yI
a aI aU e eI eU i o
oI u Y

b c d D f g h j
J k kh l m n N n^
p Q r s s. t t[ ts;
tS; v w x z Z z.
* ** : ; b B c d
D f g h j J k l
l^ m n n^ p Q r R
s S t tS ts tz v w
x z


Dictionary zh_dict
Dictionary kn_dict

@ @r a A ai Au E ei
i i. i[ iA iE io iou N-
o o- ong ou u u@ ua uai
uei uo y y& y@ yE yi yu
a a: aI aU e E e: i
I i: o o: r- u u: V
y

; C f h j k kh l
L m n N p ph r R
s s. S; t th ts ts. ts.
tS; tS; tsh v w x X z.
: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s S
s. S; t t. t.h th tS v
w z


Dictionary zhy_dict
Dictionary ml_dict

a aa aai aan aau ai au e
ei eo eoi eu i iu o oe
oi ong ou u ui yu
a a: aI aU e E e: i
I i: o o: r- u u: V
y

b c d f g h j k
l m n N p r s t
tS v w z
: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s s.
S; t t. t.h th tS v w
z z.


Dictionary mn_dict

a e i o O o: U u

: ; c f g j k L
m n p p# R s S t
t# tS ts ts# w x


Dictionary ne_dict

@ @/ @2 @3 a aI aU a~
e E eI eU e~ E~ i I
i~ l- o O o: oI oU O~
o~ r- u uI u~ V VI VU
V~

- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z z.


Dictionary pap_dict
@@ -590,3 +579,13 @@ O u y Y
j k l m n N n^ p
R s S t tS v w x
z Z


Dictionary rw_dict

a e i o u

* : b B c d dZ f
g h j J k l m n
N n^ p q R s S S;
t tS v w x z

+ 16
- 0
dictsource/en_list View File

@@ -218,6 +218,7 @@ _₠ jU@roU
√ skw,e@r'u:t
∞ Inf'InI2tI2
≠ n0t'i:kw@LtU
№ nju:m@roU

ß S,A@p'Es
ə SwA:
@@ -261,6 +262,7 @@ U+32f n,0nsI2l'abI2k

// numeric

//_0 zero $text // TEST
_0 z'i@roU
_1 w'0n
?6 _1 w'Vn
@@ -575,6 +577,7 @@ anxious aNS@s
anymore $3
anything EnI2TIN
apache a2patSI
apostle a2p0s@L
apron eIpr@n
appal a2pO:l
apparatus ap@r'eIt@s
@@ -684,6 +687,7 @@ boing bOIN
bombard $2
bonbon b0nb0n
bonhomie b0n@mi:
bonjour bO:nZ'U@
boogie b'u:gI
bosom bUz@m
bosun boUs@n
@@ -978,6 +982,7 @@ divan dI2van
doable du:@b@L
doctrine d0ktrI2n
doctrinal d0ktr'aIn@L
doer du:3
dogged d0gI2d
domino $1
donor doUn3
@@ -1348,6 +1353,7 @@ kiosk ki:0sk
kiwi ki:wi:
knavish neIvIS
koala koU'A:l@
koan koUA:n
kopje k0pI
kosher koUS3

@@ -1391,9 +1397,11 @@ limousine lIm@zi:n
lingerie l0nZ@rI
linen lInI2n
liqueur lI2kjU@
liter li:t3
literature lItrI2tS3
live laIv $onlys
live lIv $verb
livecd l'aIvsi:d'i:
livestock l'aIvst,0k
lively laIvlI
llama lA:m@
@@ -1572,6 +1580,7 @@ offer 0f3
offers 0f3z
ogre oUg3
okay oUk'eI
oled oUlEd // abbrev
omeg oUm'eIg@
omelet 0ml@t
omelette 0ml@t
@@ -1674,6 +1683,7 @@ pier pi@3
pigsty pIgstaI
pilot paIl@t
pineapple p'aInap@L
pinged pINd
pint paInt
pioneer paI@n'i@3
pious paI@s
@@ -2209,6 +2219,7 @@ vex vEks // for vexed
vicar vIk3
vigilante vIdZI2l'antI2
villi vIlaI
vineyard vInj3d
vinyl vaInI2l
violin $2
virus vaI@r@s
@@ -2449,6 +2460,7 @@ Nauru naUru:
Nebraska $2
Nepal nEp'O:l
?3 Nevada nI2vad@
Newfoundland nju:f@ndla2nd
Noumea nu:m'eI@
Oahu oU'A:hu:
Ohio oUh'aIoU
@@ -2676,6 +2688,7 @@ Rhys ri:s
Rihanna rI'A:n@
Roderick r0drIk
Rosario roUz'A@rIoU
Russell rVs@L
Sabina sa2bi:n@
Sabine sa2bi:n
Samantha s@manT@
@@ -2709,10 +2722,12 @@ Zoe zoUI
Andromeda andr'0mId@
Buchanan bju:k'an@n
Campbell kamb@l
Carnegie kA@nEgI
Cthulhu k@-Tu:Lu:
Chrysler kraIzl3
Disney dIznI
Dolce d0ltSeI
Dvorak d@-vo@Zak
Hades heIdi:z
Patel pa2tEl
Primavera pri:m@v'e@r@
@@ -3182,6 +3197,7 @@ like laIk $strend2
?3 pasta pA:st@
?3 patent pat@nt
?3 privacy praIv@sI
?3 respite rEspI2t
?3 semi sEmaI
?3 status stat@s
?3 template tEmpl@t

+ 6
- 1
dictsource/en_rules View File

@@ -646,6 +646,7 @@
amoeb a2mi:b
f) amil amIl
f) am (ous eIm
&g) am (ous =a2m
&) am (ent @m
&) ame (nta @m'E
_) ame (nt a2mE
@@ -1535,6 +1536,7 @@
de (pol d%i:
de (pop d%i:
depo (siti dEp@
de (preca dE
de (pt dE
de (put dE
_) de (rai dI2
@@ -2595,7 +2597,7 @@
_s) i (der aI
i (der_+ aI
@) i (do_ 'i:
ifier (_ IfaI@
ifier (_ IfaI3
man) ife (s IfE
&) ify (_ =I2faI
if (icAnC 'If
@@ -3429,6 +3431,7 @@
ng (e ndZ
ng (y Ng
mA) ng (y ndZ
u) ng (y ndZ
nged ndZd
o) nged Nd
spo) nged ndZd
@@ -4615,6 +4618,7 @@
.group su
_ca) su Zu:
_) sus (A su:z
su (al Zu:
_) su (b sV
su (bdue s%V
su (bmerg s@
@@ -5083,6 +5087,7 @@
_) x z
xio (n kS@
xious =kS@s
xu (a kSu:

.group y
y j

+ 106
- 76
dictsource/fr_list View File

@@ -24,7 +24,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated 2009-07-3128 Michel Such <[email protected]>
// Updated 2009-09-28 Michel Such <[email protected]>
//
// * Numbers, a few abbreviations and exceptions.
//
@@ -83,8 +83,8 @@ z zEd

// accent names
_lig ligat'yr
_acu aksA~tEg'y
_ac2 dublaksA~tEg'y
_acu aksA~tE2g'y
_ac2 dublaksA~tE2g'y
_brv br'Ev
_ced sed'ij
_cir aksA~sirkO~fl'Eks
@@ -104,29 +104,29 @@ _cap maZysk'yl
_?A l'Etr
_?? sE~b'Oll
_#9 tabylasiO~
_#32 Espas
_#32 E2spas


_" gijmE
_" gijmE2
_# djEz
_' apostr'Of

_( 'uvr@-parA~t'Ez
_) f'Erm parA~t'Ez
_, virgyl
_- tirE
_- tirE2
_. _|pw%E~
_/ bar||oblik
_/ bar||o2blik
_: d'Y||pw'E~
_; pwE~||virg'yl
_< E~feri-Wr
_= egal
_> syperi-Wr
_? pwE~||dE~terogasj'O~
_? pwE~||dE~tE2rogasj'O~
_! pwE~||dEksklamasj'O~
_[ uvr@-_kroSE
_[ uvr@-_kroSE2
_\ b'aksl'aS
_] f'Erm_kroS'E
_] f'Erm_kroS'E2
_^ sirkOnflEks
__ sulin^e
_` aks'A~_gr'av
@@ -134,8 +134,8 @@ _{ uvr_akOlad
_| bar_vErtik'al
_} f'Erm_akOl'ad
² pw^is'A~s||d'Y
_« uvre||gijm'E
_» fErme||gijm'E
_« uvre||gijm'E2
_» fErme||gijm'E2
_’ apostr'Of
_‘ apostr'Of
_µ mikr'o
@@ -144,8 +144,8 @@ _§ sEksj'O~
// symbols that are normally spoken when reading text
@ _!arobaz
% pursA~ $max3
& _|e $u
_& _e_komErsi'al
& e $u $brk
_& _e_komErsi-'al
* asterisk: $max3
+ plys $max3
~ tilde
@@ -233,6 +233,7 @@ _dpt virgyl

abc $abbrev
ac $abbrev
acrobat acrobate $text
adn adeEn
adsl adeEsEl
alt _::alt
@@ -248,30 +249,32 @@ cci $abbrev
cia $abbrev
cio $abbrev
cm centimètre $text
collins kolins
cpu $abbrev
ctrl _::kO~tro2l
dept depart@-mA~
dept depart@mA~
divx diviks
ebay _^_en
(e bay) ebay $text
edf @deEf
etc Etsetera
etc E2tsetera
ghz ZigaErts
(g hz) ZigaErts
hmm h@m
(http ://) aSt,et,ep'e_
hz _|Erts
ibm ibeEm
ide $abbrev
ip ipe
irc i:_|Er:se
jaws _^_en
irc i:_!Er_!se
jaws dZo3:z
kbit kilobit
kde $abbrev
kg kilogram
kg kilogramme $text
khz kiloErts
km kilomètre $text
(km player) ka,EmplEj'Wr
(kmplayer) ka,EmplEj'Wr
(km player) ka,EmplE2j'Wr
(kmplayer) ka,EmplE2j'Wr
kw kilowatt $text
m. m@siY
mbit megabit
@@ -283,32 +286,35 @@ mm millimètre $text
mme madame $text
mn minyt
mns minytz2
(mp 3) _|Empetrwa
(mp 3) _!EmpetrwA
mr m@siY
nsi $abbrev
nsis $abbrev
nti $abbrev
nvda $abbrev
ocr oseEr
oem $abbrev
oem _!,o_!,@_!'Em
ogm oZeEm
ong oEnZe
pci $abbrev
pcmcia $abbrev
pda $abbrev
philips filips
p.s pOstskriptOm
qq quelque $text
qqs quelques $text
ratp $abbrev
riscos rIskoEs
riaa $abbrev
riscos RiskoEs
sap $abbrev
scsi $abbrev
s.t.p silt@:pl'E
s.v.p silvu:pl'E
sos $abbrev
s.t.p silt@:pl'E2
s.v.p silvu:pl'E2
st s'E~t2
ste s'E~t
stp silt@:pl'E
svp silvu:pl'E
stp silt@:pl'E2
svp silvu:pl'E2
tva $abbrev
uk $abbrev
ups ypeEs
@@ -317,8 +323,10 @@ usb y:Esbe
utc $abbrev
utf $abbrev
u.s y:Es
virgin virZin
vip v,i||,aj||p'i
(web visum) webvisum $text
windows windo3z
wma $abbrev
xfce iksEfse@
xy $abbrev
@@ -329,8 +337,6 @@ prof $dot
pr professeur $text *dot $capital




// articles
le $nounf $u+
le $verb $verbextend $u
@@ -345,15 +351,16 @@ une $nounf $u+

// conjonctions
mais $u+
ou _|u $u
ou u $u $brk
eh $u $brk
et _|e $u
en $u
et e $u $brk
ni $u
car $u
car $noun
cependant
néanmoins $u+
toutefois $u+
afin afE~ $u+ $brk
avant $u+
après $u+
(temps en temps) tA~zA~tA~
@@ -365,9 +372,9 @@ aussi $u+

certes $u+
dont dO~t2 $u
lorsque lO2rsk@ $u+
puisque pw^isk@ $u+
presque $u+
lorsque lOrsk=@ $u+
puisque pw^isk=@ $u+
presque prEsk=@ $u+
que $u+
(parce que) parsk@ $u+
(parce qu'il) parskil $u+
@@ -387,7 +394,7 @@ je $u $verbf
tu $u+ $verbf
il $u+ $verbf
elle $u+ $verbf
y $u $verbf
y $u+ $verbf
nous $u+ $verbf
vous $u+ $verbf
elles $u+ $verbf
@@ -475,14 +482,14 @@ contre $u+
chaque $u+
plusieurs $u+
durant $u+
avec $u+
avec $u+ $brk
sans $u+
trop trop2 $u+
assez $u+
beaucoup bokup2 $u+
peu $u+
très $u+
près $u+
très trEz2 $u+
près prEz2 $u+
loin $u+

// negative
@@ -508,8 +515,8 @@ pourtant $u+

// auxillary verbs (be, have, can, etc)
suis $u+ $verb
es Ez2 $u+
est Et2 $u+
es E2z2 $u+
est E2t2 $u+
sommes $u+ $verb
êtes $u+ $verb
sont $u+ $verb
@@ -525,7 +532,7 @@ sois $u+ $verb
soit $u+

ai $u+ $verb
(ai je) EZ=@- $u+
(ai je) E2Z $u+
as as
as az2 $u+ $verb
(as tu) aty
@@ -559,8 +566,8 @@ d'est d'Est
quel $u+
quelle $u+
quelles $u+
quelque $u+
quelques $u+
quelque kElk=@ $u+
quelques kElk=@z2 $u+
tel $u+
telle $u+
telles $u+
@@ -568,7 +575,7 @@ tout t'ut2 $u+
toute t'ut $u+
toutes t'utz2 $u+
tous $u+
rien ri-'E~n2 $u+
rien Ri-'E~n2 $u+

// Letters which can be words
//===========================
@@ -588,8 +595,8 @@ dessous d@su
hareng _!arA~
pastis pastis
poing pwE~
ressent r@s'A~t2
riz ri
ressent R@s'A~t2
riz Ri
sphincter sfE~ktEr
sous $u+
sur $u+
@@ -604,13 +611,13 @@ tunis tynis
(1 ers) pr@mjez2
(1 ère) pr@mjEr
(1 ères) pr@mjErz2
(1 èrement) pr@mjEr@-mA~
(1 èrement) pr@mjErmA~


monsieur m@sjY
messieurs mesjYz2
montréal mO~real
(n'est ce pas) n'Es@-||p'az2
(n'est ce pas) n'Es||p'az2
(qu'est ce que) kEsk@ $u
absent absA~
adam adA~
@@ -620,12 +627,16 @@ adsltv adeEs'El||tev'e
airbus airbuss $text
alan alan
albinos albinoss $text
alleluia alelui'a
anis anis
arte arte
auvent ovA~
beta beta
bien bi-E~n2 $u+
bis bis
bissus bisys
blues _^_en
broglie breuil $text
buffer bWfWr
bus bys
bus by $verb
@@ -636,22 +647,29 @@ canyon kanjO2n
choeur kWr
cocus koky
couscous kuskus
delete _^_en
dernier dErnjer2
éloquent ElokA~t2
éloquent elokA~t2
enfer A~fEr
faut fot2 $u+
fier fjer $verb
francis franciss $text
fred frEd
free fri:
fuel fjul
gangster gA~gstEr
gars ga
gin dZin
granit granitt $text
gulf gWlf
gus gys
gym Zim
hélas elas $u+
iris iris
karaoke karaoke
laser lazEr
listbox listbO2ks
malus malys
mai mE2
mailto mEjltu_
mapper _^_en
mars mars
@@ -660,19 +678,26 @@ mieux mi-Y $u+
mrs _^_en
ours urs
pataquès patakEs
peter pi:tWr
phallus falys
polder pOldEr
premier pr@mjer2
program _^_en
(program files) program||fajlz
query kueri
queries kueri
quit _^_en
recorder ricordeur $text
requiem rekw^ijEm
revolver RevOlvEr
scan skan
scanner skaner2 $verb
scanner skanWr $noun
scanners skanWr
shampoing SA~pwE~
sir _^_EN
souris suri
stocker stoker2
sus sys
sus sy $verb
to _^_en
@@ -700,7 +725,7 @@ cut kWt
mazout mazut
michael mikaEl
out aut
rut ryt
rut Ryt
scorbut scorbutt $text
scout skut
stout staut
@@ -711,24 +736,24 @@ zut zyt

// et (t is said)

exocet EgzOsEt
exocet E2gzOsEt
fret fr'Et
budget bydZE
budget bydZE2
hamlet hamlEt
knesset knEsEt
lazaret lazarE
knesset knesEt
lazaret lazarE2
margaret margarEt
net nEt
offset OfsEt
set sEt
soviet sOviEt
soviet soviEt
stewart sti:wart

// urt (t is said)
kurt kurt
yaourt iaurt
yoghourt iogurt
yogourt iogurt
yaourt _!i-aurt
yoghourt _!i-ogurt
yogourt _!i-ogurt

// ort (t said)
short SOrt
@@ -741,12 +766,12 @@ kart kart
smart smart

// irt
(sweat shirt) swEtSW2rt
(sweat shirts) swEtSW2rt
(tee shirt) t,i:S'W2rt
(tee shirts) t,i:S'W2rt
(t shirt) t,i:S'W2rt
(t shirts) t,i:S'W2rt
(sweat shirt) swEtSWrt
(sweat shirts) swEtSWrt
(tee shirt) t,i:S'Wrt
(tee shirts) t,i:S'Wrt
(t shirt) t,i:S'Wrt
(t shirts) t,i:S'Wrt


// words from other languages
@@ -764,10 +789,10 @@ computer _^_en
(cyber link) _^_en
debian debjan
edit _^_en
emacs Emaks
emacspeak Emakspi:k
emacs E2maks
emacspeak E2makspi:k
end _^_en
epson EpsOn
epson E2psOn
espeak @spi:k
ethernet etErnEt
exit egzit
@@ -782,7 +807,7 @@ help _^_en
hot _^_en
in in $u+
inside _^_en
(internet explorer) E~tErn'Et||EksplOr'Wr
(internet explorer) E~tErn'Et||E2ksplOr'Wr
klaxon klaksOn
let _^_en
lite _^_en
@@ -803,7 +828,7 @@ outlook autlu:k
paint _^_en
paper _^_en
people _^_en
redhat rEdat
redhat REdat
same _^_en
sametime _^_en
schubert SubEr
@@ -840,10 +865,12 @@ afrikaans afrikans
bahamas baamas
bangladesh bA~gladES
bélarus belarys
belize beliz
bissau bisa'o
(burkina faso) byrkina||faso
burundi burundi
croatie kroasi
esperanto EsperA~to
esperanto E2sperA~to
groenland groEnlA~d
guatemala gwAtemala
honduras _!O~dyras
@@ -853,17 +880,20 @@ lesotho lezoto
liechtenstein liStEnStajn
malawi malaui
mayotte majO2t
nevis nevis
niger niZEr
oman oman
palaos palaO2s
samoa samoa
swaziland swAzilA~d
leone leO2n
koweït kowEjt
taïwan tajwAn
texas tEks'as
texas tE2ks'as
tuvalu tuvalu
vanuatu vanuatu
venezuela venezyela
(viêt nam) viEtnam
(viêt nam) vi-Etnam
wallis wAlis
futuna futuna
zimbabwe zimbabwe


+ 117
- 79
dictsource/fr_rules View File

@@ -23,7 +23,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated: 2009-07-31 Michel Such <[email protected]>
// Updated: 2009-09-25 Michel Such <[email protected]>
//

// Letter classes:
@@ -37,6 +37,7 @@
.L03 d l m n s t v
.L04 c d f g l m n v
.L05 g h k l m v w
.L06 l r s


.group a
@@ -46,19 +47,23 @@
aî E // maître
aim (K W~ // faim
ain (K E~ // pain
CC) ain (_ E~n2 // prochain arret
Ct) ain (_ E~n2 // certain ami
ch) ain (_ E~n2 // prochain arret
ai (_ e // dirai ferai...
_ess) ai (_ E // essai
_vr) ai (_ E // vrai
ais (_ Ez2 // dirais ferais...
ait (_ Et2 // dirait ferait...
aient (_ Et2 // diraient feraient...
_ess) ai (_ E2 // essai
_vr) ai (_ E2 // vrai
ai (b E // faible
ais (_ E2z2 // dirais ferais...
ait (_ E2t2 // dirait ferait...
aient (_ E2t2 // diraient feraient...
f) ai (sA @ // faisons faisan
a (ill a
a (ils_ a
a (il_ a
aie (me E // paiement
ai E // aile
aie (me E2 // paiement
ai E2 // aile
ai (L06 E // aile
ai (CAX E // aile
am (b A~ // jambon
am (p A~ // camp
am (m a // programmation
@@ -77,28 +82,33 @@
a (nnA a // manne
an (K A~ // ancien, élan
@@m) an (_ an // tennisman
zm) an (_ an // jazzman
L02m) an (_ an
lism) an (_ A~ // talisman
ulm) an (_ A~ // musulman
ïm) an (_ A~ // caïman
_C) aon (_ A~ // faon, paon, taon
s) aoul (_ u // saoul
s) aou (le u // saoule
août ut // août
août (i aus // aoûtien
aut (_ ot2
a (ô // saune
au o // autruche
au (l_ O // Paul
au (re O // dinosaure
au (r_ O
_) audio (@P5 odio
_) auto (@P4 oto
_) autom (n otO
_) au (treX o2
bb) aye (X ei // abbaye
p) a (ys E // pays paysage
ay (C E // aymé
ay Ej // paye
ay (_ E // display
Xl) ayer (X EjWr // player, layer
ay (_ E2 // display
p) a (ys E2 // pays paysage
Xl) ayer (X E2jWr // player, layer
w) an (_ an
a a // bateau

// group a: English section
@@ -130,6 +140,7 @@
_) ch (arism k // charisme, charismatique
_) ch (irop k // chiroptère
a) ch (_ k // almanach
ar) c (ti // arctique
e) ch (_ k // varech
_A) ch (o_ k // écho
mani) ch (é k // manichéisme
@@ -157,8 +168,7 @@
x) c (Y
c (Y s // cède
_) cyber (P5 sibEr
ban) c (_ // banc
blan) c (_ // blan
Can) c (_ // banc
Con) c (_ // tronc, jonc
_don) c (_ k // donc
cler) c (_ // leclerc
@@ -177,6 +187,7 @@

// group c: English section
n) ch (_ _^_en // french
ch (ment _^_en // attachment
cut (_ _^_en // cut, shortcut


@@ -225,26 +236,24 @@ _) ç' (P2v s

// Define use of the final 'e' in french
e (_
elqu) e =@
uisqu) e =@
rsqu) e =@
_C) e (_ @2 // je te
-c) e (_ @-
-j) e (_ @-
C) e (- @-
-c) e (_
-j) e (_
C) e (-

e (Ce_ E
eau o // bateau cheveaux
g) ea (s_ a // mangeas
gh) e (tAX e // spagheti
j) e (a // Jean Jeanne
p) ect (_ E // suspect
p) ect (_ E2 // suspect
ect (_ Ekt // direct
pi) ed (_ e // pied
_cl) ef (_ e // clef
_cr) e (at e
_) ein (K En // peindre
ein (K E~ // peindre
CC) ein (_ E~n2 // plein emploi
pl) ein (_ E~n2 // plein emploi
e (il E // vieille
ei E // neige
eoi wA // asseoir
@@ -253,15 +262,12 @@ _) ç' (P2v s
_f) em (me a // femme
i) e (mA // remerciement, d�ploiement
A) e (rA // remerciera
gu) e (rA @
qu) e (rA @
v) e (lop @-
tch) e (rX W
@) em (me a // patiemment
em (b A~ // décembre
em (mACC A~ // emmancher
em (mACAC A~ // emmagasiner
em (ma e // emmanuel
em (ma E2 // emmanuel
em (mai A~ // emmailloter
l) em (n a // solemnel
il) emn Em // dilemne
@@ -322,6 +328,7 @@ _) en (A A~n // enivrer
Xig) ent (_ t2 // figent, pigent
oblig) en (t_ A~ // obligent, d�sobligent
Voblig) ent (_ t2 // obligent (verbe)
orrig) ent (_ t2 // corrigent
tang) en (t_ A~ // tangent

man) en (t_ A~ // permanent
@@ -457,7 +464,7 @@ _) en (A A~n // enivrer

dg) et (_ Et // Bridget, gadget
k) et (_ Et
tick) et (_ E
tick) et (_ E2
m) et (_ Et2

eu Y // eu
@@ -467,20 +474,18 @@ _) en (A A~n // enivrer
eu (h_ Y
eu (x_ Y
eu (i W
eu (rC W2
_l) eu (r_ W2
eu (tr Y
eu (rC W
_l) eu (r_ W

_) eut (_ yt2
eut (_ Yt2
_) extra (uP5 Ekstra
_) extra (CP5 Ekstra
_) extra (uP5 E2kstra
_) extra (CP5 E2kstra
_) eû y // eût
eû Y: // jeûne

e (x E // exact
ey (_ E // dahomey
ey (C E // ceylan
ey (_ E2 // dahomey
ey (C E2 // ceylan
ey Ej // asseye

ez (_ ez2 // nez mangez chez
@@ -493,7 +498,8 @@ _) en (A A~n // enivrer
_r) e (ch @ // recherche
e (Cl @

_l) e (xA E
_l) e (xA E2
_m) e (xA E2
_l) e (CA @
_l) e (ChA @
_l) e (ClA @ // Leclerc
@@ -504,36 +510,47 @@ _) en (A A~n // enivrer
e (Cr @
_) e (C% e // effet, effectuer
e (C_ E
e (t_ E
e (t_ E2
e (rC E
es (_ z2

%C) e (Ca @-
// %C) e (Ce // actuellement guillemets
%C) e (xA E
%C) e (mA // actuellement guillemets
ct) e (ment @
nC) e (ment @-
rC) e (ment @
AC) e (rie_ @-
AC) e (ries_ @-
AcC) e (rie_ @-
AcC) e (ries_ @-
%C) e (rie_ @-
%C) e (ries_ @-
AC) e (ment
u) e (ment @-
ul) e (CA
ull) e (CA

As) e (gA
As) e (pA
Av) e (gA // sauvegarde
Av) e (pA
%C) e (xA E2

@gu) e (CA
@gu) er (A r
@qu) e (CA
@qu) er (A r
_qu) e (CA @
@L06gu) e (CA @
@L06qu) e (CA @
@C) e (CA
@C) er (A r
@C) e (rion++ @
@C) e (riez++ @
@ch) e (CA
@ch) er (A r
L06ch) e (CA @
@L06C) e (CA @
@CL06) e (CA @
@bC) e (CA @
@ct) e (CA @
%C) e (CA++
%C) er (A++ r
@C) e (xA++ E2
@c) e (v++ @
@d) e (v++ @

@C) e (CrA
@ch) e (CrA
@L06ch) e (CrA @
@L06C) e (CrA @
@CL06) e (CrA @
%C) e (CrA++
e (rr+++ E

e @ // menue
_) e (CA e
_) e (xA E
_) e (xC++ E2
Cr) eam i:m
Cr) eamer i:mWr
Cl) eaner i:nWr
@@ -541,6 +558,7 @@ _) en (A A~n // enivrer
eïn (_ 'Ein
_y) en (_ En
iew) er (X er2
_m) e (ga e


// group e: English section
@@ -571,6 +589,10 @@ iew) er (X er2

Z) ème i-Em
è E
Ar) ès (_ Es
m) ès (_ Es
n) ès (_ Es
p) ès (_ Es


.group ë
@@ -619,14 +641,14 @@ iew) er (X er2
gt (_ // vingt doigts
gt t // vingtaine doigté

gui gi // anguille
gu (i g // anguille
ai) gui (l gw^i // aiguillage
in) gui (s gw^i // linguiste
g (C g

_ran) g (_ // rang
_san) g (_ // sang
tan) g (_ // sang
étan) g (_ // étang
_lon) g (_ // long
bour) g (_ // Strasbourg

@@ -720,7 +742,9 @@ C) i (es_ i
ot) ien (t_ i-A~ // quotient

i (e_ i
_) ill ill // illégal
_) ill il // illégal
ill (_ il // Bill
_C) ill (y_ il // Billy
aigu) ill ij // aiguille
anqu) ill il // tranquille
c) ill (i il
@@ -753,24 +777,28 @@ C) i (es_ i
_) intra (neP5 E~tra
_) intra (uP5 E~tra
C) is (_ i
Kir) is (_ is
bor) is (_ is
dor) is (_ is
tor) is (_ is
fl) irt W2rt
fl) irt Wrt
otl) i (neX aj
onl) i (ne_ aj
offl) i (ne_ aj
dr) i (ve aj
pr) int (_ int

// group i: English section
ibuter (X _^_en
iev _^_en
ife (_ _^_en
igh _^_en
iven (_ _^_en
ind (X _^_en // find, mind
_C) ind (erX _^_en // finder
AC) ind (erX _^_en // reminder
ize (X _^_en // realize
dr) i (veX _^_en
_bAl) i (ze i
ram_f) i (le _^_en


@@ -782,17 +810,20 @@ C) i (es_ i
.group ï
ïn (C E~ // coïncider
ïn (_ E~
ïs is // maïs, archaïsme
ïs (K is // maïs, archaïsme
ï (q i // archaïque
ï (c i // laïc
a) ï j // aïeul
a) ï (A j // aïeul
a) ï (C i // naïf
tha) ï (K j // thaï
_ha) ï (K i // haïr
ï i // ambiguïté


.group j
j Z // adjoint joujoux
_) j' (P2v Z
_) j (azz dZ
_) jazz dZaz
_) j (obK dZ
_) j (ohK dZ
_) jusqu' (P6 Zysk
@@ -835,7 +866,7 @@ C) i (es_ i

// group m: English section
_) mail (_ _^_en // mailer
mov (A _^_en // move, movy
mov (ieX _^_en // move, movy


.group n
@@ -891,7 +922,7 @@ C) i (es_ i
C) o (d_ O2

oe (ll wA // moelleux
oe (i W2 // oeil
oe (i W // oeil
_) oe (C Y // oesophage
_ph) oe (C e // phoetus
oeu W // soeur coeur
@@ -965,8 +996,8 @@ C) oing (_ _^_en // going
_) one _^_en
oun (C _^_en // bounce, found
_) over _^_en // over
ow (K _^_en // cow, town, down
ow (e _^_en // flower, power
ow (X _^_en
oy (X _^_en // boy, toy


@@ -989,7 +1020,7 @@ C) oing (_ _^_en // going
m) ps (_ // temps champs
r) ps (_ // corps

cham) p (_ // contrechamp
cham) p (_ // champ

cam) p (_ // camp

@@ -1005,12 +1036,12 @@ C) oing (_ _^_en // going

se) pt (_ t // sept
se) pt (iè t // septième
scul) p (t // sculpture
_) puisqu' (P7 pw^isk

// group p: English section
pad (_ _^_en
plug _^_en // plug
print (_ _^_en // print
printer (_ _^_en // printer


@@ -1037,13 +1068,14 @@ C) oing (_ _^_en // going

.group r

_) r (A R
_su) rr rr // surréaliste
cou) rr rr // courrai
cou) rr (i r // courrier
mou) rr rr // mourrai
cou) rr (i r // courrier
r r // rien
rr r
_) radio (@P5 radio
_) radio (@P5 Radio

// group r: English section
_) real _^_en
@@ -1091,7 +1123,6 @@ mou) rr rr // mourrai
scien (t si-A~ // conscient scientifique
sql (_S3 EskyEl


_u) s (_ s
Cu) s (_
Abu) s (_ s
@@ -1160,6 +1191,7 @@ _) t (_ te
_) t' (P2v t
Vn) t (_ t2
A) t (- t2
VCi) t (_ t2
t (_
peti) t (_ t2
_) th t // thon
@@ -1266,6 +1298,8 @@ A) t (- t2
u y // cruel nuage brut
ui w^i // nuit, fuite
uin (K yE~ // juin
_s) u (rfX W
_s) u (rfeX W
uy (A w^ij

C) ucci utSi // capuccino
@@ -1282,7 +1316,7 @@ A) t (- t2

C) u (bX W // hub, club
C) u (gX W // bug, mug
_n) u (rse W2 // nurse
_n) u (rse W // nurse
r) u (nX W // run, autorun
um (_ Om // album
f) um (_ W~ // parfum
@@ -1299,6 +1333,7 @@ A) t (- t2
g) u (A // fatigue
g) u (ï y // ambiguïté
g) u (ë y // ambiguë
uz (z W

// group u: English section
_b) usi _^_en // business, businessman
@@ -1325,6 +1360,7 @@ A) t (- t2
.group v
v v
vers (_ vErz2
Xri) ver (X vWr
_) view (X vju
_) view (A vjuv

@@ -1337,10 +1373,12 @@ A) t (- t2
.group w
w w
w (agon v // wagon
_r) w (an u // Rwanda
wa (ve_ wE:j // wave
wa (re_ wE: // hardware software

// group w: English section
e) w (K _^_en
wa (Ce_ _^_en // hardware software wave
_) wan _^_en
wr _^_en // write
way _^_en // way, away
@@ -1404,6 +1442,7 @@ A) t (- t2
zz dz
t) z s // tzigane
C) zer (_ zEr
C) zer (_ zWr


.group
@@ -1435,4 +1474,3 @@ A) t (- t2





+ 130
- 21
dictsource/hu_list View File

@@ -3,7 +3,7 @@

// Conditional rules:
// ?1 speak "i" as Roman number
?1 elso:
// Numbers

_0 nullA
@@ -28,7 +28,6 @@ _7X hEtvEn
_8X n^oltsvAn
_9X kilEntsvEn
_0C sa:z
_1C sa:z

_0M1 EzER2
_1M1 EzER2
@@ -37,23 +36,28 @@ _0M2 millio:
_1M2 millio:
_2M2 ke:tmillio:
_0M3 millia:R2d
_1M3 millia:R2d
_1M3 ke:tmillia:R2d
_1M3 EJmillia:R2d
_2M3 ke:tmillia:R2d


_0M4 billio:
_1M4 billio:
_2M4 ke:tbillio:
_dpt ||_v,Ess2Y:_
_dpt ||_!'Ege:s

_0Z1 tizAd // tenths
_0Z1 tizEd // tenths
_0Z2 sa:zAd // hundredths
_0Z3 EzR2Ed
_0Z4 ti:zEzR2Ed


// ordinal numbers

_ord Edik
_1o ElSY:
_2o ma:Sodik
_1ox ElSY: // number = '1' only
_2ox ma:Sodik // number = '2' only
_1o EJ:Edik
_2o kEt:Edik
_3o hAR2_mAdik
_4o nEJEdik
_5o YtYdik
@@ -62,10 +66,39 @@ _7o hEtEdik
_8o n^oltsAdik
_9o kilEntsEdik
_10o tizEdik
_12o tizENkEt:Edik
_20o husAdik
_30o hAR2_mintsAdik
_60o hAtvAnAdik
_80o n^oltsvAnAdik
_0Co sa:zAdik

_2Co ke:tsa:zAdik

// These words mean that a dot after number, immediately preceding, does not mean an ordinal number
január $alt
február $alt
március $alt
április $alt
május $alt
június $alt
július $alt
augusztus $alt
szeptember $alt
október $alt
november $alt
december $alt
//The following 12 row contains shorter hungarian month names
jan $alt
feb $alt
márc $alt
ápr $alt
máj $alt
jún $alt
júl $alt
aug $alt
szept $alt
okt $alt
now $alt
dec $alt

// accent names
_lig ligAtu:R2A
@@ -96,8 +129,10 @@ mm milime:tER2
a.m An^n^i||m'int $dot
dr doktoR2 $dot
gpu $abbrev
mvgyosz $abbrev
OTP $abbrev
id idY:SEb: $dot
ill illEdvE $dot
ill illEtvE $dot
ifj ifjAb: $dot
mta $abbrev
pl pe:lda:ul $dot
@@ -106,7 +141,7 @@ u.n u:JnEvEzEt: $dot
ú.n u:JnEvEzEt: $dot
vö v'EZd||_'Yss2E

?1 i EJ $abbrev // option for Roman number


// Articles
@@ -351,12 +386,13 @@ w duplAve:
x iks
y ipsilon
z ze:

_é e:
é $atend


cs tSe:
dz dze:

dzs dZe:
sz Es
zs Ze:
@@ -373,28 +409,29 @@ ny En^
ß _^_DE

. pont $max3
* tS'illAg $max3
* tSillAg $max3
% sa:zAle:k $max3
+ plus $max3
= EJEnlY:Se:g $max3
# sa:mjEl $max3
/ pER2 $max3
= EJEnlY: $max3
# kEt:Y:SkER2Est $max3
@ kukAts
& e:SjEl
& e:S
€ EuR2o
¶ bEkEzde:S
§ pAR2AgR2AfuS
~ tildE
^ hia:n^
° fokjEl
Ft foR2int
\ viss2ApER2 $max3
\ bEks2lES $max3
^ fölfelényíl $text

_, vEss2Y:
_; pontoSvEss2Y:
_: kEt:Y:Spont
_! fElkia:lto:
_? ke:R2dY:
_- kYtY:jEl
_- kYtY:jEl $max3
__ Ala:hu:za:S
_' ApostR2o:f
_– nAJkYtY:
@@ -409,11 +446,83 @@ _} k'AptSoS||z'a:R2o:
_… ha:R2_mASpont
_• di:spont


// Main Exceptions List
//=====================

nato na:to:

$textmode
(1-én) elsején
MSZP emeszpé
SZDSZ eszdéesz

colon kettőspont
(://) kettőspontperper $pause
egyezség eggyesség

(1-én) elsején
(1-jén) elsején
(2-án) másodikán
(3-án) harmadikán
(4-én) negyedikén
(5-én) ötödikén
(6-án) hatodikán
(7-én) hetedikén
(8-án) nyolcadikán
(9-én) kilencedikén
(10-én) tizedikén
(11-én) tizeneggyedikén
(12-én) tizenkettedikén
(13-án) tizenharmadikán
(14-én) tizennegyedikén
(15-én) tizenötödikén
(16-án) tizenhatodikán
(17-én) tizenhetedikén
(18-án) tizennyolcadikán
(19-én) tizenkilencedikén
(20-án) huszadikán
(21-én) huszoneggyedikén
(22-én) huszonkettedikén
(23-án) huszonharmadikán
(24-én) huszonnegyedikén
(25-én) huszonötödikén
(26-án) huszonhatodikán
(27-én) huszonhetedikén
(28-án) huszonnyolcadikán
(29-én) huszonkilencedikén
(30-án) harmincadikán
(31-én) harminceggyedikén
(1-e) elseje
(2-a) másodika
(3-a) harmadika
(4-e) negyedike
(5-e) ötödike
(6-a) hatodika
(7-e) hetedike
(8-a) nyolcadika
(9-e) kilencedike
(10-e) tizedike
(11-e) tizeneggyedike
(12-e) tizenkettedike
(13-a) tizenharmadika
(14-e) tizennegyedike
(15-e) tizenötödike
(16-a) tizenhatodika
(17-e) tizenhetedike
(18-a) tizennyolcadika
(19-e) tizenkilencedike
(20-a) huszadika
(21-e) huszoneggyedike
(22-e) huszonkettedike
(23-a) huszonharmadika
(24-e) huszonnegyedike
(25-e) huszonötödike
(26-a) huszonhatodika
(27-e) huszonhetedike
(28-a) huszonnyolcadika
(29-e) huszonkilencedike
(30-a) harmincadika
(31-e) harmincegyedike
(Szvsz) eszvéesz
(edik szeptember) szeptember


+ 139
- 29
dictsource/hu_rules View File

@@ -1,34 +1,37 @@

// Hungarian translation rules
// This file is UTF-8 encoded


.replace
// allow o,u-circumflex for o,u-double-acute
ô ő
û ű
ô ő
û ű


.group a
a A
_) a (_ %A
_) alattvaló _!'AlAtvAlo:

.group á
á a:



.group b
b b
// bb b:

biz (A b'iz, // bizalmas etc.
biedermeier bi:dER2ma:jER2

.group c
c ts
cc ts:
cs tS
ccs tS:
!) cz ts // in names which start with a capital letter
ar) csz (e ts
anar) ch (i C
hierar) ch (i C
me) ch (a C
@@ -51,6 +54,7 @@ hierar) ch (i C
nyol) c (sz ts
har) c (sz ts
lán) c (sz ts
pá) c ts
per) c (sz ts
pol) c (so ts
por) c (sé ts
@@ -67,13 +71,20 @@ hierar) ch (i C

.group d
d d
// dd d:
dts tS:
dt t:
a) dsz ts:
cselé) d d
enge) dsz ts:
engedelmeske) dsz ts:
mara) dsz ts:
kére) dz ts
// dd d:
dz dz
A) dz (A d:z
dzs dZ
A) dzs dZ:

C) ds tS
C) ds tS
ds (C tS
A) ds (A tS:
dsz ts
@@ -84,14 +95,13 @@ hierar) ch (i C
A) dzs (A dZ:
C) dj J
A) dj (A J:

ren) d (szer d

dj J:
min) dny n^

.group e
e E
D_-_) es (_ %ES
_) egyezség _!'EJ:ESSe:g
.group é
é e:
éi (é e::i:
@@ -102,9 +112,10 @@ hierar) ch (i C
.group f
f f


.group g
g g
// gg g:
// gg g:
gy J
ggy J:

@@ -126,25 +137,38 @@ _minde) gy (ik J:

_) goethe gY:tE
_) goethé gY:te:

me) g (gyú g
me) g (győz g
me) g (gyil g
me) g (gyű g
me) g (gyász g
me) g (gyűr g
le) g (gy g

.group h
h h

.group i
i i
_) itthon ithon

.group í
í i:
íts i:tS:

.group j
j j
_) javíts jAvi:tS:
_) javítsd jAvi:tSd

.group k
k k
kk k:
kk (C kk
_) köz kYz
_) község kYSSe:g
_) készség ke:SSe:g
_) kétség ke:tS:e:g

.group l
l l
@@ -152,8 +176,13 @@ _minde) gy (ik J:
lly jj

A) lj (A l^j

C) ly (_ li
á) ll (j j
beszé) lj jj
bére) lj jj
gondo) lj jjj
ke) lj jj
sajná) lj jj
C) ly (_ li
_kéth) ly li
szamue) lly lli
szamue) ly lli
@@ -167,23 +196,28 @@ szamue) ly lli
ko) mm (uni m



.group n
n n
n (g N
n (k N
n (p m
ny n^
nny n^n^
nj n^n^
nyj n^n^

_) nem (- n,Em // has $alt2 attribute in hu_list, combine with the next word
me) nny (ország n^
me) nny (d n^



.group o
o o

_r) oose (velt u:z
_) otthon othon

.group ó
ó o:
@@ -208,7 +242,7 @@ szamue) ly lli
qu kv

.group r
r R2
r R2
rr RR
rm R2_m
r (cc R
@@ -221,8 +255,9 @@ szamue) ly lli
s S
sz s
ssz ss2
szts stS:

s (színű S
s (színű S
hel) s (inki z
ki) s (ebb SS
_má) s (szó S
@@ -242,13 +277,20 @@ _nyílá) s S

sz (öld Sz
va) s (zabl S||

egé) szs (ég S

liszte) szs (ák SZ
pénze) s S
rend) sz (er s:


.group t

_) t (_ te:
-) t (_ t
t t
tc ts:
tt t:
tt (C tt
ty c
@@ -256,14 +298,63 @@ _nyílá) s S
// z) ty c: // keztyű
ttj tc:
tty c:

C) tj c
éle) t t

tsz ts:
szorí) ts (a tS:
ürí) ts (e tS:
mula) ts tS:
nemze) ts tS:
min) t t
tse tSE
tso tSo
tsa tSA
tsá tSa:
tsd tSd
tsé tSe:
ttsé tS:e:
C) tj c
A) tj (A c:
C) tyj c
A) tyj (A c:

_ka) ty (n ti

vörösmar) ty ti
á) t (jár t
á) t (sző t
á) t (szú t
á) t (szű t
bizo) tts (ág tS:
állí) ts tS:
bará) ts tS:
dön) ts (ön tS
elhivato) tts (ág tS:
folyama) t (jel t
kiál) ts tS
köve) ts (ég tS:
kür) t t
neve) ts (ég tS:
szen)t (szék t
szöve) ts (ég tS:
romlo) tts tS:
á) t (sor t
á) t (sé t
ne) t (se t

lehe) ts (ég tS:
tehe) ts (ég tS:
lá) tsz ts:
fize) ts (ég tS:
segí) ts tS:
á) ts (ó tS:
ismere) ts (ég tS:
lé) t (szám t
ké) t (száz t
ö) t (száz t
ha) t (száz t
vé) ts (ég tS:



.group u
@@ -295,19 +386,36 @@ vörösmar) ty ti

.group z
z z
zs Z
zs Z
zzs Z:

gá) z (sz z
a) z (t s
a) z (tán s
befeje) z (te s
bi) z (tons s
bi) z (tos s
bron) z (sz z
e) z (t s
költö) z (köd s
kö) z (pont s
kö) z (társaság s
lefeje) z (te s
lefeje) z (ték s
pén) z (tár s
ré) z (sz z
tartó) z s
gá) z (sz z
gé) z (sz z
ké) z (sz z

ké) z (sz zz
há) z (so z
há) z (sz z
lá) z (sz z
má) zc (sz z
mé) zc (sz z
nehé) z (sé z
pén) z z
nehé) z (sé S
iga) zs (ág SS
ga) zs (ág SS
pén) z z
szá) z (sz z
tí) z (sz z
tű) z (sz z
@@ -322,14 +430,16 @@ vörösmar) ty ti
_gá) zsz (ámlá zs:
_ré) zs (ó zS
_vá) zs (or zS
_szára) zs (ág zS
_kö) zs (ég zS
_szára) zs (ág SS
_nehé) zs (ely zS

_) zürich tsyR2iC


.group
_) :-) v'iJoR2

$ dolla:R2
ä E
æ E

+ 4
- 0
dictsource/ru_list View File

@@ -63,6 +63,10 @@ _0M3 m;,IlI;'artof
_dpt _:'i_: // start of decimal fraction
_dpt2 _d;Is;'atYx // end of decimal fraction

// characters
№ номер $text


// prepositions
в v $u // to,in,at
от $u // from

+ 87
- 16
dictsource/ta_list View File

@@ -21,7 +21,7 @@
ற் iR
ல் il
ள் il.
ழ் iz
ழ் iz.
வ் iv
ஶ் iS
ஷ் is.
@@ -29,7 +29,10 @@
ஹ் iC
U+b82 anUsvVRV
ஃ ah
U+bcd viRVmV
U+bcd ot.RU

ஏ je:


// speak Latin letters as English
a e:j
@@ -51,7 +54,7 @@ p pi:
q kju:
r a:R
s Es
t ti:
t thi:
u ju:
v vi:
w dVbVlju:
@@ -65,23 +68,91 @@ _cap kapit.Vl // English
_. pul.l.i
_, kVma:
_; ka:RbUl.l.,i
_: arE:pp,Ul.l.V
_: araIpp,Ul.l.V
_? ke:l.vikk,URi
_! a:ctS:Vr,ijVkk,URi
% sadVv,igid,Vm
% விழுக்காடு $text
= samVm
U+bf9 ru:ba:j

// abbreviations
ரூ ru:ba:j $dot
Rs ru:ba:j $dot

// numbers
_0 pu:dZjam_ // ??
_1 ondru_
_2 irandu_
_3 mo:ndru_
_4 na:ngu_
_5 aintu_
_6 a:ru_
_7 E:lu_ // aylu ??
_8 et.:u_
_9 onpatu_
_10 pat:u_
_0 suz.ijVm // சுழியம்
_1 onRU
_2 irVn.d.U
_3 mu:nRU
_4 na:ngU
_5 aIndU
_6 a:RU
_7 ;e:lU
_8 ;et.t.U
_9 onbVd.U
_10 pattU
_1X padin
_11 patinonRU
_12 pVnniren.d.U
_19 pattonbVdU

_20 irUbVdU
_30 muppVdU // முப்பது
_40 na:RpVdU
_50 aImbVdU
_60 aRUbVdU
_70 ;ez.UbVdU
_80 ;en.bVdU
_90 ton.n.u:RU

_2X irUbVttU
_3X muppVttU
_4X na:RpVttU
_5X aImbVttU
_6X aRUbVttU
_7X ;ez.UbVttU
_8X ;en.bVttU
_9X ton.n.u:t.t.RU

_1C0 nu:RU
_2C0 irUnu:RU
_3C0 munnu:RU
_4C0 na:nu:RU
_5C0 aInu:RU
_6C0 aRUnu:RU
_7C0 ;ez.Unu:RU
_8C0 ;en.n.u:RU
_9C0 tol.l.a:jirVm

_1C nu:t.t.Ri
_2C irUnu:t.t.Ri
_3C munnu:t.t.Ri
_4C na:nu:t.t.Ri
_5C aInu:t.t.Ri
_6C aRUnu:t.t.Ri
_7C ;ez.Unu:t.t.Ri
_8C ;en.n.u:t.t.Ri
_9C tol.l.a:jirVttU

_0M1x a:jirVm
_1M1x a:jirVm
_0M1 a:jirVttU
_1M1 a:jirVttU

_0M2x lVd.tSVm
_1M2x orUlVd.tSVm
_0M2 lVd.tSVttU
_1M2 orUlVd.tSVttU

_0M3x ko:d.i
_1M3x orUko:d.i
_0M3 ko:d.ie:
_1M3 orUko:d.ie:

_0M4 nu:RUko:d.i // not correct, but should be understandable
_1M4 nu:RUko:d.i
_0M5 patta:jiRUmko:d.i
_1M5 patta:jiRUmko:d.i

_dpt _pul.l.i

+ 18
- 4
dictsource/ta_rules View File

@@ -37,10 +37,12 @@
ஊ u:

எ e
_) எ ;e // add a short [j] sound at start of word ?

ஏ e::
_) ஏ ;e:: // add a short [j] sound at start of word ?

E:
aI

ஒ o

@@ -63,12 +65,16 @@
ங NV
ங (B N

dZV
ச (B dZ
zV
ச (B z
_) ச sa
_) ச (B s
ச்ச tS:V
ச்ச (B tS:
ட்) ச tSV
ட்) ச (B tS
ஞ்) ச dZV
ஞ்) ச (B dZ

ஜ dZV
ஜ (B dZ
@@ -105,6 +111,10 @@
_) ப (B p
ப்ப ppV
ப்ப (B pp
ட்) ப pV
ட்) ப (B pV
ற்) ப pV
ற்) ப (B p
ஃ) ப fV
ஃ) ப (B f

@@ -145,6 +155,9 @@
ஹ hV
ஹ (B h

க்ஷ ks.V
க்ஷ (B ks.


// combining vowels

@@ -163,7 +176,7 @@

ே e:

E:
aI

ொ o

@@ -183,3 +196,4 @@
.group
் // virama
$ dolV
D) . (D+ _pul.l.i

+ 314
- 34
phsource/compile_report
File diff suppressed because it is too large
View File


BIN
phsource/j2/j2e View File


BIN
phsource/l/l_i View File


BIN
phsource/l/l_o View File


+ 3
- 2
phsource/mbrola/fr1 View File

@@ -1,6 +1,7 @@
volume 15
0 l/2 NULL 0 l
0 l/ NULL 0 l
0 l2 NULL 0 l
0 r/ NULL 0 R
0 r/2 NULL 0 R
0 r- NULL 0 R
@@ -37,17 +38,18 @@ volume 15
0 n2 NULL 0 n
0 p2 NULL 0 p
0 r2 NULL 0 R
0 R2 NULL 0 R
0 t2 NULL 0 t
0 t3 NULL 0 t
0 z2 NULL 0 z
0 z3 NULL 0 z

0 i: NULL 0 i
0 i- NULL 0 i
0 u: NULL 0 u
0 eI NULL 60 E j
0 aU NULL 60 a w
0 oU NULL 0 o
0 o3 NULL 0 o
0 o- NULL 0 o
0 @L NULL 40 @ l
0 @2 NULL 0 @
@@ -84,4 +86,3 @@ volume 15





+ 1
- 1
phsource/ph_armenian View File

@@ -32,7 +32,7 @@ phoneme a
endphoneme

phoneme o
vowel starttype (e) endtype (e)
vowel starttype (o) endtype (o)
length 180
formants vowel/o
endphoneme

+ 153
- 123
phsource/ph_french View File

@@ -1,7 +1,7 @@
//====================================================
// French
//====================================================
// Updated 2009-07-30 Michel Such <[email protected]>
// Updated 2009-09-30 Michel Such <[email protected]>

phoneme (l) virtual
// Used for l and l/
@@ -12,153 +12,143 @@ phoneme : // Lengthen previous vowel by "length"
length 40 // shorter than for fr-ca
endphoneme

phoneme (r) virtual
after b vwl_fr/tr+r3/rx%35
after g vwl_fr/tr+r3/rx%35
after k vwl_fr/tr+r3/rx%35
after m vwl_fr/tr+r3/rx%25
after n vwl_fr/tr+r3/rx%25
after p vwl_fr/tr+r3/rx%35
after s vwl_fr/tr+r3/rx%30
after S vwl_fr/tr+r3/rx%45
after t vwl_fr/tr+r3/rx%30
after v vwl_fr/tr+r3/rx%30
after z vwl_fr/tr+r3/rx%30
after Z vwl_fr/tr+r3/rx%30
before (i) vwl_fr/@R5
before (o) vwl_fr/@R5
before (u) vwl_fr/@R5
endphoneme


// Vowels
//=======
phoneme @
vowel starttype (@) endtype (@)
length 190
length 170
formants vowel/@_hgh
after (r) vwl_fr/r@
before l/ DFT+l/l_@
before (r) DFT+vwl_fr/r_@
endphoneme


phoneme @- // very short schwa
vowel nonsyllabic
starttype (@) endtype (@)
formants NULL
unstressed
length 70
before l/ DFT+l/l_@
before (r) DFT+vwl_fr/r_@
before (r) DFT+vwl_fr/xr
endphoneme


phoneme @2
vowel starttype (@) endtype (@)
length 170
length 160
formants vowel/@_fr
before (r) DFT-10+vwl_fr/r_@
after (r) vwl_fr/r@
before (r) DFT+vwl_fr/xr
endphoneme


phoneme a
vowel starttype (a) endtype (a)
length 200
length 170
formants vowel/a_6
after l l/la-15
after (r) vwl_fr/ra
before l/ DFT+l/l_a
before (r) DFT-10+vwl_fr/r_a
before r/2 DFT-10+vwl_fr/r_a
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_a
endphoneme


phoneme e
vowel starttype (e) endtype (e)
length 190
length 170
formants vowel/e_8
after (l) l/le-15
after (r) vwl_fr/re
before l/ DFT-20+l/xl
before (r) DFT-10+vwl_fr/r_e
before (r) DFT+vwl_fr/xr
endphoneme


phoneme E
vowel starttype (e) endtype (e)
length 190
length 170
formants vowel/e_mid
after (l) l/le-15
after (r) vwl_fr/re
before l/ DFT+l/l_e
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_e
endphoneme


phoneme E2 // Between e and E
vowel starttype (e) endtype (e)
length 170
formants vowel/e_9
after (l) l/le-15
after (r) vwl_fr/re
before l/ DFT+l/l_e
before (r) DFT-10+vwl_fr/r_e
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_e
endphoneme


phoneme i
vowel starttype (i) endtype (i)
length 180
length 160
formants vowel/i_2
linkout ;
after (l) l/li-15
// after (r) vwl_fr/ri
after (r) vwl_fr/ri-30
before l/ DFT+l/l_i
before (r) DFT-20+vwl_fr/r_i
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_i
endphoneme


phoneme i- // shorter
vowel starttype (i) endtype (i)
length 140
length 130
formants vowel/i_2
linkout ;
after (l) l/li-15
// after (r) vwl_fr/ri
after (r) vwl_fr/ri
endphoneme


phoneme i: // longer than i
vowel starttype (i) endtype (i)
length 250
length 240
formants vowel/i_3
linkout ;
after (l) l/li-15
// after (r) vwl_fr/ri
after (r) vwl_fr/ri
before l/ DFT+l/l_i
before (r) DFT-20+vwl_fr/r_i
before r/2 DFT-20+vwl_fr/r_i
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_i
endphoneme


phoneme o
vowel starttype (o) endtype (o)
length 190
length 170
formants vowel/o_3
after (l) l/lo-10
after (r) vwl_fr/ro
before l/ DFT+l/l_o
before (r) DFT+vwl_fr/r_o
before r/2 vowel/o_mid+vwl_fr/r_o
before (r) DFT+vwl_fr/xr
before r/2 vowel/o_mid2+vwl_fr/r_o
reduceto o2 1
endphoneme


phoneme o2
vowel starttype (o) endtype (o)
length 190
length 170
formants vowel/o_2
after (l) l/lo-10
before l/ vowel/o_mid+l/l_o
before (r) DFT+vwl_fr/r_o
before r/2 vowel/o_mid+vwl_fr/r_o
after (r) vwl_fr/ro
before l/ vowel/o_mid2+l/l_o
before (r) DFT+vwl_fr/xr
before r/2 vowel/o_mid2+vwl_fr/r_o
endphoneme


phoneme O
vowel starttype (o) endtype (o)
length 190
formants vowel/o_mid
length 170
formants vowel/o_mid2
after (l) l/lo-10
after (r) vwl_fr/ro
before l/ DFT+l/l_o
before (r) DFT+vwl_fr/r_o
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_o
reduceto o2 1
endphoneme
@@ -166,22 +156,33 @@ endphoneme

phoneme O2 // Like O but no reduceto
vowel starttype (o) endtype (o)
length 190
formants vowel/o_mid
length 170
formants vowel/o_mid2
after (l) l/lo-10
after (r) vwl_fr/ro
before l/ DFT+l/l_o
before (r) DFT+vwl_fr/r_o
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_o
endphoneme


phoneme o3 // almost like english oU
vowel starttype (@) endtype (u)
length 220
formants vdiph/@u_3
endphoneme


phoneme u
vowel starttype (u) endtype (u)
length 210
length 170
formants vowel/u_bck2
after l l/lu-20
after (r) vwl_fr/ru
after R vwl_fr/ru-10
before l/ DFT-20+l/l_u
before (r) DFT+vwl_fr/r_u
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_u
before i DFT-50
endphoneme

@@ -191,18 +192,19 @@ phoneme u: // slitely longer than u
length 240
formants vowel/u_bck2
after l l/lu-20
before l/ DFT-20+l/l_u
after (r) vwl_fr/ru
before l/ DFT-20+l/l_u
endphoneme


phoneme y
vowel starttype (u) endtype (u)
length 190
length 170
formants vowel/y_2
after l l/lu-20
after (r) vwl_fr/ry
before l/ DFT-30+l/l_y
before (r) DFT+vwl_fr/r_y
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_y
before E~ DFT-50
endphoneme
@@ -210,46 +212,38 @@ endphoneme

phoneme Y
vowel starttype (@) endtype (@)
length 190
length 170
formants vowel/y#
after (l) l/l@-20
after (r) vwl_fr/r@
before l/ DFT-20+l/l_@
before (r) DFT+vwl_fr/r_@
before r/2 DFT+r/xr-40
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_@
reduceto W 1
endphoneme


phoneme W
vowel starttype (@) endtype (@)
length 200
formants vowel/@_5
after (l) l/l@-20
before l/ DFT-20+l/l_@
before (r) DFT+vwl_fr/r_@2
before r/2 DFT+vwl_fr/r_@2-30
reduceto Y 1
endphoneme


phoneme W2 // same as W but don't reduce
vowel starttype (@) endtype (@)
length 200
formants vowel/@_3
length 180
formants vowel/@
after (l) l/l@-20
after (r) vwl_fr/r@
before l/ DFT-20+l/l_@
before (r) DFT+vwl_fr/r_@
before r/2 DFT+vwl_fr/r_@2
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_@
endphoneme


phoneme wA
vowel starttype (o) endtype (a)
length 240
length 230
formants vwl_fr/w_a
after (l) l/lo-10
after (r) vwl_fr/ro-15
before l/ DFT-10+l/l_a
before j DFT
before (r) DFT+vwl_fr/r_a
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_a
endphoneme

@@ -259,43 +253,49 @@ phoneme w^i
length 240
formants vdiph/yi_fr
after l l/lu-20
after (r) vwl_fr/ry
before l/ DFT+l/l_i
before (r) DFT+vwl_fr/r_i
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_i
endphoneme


phoneme A~
vowel starttype (a) endtype (a)
length 210
length 190
formants vnasal/aa_n4
after (r) vwl_fr/rA~
before l/ DFT+l/l_a
before (r) DFT+vwl_fr/r_a~
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_a~
endphoneme


phoneme E~ // same as W~ for fr-fr
vowel starttype (e) endtype (e)
length 210
length 190
formants vnasal/W_n
before n2 DFT-100
after (r) vwl_fr/r@
before n2 vowel/e_mid
before (r) DFT+vwl_fr/xr
endphoneme


phoneme O~
vowel starttype (o) endtype (o)
length 210
length 190
formants vnasal/o_n2
before (r) DFT+vwl_fr/r_o
after (r) vwl_fr/ro
before (r) DFT+vwl_fr/xr
endphoneme


phoneme W~
vowel starttype (@) endtype (@)
length 210
length 190
formants vnasal/W_n
before (r) DFT+vwl_fr/r_@
after (r) vwl_fr/r@
before (r) DFT+vwl_fr/xr
endphoneme


@@ -324,7 +324,12 @@ endphoneme
phoneme E: // slightly longer than [E]
vowel starttype (e) endtype (e)
length 212
formants vowel/e
formants vowel/e_mid
after (l) l/le-15
after (r) vwl_fr/re
before l/ DFT+l/l_e
before (r) DFT+vwl_fr/xr
before r/2 DFT+vwl_fr/r_e
endphoneme

phoneme A // same as [a]
@@ -369,13 +374,14 @@ endphoneme

phoneme g
vcd vel stop
vowelin f1=2 f2=2300 200 300 f3=-300 80 amp=10
vowelin f1=2 f2=2300 200 300 f3=-300 80
vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
formants g/g+x/g2%30
formants g/g+x/g%20
before _ g/g_+x/g_
before (r) g/g+x/g2%50
// before (r) g/g_+x/g_%25
after _ NULL
after (@) g/xg%30
after n g2/g+x/g2_
lengthmod 5
switchvoicing k
endphoneme
@@ -388,10 +394,9 @@ phoneme k
lengthmod 2
wave ustop/k%40 // reduce strength of noise burst
before _ ustop/k_
before (r) ustop/kr%40
before (r) ustop/kr%45
before r/2 ustop/k%60
before l ustop/kl%45
before l/ ustop/kl%45
before (l) ustop/kl%45
before (i) ustop/ki%45
switchvoicing g
endphoneme
@@ -405,13 +410,14 @@ phoneme l
beforenotvowel l/
formants l/l
after _ l/_l
after r/2 l/_l
after t l/tl
after l/ l/l_long // double l, make it longer
endphoneme


phoneme l/ // used for [l] when not before a vowel
liquid starttype (l) endtype (l)
liquid palatal starttype (l) endtype (l)
length 100
lengthmod 7
formants l/_l
@@ -436,13 +442,12 @@ phoneme p
vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
lengthmod 2
wave ustop/p%50
wave ustop/p_unasp_%90
after _ ustop/p%70
before _ ustop/p_%70
before (r) ustop/pr%35
// before (r) ustop/pr%45
before @- ustop/p_unasp%60
before l ustop/pl%30
before l/ ustop/pl%30
before (l) ustop/pl%30
switchvoicing b
endphoneme

@@ -458,21 +463,47 @@ phoneme p2 // silent unless followed by vowel
endphoneme


phoneme r
vcd uvl frc starttype (r) endtype (r)
vowelin f1=1 f2=1800 10 10 f3=-200 100
vowelout f1=1 f2=1800 10 10 f3=-200 100
phoneme r // between vowels in a word
liquid uvl starttype (r) endtype (r)
vowelin f1=0 f2=1600 -300 300 f3=-200 80
vowelout f1=2 f2=1600 -300 300 f3=-300 80
length 100
lengthmod 7
beforenotvowel r/2
formants vwl_fr/r
after _ vwl_fr/_r
after k vwl_fr/tr
after p vwl_fr/tr
after t vwl_fr/tr
after r/2 vwl_fr/_r
endphoneme


phoneme R // First letter of a word
liquid uvl starttype (r) endtype (r)
vowelin f1=0 f2=1600 -300 300 f3=-200 80
vowelout f1=2 f2=1600 -300 300 f3=-300 80
length 100
lengthmod 0
beforenotvowel r/2
formants vwl_fr/r
after _ vwl_fr/_r
after (a) vwl_fr/_r
after (e) vwl_fr/_r
after (@) vwl_fr/_r
after (i) vwl_fr/_r
after (o) vwl_fr/_r
after (u) vwl_fr/_r
after y vwl_fr/_r
after (l) vwl_fr/_r
after r/2 vwl_fr/_r
endphoneme


phoneme r2 // silent unless followed by vowel
vcd uvl frc starttype (r) endtype (r)
vowelin f1=0 f2=1000 10 10 f3=-200 100
vowelout f1=0 f2=1200 10 10 f3=-200 100
liquid uvl starttype (r) endtype (r)
vowelin f1=0 f2=1600 -300 300 f3=-200 80
vowelout f1=2 f2=1600 -300 300 f3=-300 80
length 100
lengthmod 7
beforenotvowel NULL
@@ -482,12 +513,12 @@ endphoneme

phoneme r/2 // variant of [r] when not preceding a vowel
liquid uvl starttype r/2 endtype r/2
vowelout f1=2 f2=1800 10 10 f3=-200 100
vowelout f1=2 f2=1600 -300 300 f3=-300 80
length 100
lengthmod 2
formants r3/r_2+r3/rx%25
formants vwl_fr/r_+r3/rx%25
before m r3/r_n
before n r3/r_n
beforevowel r
endphoneme


@@ -524,7 +555,7 @@ phoneme t
lengthmod 2
wave ustop/t_short%40
before _ ustop/t_%40
before (r) ustop/tr%40
before (r) ustop/t_short%40
before r/2 ustop/t_short%50
switchvoicing d
endphoneme
@@ -599,4 +630,3 @@ endphoneme





+ 34
- 7
phsource/ph_tamil View File

@@ -2,6 +2,11 @@
// Phonemes for Tamil
// This inherits from ph_hindi

phoneme : // Lengthen previous vowel by "length"
virtual
length 50
endphoneme



phoneme a
@@ -56,15 +61,15 @@ endphoneme

phoneme o
vowel starttype (o) endtype (o)
length 130
length 160
formants vowel/o
endphoneme


phoneme o:
vowel starttype (o) endtype (o)
length 270
formants vowel/o
length 280
formants vowel/o_3
endphoneme


@@ -84,7 +89,7 @@ endphoneme
phoneme u:
vowel starttype (u) endtype (u)
length 260
formants vowel/u
formants vowel/u_6
endphoneme

phoneme U:
@@ -102,6 +107,22 @@ phoneme u-
endphoneme



phoneme aI
vowel starttype (a) endtype (i)
length 230
formants vdiph/ai_8
endphoneme

phoneme aU
vowel long starttype (a) endtype (u)
length 200
long
formants vdiph/aau_3
endphoneme



// ?? This is standard [v]. Should be it [v] without the fricative noise?
phoneme v
vcd lbd frc
@@ -113,8 +134,14 @@ phoneme v
switchvoicing f
endphoneme

phoneme : // Lengthen previous vowel by "length"
virtual
length 50

phoneme t // dental variant of /t/
vls dnt stop
vowelin f1=0 f2=1600 -300 300 f3=-100 80
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
wave ustop/t_dnt2%60
before _ ustop/t_dnt%30
switchvoicing d
endphoneme


+ 26
- 0
phsource/phonemes View File

@@ -1343,3 +1343,29 @@ include ph_armenian
phonemetable da base
include ph_danish


phonemetable rw base2
include ph_kinyarwanda

phonemetable ml hi
include ph_malayalam

phonemetable kn hi
include ph_kannada

phonemetable bn hi
include ph_bengali

phonemetable ne hi
include ph_nepali

phonemetable mr hi
include ph_marathi


phonemetable eu base2
include ph_basque

phonemetable mn base
include ph_mongolian


BIN
phsource/vdiph/ai_8 View File


BIN
phsource/vdiph/vowelchart.png View File


BIN
phsource/vdiph2/vowelchart.png View File


BIN
phsource/vnasal/vowelchart.png View File


BIN
phsource/vowel/o_mid2 View File


BIN
phsource/vowel/vowelchart.png View File


BIN
phsource/vwl_fr/@R5 View File


BIN
phsource/vwl_fr/r_@ View File


BIN
phsource/vwl_fr/r_a View File


BIN
phsource/vwl_fr/r_e View File


BIN
phsource/vwl_fr/r_i View File


BIN
phsource/vwl_fr/r_o View File


BIN
phsource/vwl_fr/r_u View File


BIN
phsource/vwl_fr/r_y View File


BIN
phsource/vwl_fr/w_a View File


+ 2
- 2
platforms/windows/espeakedit/espeakedit.dsp View File

@@ -367,7 +367,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxmsw28u_core.lib wxbase28u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /machine:I386 /libpath:".\..\..\lib\vc_lib"
# ADD LINK32 wxmsw28u_core.lib wxbase28u.lib wxmsw28u_adv.lib winmm.lib PAStaticWMME.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /machine:I386 /out:"espeakedit.exe" /libpath:".\..\..\lib\vc_lib"
# ADD LINK32 wxmsw28u_core.lib wxbase28u.lib wxmsw28u_adv.lib winmm.lib PAStaticWMME.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib wxmsw28u_html.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /machine:I386 /out:"espeakedit.exe" /libpath:".\..\..\lib\vc_lib"
!ELSEIF "$(CFG)" == "minimal - Win32 Unicode Debug"
@@ -393,7 +393,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wxmsw28ud_core.lib wxbase28ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /debug /machine:I386 /libpath:".\..\..\lib\vc_lib"
# ADD LINK32 wxmsw28ud_core.lib wxbase28ud.lib wxmsw28ud_adv.lib winmm.lib PAStaticWMME.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib PAStaticWMME.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /debug /machine:I386 /libpath:".\..\..\lib\vc_lib"
# ADD LINK32 wxmsw28ud_core.lib wxbase28ud.lib wxmsw28ud_adv.lib wxmsw28ud_html.lib winmm.lib PAStaticWMME.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib PAStaticWMME.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib /nologo /subsystem:windows /debug /machine:I386 /libpath:".\..\..\lib\vc_lib"
!ELSEIF "$(CFG)" == "minimal - Win32 Release"

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

@@ -2,7 +2,7 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.40
AppVerName=eSpeak version 1.41.01
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes
@@ -140,6 +140,7 @@ begin
$26: Result := 'lv';
$2a: Result := 'vi';
$2b: Result := 'hy';
$2d: Result := 'eu';
$2f: Result := 'mk';
$36: Result := 'af';
$39: Result := 'hi';
@@ -192,6 +193,7 @@ begin
'el': value := $408;
'en': value := $409;
'es': value := $40a;
'eu': value := $42d;
'fi': value := $40b;
'fr': value := $40c;
'hi': value := $439;

+ 6
- 1
platforms/windows/make_espeakedit.iss View File

@@ -1,7 +1,7 @@
[Setup]
AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.40
AppVerName=eSpeakEdit version 1.41.02
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit
@@ -10,6 +10,11 @@ SolidCompression=yes
DirExistsWarning=no
ShowLanguageDialog=auto
[Icons]
Name: "{group}\espeakedit"; Filename: "{app}\espeakedit.exe"; WorkingDir: "{app}"; Flags: runmaximized
Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}"
[Files]
Source: "espeakedit.exe"; DestDir: "{app}"
;Source: "dictsource\*"; DestDir: "{app}\dictsource"; Flags: recursesubdirs

+ 13
- 0
src/compiledict.cpp View File

@@ -40,6 +40,8 @@ int HashDictionary(const char *string);
static FILE *f_log = NULL;
extern char *dir_dictionary;

extern char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes

static int linenum;
static int error_count;
static int transpose_offset; // transpose character range for LookupDictList()
@@ -220,6 +222,9 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
unsigned char bad_phoneme[4];
static char nullstring[] = {0};

WORD_TAB winfo;
char decoded_phonemes[128];

comment = NULL;
text_not_phonemes = 0;
phonetic = word = nullstring;
@@ -434,6 +439,14 @@ step=1; // TEST

if(text_not_phonemes)
{
if(word[0] == '_')
{
// This is a special word, used by eSpeak. Translate this into phonemes now
// memset(&winfo,0,sizeof(winfo));
// TranslateWord(translator,phonetic,0,&winfo); // but *_dict is not loaded ?
// DecodePhonemes(word_phonemes,decoded_phonemes);
//printf("Translator %x %s [%s] [%s]\n",translator->translator_name,word,phonetic,decoded_phonemes);
}
// this is replacement text, so don't encode as phonemes. Restrict the length of the replacement word
strncpy0(encoded_ph,phonetic,N_WORD_BYTES-4);
}

+ 2
- 2
src/espeak_command.cpp View File

@@ -645,7 +645,7 @@ void display_espeak_command( t_espeak_command* the_command)

case ET_KEY:
{
const char* data = the_command->u.my_key;
const char* data = the_command->u.my_key.key_name;
SHOW("display_espeak_command > (0x%x) KEY=%c\n", the_command, data);
}
break;
@@ -662,7 +662,7 @@ void display_espeak_command( t_espeak_command* the_command)

case ET_CHAR:
{
const wchar_t data = the_command->u.my_char;
const wchar_t data = the_command->u.my_char.character;
SHOW("display_espeak_command > (0x%x) CHAR=%c\n", the_command, (char)data);
}
break;

+ 116
- 9
src/espeakedit.cpp View File

@@ -28,6 +28,8 @@
#include "wx/mdi.h"
#include "wx/laywin.h"
#include "wx/sashwin.h"
#include "wx/utils.h"
#include "wx/html/htmlwin.h"
#include <locale.h>

#include "speak_lib.h"
@@ -42,12 +44,17 @@
#include "prosodydisplay.h"


#ifdef deleted
static const char *about_string = "espeakedit: %s\nAuthor: Jonathan Duddington (c) 2007\n\n"
"Licensed under GNU General Public License version 3\n"
"http://espeak.sourceforge.net/";
#endif

static const char *about_string = "<font size=0><b>espeakedit </b> %s<br>Author: Jonathan Duddington (c) 2007<br>"
"<a href=\"http://espeak.sourceforge.net/\">http://espeak.sourceforge.net</a><br>"
"Licensed under <a href=\"http://espeak.sourceforge.net/license.html\">GNU General Public License version 3</a></font>";

const char *path_data = "/home/jsd1/speechdata/phsource";
const char *path_data;

extern void TestTest(int control);
extern void CompareLexicon(int);
@@ -88,8 +95,6 @@ wxString AppName = _T("espeakedit");





int MyApp::OnExit()
{//================
ConfigSave(1);
@@ -164,6 +169,7 @@ extern void VoiceReset(int control);

myframe->CreateStatusBar();

myframe->Maximize();
myframe->Show(TRUE);

SetTopWindow(myframe);
@@ -175,6 +181,7 @@ extern void VoiceReset(int control);
BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame)
EVT_CHAR(MyFrame::OnKey)
EVT_MENU(MENU_ABOUT, MyFrame::OnAbout)
EVT_MENU(MENU_DOCS, MyFrame::OnAbout)
EVT_MENU(MENU_SPECTRUM, MyFrame::OnNewWindow)
EVT_MENU(MENU_SPECTRUM2, MyFrame::OnNewWindow)
EVT_MENU(MENU_PROSODY, MyFrame::OnProsody)
@@ -258,9 +265,9 @@ wxSashLayoutWindow *win;
if((result = LoadPhData()) != 1)
{
if(result == -1)
wxLogError(_T("Failed to load phoneme data,\nneeds espeak-data/phontab,phondata,phonindex\nPath = ")+wxString(path_home,wxConvLocal));
wxLogError(_T("Failed to read espeak-data/phontab,phondata,phonindex\nPath = ")+wxString(path_home,wxConvLocal)+_T("\n\nThe 'eSpeak' package needs to be installed"));
else
wxLogError(_T("Wrong version of espeak-data: 0x%x (expects 0x%x)"),result,version_phdata);
wxLogError(_T("Wrong version of espeak-data at:\n")+ wxString(path_home,wxConvLocal)+_T("\nVersion 0x%x (expects 0x%x)"),result,version_phdata);

error_flag = 1;
}
@@ -349,15 +356,115 @@ void MyFrame::OnQuit(wxCommandEvent& event)
}


void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{//===================================================
#ifdef deleted
void MyFrame::OnAbout(wxCommandEvent& event)
{//=========================================
int result;
char buf[300];
wxString url_docs;

switch(event.GetId())
{
case MENU_ABOUT:
sprintf(buf,about_string,espeak_Info(NULL));
(void)wxMessageBox(wxString(buf,wxConvLocal), _T("About eSpeak Editor"));
break;

case MENU_DOCS:
sprintf(buf,"%s/docs/docindex.html",path_home);
url_docs = wxString(buf,wxConvLocal);
result = wxLaunchDefaultBrowser(url_docs);
if(result == 0)
wxLogStatus(_T("Failed to launch browser"));
break;
}
}
#endif


class HtmlWindow: public wxHtmlWindow
{
public:

HtmlWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
void OnLinkClicked(const wxHtmlLinkInfo& link);
};

HtmlWindow::HtmlWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style):
wxHtmlWindow(parent, id, pos, size, style)
{
}

void HtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
{
if(wxLaunchDefaultBrowser(link.GetHref()) == FALSE)
wxLogStatus(_T("Failed to launch default browser: "+link.GetHref()));
}


void MyFrame::OnAbout(wxCommandEvent& event)
{//=========================================
int result;
char buf[300];
wxString url_docs;

wxBoxSizer *topsizer;
HtmlWindow *html;
wxDialog dlg(this, wxID_ANY, wxString(_("About")));

topsizer = new wxBoxSizer(wxVERTICAL);

switch(event.GetId())
{
case MENU_ABOUT:
{
sprintf(buf,about_string,espeak_Info(NULL));
html = new HtmlWindow(&dlg, wxID_ANY, wxDefaultPosition, wxSize(380, 160), wxHW_SCROLLBAR_NEVER);
html -> SetBorders(0);
html -> SetPage(wxString(buf,wxConvLocal));
html -> SetSize(html -> GetInternalRepresentation() -> GetWidth(),
html -> GetInternalRepresentation() -> GetHeight());

topsizer -> Add(html, 1, wxALL, 10);

//#if wxUSE_STATLINE
// topsizer -> Add(new wxStaticLine(&dlg, wxID_ANY), 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
//#endif // wxUSE_STATLINE

wxButton *bu1 = new wxButton(&dlg, wxID_OK, _("OK"));
bu1 -> SetDefault();

topsizer -> Add(bu1, 0, wxALL | wxALIGN_RIGHT, 15);

sprintf(buf,about_string,espeak_Info(NULL));
(void)wxMessageBox(wxString(buf,wxConvLocal), _T("About eSpeak Editor"));
dlg.SetSizer(topsizer);
topsizer -> Fit(&dlg);

dlg.ShowModal();
}
break;

case MENU_DOCS:
strcpy(buf,"/docs/docindex.html");
url_docs = wxGetCwd() + wxString(buf,wxConvLocal); // look for "docs" in the current directory
if(!wxFileExists(url_docs))
{
strcpy(buf,"http://espeak.sourceforge.net/docindex.html");
url_docs = wxString(buf,wxConvLocal);
}
else
{
url_docs = _T("file://") + url_docs;
}

result = wxLaunchDefaultBrowser(url_docs);
if(result == 0)
wxLogStatus(_T("Failed to launch default browser: "+url_docs));
break;
}
}



void OnOptions2(int event_id)
{//==========================
wxString string;

+ 31
- 5
src/formantdlg.cpp View File

@@ -54,6 +54,9 @@ void FormantDlg::OnCommand(wxCommandEvent& event)
{//=============================================
int id;

if(currentcanvas == NULL)
return;

switch(id = event.GetId())
{
case T_ZOOMIN:
@@ -77,6 +80,9 @@ void FormantDlg::OnSpin(wxSpinEvent& event)
{//=============================================
int id;

if(currentcanvas == NULL)
return;

switch(id = event.GetId())
{
case T_AMPFRAME:
@@ -98,6 +104,26 @@ FormantDlg::FormantDlg(wxWindow *parent) : wxPanel(parent,-1,wxDefaultPosition,w
int id;
wxString string;

int height;
int width;
int x;
int y2 = 420;
int y3 = 520;

wxClientDisplayRect(&x,&y,&width, &height);
#ifdef PLATFORM_WINDOWS
if(height <= 768)
{
y2 = 410;
y3 = 508;
}
#else
if(height <= 800)
{
y2 = 378;
y3 = 456;
}
#endif
y = 24;
xplace = 28;
id = 201;
@@ -188,10 +214,10 @@ FormantDlg::FormantDlg(wxWindow *parent) : wxPanel(parent,-1,wxDefaultPosition,w



t_zoomout = new wxButton(this,T_ZOOMOUT,_T("Zoom-"),wxPoint(16,420));
t_zoomin = new wxButton(this,T_ZOOMIN,_T("Zoom+"),wxPoint(106,420));
t_zoomout = new wxButton(this,T_ZOOMOUT,_T("Zoom-"),wxPoint(16,y2));
t_zoomin = new wxButton(this,T_ZOOMIN,_T("Zoom+"),wxPoint(106,y2));

y=468;
y = y2 + 46;
t_amplitude = new wxSpinCtrl(this,T_AMPLITUDE,_T(""),
wxPoint(6,y),wxSize(52,24),wxTE_CENTRE,0,y+130);
t_lab[2] = new wxStaticText(this,-1,_T("% amp - Sequence"),wxPoint(61,y+4));
@@ -199,9 +225,9 @@ FormantDlg::FormantDlg(wxWindow *parent) : wxPanel(parent,-1,wxDefaultPosition,w
// wxPoint(6,400),wxSize(52,24),wxTE_CENTRE,0,500);
t_orig_seq = new wxStaticText(this,-1,_T("mS"),wxPoint(61,y+30));

t_pitch = new wxStaticText(this,-1,_T(""),wxPoint(4,520),wxSize(192,24));
t_pitch = new wxStaticText(this,-1,_T(""),wxPoint(4,y3),wxSize(192,24));

pitchgraph = new ByteGraph(this,wxPoint(0,538),wxSize(200,140));
pitchgraph = new ByteGraph(this,wxPoint(0,y3+18),wxSize(200,140));
pitchgraph->SetData(128,env_fall);
pitchgraph->ShowSpectrum(1);
pitchgraph->Show();

+ 1
- 0
src/main.h View File

@@ -120,6 +120,7 @@ enum {
MENU_SPECTRUM2,
MENU_CLOSE_ALL,
MENU_ABOUT,
MENU_DOCS,

MENU_OPTIONS,
MENU_PARAMS,

+ 3
- 2
src/menus.cpp View File

@@ -115,9 +115,9 @@ wxMenuBar *MakeMenu(int type)
lexicon_menu->Append(MENU_LEXICON_IT2, _("Italian, pass 2"));

tools_menu = new wxMenu;
tools_menu->Append(MENU_VOWELCHART, _("Make &Vowels Chart..."), vowelchart_menu);
tools_menu->Append(MENU_VOWELCHART, _("Make &Vowels Chart"), vowelchart_menu);
// tools_menu->Append(MENU_LOAD_WAV, _T("Analyse WAV file"));
tools_menu->Append(MENU_LEXICON, _("Compare &Lexicon..."), lexicon_menu);
tools_menu->Append(MENU_LEXICON, _("Compare &Lexicon"), lexicon_menu);
tools_menu->Append(MENU_TO_UTF8, _("Convert file to &UTF8..."));
tools_menu->Append(MENU_COUNT_WORDS, _("Count word &frequencies..."));
tools_menu->Append(MENU_TEST , _("Test (temporary)"));
@@ -125,6 +125,7 @@ wxMenuBar *MakeMenu(int type)

// HELP MENU
help_menu = new wxMenu;
help_menu->Append(MENU_DOCS, _("eSpeak &Documentation"));
help_menu->Append(MENU_ABOUT, _("&About"));



+ 110
- 49
src/numbers.cpp View File

@@ -761,6 +761,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
int value;
int subtract;
int repeat = 0;
int wflags = 0;
unsigned int flags;
char ph_roman[30];
char number_chars[N_WORD_BYTES];
@@ -823,7 +824,10 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
}

sprintf(number_chars," %d ",acc);
TranslateNumber(tr, &number_chars[1], p, &flags, 0);

if(tr->langopts.numbers & NUM_ROMAN_ORDINAL)
wflags |= FLAG_ORDINAL;
TranslateNumber(tr, &number_chars[1], p, &flags, wflags);

if(tr->langopts.numbers & NUM_ROMAN_AFTER)
strcat(ph_out,ph_roman);
@@ -859,47 +863,69 @@ static const char *M_Variant(int value)
}


static int LookupThousands(Translator *tr, int value, int thousandplex, char *ph_out)
{//==================================================================================
static int LookupThousands(Translator *tr, int value, int thousandplex, int thousands_exact, char *ph_out)
{//=======================================================================================================
int found;
int found_value=0;
char string[12];
char ph_of[12];
char ph_thousands[40];

ph_of[0] = 0;

// first look fora match with the exact value of thousands
sprintf(string,"_%dM%d",value,thousandplex);
// first look for a match with the exact value of thousands
if(thousands_exact)
{
// is there a different pronunciation if there are no hundreds,tens,or units ? (LANG=ta)
sprintf(string,"_%dM%dx",value,thousandplex);
found_value = Lookup(tr, string, ph_thousands);
}
if(found_value == 0)
{
sprintf(string,"_%dM%d",value,thousandplex);
found_value = Lookup(tr, string, ph_thousands);
}

if((found = Lookup(tr, string, ph_thousands)) == 0)
if(found_value == 0)
{
if((value % 100) >= 20)
{
Lookup(tr, "_0of", ph_of);
}

sprintf(string,"_%s%d",M_Variant(value),thousandplex);

if(Lookup(tr, string, ph_thousands) == 0)
found = 0;
if(thousands_exact)
{
// is there a different pronunciation if there are no hundreds,tens,or units ?
sprintf(string,"_%s%dx",M_Variant(value), thousandplex);
found = Lookup(tr, string, ph_thousands);
}
if(found == 0)
{
// repeat "thousand" if higher order names are not available
sprintf(string,"_%dM1",value);
if((found = Lookup(tr, string, ph_thousands)) == 0)
Lookup(tr, "_0M1", ph_thousands);
sprintf(string,"_%s%d",M_Variant(value), thousandplex);

if(Lookup(tr, string, ph_thousands) == 0)
{
// repeat "thousand" if higher order names are not available
sprintf(string,"_%dM1",value);
if((found_value = Lookup(tr, string, ph_thousands)) == 0)
Lookup(tr, "_0M1", ph_thousands);
}
}
}
sprintf(ph_out,"%s%s",ph_of,ph_thousands);
return(found);
return(found_value);
}


static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{//========================================================================
// Lookup a 2 digit number
// control bit 0: tens and units (use special form of '1')
// control bit 1: ordinal number
// control bit 2: use feminine form of '2'
// control bit 3: speak zero tens
// control bit 0: ordinal number
// control bit 1: tens and units (use special form of '1', LANG=de "eins")
// control bit 2: tens and units only, no higher digits
// control bit 3: use feminine form of '2' (for thousands
// control bit 4: speak zero tens

int found;
int ix;
@@ -917,27 +943,34 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
found = 0;
ph_ordinal[0] = 0;

if(control & 4)
if(control & 8)
{
sprintf(string,"_%df",value);
found = Lookup(tr, string, ph_digits);
}
if(control & 2)
else
if(control & 1)
{
strcpy(ph_ordinal, ph_ordinal2);

sprintf(string,"_%do",value);
if((found = Lookup(tr, string, ph_digits)) != 0)
if(control & 4)
{
sprintf(string,"_%dox",value); // LANG=hu, special word for 1. 2. when there are no higher digits
found = Lookup(tr, string, ph_digits);
}
if(found == 0)
{
found_ordinal = 1;
sprintf(string,"_%do",value);
found = Lookup(tr, string, ph_digits);
}
found_ordinal = found;
}

if(found == 0)
{
if((value == 1) && (control & 1))
if((value == 1) && (control & 2))
{
if(Lookup(tr, "_1a", ph_out) != 0)
if(Lookup(tr, "_1a", ph_out) != 0) // LANG=de, "eins"
return(0);
}
sprintf(string,"_%d",value);
@@ -946,7 +979,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)

// no, speak as tens+units

if((control & 8) && (value < 10))
if((control & 0x10) && (value < 10))
{
// speak leading zero
Lookup(tr, "_0", ph_tens);
@@ -961,7 +994,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{
units = (value % 10);

if((control & 2) && ((units == 0) || (tr->langopts.numbers & 0x10)))
if((control & 1) && ((units == 0) || (tr->langopts.numbers & 0x10)))
{
sprintf(string,"_%dXo",value / 10);
if(Lookup(tr, string, ph_tens) != 0)
@@ -987,13 +1020,13 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
if(units > 0)
{
found = 0;
if(control & 4)
if(control & 8)
{
// is there a variant form of this number?
sprintf(string,"_%df",units);
found = Lookup(tr, string, ph_digits);
}
if((control & 2) && ((tr->langopts.numbers & 0x10) == 0))
if((control & 1) && ((tr->langopts.numbers & 0x10) == 0))
{
// ordinal
sprintf(string,"_%do",units);
@@ -1011,7 +1044,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
}
}

if((control & 2) && (found_ordinal == 0) && (ph_ordinal[0] == 0))
if((control & 1) && (found_ordinal == 0) && (ph_ordinal[0] == 0))
{
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10)))
Lookup(tr, "_ord20", ph_ordinal);
@@ -1071,7 +1104,9 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
// bit 1, ordinal number
int found;
int hundreds;
int tensunits;
int x;
int exact;
char string[12]; // for looking up entries in **_list
char buf1[100];
char buf2[100];
@@ -1083,6 +1118,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
char ph_thousand_and[12];
hundreds = value / 100;
tensunits = value % 100;
buf1[0] = 0;

if(hundreds > 0)
@@ -1091,7 +1127,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
ph_thousand_and[0] = 0;

found = 0;
if((control & 2) && ((value % 100) == 0))
if((control & 2) && (tensunits == 0))
{
// ordinal number, with no tens or units
found = Lookup(tr, "_0Co", ph_100);
@@ -1111,11 +1147,15 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
{
ph_digits[0] = 0;

if(LookupThousands(tr, hundreds / 10, thousandplex+1, ph_10T) == 0)
exact = 0;
if ((value % 1000) == 0)
exact = 1;

if(LookupThousands(tr, hundreds / 10, thousandplex+1, exact, ph_10T) == 0)
{
x = 0;
if(tr->langopts.numbers2 & (1 << (thousandplex+1)))
x = 4;
x = 8; // use variant (feminine) for before thousands and millions
LookupNum2(tr, hundreds/10, x, ph_digits);
}

@@ -1141,10 +1181,11 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
suppress_null = 1;

found = 0;
if((value % 1000) == 100)
if(tensunits == 0)
{
// is there a special pronunciation for exactly 100 ?
found = Lookup(tr, "_1C0", ph_digits);
// is there a special pronunciation for exactly n00 ?
sprintf(string,"_%dC0",hundreds);
found = Lookup(tr, string, ph_digits);
}
if(!found)
{
@@ -1158,7 +1199,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
}
else
{
if((hundreds > 1) || ((tr->langopts.numbers & 0x400) == 0))
if((hundreds > 1) || ((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) == 0))
{
LookupNum2(tr, hundreds, 0, ph_digits);
}
@@ -1169,7 +1210,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
}

ph_hundred_and[0] = 0;
if((tr->langopts.numbers & 0x40) && ((value % 100) != 0))
if((tr->langopts.numbers & 0x40) && (tensunits != 0))
{
if((value > 100) || ((control & 1) && (thousandplex==0)))
{
@@ -1179,24 +1220,25 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null


buf2[0] = 0;
value = value % 100;

if((value != 0) || (suppress_null == 0))
if((tensunits != 0) || (suppress_null == 0))
{
x = 0;
if(thousandplex==0)
{
x = 1; // allow "eins" for 1 rather than "ein"
x = 2; // allow "eins" for 1 rather than "ein"
if(control & 2)
x = 3; // ordinal number
if((value < 100) && !(control & 1))
x |= 4; // tens and units only, no higher digits
}
else
{
if(tr->langopts.numbers2 & (1 << thousandplex))
x = 4; // use variant (feminine) for before thousands and millions
x = 8; // use variant (feminine) for before thousands and millions
}

if(LookupNum2(tr, value, x, buf2) != 0)
if(LookupNum2(tr, tensunits, x, buf2) != 0)
{
if(tr->langopts.numbers & 0x80)
ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units
@@ -1222,6 +1264,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
int suppress_null = 0;
int decimal_point = 0;
int thousandplex = 0;
int thousands_exact = 1;
int thousands_inc = 0;
int prev_thousands = 0;
int ordinal = 0;
@@ -1238,6 +1281,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
char ph_buf[200];
char ph_buf2[50];
char suffix[20];
char *wordptr;
unsigned int dictflags[2];

static const char str_pause[2] = {phonPAUSE_NOLINK,0};

@@ -1253,6 +1298,16 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
// ordinal number is indicated by dot after the number
ordinal = 2;
word[ix] = ' ';

if(tr->translator_name == L('h','u'))
{
// lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt)
dictflags[0] = 0;
wordptr = &word[ix+2];
LookupDictList(tr, &wordptr, ph_buf, dictflags, 0, NULL);
if(dictflags[0] & FLAG_ALT_TRANS) // TEST
ordinal = 0;
}
}
else
{
@@ -1285,6 +1340,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
}
}

if(wflags & FLAG_ORDINAL)
ordinal = 2;

ph_append[0] = 0;
ph_buf2[0] = 0;

@@ -1329,6 +1387,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
ix = n_digits + thousands_inc;
while(isdigit(word[ix]) && isdigit(word[ix+1]) && isdigit(word[ix+2]))
{
if((word[ix] != '0') || (word[ix+1] != '0') || (word[ix+2] != '0'))
thousands_exact = 0;

thousandplex++;
if(word[ix+3] == tr->langopts.thousands_sep)
ix += (3 + thousands_inc);
@@ -1355,7 +1416,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
{
if((thousandplex > 0) && (value < 1000))
{
if((suppress_null == 0) && (LookupThousands(tr,value,thousandplex,ph_append)))
if((suppress_null == 0) && (LookupThousands(tr,value,thousandplex, thousands_exact, ph_append)))
{
// found an exact match for N thousand
value = 0;
@@ -1396,7 +1457,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
while(isdigit(word[n_digits+decimal_count]))
decimal_count++;

if(decimal_count > 1)
// if(decimal_count > 1)
{
max_decimal_count = 2;
switch(decimal_mode = (tr->langopts.numbers & 0xe000))
@@ -1420,9 +1481,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
}
break;

case 0x2000:
case 0xa000:
// Italian decimal fractions
case 0x2000: // italian, say "hundredths" is leading zero
case 0xa000: // hungarian, always say "tenths" etc.
if(decimal_count <= 4)
{
LookupNum3(tr, atoi(&word[n_digits]), ph_buf, 0,0,0);
@@ -1454,8 +1514,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned

while(isdigit(c = word[n_digits]) && (strlen(ph_out) < (N_WORD_PHONEMES - 10)))
{
// speak any remaining decimal fraction digits individually
value = word[n_digits++] - '0';
LookupNum2(tr, value, 1, buf1);
LookupNum2(tr, value, 2, buf1);
strcat(ph_out,buf1);
}


+ 3
- 0
src/spectdisplay.cpp View File

@@ -247,6 +247,9 @@ void SpectDisplay::RefreshDialogValues(int type)
int ix;
SpectFrame *sf;

if(spectseq == NULL)
return;

sf = spectseq->frames[sframe];

spectseq->amplitude = formantdlg->t_amplitude->GetValue();

+ 1
- 1
src/synthdata.cpp View File

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

const char *version_string = "1.41.01 25.Aug.09";
const char *version_string = "1.41.08 04.Oct.09";
const int version_phdata = 0x014100;

int option_device_number = -1;

+ 7
- 3
src/tr_languages.cpp View File

@@ -573,7 +573,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.param[LOPT_IT_DOUBLING] = 1;
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word

tr->langopts.numbers = 0x1009 + 0xa000 + NUM_ROMAN + 0x10000;
tr->langopts.numbers = 0x1009 + 0xa000 + NUM_ROMAN + NUM_ROMAN_ORDINAL + NUM_ORDINAL_DOT + NUM_OMIT_1_HUNDRED;
SetLetterVowel(tr,'y');
tr->langopts.spelling_stress = 1;
SetLengthMods(tr,3); // all equal
@@ -946,8 +946,13 @@ SetLengthMods(tr,3); // all equal

tr->langopts.stress_rule = 0;
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable
tr->letter_bits_offset = OFFSET_TAMIL;
tr->langopts.numbers2 = NUM2_100000;

if(name2 == L('t','a'))
{
tr->letter_bits_offset = OFFSET_TAMIL;
tr->langopts.numbers = 0x1;
}
if(name2 == L('m','r'))
{
tr->letter_bits_offset = OFFSET_DEVANAGARI;
@@ -962,7 +967,6 @@ SetLengthMods(tr,3); // all equal
{
tr->letter_bits_offset = OFFSET_KANNADA;
tr->langopts.numbers = 0x1;
tr->langopts.numbers2 = NUM2_100000;
}
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words
SetIndicLetters(tr); // call this after setting OFFSET_

+ 9
- 1
src/translate.cpp View File

@@ -615,7 +615,9 @@ int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab)
ph_limit = &phonemes[N_WORD_PHONEMES];

// count the length of the word
if(*word1 == ' ') word1++; // possibly a dot was replaced by space: $dot
wordx = word1;

utf8_in(&first_char,wordx);
word_length = 0;
while((*wordx != 0) && (*wordx != ' '))
@@ -641,6 +643,12 @@ int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab)
else
{
found = LookupDictList(tr, &word1, phonemes, dictionary_flags, FLAG_ALLOW_TEXTMODE, wtab); // the original word

if((dictionary_flags[0] & FLAG_DOT) && (wordx[1] == '.'))
{
wordx[1] = ' '; // remove a Dot after this word
}

if(dictionary_flags[0] & FLAG_TEXTMODE)
{
first_char = word1[0];
@@ -1532,7 +1540,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
max_stress = -1;

found_dict_flag = 0;
if(flags & FLAG_FOUND)
if((flags & FLAG_FOUND) && !(flags & FLAG_TEXTMODE))
found_dict_flag = SFLAG_DICTIONARY;

while((pre_pause > 0) && (n_ph_list2 < N_PHONEME_LIST-4))

+ 8
- 2
src/translate.h View File

@@ -101,6 +101,7 @@

#define FLAG_NO_TRACE 0x10000 // passed to TranslateRules() to suppress dictionary lookup printout
#define FLAG_NO_PREFIX 0x20000
#define FLAG_ORDINAL 0x40000 // passed to TranslateNumber() to indicate an ordinal number

// prefix/suffix flags (bits 8 to 14, bits 16 to 22) don't use 0x8000, 0x800000
#define SUFX_E 0x0100 // e may have been added
@@ -327,11 +328,15 @@ typedef struct {
unsigned char *length_mods;
unsigned char *length_mods0;

#define NUM_OMIT_1_HUNDRED 0x400
#define NUM_19_HUNDRED 0x800
#define NUM_ORDINAL_DOT 0x10000
#define NUM_ROMAN 0x20000
#define NUM_ROMAN_UC 0x40000
#define NUM_NOPAUSE 0x80000
#define NUM_ROMAN_AFTER 0x200000
#define NUM_VIGESIMAL 0x400000
#define NUM_ROMAN_AFTER 0x200000
#define NUM_VIGESIMAL 0x400000
#define NUM_ROMAN_ORDINAL 0x800000

// bits0-1=which numbers routine to use.
// bit2= thousands separator must be space
@@ -353,6 +358,7 @@ typedef struct {
// bit20='and' before hundreds
// bit21= say "roman" after the number, not before
// bit22= vigesimal number, if tens are not found
// bit23=Roman numbers are ordinal numbers
int numbers;

#define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000

+ 28
- 4
src/transldlg.cpp View File

@@ -277,14 +277,38 @@ void MakeWave2(PHONEME_LIST *p, int n_phonemes)
TranslDlg::TranslDlg(wxWindow *parent) : wxPanel(parent)
{//=====================================================

int height;
int width;
int x,y;
int height_ph = 350;

wxTextAttr attr;
wxFont font = wxFont(12,wxFONTFAMILY_ROMAN,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_LIGHT,false,_T(""),wxFONTENCODING_SYSTEM);

attr.SetFont(font);

wxClientDisplayRect(&x,&y,&width, &height);
#ifdef PLATFORM_WINDOWS
if(height <= 768)
height_ph = height - 416;
#else
if(height <= 800)
height_ph = 280;
#endif


t_source = new wxTextCtrl(this,T_SOURCE,_T(""),wxPoint(0,4),
wxSize(298,250),wxTE_MULTILINE);
t_source->SetDefaultStyle(attr);


t_phonetic = new wxTextCtrl(this,T_PHONETIC,_T(""),wxPoint(0,262),
wxSize(298,350),wxTE_MULTILINE);
wxSize(298,height_ph),wxTE_MULTILINE | wxTE_READONLY);

t_translate = new wxButton(this,T_TRANSLATE,_T("Translate"),wxPoint(4,620));
t_translate = new wxButton(this,T_RULES,_T("Show Rules"),wxPoint(4,652));
t_process = new wxButton(this,T_PROCESS,_T("Speak"),wxPoint(100,620));
y = height_ph + 270;
t_translate = new wxButton(this,T_TRANSLATE,_T("Translate"),wxPoint(4,y));
t_translate = new wxButton(this,T_RULES,_T("Show Rules"),wxPoint(4,y+32));
t_process = new wxButton(this,T_PROCESS,_T("Speak"),wxPoint(100,y));

t_source->SetFocus();
} // end of TransDlg::TransDlg

+ 5
- 1
src/wave_sada.cpp View File

@@ -306,7 +306,11 @@ int wave_close(void* theHandler)
int wave_is_busy(void* theHandler)
{
uint32_t time;
wave_get_remaining_time(total_samples_sent - 1, &time);
if (total_samples_sent >= 1) {
wave_get_remaining_time(total_samples_sent - 1, &time);
} else {
time = 0;
}
return time != 0;
}


Loading…
Cancel
Save