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
constantia $2 | constantia $2 | ||||
christiana kr@stij'A:na | christiana kr@stij'A:na | ||||
damaskus d@maskWs | damaskus d@maskWs | ||||
djakarta dZak'arta | |||||
doebaai $2 | doebaai $2 | ||||
duitswes dYytsv'Es | duitswes dYytsv'Es | ||||
ermelo &rm@lo@ | ermelo &rm@lo@ | ||||
springs _^_EN $capital | springs _^_EN $capital | ||||
sunnyside _^_EN | sunnyside _^_EN | ||||
swellendam $3 | swellendam $3 | ||||
tokio to@kiu | |||||
tunisië $2 | tunisië $2 | ||||
turkye $2 | turkye $2 | ||||
ulundi ul'undi | ulundi ul'undi | ||||
harry _^_EN | harry _^_EN | ||||
havenga hA:f@Nx2a | havenga hA:f@Nx2a | ||||
haydn hAId@n | haydn hAId@n | ||||
helen _^_EN | |||||
helena hil'e@na | helena hil'e@na | ||||
helloïse hEluw'i:z | helloïse hEluw'i:z | ||||
henry _^_EN | henry _^_EN | ||||
martha marta | martha marta | ||||
martin m'A:rt@n | martin m'A:rt@n | ||||
mary _^_EN | mary _^_EN | ||||
matteus mat'i:Ws | |||||
matthéüs mat'i:Ws | matthéüs mat'i:Ws | ||||
mefistofeles mEfist'o@f@l@s | mefistofeles mEfist'o@f@l@s | ||||
melanie m@lA:ni | melanie m@lA:ni | ||||
dikwels dIkv@ls | dikwels dIkv@ls | ||||
diplomasie d@plo@mas'i | diplomasie d@plo@mas'i | ||||
doktore $2 | doktore $2 | ||||
doyen dO:j'En | |||||
dubbelken dWb@lkEn | dubbelken dWb@lkEn | ||||
dusver dWsf&r | dusver dWsf&r | ||||
genade $2 | genade $2 | ||||
genesis x2e@n@s@s | genesis x2e@n@s@s | ||||
//gesamentlik x2@sA:m@ntl@k | //gesamentlik x2@sA:m@ntl@k | ||||
globale x2lo@b'A:l@ | |||||
gooi x2OI | gooi x2OI | ||||
gomorra x2@mOra | gomorra x2@mOra | ||||
graffiti graf'iti | graffiti graf'iti | ||||
insomnia @nsOmnija | insomnia @nsOmnija | ||||
intens @nt'Ens | intens @nt'Ens | ||||
intensiteit $4 | intensiteit $4 | ||||
ironieë irun'i:@ | |||||
jawoord jA:vo@rt | jawoord jA:vo@rt | ||||
jupiter jupit@r | jupiter jupit@r |
Dictionary de_dict | Dictionary de_dict | ||||
3 @ @- a A A: aI aU | 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 | * : ; b C C2 d D | ||||
dZ f g h j k l m | dZ f g h j k l m | ||||
0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
a a2 A: A@ aa aI aI@ aU | 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 | Dictionary eo_dict | ||||
O2 O~ u u: W W2 w^i wA | O2 O~ u u: W W2 w^i wA | ||||
W~ y Y | 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 | Dictionary grc_dict | ||||
Dictionary hbs_dict | Dictionary hbs_dict | ||||
& @ @2 a A a: aI aU | & @ @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 | * ; b d dZ dZ; f g | ||||
h j k l L l^ m n | h j k l L l^ m n | ||||
- : b c ch d d. f | - : b c ch d d. f | ||||
g h H j J k kh l | g h H j J k kh l | ||||
l. m n N n. n^ p ph | 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 | Dictionary hu_dict | ||||
Dictionary mk_dict | Dictionary mk_dict | ||||
& @ @- @2 a A a: E | & @ @- @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 | * b d dZ dZ; f g h | ||||
j k k^ l l^ m n N | j k k^ l l^ m n N | ||||
g h j k l l^ m n | g h j k l l^ m n | ||||
N n^ p Q r R r- s | N n^ p Q r R r- s | ||||
S s# s; t T tS ts v | S s# s; t T tS ts v | ||||
w w2 x z Z | |||||
w x z Z | |||||
Dictionary ro_dict | Dictionary ro_dict | ||||
o o- ou u u@ ua uai uei | o o- ou u u@ ua uai uei | ||||
uo y y& y@ yE yi yu | 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 | Dictionary zhy_dict | ||||
Dictionary bn_dict | 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 | ** b c ch d d. e[ g | ||||
h j J k kh l m n | 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 |
// ?5 split [3:] er [3:], ir [IR], ur [VR] | // ?5 split [3:] er [3:], ir [IR], ur [VR] | ||||
// ?6 'one' = [wVn], 'of' = [Vv] | // ?6 'one' = [wVn], 'of' = [Vv] | ||||
// ?7 Scottish | // ?7 Scottish | ||||
// ?8 Use full vowel, not schwa in some word endings | |||||
// letter names, as they are spoken as a single character in text | // letter names, as they are spoken as a single character in text | ||||
// precede by _ to distinguish from pronunciation as a language word | // precede by _ to distinguish from pronunciation as a language word | ||||
holme hoUm | holme hoUm | ||||
holster hoUlst3 | holster hoUlst3 | ||||
holy hoUlI2 | holy hoUlI2 | ||||
homeowner hoUmoUn3 | |||||
homepage hoUmpeIdZ | homepage hoUmpeIdZ | ||||
hominem h0mInEm | hominem h0mInEm | ||||
hopi hoUpi: | hopi hoUpi: | ||||
laboratory la2b'0r@trI2 | laboratory la2b'0r@trI2 | ||||
labor leIb3 | labor leIb3 | ||||
labored leIb@d | labored leIb@d | ||||
laborer leIb@r3 | |||||
lager lA:g3 | lager lA:g3 | ||||
landowner l'and,oUn3 | landowner l'and,oUn3 | ||||
las ,las | las ,las | ||||
Cassandra k@sandr@ | Cassandra k@sandr@ | ||||
Cassey keIsI2 | Cassey keIsI2 | ||||
Catherine kaTrIn | Catherine kaTrIn | ||||
Cecile sEsi:l | |||||
Chris krIs | Chris krIs | ||||
Connor k0n3 | Connor k0n3 | ||||
Daphne dafnI2 | Daphne dafnI2 | ||||
Karen kar@n | Karen kar@n | ||||
Karene ka2ri:n | Karene ka2ri:n | ||||
Katherine kaTrIn | Katherine kaTrIn | ||||
Katie keItI2 | |||||
Kieran ki@r@n | Kieran ki@r@n | ||||
Laurence l0r@ns | Laurence l0r@ns | ||||
Lawrence l0r@ns | Lawrence l0r@ns |
de (creas di: | de (creas di: | ||||
de (crem dE | de (crem dE | ||||
de (du dI2 | de (du dI2 | ||||
_) de (emp d%i: | |||||
_) de (f@ dI2 | _) de (f@ dI2 | ||||
de (fect_ di: | de (fect_ di: | ||||
de (finit dE | de (finit dE | ||||
sp) e (cia E | sp) e (cia E | ||||
sp) e (cies i: | sp) e (cies i: | ||||
_) e (cl I2 | _) e (cl I2 | ||||
@) e (ctive 'E | |||||
_) eco (s i:koU | _) eco (s i:koU | ||||
econo (m Ik'0n@ | econo (m Ik'0n@ | ||||
econo (mic i:k@n'0 | econo (mic i:k@n'0 | ||||
am) it (e aIt | am) it (e aIt | ||||
un) it (e aIt | un) it (e aIt | ||||
_sp) it (e aIt | _sp) it (e aIt | ||||
wr) it (e aIt | |||||
wr) ite aIt | |||||
_s) it (e aIt | _s) it (e aIt | ||||
x) ite (_ aIt | x) ite (_ aIt | ||||
it (erat It | it (erat It | ||||
l) it (er It | l) it (er It | ||||
wr) it (er aIt | |||||
ithe_ aID | ithe_ aID | ||||
l) ithe aID | l) ithe aID | ||||
l) ith (er ID | l) ith (er ID | ||||
?8 &s) tion tSVn | ?8 &s) tion tSVn | ||||
tion (al S=@-n | tion (al S=@-n | ||||
&) tious S=@s | &) tious S=@s | ||||
AC) tive (_ =tIv | |||||
for) tuna (t tS@n@ | for) tuna (t tS@n@ | ||||
s) t (l | s) t (l | ||||
to (morr t@ | to (morr t@ | ||||
n) uclear ju:kli@3 | n) uclear ju:kli@3 | ||||
?3 n) ucle u:klI | ?3 n) ucle u:klI | ||||
?3 n) uclear u:kli@3 | ?3 n) uclear u:kli@3 | ||||
@) u (ctive 'V | |||||
@) u (da_ 'ju: | @) u (da_ 'ju: | ||||
u (guC V | u (guC V | ||||
f) u (gal 'ju: | f) u (gal 'ju: | ||||
earb) y (_ aI | earb) y (_ aI | ||||
h) y (Cr aI | h) y (Cr aI | ||||
c) y (lin I | c) y (lin I | ||||
c) y (r I | |||||
th) y (l_ aI | th) y (l_ aI | ||||
fl) y aI | fl) y aI | ||||
gl) y (ph I | gl) y (ph I |
// 2006-11-18 Gilles Casse <[email protected]> | // 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. | // * Numbers, a few abbreviations and exceptions. | ||||
// | // | ||||
_brv bR'Ev | _brv bR'Ev | ||||
_ced sed'ij | _ced sed'ij | ||||
_cir aksA~sirkO~fl'Eks | _cir aksA~sirkO~fl'Eks | ||||
_dia tR@m'a | |||||
_dia tRem'a | |||||
_dot pwE~syskr'i | _dot pwE~syskr'i | ||||
_grv aksA~gr'av | _grv aksA~gr'av | ||||
_hac kar'O~ | _hac kar'O~ | ||||
(chef d'oeuvre) chédeuvre $text | (chef d'oeuvre) chédeuvre $text | ||||
(chef d'oeuvres) chédeuvres $text | (chef d'oeuvres) chédeuvres $text | ||||
choeur kWr | choeur kWr | ||||
cocus coky | |||||
converter converteur $text | |||||
cocus koky | |||||
dernier dE2rnjer2 | dernier dE2rnjer2 | ||||
éloquent ElokA~t2 | éloquent ElokA~t2 | ||||
fier fier $verb | fier fier $verb | ||||
brut br'yt | brut br'yt | ||||
but by $verb | but by $verb | ||||
but byt | but byt | ||||
cut cWt | |||||
cut kWt | |||||
mazout mazut | mazout mazut | ||||
michael mikaEl | michael mikaEl | ||||
out aut | out aut |
// 2006-11-18 Gilles Casse <[email protected]> | // 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: | // Letter classes: | ||||
Cr) eamer i:mWr | Cr) eamer i:mWr | ||||
Cl) eaner i:nWr | Cl) eaner i:nWr | ||||
Ack) et (_ Et | Ack) et (_ Et | ||||
vert) e (rX W | |||||
eïn (_ 'Ein | eïn (_ 'Ein | ||||
ट t.@ | ट t.@ | ||||
ठ t.h@ | ठ t.h@ | ||||
ड d.@ | ड d.@ | ||||
ड़ r.@ | |||||
ढ d.h@ | ढ d.h@ | ||||
ण n.@ // should be n.@ | |||||
ण n.@ // retroflex n.@ | |||||
त t@ | त t@ | ||||
थ th@ | थ th@ | ||||
द d@ | द d@ | ||||
ळ l.@ | ळ l.@ | ||||
व v@ | व v@ | ||||
श S@ | श S@ | ||||
ष s.@ // should be retroflex [S] | |||||
ष s.@ // retroflex [S] | |||||
स s@ | स s@ | ||||
ह H@ | ह H@ | ||||
क़ q@ | क़ q@ |
ड (B d. | ड (B d. | ||||
?1 ड (_ d. | ?1 ड (_ d. | ||||
ड़ r.V | |||||
ड़ (B r. | |||||
?1 ड़ (_ r. | |||||
.group ढ | .group ढ | ||||
ढ d.hV | ढ d.hV | ||||
ढ (B d.h | ढ (B d.h | ||||
?1 ढ (_ 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 ण | .group ण | ||||
ण n.V // (temporary) same as dental [n] | ण n.V // (temporary) same as dental [n] | ||||
?1 ज़ (_ z | ?1 ज़ (_ z | ||||
.group ड़ // dddha (should retroflex flap) | .group ड़ // dddha (should retroflex flap) | ||||
ड़ r-V | |||||
ड़ (B r- | |||||
?1 ड़ (_ r- | |||||
ड़ r.V | |||||
ड़ (B r. | |||||
?1 ड़ (_ r. | |||||
.group ढ़ // rha (aspirated version of dddha) | .group ढ़ // rha (aspirated version of dddha) | ||||
ढ़ hrV | |||||
ढ़ (B hr | |||||
?1 ढ़ (_ hr | |||||
ढ़ r.hV | |||||
ढ़ (B r.h | |||||
?1 ढ़ (_ r.h | |||||
.group फ़ // fa | .group फ़ // fa | ||||
फ़ fV | फ़ fV |
53 phoneme tables | 53 phoneme tables | ||||
new total | 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 | Data file Used by | ||||
b/b [b] base | b/b [b] base | ||||
[l;] ro | [l;] ro | ||||
l/_l [l] base | l/_l [l] base | ||||
[l/] base | [l/] base | ||||
[l/3] base | |||||
[l] en | [l] en | ||||
[l] en_wi | [l] en_wi | ||||
[l] af | [l] af | ||||
[l;] ro | [l;] ro | ||||
[l] zh | [l] zh | ||||
l/l_ [l/] base | l/l_ [l/] base | ||||
[l/3] base | |||||
[l/] fr | [l/] fr | ||||
l/l_@ [@] fr | |||||
l/l_@ [(@)] base | |||||
[@] fr | |||||
[W] fr | [W] fr | ||||
[Y] fr | [Y] fr | ||||
[@2] fr | [@2] fr | ||||
[oU] en_sc | [oU] en_sc | ||||
l/L2_uL [(u)] base | l/L2_uL [(u)] base | ||||
[u:] en | [u:] en | ||||
[u:] en_n | |||||
[u:] en_rp | [u:] en_rp | ||||
l/l_3 [l/] de | l/l_3 [l/] de | ||||
l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
l/la [(a)] base | l/la [(a)] base | ||||
[a] fr | [a] fr | ||||
[a2] fr | [a2] fr | ||||
l/l_a [a] fr | |||||
l/l_a [(a)] base | |||||
[a] fr | |||||
[a2] fr | [a2] fr | ||||
[wA] fr | [wA] fr | ||||
[A~] fr | [A~] fr | ||||
[E] fr | [E] fr | ||||
[e] fr | [e] fr | ||||
[E2] fr | [E2] fr | ||||
l/l_e [E] fr | |||||
l/l_e [(e)] base | |||||
[E] fr | |||||
[E2] fr | [E2] fr | ||||
l/L_eL_af [&] af | l/L_eL_af [&] af | ||||
[&:] af | [&:] af | ||||
[i] fr | [i] fr | ||||
[i:] fr | [i:] fr | ||||
[l] zh | [l] zh | ||||
l/l_i [i] fr | |||||
l/l_i [(i)] base | |||||
[i] fr | |||||
[i:] fr | [i:] fr | ||||
[w^i] fr | [w^i] fr | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[O2] fr | [O2] fr | ||||
[o2] fr | [o2] fr | ||||
[wA] fr | [wA] fr | ||||
l/l_o [O] fr | |||||
l/l_o [(o)] base | |||||
[O] fr | |||||
[O2] fr | [O2] fr | ||||
[o2] fr | [o2] fr | ||||
l^/l_rfx [l.] hi | l^/l_rfx [l.] hi | ||||
[y] fr | [y] fr | ||||
[u:] fr | [u:] fr | ||||
[w^i] fr | [w^i] fr | ||||
l/l_u [u] fr | |||||
l/l_u [(u)] base | |||||
[u] fr | |||||
[u:] fr | [u:] fr | ||||
l/l_y [y] fr | l/l_y [y] fr | ||||
l/tl [l] base | l/tl [l] base | ||||
r2/r2u [(u)] base | r2/r2u [(u)] base | ||||
r3/r_ [r/] base | r3/r_ [r/] base | ||||
[r/] af | [r/] af | ||||
[r/2] fr | |||||
[r/] ru | [r/] ru | ||||
r3/r_@ [(@)] base | r3/r_@ [(@)] base | ||||
r3/r#_ [r#] is | r3/r#_ [r#] is | ||||
r3/r_2 [r/2] fr | |||||
r3/r_a [(a)] base | r3/r_a [(a)] base | ||||
r3/r_e [(e)] base | r3/r_e [(e)] base | ||||
[E] fr | |||||
r3/r_i [(i)] base | r3/r_i [(i)] base | ||||
[i] fr | [i] fr | ||||
[w^i] fr | [w^i] fr | ||||
[r] ko | [r] ko | ||||
r3/@tap2 [**] base | r3/@tap2 [**] base | ||||
[r] ko | [r] ko | ||||
r3/@tap_rfx [r.] base | |||||
r/a_ [r] da | r/a_ [r] da | ||||
r/r [r] base | r/r [r] base | ||||
[r-] base | [r-] base | ||||
[r/] af | [r/] af | ||||
[r] de | [r] de | ||||
[r] fi | [r] fi | ||||
[r] fr | |||||
[r/2] fr | [r/2] fr | ||||
[r2] nl | [r2] nl | ||||
[r] ru | [r] ru | ||||
[(i)] base | [(i)] base | ||||
[(o)] base | [(o)] base | ||||
[(u)] base | [(u)] base | ||||
[@] fr | |||||
[Y] fr | [Y] fr | ||||
[e] fr | [e] fr | ||||
[i] fr | [i] fr | ||||
[o] fr | |||||
[u] fr | [u] fr | ||||
[y] fr | |||||
[@2] fr | |||||
[a2] fr | [a2] fr | ||||
[o2] fr | |||||
[i:] fr | [i:] fr | ||||
[u:] fr | [u:] fr | ||||
[A~] fr | [A~] fr | ||||
[e@] en_sc | [e@] en_sc | ||||
[e@] en_wi | [e@] en_wi | ||||
vdiph2/ea [ea] ro | vdiph2/ea [ea] ro | ||||
vdiph2/ee_@ [e@] en_n | |||||
vdiph2/ei_2 [eI] en_rp | |||||
vdiph2/ei_3 [i:] en_wm | vdiph2/ei_3 [i:] en_wm | ||||
vdiph2/ei_4 [eI] en_us | vdiph2/ei_4 [eI] en_us | ||||
[ei] zh | [ei] zh | ||||
vdiph2/uw_6 [y] ko | vdiph2/uw_6 [y] ko | ||||
vdiph2/y@ [y@] zh | vdiph2/y@ [y@] zh | ||||
vdiph2/y#@ [Y@] af | vdiph2/y#@ [Y@] af | ||||
vdiph2/yE [yE] sq | |||||
vdiph2/ye [yE] sq | |||||
vdiph2/yu [yU] nl | vdiph2/yu [yU] nl | ||||
[yu] zh | [yu] zh | ||||
vdiph2/y-y# [yY] fi | vdiph2/y-y# [yY] fi | ||||
vdiph/eei_2 [eI] eo | vdiph/eei_2 [eI] eo | ||||
[ei] fi | [ei] fi | ||||
[eI] id | [eI] id | ||||
vdiph/eei_3 [eI] en_rp | |||||
[eI] sk | |||||
vdiph/eei_3 [eI] sk | |||||
[eI] ku | [eI] ku | ||||
vdiph/eeu [EU] pt | vdiph/eeu [EU] pt | ||||
[EU] grc | [EU] grc | ||||
[e] it | [e] it | ||||
[e:] sv | [e:] sv | ||||
[e:] no | [e:] no | ||||
vowel/e_3 [e:] hu | |||||
vowel/e_3 [i] en_n | |||||
[e:] hu | |||||
[e] ku | [e] ku | ||||
vowel/e_5 [i] en_sc | vowel/e_5 [i] en_sc | ||||
vowel/ee [E] sv | |||||
vowel/ee [E] en_n | |||||
[E] sv | |||||
vowel/e_e [E] en_sc | vowel/e_e [E] en_sc | ||||
[e] is | [e] is | ||||
vowel/ee# [E#] pl | vowel/ee# [E#] pl | ||||
vowel/ee_1 [E] base2 | vowel/ee_1 [E] base2 | ||||
[e@] en | [e@] en | ||||
[e@] en_n | |||||
[E] pl | [E] pl | ||||
[E] la | [E] la | ||||
[E] grc | [E] grc | ||||
[&:] af | [&:] af | ||||
[E] pt | [E] pt | ||||
[E] vi | [E] vi | ||||
vowel/ee_6 [E] en_n | |||||
[&] sk | |||||
vowel/ee_6 [&] sk | |||||
[E3] sv | [E3] sv | ||||
[E] ku | [E] ku | ||||
vowel/e_mid [E] en_rp | vowel/e_mid [E] en_rp | ||||
[e] jbo | [e] jbo | ||||
[E] fr | [E] fr | ||||
[e] fr | |||||
[E2] fr | [E2] fr | ||||
[E] fr_ca | [E] fr_ca | ||||
[E] hi | [E] hi | ||||
[@] hr | [@] hr | ||||
vowel/i [i] base2 | vowel/i [i] base2 | ||||
[i:] en_n | [i:] en_n | ||||
[i:] en_rp | |||||
[i] en_wm | [i] en_wm | ||||
[i] en_wi | [i] en_wi | ||||
[i:] cy | [i:] cy | ||||
[i#] rw | [i#] rw | ||||
[i] ko | [i] ko | ||||
[i:] ml | [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:] de | ||||
[i] nl | [i] nl | ||||
[i:] la | [i:] la | ||||
vowel/i_fnt [i:] en_wi | vowel/i_fnt [i:] en_wi | ||||
[i] hi | [i] hi | ||||
[i:] hi | [i:] hi | ||||
vowel/ii [I] en_rp | |||||
vowel/ii [I] en_n | |||||
[I2] en_n | |||||
[I] en_rp | |||||
[I2] en_rp | [I2] en_rp | ||||
[I] en_wm | [I] en_wm | ||||
[I2] en_wm | [I2] en_wm | ||||
[I] tr | [I] tr | ||||
vowel/ii_4 [I] en | vowel/ii_4 [I] en | ||||
[I2] en | [I2] en | ||||
[I] en_n | |||||
[i] en_n | |||||
[I2] en_n | |||||
[I] en_us | [I] en_us | ||||
[I2] en_us | [I2] en_us | ||||
vowel/ii_5 [I] en_wi | vowel/ii_5 [I] en_wi | ||||
[i/] pt | [i/] pt | ||||
vowel/ii_en [i] en | vowel/ii_en [i] en | ||||
vowel/ii_final [i] en_us | vowel/ii_final [i] en_us | ||||
[i] en_rp | |||||
vowel/@_low [3] en_rp | vowel/@_low [3] en_rp | ||||
[@] en_rp | [@] en_rp | ||||
[@2] en_rp | [@2] en_rp | ||||
[@] id | [@] id | ||||
vowel/o [o] base2 | vowel/o [o] base2 | ||||
[o:] en | [o:] en | ||||
[oU] en_n | |||||
[oU] en_wi | [oU] en_wi | ||||
[o:] de | [o:] de | ||||
[o] hi | [o] hi | ||||
vowel/o_3 [oU] en_sc | vowel/o_3 [oU] en_sc | ||||
[o] fr | [o] fr | ||||
vowel/o-_3 [U] en_rp | vowel/o-_3 [U] en_rp | ||||
vowel/o_4 [oU] en_n | |||||
vowel/o-_4 [o] ro | vowel/o-_4 [o] ro | ||||
vowel/o_5 [O] nl | vowel/o_5 [O] nl | ||||
[O] da | [O] da | ||||
vowel/u_bck2 [u:] la | vowel/u_bck2 [u:] la | ||||
vowel/u_fnt [u:] en_rp | vowel/u_fnt [u:] en_rp | ||||
vowel/uu [U] en | vowel/uu [U] en | ||||
[U] en_n | |||||
[U] en_wm | [U] en_wm | ||||
vowel/uu# [U] ku | vowel/uu# [U] ku | ||||
vowel/uu_2 [U] base2 | vowel/uu_2 [U] base2 | ||||
[y] zh | [y] zh | ||||
vowel/uu_4 [U] fi | vowel/uu_4 [U] fi | ||||
[U] sv | [U] sv | ||||
vowel/uu_bck [U] en_n | |||||
[U] en_wi | |||||
vowel/uu_bck [U] en_wi | |||||
[U] fr_ca | [U] fr_ca | ||||
[U] hi | [U] hi | ||||
[u] hu | [u] hu | ||||
vwl_en_n/aa_5 [A@] en_n | vwl_en_n/aa_5 [A@] en_n | ||||
vwl_en_n/O@ [O@] en_n | vwl_en_n/O@ [O@] en_n | ||||
[o@] en_n | [o@] en_n | ||||
vwl_en_n/u_ [u:] en_n | |||||
vwl_en/ooi@ [aI@] en_wm | vwl_en/ooi@ [aI@] en_wm | ||||
vwl_en_rp/aa [A:] en_rp | vwl_en_rp/aa [A:] en_rp | ||||
[A@] en_rp | [A@] en_rp | ||||
vwl_en_rp/i@ [i@] en_rp | vwl_en_rp/i@ [i@] en_rp | ||||
vwl_en_rp/oo [U@] en_rp | vwl_en_rp/oo [U@] en_rp | ||||
vwl_en/u_L [u:] en | vwl_en/u_L [u:] en | ||||
[u:] en_n | |||||
[u:] en_rp | [u:] en_rp | ||||
vwl_en_us/3_us [3] en_us | vwl_en_us/3_us [3] en_us | ||||
vwl_en_us/3_us2 [3:] en_us | vwl_en_us/3_us2 [3:] en_us | ||||
vwl_fr/@R4 [R] fr | vwl_fr/@R4 [R] fr | ||||
[r] fr | [r] fr | ||||
[r2] fr | [r2] fr | ||||
vwl_fr/ri [i] fr | |||||
vwl_fr/r_e [E] fr | |||||
vwl_fr/r_u [u] fr | vwl_fr/r_u [u] fr | ||||
vwl_fr/r_y [y] fr | |||||
vwl_fr/w_a [wA] fr | vwl_fr/w_a [wA] fr | ||||
vwl_hi/A [a:] hi | vwl_hi/A [a:] hi | ||||
vwl_hi/l-voc [l-] jbo | vwl_hi/l-voc [l-] jbo |
phoneme E | phoneme E | ||||
vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
length 150 | length 150 | ||||
formants vowel/ee_6 | |||||
formants vowel/ee | |||||
reduceto I 0 | reduceto I 0 | ||||
// before l/ DFT-30+L/eL_af | // before l/ DFT-30+L/eL_af | ||||
endphoneme | endphoneme | ||||
phoneme I | phoneme I | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 130 | 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 ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme i // optional variant of [I] for end of words | phoneme i // optional variant of [I] for end of words | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 220 | |||||
formants vowel/ii_4 | |||||
length 150 | |||||
formants vowel/e_3 | |||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme 0 | phoneme 0 | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 140 | |||||
length 150 | |||||
formants vowel/0_2 | formants vowel/0_2 | ||||
reduceto @ 0 | reduceto @ 0 | ||||
endphoneme | endphoneme | ||||
phoneme U | phoneme U | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 150 | |||||
formants vowel/uu_bck | |||||
length 170 | |||||
formants vowel/uu | |||||
endphoneme | endphoneme | ||||
phoneme I2 | |||||
vowel starttype (i) endtype (i) | |||||
unstressed | |||||
length 140 | |||||
formants vowel/ii_4 | |||||
linkout ; | |||||
endphoneme | |||||
phoneme a2 | phoneme a2 | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 200 | length 200 | ||||
formants vdiph2/uw_4 | formants vdiph2/uw_4 | ||||
before _ vwl_en_n/u_ | |||||
before l/2 vwl_en/u_L-40+l/L2_uL | |||||
endphoneme | endphoneme | ||||
phoneme aU | phoneme aU | ||||
vowel starttype (a) endtype (u) | |||||
vowel starttype (e) endtype (u) | |||||
length 230 | length 230 | ||||
formants vdiph/eeu_3 | formants vdiph/eeu_3 | ||||
endphoneme | endphoneme | ||||
phoneme oU | phoneme oU | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 210 | |||||
formants vowel/o_4 | |||||
length 220 | |||||
formants vowel/o | |||||
endphoneme | endphoneme | ||||
phoneme e@ | phoneme e@ | ||||
vowel starttype (e) endtype (@) | vowel starttype (e) endtype (@) | ||||
length 220 | length 220 | ||||
formants vowel/ee_1 | |||||
formants vdiph2/ee_@ | |||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme i // optional variant of [I] for end of words | phoneme i // optional variant of [I] for end of words | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 140 | length 140 | ||||
formants vowel/i# | |||||
formants vowel/ii_final | |||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme aa // 'bath' etc. | phoneme aa // 'bath' etc. | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 190 | |||||
length 200 | |||||
formants vwl_en_rp/aa | formants vwl_en_rp/aa | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme i: | phoneme i: | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 175 | length 175 | ||||
formants vowel/i_2 | |||||
formants vowel/i | |||||
after w w/wi2 | after w w/wi2 | ||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme eI | phoneme eI | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 210 | length 210 | ||||
formants vdiph/eei_3 | |||||
formants vdiph2/ei_2 | |||||
// formants vdiph/eei_3 | |||||
endphoneme | endphoneme | ||||
length 170 | length 170 | ||||
formants vowel/@_hgh | formants vowel/@_hgh | ||||
before l/ DFT+l/l_@ | before l/ DFT+l/l_@ | ||||
before (r) DFT+r/xr | |||||
endphoneme | endphoneme | ||||
length 150 | length 150 | ||||
formants vowel/@_fr | formants vowel/@_fr | ||||
before l/ DFT+l/l_@ | before l/ DFT+l/l_@ | ||||
before (r) DFT+r/xr | |||||
before R DFT+r/xr | |||||
endphoneme | endphoneme | ||||
after l l/le-15 | after l l/le-15 | ||||
before l/ DFT-20+l/xl | before l/ DFT-20+l/xl | ||||
before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
before r2 vowel/e_mid-40+r/xr | |||||
endphoneme | endphoneme | ||||
formants vowel/e_mid | formants vowel/e_mid | ||||
after l l/le-15 | after l l/le-15 | ||||
before l/ DFT+l/l_e | before l/ DFT+l/l_e | ||||
before r/2 DFT+r3/r_e | |||||
before r/2 DFT+vwl_fr/r_e | |||||
reduceto E2 1 | reduceto E2 1 | ||||
endphoneme | endphoneme | ||||
formants vowel/i_3 | formants vowel/i_3 | ||||
linkout ; | linkout ; | ||||
after l l/li-15 | after l l/li-15 | ||||
after (r) vwl_fr/ri | |||||
before l/ DFT+l/l_i | before l/ DFT+l/l_i | ||||
before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
before r/2 DFT+r3/r_i | before r/2 DFT+r3/r_i | ||||
length 170 | length 170 | ||||
formants vowel/o_3 | formants vowel/o_3 | ||||
after l l/lo-10 | after l l/lo-10 | ||||
before (r) DFT+r/xr | |||||
endphoneme | endphoneme | ||||
formants vowel/o_2 | formants vowel/o_2 | ||||
after l l/lo-10 | after l l/lo-10 | ||||
before l/ DFT+l/l_o | before l/ DFT+l/l_o | ||||
before (r) DFT+r/xr | |||||
endphoneme | endphoneme | ||||
formants vowel/y_2 | formants vowel/y_2 | ||||
after l l/lu-20 | after l l/lu-20 | ||||
before l/ DFT-30+l/l_y | before l/ DFT-30+l/l_y | ||||
before (r) DFT+r/xr | |||||
before r/2 DFT+vwl_fr/r_y | |||||
endphoneme | endphoneme | ||||
formants vowel/y# | formants vowel/y# | ||||
after l l/l@-20 | after l l/l@-20 | ||||
before l/ DFT-20+l/l_@ | before l/ DFT-20+l/l_@ | ||||
before (r) DFT+r/xr | |||||
before r/2 DFT+r/xr-40 | before r/2 DFT+r/xr-40 | ||||
endphoneme | endphoneme | ||||
vowelout f1=0 f2=1500 -400 400 f3=-600 80 | vowelout f1=0 f2=1500 -400 400 f3=-600 80 | ||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/2 | |||||
beforenotvowel r/2 | |||||
formants vwl_fr/@R3+r3/rx%30 | formants vwl_fr/@R3+r3/rx%30 | ||||
after (e) vwl_fr/@R4+r3/rx%15 | after (e) vwl_fr/@R4+r3/rx%15 | ||||
after (u) vwl_fr/@R4+r3/rx%15 | after (u) vwl_fr/@R4+r3/rx%15 | ||||
after wA vwl_fr/@R4+r3/rx%20 | after wA vwl_fr/@R4+r3/rx%20 | ||||
before (i) r/rr | |||||
endphoneme | endphoneme | ||||
phoneme R // for beginning of words | phoneme R // for beginning of words | ||||
vcd rfx flp | 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 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/2 | beforenotvowel r/2 | ||||
phoneme R2 // After consonnants | phoneme R2 // After consonnants | ||||
vcd rfx frc | 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 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/2 | beforenotvowel r/2 | ||||
phoneme r/2 // variant of [r] when not preceding a vowel | phoneme r/2 // variant of [r] when not preceding a vowel | ||||
vcd rfx frc | 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 | length 100 | ||||
lengthmod 2 | lengthmod 2 | ||||
formants r3/r_+r3/rx%35 | |||||
formants r3/r_2+r3/rx%40 | |||||
after _ r/rr | after _ r/rr | ||||
after t r/trr | after t r/trr | ||||
after p r/trr | after p r/trr |
after n^ n^/n^@ | after n^ n^/n^@ | ||||
before l/ DFT-60+l/L1_@L | before l/ DFT-60+l/L1_@L | ||||
before l/2 DFT-60+l/L2_@L | before l/2 DFT-60+l/L2_@L | ||||
before l/3 DFT+l/l_@ | |||||
before l DFT-50+l/xl | before l DFT-50+l/xl | ||||
before w DFT-30+w/xw | before w DFT-30+w/xw | ||||
before j DFT-30+j/xj | before j DFT-30+j/xj | ||||
after n^ n^/n^a | after n^ n^/n^a | ||||
before l/ DFT-40+l/L1_aL | before l/ DFT-40+l/L1_aL | ||||
before l/2 DFT-50+l/L2_aL | before l/2 DFT-50+l/L2_aL | ||||
before l/3 DFT+l/l_a | |||||
before l DFT-40+l/xl | before l DFT-40+l/xl | ||||
before w DFT-30+w/xw | before w DFT-30+w/xw | ||||
before j DFT-30+j/xj | before j DFT-30+j/xj | ||||
after n^ n^/n^e | after n^ n^/n^e | ||||
before l/ DFT-30+l/L1_eL | before l/ DFT-30+l/L1_eL | ||||
before l/2 DFT-40+l/L2_eL | before l/2 DFT-40+l/L2_eL | ||||
before l/3 DFT+l/l_e | |||||
before l DFT-40+l/xl | before l DFT-40+l/xl | ||||
before w DFT-30+w/xw | before w DFT-30+w/xw | ||||
before j DFT-30+j/xj | before j DFT-30+j/xj | ||||
after n^ n^/n^i | after n^ n^/n^i | ||||
before l/ DFT-30+l/L1_iL | before l/ DFT-30+l/L1_iL | ||||
before l/2 DFT-30+l/L2_iL | before l/2 DFT-30+l/L2_iL | ||||
before l/3 DFT+l/l_i | |||||
before N DFT-40+nn/inn | before N DFT-40+nn/inn | ||||
before ; DFT-40+j2/xj2 | before ; DFT-40+j2/xj2 | ||||
before l DFT-40+l/xl | before l DFT-40+l/xl | ||||
after n^ n^/n^o | after n^ n^/n^o | ||||
before l/ DFT-40+l/L1_oL | before l/ DFT-40+l/L1_oL | ||||
before l/2 DFT-50+l/L2_oL | before l/2 DFT-50+l/L2_oL | ||||
before l/3 DFT+l/l_o | |||||
before l DFT-40+l/xl | before l DFT-40+l/xl | ||||
before w DFT-30+w/xw | before w DFT-30+w/xw | ||||
before j DFT-30+j/xj | before j DFT-30+j/xj | ||||
after n^ n^/n^u | after n^ n^/n^u | ||||
before l/ DFT-40+l/L1_uL | before l/ DFT-40+l/L1_uL | ||||
before l/2 DFT-40+l/L2_uL | before l/2 DFT-40+l/L2_uL | ||||
before l/3 DFT-20+l/l_u | |||||
before l DFT-40+l/xl | before l DFT-40+l/xl | ||||
before w DFT-30+w/xw | before w DFT-30+w/xw | ||||
before j DFT-30+j/xj | before j DFT-30+j/xj | ||||
beforevowel l | beforevowel l | ||||
endphoneme | 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 | phoneme l/2 // 'dark' [l] after a vowel | ||||
liquid | liquid | ||||
endphoneme | 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 | // VOICED STOPS |
int rms; | int rms; | ||||
float total; | float total; | ||||
float pkheight; | float pkheight; | ||||
int marker1_set=0; | |||||
int frame_vowelbreak; | |||||
SpectFrame *fr; | SpectFrame *fr; | ||||
wxString path_sep = _T("/"); | wxString path_sep = _T("/"); | ||||
if(spectseq->frames[frame]->keyframe) | 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++; | seq_out.n_frames++; | ||||
if(frame > 0) | if(frame > 0) | ||||
total += spectseq->frames[frame-1]->length; | total += spectseq->frames[frame-1]->length; | ||||
} | } | ||||
seq_out.length = int(total); | 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 | // 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; | ix = 0; |
"-p <integer>\n" | "-p <integer>\n" | ||||
"\t Pitch adjustment, 0 to 99, default is 50\n" | "\t Pitch adjustment, 0 to 99, default is 50\n" | ||||
"-s <integer>\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" | "-v <voice name>\n" | ||||
"\t Use voice file of this name from espeak-data/voices\n" | "\t Use voice file of this name from espeak-data/voices\n" | ||||
"-w <wave file name>\n" | "-w <wave file name>\n" |
"-p <integer>\n" | "-p <integer>\n" | ||||
"\t Pitch adjustment, 0 to 99, default is 50\n" | "\t Pitch adjustment, 0 to 99, default is 50\n" | ||||
"-s <integer>\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" | "-v <voice name>\n" | ||||
"\t Use voice file of this name from espeak-data/voices\n" | "\t Use voice file of this name from espeak-data/voices\n" | ||||
"-w <wave file name>\n" | "-w <wave file name>\n" |
"-p <integer>\n" | "-p <integer>\n" | ||||
"\t Pitch adjustment, 0 to 99, default is 50\n" | "\t Pitch adjustment, 0 to 99, default is 50\n" | ||||
"-s <integer>\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" | "-v <voice name>\n" | ||||
"\t Use voice file of this name from espeak-data/voices\n" | "\t Use voice file of this name from espeak-data/voices\n" | ||||
"-w <wave file name>\n" | "-w <wave file name>\n" |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x013900; | ||||
int option_device_number = -1; | int option_device_number = -1; |
static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | ||||
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | 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_B,0x3e,0x4d); // vowel signs, and virama | ||||
SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | ||||
SetLetterBits(tr,LETTERGP_C,dev_consonants2); // additional consonants | SetLetterBits(tr,LETTERGP_C,dev_consonants2); // additional consonants |
char *next; | char *next; | ||||
unsigned char c; | unsigned char c; | ||||
int count = 0; | int count = 0; | ||||
int ignore; | |||||
char phonetic[N_WORD_PHONEMES]; | |||||
// look through all the phoneme strings in the **_rules data | // look through all the phoneme strings in the **_rules data | ||||
// and mark these phoneme codes as used. | // and mark these phoneme codes as used. | ||||
p += (strlen(p)+1); | 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++; | count++; | ||||
if(c == RULE_PHONEMES) | if(c == RULE_PHONEMES) | ||||
{ | { | ||||
ignore = 0; | |||||
start = p; | start = p; | ||||
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++; | ||||
} | } | ||||
} | } | ||||
p++; | p++; | ||||
} | } | ||||
// NOTE, we should recognise langopts.textmode and ignore the *_list file (lang=zh) | |||||
for(hash=0; hash<N_HASH_DICT; hash++) | for(hash=0; hash<N_HASH_DICT; hash++) | ||||
{ | { | ||||
p = translator->dict_hashtab[hash]; | p = translator->dict_hashtab[hash]; | ||||
if((p[1] & 0x80) == 0) | if((p[1] & 0x80) == 0) | ||||
{ | { | ||||
p += ((p[1] & 0x3f) + 2); | 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++; | p++; | ||||
} | } | ||||
if(ignore == 0) | |||||
{ | |||||
p = phonetic; | |||||
while((c = *p) != 0) | |||||
{ | |||||
if(c == phonSWITCH) | |||||
break; | |||||
phoneme_tab_flags[c] |= 2; | |||||
p++; | |||||
} | |||||
} | |||||
} | } | ||||
p = next; | p = next; | ||||
} | } |
// pitch,speed, | // pitch,speed, | ||||
int embedded_default[N_EMBEDDED_VALUES] = {0,50,170,100,50, 0,0, 0,170,0,0,0,0,0}; | 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 | #define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word | ||||
int current_source_index=0; | int current_source_index=0; |