*_list Allow Hyphens in multi-word entries (aa-bb). This will only match a pair of words which are hyphenated. *_list Fix abbreviations of the form a.b.cde Recognise Armenian punctuation, allow and process Armenian punctuation inside words (affects intonation type, and marks the focus word of the clause). Mbrola: add a delay so that SAPI5 events better follow the speaking. Mbrola: generate phoneme events, and hence SAPI5 viseme events. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@200 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -196,7 +196,7 @@ | |||
fu) ch (s k | |||
äu) ch C | |||
eu) ch C | |||
C) chen (_$4 C@n | |||
C) chen (_S4 C@n | |||
ä) chen (_ C@n | |||
e) chen (_ C@n | |||
ü) chen (_ C@n | |||
@@ -638,8 +638,8 @@ | |||
k k | |||
k) k | |||
// @) keit (_$4 kaIt | |||
// @) keiten (_$6 kaIt@n | |||
// @) keit (_S4 kaIt | |||
// @) keiten (_S6 kaIt@n | |||
kolleg k%Ole:g | |||
_) komme (C@ k%OmE | |||
@@ -667,24 +667,24 @@ | |||
_) leit (@P4 l'aIt | |||
_) lern (@@P4 l'E*n | |||
_) lexi (@ lEksi: | |||
@) lich (_$4 lIC | |||
@) liche (_$5 lIC@ | |||
@) lichem (_$6 lIC@m | |||
@) lichen (_$6 lIC@n | |||
@) licher (_$6 lIC3 | |||
@) liches (_$6 lIC@s | |||
@) lichere (_$7 lIC@*@ | |||
@) licherem (_$8 lIC@*@m | |||
@) licheren (_$8 lIC@*@n | |||
@) licherer (_$8 lIC@*@3 | |||
@) licheres (_$8 lIC@*@s | |||
@) lichste (_$7 lICst@ | |||
@) lichstem (_$8 lICst@m | |||
@) lichsten (_$8 lICst@n | |||
@) lichster (_$8 lICst@r | |||
@) lichstes (_$8 lICst@s | |||
@) lichkeit (_$8 lICk%aIt | |||
@) lichung (_$7 lIC%UN | |||
@) lich (_S4 lIC | |||
@) liche (_S5 lIC@ | |||
@) lichem (_S6 lIC@m | |||
@) lichen (_S6 lIC@n | |||
@) licher (_S6 lIC3 | |||
@) liches (_S6 lIC@s | |||
@) lichere (_S7 lIC@*@ | |||
@) licherem (_S8 lIC@*@m | |||
@) licheren (_S8 lIC@*@n | |||
@) licherer (_S8 lIC@*@3 | |||
@) licheres (_S8 lIC@*@s | |||
@) lichste (_S7 lICst@ | |||
@) lichstem (_S8 lICst@m | |||
@) lichsten (_S8 lICst@n | |||
@) lichster (_S8 lICst@r | |||
@) lichstes (_S8 lICst@s | |||
@) lichkeit (_S8 lICk%aIt | |||
@) lichung (_S7 lIC%UN | |||
@) lo (gisch l'o: | |||
.group m | |||
@@ -847,7 +847,7 @@ | |||
_be) sp Sp | |||
_ge) sp Sp | |||
_ver) sp Sp | |||
&C) st (_$2 st | |||
&C) st (_S2 st | |||
&C) ste (_S3 st@ | |||
&C) stem (_S4 st@m | |||
&C) sten (_S4 st@n |
@@ -305,10 +305,11 @@ tS v w z z. | |||
Dictionary ne_dict | |||
@ @- @2 @3 a a: aI aU | |||
a~ e E e: E: E~ e~ i | |||
I i: i~ l- o O o: O: | |||
o~ O~ r- U u u: u~ V | |||
@ @/ @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 c ch d d. f | |||
g h H j J k kh l | |||
@@ -375,12 +376,12 @@ ea eI eo eU i i/ I^ iI | |||
iU o O Oa oI oU u uI | |||
y Y yI yU | |||
* *; 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 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 ru_dict | |||
@@ -497,7 +498,7 @@ uo y y& y@ yE yi yu | |||
(u) ; C f h j k kh | |||
l m n N p ph r s | |||
s. S; t th ts ts. ts. tS; | |||
tS; tsh v w x z. | |||
tS; tsh v w x X z. | |||
Dictionary zhy_dict | |||
@@ -517,7 +518,17 @@ a a: ai au e e: ei i | |||
i: ie iu o o: oi u u: | |||
ui uo | |||
b c d dZ f g h j | |||
J k l l^ m n N n^ | |||
p R R2 s S t tS ts | |||
v z Z | |||
: b c d dZ f g h | |||
j J k l l^ m n n^ | |||
p r R R2 s S t tS | |||
ts v x z Z | |||
Dictionary hy_dict | |||
@ a aI e eI i i@ o | |||
u W y | |||
** b d dZ f g h j | |||
k l m n p R3 s S | |||
t tS ts v x z Z |
@@ -2343,6 +2343,7 @@ Provence pr0v'A~s | |||
Pyrenees pIr@n'i:z | |||
Qatar katA@ | |||
Quebec kwI2bEk | |||
Raleigh rA:lI | |||
Reno ri:noU | |||
Sahel sA:h'El | |||
Saigon saIg'0n |
@@ -84,7 +84,7 @@ | |||
ae i: | |||
ae (val 'i: | |||
aea i@ | |||
@) aed (_$2 d | |||
@) aed (_S2 d | |||
_) ae (on i: | |||
_) aer (o e@ | |||
ae (l eI | |||
@@ -226,13 +226,13 @@ | |||
ab (ular 'ab | |||
b) ab (y eIb | |||
b) ab (yl ab | |||
&) able (_$4iev @b@L // suffix | |||
&) able (_S4iev @b@L // suffix | |||
&c) able (_ @b@L | |||
@ct) able (_ =@b@L | |||
&) ability ($7iev @b'IlI2t%I // suffix | |||
&) abilities ($9iev @b'IlI2t%Iz // suffix | |||
&) ably (_$4iefv @bl%I | |||
&c) ably (_$4fv @bl%I | |||
&) ability (S7iev @b'IlI2t%I // suffix | |||
&) abilities (S9iev @b'IlI2t%Iz // suffix | |||
&) ably (_S4iefv @bl%I | |||
&c) ably (_S4fv @bl%I | |||
.group ac | |||
_) ac (@ a2k | |||
@@ -533,8 +533,8 @@ | |||
alz alt|s | |||
&) al (_ @L | |||
?8 &) al (_ a2l | |||
@) ally (_$2 l%I | |||
@@ic) ally (_$4 l%I | |||
@) ally (_S2 l%I | |||
@@ic) ally (_S4 l%I | |||
inst) al (_ O:l | |||
&) al (d @L | |||
b) al (d O:l | |||
@@ -675,8 +675,8 @@ | |||
_) anom a2n0m | |||
&) an (_ @n | |||
?8 &) an (_ a2n | |||
@u) an (_$1 n | |||
@i) an (_$1 n | |||
@u) an (_S1 n | |||
@i) an (_S1 n | |||
Cc) an (_ an | |||
l) an (_ an | |||
ll) an (_ @n | |||
@@ -725,7 +725,7 @@ | |||
d) ang (er eIndZ | |||
r) ang (e eIndZ | |||
r) anging eIndZIN | |||
r) anged ($1 d | |||
r) anged (S1 d | |||
perm) an @n | |||
ang (er aNg | |||
m) anoeu (v @nu: | |||
@@ -1121,8 +1121,8 @@ | |||
su) bt (l t | |||
de) bt t | |||
_) bug (le bju:g | |||
@) bury (_$4i br%I | |||
?3 @) bury (_$4i bEr%I | |||
@) bury (_S4i br%I | |||
?3 @) bury (_S4i bEr%I | |||
_) by baI | |||
@@ -1447,7 +1447,7 @@ | |||
d d | |||
d (d | |||
_) d' (AP2 d | |||
@@e) d (_$1 d // suffix | |||
@@e) d (_S1 d // suffix | |||
ddh d | |||
dj dZ | |||
dg (_ dZ | |||
@@ -1714,20 +1714,20 @@ | |||
e (quiv %I | |||
e'er e@ | |||
h) e (sion 'i: | |||
&f) e's (_$2i s | |||
&k) e's (_$2i s | |||
&p) e's (_$2i s | |||
&t) e's (_$2i s | |||
&c) e's (_$2i Iz | |||
&g) e's (_$2i Iz | |||
&ch) e's (_$2i Iz | |||
&ph) e's (_$2i Iz | |||
&s) e's (_$2i Iz | |||
&sh) e's (_$2i Iz | |||
&th) e's (_$2i z | |||
&r) e's (_$2i z | |||
&x) e's (_$2i Iz | |||
&C) e's (_$2i z | |||
&f) e's (_S2i s | |||
&k) e's (_S2i s | |||
&p) e's (_S2i s | |||
&t) e's (_S2i s | |||
&c) e's (_S2i Iz | |||
&g) e's (_S2i Iz | |||
&ch) e's (_S2i Iz | |||
&ph) e's (_S2i Iz | |||
&s) e's (_S2i Iz | |||
&sh) e's (_S2i Iz | |||
&th) e's (_S2i z | |||
&r) e's (_S2i z | |||
&x) e's (_S2i Iz | |||
&C) e's (_S2i z | |||
&Cr) e's (_ @z | |||
@) e (tio i: | |||
discr) e (tion E | |||
@@ -1756,7 +1756,7 @@ | |||
_s) ew u: | |||
_s) ew (_ oU | |||
e (work | |||
eway (_$3 weI | |||
eway (_S3 weI | |||
@) ez (_ =Ez | |||
.group ea | |||
@@ -1851,28 +1851,28 @@ | |||
C) ea (ven E | |||
.group ed | |||
@@) ed (_$2dvei d | |||
@C) ed (_$2dvei d | |||
@c) ed (_$2vdei t | |||
@d) ed (_$2dvei I2d | |||
?8 @d) ed (_$2dvei Ed | |||
&ch) ed (_$2vei t | |||
&sh) ed (_$2vei t | |||
@@) ed (_S2dvei d | |||
@C) ed (_S2dvei d | |||
@c) ed (_S2vdei t | |||
@d) ed (_S2dvei I2d | |||
?8 @d) ed (_S2dvei Ed | |||
&ch) ed (_S2vei t | |||
&sh) ed (_S2vei t | |||
@Csh) ed (_ Ed | |||
@f) ed (_$2vdei t | |||
@g) ed (_$1vi d | |||
@k) ed (_$2vdei t | |||
&en) ed (_$2v d | |||
cl) ed (_$1v d | |||
@p) ed (_$2vdei t | |||
@@er) ed (_$2v d | |||
@ss) ed (_$2dv t | |||
@t) ed (_$2vdei I2d | |||
?8 @t) ed (_$2vdei Ed | |||
@fr) ed (_$2v Id | |||
@f) ed (_S2vdei t | |||
@g) ed (_S1vi d | |||
@k) ed (_S2vdei t | |||
&en) ed (_S2v d | |||
cl) ed (_S1v d | |||
@p) ed (_S2vdei t | |||
@@er) ed (_S2v d | |||
@ss) ed (_S2dv t | |||
@t) ed (_S2vdei I2d | |||
?8 @t) ed (_S2vdei Ed | |||
@fr) ed (_S2v Id | |||
yw) ed (_ Ed | |||
@x) ed (_$2vi t | |||
y) ed (_$2v d | |||
@x) ed (_S2vi t | |||
y) ed (_S2v d | |||
edly (_ Idl%I | |||
c) ed (e_ 'i:d | |||
p) ed (e_ i:d | |||
@@ -2113,14 +2113,14 @@ | |||
.group er | |||
&) er 3 | |||
@@@) er (_$2de 3 // suffix | |||
%C) er (_$3 3 | |||
ll) er (_$2 3 | |||
@@@) er (_S2de 3 // suffix | |||
%C) er (_S3 3 | |||
ll) er (_S2 3 | |||
&) er (_ 3 | |||
?8 &) er (_ a2 // (temporary because [3] -> [a2] is only for word-final | |||
%C) ers (_$4 3z | |||
?8 %C) ers (_$4 a2z | |||
ss) er (_$2 3 | |||
%C) ers (_S4 3z | |||
?8 %C) ers (_S4 a2z | |||
ss) er (_S2 3 | |||
all) er (_ 3 | |||
mb) er (_ 3 | |||
lin) er (_S1 3 | |||
@@ -2228,30 +2228,30 @@ | |||
err (_ 3: | |||
.group es | |||
&) es (_$1i z | |||
&) es (_S1i z | |||
ese (_ i:z | |||
@n) ese (_ 'i:z | |||
&f) es (_$1 s | |||
&k) es (_$1 s | |||
&p) es (_$1 s | |||
&t) es (_$1 s | |||
&c) es (_$1 I2z | |||
&g) es (_$1 I2z | |||
&ch) es (_$1 I2z | |||
&ph) es (_$1 I2z | |||
neri) es (_$2i z | |||
&s) es (_$1 I2z | |||
&us) es (_$2e I2z | |||
&rus) es (_$2 I2z | |||
&tus) es (_$2 I2z | |||
&ss) es (_$2 I2z | |||
sh) es (_$2 I2z | |||
&th) es (_$1 z | |||
&r) es (_$1 z | |||
&qu) es (_$1 s | |||
&x) es (_$2 I2z | |||
&z) es (_$2 I2z | |||
&C) es (_$1i z | |||
&f) es (_S1 s | |||
&k) es (_S1 s | |||
&p) es (_S1 s | |||
&t) es (_S1 s | |||
&c) es (_S1 I2z | |||
&g) es (_S1 I2z | |||
&ch) es (_S1 I2z | |||
&ph) es (_S1 I2z | |||
neri) es (_S2i z | |||
&s) es (_S1 I2z | |||
&us) es (_S2e I2z | |||
&rus) es (_S2 I2z | |||
&tus) es (_S2 I2z | |||
&ss) es (_S2 I2z | |||
sh) es (_S2 I2z | |||
&th) es (_S1 z | |||
&r) es (_S1 z | |||
&qu) es (_S1 s | |||
&x) es (_S2 I2z | |||
&z) es (_S2 I2z | |||
&C) es (_S1i z | |||
es (carp I2s | |||
es (cape %Es | |||
es (capi %Es | |||
@@ -2290,7 +2290,7 @@ | |||
_) eth (a ET | |||
eth (ic ET | |||
eth (y i:T | |||
@C) eth (_$3e @T | |||
@C) eth (_S3e @T | |||
etta (_ 'Et@ | |||
ette (_ 'Et | |||
pal) ett (e @t | |||
@@ -2459,11 +2459,11 @@ | |||
A) han (_ h'an // places | |||
ha (st heI | |||
_) he' %hi: | |||
@) head (_$4 hEd | |||
@) head (_S4 hEd | |||
heir e@ | |||
_) hetero hEtroU | |||
K) hl L | |||
&) hold (_$4 hoUld | |||
&) hold (_S4 hoUld | |||
holme hoUm | |||
_) homeo hoUmi:oU | |||
_) homo (s h,oUmoU | |||
@@ -2477,8 +2477,8 @@ | |||
_) horri h0rI | |||
_) horse hO@s | |||
_) house (@ haUs | |||
house (_$5 haUs | |||
houses (_$6 haUzI2z | |||
house (_S5 haUs | |||
houses (_S6 haUzI2z | |||
.group i | |||
i I | |||
@@ -2520,8 +2520,8 @@ | |||
_) i (o aI | |||
&) ial (_ =I2@l | |||
@) ibab aIb@b | |||
@) ible (_$4ev @b@L | |||
@) ibly (_$4efv @bl%I | |||
@) ible (_S4ev @b@L | |||
@) ibly (_S4efv @bl%I | |||
i (bilit I | |||
l) i (bel aI | |||
b) i (ble_ aI | |||
@@ -2653,9 +2653,9 @@ | |||
is (o_ aIz | |||
ise (_ aIz | |||
iser (_ aIz3 | |||
@) ism (_$3de Iz@m | |||
an) ism (_$3d Iz@m | |||
@iB) ism (_$3d Iz@m | |||
@) ism (_S3de Iz@m | |||
an) ism (_S3d Iz@m | |||
@iB) ism (_S3d Iz@m | |||
is (er+_ aIz | |||
iz (er_ aIz | |||
prAm) is Is | |||
@@ -2739,7 +2739,7 @@ | |||
.group ie | |||
ie I | |||
ie (_ I | |||
ied (_$2i d // suffix | |||
ied (_S2i d // suffix | |||
ie (c aI | |||
ie (ce i: | |||
ie (_ aI | |||
@@ -2792,7 +2792,7 @@ | |||
ie (v i: | |||
iew (_ ju: | |||
iew ju: | |||
ies (_$2i z | |||
ies (_S2i z | |||
spec) ies (_ i:z | |||
ser) ies (_ i:z | |||
_ar) ies (_ i:z | |||
@@ -2857,20 +2857,20 @@ | |||
?3 s) im (ult aIm | |||
.group in | |||
@) ing (_+$3dve I2N | |||
@) ings (_$4dve I2Nz | |||
@) ingly (_$5dve I2Ng-lI | |||
@) ingment (_$7dve I2Ng-m@nt | |||
logu) ing (_$4v I2N | |||
x) ing (_+$3v I2N | |||
@@om) ing (_$3dv I2N | |||
en) ing (_$3v I2N | |||
en) ings (_$4v I2Nz | |||
en) ingly (_$5vf I2Ng-lI | |||
er) ing (_$3v I2N | |||
er) ings (_$4v I2Nz | |||
er) ingly (_$5vf I2Ng-lI | |||
er) ingment (_$7v I2Ng-m@nt | |||
@) ing (_+S3dve I2N | |||
@) ings (_S4dve I2Nz | |||
@) ingly (_S5dve I2Ng-lI | |||
@) ingment (_S7dve I2Ng-m@nt | |||
logu) ing (_S4v I2N | |||
x) ing (_+S3v I2N | |||
@@om) ing (_S3dv I2N | |||
en) ing (_S3v I2N | |||
en) ings (_S4v I2Nz | |||
en) ingly (_S5vf I2Ng-lI | |||
er) ing (_S3v I2N | |||
er) ings (_S4v I2Nz | |||
er) ingly (_S5vf I2Ng-lI | |||
er) ingment (_S7v I2Ng-m@nt | |||
Br) ing (_ IN | |||
?7 &) in (_ @n | |||
@@ -3208,8 +3208,8 @@ | |||
_) llan L%an | |||
l (E l | |||
lle (_ l | |||
@@o) lled (_$3v d | |||
@@) lled (_$3v d | |||
@@o) lled (_S3v d | |||
@@) lled (_S3v d | |||
B) l (_ @L | |||
w) l (_ l | |||
r) l (_ l | |||
@@ -3224,14 +3224,14 @@ | |||
?3 _) lo (gK lO | |||
@) lo (gous =l@ | |||
lu (na lu: | |||
@) ly (_$2i l%I | |||
@l) ly (_$2 I2 | |||
@) ly (_S2i l%I | |||
@l) ly (_S2 I2 | |||
f) ly (_ laI | |||
ief) ly (_$2 l%I | |||
ff) ly (_$2 l%I | |||
of) ly (_$2 l%I | |||
ief) ly (_S2 l%I | |||
ff) ly (_S2 l%I | |||
of) ly (_S2 l%I | |||
multip) ly laI | |||
&p) ly (_$2 l%I | |||
&p) ly (_S2 l%I | |||
p) ly (_ laI | |||
_) ly (d lI | |||
@@ -3256,12 +3256,12 @@ | |||
@t) le (B@ @L | |||
tt) le (@ @-l | |||
&C) le (ss l@ | |||
@) less (_$4i l@s | |||
@) lessly (_$6i l@sl%I | |||
@) lessness (_$8i l@sn@s | |||
?8 @) less (_$4i lEs | |||
?8 @) lessly (_$6i lEsl%I | |||
?8 @) lessness (_$8i lEsnEs | |||
@) less (_S4i l@s | |||
@) lessly (_S6i l@sl%I | |||
@) lessness (_S8i l@sn@s | |||
?8 @) less (_S4i lEs | |||
?8 @) lessly (_S6i lEsl%I | |||
?8 @) lessness (_S8i lEsnEs | |||
.group m | |||
m m | |||
@@ -3294,10 +3294,10 @@ | |||
_) mn n | |||
&B) me (_ m%I | |||
@) men (_ mEn | |||
&) ment (_$4 m@nt | |||
&) ments (_$5 m@nt|s | |||
?8 &) ment (_$4 mEnt | |||
?8 &) ments (_$5 mEnt|s | |||
&) ment (_S4 m@nt | |||
&) ments (_S5 m@nt|s | |||
?8 &) ment (_S4 mEnt | |||
?8 &) ments (_S5 mEnt|s | |||
mEnt (_ m@nt | |||
tor) me (nt m'E | |||
C) mented m'EntId | |||
@@ -3313,7 +3313,7 @@ | |||
_) mono m0noU | |||
mon (opol m@n | |||
mon (ox m0n | |||
@) most(_$4 moUst | |||
@) most(_S4 moUst | |||
&) mouth (_ m@T | |||
_) multi mVltI | |||
@@ -3349,13 +3349,13 @@ | |||
.group n | |||
n n | |||
n) n | |||
&ia) n (_$1 n | |||
&ia) ns (_$2 nz | |||
&ia) n (_S1 n | |||
&ia) ns (_S2 nz | |||
@) name (_ neIm | |||
_) nano (P4 n,anoU | |||
necessit n@sEsIt | |||
&) ness (_$4i n@s | |||
?8 &) ness (_$4i nEs | |||
&) ness (_S4i n@s | |||
?8 &) ness (_S4i nEs | |||
@) n (cC N | |||
@) n (ch n | |||
n (c_ N | |||
@@ -3723,8 +3723,8 @@ | |||
_) on (io Vn | |||
ec) on (d @n | |||
m) on (d_ @n | |||
&C) oned (_$2v d | |||
&C) oning (_$3v I2N | |||
&C) oned (_S2v d | |||
&C) oning (_S3v I2N | |||
_) one w0n | |||
_) once (_ w0ns | |||
?6 _) one wVn | |||
@@ -3801,9 +3801,9 @@ | |||
p) or (t o@ | |||
or (A o@r | |||
&) or (ate 3r | |||
@@) or (_$2d 3 // suffix | |||
@@) or (_S2d 3 // suffix | |||
&) or (_ 3 | |||
?8 @@) or (_$2d o@ // suffix | |||
?8 @@) or (_S2d o@ // suffix | |||
?8 &) or (_ o@ | |||
_c) or (@ O@ | |||
c) or (k O@ | |||
@@ -4150,7 +4150,7 @@ | |||
p (hole p | |||
sym) pa p@ | |||
_) pico pi:koU | |||
piece (_$5 pi:s | |||
piece (_S5 pi:s | |||
por (tray p%o@ | |||
// _) post (@@P4 p,oUst // prefix | |||
pneu nju: | |||
@@ -4489,10 +4489,10 @@ | |||
@) s (hill_ s | |||
@) s (hous s | |||
_) she' %Si: | |||
&) ship (_$4 SIp | |||
&) ships (_$5 SIps | |||
&) shire (_$5 S@ | |||
?3 &) shire (_$5 Si@ | |||
&) ship (_S4 SIp | |||
&) ships (_S5 SIps | |||
&) shire (_S5 S@ | |||
?3 &) shire (_S5 Si@ | |||
sia (_ =Zi@ | |||
?3 sia (_ =Z@ | |||
ssia (_ S@ | |||
@@ -4530,29 +4530,29 @@ | |||
a) ssure S'U@ | |||
ea) s (y z | |||
s (_ z | |||
@) s (_$1 z | |||
@) s (_S1 z | |||
_BA) s (_ s | |||
&se) s (_$1 I2z | |||
&sse) s (_$2 I2z | |||
&se) s (_S1 I2z | |||
&sse) s (_S2 I2z | |||
ss (_ s | |||
sse (_ s | |||
c) s (_ s | |||
@ce) s (_$1 Iz | |||
@ce) s (_S1 Iz | |||
f) s (_ s | |||
ng) s (_$1 z | |||
ng) s (_S1 z | |||
k) s (_ s | |||
n) s (_$1 z | |||
n) s (_S1 z | |||
p) s (_ s | |||
th) s (_ s | |||
t) s (_$1 s | |||
te) s (_$1 s | |||
&c) s (_$1 s | |||
&f) s (_$1 s | |||
&k) s (_$1 s | |||
&p) s (_$1 s | |||
&pe) s (_$1 s | |||
&th) s (_$1 s | |||
&t) s (_$1 s | |||
t) s (_S1 s | |||
te) s (_S1 s | |||
&c) s (_S1 s | |||
&f) s (_S1 s | |||
&k) s (_S1 s | |||
&p) s (_S1 s | |||
&pe) s (_S1 s | |||
&th) s (_S1 s | |||
&t) s (_S1 s | |||
_ha) s (_ z | |||
.group su | |||
@@ -4629,7 +4629,7 @@ | |||
s) t (l | |||
to (morr t@ | |||
_) to (nn tV | |||
@) town (_$4 taUn | |||
@) town (_S4 taUn | |||
_) tri (A traI | |||
_) trie traI | |||
_) tri (CA traI | |||
@@ -4999,7 +4999,7 @@ | |||
wh (ol h | |||
m) w (ich_ | |||
B) wing (_ wIN | |||
@) wise (_$4 waIz | |||
@) wise (_S4 waIz | |||
e) with (_ w'ID | |||
with (C w%ID | |||
with (A w%ID | |||
@@ -5144,19 +5144,19 @@ | |||
E (BCe_ @ | |||
E (Cia 'i: | |||
Ea (_ =i@ | |||
@@) Ed (_$2vei d | |||
&C) Ed (_$2vei d | |||
&c) Ed (_$2vei t | |||
&d) Ed (_$2vei Id | |||
&ch) Ed (_$2vei t | |||
&k) Ed (_$2vei t | |||
&@@om) Ed (_$2v d | |||
&p) Ed (_$2vei t | |||
&t) Ed (_$2vei Id | |||
ur) Ed (_$1vi d | |||
&x) Ed (_$2v t | |||
@@) Ed (_S2vei d | |||
&C) Ed (_S2vei d | |||
&c) Ed (_S2vei t | |||
&d) Ed (_S2vei Id | |||
&ch) Ed (_S2vei t | |||
&k) Ed (_S2vei t | |||
&@@om) Ed (_S2v d | |||
&p) Ed (_S2vei t | |||
&t) Ed (_S2vei Id | |||
ur) Ed (_S1vi d | |||
&x) Ed (_S2v t | |||
y) Ed (_ d | |||
Edly (_$4e Idl%I | |||
Edly (_S4e Idl%I | |||
E (dia_ i: | |||
E (dic_ i: | |||
nak) E (d I | |||
@@ -5200,21 +5200,21 @@ | |||
Er (C 3 | |||
Ery (_ @r%I | |||
E (x_ E | |||
&) Es (_$2e z | |||
c) Es (_$2e I2z | |||
c) E's (_$3e I2z | |||
f) Es (_$2e s | |||
g) Es (_$2e I2z | |||
ch) Es (_$2e I2z | |||
ph) Es (_$2e I2z | |||
k) Es (_$2e s | |||
p) Es (_$2e s | |||
s) Es (_$2e I2z | |||
s) E's (_$2e I2z | |||
sh) Es (_$2e I2z | |||
t) Es (_$2e s | |||
x) Es (_$2 I2z | |||
Cr) Es (_$2e @z | |||
&) Es (_S2e z | |||
c) Es (_S2e I2z | |||
c) E's (_S3e I2z | |||
f) Es (_S2e s | |||
g) Es (_S2e I2z | |||
ch) Es (_S2e I2z | |||
ph) Es (_S2e I2z | |||
k) Es (_S2e s | |||
p) Es (_S2e s | |||
s) Es (_S2e I2z | |||
s) E's (_S2e I2z | |||
sh) Es (_S2e I2z | |||
t) Es (_S2e s | |||
x) Es (_S2 I2z | |||
Cr) Es (_S2e @z | |||
Ese (_ i:z | |||
E (sia 'i: | |||
Esque 'Esk | |||
@@ -5229,25 +5229,25 @@ | |||
.group ' | |||
's (_$2 z | |||
f) 's (_$2 s | |||
p) 's (_$2 s | |||
t) 's (_$2 s | |||
k) 's (_$2 s | |||
se) 's (_$2 I2z | |||
s) 's (_$2 I2z | |||
ce) 's (_$2 I2z | |||
ch) 's (_$2 I2z | |||
och) 's (_$2 s | |||
sh) 's (_$2 I2z | |||
x) 's (_$2 I2z | |||
z) 's (_$2 I2z | |||
's (_S2 z | |||
f) 's (_S2 s | |||
p) 's (_S2 s | |||
t) 's (_S2 s | |||
k) 's (_S2 s | |||
se) 's (_S2 I2z | |||
s) 's (_S2 I2z | |||
ce) 's (_S2 I2z | |||
ch) 's (_S2 I2z | |||
och) 's (_S2 s | |||
sh) 's (_S2 I2z | |||
x) 's (_S2 I2z | |||
z) 's (_S2 I2z | |||
6_) 's (_ I2z | |||
16_) 's (_ z | |||
're (_$3 @ | |||
've (_$3 v | |||
'd (_$2 d | |||
'll (_$3 @L | |||
're (_S3 @ | |||
've (_S3 v | |||
'd (_S2 d | |||
'll (_S3 @L | |||
.group 0xce // Greek letters |
@@ -24,7 +24,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated 2008-10-24 Michel Such <[email protected]> | |||
// Updated 2008-11-06 Michel Such <[email protected]> | |||
// | |||
// * Numbers, a few abbreviations and exceptions. | |||
// | |||
@@ -603,6 +603,7 @@ cancer kA~sEr | |||
(chef d'oeuvres) chédeuvres $text | |||
choeur kWr | |||
cocus koky | |||
couscous kuskus | |||
dernier dE2rnjer2 | |||
éloquent ElokA~t2 | |||
fan f'an |
@@ -176,9 +176,9 @@ | |||
i (A j | |||
@) i (e_ j | |||
&C) i (_N$1q i/ | |||
&) i (_N$1q i | |||
&) i (-N$1q i // don't reduce to [I^] if a hyphen follows | |||
&C) i (_NS1q i/ | |||
&) i (_NS1q i | |||
&) i (-NS1q i // don't reduce to [I^] if a hyphen follows | |||
ţ) i (-Că i | |||
ţ) i (-Ci i | |||
@@ -1,60 +1,62 @@ | |||
55 phoneme tables | |||
57 phoneme tables | |||
new total | |||
base 100 100 | |||
base2 24 119 | |||
en 51 146 | |||
en_n 31 146 | |||
en_us 36 147 | |||
en_sc 39 148 | |||
en_rp 34 146 | |||
en_wm 30 146 | |||
en_wi 30 146 | |||
af 39 132 | |||
cy 29 126 | |||
de 33 127 | |||
eo 13 112 | |||
jbo 4 113 | |||
fi 40 131 | |||
fr 54 137 | |||
fr_ca 11 137 | |||
hi 51 137 | |||
ta 17 140 | |||
hu 23 116 | |||
nl 28 123 | |||
pl 18 113 | |||
sk 29 131 | |||
cs 6 131 | |||
hr 26 136 | |||
mk 3 137 | |||
sr 14 136 | |||
ru 39 131 | |||
it 17 122 | |||
la 21 118 | |||
es 9 120 | |||
es_la 1 120 | |||
pt 28 136 | |||
pt_pt 20 136 | |||
ro 36 143 | |||
el 8 119 | |||
grc 12 124 | |||
sv 25 122 | |||
no 28 126 | |||
is 33 126 | |||
vi 42 138 | |||
zhy 40 133 | |||
zh 65 150 | |||
sw 14 109 | |||
tr 18 124 | |||
ku 18 124 | |||
id 15 121 | |||
rw 15 126 | |||
ko 18 147 | |||
da 15 130 | |||
sq 23 128 | |||
ml 13 139 | |||
bn 59 145 | |||
ne 14 141 | |||
lv 26 121 | |||
base 101 101 | |||
base2 24 120 | |||
en 51 147 | |||
en_n 31 147 | |||
en_us 36 148 | |||
en_sc 39 149 | |||
en_rp 34 147 | |||
en_wm 30 147 | |||
en_wi 30 147 | |||
af 39 133 | |||
cy 29 127 | |||
de 33 128 | |||
eo 13 113 | |||
jbo 4 114 | |||
fi 40 132 | |||
fr 54 138 | |||
fr_ca 11 138 | |||
hi 52 139 | |||
ta 17 142 | |||
hu 23 117 | |||
nl 28 124 | |||
pl 18 114 | |||
sk 29 132 | |||
cs 6 132 | |||
hr 26 137 | |||
mk 3 138 | |||
sr 14 137 | |||
ru 39 132 | |||
it 17 123 | |||
la 21 119 | |||
es 9 121 | |||
es_la 1 121 | |||
pt 28 137 | |||
pt_pt 20 137 | |||
ro 36 144 | |||
el 8 120 | |||
grc 12 125 | |||
sv 25 123 | |||
no 28 127 | |||
is 33 127 | |||
vi 42 139 | |||
zhy 40 134 | |||
zh 65 151 | |||
sw 14 110 | |||
tr 18 125 | |||
ku 18 125 | |||
id 15 122 | |||
rw 15 127 | |||
ko 18 149 | |||
da 15 131 | |||
sq 23 129 | |||
ml 13 141 | |||
bn 59 147 | |||
ne 23 151 | |||
lv 28 123 | |||
hy 16 114 | |||
om 18 118 | |||
Data file Used by | |||
b/b [b] base | |||
@@ -579,7 +581,7 @@ r3/r_trill [R2] base | |||
[R] sk | |||
[r*] sr | |||
[x] pt | |||
[R] lv | |||
[R2] lv | |||
r3/r_trill2 [R] base | |||
[r] cy | |||
[R] hr | |||
@@ -593,7 +595,7 @@ r3/r_trill.wav [R2] base | |||
[R] sk | |||
[r*] sr | |||
[x] pt | |||
[R] lv | |||
[R2] lv | |||
r3/r_u [(u)] base | |||
r3/rx [*] base | |||
[r/] base | |||
@@ -607,6 +609,7 @@ r3/rx [*] base | |||
[x] pt_pt | |||
[*;] ro | |||
[r#] is | |||
[Q2] hy | |||
r3/rz_cs [R^] sk | |||
[R^/] sk | |||
r3/@tap [**] base | |||
@@ -712,6 +715,7 @@ ufric/s_ [s] base | |||
[s#] pt | |||
[z;] ro | |||
[s2] is | |||
[s2] lv | |||
ufric/s! [s] base | |||
[s2] fi | |||
[s] fr | |||
@@ -719,9 +723,11 @@ ufric/s! [s] base | |||
[s] es | |||
[s#] pt | |||
[s2] is | |||
[s2] lv | |||
ufric/s_continue [s2] fi | |||
[s2] hu | |||
[s2] is | |||
[s2] lv | |||
ufric/sh [S] base | |||
[S] fr | |||
[s#] pt_pt | |||
@@ -762,6 +768,8 @@ ufric/x_hr [x] base | |||
[x] hr | |||
ufric/x_sr [h] sr | |||
[x] sr | |||
ufric/xx3 [X] base | |||
[Q] hy | |||
ustop/c [c] base | |||
ustop/k [k] base | |||
[k] en | |||
@@ -840,6 +848,7 @@ ustop/k_unasp [k] base | |||
[k] sq | |||
[k] bn | |||
[k] lv | |||
[k`] om | |||
ustop/k_unasp_ [k] zh | |||
ustop/null [?] base | |||
ustop/p [p] base | |||
@@ -853,7 +862,9 @@ ustop/p_ [p] base | |||
[ph] hi | |||
[ph] zh | |||
[ph] bn | |||
[ph] hy | |||
ustop/p_asp [ph] hi | |||
[ph] hy | |||
ustop/percus10 [(X1] base | |||
ustop/pl [p] base | |||
[p] base2 | |||
@@ -869,6 +880,7 @@ ustop/pl [p] base | |||
[p] bn | |||
[ph] bn | |||
[p] lv | |||
[ph] hy | |||
ustop/pr [p] base | |||
[p] base2 | |||
[p] fi | |||
@@ -880,6 +892,7 @@ ustop/pr [p] base | |||
[p;] ro | |||
[p] bn | |||
[ph] bn | |||
[ph] hy | |||
ustop/p_unasp [p] base | |||
[p] base2 | |||
[p] fi | |||
@@ -894,6 +907,7 @@ ustop/p_unasp [p] base | |||
[p] sq | |||
[p] bn | |||
[p] lv | |||
[p`] om | |||
ustop/p_unasp_ [p] base2 | |||
[p] fi | |||
[p] hi | |||
@@ -941,6 +955,7 @@ ustop/t_dnt [t] base | |||
[t] sw | |||
[t`] ko | |||
[t] bn | |||
[t`] om | |||
ustop/t_dnt2 [t[] vi | |||
ustop/t_hi [t] hi | |||
[t] bn | |||
@@ -963,6 +978,7 @@ ustop/ts [ts] base2 | |||
[z] zhy | |||
[tsh] zh | |||
[ts] lv | |||
[ts] hy | |||
ustop/tsh [tS] base | |||
[c] zhy | |||
ustop/tsh_ [tS] base | |||
@@ -994,6 +1010,7 @@ ustop/ts_pzd2 [c] hi | |||
[c] hu | |||
[c`] ko | |||
[c] bn | |||
[c`] om | |||
ustop/ts_pzd3 [tS;] hr | |||
[dZ;] hr | |||
ustop/t_sr [d] sr | |||
@@ -1023,6 +1040,7 @@ vdiph2/ei_4 [eI] en_us | |||
vdiph2/eo [eo] ro | |||
vdiph2/e[u [e[u] ro | |||
vdiph2/i@ [i@] en_n | |||
[i@] hy | |||
vdiph2/i@_2 [i@] en_wm | |||
vdiph2/ie [i@] en_wi | |||
[ie] fi | |||
@@ -1070,11 +1088,12 @@ vdiph/8u [oU] en_us | |||
[ou] zh | |||
vdiph/aae [aI] en_us | |||
vdiph/aai [aai] zhy | |||
[aI] ne | |||
[ai] lv | |||
vdiph/aai_2 [AI] af | |||
[AY] cy | |||
vdiph/aai_3 [ai] fi | |||
vdiph/aau [au] fi | |||
[au] lv | |||
vdiph/aau_2 [aU] en_wi | |||
[aU] de | |||
[VU] nl | |||
@@ -1096,7 +1115,7 @@ vdiph/ai [aI] base2 | |||
[aI] pt | |||
[a:I] vi | |||
[aI] id | |||
[ai] lv | |||
[aI] hy | |||
vdiph/ai_2 [aI] cy | |||
[aY] cy | |||
vdiph/ai_3 [aI] no | |||
@@ -1129,6 +1148,8 @@ vdiph/eei [EI] base2 | |||
[EI] de | |||
[EI] nl | |||
[EI] vi | |||
[eI] ne | |||
[eI] hy | |||
vdiph/eei_2 [eI] eo | |||
[ei] fi | |||
[eI] id | |||
@@ -1160,11 +1181,11 @@ vdiph/eu [eU] base2 | |||
[eU] sk | |||
[eU] pt | |||
[eU] vi | |||
[eU] ne | |||
vdiph/eu_2 [eu] fi | |||
vdiph/&i [&i] fi | |||
[aI] hi | |||
[aI] bn | |||
[aI] ne | |||
vdiph/@i_2 [eI] af | |||
[@I] cy | |||
[@Y] cy | |||
@@ -1182,6 +1203,7 @@ vdiph/oi [oI] base2 | |||
[oI] it | |||
[OI] la | |||
[oI] vi | |||
[oI] ne | |||
vdiph/oi_2 [oI] af | |||
vdiph/ooi [OI] en | |||
[OI] en_n | |||
@@ -1198,8 +1220,10 @@ vdiph/ooi_3 [OI] en_rp | |||
vdiph/ooi_4 [OI] en_us | |||
vdiph/oou [oU] cs | |||
[OU] grc | |||
[au] lv | |||
vdiph/ou [ou] fi | |||
[ou] zhy | |||
[oU] ne | |||
vdiph/ou_2 [oU] sk | |||
[oU] ro | |||
vdiph/ou_3 [oU] is | |||
@@ -1214,13 +1238,16 @@ vdiph/ui [uI] base2 | |||
[ui] fi | |||
[uI] vi | |||
[ui] zhy | |||
[uI] ne | |||
[ui] lv | |||
vdiph/u-i [yI] vi | |||
vdiph/ui_2 [uI] af | |||
vdiph/ui_3 [uI] cy | |||
[uY] cy | |||
vdiph/Vi [@:I] vi | |||
[VI] ne | |||
vdiph/Vu [@U] af | |||
[VU] ne | |||
vdiph/Vu_2 [oU] en_wm | |||
vdiph/Vu_3 [o:] nl | |||
vdiph/Vu_4 [@U] vi | |||
@@ -1282,6 +1309,7 @@ vnasal/u_n [u~] hi | |||
[u~] bn | |||
[u:~] bn | |||
[u~] ne | |||
vnasal/V_n [V~] ne | |||
vnasal/W_n [E~] fr | |||
[W~] fr | |||
voc/bh [B] base | |||
@@ -1298,6 +1326,7 @@ voc/Q_ [Q] base | |||
[x2] pt | |||
voc/Q_less [Q] nl | |||
[x2] pt | |||
voc/Q_ulv [Q] hy | |||
voc/v [v] base | |||
[v] fi | |||
[v] fr | |||
@@ -1374,6 +1403,7 @@ vowel/@ [@] base | |||
[@4] hi | |||
[@] ml | |||
[@4] bn | |||
[@] hy | |||
vowel/@- [@-] base | |||
[r*] hr | |||
vowel/& [a] en_rp | |||
@@ -1382,7 +1412,6 @@ vowel/& [a] en_rp | |||
[&] sv | |||
[&] bn | |||
[&:] bn | |||
[&:] lv | |||
vowel/0 [0] en | |||
[O] hi | |||
[O] pt | |||
@@ -1419,6 +1448,7 @@ vowel/8_2 [U] en_us | |||
[8] sv | |||
vowel/8_3 [eo] zhy | |||
vowel/8_5 [8] ku | |||
vowel/8_7 [@] lv | |||
vowel/a [a] en_n | |||
[aa] en_n | |||
[a] en_wm | |||
@@ -1444,7 +1474,7 @@ vowel/a# [a/] base2 | |||
[&/] pt | |||
[a#] rw | |||
[a/] rw | |||
[&] lv | |||
[a] om | |||
vowel/a_2 [a] base2 | |||
[a] en_wi | |||
[A:] en_wi | |||
@@ -1472,6 +1502,7 @@ vowel/a_3 [a] en_sc | |||
[a] is | |||
[A] zh | |||
[A] da | |||
[a:] om | |||
vowel/a#_3 [a2] en | |||
[a2] en_n | |||
[a2] en_us | |||
@@ -1496,7 +1527,6 @@ vowel/a_5 [a:] ta | |||
[a] tr | |||
[a] sq | |||
[a:] ml | |||
[a] lv | |||
vowel/a_6 [a] fr | |||
[a2] fr | |||
vowel/aa [a] fi | |||
@@ -1504,6 +1534,9 @@ vowel/aa [a] fi | |||
[A] no | |||
[A:] no | |||
[aa] zhy | |||
[a] lv | |||
[a:] lv | |||
[a] hy | |||
vowel/aa# [O] en_us | |||
[0] en_wi | |||
[a2] fi | |||
@@ -1514,7 +1547,6 @@ vowel/aa_2 [A:] en | |||
[A] zh | |||
vowel/aa_3 [A:] af | |||
[A] sq | |||
[a:] lv | |||
vowel/aa_4 [O:] en_us | |||
[A:] sv | |||
[O] vi | |||
@@ -1535,8 +1567,10 @@ vowel/a_en [a] en | |||
[A] fr | |||
[a] pl | |||
vowel/@_bck [@] hi | |||
[@/] hi | |||
[@] zh | |||
[@] bn | |||
[@/] ne | |||
vowel/e [e] base2 | |||
[e:] en | |||
[eI] en_n | |||
@@ -1580,6 +1614,7 @@ vowel/e_3 [i] en_n | |||
[e:] hu | |||
[e] ku | |||
vowel/e_5 [i] en_sc | |||
vowel/e_6 [e] om | |||
vowel/e_7 [e] sq | |||
vowel/ee [E] en_n | |||
[E] sv | |||
@@ -1609,6 +1644,8 @@ vowel/ee_3 [&] af | |||
vowel/ee_6 [&] sk | |||
[E3] sv | |||
[E] ku | |||
[&] lv | |||
[&:] lv | |||
vowel/e_mid [E] en_rp | |||
[e] jbo | |||
[E] fr | |||
@@ -1631,6 +1668,7 @@ vowel/e_mid [E] en_rp | |||
[E] da | |||
[E] bn | |||
[e] lv | |||
[e] hy | |||
vowel/e_mid2 [E] af | |||
[E] de | |||
[E2] de | |||
@@ -1645,6 +1683,7 @@ vowel/e_mid2 [E] af | |||
[e] tr | |||
[E] ko | |||
[e:] lv | |||
[E] om | |||
vowel/@_fnt [@] en_wi | |||
[@2] en_wi | |||
[@2] hr | |||
@@ -1675,6 +1714,8 @@ vowel/i [i] base2 | |||
[i] ko | |||
[i:] ml | |||
[i] ne | |||
[i] hy | |||
[i:] om | |||
vowel/i# [y:] cy | |||
vowel/i_2 [i2] de | |||
[i:] de | |||
@@ -1726,6 +1767,7 @@ vowel/ii [I] en_n | |||
[I] is | |||
[i] zhy | |||
[I] ku | |||
[I] om | |||
vowel/ii# [Y] cy | |||
[Y] ru | |||
[I] ku | |||
@@ -1777,6 +1819,7 @@ vowel/@_low [3] en_rp | |||
[V] bn | |||
[@2] bn | |||
[V] ne | |||
[@/] ne | |||
vowel/o [o] base2 | |||
[o:] en | |||
[oU] en_n | |||
@@ -1797,6 +1840,7 @@ vowel/o [o] base2 | |||
[o] ml | |||
[o:] ml | |||
[o] bn | |||
[o] hy | |||
vowel/o_2 [o:] cy | |||
[o2] fr | |||
[o:] hi | |||
@@ -1820,6 +1864,7 @@ vowel/oe [W] en | |||
[W] af | |||
[W] de | |||
[W] da | |||
[W] hy | |||
vowel/oe_2 [W] no | |||
[W] tr | |||
vowel/oe_4 [W] sv | |||
@@ -1829,6 +1874,7 @@ vowel/o_mid [U@] en_rp | |||
[o] hu | |||
[o] tr | |||
[o] ne | |||
[o:] om | |||
vowel/oo [O:] en_sc | |||
[O] en_wi | |||
[O:] en_wi | |||
@@ -1869,6 +1915,7 @@ vowel/oo_4 [O] base2 | |||
[O:] hi | |||
[O] it | |||
[O] bn | |||
[O] om | |||
vowel/oo_5 [O] pl | |||
[O] is | |||
[O] sq | |||
@@ -1906,6 +1953,7 @@ vowel/u [u:] en_wi | |||
[u] ml | |||
[u:] ml | |||
[u] bn | |||
[u:] om | |||
vowel/u# [u:] en_sc | |||
[Y] tr | |||
vowel/u_2 [u1] fi | |||
@@ -1951,6 +1999,7 @@ vowel/u_bck [u] base2 | |||
[u] sq | |||
[u:] bn | |||
[u] ne | |||
[u] hy | |||
vowel/u_bck2 [u:] la | |||
vowel/u_fnt [u:] en_rp | |||
vowel/uu [U] en | |||
@@ -1974,8 +2023,10 @@ vowel/uu_bck [U] en_wi | |||
[U] no | |||
[u] zhy | |||
[U] bn | |||
[U] om | |||
vowel/u_unr [u-] ko | |||
vowel/V [3] en_sc | |||
[V] ne | |||
vowel/V_2 [V] en | |||
[a] af | |||
[V] ru | |||
@@ -1985,7 +2036,6 @@ vowel/V_3 [V] en_rp | |||
[V] hi | |||
[V] ta | |||
[V] bn | |||
[V] ne | |||
vowel/V_4 [V] en_sc | |||
[@:] vi | |||
[V] da | |||
@@ -2032,6 +2082,9 @@ vowel/yy_4 [y] de | |||
[y] hu | |||
[y] grc | |||
[y] is | |||
[y] hy | |||
vweak/@ [@#] om | |||
vweak/a [a#] om | |||
vwl_af/@ [@] af | |||
vwl_af/I [I] af | |||
vwl_af/r@ [@] af | |||
@@ -2087,10 +2140,13 @@ vwl_fr/@R [x] pt_pt | |||
vwl_fr/@R2 [R] fr_ca | |||
vwl_fr/@R3 [R] fr | |||
[r] fr | |||
[Q2] hy | |||
vwl_fr/@R4 [R] fr | |||
[r] fr | |||
[r2] fr | |||
[Q2] hy | |||
vwl_fr/@R5 [r] fr | |||
[Q2] hy | |||
vwl_fr/r_a [a] fr | |||
[a2] fr | |||
[wA] fr | |||
@@ -2112,6 +2168,7 @@ vwl_no/u#2 [u-:] no | |||
vwl_no/y# [Y:] no | |||
vwl_no/y#y [Yy] no | |||
vwl_ro/ii- [I^] ro | |||
[I#] om | |||
vwl_ro/li [I^] ro | |||
vwl_ro/mi [I^] ru | |||
[I^] ro |
@@ -16,6 +16,12 @@ phoneme @ | |||
reduceto @- 0 | |||
endphoneme | |||
phoneme @/ | |||
vowel starttype (@) endtype (@) | |||
length 130 | |||
formants vowel/@_bck | |||
endphoneme | |||
phoneme V | |||
vowel starttype (@) endtype (@) | |||
length 130 |
@@ -1138,6 +1138,13 @@ phoneme x | |||
switchvoicing Q | |||
endphoneme | |||
phoneme X | |||
vls uvl frc | |||
lengthmod 3 | |||
wave ufric/xx3 | |||
before _ ufric/xx3%70 | |||
endphoneme | |||
phoneme h | |||
vls glt apr | |||
@@ -1325,3 +1332,9 @@ include ph_nepali | |||
phonemetable lv base | |||
include ph_latvian | |||
phonemetable hy base | |||
include ph_armenian_west | |||
phonemetable om base | |||
include ph_oromo |
@@ -312,6 +312,11 @@ static char nullstring[] = {0}; | |||
break; | |||
case 1: | |||
if(c == '-') | |||
{ | |||
flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED; | |||
c = ' '; | |||
} | |||
if(isspace2(c)) | |||
{ | |||
p[0] = 0; /* terminate english word */ |
@@ -2867,7 +2867,7 @@ const char *Translator::LookupDict2(const char *word, const char *word2, char *p | |||
// don't use the contraction if any of the words are emphasized | |||
for(ix=0; ix <= skipwords; ix++) | |||
{ | |||
if((wtab != NULL) && (wtab[ix].flags & FLAG_EMPHASIZED)) | |||
if((wtab != NULL) && (wtab[ix].flags & FLAG_EMPHASIZED2)) | |||
{ | |||
condition_failed = 1; | |||
} | |||
@@ -2935,6 +2935,13 @@ const char *Translator::LookupDict2(const char *word, const char *word2, char *p | |||
} | |||
} | |||
if(dictionary_flags2 & FLAG_HYPHENATED) | |||
{ | |||
if(!(word_flags & FLAG_HYPHEN_AFTER)) | |||
{ | |||
continue; | |||
} | |||
} | |||
if(dictionary_flags2 & FLAG_CAPITAL) | |||
{ | |||
if(!(word_flags & FLAG_FIRST_UPPER)) | |||
@@ -3070,7 +3077,11 @@ int Translator::LookupDictList(char **wordptr, char *ph_out, unsigned int *flags | |||
if(length > 0) | |||
{ | |||
// found an abbreviation containing dots | |||
nbytes = utf8_nbytes(word2); | |||
nbytes = 0; | |||
while(((c = word2[nbytes]) != 0) && (c != ' ')) | |||
{ | |||
nbytes++; | |||
} | |||
memcpy(&word[length],word2,nbytes); | |||
word[length+nbytes] = 0; | |||
found = LookupDict2(word, word2, ph_out, flags, end_flags, wtab); |
@@ -126,7 +126,8 @@ int TestSynthCallback(short *wav, int numsamples, espeak_EVENT *events) | |||
while((type = events->type) != 0) | |||
{ | |||
fprintf(f_events,"%2d (%4d %4d) %5d %5d (%3d) ",type,events->unique_identifier,(int)events->user_data,events->audio_position,events->text_position,events->length); | |||
fprintf(f_events,"%2d (%4d %4ld) %5d %5d (%3d) ",type,events->unique_identifier,(long)events->user_data,events->audio_position,events->text_position,events->length); | |||
if((type==3) || (type==4)) | |||
fprintf(f_events,"'%s'\n",events->id.name); | |||
else |
@@ -82,6 +82,12 @@ const unsigned short punct_chars[] = {',','.','?','!',':',';', | |||
0x3001, // ideograph comma | |||
0x3002, // ideograph period | |||
0x0589, // Armenian period | |||
0x055d, // Armenian comma | |||
0x055c, // Armenian exclamation | |||
0x055e, // Armenian question | |||
0x055b, // Armenian emphasis mark | |||
0xff01, // fullwidth exclamation | |||
0xff0c, // fullwidth comma | |||
0xff0e, // fullwidth period | |||
@@ -106,6 +112,12 @@ static const unsigned int punct_attributes [] = { 0, | |||
CLAUSE_COMMA+0x8000, // ideograph comma | |||
CLAUSE_PERIOD+0x8000, // ideograph period | |||
CLAUSE_PERIOD+0x8000, // Armenian period | |||
CLAUSE_COMMA, // Armenian comma | |||
CLAUSE_EXCLAMATION + PUNCT_IN_WORD, // Armenian exclamation | |||
CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question | |||
CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark | |||
CLAUSE_EXCLAMATION+0x8000, // fullwidth | |||
CLAUSE_COMMA+0x8000, | |||
CLAUSE_PERIOD+0x8000, | |||
@@ -1826,8 +1838,8 @@ MNEM_TAB xml_char_mnemonics[] = { | |||
{NULL,-1}}; | |||
int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf) | |||
{//======================================================================== | |||
int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type) | |||
{//======================================================================================== | |||
/* Find the end of the current clause. | |||
Write the clause into buf | |||
@@ -1855,6 +1867,7 @@ int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf) | |||
int any_alnum = 0; | |||
int self_closing; | |||
int punct_data; | |||
int stressed_word = 0; | |||
const char *p; | |||
wchar_t xml_buf[N_XML_BUF+1]; | |||
@@ -1872,6 +1885,7 @@ int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf) | |||
clause_upper_count = 0; | |||
clause_lower_count = 0; | |||
end_of_input = 0; | |||
*tone_type = 0; | |||
f_input = f_in; // for GetC etc | |||
@@ -2110,25 +2124,35 @@ f_input = f_in; // for GetC etc | |||
if(iswalnum(c1)) | |||
any_alnum = 1; | |||
else | |||
if(iswspace(c1)) | |||
{ | |||
char *p_word; | |||
if(stressed_word) | |||
{ | |||
stressed_word = 0; | |||
c1 = CHAR_EMPHASIS; // indicate this word is strtessed | |||
UngetC(c2); | |||
c2 = ' '; | |||
} | |||
if(translator_name == 0x6a626f) | |||
if(iswspace(c1)) | |||
{ | |||
// language jbo : lojban | |||
// treat "i" or ".i" as end-of-sentence | |||
p_word = &buf[ix-1]; | |||
if(p_word[0] == 'i') | |||
char *p_word; | |||
if(translator_name == 0x6a626f) | |||
{ | |||
if(p_word[-1] == '.') | |||
p_word--; | |||
if(p_word[-1] == ' ') | |||
// language jbo : lojban | |||
// treat "i" or ".i" as end-of-sentence | |||
p_word = &buf[ix-1]; | |||
if(p_word[0] == 'i') | |||
{ | |||
ungot_word = "i "; | |||
UngetC(c2); | |||
p_word[0] = 0; | |||
return(CLAUSE_PERIOD); | |||
if(p_word[-1] == '.') | |||
p_word--; | |||
if(p_word[-1] == ' ') | |||
{ | |||
ungot_word = "i "; | |||
UngetC(c2); | |||
p_word[0] = 0; | |||
return(CLAUSE_PERIOD); | |||
} | |||
} | |||
} | |||
} | |||
@@ -2218,7 +2242,17 @@ if(option_ssml) parag=1; | |||
if((phoneme_mode==0) && (sayas_mode==0) && ((punct = lookupwchar(punct_chars,c1)) != 0)) | |||
{ | |||
if((iswspace(c2) || (punct_attributes[punct] & 0x8000) || IsBracket(c2) || (c2=='?') || (c2=='-') || Eof())) | |||
punct_data = punct_attributes[punct]; | |||
if(punct_data & PUNCT_IN_WORD) | |||
{ | |||
// Armenian punctuation inside a word | |||
stressed_word = 1; | |||
*tone_type = punct_data >> 12 & 0xf; // override the end-of-sentence type | |||
continue; | |||
} | |||
if((iswspace(c2) || (punct_data & 0x8000) || IsBracket(c2) || (c2=='?') || (c2=='-') || Eof())) | |||
{ | |||
// note: (c2='?') is for when a smart-quote has been replaced by '?' | |||
buf[ix] = ' '; | |||
@@ -2295,6 +2329,11 @@ if(option_ssml) parag=1; | |||
return(CLAUSE_NONE); | |||
} | |||
} | |||
if(stressed_word) | |||
{ | |||
ix += utf8_out(CHAR_EMPHASIS, &buf[ix]); | |||
} | |||
buf[ix] = ' '; | |||
buf[ix+1] = 0; | |||
return(CLAUSE_EOF); // end of file |
@@ -542,7 +542,10 @@ void Translator::CalcLengths() | |||
if(end_of_clause == 2) | |||
{ | |||
// this is the last syllable in the clause, lengthen it - more for short vowels | |||
length_mod = length_mod * (256 + (280 - p->ph->std_length)/3)/256; | |||
len = p->ph->std_length; | |||
if(langopts.stress_flags & 0x40000) | |||
len=200; // don't lengthen short vowels more than long vowels at end-of-clause | |||
length_mod = length_mod * (256 + (280 - len)/3)/256; | |||
} | |||
if(p->type != phVOWEL) |
@@ -517,9 +517,9 @@ void MarkerEvent(int type, unsigned int char_position, int value, unsigned char | |||
ep->text_position = char_position & 0xffff; | |||
ep->length = char_position >> 24; | |||
time = (double(count_samples + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||
time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||
ep->audio_position = int(time); | |||
ep->sample = (count_samples + (out_ptr - out_start)/2); | |||
ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | |||
SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); | |||
SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", |
@@ -123,6 +123,8 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int | |||
char path[sizeof(path_home)+15]; | |||
mbrola_name[0] = 0; | |||
mbrola_delay = 0; | |||
if(mbrola_voice == NULL) | |||
{ | |||
samplerate = samplerate_native; | |||
@@ -193,6 +195,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int | |||
else | |||
SetParameter(espeakVOICETYPE,1,0); | |||
strcpy(mbrola_name,mbrola_voice); | |||
mbrola_delay = 3800; // improve synchronization of events | |||
return(EE_OK); | |||
} // end of LoadMbrolaTable | |||
@@ -602,6 +605,10 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola) | |||
else | |||
len = (80 * speed_factor2)/256; | |||
#ifdef USE_MBROLA_LIB | |||
MbrolaMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | |||
#endif | |||
sprintf(buf,"%s\t",WordToString(name)); | |||
strcat(mbr_buf,buf); | |||
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.39.14 02.Nov.08"; | |||
const char *version_string = "1.39.18 06.Nov.08"; | |||
const int version_phdata = 0x013900; | |||
int option_device_number = -1; |
@@ -42,6 +42,7 @@ static void SmoothSpect(void); | |||
int n_phoneme_list=0; | |||
PHONEME_LIST phoneme_list[N_PHONEME_LIST]; | |||
int mbrola_delay; | |||
char mbrola_name[20]; | |||
int speed_factor1; |
@@ -220,6 +220,7 @@ extern int wavefile_amp2; | |||
extern int vowel_transition[4]; | |||
extern int vowel_transition0, vowel_transition1; | |||
extern int mbrola_delay; | |||
extern char mbrola_name[20]; | |||
// from synthdata file |
@@ -45,6 +45,7 @@ | |||
// start of unicode pages for character sets | |||
#define OFFSET_GREEK 0x380 | |||
#define OFFSET_CYRILLIC 0x420 | |||
#define OFFSET_ARMENIAN 0x530 | |||
#define OFFSET_DEVANAGARI 0x900 | |||
#define OFFSET_BENGALI 0x980 | |||
#define OFFSET_TAMIL 0xb80 | |||
@@ -431,6 +432,22 @@ SetLengthMods(tr,3); // all equal | |||
} | |||
break; | |||
case L('h','y'): // Armenian | |||
{ | |||
static const char hy_vowels[] = {0x31, 0x35, 0x37, 0x38, 0x3b, 0x48, 0x55, 0}; | |||
static const char hy_consonants[] = {0x32,0x33,0x34,0x36,0x39,0x3a,0x3c,0x3d,0x3e,0x3f, | |||
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0}; | |||
tr = new Translator(); | |||
tr->langopts.stress_rule = 3; // default stress on final syllable | |||
tr->letter_bits_offset = OFFSET_ARMENIAN; | |||
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
SetLetterBits(tr,LETTERGP_A,hy_vowels); | |||
SetLetterBits(tr,LETTERGP_C,hy_consonants); | |||
tr->langopts.max_initial_consonants = 4; | |||
} | |||
break; | |||
case L('i','d'): // Indonesian | |||
{ | |||
static const short stress_lengths_id[8] = {160, 200, 180, 180, 0, 0, 220, 240}; | |||
@@ -563,8 +580,8 @@ SetLengthMods(tr,3); // all equal | |||
tr->langopts.stress_rule = 0; | |||
tr->langopts.spelling_stress = 1; | |||
tr->charset_a0 = charsets[4]; // ISO-8859-4 | |||
tr->langopts.numbers = 0x409; | |||
tr->langopts.stress_flags = 0x16; | |||
tr->langopts.numbers = 0x409 + 0x8000 + 0x10000; | |||
tr->langopts.stress_flags = 0x16 + 0x40000; | |||
} | |||
break; | |||
@@ -1179,13 +1179,13 @@ strcpy(phonemes2,phonemes); | |||
dictionary_flags[0] &= ~FLAG_PAUSE1; | |||
} | |||
if(wflags & FLAG_EMPHASIZED) | |||
if(wflags & FLAG_EMPHASIZED2) | |||
{ | |||
// A word is indicated in the source text as stressed | |||
// Give it stress level 6 (for the intonation module) | |||
ChangeWordStress(this,word_phonemes,6); | |||
// if(!(wflags & FLAG_LAST_WORD)) // ?? omit pre-pause if it's the last word in the sentence? | |||
if(wflags & FLAG_EMPHASIZED) | |||
dictionary_flags[0] |= FLAG_PAUSE1; // precede by short pause | |||
} | |||
else | |||
@@ -2030,6 +2030,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
int terminator; | |||
int tone; | |||
int tone2; | |||
p_textinput = (char *)vp_input; | |||
p_wchar_input = (wchar_t *)vp_input; | |||
@@ -2044,12 +2045,17 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
for(ix=0; ix<N_TR_SOURCE; ix++) | |||
charix[ix] = 0; | |||
terminator = translator->ReadClause(f_text,source,charix,N_TR_SOURCE); | |||
terminator = translator->ReadClause(f_text, source, charix, N_TR_SOURCE, &tone2); | |||
charix[N_TR_SOURCE] = count_characters; | |||
clause_pause = (terminator & 0xfff) * 10; // mS | |||
tone = (terminator >> 12) & 0xf; | |||
if(tone2 != 0) | |||
{ | |||
// override the tone type | |||
tone = tone2; | |||
} | |||
for(p=source; *p != 0; p++) | |||
{ | |||
@@ -2248,6 +2254,13 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
c = '\''; | |||
} | |||
if(c == CHAR_EMPHASIS) | |||
{ | |||
// this character is a marker that the previous word is the focus of the clause | |||
c = ' '; | |||
word_flags |= FLAG_FOCUS; | |||
} | |||
c = TranslateChar(&source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function | |||
if(c == 8) | |||
continue; // ignore this character |
@@ -76,7 +76,8 @@ | |||
#define FLAG_CAPITAL 0x200 /* pronunciation if initial letter is upper case */ | |||
#define FLAG_ALLCAPS 0x400 // only if the word is all capitals | |||
#define FLAG_ACCENT 0x800 // character name is base-character name + accent name | |||
#define FLAG_HYPHENATED 0x1000 // multiple-words, but needs hyphen between parts 1 and 2 | |||
#define BITNUM_FLAG_HYPHENATED 0x2c | |||
// wordflags, flags in source word | |||
@@ -86,15 +87,16 @@ | |||
#define FLAG_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */ | |||
#define FLAG_PHONEMES 0x8 /* word is phonemes */ | |||
#define FLAG_LAST_WORD 0x10 /* last word in clause */ | |||
//#define FLAG_SPELLING 0x20 // speak the word as individual letters | |||
#define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ | |||
#define FLAG_HYPHEN 0x80 | |||
#define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space | |||
#define FLAG_FIRST_WORD 0x200 // first word in clause | |||
#define FLAG_FOCUS 0x400 // the focus word of a clause | |||
#define FLAG_EMPHASIZED 0x800 | |||
#define FLAG_EMPHASIZED2 0xc00 // FLAG_FOCUS | FLAG_EMPHASIZED | |||
#define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 | |||
#define FLAG_SUFFIX_REMOVED 0x2000 | |||
#define FLAG_HYPHEN_AFTER 0x4000 | |||
#define FLAG_EMPHASIZED 0x8000 | |||
#define FLAG_NO_TRACE 0x10000 // passed to TranslateRules() to suppress dictionary lookup printout | |||
#define FLAG_NO_PREFIX 0x20000 | |||
@@ -161,8 +163,10 @@ | |||
// bits 0-7 pause x 10mS, bits 12-14 intonation type, | |||
// bit 19=sentence, bit 18=clause, bits 17=voice change | |||
// bit 16 used to distinguish otherwise identical types | |||
// bit 20= punctuation character can be inside a word (Armenian) | |||
#define CLAUSE_BIT_SENTENCE 0x80000 | |||
#define CLAUSE_BIT_VOICE 0x20000 | |||
#define PUNCT_IN_WORD 0x100000 | |||
#define CLAUSE_NONE 0 + 0x04000 | |||
#define CLAUSE_PARAGRAPH 70 + 0x80000 | |||
@@ -187,6 +191,8 @@ | |||
#define SAYAS_DIGITS 0x40 // + number of digits | |||
#define SAYAS_DIGITS1 0xc1 | |||
#define CHAR_EMPHASIS 0x0530 // this is an unused character code | |||
// Rule: | |||
// [4] [match] [1 pre] [2 post] [3 phonemes] 0 | |||
// match 1 pre 2 post 0 - use common phoneme string | |||
@@ -306,6 +312,7 @@ typedef struct { | |||
// bit15= Give stress to the first unstressed syllable | |||
// bit16= Don't diminish consecutive syllables within a word. | |||
// bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | |||
// bit18= don't lengthen short vowels more than long vowels at end-of-clause | |||
int stress_flags; | |||
int unstressed_wd1; // stress for $u word of 1 syllable | |||
@@ -435,7 +442,7 @@ private: | |||
void MakePhonemeList(int post_pause, int new_sentence); | |||
int SubstitutePhonemes(PHONEME_LIST2 *plist_out); | |||
int ReadClause(FILE *f_in, char *buf, short *charix, int n_buf); | |||
int ReadClause(FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type); | |||
int AnnouncePunctuation(int c1, int c2, char *buf, int ix); | |||
const char *LookupDict2(const char *word, const char *word2, char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab); |