Fix SSML <prosody rate> to allow the maximum rate of 390 wpm. Fixes to the generation of the dict_phonemes report. Lang=en-n adjust vowel sounds. Compile phonemes: automatically assume vowel-break marker in second keyframe of a vowel file if none is set. Set letter group 'A' to "vowel letters only" for Indic alphabets. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@195 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -175,6 +175,7 @@ colesberg ko@lsb&rx2 | |||
constantia $2 | |||
christiana kr@stij'A:na | |||
damaskus d@maskWs | |||
djakarta dZak'arta | |||
doebaai $2 | |||
duitswes dYytsv'Es | |||
ermelo &rm@lo@ | |||
@@ -233,6 +234,7 @@ soweto suw'E:tu | |||
springs _^_EN $capital | |||
sunnyside _^_EN | |||
swellendam $3 | |||
tokio to@kiu | |||
tunisië $2 | |||
turkye $2 | |||
ulundi ul'undi | |||
@@ -339,6 +341,7 @@ guy _^_EN | |||
harry _^_EN | |||
havenga hA:f@Nx2a | |||
haydn hAId@n | |||
helen _^_EN | |||
helena hil'e@na | |||
helloïse hEluw'i:z | |||
henry _^_EN | |||
@@ -386,6 +389,7 @@ marlise marl'i:s | |||
martha marta | |||
martin m'A:rt@n | |||
mary _^_EN | |||
matteus mat'i:Ws | |||
matthéüs mat'i:Ws | |||
mefistofeles mEfist'o@f@l@s | |||
melanie m@lA:ni | |||
@@ -689,6 +693,7 @@ deurstraalde $2 | |||
dikwels dIkv@ls | |||
diplomasie d@plo@mas'i | |||
doktore $2 | |||
doyen dO:j'En | |||
dubbelken dWb@lkEn | |||
dusver dWsf&r | |||
@@ -726,6 +731,7 @@ geldelike x2&ld@l@k@ | |||
genade $2 | |||
genesis x2e@n@s@s | |||
//gesamentlik x2@sA:m@ntl@k | |||
globale x2lo@b'A:l@ | |||
gooi x2OI | |||
gomorra x2@mOra | |||
graffiti graf'iti | |||
@@ -766,6 +772,7 @@ inkluis $2 | |||
insomnia @nsOmnija | |||
intens @nt'Ens | |||
intensiteit $4 | |||
ironieë irun'i:@ | |||
jawoord jA:vo@rt | |||
jupiter jupit@r |
@@ -54,9 +54,9 @@ s S; t tS; v w | |||
Dictionary de_dict | |||
3 @ @- a A A: aI aU | |||
E E2 E: e: EI I i2 I: | |||
i: O o: OY U u: W y | |||
y: Y: | |||
E E2 E: e: EI I i2 i: | |||
O o: OY U u: W y y: | |||
Y: | |||
* : ; b C C2 d D | |||
dZ f g h j k l m | |||
@@ -79,16 +79,16 @@ Dictionary en_dict | |||
0 3 3: @ @- @2 @5 @L | |||
a a2 A: A@ aa aI aI@ aU | |||
aU@ A~ E e: e@ eI I i | |||
I2 i: i@ i@3 IR O O: o: | |||
O@ o@ OI oU O~ U u: U@ | |||
V VR | |||
* : ; ? b C d D | |||
dZ f g g- h j k l | |||
L m n N n^ p Q r | |||
r- s S t T t2 tS v | |||
w x z Z | |||
aU@ A~ E e@ eI I i I2 | |||
i: i@ i@3 IR O O: o: O@ | |||
o@ OI oU O~ U u: U@ V | |||
VR | |||
: ; ? b C d D dZ | |||
f g g- h j k l L | |||
m n N n^ p Q r r- | |||
s S t T t2 tS v w | |||
x z Z | |||
Dictionary eo_dict | |||
@@ -132,11 +132,11 @@ E E2 E~ i i: o O o2 | |||
O2 O~ u u: W W2 w^i wA | |||
W~ y Y | |||
: ; b c d dZ f g | |||
h j k l m n N n2 | |||
n^ p p2 r R R2 r2 s | |||
S t t2 t3 tS v w z | |||
Z z2 z3 | |||
: ; b d dZ f g h | |||
j k l m n N n2 n^ | |||
p p2 r R R2 r2 s S | |||
t t2 t3 tS v w z Z | |||
z2 z3 | |||
Dictionary grc_dict | |||
@@ -153,9 +153,8 @@ T v x z | |||
Dictionary hbs_dict | |||
& @ @2 a A a: aI aU | |||
E e E# e: i I i: l- | |||
O o o: oU r* r- u U | |||
u: | |||
E e e: i I i: l- O | |||
o o: oU r* r- u U u: | |||
* ; b d dZ dZ; f g | |||
h j k l L l^ m n | |||
@@ -173,8 +172,8 @@ U u: u~ V | |||
- : b c ch d d. f | |||
g h H j J k kh l | |||
l. m n N n. n^ p ph | |||
Q q r s S s. t T | |||
t. t.h th v w x z | |||
Q q r r. s S s. t | |||
T t. t.h th v w x z | |||
Dictionary hu_dict | |||
@@ -269,8 +268,8 @@ p r R s t w z | |||
Dictionary mk_dict | |||
& @ @- @2 a A a: E | |||
e E# e: i I i: l- o | |||
o: oU r- u u: | |||
e e: i I i: l- o o: | |||
oU r- u u: | |||
* b d dZ dZ; f g h | |||
j k k^ l l^ m n N | |||
@@ -325,7 +324,7 @@ o~ u U uI u~ y | |||
g h j k l l^ m n | |||
N n^ p Q r R r- s | |||
S s# s; t T tS ts v | |||
w w2 x z Z | |||
w x z Z | |||
Dictionary ro_dict | |||
@@ -454,10 +453,10 @@ i i. i[ iA iE io iou N- | |||
o o- ou u u@ ua uai uei | |||
uo y y& y@ yE yi yu | |||
: ; f j k kh l m | |||
n N p ph r R s s. | |||
S; t th ts ts. ts. tS; tS; | |||
tsh v w x z z. | |||
(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. | |||
Dictionary zhy_dict | |||
@@ -486,11 +485,11 @@ tS v w z z. | |||
Dictionary bn_dict | |||
a a~ e e: e~ i I i~ | |||
l- o O oI oU o~ O~ r- | |||
u u~ V | |||
a a~ e e~ i i~ l- o | |||
O oI oU o~ O~ r- u u~ | |||
V | |||
** b c ch d d. e[ g | |||
h j J k kh l m n | |||
N p ph r R s S t | |||
t. t.h th z. | |||
N p ph r R r. s S | |||
t t. t.h th |
@@ -15,6 +15,7 @@ | |||
// ?5 split [3:] er [3:], ir [IR], ur [VR] | |||
// ?6 'one' = [wVn], 'of' = [Vv] | |||
// ?7 Scottish | |||
// ?8 Use full vowel, not schwa in some word endings | |||
// letter names, as they are spoken as a single character in text | |||
// precede by _ to distinguish from pronunciation as a language word | |||
@@ -1126,6 +1127,7 @@ hmpf h'@mpf | |||
holme hoUm | |||
holster hoUlst3 | |||
holy hoUlI2 | |||
homeowner hoUmoUn3 | |||
homepage hoUmpeIdZ | |||
hominem h0mInEm | |||
hopi hoUpi: | |||
@@ -1236,6 +1238,7 @@ la ,la $only | |||
laboratory la2b'0r@trI2 | |||
labor leIb3 | |||
labored leIb@d | |||
laborer leIb@r3 | |||
lager lA:g3 | |||
landowner l'and,oUn3 | |||
las ,las | |||
@@ -2365,6 +2368,7 @@ Canberra kanb@r@ | |||
Cassandra k@sandr@ | |||
Cassey keIsI2 | |||
Catherine kaTrIn | |||
Cecile sEsi:l | |||
Chris krIs | |||
Connor k0n3 | |||
Daphne dafnI2 | |||
@@ -2413,6 +2417,7 @@ Judy dZu:dI2 | |||
Karen kar@n | |||
Karene ka2ri:n | |||
Katherine kaTrIn | |||
Katie keItI2 | |||
Kieran ki@r@n | |||
Laurence l0r@ns | |||
Lawrence l0r@ns |
@@ -1482,6 +1482,7 @@ | |||
de (creas di: | |||
de (crem dE | |||
de (du dI2 | |||
_) de (emp d%i: | |||
_) de (f@ dI2 | |||
de (fect_ di: | |||
de (finit dE | |||
@@ -1645,7 +1646,6 @@ | |||
sp) e (cia E | |||
sp) e (cies i: | |||
_) e (cl I2 | |||
@) e (ctive 'E | |||
_) eco (s i:koU | |||
econo (m Ik'0n@ | |||
econo (mic i:k@n'0 | |||
@@ -3098,12 +3098,11 @@ | |||
am) it (e aIt | |||
un) it (e aIt | |||
_sp) it (e aIt | |||
wr) it (e aIt | |||
wr) ite aIt | |||
_s) it (e aIt | |||
x) ite (_ aIt | |||
it (erat It | |||
l) it (er It | |||
wr) it (er aIt | |||
ithe_ aID | |||
l) ithe aID | |||
l) ith (er ID | |||
@@ -4569,6 +4568,7 @@ | |||
?8 &s) tion tSVn | |||
tion (al S=@-n | |||
&) tious S=@s | |||
AC) tive (_ =tIv | |||
for) tuna (t tS@n@ | |||
s) t (l | |||
to (morr t@ | |||
@@ -4687,7 +4687,6 @@ | |||
n) uclear ju:kli@3 | |||
?3 n) ucle u:klI | |||
?3 n) uclear u:kli@3 | |||
@) u (ctive 'V | |||
@) u (da_ 'ju: | |||
u (guC V | |||
f) u (gal 'ju: | |||
@@ -4995,6 +4994,7 @@ | |||
earb) y (_ aI | |||
h) y (Cr aI | |||
c) y (lin I | |||
c) y (r I | |||
th) y (l_ aI | |||
fl) y aI | |||
gl) y (ph I |
@@ -24,7 +24,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated 2008-09-21 Michel Such <[email protected]> | |||
// Updated 2008-09-24 Michel Such <[email protected]> | |||
// | |||
// * Numbers, a few abbreviations and exceptions. | |||
// | |||
@@ -87,7 +87,7 @@ _ac2 dublaksA~tEg'y | |||
_brv bR'Ev | |||
_ced sed'ij | |||
_cir aksA~sirkO~fl'Eks | |||
_dia tR@m'a | |||
_dia tRem'a | |||
_dot pwE~syskr'i | |||
_grv aksA~gr'av | |||
_hac kar'O~ | |||
@@ -577,8 +577,7 @@ campus kA~pys | |||
(chef d'oeuvre) chédeuvre $text | |||
(chef d'oeuvres) chédeuvres $text | |||
choeur kWr | |||
cocus coky | |||
converter converteur $text | |||
cocus koky | |||
dernier dE2rnjer2 | |||
éloquent ElokA~t2 | |||
fier fier $verb | |||
@@ -617,7 +616,7 @@ azimut azim'yt | |||
brut br'yt | |||
but by $verb | |||
but byt | |||
cut cWt | |||
cut kWt | |||
mazout mazut | |||
michael mikaEl | |||
out aut |
@@ -23,7 +23,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated: 2008-09-19 Michel Such <[email protected]> | |||
// Updated: 2008-09-24 Michel Such <[email protected]> | |||
// | |||
// Letter classes: | |||
@@ -502,6 +502,7 @@ _) ç' (P2v s | |||
Cr) eamer i:mWr | |||
Cl) eaner i:nWr | |||
Ack) et (_ Et | |||
vert) e (rX W | |||
eïn (_ 'Ein | |||
@@ -138,8 +138,9 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
ट t.@ | |||
ठ t.h@ | |||
ड d.@ | |||
ड़ r.@ | |||
ढ d.h@ | |||
ण n.@ // should be n.@ | |||
ण n.@ // retroflex n.@ | |||
त t@ | |||
थ th@ | |||
द d@ | |||
@@ -157,7 +158,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
ळ l.@ | |||
व v@ | |||
श S@ | |||
ष s.@ // should be retroflex [S] | |||
ष s.@ // retroflex [S] | |||
स s@ | |||
ह H@ | |||
क़ q@ |
@@ -240,13 +240,17 @@ | |||
ड (B d. | |||
?1 ड (_ d. | |||
ड़ r.V | |||
ड़ (B r. | |||
?1 ड़ (_ r. | |||
.group ढ | |||
ढ d.hV | |||
ढ (B d.h | |||
?1 ढ (_ d.h | |||
ढ़ r-V // nukta (should retroflex flap) | |||
ढ़ (B r- // nukta | |||
?1 ढ़ (_ r- // nukta | |||
ढ़ r.hV // nukta (should retroflex flap) | |||
ढ़ (B r.h // nukta | |||
?1 ढ़ (_ r.h // nukta | |||
.group ण | |||
ण n.V // (temporary) same as dental [n] | |||
@@ -447,14 +451,14 @@ | |||
?1 ज़ (_ z | |||
.group ड़ // dddha (should retroflex flap) | |||
ड़ r-V | |||
ड़ (B r- | |||
?1 ड़ (_ r- | |||
ड़ r.V | |||
ड़ (B r. | |||
?1 ड़ (_ r. | |||
.group ढ़ // rha (aspirated version of dddha) | |||
ढ़ hrV | |||
ढ़ (B hr | |||
?1 ढ़ (_ hr | |||
ढ़ r.hV | |||
ढ़ (B r.h | |||
?1 ढ़ (_ r.h | |||
.group फ़ // fa | |||
फ़ fV |
@@ -1,58 +1,58 @@ | |||
53 phoneme tables | |||
new total | |||
base 98 98 | |||
base2 24 117 | |||
en 51 144 | |||
en_n 30 144 | |||
en_us 35 144 | |||
en_sc 39 146 | |||
en_rp 34 144 | |||
en_wm 30 144 | |||
en_wi 30 144 | |||
af 39 130 | |||
cy 29 124 | |||
de 33 125 | |||
eo 13 110 | |||
jbo 4 111 | |||
fi 40 129 | |||
fr 55 135 | |||
fr_ca 11 135 | |||
hi 51 135 | |||
ta 17 138 | |||
hu 23 114 | |||
nl 28 121 | |||
pl 18 111 | |||
sk 29 129 | |||
cs 6 129 | |||
hr 26 134 | |||
mk 3 135 | |||
sr 14 134 | |||
ru 39 129 | |||
it 17 120 | |||
la 21 116 | |||
es 9 118 | |||
es_la 1 118 | |||
pt 28 134 | |||
pt_pt 20 134 | |||
ro 36 141 | |||
el 8 117 | |||
grc 12 122 | |||
sv 25 120 | |||
no 28 124 | |||
is 33 124 | |||
vi 42 136 | |||
zhy 40 131 | |||
zh 65 148 | |||
sw 14 107 | |||
tr 18 122 | |||
ku 18 122 | |||
id 15 119 | |||
rw 15 124 | |||
ko 18 145 | |||
da 15 128 | |||
sq 12 122 | |||
ml 13 137 | |||
bn 20 143 | |||
base 100 100 | |||
base2 24 119 | |||
en 51 146 | |||
en_n 30 146 | |||
en_us 35 146 | |||
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 55 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 12 124 | |||
ml 13 139 | |||
bn 20 145 | |||
Data file Used by | |||
b/b [b] base | |||
@@ -319,6 +319,7 @@ l/l [l] base | |||
[l;] ro | |||
l/_l [l] base | |||
[l/] base | |||
[l/3] base | |||
[l] en | |||
[l] en_wi | |||
[l] af | |||
@@ -333,8 +334,10 @@ l/_l [l] base | |||
[l;] ro | |||
[l] zh | |||
l/l_ [l/] base | |||
[l/3] base | |||
[l/] fr | |||
l/l_@ [@] fr | |||
l/l_@ [(@)] base | |||
[@] fr | |||
[W] fr | |||
[Y] fr | |||
[@2] fr | |||
@@ -358,14 +361,14 @@ l/L2_oL [(o)] base | |||
[oU] en_sc | |||
l/L2_uL [(u)] base | |||
[u:] en | |||
[u:] en_n | |||
[u:] en_rp | |||
l/l_3 [l/] de | |||
l/l_4 [ll] sq | |||
l/la [(a)] base | |||
[a] fr | |||
[a2] fr | |||
l/l_a [a] fr | |||
l/l_a [(a)] base | |||
[a] fr | |||
[a2] fr | |||
[wA] fr | |||
[A~] fr | |||
@@ -373,7 +376,8 @@ l/le [(e)] base | |||
[E] fr | |||
[e] fr | |||
[E2] fr | |||
l/l_e [E] fr | |||
l/l_e [(e)] base | |||
[E] fr | |||
[E2] fr | |||
l/L_eL_af [&] af | |||
[&:] af | |||
@@ -381,7 +385,8 @@ l/li [(i)] base | |||
[i] fr | |||
[i:] fr | |||
[l] zh | |||
l/l_i [i] fr | |||
l/l_i [(i)] base | |||
[i] fr | |||
[i:] fr | |||
[w^i] fr | |||
l/l_long [l] base | |||
@@ -394,7 +399,8 @@ l/lo [(o)] base | |||
[O2] fr | |||
[o2] fr | |||
[wA] fr | |||
l/l_o [O] fr | |||
l/l_o [(o)] base | |||
[O] fr | |||
[O2] fr | |||
[o2] fr | |||
l^/l_rfx [l.] hi | |||
@@ -404,7 +410,8 @@ l/lu [(u)] base | |||
[y] fr | |||
[u:] fr | |||
[w^i] fr | |||
l/l_u [u] fr | |||
l/l_u [(u)] base | |||
[u] fr | |||
[u:] fr | |||
l/l_y [y] fr | |||
l/tl [l] base | |||
@@ -500,13 +507,12 @@ r2/r2o [(o)] base | |||
r2/r2u [(u)] base | |||
r3/r_ [r/] base | |||
[r/] af | |||
[r/2] fr | |||
[r/] ru | |||
r3/r_@ [(@)] base | |||
r3/r#_ [r#] is | |||
r3/r_2 [r/2] fr | |||
r3/r_a [(a)] base | |||
r3/r_e [(e)] base | |||
[E] fr | |||
r3/r_i [(i)] base | |||
[i] fr | |||
[w^i] fr | |||
@@ -557,6 +563,7 @@ r3/@tap [**] base | |||
[r] ko | |||
r3/@tap2 [**] base | |||
[r] ko | |||
r3/@tap_rfx [r.] base | |||
r/a_ [r] da | |||
r/r [r] base | |||
[r-] base | |||
@@ -582,6 +589,7 @@ r/rr [r/] base | |||
[r/] af | |||
[r] de | |||
[r] fi | |||
[r] fr | |||
[r/2] fr | |||
[r2] nl | |||
[r] ru | |||
@@ -610,11 +618,16 @@ r/xr [(@)] base | |||
[(i)] base | |||
[(o)] base | |||
[(u)] base | |||
[@] fr | |||
[Y] fr | |||
[e] fr | |||
[i] fr | |||
[o] fr | |||
[u] fr | |||
[y] fr | |||
[@2] fr | |||
[a2] fr | |||
[o2] fr | |||
[i:] fr | |||
[u:] fr | |||
[A~] fr | |||
@@ -921,6 +934,8 @@ vdiph2/e@ [3:] en_sc | |||
[e@] en_sc | |||
[e@] en_wi | |||
vdiph2/ea [ea] ro | |||
vdiph2/ee_@ [e@] en_n | |||
vdiph2/ei_2 [eI] en_rp | |||
vdiph2/ei_3 [i:] en_wm | |||
vdiph2/ei_4 [eI] en_us | |||
[ei] zh | |||
@@ -963,7 +978,7 @@ vdiph2/uw_4 [u:] en_n | |||
vdiph2/uw_6 [y] ko | |||
vdiph2/y@ [y@] zh | |||
vdiph2/y#@ [Y@] af | |||
vdiph2/yE [yE] sq | |||
vdiph2/ye [yE] sq | |||
vdiph2/yu [yU] nl | |||
[yu] zh | |||
vdiph2/y-y# [yY] fi | |||
@@ -1028,8 +1043,7 @@ vdiph/eei [EI] base2 | |||
vdiph/eei_2 [eI] eo | |||
[ei] fi | |||
[eI] id | |||
vdiph/eei_3 [eI] en_rp | |||
[eI] sk | |||
vdiph/eei_3 [eI] sk | |||
[eI] ku | |||
vdiph/eeu [EU] pt | |||
[EU] grc | |||
@@ -1443,16 +1457,17 @@ vowel/e_2 [eI] en_sc | |||
[e] it | |||
[e:] sv | |||
[e:] no | |||
vowel/e_3 [e:] hu | |||
vowel/e_3 [i] en_n | |||
[e:] hu | |||
[e] ku | |||
vowel/e_5 [i] en_sc | |||
vowel/ee [E] sv | |||
vowel/ee [E] en_n | |||
[E] sv | |||
vowel/e_e [E] en_sc | |||
[e] is | |||
vowel/ee# [E#] pl | |||
vowel/ee_1 [E] base2 | |||
[e@] en | |||
[e@] en_n | |||
[E] pl | |||
[E] la | |||
[E] grc | |||
@@ -1471,14 +1486,12 @@ vowel/ee_3 [&] af | |||
[&:] af | |||
[E] pt | |||
[E] vi | |||
vowel/ee_6 [E] en_n | |||
[&] sk | |||
vowel/ee_6 [&] sk | |||
[E3] sv | |||
[E] ku | |||
vowel/e_mid [E] en_rp | |||
[e] jbo | |||
[E] fr | |||
[e] fr | |||
[E2] fr | |||
[E] fr_ca | |||
[E] hi | |||
@@ -1518,6 +1531,7 @@ vowel/@_hgh [@] fr | |||
[@] hr | |||
vowel/i [i] base2 | |||
[i:] en_n | |||
[i:] en_rp | |||
[i] en_wm | |||
[i] en_wi | |||
[i:] cy | |||
@@ -1537,10 +1551,8 @@ vowel/i [i] base2 | |||
[i#] rw | |||
[i] ko | |||
[i:] ml | |||
vowel/i# [i] en_rp | |||
[y:] cy | |||
vowel/i_2 [i:] en_rp | |||
[i2] de | |||
vowel/i# [y:] cy | |||
vowel/i_2 [i2] de | |||
[i:] de | |||
[i] nl | |||
[i:] la | |||
@@ -1574,7 +1586,9 @@ vowel/i_en [i:] en | |||
vowel/i_fnt [i:] en_wi | |||
[i] hi | |||
[i:] hi | |||
vowel/ii [I] en_rp | |||
vowel/ii [I] en_n | |||
[I2] en_n | |||
[I] en_rp | |||
[I2] en_rp | |||
[I] en_wm | |||
[I2] en_wm | |||
@@ -1601,9 +1615,6 @@ vowel/ii_3 [I] cy | |||
[I] tr | |||
vowel/ii_4 [I] en | |||
[I2] en | |||
[I] en_n | |||
[i] en_n | |||
[I2] en_n | |||
[I] en_us | |||
[I2] en_us | |||
vowel/ii_5 [I] en_wi | |||
@@ -1618,6 +1629,7 @@ vowel/ii_6 [I] en_wm | |||
[i/] pt | |||
vowel/ii_en [i] en | |||
vowel/ii_final [i] en_us | |||
[i] en_rp | |||
vowel/@_low [3] en_rp | |||
[@] en_rp | |||
[@2] en_rp | |||
@@ -1631,6 +1643,7 @@ vowel/@_low [3] en_rp | |||
[@] id | |||
vowel/o [o] base2 | |||
[o:] en | |||
[oU] en_n | |||
[oU] en_wi | |||
[o:] de | |||
[o] hi | |||
@@ -1661,7 +1674,6 @@ vowel/o-_2 [V] en_n | |||
vowel/o_3 [oU] en_sc | |||
[o] fr | |||
vowel/o-_3 [U] en_rp | |||
vowel/o_4 [oU] en_n | |||
vowel/o-_4 [o] ro | |||
vowel/o_5 [O] nl | |||
[O] da | |||
@@ -1796,6 +1808,7 @@ vowel/u_bck [u] base2 | |||
vowel/u_bck2 [u:] la | |||
vowel/u_fnt [u:] en_rp | |||
vowel/uu [U] en | |||
[U] en_n | |||
[U] en_wm | |||
vowel/uu# [U] ku | |||
vowel/uu_2 [U] base2 | |||
@@ -1805,8 +1818,7 @@ vowel/uu_3 [u] af | |||
[y] zh | |||
vowel/uu_4 [U] fi | |||
[U] sv | |||
vowel/uu_bck [U] en_n | |||
[U] en_wi | |||
vowel/uu_bck [U] en_wi | |||
[U] fr_ca | |||
[U] hi | |||
[u] hu | |||
@@ -1894,7 +1906,6 @@ vwl_en/@L_2 [aI] en_sc | |||
vwl_en_n/aa_5 [A@] en_n | |||
vwl_en_n/O@ [O@] en_n | |||
[o@] en_n | |||
vwl_en_n/u_ [u:] en_n | |||
vwl_en/ooi@ [aI@] en_wm | |||
vwl_en_rp/aa [A:] en_rp | |||
[A@] en_rp | |||
@@ -1904,7 +1915,6 @@ vwl_en_rp/e@ [e@] en_rp | |||
vwl_en_rp/i@ [i@] en_rp | |||
vwl_en_rp/oo [U@] en_rp | |||
vwl_en/u_L [u:] en | |||
[u:] en_n | |||
[u:] en_rp | |||
vwl_en_us/3_us [3] en_us | |||
vwl_en_us/3_us2 [3:] en_us | |||
@@ -1932,8 +1942,9 @@ vwl_fr/@R3 [R] fr | |||
vwl_fr/@R4 [R] fr | |||
[r] fr | |||
[r2] fr | |||
vwl_fr/ri [i] fr | |||
vwl_fr/r_e [E] fr | |||
vwl_fr/r_u [u] fr | |||
vwl_fr/r_y [y] fr | |||
vwl_fr/w_a [wA] fr | |||
vwl_hi/A [a:] hi | |||
vwl_hi/l-voc [l-] jbo |
@@ -16,7 +16,7 @@ endphoneme | |||
phoneme E | |||
vowel starttype (e) endtype (e) | |||
length 150 | |||
formants vowel/ee_6 | |||
formants vowel/ee | |||
reduceto I 0 | |||
// before l/ DFT-30+L/eL_af | |||
endphoneme | |||
@@ -25,21 +25,29 @@ endphoneme | |||
phoneme I | |||
vowel starttype (i) endtype (i) | |||
length 130 | |||
formants vowel/ii_4 | |||
formants vowel/ii | |||
linkout ; | |||
endphoneme | |||
phoneme I2 | |||
vowel starttype (i) endtype (i) | |||
unstressed | |||
length 140 | |||
formants vowel/ii | |||
linkout ; | |||
endphoneme | |||
phoneme i // optional variant of [I] for end of words | |||
vowel starttype (i) endtype (i) | |||
length 220 | |||
formants vowel/ii_4 | |||
length 150 | |||
formants vowel/e_3 | |||
linkout ; | |||
endphoneme | |||
phoneme 0 | |||
vowel starttype (o) endtype (o) | |||
length 140 | |||
length 150 | |||
formants vowel/0_2 | |||
reduceto @ 0 | |||
endphoneme | |||
@@ -55,19 +63,11 @@ endphoneme | |||
phoneme U | |||
vowel starttype (o) endtype (o) | |||
length 150 | |||
formants vowel/uu_bck | |||
length 170 | |||
formants vowel/uu | |||
endphoneme | |||
phoneme I2 | |||
vowel starttype (i) endtype (i) | |||
unstressed | |||
length 140 | |||
formants vowel/ii_4 | |||
linkout ; | |||
endphoneme | |||
phoneme a2 | |||
vowel starttype (@) endtype (@) | |||
@@ -157,13 +157,11 @@ phoneme u: | |||
vowel starttype (u) endtype (u) | |||
length 200 | |||
formants vdiph2/uw_4 | |||
before _ vwl_en_n/u_ | |||
before l/2 vwl_en/u_L-40+l/L2_uL | |||
endphoneme | |||
phoneme aU | |||
vowel starttype (a) endtype (u) | |||
vowel starttype (e) endtype (u) | |||
length 230 | |||
formants vdiph/eeu_3 | |||
endphoneme | |||
@@ -171,8 +169,8 @@ endphoneme | |||
phoneme oU | |||
vowel starttype (o) endtype (o) | |||
length 210 | |||
formants vowel/o_4 | |||
length 220 | |||
formants vowel/o | |||
endphoneme | |||
@@ -200,7 +198,7 @@ endphoneme | |||
phoneme e@ | |||
vowel starttype (e) endtype (@) | |||
length 220 | |||
formants vowel/ee_1 | |||
formants vdiph2/ee_@ | |||
linkout r- | |||
endphoneme | |||
@@ -85,7 +85,7 @@ endphoneme | |||
phoneme i // optional variant of [I] for end of words | |||
vowel starttype (i) endtype (i) | |||
length 140 | |||
formants vowel/i# | |||
formants vowel/ii_final | |||
linkout ; | |||
endphoneme | |||
@@ -142,7 +142,7 @@ endphoneme | |||
phoneme aa // 'bath' etc. | |||
vowel starttype (a) endtype (a) | |||
length 190 | |||
length 200 | |||
formants vwl_en_rp/aa | |||
linkout r- | |||
endphoneme | |||
@@ -160,7 +160,7 @@ endphoneme | |||
phoneme i: | |||
vowel starttype (i) endtype (i) | |||
length 175 | |||
formants vowel/i_2 | |||
formants vowel/i | |||
after w w/wi2 | |||
linkout ; | |||
endphoneme | |||
@@ -223,7 +223,8 @@ endphoneme | |||
phoneme eI | |||
vowel starttype (i) endtype (i) | |||
length 210 | |||
formants vdiph/eei_3 | |||
formants vdiph2/ei_2 | |||
// formants vdiph/eei_3 | |||
endphoneme | |||
@@ -13,6 +13,7 @@ phoneme @ | |||
length 170 | |||
formants vowel/@_hgh | |||
before l/ DFT+l/l_@ | |||
before (r) DFT+r/xr | |||
endphoneme | |||
@@ -21,6 +22,8 @@ phoneme @2 | |||
length 150 | |||
formants vowel/@_fr | |||
before l/ DFT+l/l_@ | |||
before (r) DFT+r/xr | |||
before R DFT+r/xr | |||
endphoneme | |||
@@ -51,7 +54,6 @@ phoneme e | |||
after l l/le-15 | |||
before l/ DFT-20+l/xl | |||
before (r) DFT+r/xr | |||
before r2 vowel/e_mid-40+r/xr | |||
endphoneme | |||
@@ -61,7 +63,7 @@ phoneme E | |||
formants vowel/e_mid | |||
after l l/le-15 | |||
before l/ DFT+l/l_e | |||
before r/2 DFT+r3/r_e | |||
before r/2 DFT+vwl_fr/r_e | |||
reduceto E2 1 | |||
endphoneme | |||
@@ -81,7 +83,6 @@ phoneme i | |||
formants vowel/i_3 | |||
linkout ; | |||
after l l/li-15 | |||
after (r) vwl_fr/ri | |||
before l/ DFT+l/l_i | |||
before (r) DFT+r/xr | |||
before r/2 DFT+r3/r_i | |||
@@ -104,6 +105,7 @@ phoneme o | |||
length 170 | |||
formants vowel/o_3 | |||
after l l/lo-10 | |||
before (r) DFT+r/xr | |||
endphoneme | |||
@@ -113,6 +115,7 @@ phoneme o2 | |||
formants vowel/o_2 | |||
after l l/lo-10 | |||
before l/ DFT+l/l_o | |||
before (r) DFT+r/xr | |||
endphoneme | |||
@@ -165,6 +168,8 @@ phoneme y | |||
formants vowel/y_2 | |||
after l l/lu-20 | |||
before l/ DFT-30+l/l_y | |||
before (r) DFT+r/xr | |||
before r/2 DFT+vwl_fr/r_y | |||
endphoneme | |||
@@ -174,6 +179,7 @@ phoneme Y | |||
formants vowel/y# | |||
after l l/l@-20 | |||
before l/ DFT-20+l/l_@ | |||
before (r) DFT+r/xr | |||
before r/2 DFT+r/xr-40 | |||
endphoneme | |||
@@ -414,11 +420,12 @@ phoneme r | |||
vowelout f1=0 f2=1500 -400 400 f3=-600 80 | |||
length 100 | |||
lengthmod 7 | |||
beforenotvowel r/2 | |||
beforenotvowel r/2 | |||
formants vwl_fr/@R3+r3/rx%30 | |||
after (e) vwl_fr/@R4+r3/rx%15 | |||
after (u) vwl_fr/@R4+r3/rx%15 | |||
after wA vwl_fr/@R4+r3/rx%20 | |||
before (i) r/rr | |||
endphoneme | |||
@@ -439,7 +446,8 @@ endphoneme | |||
phoneme R // for beginning of words | |||
vcd rfx flp | |||
vowelin f1=0 f2=800 -50 50 f3=-100 80 | |||
vowelin f1=0 f2=800 -50 50 f3=-100 80 len=40 | |||
vowelout f1=0 f2=1500 -400 400 f3=-600 80 | |||
length 100 | |||
lengthmod 7 | |||
beforenotvowel r/2 | |||
@@ -453,7 +461,7 @@ endphoneme | |||
phoneme R2 // After consonnants | |||
vcd rfx frc | |||
vowelin f1=0 f2=800 -50 50 f3=-100 80 | |||
vowelin f1=0 f2=800 -50 50 f3=-100 80 len=40 | |||
length 100 | |||
lengthmod 7 | |||
beforenotvowel r/2 | |||
@@ -466,10 +474,10 @@ endphoneme | |||
phoneme r/2 // variant of [r] when not preceding a vowel | |||
vcd rfx frc | |||
vowelout f1=0 f2=800 -50 50 f3=-600 80 len=40 | |||
vowelout f1=0 f2=800 -50 50 f3=-600 80 | |||
length 100 | |||
lengthmod 2 | |||
formants r3/r_+r3/rx%35 | |||
formants r3/r_2+r3/rx%40 | |||
after _ r/rr | |||
after t r/trr | |||
after p r/trr |
@@ -225,6 +225,7 @@ phoneme (@) virtual | |||
after n^ n^/n^@ | |||
before l/ DFT-60+l/L1_@L | |||
before l/2 DFT-60+l/L2_@L | |||
before l/3 DFT+l/l_@ | |||
before l DFT-50+l/xl | |||
before w DFT-30+w/xw | |||
before j DFT-30+j/xj | |||
@@ -248,6 +249,7 @@ phoneme (a) virtual | |||
after n^ n^/n^a | |||
before l/ DFT-40+l/L1_aL | |||
before l/2 DFT-50+l/L2_aL | |||
before l/3 DFT+l/l_a | |||
before l DFT-40+l/xl | |||
before w DFT-30+w/xw | |||
before j DFT-30+j/xj | |||
@@ -271,6 +273,7 @@ phoneme (e) virtual | |||
after n^ n^/n^e | |||
before l/ DFT-30+l/L1_eL | |||
before l/2 DFT-40+l/L2_eL | |||
before l/3 DFT+l/l_e | |||
before l DFT-40+l/xl | |||
before w DFT-30+w/xw | |||
before j DFT-30+j/xj | |||
@@ -294,6 +297,7 @@ phoneme (i) virtual | |||
after n^ n^/n^i | |||
before l/ DFT-30+l/L1_iL | |||
before l/2 DFT-30+l/L2_iL | |||
before l/3 DFT+l/l_i | |||
before N DFT-40+nn/inn | |||
before ; DFT-40+j2/xj2 | |||
before l DFT-40+l/xl | |||
@@ -317,6 +321,7 @@ phoneme (o) virtual | |||
after n^ n^/n^o | |||
before l/ DFT-40+l/L1_oL | |||
before l/2 DFT-50+l/L2_oL | |||
before l/3 DFT+l/l_o | |||
before l DFT-40+l/xl | |||
before w DFT-30+w/xw | |||
before j DFT-30+j/xj | |||
@@ -340,6 +345,7 @@ phoneme (u) virtual | |||
after n^ n^/n^u | |||
before l/ DFT-40+l/L1_uL | |||
before l/2 DFT-40+l/L2_uL | |||
before l/3 DFT-20+l/l_u | |||
before l DFT-40+l/xl | |||
before w DFT-30+w/xw | |||
before j DFT-30+j/xj | |||
@@ -450,6 +456,15 @@ phoneme l/ // used for [l] when not before a vowel | |||
beforevowel l | |||
endphoneme | |||
phoneme l/3 // used for [l] when not before a vowel | |||
liquid | |||
length 100 | |||
lengthmod 7 | |||
formants l/l_ | |||
before (r) l/_l | |||
beforevowel l | |||
endphoneme | |||
phoneme l/2 // 'dark' [l] after a vowel | |||
liquid | |||
@@ -602,6 +617,14 @@ phoneme ** // TEST flap | |||
endphoneme | |||
phoneme r. // retroflex | |||
liquid rfx | |||
vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 | |||
vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20 | |||
formants r3/@tap_rfx | |||
lengthmod 3 | |||
endphoneme | |||
//******************************************************************* | |||
// VOICED STOPS |
@@ -601,6 +601,8 @@ int Compile::LoadSpect(const char *path, int control) | |||
int rms; | |||
float total; | |||
float pkheight; | |||
int marker1_set=0; | |||
int frame_vowelbreak; | |||
SpectFrame *fr; | |||
wxString path_sep = _T("/"); | |||
@@ -651,6 +653,16 @@ for(ix=0; ix<8; ix++) | |||
if(spectseq->frames[frame]->keyframe) | |||
{ | |||
if(seq_out.n_frames == 1) | |||
{ | |||
frame_vowelbreak = frame; | |||
} | |||
if(spectseq->frames[frame]->markers & 0x2) | |||
{ | |||
// marker 1 is set | |||
marker1_set = 1; | |||
} | |||
seq_out.n_frames++; | |||
if(frame > 0) | |||
total += spectseq->frames[frame-1]->length; | |||
@@ -658,10 +670,11 @@ for(ix=0; ix<8; ix++) | |||
} | |||
seq_out.length = int(total); | |||
if((control & 1) && (spectseq->numframes > 2)) | |||
if((control & 1) && (marker1_set == 0)) | |||
{ | |||
// This is a vowel, but no Vowel Break marker is set | |||
// set a marker flag for the second frame of a vowel | |||
spectseq->frames[1]->markers |= FRFLAG_VOWEL_CENTRE; | |||
spectseq->frames[frame_vowelbreak]->markers |= FRFLAG_VOWEL_CENTRE; | |||
} | |||
ix = 0; |
@@ -47,7 +47,7 @@ static const char *help_text = | |||
"-p <integer>\n" | |||
"\t Pitch adjustment, 0 to 99, default is 50\n" | |||
"-s <integer>\n" | |||
"\t Speed in words per minute, 80 to 370, default is 170\n" | |||
"\t Speed in words per minute, 80 to 390, default is 170\n" | |||
"-v <voice name>\n" | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" |
@@ -81,7 +81,7 @@ static const char *help_text = | |||
"-p <integer>\n" | |||
"\t Pitch adjustment, 0 to 99, default is 50\n" | |||
"-s <integer>\n" | |||
"\t Speed in words per minute 80 to 370, default is 170\n" | |||
"\t Speed in words per minute 80 to 390, default is 170\n" | |||
"-v <voice name>\n" | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" |
@@ -113,7 +113,7 @@ static const char *help_text = | |||
"-p <integer>\n" | |||
"\t Pitch adjustment, 0 to 99, default is 50\n" | |||
"-s <integer>\n" | |||
"\t Speed in words per minute 80 to 370, default is 170\n" | |||
"\t Speed in words per minute 80 to 390, default is 170\n" | |||
"-v <voice name>\n" | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.39.05 22.Sep.08"; | |||
const char *version_string = "1.39.07 27.Sep.08"; | |||
const int version_phdata = 0x013900; | |||
int option_device_number = -1; |
@@ -95,8 +95,7 @@ void SetIndicLetters(Translator *tr) | |||
static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | |||
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | |||
SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4c); // vowel signs | |||
SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters only | |||
SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama | |||
SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | |||
SetLetterBits(tr,LETTERGP_C,dev_consonants2); // additional consonants |
@@ -381,6 +381,8 @@ void FindPhonemesUsed(void) | |||
char *next; | |||
unsigned char c; | |||
int count = 0; | |||
int ignore; | |||
char phonetic[N_WORD_PHONEMES]; | |||
// look through all the phoneme strings in the **_rules data | |||
// and mark these phoneme codes as used. | |||
@@ -419,21 +421,37 @@ void FindPhonemesUsed(void) | |||
p += (strlen(p)+1); | |||
} | |||
while((((c = *p) != RULE_PHONEMES)) && (c != 0)) p++; | |||
while((c = *p) != 0) | |||
{ | |||
if(c == RULE_CONDITION) | |||
p++; // next byte is the condition number, which may be 3 (= RULE_PHONEMES) | |||
if(c == RULE_PHONEMES) | |||
break; | |||
p++; | |||
} | |||
count++; | |||
if(c == RULE_PHONEMES) | |||
{ | |||
ignore = 0; | |||
start = p; | |||
p++; | |||
while(*p != 0) | |||
while((c = *p) != 0) | |||
{ | |||
phoneme_tab_flags[*p & 0xff] |= 2; | |||
if(c == phonSWITCH) | |||
ignore = 1; | |||
if(ignore == 0) | |||
phoneme_tab_flags[c] |= 2; | |||
p++; | |||
} | |||
} | |||
p++; | |||
} | |||
// NOTE, we should recognise langopts.textmode and ignore the *_list file (lang=zh) | |||
for(hash=0; hash<N_HASH_DICT; hash++) | |||
{ | |||
p = translator->dict_hashtab[hash]; | |||
@@ -446,11 +464,33 @@ void FindPhonemesUsed(void) | |||
if((p[1] & 0x80) == 0) | |||
{ | |||
p += ((p[1] & 0x3f) + 2); | |||
while(*p != 0) | |||
strcpy(phonetic,p); | |||
p += strlen(phonetic) +1; | |||
// examine flags | |||
ignore = 0; | |||
while(p < next) | |||
{ | |||
phoneme_tab_flags[*p & 0xff] |= 2; | |||
if(*p == BITNUM_FLAG_TEXTMODE) | |||
{ | |||
ignore = 1; | |||
break; | |||
} | |||
p++; | |||
} | |||
if(ignore == 0) | |||
{ | |||
p = phonetic; | |||
while((c = *p) != 0) | |||
{ | |||
if(c == phonSWITCH) | |||
break; | |||
phoneme_tab_flags[c] |= 2; | |||
p++; | |||
} | |||
} | |||
} | |||
p = next; | |||
} |
@@ -145,7 +145,7 @@ int wcmdq_tail=0; | |||
// pitch,speed, | |||
int embedded_default[N_EMBEDDED_VALUES] = {0,50,170,100,50, 0,0, 0,170,0,0,0,0,0}; | |||
static int embedded_max[N_EMBEDDED_VALUES] = {0,0x7fff,400,300,99,99,99, 0,360,0,0,0,0,4}; | |||
static int embedded_max[N_EMBEDDED_VALUES] = {0,0x7fff,600,300,99,99,99, 0,600,0,0,0,0,4}; | |||
#define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word | |||
int current_source_index=0; |