Return espeakEVENT_MARK events in AUDIO_OUTPUT_PLAYBACK mode. New phoneme [ _;_ ] a pause which ends intonation for a clause (the equivalent of a comma). lang=en-r: adjusted phonemes git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@129 d46cf337-b52f-0410-862d-fd96e6ae7743master
// Prepositions | // Prepositions | ||||
// the $alt2 prepositions should also be included in cs_rules | |||||
// as prefixes, so "na-" (for example) is removed from the combined | |||||
// word before the pronuciation of the main word is determined. | |||||
skrz $u $brk $alt2 // though | skrz $u $brk $alt2 // though | ||||
skrze $u $pause // through | skrze $u $pause // through | ||||
pro $u $pause $alt2 // for | pro $u $pause $alt2 // for |
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: | |||||
O o: OY U u: W y y: | |||||
Y: | |||||
E E2 E: e: EI I i2 I: | |||||
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@ E e@ eI I I2 i: i@ | aU@ E e@ eI I I2 i: i@ | ||||
IR O O: o: O@ o@ OI oU | |||||
O~ U u: U@ V VR | |||||
i@3 IR O O: o: O@ o@ OI | |||||
oU O~ U u: U@ V VR | |||||
: ; b C d D dZ f | : ; b C d D dZ f | ||||
g h j k l m n N | g h j k 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 x z Z | |||||
w w2 x z Z | |||||
Dictionary ro_dict | Dictionary ro_dict | ||||
i i. i[ iou o o- ou u | i i. i[ iou o o- ou u | ||||
uai y | uai y | ||||
: f h 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. | |||||
: 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. | |||||
Dictionary jbo_dict | Dictionary jbo_dict | ||||
Dictionary th_dict | Dictionary th_dict | ||||
a a: e E: i i: o O | |||||
O: u y | |||||
3 a E i i: O O: | |||||
c d h k l m n N | |||||
p s t | |||||
: c d h k l m n | |||||
N p s t2 | |||||
Dictionary hbs_dict | Dictionary hbs_dict | ||||
Dictionary id_dict | Dictionary id_dict | ||||
@ a aI aU e E i o | |||||
O u | |||||
@ a aI aU E i O | |||||
* ? b d dZ f g h | * ? b d dZ f g h | ||||
j k l m n N n^ p | j k l m n N n^ p |
add ad | add ad | ||||
addict adIkt $onlys | addict adIkt $onlys | ||||
addon ad0n | addon ad0n | ||||
adher adh'i@ | |||||
adher adh'i@3 | |||||
adieu a2dju: | adieu a2dju: | ||||
adieus a2dju:z | adieus a2dju:z | ||||
adieux a2dju:z | adieux a2dju:z | ||||
auger O:g3 | auger O:g3 | ||||
aurora $2 | aurora $2 | ||||
aussie 0zI | aussie 0zI | ||||
austere O:st'i@ | |||||
austere O:st'i@3 | |||||
authority a2T0rItI2 | authority a2T0rItI2 | ||||
authoritative O:T'0rIt@tIv | authoritative O:T'0rIt@tIv | ||||
autograph O:t@graf | autograph O:t@graf | ||||
brethren brEDr@n | brethren brEDr@n | ||||
bridesmaid braIdzmeId | bridesmaid braIdzmeId | ||||
brigade $2 | brigade $2 | ||||
brigadier brIga2d'i@ | |||||
brigadier brIga2d'i@3 | |||||
brochure broUS3 | brochure broUS3 | ||||
brooch broUtS | brooch broUtS | ||||
budgerigar bVdZ@rIgA@ | budgerigar bVdZ@rIgA@ | ||||
caprice ka2pr'i:s | caprice ka2pr'i:s | ||||
caramel kar@mEl | caramel kar@mEl | ||||
caravan kar@van | caravan kar@van | ||||
career k@r'i@ | |||||
career k@r'i@3 | |||||
caress k@rEs | caress k@rEs | ||||
carpel kA@p@l | carpel kA@p@l | ||||
cascade $2 | cascade $2 | ||||
cashmere kaSm'i@ | |||||
cashmere kaSm'i@3 | |||||
catarrh k@tA@ | catarrh k@tA@ | ||||
catholic kaTlIk | catholic kaTlIk | ||||
cavalier $3 | cavalier $3 | ||||
coop ku:p | coop ku:p | ||||
cooper ku:p3 | cooper ku:p3 | ||||
coordinate koU'O:dIneIt $verb | coordinate koU'O:dIneIt $verb | ||||
copier k0pi@ | |||||
copier k0pi@3 | |||||
coral k0r@L | coral k0r@L | ||||
coronet k0r@nEt | coronet k0r@nEt | ||||
corporal kO@pr@L | corporal kO@pr@L | ||||
façade f@sA:d | façade f@sA:d | ||||
faeces fi:si:z | faeces fi:si:z | ||||
fallible fal@b@L | fallible fal@b@L | ||||
familiar f@mIli@ | |||||
familiar f@mIli@3 | |||||
famine famIn | famine famIn | ||||
farewell $2 | farewell $2 | ||||
fasten faas@n | fasten faas@n | ||||
hello h@loU | hello h@loU | ||||
henceforth hEnsfo@T | henceforth hEnsfo@T | ||||
hercules h3:kjUli:z | hercules h3:kjUli:z | ||||
hereto hi@'tu: | |||||
hereto hi@3'tu: | |||||
hermaphrodite $2 | hermaphrodite $2 | ||||
hermes h3:mi:z | hermes h3:mi:z | ||||
herod hEr@d | herod hEr@d | ||||
heroe hi@oU | |||||
heroe hi@roU | |||||
heroic hI2roUIk | heroic hI2roUIk | ||||
heroin hEroUIn | heroin hEroUIn | ||||
heroism hEroUIz@m | heroism hEroUIz@m | ||||
photograph foUt@graf | photograph foUt@graf | ||||
piano pI2anoU | piano pI2anoU | ||||
piecemeal p'i:sm,i:l | piecemeal p'i:sm,i:l | ||||
pier pi@ | |||||
pier pi@3 | |||||
pigeon pIdZ@n | pigeon pIdZ@n | ||||
pigsty pIgstaI | pigsty pIgstaI | ||||
pilot paIl@t | pilot paIl@t | ||||
pineapple p'aInap@L | pineapple p'aInap@L | ||||
pint paInt | pint paInt | ||||
pioneer paI@n'i@ | |||||
pioneer paI@n'i@3 | |||||
pious paI@s | pious paI@s | ||||
pipette pIp'Et | pipette pIp'Et | ||||
piquant pi:k@nt | piquant pi:k@nt | ||||
ragged ragId | ragged ragId | ||||
rainforest r'eInf,0rIst | rainforest r'eInf,0rIst | ||||
rajah rA:dZA: | rajah rA:dZA: | ||||
rapier reIpi@ | |||||
rapier reIpi@3 | |||||
rapport rap'o@ | rapport rap'o@ | ||||
rarest re@r@st | rarest re@r@st | ||||
rascal raask@L | rascal raask@L | ||||
rein reIn | rein reIn | ||||
reined reInd | reined reInd | ||||
reining reInIN | reining reInIN | ||||
reindeer reIndi@ | |||||
reindeer reIndi@3 | |||||
reinvent ri:Inv'Ent | reinvent ri:Inv'Ent | ||||
refinery rI2faIn@rI2 | refinery rI2faIn@rI2 | ||||
relative rEl@tIv | relative rEl@tIv | ||||
retrial ri:traI@l | retrial ri:traI@l | ||||
retry ri:traI | retry ri:traI | ||||
reuse ri:'ju:z | reuse ri:'ju:z | ||||
rever rI2vi@ // revered | |||||
rever rI2vi@3 // revered | |||||
rhododendron roUd@d'Endr@n | rhododendron roUd@d'Endr@n | ||||
rhetoric rEt@rIk $onlys | rhetoric rEt@rIk $onlys | ||||
rhinoceros raIn'0s@r@s | rhinoceros raIn'0s@r@s | ||||
secretary sEkr@trI2 | secretary sEkr@trI2 | ||||
sedate sI2deIt | sedate sI2deIt | ||||
separate sEp@-r@t | separate sEp@-r@t | ||||
separate sEp@reIt $verb | |||||
separate sEp3reIt $verb | |||||
semen si:m@n | semen si:m@n | ||||
semicolon sEmIk'oUl0n | semicolon sEmIk'oUl0n | ||||
senator sEn@t3 | senator sEn@t3 | ||||
serene s@ri:n | serene s@ri:n | ||||
sergeant sA@dZ@nt | sergeant sA@dZ@nt | ||||
settee $2 | settee $2 | ||||
severe sIv'i@ $only | |||||
severely sIv'i@lI2 $verbf | |||||
severe sIv'i@3 $only | |||||
severely sIv'i@3lI2 $verbf | |||||
several sEvr@L | several sEvr@L | ||||
shampoo $2 | shampoo $2 | ||||
sheriff S'ErIf | sheriff S'ErIf | ||||
simon saIm@n | simon saIm@n | ||||
simultaneous $3 | simultaneous $3 | ||||
singly sINglI2 $verbf | singly sINglI2 $verbf | ||||
sincerest sIns'i@@st | |||||
sincerest sIns'i@r@st | |||||
sinew sInju: | sinew sInju: | ||||
sir s,3: | sir s,3: | ||||
?5 sir s,VR | ?5 sir s,VR | ||||
sonny sVnI2 | sonny sVnI2 | ||||
sooth su:D | sooth su:D | ||||
soundbite saUndbaIt | soundbite saUndbaIt | ||||
souvenir su:v@n'i@ | |||||
souvenir su:v@n'i@3 | |||||
sorbet sO@beI | sorbet sO@beI | ||||
soviet soUvi@t | soviet soUvi@t | ||||
spaghetti spag'EtI2 | spaghetti spag'EtI2 | ||||
taskforce t'askf,o@s | taskforce t'askf,o@s | ||||
tatar tA:t3 | tatar tA:t3 | ||||
tearing te@r-I2N | tearing te@r-I2N | ||||
tear ti@ $onlys | |||||
tear ti@3 $onlys | |||||
tear te@ $verb | tear te@ $verb | ||||
teddybear t'Ed,Ib,e@ | teddybear t'Ed,Ib,e@ | ||||
ten tEn // untenable | ten tEn // untenable | ||||
Kalgoorlie kalgU@lI2 | Kalgoorlie kalgU@lI2 | ||||
Karachi k@rA@tSI2 | Karachi k@rA@tSI2 | ||||
Kiev ki:Ev | Kiev ki:Ev | ||||
Khmer kmi@ | |||||
Khmer kmi@3 | |||||
Korea kOr'i:@ | Korea kOr'i:@ | ||||
Korean kOr'i:@n | Korean kOr'i:@n | ||||
Kuala kwA:la2 | Kuala kwA:la2 | ||||
Wisconsin wIsk'0nsIn | Wisconsin wIsk'0nsIn | ||||
Wyoming waI'oUmI2N | Wyoming waI'oUmI2N | ||||
Xhosa kO:s@ | Xhosa kO:s@ | ||||
zaire zaI'i@ | |||||
zaire zaI'i@3 | |||||
zimbabwe zI2mbA:bwI2 | zimbabwe zI2mbA:bwI2 | ||||
Aaron e@r@n | Aaron e@r@n | ||||
(first place) f'3:st_pl,eIs | (first place) f'3:st_pl,eIs | ||||
?5 (first place) f'IRst_pl,eIs | ?5 (first place) f'IRst_pl,eIs | ||||
(here and there) h'i@||@nd||D'e@ | |||||
(here and there) h'i@3||@nd||D'e@ | |||||
(most of) moUst||@v | (most of) moUst||@v | ||||
(such as) sVtS||_a2z $pause | (such as) sVtS||_a2z $pause | ||||
beside bI2s,aId $strend2 | beside bI2s,aId $strend2 | ||||
between bI2tw,i:n $strend2 | between bI2tw,i:n $strend2 | ||||
together t@g,ED3 $strend2 | together t@g,ED3 $strend2 | ||||
near ,ni@ $strend2 | |||||
near ,ni@3 $strend2 | |||||
thence DEns | thence DEns | ||||
become bI,kVm $strend2 | become bI,kVm $strend2 | ||||
became bI,keIm $strend2 | became bI,keIm $strend2 | ||||
we're %wi@ | |||||
we're %wi@3 | |||||
you're %jO@ | you're %jO@ | ||||
?6 you're %jU@ | ?6 you're %jU@ | ||||
they're %DeI3 | they're %DeI3 |
_) aer (o e@ | _) aer (o e@ | ||||
ae (l eI | ae (l eI | ||||
h) ae (m i: | h) ae (m i: | ||||
h) aemorrh Em@r | |||||
h) aemorrh Em3r | |||||
aer e@ | aer e@ | ||||
_c) aer %e@ | _c) aer %e@ | ||||
r) aer 'A@ | r) aer 'A@ | ||||
_) aph (@ a2f | _) aph (@ a2f | ||||
ap (ath ap | ap (ath ap | ||||
_) ap (e eIp | _) ap (e eIp | ||||
aper (ie a2pi@ | |||||
aper (ie a2pi@r | |||||
_) aperi (t a2pEr@ | _) aperi (t a2pEr@ | ||||
_) aper (t ap@ | _) aper (t ap@ | ||||
_) aph (id eIf | _) aph (id eIf | ||||
&z) ar (d_ 3 | &z) ar (d_ 3 | ||||
h) ar (ass @r | h) ar (ass @r | ||||
&m) aran @ran | &m) aran @ran | ||||
sep) ar (at @r | |||||
sep) ar (at 3r | |||||
w) ar (e e@ | w) ar (e e@ | ||||
k) ar (y ar | k) ar (y ar | ||||
c) arbo (h ,A@boU | c) arbo (h ,A@boU | ||||
_) de (t@ dI2 | _) de (t@ dI2 | ||||
de (tail di: | de (tail di: | ||||
deter dI2t3: | deter dI2t3: | ||||
deter (i dI2ti@ | |||||
deter (i dI2ti@r | |||||
detest dI2tEst | detest dI2tEst | ||||
_) de (th d%i: | _) de (th d%i: | ||||
de (ton dE | de (ton dE | ||||
&) ecy (_ @sI2 | &) ecy (_ @sI2 | ||||
ee i: | ee i: | ||||
ee (m 'i: | ee (m 'i: | ||||
eer 'i@ | |||||
eer 'i@3 | |||||
t) ee (n_ 'i: | t) ee (n_ 'i: | ||||
ees (_ i:z | ees (_ i:z | ||||
ch) eese i:z | ch) eese i:z | ||||
_l) ea (mi E | _l) ea (mi E | ||||
b) ea (n i: | b) ea (n i: | ||||
XC) ea (n_ i: | XC) ea (n_ i: | ||||
ear i@ | |||||
ear i@3 | |||||
_) ear (l 3: | _) ear (l 3: | ||||
_) ear (n 3: | _) ear (n 3: | ||||
ear (th 3: | ear (th 3: | ||||
b) ear e@ | b) ear e@ | ||||
b) ear (d i@ | |||||
b) ear (d i@3 | |||||
h) ear (d 3: | h) ear (d 3: | ||||
h) ear (th A@ | h) ear (th A@ | ||||
h) ear (k A@ | h) ear (k A@ | ||||
t) ear (A e@ | t) ear (A e@ | ||||
sw) ear e@ | sw) ear e@ | ||||
w) ear e@ | w) ear e@ | ||||
w) ear (y i@ | |||||
w) ear (y i@3 | |||||
y) ear (n 3: | y) ear (n 3: | ||||
eas (an Ez | eas (an Ez | ||||
eas (en Ez | eas (en Ez | ||||
@) ei (n_ i: | @) ei (n_ i: | ||||
b) ei (ng i:I | b) ei (ng i:I | ||||
eir e@ | eir e@ | ||||
w) eir i@ | |||||
w) eir i@3 | |||||
l) ei (s E | l) ei (s E | ||||
th) ei (sC i:I | th) ei (sC i:I | ||||
_s) eis (m aIz | _s) eis (m aIz | ||||
g) eral (d Er@L | g) eral (d Er@L | ||||
er (bial '3: | er (bial '3: | ||||
_d) er (b A@ | _d) er (b A@ | ||||
&) er (A @r | |||||
&) er (A 3r | |||||
@) er (o_ 'e@r | @) er (o_ 'e@r | ||||
eri (A 'i@rI2 | eri (A 'i@rI2 | ||||
er (iC Er | er (iC Er | ||||
&) er (ing @r | |||||
er (ie_ @r | |||||
er (ie @r | |||||
&) er (ing 3r | |||||
er (ie_ 3r | |||||
er (ie 3r | |||||
eries (_S2i z | eries (_S2i z | ||||
&) er (ous =@r | &) er (ous =@r | ||||
m) er (c 3: | m) er (c 3: | ||||
_qu) er 3: | _qu) er 3: | ||||
c) er (am I2r | c) er (am I2r | ||||
&) ere (_ 3 | &) ere (_ 3 | ||||
XC) ere (_ i@ | |||||
sph) ere (_ i@ | |||||
c) ere (_ 'i@ | |||||
XC) ere (_ i@3 | |||||
sph) ere (_ i@3 | |||||
c) ere (_ 'i@3 | |||||
i) ere (_ I2e@ | i) ere (_ I2e@ | ||||
ev) ere (_ i@ | |||||
ev) ere (_ i@3 | |||||
mp) ere (_ e@ | mp) ere (_ e@ | ||||
_h) ere i@ | |||||
_h) ere i@3 | |||||
h) ere (f ErI2 | h) ere (f ErI2 | ||||
h) ere (di I2rE | h) ere (di I2rE | ||||
h) ere (s Er@ | h) ere (s Er@ | ||||
h) ere (t I2rE | h) ere (t I2rE | ||||
@) er (ence_ r | @) er (ence_ r | ||||
er (ent_ r | er (ent_ r | ||||
adh) er (e 'i@ | |||||
coh) er (e 'i@ | |||||
adh) er (e 'i@3 | |||||
coh) er (e 'i@3 | |||||
h) er (ed I2r | h) er (ed I2r | ||||
c) ere (mon ErI2 | c) ere (mon ErI2 | ||||
h) er (en i@r | h) er (en i@r | ||||
_v) ery ErI2 | _v) ery ErI2 | ||||
_ev) ery rI2 | _ev) ery rI2 | ||||
qu) ery i@rI2 | qu) ery i@rI2 | ||||
z) er (o i@ | |||||
_C) er (o_ i@ | |||||
z) er (o i@r | |||||
_C) er (o_ i@r | |||||
er (rA E | er (rA E | ||||
err (_ 3: | err (_ 3: | ||||
_l) io (n aI@ | _l) io (n aI@ | ||||
z) io (n aI@ | z) io (n aI@ | ||||
r) ior (_ I3 | r) ior (_ I3 | ||||
&) ior (+ i@ | |||||
&) ior (+ i@3 | |||||
&) ior (_ j3 | &) ior (_ j3 | ||||
iority I'0rItI2 | iority I'0rItI2 | ||||
iou (rA j@ | iou (rA j@ | ||||
al) ia (nt I2@ | al) ia (nt I2@ | ||||
_p) ia (nA i@ | _p) ia (nA i@ | ||||
iar aI@ | iar aI@ | ||||
@l) iar (_ i@ | |||||
@l) iar (_ i@3 | |||||
iara (_ I'A:r@ | iara (_ I'A:r@ | ||||
iarch I2A@k | iarch I2A@k | ||||
iard (_ I23d | iard (_ I23d | ||||
@) ienne (_ I'En | @) ienne (_ I'En | ||||
cl) ie (nt aI@ | cl) ie (nt aI@ | ||||
&) ier (y I2@r | &) ier (y I2@r | ||||
ier i@ | |||||
&) ier (_NS2i @ | |||||
ier i@3 | |||||
&) ier (_NS2i 3 | |||||
_h) ie (r aI@ | _h) ie (r aI@ | ||||
pl) ier (_ aI@ | pl) ier (_ aI@ | ||||
_Cr) ier aI@ | _Cr) ier aI@ | ||||
ier (c i@ | |||||
ier (c i@3 | |||||
ierre (_ I2e@ | ierre (_ I2e@ | ||||
ie (t aI@ | ie (t aI@ | ||||
@) ie (th i@ | @) ie (th i@ | ||||
_) inter (@P5 ,Int3 // prefix | _) inter (@P5 ,Int3 // prefix | ||||
_) inter (AP5 ,Int@r | _) inter (AP5 ,Int@r | ||||
inter (est Int@r | inter (est Int@r | ||||
interfer Int@f'i@ | |||||
interfer Int@f'i@3 | |||||
_) int (erio+ I2nt | _) int (erio+ I2nt | ||||
_) inter (n_ I2nt3: | _) inter (n_ I2nt3: | ||||
_) inter (nal I2nt3: | _) inter (nal I2nt3: | ||||
irer (_ aI@r@ | irer (_ aI@r@ | ||||
ir 3: | ir 3: | ||||
?5 ir IR | ?5 ir IR | ||||
@C) ir (_ i@ | |||||
@C) ir (_ i@3 | |||||
st) ir (_ 3: | st) ir (_ 3: | ||||
?5 st) ir (_ IR | ?5 st) ir (_ IR | ||||
ir (i Ir | ir (i Ir | ||||
ir (o I2r | ir (o I2r | ||||
g) ir (o aIr | g) ir (o aIr | ||||
_C) ir (o_ aIr | _C) ir (o_ aIr | ||||
@) ir (o_ 'i@ | |||||
@) ir (o_ 'i@r | |||||
_) iron aI@n | _) iron aI@n | ||||
iron (A aIr'0n | iron (A aIr'0n | ||||
v) iro (n aIr@ | v) iro (n aIr@ | ||||
per (petr p3: | per (petr p3: | ||||
per (ple p3 | per (ple p3 | ||||
per (sis p3 | per (sis p3 | ||||
persever p3:sIv'i@ | |||||
persever p3:sIv'i@3 | |||||
per (sp p@ | per (sp p@ | ||||
perspi (ra p3:sp@ | perspi (ra p3:sp@ | ||||
per (su p3 | per (su p3 | ||||
l) u (ck V | l) u (ck V | ||||
ucul VkjUl | ucul VkjUl | ||||
n) ucle ju:klI | n) ucle ju:klI | ||||
n) uclear ju:kli@ | |||||
n) uclear ju:kli@3 | |||||
?3 n) ucle u:klI | ?3 n) ucle u:klI | ||||
?3 n) uclear u:kli@ | |||||
?3 n) uclear u:kli@3 | |||||
@) u (ctive 'V | @) u (ctive 'V | ||||
u (guC V | u (guC V | ||||
f) u (gal 'ju: | f) u (gal 'ju: | ||||
b) ur (e ju:@r | b) ur (e ju:@r | ||||
g) ure (_ 3 | g) ure (_ 3 | ||||
nj) ure (_ 3 | nj) ure (_ 3 | ||||
il) ure (_ i@ | |||||
en) ure (_ j@ | |||||
r) ure (_ i@ | |||||
&s) ure (_ j@ | |||||
il) ure (_ i@3 | |||||
en) ure (_ j3 | |||||
r) ure (_ i@3 | |||||
&s) ure (_ j@3 | |||||
icat) ure (_ jU@ | icat) ure (_ jU@ | ||||
sat) ur (d 3 | sat) ur (d 3 | ||||
iz) ure 3 | iz) ure 3 | ||||
wh w | wh w | ||||
wr r | wr r | ||||
C) we (_ =wI | C) we (_ =wI | ||||
were (w wi@ | |||||
were (w wi@3 | |||||
th) west w'Est | th) west w'Est | ||||
we (w wi: | we (w wi: | ||||
where we@ | where we@ | ||||
Ee (d i: | Ee (d i: | ||||
EE (_ i: | EE (_ i: | ||||
Ee (_ 'i: | Ee (_ 'i: | ||||
Eer (_ 'i@ | |||||
Eer (_ 'i@3 | |||||
Ei (n_ i: | Ei (n_ i: | ||||
Ei (_ aI | Ei (_ aI | ||||
El (_ @L | El (_ @L |
_) i (_ i | _) i (_ i | ||||
i i | i i | ||||
i (A J^ | i (A J^ | ||||
C) i (A j | |||||
l) i (A %i | l) i (A %i | ||||
r) i (A %i | r) i (A %i | ||||
// | // | ||||
// Letters | |||||
// Letters names | |||||
// If a letter has a "word" pronunciation which is different from its | // If a letter has a "word" pronunciation which is different from its | ||||
// "letter" name, then include the letter name here, with the letter | // "letter" name, then include the letter name here, with the letter | ||||
// prefixed by a _ character. | // prefixed by a _ character. | ||||
_à a:aksA~gRav | _à a:aksA~gRav | ||||
â a:aksA~siRkO~flEks | â a:aksA~siRkO~flEks | ||||
ä a:tRema | ä a:tRema | ||||
b be | |||||
c se | |||||
ç sesedij | ç sesedij | ||||
d de | |||||
e @ | |||||
ë @:tRema | ë @:tRema | ||||
é @:aksA~Egy | é @:aksA~Egy | ||||
è @:aksA~gRav | è @:aksA~gRav | ||||
ê @:aksA~siRkO~flEks | ê @:aksA~siRkO~flEks | ||||
ï i:tRema | |||||
ë @:tRema | ë @:tRema | ||||
f Ef | |||||
g Ze | |||||
h aS | |||||
i i | |||||
ï i:tRema | |||||
j Zi | |||||
k ka | |||||
l El | |||||
m Em | |||||
n En | |||||
ñ Entilde | ñ Entilde | ||||
o o | |||||
ô o:aksA~siRkO~flEks | ô o:aksA~siRkO~flEks | ||||
ö o:tRema | ö o:tRema | ||||
p pe | |||||
q ky | |||||
r ER | |||||
s Es | |||||
t te | |||||
u y | |||||
ù y:aksA~gRav | ù y:aksA~gRav | ||||
û y:aksA~siRkO~flEks | û y:aksA~siRkO~flEks | ||||
ü y:tRema | ü y:tRema | ||||
v ve | |||||
w dubl@v'e | |||||
x iks | |||||
z zEd | |||||
_y i:gR'Ek | _y i:gR'Ek | ||||
xfce iksEfse@ | xfce iksEfse@ | ||||
xy $abbrev | xy $abbrev | ||||
ii d'Y $abbrev // roman numerals | |||||
iii tRw'a $abbrev | |||||
iv k'atR $abbrev | |||||
dr dOkt WR $dot $capital | dr dOkt WR $dot $capital | ||||
prof $dot | prof $dot |
.group a | .group a | ||||
ae (_ e // reggae vitae | ae (_ e // reggae vitae | ||||
aen A~ // caen (diff Cicero: aA~) | aen A~ // caen (diff Cicero: aA~) | ||||
ae ae // maestro | ae ae // maestro | ||||
ay Ej // paye | ay Ej // paye | ||||
a a // bateau | a a // bateau | ||||
.group b | .group b | ||||
_) b (_ be // b | |||||
bb b // abbé | bb b // abbé | ||||
om) b (_ // plomb applomb | om) b (_ // plomb applomb | ||||
b b // aube | b b // aube | ||||
.group c | .group c | ||||
_) c (_ se // c | |||||
c' s // s | c' s // s | ||||
cch k // bacchanale | cch k // bacchanale | ||||
cc (Y ks // accéder | cc (Y ks // accéder | ||||
.group d | .group d | ||||
_) d (_ de | |||||
dd d // addition | dd d // addition | ||||
_) d' (P2 d | _) d' (P2 d | ||||
_lan) d (_ d // land | _lan) d (_ d // land | ||||
r) d (_ // lourd placard | r) d (_ // lourd placard | ||||
d d // don bled | d d // don bled | ||||
.group e | |||||
_) e (_ @ // e | |||||
.group e | |||||
e (Ce_ E | e (Ce_ E | ||||
eau o // bateau cheveaux | eau o // bateau cheveaux | ||||
j) e (a // Jean Jeanne | j) e (a // Jean Jeanne | ||||
e @ // menue | e @ // menue | ||||
.group ë | .group ë | ||||
u) ë // ambiguë | u) ë // ambiguë | ||||
ë E // citroën noël | ë E // citroën noël | ||||
.group f | .group f | ||||
_) f (_ Ef | |||||
f f | f f | ||||
f (f | f (f | ||||
_neu) f (_ans v // liaison: neuf ans | _neu) f (_ans v // liaison: neuf ans | ||||
.group g | .group g | ||||
_) g (_ Ze | |||||
g g | g g | ||||
su) gg (Y gZ // suggérer suggestif | su) gg (Y gZ // suggérer suggestif | ||||
g (_ g // grog gag goulag | g (_ g // grog gag goulag | ||||
g Z // congé george | g Z // congé george | ||||
.group h | .group h | ||||
_) h (_ aS | |||||
h // ahuri | h // ahuri | ||||
.group i | .group i | ||||
_) i (_ i | |||||
i i // cri | i i // cri | ||||
ie (ment i // remerciement balbutiement | ie (ment i // remerciement balbutiement | ||||
î i // abîme | î i // abîme | ||||
în (i in // vînimes | în (i in // vînimes | ||||
.group ï | .group ï | ||||
ïn (C E~ // coïncider | ïn (C E~ // coïncider | ||||
ïn (_ E~ | ïn (_ E~ | ||||
a) ï j // aïeul | a) ï j // aïeul | ||||
ï i // ambiguïté | ï i // ambiguïté | ||||
.group j | .group j | ||||
_) j (_ Zi | |||||
j Z // adjoint joujoux | j Z // adjoint joujoux | ||||
.group k | .group k | ||||
_) k (_ ka | |||||
k k // kafka | k k // kafka | ||||
ket (_ kEt // basket | ket (_ kEt // basket | ||||
kets (_ kEt // basket | kets (_ kEt // basket | ||||
.group l | .group l | ||||
_) l (_ El | |||||
l l // lit | l l // lit | ||||
ll l // aller | ll l // aller | ||||
_) l' (P2 l | _) l' (P2 l | ||||
.group m | .group m | ||||
_) m (_ Em | |||||
m m // film | m m // film | ||||
mm m // pomme | mm m // pomme | ||||
.group n | .group n | ||||
_) n (_ En | |||||
n n // une | n n // une | ||||
nn n | nn n | ||||
ng (_ N | ng (_ N | ||||
A) ng (_ N // parking meeting | A) ng (_ N // parking meeting | ||||
nn n // panne | nn n // panne | ||||
.group o | |||||
_) o (_ o | |||||
.group o | |||||
cr) oc (_ o // escroc | cr) oc (_ o // escroc | ||||
o (ch o // cochon | o (ch o // cochon | ||||
o O // sobre notions émotions | o O // sobre notions émotions | ||||
.group ô | .group ô | ||||
ôt (_ o // rôt | ôt (_ o // rôt | ||||
ô o // cône | ô o // cône | ||||
.group p | .group p | ||||
_) p (_ pe | |||||
p p // pas | p p // pas | ||||
p (p // appliquer | p (p // appliquer | ||||
ph f // phrase | ph f // phrase | ||||
se) pt (_ t // sept | se) pt (_ t // sept | ||||
se) pt (iè t // septième | se) pt (iè t // septième | ||||
.group q | .group q | ||||
_) q (_ ky | |||||
q k // coq | q k // coq | ||||
qu k // quatre | qu k // quatre | ||||
_) que (_ k@ // que | _) que (_ k@ // que | ||||
_) qu' (P3 k // qu'il | _) qu' (P3 k // qu'il | ||||
n) q (_ k // cinq cent | n) q (_ k // cinq cent | ||||
.group r | .group r | ||||
_) r (_ ER | |||||
right _^_EN // copyright | right _^_EN // copyright | ||||
_su) rr RR // surréaliste | _su) rr RR // surréaliste | ||||
ou) rr RR // courrai | ou) rr RR // courrai | ||||
rr R // erreur | rr R // erreur | ||||
r r // rien | r r // rien | ||||
.group s | .group s | ||||
_) s (_ Es | |||||
s s // verser sien | s s // verser sien | ||||
s (_S1 z2 | s (_S1 z2 | ||||
s (j z | s (j z | ||||
s (v z | s (v z | ||||
.group t | .group t | ||||
_) t (_ te | |||||
t t // bataille | t t // bataille | ||||
V) t (_ t2 // silent at end of verb unless next word starts with a vowel | V) t (_ t2 // silent at end of verb unless next word starts with a vowel | ||||
t (_ // silent at end of word | t (_ // silent at end of word | ||||
.group u | .group u | ||||
_) u (_ y | |||||
u y // cruel nuage brut | u y // cruel nuage brut | ||||
ui w^i | ui w^i | ||||
g) u (ï y // ambiguïté | g) u (ï y // ambiguïté | ||||
g) u (ë y // ambiguë | g) u (ë y // ambiguë | ||||
.group v | .group v | ||||
_) v (_ ve | |||||
v v | v v | ||||
.group w | .group w | ||||
_) w (_ dubl@v'e | |||||
w w | w w | ||||
ware (_ _^_EN // hardware, software | ware (_ _^_EN // hardware, software | ||||
.group x | .group x | ||||
_) x (_ iks | |||||
x ks | x ks | ||||
xs ks // lexique lexicaux vox | xs ks // lexique lexicaux vox | ||||
_e) x (A gz // exagérer exemple | _e) x (A gz // exagérer exemple | ||||
yn E~ // laryngite | yn E~ // laryngite | ||||
.group z | .group z | ||||
_) z (_ zEd | |||||
z z | z z | ||||
zz z | zz z | ||||
t) z s // tzigane | t) z s // tzigane |
// This file is UTF8 encoded | |||||
// Spelling to phoneme words for Lojban (an artificial constructed language). | |||||
// Note: initial/final "." has already been removed | |||||
// Numbers | // Numbers | ||||
_0 no | _0 no | ||||
_1 pa | _1 pa | ||||
po'e $u+ // of | po'e $u+ // of | ||||
zo'e $u+ // pronoun | zo'e $u+ // pronoun | ||||
i $u+ $pause | |||||
i i_: $u // sentence break (recognised by eSpeak program). Try a short pause after ".i" | |||||
// end-of-clause [_;_] before these | |||||
noi _;_nOI $u | |||||
poi _;_pOI $u | |||||
no'u _;_nohu $u | |||||
po'u _;_pohu $u | |||||
goi _;_gOI $u | |||||
ija _;_iZa // should this series be unstressed? | |||||
ijanai _;_iZanaI | |||||
ije _;_iZe | |||||
ije'i _;_iZehi | |||||
ijenai _;_iZenaI | |||||
ijo _;_iZo | |||||
ijonai _;_iZonaI | |||||
inaja _;_inaZa | |||||
to _::to $u // start parenthesis, pause but don't raise intonation | |||||
// terminators (include a pause after) | // terminators (include a pause after) | ||||
ku ku_: | |||||
boi bOI_: | |||||
vau vaU_: | |||||
kei keI_: | |||||
toi tOI_: | |||||
ku ku_:: $u | |||||
boi bOI_:: $u | |||||
vau vaU_:: $u | |||||
kei keI_:: $u | |||||
toi tOI_:: $u |
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Spelling to phoneme rules for Lojban (an artificial constructed language). | // Spelling to phoneme rules for Lojban (an artificial constructed language). | ||||
// Note: initial/final "." has already been removed | |||||
.group a | .group a | ||||
a a | a a | ||||
.group g | .group g | ||||
g g | g g | ||||
_) gi ('A_ _;_gi | |||||
.group h | .group h | ||||
h h | h h | ||||
<dd> | <dd> | ||||
Speaks the names of punctuation characters when they are encountered in the text. If <characters> are given, then only those listed punctuation characters are spoken, eg. <code> --punct=".,;?"</code> | Speaks the names of punctuation characters when they are encountered in the text. If <characters> are given, then only those listed punctuation characters are spoken, eg. <code> --punct=".,;?"</code> | ||||
<p> | <p> | ||||
<dt><strong>--split [="<minutes>"]</strong><br> | |||||
<dd> | |||||
Used with <strong>-w</strong>, it starts a new WAV file every <code><minutes></code> minutes, at the next sentence boundary. | |||||
<p> | |||||
<dt> | <dt> | ||||
<strong>--voices [=<language code>]</strong><br> | <strong>--voices [=<language code>]</strong><br> | ||||
<dd>Lists the available voices.<br> | <dd>Lists the available voices.<br> |
</strong></font> | </strong></font> | ||||
</td> | </td> | ||||
<td> | <td> | ||||
eSpeak is a compact open source software speech synthesizer for English and other languages. | |||||
eSpeak is a compact open source software speech synthesizer for English and other languages, for Linux and Windows. | |||||
<a href="http://espeak.sourceforge.net/"><strong>http://espeak.sourceforge.net</strong></a> | <a href="http://espeak.sourceforge.net/"><strong>http://espeak.sourceforge.net</strong></a> | ||||
<p> | <p> | ||||
eSpeak produces good quality English speech. It uses a different synthesis method from other open source TTS engines, and sounds quite different. It's perhaps not as natural or "smooth", but I find the articulation clearer and easier to listen to for long periods. | eSpeak produces good quality English speech. It uses a different synthesis method from other open source TTS engines, and sounds quite different. It's perhaps not as natural or "smooth", but I find the articulation clearer and easier to listen to for long periods. | ||||
<hr> | <hr> | ||||
<strong>Languages</strong>. The eSpeak speech synthesizer supports several languages, however in most cases these are initial drafts and need more work to improve them. Assistance from native speakers is welcome for these, or other new languages. Please contact me if you want to help.<p> | <strong>Languages</strong>. The eSpeak speech synthesizer supports several languages, however in most cases these are initial drafts and need more work to improve them. Assistance from native speakers is welcome for these, or other new languages. Please contact me if you want to help.<p> | ||||
eSpeak does text to speech synthesis for the following languages, some better than others. Afrikaans, Croatian, Czech, Dutch, English, Esperanto, Finnish, French, German, Greek, Hindi, Hungarian, Icelandic, Italian, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swahili, Swedish, Vietnamese, Welsh. See <a href="languages.html">Languages</a>. | |||||
eSpeak does text to speech synthesis for the following languages, some better than others. Afrikaans, Cantonese, Croatian, Czech, Dutch, English, Esperanto, Finnish, French, German, Greek, Hindi, Hungarian, Icelandic, Italian, Lojban, Macedonian, Mandarin, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Spanish, Swahili, Swedish, Vietnamese, Welsh. See <a href="languages.html">Languages</a>. | |||||
<hr> | <hr> | ||||
<strong>espeakedit</strong> is a GUI program used to prepare and compile phoneme data. It is now available for download. Documentation is currently sparse, but if you want to use it to add or improve language support, let me know. | <strong>espeakedit</strong> is a GUI program used to prepare and compile phoneme data. It is now available for download. Documentation is currently sparse, but if you want to use it to add or improve language support, let me know. | ||||
<hr> | <hr> |
<head> | <head> | ||||
<title>eSpeak Speech Synthesizer</title> | <title>eSpeak Speech Synthesizer</title> | ||||
<meta name="GENERATOR" content="Quanta Plus"> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | ||||
</head> | </head> | ||||
<body> | <body> | ||||
</dd> | </dd> | ||||
<p> | <p> | ||||
<dt> | <dt> | ||||
<strong>jbo Lojban</strong><br> | |||||
<dd>An artificial language. | |||||
</dd> | |||||
<p> | |||||
<dt> | |||||
<strong>la Latin</strong><br> | <strong>la Latin</strong><br> | ||||
<dd>Stress rules are implemented, but it needs text where long vowels are marked with macrons. | <dd>Stress rules are implemented, but it needs text where long vowels are marked with macrons. | ||||
</dd> | </dd> |
dictrules 3 6 | dictrules 3 6 | ||||
option 12 1 // reduce [t] | option 12 1 // reduce [t] | ||||
stressLength 145 120 175 175 0 0 260 270 | |||||
stressLength 145 125 170 170 0 0 265 280 | |||||
stressAmp 17 16 20 20 20 22 23 20 | stressAmp 17 16 20 20 20 22 23 20 | ||||
//replace 03 I i | //replace 03 I i | ||||
//replace 03 I2 i | //replace 03 I2 i | ||||
formant 2 101 100 100 | |||||
formant 3 101 100 100 |
language es | language es | ||||
gender male | gender male | ||||
intonation 3 | |||||
45 phoneme tables | |||||
43 phoneme tables | |||||
new total | new total | ||||
base 99 99 | |||||
base2 24 118 | |||||
en 53 147 | |||||
base 98 98 | |||||
base2 24 117 | |||||
en 54 147 | |||||
en_n 30 147 | en_n 30 147 | ||||
en_us 37 147 | |||||
en_us 34 147 | |||||
en_sc 39 149 | en_sc 39 149 | ||||
en_rp 34 147 | en_rp 34 147 | ||||
en_wm 30 147 | en_wm 30 147 | ||||
en_wi 30 147 | en_wi 30 147 | ||||
af 38 131 | |||||
cy 29 125 | |||||
de 33 126 | |||||
eo 13 111 | |||||
jbo 4 112 | |||||
fi 40 130 | |||||
fr 35 122 | |||||
fr_ca 11 122 | |||||
hi 50 135 | |||||
ta 13 137 | |||||
hu 23 115 | |||||
nl 28 122 | |||||
pl 15 110 | |||||
sk 29 128 | |||||
cs 6 128 | |||||
hr 20 133 | |||||
mk 3 134 | |||||
sr 14 133 | |||||
ru 38 129 | |||||
it 17 121 | |||||
la 21 117 | |||||
es 9 120 | |||||
pt 27 134 | |||||
pt_pt 20 134 | |||||
ro 36 142 | |||||
el 8 118 | |||||
grc 12 123 | |||||
sv 25 121 | |||||
no 28 125 | |||||
is 32 124 | |||||
vi 42 137 | |||||
zhy 40 132 | |||||
zh 61 146 | |||||
sw 14 108 | |||||
th 50 142 | |||||
id 14 120 | |||||
af 38 130 | |||||
cy 29 124 | |||||
de 33 125 | |||||
eo 13 110 | |||||
jbo 4 111 | |||||
fi 40 129 | |||||
fr 35 121 | |||||
fr_ca 11 121 | |||||
hi 50 134 | |||||
ta 13 136 | |||||
hu 23 114 | |||||
nl 28 121 | |||||
pl 15 109 | |||||
sk 29 127 | |||||
cs 6 127 | |||||
hr 20 132 | |||||
mk 3 133 | |||||
sr 14 132 | |||||
ru 38 128 | |||||
it 17 120 | |||||
la 21 116 | |||||
es 7 117 | |||||
pt 27 133 | |||||
pt_pt 20 133 | |||||
ro 36 141 | |||||
el 8 117 | |||||
grc 12 122 | |||||
sv 25 120 | |||||
no 28 124 | |||||
is 32 123 | |||||
vi 42 136 | |||||
zhy 40 131 | |||||
zh 61 145 | |||||
sw 14 107 | |||||
Data file Used by | Data file Used by | ||||
b/b [b] base | b/b [b] base | ||||
[d] sw | [d] sw | ||||
d/tap [*;] ro | d/tap [*;] ro | ||||
d/tap1 [*] base | d/tap1 [*] base | ||||
d/tap2 [*2] base | |||||
d/tap3 [*] base | d/tap3 [*] base | ||||
d/tap4 [r] es | |||||
d/tap_i [*;] ro | d/tap_i [*;] ro | ||||
d/xd [d] base | d/xd [d] base | ||||
[d[] base | [d[] base | ||||
[d] sw | [d] sw | ||||
d/xd_pzd [d;] pl | d/xd_pzd [d;] pl | ||||
[d;] ru | [d;] ru | ||||
d/x_tap [*2] base | |||||
dzh/dzh [dZ] base | dzh/dzh [dZ] base | ||||
[dZ;] base | [dZ;] base | ||||
[dz;] base | [dz;] base | ||||
dzh/xdz_pzd [J] base | dzh/xdz_pzd [J] base | ||||
[J2] hi | [J2] hi | ||||
envelope/p_214 [214] zh | envelope/p_214 [214] zh | ||||
[5] th | |||||
envelope/p_451 [3] th | |||||
envelope/p_512 [8] vi | envelope/p_512 [8] vi | ||||
envelope/p_fall [2] vi | envelope/p_fall [2] vi | ||||
[7] vi | [7] vi | ||||
[22] zh | [22] zh | ||||
[33] zh | [33] zh | ||||
[53] zh | [53] zh | ||||
[1] th | |||||
[2] th | |||||
envelope/p_fallrise [4] vi | envelope/p_fallrise [4] vi | ||||
envelope/p_level [1] vi | envelope/p_level [1] vi | ||||
[3] zhy | [3] zhy | ||||
[2] zhy | [2] zhy | ||||
[5] zhy | [5] zhy | ||||
[35] zh | [35] zh | ||||
[4] th | |||||
envelope/vi_5 [5] vi | envelope/vi_5 [5] vi | ||||
envelope/vi_5amp [5] vi | envelope/vi_5amp [5] vi | ||||
envelope/vi_6 [6] vi | envelope/vi_6 [6] vi | ||||
ufric/ch [C] base | ufric/ch [C] base | ||||
[J^] base | [J^] base | ||||
[C2] de | [C2] de | ||||
[J2] es | |||||
[J3] es | |||||
ufric/ch_sr [h] sr | ufric/ch_sr [h] sr | ||||
[x] sr | [x] sr | ||||
ufric/f [f] base | ufric/f [f] base | ||||
[k] el | [k] el | ||||
[kh] zh | [kh] zh | ||||
[k] sw | [k] sw | ||||
[kh] th | |||||
ustop/ki [c] base | ustop/ki [c] base | ||||
[k] base | [k] base | ||||
[k] base2 | [k] base2 | ||||
[k] el | [k] el | ||||
[k] zhy | [k] zhy | ||||
ustop/k_unasp_ [k] zh | ustop/k_unasp_ [k] zh | ||||
[k] th | |||||
ustop/null [?] base | ustop/null [?] base | ||||
ustop/p [p] base | ustop/p [p] base | ||||
[p] fr | [p] fr | ||||
[ph] hi | [ph] hi | ||||
[p] zhy | [p] zhy | ||||
[ph] th | |||||
ustop/p_ [p] base | ustop/p_ [p] base | ||||
[p] fr | [p] fr | ||||
[ph] hi | [ph] hi | ||||
[p] la | [p] la | ||||
[p;] ro | [p;] ro | ||||
[p] zh | [p] zh | ||||
[p] th | |||||
ustop/p_unasp_ [p] base2 | ustop/p_unasp_ [p] base2 | ||||
[p] fi | [p] fi | ||||
[p] hi | [p] hi | ||||
[t] sk | [t] sk | ||||
[t] el | [t] el | ||||
[th] zh | [th] zh | ||||
[th] th | |||||
ustop/t_dnt [t] base | ustop/t_dnt [t] base | ||||
[t[] base | [t[] base | ||||
[t] base2 | [t] base2 | ||||
[t] sk | [t] sk | ||||
[t] el | [t] el | ||||
ustop/tsh_pzd [tS;] zh | ustop/tsh_pzd [tS;] zh | ||||
[ch] th | |||||
ustop/tsh_pzd_unasp [tS;] zh | ustop/tsh_pzd_unasp [tS;] zh | ||||
[c] th | |||||
ustop/tsh_sr.wav [tS] sr | ustop/tsh_sr.wav [tS] sr | ||||
ustop/ts_pzd [tS;] base | ustop/ts_pzd [tS;] base | ||||
[ts;] base | [ts;] base | ||||
[dZ;] sr | [dZ;] sr | ||||
ustop/ts_unasp [ts] zh | ustop/ts_unasp [ts] zh | ||||
ustop/t_unasp [t] zh | ustop/t_unasp [t] zh | ||||
[t] th | |||||
vdiph/0i [OI] pt | vdiph/0i [OI] pt | ||||
[OI] grc | [OI] grc | ||||
[OI] vi | [OI] vi | ||||
[O:I] th | |||||
vdiph/0i_2 [OI] en_sc | vdiph/0i_2 [OI] en_sc | ||||
[OI] en_wi | [OI] en_wi | ||||
[AI] no | [AI] no | ||||
vdiph2/i@_2 [i@] en_wm | vdiph2/i@_2 [i@] en_wm | ||||
vdiph2/ie [i@] en_wi | vdiph2/ie [i@] en_wi | ||||
[ie] fi | [ie] fi | ||||
[ia] th | |||||
[i:a] th | |||||
vdiph2/ii@ [i@] en | vdiph2/ii@ [i@] en | ||||
[i@3] en | |||||
vdiph2/ii@_3 [i@] vi | vdiph2/ii@_3 [i@] vi | ||||
vdiph2/iioo [io] zh | vdiph2/iioo [io] zh | ||||
vdiph2/iu [iU] base2 | vdiph2/iu [iU] base2 | ||||
[iU] vi | [iU] vi | ||||
[iu] zhy | [iu] zhy | ||||
[iU] th | |||||
vdiph2/iu_2 [iu] fi | vdiph2/iu_2 [iu] fi | ||||
vdiph2/iu_3 [iu] af | vdiph2/iu_3 [iu] af | ||||
vdiph2/iu_4 [Iu] cy | vdiph2/iu_4 [Iu] cy | ||||
vdiph2/o_oo [o@] en_wi | vdiph2/o_oo [o@] en_wi | ||||
[o] is | [o] is | ||||
vdiph2/u-@ [y@] vi | vdiph2/u-@ [y@] vi | ||||
[y:a] th | |||||
vdiph2/u#@ [U@] en_sc | vdiph2/u#@ [U@] en_sc | ||||
vdiph2/uo [uo] fi | vdiph2/uo [uo] fi | ||||
vdiph2/uu@ [U@] en | vdiph2/uu@ [U@] en | ||||
[U@] en_n | [U@] en_n | ||||
[U@] en_wm | [U@] en_wm | ||||
[u@] vi | [u@] vi | ||||
[ua] th | |||||
[u:a] th | |||||
vdiph2/y#@ [Y@] af | vdiph2/y#@ [Y@] af | ||||
[y@] zh | [y@] zh | ||||
vdiph2/yu [yU] nl | vdiph2/yu [yU] nl | ||||
vdiph2/y-y# [yY] fi | vdiph2/y-y# [yY] fi | ||||
vdiph/8u [oU] en_us | vdiph/8u [oU] en_us | ||||
[ou] zh | [ou] zh | ||||
vdiph/aae [aI] en_us | |||||
vdiph/aai [aai] zhy | vdiph/aai [aai] zhy | ||||
vdiph/aai_2 [AI] af | vdiph/aai_2 [AI] af | ||||
[AY] cy | [AY] cy | ||||
[aI] it | [aI] it | ||||
[aI] pt | [aI] pt | ||||
[a:I] vi | [a:I] vi | ||||
[aI] th | |||||
[a:I] th | |||||
[aI] id | |||||
vdiph/ai_2 [aI] cy | vdiph/ai_2 [aI] cy | ||||
[aY] cy | [aY] cy | ||||
vdiph/ai_3 [aI] no | vdiph/ai_3 [aI] no | ||||
[aI2] en_sc | [aI2] en_sc | ||||
[aI] is | [aI] is | ||||
vdiph/ai_en2 [aI] en | vdiph/ai_en2 [aI] en | ||||
vdiph/aoo [aU] en_us | |||||
vdiph/au [aU] en | vdiph/au [aU] en | ||||
[aU] af | [aU] af | ||||
[a:U] vi | [a:U] vi | ||||
[aU] th | |||||
[a:U] th | |||||
vdiph/au# [aU] en_sc | vdiph/au# [aU] en_sc | ||||
vdiph/au_2 [aU] en_us | |||||
[au] zhy | |||||
vdiph/au_2 [au] zhy | |||||
vdiph/au_3 [aU] en_rp | vdiph/au_3 [aU] en_rp | ||||
vdiph/au_4 [aU] base2 | vdiph/au_4 [aU] base2 | ||||
[aU] cy | [aU] cy | ||||
[aU] sk | [aU] sk | ||||
[aU] it | [aU] it | ||||
[aU] is | [aU] is | ||||
[aU] id | |||||
vdiph/ee-e [E:] hi | vdiph/ee-e [E:] hi | ||||
vdiph/eei [EI] base2 | vdiph/eei [EI] base2 | ||||
[eI] en | [eI] en | ||||
[EI] vi | [EI] vi | ||||
vdiph/eei_2 [eI] eo | vdiph/eei_2 [eI] eo | ||||
[ei] fi | [ei] fi | ||||
[eI] id | |||||
vdiph/eei_3 [eI] en_rp | vdiph/eei_3 [eI] en_rp | ||||
[eI] sk | [eI] sk | ||||
vdiph/eeu [EU] pt | vdiph/eeu [EU] pt | ||||
[EU] grc | [EU] grc | ||||
[EU] vi | [EU] vi | ||||
[eu] zhy | [eu] zhy | ||||
[E:U] th | |||||
vdiph/eeu_2 [EU] la | vdiph/eeu_2 [EU] la | ||||
[EU] pt_pt | [EU] pt_pt | ||||
vdiph/eeu_3 [aU] en_n | vdiph/eeu_3 [aU] en_n | ||||
[eU] sk | [eU] sk | ||||
[eU] pt | [eU] pt | ||||
[eU] vi | [eU] vi | ||||
[eU] th | |||||
[e:U] th | |||||
vdiph/eu_2 [eu] fi | vdiph/eu_2 [eu] fi | ||||
vdiph/@i [@:I] th | |||||
vdiph/&i [&i] fi | vdiph/&i [&i] fi | ||||
[aI] hi | [aI] hi | ||||
vdiph/@i_2 [eI] af | vdiph/@i_2 [eI] af | ||||
[oI] it | [oI] it | ||||
[OI] la | [OI] la | ||||
[oI] vi | [oI] vi | ||||
[o:I] th | |||||
vdiph/oi_2 [oI] af | vdiph/oi_2 [oI] af | ||||
vdiph/ooi [OI] en | vdiph/ooi [OI] en | ||||
[OI] en_n | [OI] en_n | ||||
[OI] no | [OI] no | ||||
[oi] zhy | [oi] zhy | ||||
vdiph/ooi_2 [OI] af | vdiph/ooi_2 [OI] af | ||||
vdiph/ooi_3 [OI] en_us | |||||
[OI] en_rp | |||||
vdiph/ooi_3 [OI] en_rp | |||||
[aI] en_wm | [aI] en_wm | ||||
vdiph/ooi_4 [OI] en_us | |||||
vdiph/oou [oU] cs | vdiph/oou [oU] cs | ||||
[OU] grc | [OU] grc | ||||
vdiph/ou [ou] fi | vdiph/ou [ou] fi | ||||
vdiph/@u_2 [oU] en_rp | vdiph/@u_2 [oU] en_rp | ||||
vdiph/@u_3 [@U] ro | vdiph/@u_3 [@U] ro | ||||
vdiph/@u_en [oU] en | vdiph/@u_en [oU] en | ||||
[@U] id | |||||
vdiph/ui [uI] base2 | vdiph/ui [uI] base2 | ||||
[uI] en | [uI] en | ||||
[uI] eo | [uI] eo | ||||
[ui] fi | [ui] fi | ||||
[uI] vi | [uI] vi | ||||
[ui] zhy | [ui] zhy | ||||
[uI] th | |||||
[u:I] th | |||||
vdiph/u-i [yI] vi | vdiph/u-i [yI] vi | ||||
vdiph/ui_2 [uI] af | vdiph/ui_2 [uI] af | ||||
vdiph/ui_3 [uI] cy | vdiph/ui_3 [uI] cy | ||||
voc/dh_ [D] base | voc/dh_ [D] base | ||||
[D] es | [D] es | ||||
voc/j [J^] base | voc/j [J^] base | ||||
[J3] es | |||||
voc/j2 [J2] es | |||||
voc/Q [Q] base | voc/Q [Q] base | ||||
[Q^] base | [Q^] base | ||||
voc/Q_ [Q] base | voc/Q_ [Q] base | ||||
[v2] nl | [v2] nl | ||||
[v;] ro | [v;] ro | ||||
[v] is | [v] is | ||||
voc/v2 [v] es | |||||
voc/vj [v] base | |||||
vocw/dh [D] base | vocw/dh [D] base | ||||
[D] es | [D] es | ||||
vocw/Q [Q] base | vocw/Q [Q] base | ||||
[v] base | [v] base | ||||
[v] fr | [v] fr | ||||
[v] ta | [v] ta | ||||
[v] es | |||||
[v;] ro | [v;] ro | ||||
vocw/zh [Z] base | vocw/zh [Z] base | ||||
[Z;] ro | [Z;] ro | ||||
[@] en_rp | [@] en_rp | ||||
[V] cy | [V] cy | ||||
[@4] hi | [@4] hi | ||||
[@] th | |||||
vowel/@- [@-] base | vowel/@- [@-] base | ||||
[r*] hr | [r*] hr | ||||
vowel/& [a] en_rp | vowel/& [a] en_rp | ||||
vowel/0_2 [0] en_n | vowel/0_2 [0] en_n | ||||
[O] pt_pt | [O] pt_pt | ||||
[o] sw | [o] sw | ||||
vowel/0_3 [O:] en_us | |||||
vowel/0_3 [O] en_us | |||||
[O:] en_us | |||||
[O] en_sc | [O] en_sc | ||||
[0] en_rp | [0] en_rp | ||||
[A] hu | [A] hu | ||||
vowel/3_en [3:] en | vowel/3_en [3:] en | ||||
[e@] en_wm | [e@] en_wm | ||||
[3:] af | [3:] af | ||||
[@:] th | |||||
vowel/@_4 [@] nl | vowel/@_4 [@] nl | ||||
[@] no | [@] no | ||||
vowel/8_2 [U] en_us | vowel/8_2 [U] en_us | ||||
[a] hr | [a] hr | ||||
[a] it | [a] it | ||||
[a] zh | [a] zh | ||||
[a] th | |||||
[a:] th | |||||
[a] id | |||||
vowel/a# [a/] base2 | vowel/a# [a/] base2 | ||||
[a2] en_sc | [a2] en_sc | ||||
[a2] en_wi | [a2] en_wi | ||||
[a] pt_pt | [a] pt_pt | ||||
[a] ro | [a] ro | ||||
[a:] vi | [a:] vi | ||||
vowel/a#_2 [a] ta | |||||
[&] hr | |||||
vowel/a#_2 [&] hr | |||||
[a2] sv | [a2] sv | ||||
[&] is | [&] is | ||||
[a/] sw | [a/] sw | ||||
[a] zhy | [a] zhy | ||||
vowel/a_4 [a/] el | vowel/a_4 [a/] el | ||||
[a] vi | [a] vi | ||||
vowel/a_5 [a/] it | |||||
vowel/a_5 [a:] ta | |||||
[a/] it | |||||
[a] la | [a] la | ||||
[a] sv | [a] sv | ||||
[a] sw | [a] sw | ||||
vowel/aa [a] fi | vowel/aa [a] fi | ||||
[A] fr_ca | [A] fr_ca | ||||
[a:] ta | |||||
[A] no | [A] no | ||||
[A:] no | [A:] no | ||||
[aa] zhy | [aa] zhy | ||||
[e] pt_pt | [e] pt_pt | ||||
[e] grc | [e] grc | ||||
[e] vi | [e] vi | ||||
[e] th | |||||
[e:] th | |||||
[e] id | |||||
vowel/e# [I] en_sc | vowel/e# [I] en_sc | ||||
[I2] en_sc | [I2] en_sc | ||||
vowel/e_2 [eI] en_sc | vowel/e_2 [eI] en_sc | ||||
vowel/ee_6 [E] en_n | vowel/ee_6 [E] en_n | ||||
[&] sk | [&] sk | ||||
[E3] sv | [E3] sv | ||||
[E] th | |||||
[E:] th | |||||
vowel/e_mid [E] en_rp | vowel/e_mid [E] en_rp | ||||
[e] jbo | [e] jbo | ||||
[E] fr_ca | [E] fr_ca | ||||
[E] pt_pt | [E] pt_pt | ||||
[E] no | [E] no | ||||
[E] is | [E] is | ||||
[E] id | |||||
[E2] id | |||||
vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
[E] de | [E] de | ||||
[E2] de | [E2] de | ||||
vowel/@_fnt [@] en_wi | vowel/@_fnt [@] en_wi | ||||
[@2] en_wi | [@2] en_wi | ||||
[@2] hr | [@2] hr | ||||
vowel/@_hgh [@] en_us | |||||
[@2] en_us | |||||
[@5] en_us | |||||
[@] hr | |||||
vowel/@_hgh [@] hr | |||||
vowel/i [i] base2 | vowel/i [i] base2 | ||||
[i:] en_n | [i:] en_n | ||||
[i] en_wm | [i] en_wm | ||||
[i] zhy | [i] zhy | ||||
[i] zh | [i] zh | ||||
[i] sw | [i] sw | ||||
[i] th | |||||
[i:] th | |||||
vowel/i# [i] en_us | vowel/i# [i] en_us | ||||
[i] en_rp | [i] en_rp | ||||
[y:] cy | [y:] cy | ||||
[i] hu | [i] hu | ||||
[I] it | [I] it | ||||
[i] is | [i] is | ||||
vowel/i#_4 [y] th | |||||
[y:] th | |||||
vowel/i_5 [i:] en_sc | vowel/i_5 [i:] en_sc | ||||
vowel/i#_5 [y] pt_pt | vowel/i#_5 [y] pt_pt | ||||
[i/] pt_pt | [i/] pt_pt | ||||
vowel/i_6 [i:] en_us | vowel/i_6 [i:] en_us | ||||
[i] ta | [i] ta | ||||
[i] hr | [i] hr | ||||
[i] id | |||||
vowel/i_en [i:] en | vowel/i_en [i:] en | ||||
[i] vi | [i] vi | ||||
vowel/i_fnt [i:] en_wi | vowel/i_fnt [i:] en_wi | ||||
[@2] hi | [@2] hi | ||||
[@] ro | [@] ro | ||||
[@2] no | [@2] no | ||||
[@] id | |||||
vowel/o [o] base2 | vowel/o [o] base2 | ||||
[o:] en | [o:] en | ||||
[oU] en_wi | [oU] en_wi | ||||
[o:] sv | [o:] sv | ||||
[o] zh | [o] zh | ||||
[u] zh | [u] zh | ||||
[o] th | |||||
[o:] th | |||||
[o] id | |||||
vowel/o- [o-] zh | vowel/o- [o-] zh | ||||
vowel/o_2 [o:] cy | vowel/o_2 [o:] cy | ||||
[o:] hi | [o:] hi | ||||
[O] sv | [O] sv | ||||
[O] no | [O] no | ||||
[o] zhy | [o] zhy | ||||
[O] th | |||||
[O:] th | |||||
[O] id | |||||
vowel/oo_1 [O:] en_n | vowel/oo_1 [O:] en_n | ||||
[O:] en_rp | [O:] en_rp | ||||
[O@] en_rp | [O@] en_rp | ||||
[u:] de | [u:] de | ||||
[u] eo | [u] eo | ||||
[U] fr | [U] fr | ||||
[u] ta | |||||
[u:] ta | |||||
[u:] cs | [u:] cs | ||||
[U] la | [U] la | ||||
[u] zh | [u] zh | ||||
[u] th | |||||
[u:] th | |||||
[u] id | |||||
vowel/u# [u-] en | vowel/u# [u-] en | ||||
[u:] en_sc | [u:] en_sc | ||||
vowel/u_2 [u1] fi | vowel/u_2 [u1] fi | ||||
[u] fi | [u] fi | ||||
[u] fr_ca | [u] fr_ca | ||||
[u:] hi | [u:] hi | ||||
[u:] ta | |||||
[u:] hu | [u:] hu | ||||
[u] nl | [u] nl | ||||
[u] pl | [u] pl | ||||
[U] en_wi | [U] en_wi | ||||
[U] fr_ca | [U] fr_ca | ||||
[U] hi | [U] hi | ||||
[u] ta | |||||
[u] hu | [u] hu | ||||
[U] pt | [U] pt | ||||
[U] no | [U] no | ||||
[V#] ru | [V#] ru | ||||
vowel/V_3 [V] en_rp | vowel/V_3 [V] en_rp | ||||
[V] hi | [V] hi | ||||
[a] ta | |||||
vowel/V_4 [V] en_sc | vowel/V_4 [V] en_sc | ||||
[@:] vi | [@:] vi | ||||
vowel/V_6 [V] en_us | vowel/V_6 [V] en_us | ||||
[3:] en_us | [3:] en_us | ||||
vwl_en_us/a [a] en_us | vwl_en_us/a [a] en_us | ||||
[aa] en_us | [aa] en_us | ||||
vwl_en_us/aai [aI] en_us | |||||
vwl_en_us/ai@ [aI@] en_us | vwl_en_us/ai@ [aI@] en_us | ||||
vwl_en_us/ar [A:] en_us | vwl_en_us/ar [A:] en_us | ||||
[A@] en_us | [A@] en_us | ||||
vwl_en_us/er [e@] en_us | vwl_en_us/er [e@] en_us | ||||
vwl_en_us/ii [I] en_us | vwl_en_us/ii [I] en_us | ||||
[I2] en_us | [I2] en_us | ||||
vwl_en_us/ir [i@] en_us | |||||
vwl_en_us/ir [i@3] en_us | |||||
[i@] en_sc | [i@] en_sc | ||||
vwl_en_us/oo [O] en_us | |||||
vwl_en_us/oor [O@] en_us | |||||
vwl_en_us/or [O:] en_us | vwl_en_us/or [O:] en_us | ||||
[O@] en_us | |||||
[o@] en_us | [o@] en_us | ||||
[O:] en_sc | [O:] en_sc | ||||
vwl_en_us/ur [U@] en_us | vwl_en_us/ur [U@] en_us | ||||
[d] pl | [d] pl | ||||
[d] hr | [d] hr | ||||
[d] ru | [d] ru | ||||
[r] es | |||||
[d;] ro | [d;] ro | ||||
[d] el | [d] el | ||||
[d] is | [d] is | ||||
[d] sw | [d] sw | ||||
x/d_dnt [*2] base | |||||
[d[] base | |||||
x/d_dnt [d[] base | |||||
[d] base2 | [d] base2 | ||||
[d] fi | [d] fi | ||||
[d] hi | [d] hi |
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme i@3 | |||||
vowel starttype (i) endtype (@) | |||||
length 250 | |||||
formants vdiph2/ii@ | |||||
linkout r- | |||||
endphoneme | |||||
phoneme U@ | phoneme U@ | ||||
vowel starttype (u) endtype (@) | vowel starttype (u) endtype (@) |
//******************************************************************* | //******************************************************************* | ||||
phoneme @ // Schwa | |||||
vowel starttype (@) endtype (@) | |||||
formants vowel/@_hgh | |||||
unstressed | |||||
linkout r- | |||||
length 130 | |||||
endphoneme | |||||
phoneme 3 // Schwa, used for rhotic schwa in American | phoneme 3 // Schwa, used for rhotic schwa in American | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
formants vwl_en_us/3_us | formants vwl_en_us/3_us | ||||
// formants vowel/3_2 | |||||
unstressed | unstressed | ||||
linkout r- | linkout r- | ||||
beforevowel @ | beforevowel @ | ||||
length 210 | |||||
endphoneme | |||||
phoneme @2 // Schwa, changes to I before a vowel | |||||
vowel starttype (@) endtype (@) | |||||
formants vowel/@_hgh | |||||
unstressed | |||||
beforevowel I2 | |||||
length 120 | |||||
length 215 | |||||
endphoneme | endphoneme | ||||
phoneme @5 // Schwa, changes to U before a vowel | |||||
vowel starttype (@) endtype (@) | |||||
formants vowel/@_hgh | |||||
unstressed | |||||
beforevowelpause U | |||||
length 130 | |||||
endphoneme | |||||
phoneme @L | phoneme @L | ||||
phoneme a | phoneme a | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 200 | length 200 | ||||
// formants vowel/&_2 | |||||
formants vwl_en_us/a | formants vwl_en_us/a | ||||
reduceto a2 0 | reduceto a2 0 | ||||
endphoneme | endphoneme | ||||
phoneme aa // 'bath' etc. | phoneme aa // 'bath' etc. | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 220 | |||||
// formants vowel/&_2 | |||||
length 215 | |||||
formants vwl_en_us/a | formants vwl_en_us/a | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme I | phoneme I | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 150 | |||||
length 155 | |||||
formants vwl_en_us/ii | formants vwl_en_us/ii | ||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme I2 | phoneme I2 | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
unstressed | unstressed | ||||
length 150 | |||||
length 155 | |||||
formants vwl_en_us/ii | formants vwl_en_us/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 200 | |||||
length 190 | |||||
// formants vwl_en_us/i_final3 | // formants vwl_en_us/i_final3 | ||||
formants vowel/i# | formants vowel/i# | ||||
linkout ; | linkout ; | ||||
phoneme 0 | phoneme 0 | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 200 | |||||
length 195 | |||||
formants vowel/aa_8 | formants vowel/aa_8 | ||||
reduceto @ 0 | reduceto @ 0 | ||||
endphoneme | endphoneme | ||||
phoneme V | phoneme V | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 165 | |||||
// formants vowel/V | |||||
length 155 | |||||
formants vowel/V_6 | formants vowel/V_6 | ||||
reduceto @ 0 | reduceto @ 0 | ||||
endphoneme | endphoneme | ||||
phoneme A: | phoneme A: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 200 | |||||
length 215 | |||||
formants vowel/aa_8 | formants vowel/aa_8 | ||||
before r vwl_en_us/ar | before r vwl_en_us/ar | ||||
linkout r- | linkout r- | ||||
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 240 | |||||
length 255 | |||||
formants vwl_en_us/ar | formants vwl_en_us/ar | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme 3: | phoneme 3: | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 220 | |||||
length 240 | |||||
formants vwl_en_us/3_us | formants vwl_en_us/3_us | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme O: | phoneme O: | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 200 | |||||
length 205 | |||||
formants vowel/0_3 | formants vowel/0_3 | ||||
before r vwl_en_us/or | before r vwl_en_us/or | ||||
reduceto @ 0 | reduceto @ 0 | ||||
phoneme O@ | phoneme O@ | ||||
vowel starttype (o) endtype (@) | vowel starttype (o) endtype (@) | ||||
length 270 | |||||
// formants vwl_en_us/oor | |||||
formants vwl_en_us/or | |||||
length 265 | |||||
formants vwl_en_us/oor | |||||
// formants vwl_en_us/or | |||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme o@ | phoneme o@ | ||||
vowel starttype (o) endtype (@) | vowel starttype (o) endtype (@) | ||||
length 270 | |||||
length 265 | |||||
formants vwl_en_us/or | formants vwl_en_us/or | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 200 | length 200 | ||||
formants vwl_en_us/oo | |||||
formants vowel/0_3 | |||||
reduceto @ 0 | reduceto @ 0 | ||||
endphoneme | endphoneme | ||||
phoneme u: | phoneme u: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 170 | |||||
length 175 | |||||
formants vowel/u#_5 | formants vowel/u#_5 | ||||
// before l/2 vwl_en/u_L-40+l/L2_uL | // before l/2 vwl_en/u_L-40+l/L2_uL | ||||
endphoneme | endphoneme | ||||
phoneme aU | phoneme aU | ||||
vowel starttype (a) endtype (u) | |||||
length 210 | |||||
formants vdiph/au_2 | |||||
vowel starttype (a) endtype (o) | |||||
length 235 | |||||
formants vdiph/aoo | |||||
endphoneme | endphoneme | ||||
phoneme oU | phoneme oU | ||||
vowel starttype (@) endtype (u) | vowel starttype (@) endtype (u) | ||||
length 240 | |||||
length 235 | |||||
formants vdiph/8u | formants vdiph/8u | ||||
endphoneme | endphoneme | ||||
phoneme aI | phoneme aI | ||||
vowel starttype (a) endtype (i) | vowel starttype (a) endtype (i) | ||||
length 235 | length 235 | ||||
formants vwl_en_us/aai | |||||
formants vdiph/aae | |||||
endphoneme | endphoneme | ||||
vowel starttype (e) endtype (i) | vowel starttype (e) endtype (i) | ||||
length 220 | length 220 | ||||
formants vdiph2/ei_4 | formants vdiph2/ei_4 | ||||
// formants vwl_en_us/ei | |||||
endphoneme | endphoneme | ||||
phoneme OI | phoneme OI | ||||
vowel starttype (o) endtype (i) | vowel starttype (o) endtype (i) | ||||
length 300 | |||||
formants vdiph/ooi_3 | |||||
length 290 | |||||
formants vdiph/ooi_4 | |||||
endphoneme | endphoneme | ||||
phoneme e@ | phoneme e@ | ||||
vowel starttype (e) endtype (@) | vowel starttype (e) endtype (@) | ||||
length 280 | |||||
length 275 | |||||
formants vwl_en_us/er | formants vwl_en_us/er | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme i@ | |||||
phoneme i@3 | |||||
vowel starttype (i) endtype (@) | vowel starttype (i) endtype (@) | ||||
length 230 | |||||
length 255 | |||||
formants vwl_en_us/ir | formants vwl_en_us/ir | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme U@ | phoneme U@ | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 230 | |||||
length 235 | |||||
formants vwl_en_us/ur | formants vwl_en_us/ur | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme aI@ | phoneme aI@ | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 270 | |||||
length 265 | |||||
formants vwl_en_us/ai@ | formants vwl_en_us/ai@ | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme aU@ | phoneme aU@ | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 270 | |||||
length 260 | |||||
formants vwl_en/aU@ | formants vwl_en/aU@ | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme |
vcd pla frc sibilant | vcd pla frc sibilant | ||||
vowelin f1=0 f2=1700 -300 300 f3=-300 80 | vowelin f1=0 f2=1700 -300 300 f3=-300 80 | ||||
vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | ||||
formants voc/zh_2+r3/rz_cs%30 | |||||
formants voc/zh_2+r3/rz_cs%25 | |||||
lengthmod 6 | lengthmod 6 | ||||
endphoneme | endphoneme | ||||
endphoneme | endphoneme | ||||
phoneme v // TEST | |||||
vcd lbd frc | |||||
vowelin f1=0 f2=1000 -300 -200 f3=-300 100 | |||||
vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | |||||
lengthmod 6 | |||||
formants voc/v2+vocw/v // shorter | |||||
endphoneme | |||||
phoneme J2 // TEST palatal fricative (Kirshenbaum C<vcd>) | |||||
vcd pal frc palatal | |||||
vowelin f1=2 f2=2700 400 600 f3=200 70 | |||||
vowelout f1=2 f2=2700 400 600 f3=200 70 len=100 | |||||
lengthmod 6 | |||||
formants voc/j2+ufric/ch%50 | |||||
phoneme r // TEST flap ?? | |||||
vcd alv flp | |||||
brkafter | |||||
vowelout f1=3 f2=1500 -400 300 f3=-100 80 rms=35 len=50 | |||||
vowelin f1=0 f2=1500 -300 300 f3=-100 80 | |||||
formants d/tap4+x/d_%30 | |||||
lengthmod 3 | |||||
endphoneme | endphoneme | ||||
phoneme J3 // TEST palatal fricative (Kirshenbaum C<vcd>) | |||||
vcd pal frc palatal | |||||
vowelin f1=2 f2=2700 400 600 f3=200 70 | |||||
vowelout f1=2 f2=2700 400 600 f3=200 70 len=100 | |||||
lengthmod 6 | |||||
formants voc/j+ufric/ch%5 | |||||
endphoneme | |||||
phoneme a | phoneme a | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 130 | length 130 | ||||
formants vowel/a#_2 | |||||
formants vowel/V_3 | |||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 270 | length 270 | ||||
formants vowel/aa | |||||
formants vowel/a_5 | |||||
endphoneme | endphoneme | ||||
phoneme u | phoneme u | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 130 | length 130 | ||||
formants vowel/uu_bck | |||||
formants vowel/u | |||||
endphoneme | endphoneme | ||||
phoneme u: | phoneme u: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 270 | length 270 | ||||
formants vowel/u_bck | |||||
formants vowel/u | |||||
endphoneme | endphoneme | ||||
phonemenumber 22 _X1 // a language specific action | phonemenumber 22 _X1 // a language specific action | ||||
phonemenumber 23 _| // very short pause | phonemenumber 23 _| // very short pause | ||||
phonemenumber 24 _:: // long pause | phonemenumber 24 _:: // long pause | ||||
phonemenumber 25 _;_ // clause pause | |||||
phonemenumber 26 t# // reduced version of [t] | |||||
phonemenumber 25 t# // reduced version of [t] | |||||
phonemenumber 26 '! // stress - emphasized | |||||
phonemenumber 27 _;_ // clause pause | |||||
// The base phoneme table contains the utility phonemes, the consonants, | // The base phoneme table contains the utility phonemes, the consonants, | ||||
// and a schwa. The vowels are defined in the language specific phoneme | // and a schwa. The vowels are defined in the language specific phoneme | ||||
pause | pause | ||||
formants NULL | formants NULL | ||||
starttype _ endtype _ | starttype _ endtype _ | ||||
length 150 | |||||
length 200 | |||||
lengthmod 1 | lengthmod 1 | ||||
endphoneme | endphoneme | ||||
lengthmod 3 | lengthmod 3 | ||||
endphoneme | endphoneme | ||||
phoneme *2 // TEST flap | |||||
vcd alv flp | |||||
vowelout f1=2 f2=1700 -300 200 f3=-300 60 len=15 brk | |||||
vowelin f1=2 f2=1700 -300 150 f3=-200 80 | |||||
formants d/tap2+x/d_dnt%30 | |||||
after _ NULL | |||||
after @ d/x_tap | |||||
vowelin f1=1 f2=1700 -300 150 f3=-200 80 | |||||
before (i) d/tap2+x/d_dnt%30 | |||||
lengthmod 3 | |||||
switchvoicing t | |||||
endphoneme | |||||
phoneme dZ | phoneme dZ | ||||
vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | ||||
lengthmod 6 | lengthmod 6 | ||||
formants voc/v+vocw/v | formants voc/v+vocw/v | ||||
before (r) voc/vj+vocw/v | |||||
before _ voc/v_+vocw/v | before _ voc/v_+vocw/v | ||||
switchvoicing f | switchvoicing f | ||||
endphoneme | endphoneme |
static void event_notify(espeak_EVENT* event) | static void event_notify(espeak_EVENT* event) | ||||
{ | { | ||||
ENTER("event_notify"); | ENTER("event_notify"); | ||||
static unsigned int a_old_uid = 0; | static unsigned int a_old_uid = 0; | ||||
espeak_EVENT events[2]; | espeak_EVENT events[2]; | ||||
memcpy(&events[0],event,sizeof(espeak_EVENT)); // the event parameter in the callback function should be an array of eventd | memcpy(&events[0],event,sizeof(espeak_EVENT)); // the event parameter in the callback function should be an array of eventd | ||||
memcpy(&events[1],event,sizeof(espeak_EVENT)); | |||||
events[1].type = espeakEVENT_LIST_TERMINATED; // ... terminated by an event type=0 | events[1].type = espeakEVENT_LIST_TERMINATED; // ... terminated by an event type=0 | ||||
if (event && my_callback) | if (event && my_callback) | ||||
switch(event->type) | switch(event->type) | ||||
{ | { | ||||
case espeakEVENT_SENTENCE: | case espeakEVENT_SENTENCE: | ||||
my_callback(NULL, 0, event); | |||||
my_callback(NULL, 0, events); | |||||
a_old_uid = event->unique_identifier; | a_old_uid = event->unique_identifier; | ||||
break; | break; | ||||
case espeakEVENT_MSG_TERMINATED: | |||||
case espeakEVENT_MARK: | |||||
case espeakEVENT_WORD: | case espeakEVENT_WORD: | ||||
case espeakEVENT_MSG_TERMINATED: | |||||
case espeakEVENT_END: | |||||
case espeakEVENT_PHONEME: | |||||
{ | { | ||||
// jonsd - I'm not sure what this is for. gilles says it's for when Gnome Speech reads a file of blank lines | |||||
if (a_old_uid != event->unique_identifier) | if (a_old_uid != event->unique_identifier) | ||||
{ | { | ||||
espeak_EVENT_TYPE a_new_type = event->type; | |||||
event->type = espeakEVENT_SENTENCE; | |||||
my_callback(NULL, 0, event); | |||||
event->type = a_new_type; | |||||
espeak_EVENT_TYPE a_new_type = events[0].type; | |||||
events[0].type = espeakEVENT_SENTENCE; | |||||
my_callback(NULL, 0, events); | |||||
events[0].type = a_new_type; | |||||
usleep(50000); | usleep(50000); | ||||
} | } | ||||
my_callback(NULL, 0, event); | |||||
my_callback(NULL, 0, events); | |||||
a_old_uid = event->unique_identifier; | a_old_uid = event->unique_identifier; | ||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
case espeakEVENT_LIST_TERMINATED: | |||||
case espeakEVENT_MARK: | |||||
case espeakEVENT_PLAY: | |||||
case espeakEVENT_END: | |||||
case espeakEVENT_LIST_TERMINATED: | |||||
case espeakEVENT_PLAY: | |||||
break; | break; | ||||
} | } | ||||
} | } |
unsigned int pos; | unsigned int pos; | ||||
static int value; | static int value; | ||||
if(f == NULL) | |||||
return; | |||||
fflush(f); | fflush(f); | ||||
pos = ftell(f); | pos = ftell(f); | ||||
int TestSynthCallback(short *wav, int numsamples, espeak_EVENT *events) | int TestSynthCallback(short *wav, int numsamples, espeak_EVENT *events) | ||||
{//==================================================================== | {//==================================================================== | ||||
int type; | int type; | ||||
f_events = fopen("/home/jsd1/speechdata/text/events","a"); | |||||
fprintf(f_events,"--\n"); | fprintf(f_events,"--\n"); | ||||
if(f_wavtest == NULL) return(0); | |||||
while((type = events->type) != 0) | while((type = events->type) != 0) | ||||
{ | { | ||||
fprintf(f_events,"%5d %4d (%2d) %d ",events->audio_position,events->text_position,events->length,type); | |||||
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); | |||||
if((type==3) || (type==4)) | if((type==3) || (type==4)) | ||||
fprintf(f_events,"'%s'\n",events->id.name); | fprintf(f_events,"'%s'\n",events->id.name); | ||||
else | else | ||||
events++; | events++; | ||||
} | } | ||||
if(wav == NULL) | |||||
if((wav == NULL) && (f_wavtest != NULL)) | |||||
{ | { | ||||
fprintf(f_events,"Finished\n"); | fprintf(f_events,"Finished\n"); | ||||
CloseWaveFile3(f_wavtest); | CloseWaveFile3(f_wavtest); | ||||
f_wavtest = NULL; | f_wavtest = NULL; | ||||
fclose(f_events); | |||||
return(0); | |||||
} | } | ||||
fclose(f_events); | |||||
if(f_wavtest == NULL) return(0); | |||||
fwrite(wav,numsamples*2,1,f_wavtest); | fwrite(wav,numsamples*2,1,f_wavtest); | ||||
return(0); | return(0); | ||||
} | } | ||||
fclose(f_out); | fclose(f_out); | ||||
} | } | ||||
void Test3() | |||||
{ | |||||
espeak_VOICE voicespec; | |||||
espeak_VOICE *newvoice; | |||||
int x; | |||||
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,100,NULL,0); | |||||
memset(&voicespec,0,sizeof(voicespec)); | |||||
voicespec.languages = "de"; | |||||
voicespec.gender = 2; | |||||
espeak_SetVoiceByProperties(&voicespec); | |||||
newvoice = espeak_GetCurrentVoice(); | |||||
x = 1; | |||||
} | |||||
#endif | |||||
#define OUTPUT_MODE AUDIO_OUTPUT_PLAYBACK | |||||
#define TEXT "Hello world." | |||||
#define TEXT_SSML ("<speak>" TEXT "</speak>") | |||||
static void | |||||
speak(const char *text) | |||||
{ | |||||
int result; | |||||
result = espeak_Synth(text, strlen(text) + 1, 0, POS_CHARACTER, 0, espeakSSML, NULL, NULL); | |||||
assert(result == EE_OK); | |||||
} | |||||
int test4() { | |||||
espeak_ERROR result; | |||||
int sample_rate; | |||||
sample_rate = espeak_Initialize(OUTPUT_MODE, 2000, NULL, 0); | |||||
assert(sample_rate != EE_INTERNAL_ERROR); | |||||
espeak_SetSynthCallback(synth_callback); | |||||
espeak_VOICE voice; | |||||
memset(&voice, 0, sizeof(espeak_VOICE)); | |||||
// voice.name = "default"; | |||||
// voice.languages = "en"; | |||||
voice.gender = 2; | |||||
// voice.age = 4; | |||||
result = espeak_SetVoiceByProperties(&voice); | |||||
assert(result == EE_OK); | |||||
speak(TEXT_SSML); | |||||
speak(TEXT_SSML); | |||||
espeak_Synchronize(); | |||||
#ifdef deleted | |||||
/* Now the same ting without ssml tags. */ | |||||
result = espeak_SetVoiceByProperties(&voice); | |||||
assert(result == EE_OK); | |||||
speak(TEXT); | |||||
speak(TEXT); | |||||
espeak_Synchronize(); | |||||
#endif | #endif | ||||
result = espeak_Terminate(); | |||||
assert(result == EE_OK); | |||||
return 0; | |||||
} | |||||
const char* text1 = "Hello World2. <audio src=\"here\"> Some text</audio> This is the second sentence"; | |||||
const char* text1 = "Hello, World2 <mark name=\"mark2\"/>. This is the second sentence"; | |||||
void TestTest(int control) | void TestTest(int control) | ||||
{//======================= | {//======================= | ||||
unsigned int ix=0; | unsigned int ix=0; | ||||
char textbuf[2000]; | char textbuf[2000]; | ||||
espeak_VOICE voice; | espeak_VOICE voice; | ||||
unsigned int unique_identifier=0; | |||||
static unsigned int unique_identifier= 123; | |||||
static int user_data = 456; | |||||
//FindPhonemesUsed(); | |||||
//return; | |||||
//CharsetToUnicode("ISO-8859-4"); | //CharsetToUnicode("ISO-8859-4"); | ||||
//CharsetToUnicode("ISCII"); | //CharsetToUnicode("ISCII"); | ||||
} | } | ||||
memset(&voice,0,sizeof(voice)); | memset(&voice,0,sizeof(voice)); | ||||
f = fopen("/home/jsd1/speechdata/text/test","r"); | |||||
f = fopen("/home/jsd1/speechdata/text/test.txt","r"); | |||||
if(f==NULL) | if(f==NULL) | ||||
return; | return; | ||||
f_wavtest = OpenWaveFile3("/home/jsd1/speechdata/text/test.wav"); | f_wavtest = OpenWaveFile3("/home/jsd1/speechdata/text/test.wav"); | ||||
f_events = fopen("/home/jsd1/speechdata/text/events","w"); | f_events = fopen("/home/jsd1/speechdata/text/events","w"); | ||||
fprintf(f_events,"Audio Text Length Type Id\n"); | |||||
fprintf(f_events,"Type Audio Text Length Id\n"); | |||||
fclose(f_events); | |||||
espeak_Initialize(AUDIO_OUTPUT_RETRIEVAL,1000,NULL,1); | |||||
espeak_Initialize(AUDIO_OUTPUT_PLAYBACK,1000,NULL,0); | |||||
espeak_SetSynthCallback(TestSynthCallback); | espeak_SetSynthCallback(TestSynthCallback); | ||||
espeak_SetUriCallback(TestUriCallback); | espeak_SetUriCallback(TestUriCallback); | ||||
espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, NULL); | |||||
espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data); | |||||
espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)(user_data+1)); | |||||
espeak_SetParameter(espeakPUNCTUATION, 1, 0); | espeak_SetParameter(espeakPUNCTUATION, 1, 0); | ||||
espeak_Synchronize(); | espeak_Synchronize(); |
provide a more flexible intonation system. | provide a more flexible intonation system. | ||||
*/ | */ | ||||
// bits in SYLLABLE.flags | |||||
#define SYL_RISE 1 | |||||
#define SYL_EMPHASIS 2 | |||||
#define SYL_END_CLAUSE 4 | |||||
typedef struct { | typedef struct { | ||||
char stress; | char stress; | ||||
char env; | char env; | ||||
char flags; //bit 0=pitch rising, bit1=emnphasized | |||||
char flags; //bit 0=pitch rising, bit1=emnphasized, bit2=end of clause | |||||
char nextph_type; | char nextph_type; | ||||
short pitch1; | short pitch1; | ||||
short pitch2; | short pitch2; | ||||
20, 25, 34, 20, drops_0, 3, 3, 5, oflow, NULL, 15, 28, 0}, | 20, 25, 34, 20, drops_0, 3, 3, 5, oflow, NULL, 15, 28, 0}, | ||||
{PITCHfall, 41, 4, PITCHfall, 41, 27, // 3 exclamation | {PITCHfall, 41, 4, PITCHfall, 41, 27, // 3 exclamation | ||||
20, 25, 34, 24, drops_0, 3, 4, 5, oflow_emf, back_emf, 16, 4, 0}, | |||||
20, 25, 36, 22, drops_0, 3, 4, 5, oflow_emf, back_emf, 16, 4, 0}, | |||||
{PITCHfall, 38, 2, PITCHfall, 42, 30, // 4 statement, emphatic | {PITCHfall, 38, 2, PITCHfall, 42, 30, // 4 statement, emphatic | ||||
20, 25, 34, 22, drops_0, 3, 3, 5, oflow, NULL, 15, 5, 0}, | 20, 25, 34, 22, drops_0, 3, 3, 5, oflow, NULL, 15, 5, 0}, | ||||
if(drop < 0) | if(drop < 0) | ||||
{ | { | ||||
flags = 1; | |||||
flags = SYL_RISE; | |||||
drop = -drop; | drop = -drop; | ||||
} | } | ||||
int option; | int option; | ||||
int group_tone; | int group_tone; | ||||
int group_tone_emph; | int group_tone_emph; | ||||
int group_tone_comma; | |||||
int ph_start=0; | int ph_start=0; | ||||
int st_start; | int st_start; | ||||
int st_clause_end; | |||||
int count; | int count; | ||||
int n_primary; | int n_primary; | ||||
int count_primary; | int count_primary; | ||||
if(p->tone >= 4) | if(p->tone >= 4) | ||||
n_primary++; | n_primary++; | ||||
} | } | ||||
else | |||||
if((p->ph->code == phonPAUSE_CLAUSE) && (n_st > 0)) | |||||
{ | |||||
syllable_tab[n_st-1].flags |= SYL_END_CLAUSE; | |||||
} | |||||
} | } | ||||
syllable_tab[n_st].stress = 0; // extra 0 entry at the end | syllable_tab[n_st].stress = 0; // extra 0 entry at the end | ||||
group_tone = punct_to_tone[option][clause_type]; | group_tone = punct_to_tone[option][clause_type]; | ||||
group_tone_emph = punct_to_tone[option][5]; // emphatic form of statement | group_tone_emph = punct_to_tone[option][5]; // emphatic form of statement | ||||
group_tone_comma = punct_to_tone[option][1]; // emphatic form of statement | |||||
if(clause_type == 4) | if(clause_type == 4) | ||||
no_tonic = 1; /* incomplete clause, used for abbreviations such as Mr. Dr. Mrs. */ | no_tonic = 1; /* incomplete clause, used for abbreviations such as Mr. Dr. Mrs. */ | ||||
if(syllable_tab[ix].stress == 6) | if(syllable_tab[ix].stress == 6) | ||||
{ | { | ||||
// emphasize this syllable, but don't end the current tone group | // emphasize this syllable, but don't end the current tone group | ||||
syllable_tab[st_ix].flags = 2; | |||||
syllable_tab[st_ix].flags = SYL_EMPHASIS; | |||||
syl->stress = 5; | syl->stress = 5; | ||||
break; | break; | ||||
} | } | ||||
if(syl->stress == 6) | if(syl->stress == 6) | ||||
{ | { | ||||
// an emphasized syllable, end the tone group after the next primary stress | // an emphasized syllable, end the tone group after the next primary stress | ||||
syllable_tab[st_ix].flags = 2; | |||||
syllable_tab[st_ix].flags = SYL_EMPHASIS; | |||||
count = 0; | count = 0; | ||||
if((n_primary - count_primary) > 1) | if((n_primary - count_primary) > 1) | ||||
st_start = ix; | st_start = ix; | ||||
} | } | ||||
if((st_start < st_ix) && (syl->flags & SYL_END_CLAUSE)) | |||||
{ | |||||
// end of clause after this syllable, indicated by a phonPAUSE_CLAUSE phoneme | |||||
st_clause_end = st_ix+1; | |||||
count_pitch_vowels(st_start, st_clause_end, st_clause_end); | |||||
calc_pitches(st_start, st_clause_end, group_tone_comma); | |||||
st_start = st_clause_end; | |||||
} | |||||
} | } | ||||
if(st_start < st_ix) | if(st_start < st_ix) | ||||
p->pitch2 = x; | p->pitch2 = x; | ||||
p->env = PITCHfall; | p->env = PITCHfall; | ||||
if(syl->flags & 1) | |||||
if(syl->flags & SYL_RISE) | |||||
{ | { | ||||
p->env = PITCHrise; | p->env = PITCHrise; | ||||
} | } | ||||
if(p->tone > 5) | if(p->tone > 5) | ||||
p->env = syl->env; | p->env = syl->env; | ||||
if(syl->flags & 2) | |||||
if(syl->flags & SYL_EMPHASIS) | |||||
{ | { | ||||
p->tone |= 8; // emphasized | p->tone |= 8; // emphasized | ||||
} | } |
#define phonPAUSE_LONG 24 | #define phonPAUSE_LONG 24 | ||||
#define phonT_REDUCED 25 | #define phonT_REDUCED 25 | ||||
#define phonSTRESS_TONIC 26 | #define phonSTRESS_TONIC 26 | ||||
#define phonPAUSE_CLAUSE 27 | |||||
extern const unsigned char pause_phonemes[8]; // 0, vshort, short, pause, long, glottalstop | extern const unsigned char pause_phonemes[8]; // 0, vshort, short, pause, long, glottalstop | ||||
// place of articulation | // place of articulation |
char *p_textinput; | char *p_textinput; | ||||
wchar_t *p_wchar_input; | wchar_t *p_wchar_input; | ||||
int ungot_char; | int ungot_char; | ||||
char *ungot_word = NULL; | |||||
int end_of_input; | int end_of_input; | ||||
int ignore_text=0; // set during <sub> ... </sub> to ignore text which has been replaced by an alias | int ignore_text=0; // set during <sub> ... </sub> to ignore text which has been replaced by an alias | ||||
f_input = f_in; // for GetC etc | f_input = f_in; // for GetC etc | ||||
if(ungot_word != NULL) | |||||
{ | |||||
strcpy(buf,ungot_word); | |||||
ix += strlen(ungot_word); | |||||
ungot_word = NULL; | |||||
} | |||||
if(ungot_char2 != 0) | if(ungot_char2 != 0) | ||||
{ | { | ||||
c2 = ungot_char2; | c2 = ungot_char2; | ||||
else | else | ||||
if(iswspace(c1)) | if(iswspace(c1)) | ||||
{ | { | ||||
char *p_word; | |||||
if(translator_name == 0x6a626f) | if(translator_name == 0x6a626f) | ||||
{ | { | ||||
// language jbo : lojban | // language jbo : lojban | ||||
// treat "i" or ".i" as end-of-sentence | // treat "i" or ".i" as end-of-sentence | ||||
if(buf[ix-1] == 'i') | |||||
p_word = &buf[ix-1]; | |||||
if(p_word[0] == 'i') | |||||
{ | { | ||||
if(iswspace(buf[ix-2]) || ((buf[ix-2] == '.') && iswspace(buf[ix-3]))) | |||||
if(p_word[-1] == '.') | |||||
p_word--; | |||||
if(p_word[-1] == ' ') | |||||
{ | { | ||||
ungot_word = "i "; | |||||
UngetC(c2); | UngetC(c2); | ||||
buf[ix] = ' '; | |||||
buf[ix+1] = 0; | |||||
p_word[0] = 0; | |||||
return(CLAUSE_PERIOD); | return(CLAUSE_PERIOD); | ||||
} | } | ||||
} | } |
{ | { | ||||
if((p2->type == phVOWEL) && !(p2->ph->phflags & phNONSYLLABIC)) | if((p2->type == phVOWEL) && !(p2->ph->phflags & phNONSYLLABIC)) | ||||
more_syllables++; | more_syllables++; | ||||
if(p2->ph->code == phonPAUSE_CLAUSE) | |||||
end_of_clause = 2; | |||||
} | } | ||||
if(p2->ph->code == phonPAUSE_CLAUSE) | |||||
end_of_clause = 2; | |||||
if((p2->newword & 2) && (more_syllables==0)) | if((p2->newword & 2) && (more_syllables==0)) | ||||
{ | { | ||||
end_of_clause = 2; | end_of_clause = 2; |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.30.15 17.Jan.08"; | |||||
const int version_phdata = 0x013010; | |||||
const char *version_string = "1.31 19.Jan.08"; | |||||
const int version_phdata = 0x013100; | |||||
int option_device_number = -1; | int option_device_number = -1; | ||||
case L_jbo: // Lojban | case L_jbo: // Lojban | ||||
{ | { | ||||
static const short stress_lengths_jbo[8] = {180,180, 220,220, 0,0, 260,280}; | |||||
static const wchar_t jbo_punct_within_word[] = {'.',',','\'',0x2c8,0}; // allow period and comma within a word, also stress marker | |||||
static const short stress_lengths_jbo[8] = {185,170, 200,200, 0,0, 290,300}; | |||||
static const wchar_t jbo_punct_within_word[] = {'.',',','\'',0x2c8,0}; // allow period and comma within a word, also stress marker (from LOPT_SYLLABLE_CAPS) | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_jbo,NULL); | SetupTranslator(tr,stress_lengths_jbo,NULL); | ||||
tr->langopts.stress_rule = 2; | tr->langopts.stress_rule = 2; | ||||
tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | ||||
tr->langopts.numbers = 0x1c01 + 0x4000; | |||||
tr->langopts.numbers = 0x0c01 + 0x4000 + NUM_ROMAN; | |||||
tr->langopts.numbers2 = 0x40; | tr->langopts.numbers2 = 0x40; | ||||
tr->langopts.thousands_sep = 0; //no thousands separator | tr->langopts.thousands_sep = 0; //no thousands separator | ||||
tr->langopts.decimal_sep = ','; | tr->langopts.decimal_sep = ','; | ||||
if(name2 == L('c','s')) | if(name2 == L('c','s')) | ||||
{ | { | ||||
tr->langopts.numbers2 = 0x8; // variant numbers before milliards | |||||
tr->langopts.numbers2 = 0x48; // variant numbers before milliards | |||||
} | } | ||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
case L('t','a'): | case L('t','a'): | ||||
{ | { | ||||
static const short stress_lengths_ta[8] = {190, 190, 210, 210, 0, 0, 230, 250}; | |||||
static const short stress_lengths_ta[8] = {190, 190, 210, 210, 0, 0, 220, 220}; | |||||
static const unsigned char stress_amps_ta[8] = {17,14, 20,19, 20,24, 24,22 }; | static const unsigned char stress_amps_ta[8] = {17,14, 20,19, 20,24, 24,22 }; | ||||
tr = new Translator(); | tr = new Translator(); |