// ?8 Use full vowel, not schwa in some word endings | // ?8 Use full vowel, not schwa in some word endings | ||||
// $alt use strong ending | // $alt use strong ending | ||||
// $alt2 use weak ending | |||||
// letter names, as they are spoken as a single character in text | // letter names, as they are spoken as a single character in text | ||||
_18 'eIti:n | _18 'eIti:n | ||||
_19 n'aInti:n | _19 n'aInti:n | ||||
_2X tw'Enti | _2X tw'Enti | ||||
?3 _2X tw'Eni | |||||
_3X T'3:ti | _3X T'3:ti | ||||
?5 _3X T'IRti | ?5 _3X T'IRti | ||||
_4X f'o@ti | _4X f'o@ti | ||||
?7 _7X s'@v@nti | ?7 _7X s'@v@nti | ||||
_8X 'eIti | _8X 'eIti | ||||
_9X n'aInti | _9X n'aInti | ||||
_0C h'Vndr@d | _0C h'Vndr@d | ||||
_0M1 T'aUz@nd | _0M1 T'aUz@nd | ||||
_0M2 m'Ili@n | _0M2 m'Ili@n | ||||
askew a#skju: | askew a#skju: | ||||
ass as | ass as | ||||
assess a#sEs | assess a#sEs | ||||
asus eIs@s | |||||
atlas atl@s | atlas atl@s | ||||
atop a#t0p | atop a#t0p | ||||
attache at'aSeI $only | attache at'aSeI $only | ||||
bizzare bIz'A@ | bizzare bIz'A@ | ||||
blancmange bl@m0nZ | blancmange bl@m0nZ | ||||
blase blA:zeI | blase blA:zeI | ||||
bleh blEh | |||||
blockade $2 | blockade $2 | ||||
blouse blaUz | blouse blaUz | ||||
bluest blu:@st | bluest blu:@st | ||||
caprice ka#pr'i:s | caprice ka#pr'i:s | ||||
caramel kar@mEl | caramel kar@mEl | ||||
caravan kar@van | caravan kar@van | ||||
carburetor kA@b@r'Et3 | |||||
?3 carburetor kA@b@reIt3 | |||||
career k@r'i@3 | career k@r'i@3 | ||||
caress k@rEs | caress k@rEs | ||||
carpel kA@p@l | carpel kA@p@l | ||||
cascade $2 | cascade $2 | ||||
cashier kaS'i@3 | |||||
cashmere kaSm'i@3 | cashmere kaSm'i@3 | ||||
catastrophe ka#tastr@f%i | catastrophe ka#tastr@f%i | ||||
catarrh k@tA@ | catarrh k@tA@ | ||||
charade Sa#rA:d | charade Sa#rA:d | ||||
charismatic karIsm'atIk | charismatic karIsm'atIk | ||||
charit tSarIt // charitable | charit tSarIt // charitable | ||||
charlatan SA@l@t@n | |||||
chassis SaSi | |||||
chateau SatoU | chateau SatoU | ||||
chemise SEm'i:z | chemise SEm'i:z | ||||
chevrolet SEvr@leI | chevrolet SEvr@leI | ||||
corporal kO@pr@L | corporal kO@pr@L | ||||
corporate kO@p@r@t | corporate kO@p@r@t | ||||
corps kO@ $only | corps kO@ $only | ||||
corral k@r'al | |||||
cosmos k0zm0s | cosmos k0zm0s | ||||
countered kaUnt3d | countered kaUnt3d | ||||
coupon ku:p0n | coupon ku:p0n | ||||
edwardian Edw'O@di@n | edwardian Edw'O@di@n | ||||
efile i:faIl | efile i:faIl | ||||
egg Eg // egging | egg Eg // egging | ||||
egregious Igr'i:dZ@s | |||||
eh eI | eh eI | ||||
eid i:d | eid i:d | ||||
el ,El $only | el ,El $only | ||||
élite Il'i:t | élite Il'i:t | ||||
embed Emb'Ed | embed Emb'Ed | ||||
ember Emb3 | ember Emb3 | ||||
emphasis Emf@sIs | |||||
empire $1 | empire $1 | ||||
emu i:mju: | emu i:mju: | ||||
enroute 0nr'u:t | enroute 0nr'u:t | ||||
famine famIn | famine famIn | ||||
farewell $2 | farewell $2 | ||||
fasten faas@n | fasten faas@n | ||||
fatigue fa#ti:g | |||||
fathom faD@m | fathom faD@m | ||||
(faux pas) f'oU||p'A: | (faux pas) f'oU||p'A: | ||||
favorite feIv@-rI2t // sp. | favorite feIv@-rI2t // sp. | ||||
forever $2 | forever $2 | ||||
forewarn $2 | forewarn $2 | ||||
formid fO@m'Id // formidable | formid fO@m'Id // formidable | ||||
formica fO@m'aIk@ | |||||
fortunate fO@tS@n@t | fortunate fO@tS@n@t | ||||
fortune fO@tSu:n | fortune fO@tSu:n | ||||
foyer fOIeI | foyer fOIeI | ||||
gimme gImi | gimme gImi | ||||
giraffe dZI2raaf | giraffe dZI2raaf | ||||
goin ,goUI2n $only // for goin' | goin ,goUI2n $only // for goin' | ||||
gonna g,@n@ | |||||
goodbye $2 | goodbye $2 | ||||
goodday $2 | goodday $2 | ||||
goodnight $2 | goodnight $2 | ||||
huzzah h@z'A: | huzzah h@z'A: | ||||
hyperbola haIp'3:b@l@ | hyperbola haIp'3:b@l@ | ||||
hyperbole haIp'3:b@li | hyperbole haIp'3:b@li | ||||
hypothesis haIp'0T@sIs | |||||
hypotheses haIp'0T@si:z | |||||
hypotenuse haIp'0t@nju:s | hypotenuse haIp'0t@nju:s | ||||
hypoxia haIp'0ksi@ | hypoxia haIp'0ksi@ | ||||
iconbar aIk0nbA@ | iconbar aIk0nbA@ | ||||
idly aIdlI | idly aIdlI | ||||
ignoramus Igno@r'eIm@s | ignoramus Igno@r'eIm@s | ||||
illiterate $alt2 | |||||
imagine I2madZI2n | imagine I2madZI2n | ||||
impedance Imp'i:d@ns | impedance Imp'i:d@ns | ||||
imperative Imp'Er@tIv | imperative Imp'Er@tIv | ||||
landowner l'and,oUn3 | landowner l'and,oUn3 | ||||
las ,las $only | las ,las $only | ||||
?3 las ,lA:s $only | ?3 las ,lA:s $only | ||||
lasagne l@zanj@ | |||||
lasagna l@zanj@ | |||||
laser leIz3 | laser leIz3 | ||||
lasso las'u: | lasso las'u: | ||||
latte lateI | latte lateI | ||||
linen lInI2n | linen lInI2n | ||||
liqueur lI2kjU@ | liqueur lI2kjU@ | ||||
liter li:t3 | liter li:t3 | ||||
literate $alt2 | |||||
literature lItrI2tS3 | literature lItrI2tS3 | ||||
live laIv $onlys | live laIv $onlys | ||||
live lIv $verb | live lIv $verb | ||||
meadow mEdoU | meadow mEdoU | ||||
mediaeval mEdI'i:v@L | mediaeval mEdI'i:v@L | ||||
medicine mEds@n | medicine mEds@n | ||||
melee mEleI | |||||
?3 melee meIleI | |||||
melon mEl@n | melon mEl@n | ||||
menus mEnju:z | menus mEnju:z | ||||
memo mEmoU | memo mEmoU | ||||
naif naI'i:f | naif naI'i:f | ||||
naïve naI'i:v | naïve naI'i:v | ||||
naivete naI'i:v@teI | |||||
naked neIkI#d | naked neIkI#d | ||||
nasa nasa# | nasa nasa# | ||||
nascent neIs@nt | nascent neIs@nt | ||||
panacea pana#s'i:@ | panacea pana#s'i:@ | ||||
panache $2 | panache $2 | ||||
pancreas pankri@s | pancreas pankri@s | ||||
papaya pa#paI;@ | |||||
parabola p@rab@l@ | parabola p@rab@l@ | ||||
paralysis p@ral@sIs | paralysis p@ral@sIs | ||||
parameter p@ramI2t3 | parameter p@ramI2t3 | ||||
radar reIdA@ | radar reIdA@ | ||||
radish radIS | radish radIS | ||||
ragged ragI#d | ragged ragI#d | ||||
raiment reIm@nt | |||||
rainforest r'eInf,0rI2st | rainforest r'eInf,0rI2st | ||||
rajah rA:dZA: | rajah rA:dZA: | ||||
rapier reIpi@3 | rapier reIpi@3 | ||||
sofa soUf@ | sofa soUf@ | ||||
soiree swA:reI | soiree swA:reI | ||||
sojourn soUdZ3:n | sojourn soUdZ3:n | ||||
solder s0ld3 | |||||
soldier soUldZ3 | soldier soUldZ3 | ||||
solemn s0l@m | solemn s0l@m | ||||
solicit s@lIsI2t // solicited,ing | solicit s@lIsI2t // solicited,ing | ||||
souvenir su:v@n'i@3 | souvenir su:v@n'i@3 | ||||
sorbet sO@beI | sorbet sO@beI | ||||
soyabean sOI@bi:n | soyabean sOI@bi:n | ||||
spaghetti spag'Eti | |||||
spaghetti spa#gEti | |||||
spasm spas@m | spasm spas@m | ||||
specific sp@sIfIk | specific sp@sIfIk | ||||
specimen spEsI2m@n | specimen spEsI2m@n | ||||
suspect $verb | suspect $verb | ||||
symbol sImb@L | symbol sImb@L | ||||
sync sINk | sync sINk | ||||
synthesis sInT@sIs $only | |||||
synthesise sInT@saIz | |||||
tableau tabloU | tableau tabloU | ||||
tablet tabl@t | tablet tabl@t | ||||
Cincinnati sInsIn'ati | Cincinnati sInsIn'ati | ||||
Cologne k@loUn | Cologne k@loUn | ||||
Columbus $2 | Columbus $2 | ||||
Congo $1 | |||||
Congo k0NgoU | |||||
Connecticut k@nEtI2k@t | Connecticut k@nEtI2k@t | ||||
Copenhagen koUp@nh'eIg@n | Copenhagen koUp@nh'eIg@n | ||||
Cruz kru:z | Cruz kru:z | ||||
Cyprus saIpr@s | Cyprus saIpr@s | ||||
Dahomey $2 | Dahomey $2 | ||||
Dallas dal@s | |||||
Damascus da#mask@s | Damascus da#mask@s | ||||
Dakota da#koUt@ | Dakota da#koUt@ | ||||
Danish deInIS | Danish deInIS | ||||
Lois loUIs | Lois loUIs | ||||
Louis lu:i | Louis lu:i | ||||
Louise lu:w'i:z | Louise lu:w'i:z | ||||
Luigi lu:'i:dZi | |||||
Luis lu:Is | Luis lu:Is | ||||
Lupe lu:peI | Lupe lu:peI | ||||
Madeline mad@lI2n | Madeline mad@lI2n | ||||
Maurice m0rIs | Maurice m0rIs | ||||
Mavis meIvIs | Mavis meIvIs | ||||
Megan mEg@n | Megan mEg@n | ||||
Melissa $2 | |||||
Melissa m@lIs@ | |||||
Michele mI2SEl | Michele mI2SEl | ||||
Michelle mI2SEl | Michelle mI2SEl | ||||
Miguel mi:Q'El | Miguel mi:Q'El | ||||
Pandora $2 | Pandora $2 | ||||
Patricia pa#trIS@ | Patricia pa#trIS@ | ||||
Penelope p@nEl@pi | Penelope p@nEl@pi | ||||
Persephone p3s'Ef@ni | |||||
Phoebe fi:bi: | Phoebe fi:bi: | ||||
Rachael reItS@L | Rachael reItS@L | ||||
Rachel reItS@L | Rachel reItS@L | ||||
Rees ri:s | Rees ri:s | ||||
Reese ri:s | Reese ri:s | ||||
Reggie rEdZi | Reggie rEdZi | ||||
Remus ri:m@s | |||||
Reynold rEn@Ld | Reynold rEn@Ld | ||||
Rhys ri:s | Rhys ri:s | ||||
Rihanna rI'A:n@ | Rihanna rI'A:n@ | ||||
Disney dIzni | Disney dIzni | ||||
Dolce d0ltSeI | Dolce d0ltSeI | ||||
Dvorak d@-vo@Zak | Dvorak d@-vo@Zak | ||||
Folger foUldZ3 | |||||
Gibson gIbs@n | Gibson gIbs@n | ||||
Guinness gInIs | Guinness gInIs | ||||
Hades heIdi:z | Hades heIdi:z | ||||
Mackenna m@kEn@ | Mackenna m@kEn@ | ||||
Mackenzie m@kEnzi | Mackenzie m@kEnzi | ||||
Medusa $2 | |||||
Montague m0nt@gju: | Montague m0nt@gju: | ||||
Niro ni@roU | Niro ni@roU | ||||
Patel pa#tEl | Patel pa#tEl | ||||
Wii wi:: | Wii wi:: | ||||
Yaesu jeIsu: | Yaesu jeIsu: | ||||
Yamaha jam@hA: | Yamaha jam@hA: | ||||
zeus zju:s | |||||
zhivago ZI2vA:goU | zhivago ZI2vA:goU | ||||
.L02 i y | .L02 i y | ||||
.L03 a i o u // vowel, not 'e' | .L03 a i o u // vowel, not 'e' | ||||
.L05 c g k | .L05 c g k | ||||
.L06 s z | |||||
.L10 grap log met scop // scientific endings | .L10 grap log met scop // scientific endings | ||||
st) an (_ an | st) an (_ an | ||||
m) an (_ an | m) an (_ an | ||||
hum) an (_ @n | hum) an (_ @n | ||||
&) an (ty_ @n | |||||
&) an (t_ @n | &) an (t_ @n | ||||
?8 &) an (t_ a#n | ?8 &) an (t_ a#n | ||||
pl) an (t_ an | pl) an (t_ an | ||||
@) aneous 'eIni@s | @) aneous 'eIni@s | ||||
p) an (el an | p) an (el an | ||||
&) an (ese @n | &) an (ese @n | ||||
_) ane (s anI | |||||
an (gul 'an | an (gul 'an | ||||
&) ani (_ 'A:nI | &) ani (_ 'A:nI | ||||
an (ia 'eIn | an (ia 'eIn | ||||
_) arr (@ a#r | _) arr (@ a#r | ||||
_) arr (ant ar | _) arr (ant ar | ||||
_) arr (o ar | _) arr (o ar | ||||
_) arro (g ar@ | |||||
ar (i_ 'A:r | ar (i_ 'A:r | ||||
?3 @) ar (io_ 'ar | ?3 @) ar (io_ 'ar | ||||
_b) ar (L02t ar | _b) ar (L02t ar | ||||
.group at | .group at | ||||
_g) ator eIt3 | _g) ator eIt3 | ||||
&) ate (_$w_alt2 @t | |||||
pal) ate (_ @t | pal) ate (_ @t | ||||
consul) ate (_ @t | consul) ate (_ @t | ||||
macul) ate (_ @t | macul) ate (_ @t | ||||
@@e) d (_S1 d // suffix | @@e) d (_S1 d // suffix | ||||
db (_ d,i:bi: | db (_ d,i:bi: | ||||
ddh d | ddh d | ||||
dh (K d | |||||
dj dZ | dj dZ | ||||
dg (_ dZ | dg (_ dZ | ||||
dg (C dZ | dg (C dZ | ||||
de (law dE | de (law dE | ||||
de (leg dE | de (leg dE | ||||
de (lica dE | de (lica dE | ||||
de (ll dE | |||||
_) de (ll dE | |||||
de (lph dE | de (lph dE | ||||
_) de (lt dE | _) de (lt dE | ||||
delu (g dElju: | delu (g dElju: | ||||
j) eo (p E | j) eo (p E | ||||
_l) eo i@ | _l) eo i@ | ||||
p) eo (pl i: | p) eo (pl i: | ||||
_) eor eI3 | |||||
@) eosis i:'oUsIs | @) eosis i:'oUsIs | ||||
&) eous (_ =i@s | &) eous (_ =i@s | ||||
th) eo (@ I2@ | th) eo (@ I2@ | ||||
es (tate I2s | es (tate I2s | ||||
@) esc (enC 'Es | @) esc (enC 'Es | ||||
pr) es (ent Ez | pr) es (ent Ez | ||||
magn) es (i 'i:z | |||||
es (iA i:z | |||||
es (ian_ 'i:z | es (ian_ 'i:z | ||||
es (ic 'i:z | es (ic 'i:z | ||||
th) eses (_ @si:z | |||||
th) esis (_ @sIs | |||||
th) es (iL06e_ @s | |||||
r) esis (_ 'i:sIs | r) esis (_ 'i:sIs | ||||
es (ive 'i:s | es (ive 'i:s | ||||
esque 'Esk | esque 'Esk | ||||
Cr) es (t Es | Cr) es (t Es | ||||
v) es (t+ Es | v) es (t+ Es | ||||
harv) es (t Is | harv) es (t Is | ||||
esti (m EstI# | |||||
v) es (ty @s | v) es (ty @s | ||||
.group et | .group et | ||||
.group ev | .group ev | ||||
_) ev I2v | _) ev I2v | ||||
_) eva (ne Ev@ | |||||
_) eve i:v | _) eve i:v | ||||
_) even i:v@n | _) even i:v@n | ||||
_) eve (nt I2vE | _) eve (nt I2vE | ||||
_) g (ilK g | _) g (ilK g | ||||
g (ilC g | g (ilC g | ||||
l) ging dZI2N | l) ging dZI2N | ||||
_) g (iz g | |||||
g (y dZ | g (y dZ | ||||
exa) gg (er dZ | exa) gg (er dZ | ||||
ght t | ght t | ||||
_) hypo (@P4 h,aIpoU | _) hypo (@P4 h,aIpoU | ||||
_) hypo (cr hIp0 | _) hypo (cr hIp0 | ||||
hypo (de h,aIp@ | hypo (de h,aIp@ | ||||
hypo (thes haIp'0 | |||||
hypo (thet h,aIp@ | hypo (thet h,aIp@ | ||||
.group i | .group i | ||||
&) ial (_ =I2@l | &) ial (_ =I2@l | ||||
i (ani_ I | i (ani_ I | ||||
_) i (b aI | _) i (b aI | ||||
i (ba_ 'i: | |||||
@) ibab aIb@b | @) ibab aIb@b | ||||
l) i (bel aI | l) i (bel aI | ||||
l) i (ber I | l) i (ber I | ||||
ize (d_ aIz | ize (d_ aIz | ||||
i (zen I2 | i (zen I2 | ||||
iz (er_ aIz | iz (er_ aIz | ||||
i (zon_ 'aI | |||||
p) izz (a i:t|s | p) izz (a i:t|s | ||||
_) in (fo_ In | _) in (fo_ In | ||||
_) infra (P5 ,Infr@ | _) infra (P5 ,Infr@ | ||||
_) infra (c %Infra | _) infra (c %Infra | ||||
in (ga_ 'IN | |||||
in (got IN | in (got IN | ||||
_) in (gro IN | _) in (gro IN | ||||
_) in (jur In | _) in (jur In | ||||
.group io | .group io | ||||
io (_ =I2oU | |||||
?7 io (_ =i:oU | |||||
&) io (_ =I2oU | |||||
?7 &) io (_ =i:oU | |||||
io (_ i:oU | |||||
b) io aIoU | b) io aIoU | ||||
b) io (logy aI0 | b) io (logy aI0 | ||||
card) io I2oU | card) io I2oU | ||||
_) ki (lC@ kI2 | _) ki (lC@ kI2 | ||||
_) ki (ll@ kI | _) ki (ll@ kI | ||||
_) kilo (@ kIl@ | _) kilo (@ kIl@ | ||||
kinesis k@n'i:sI#s | |||||
kuan kwan | kuan kwan | ||||
ku (ch ku: | ku (ch ku: | ||||
kuwait ku:w'eIt | kuwait ku:w'eIt | ||||
ninth naInT | ninth naInT | ||||
n (Co_ =n | n (Co_ =n | ||||
_) non (@P3 n,0n | _) non (@P3 n,0n | ||||
nonchala (n n0nS@l@ | |||||
?3 nonchala (n n0nS@l'A: | |||||
_) nurse (B n3:s | _) nurse (B n3:s | ||||
.group ng | .group ng | ||||
oer oU@ | oer oU@ | ||||
_) oe (s i: | _) oe (s i: | ||||
&) oe (s_S2 z | &) oe (s_S2 z | ||||
oe (soph I2 | |||||
oesopha I2s0f@ | |||||
p) oe (t oUI | p) oe (t oUI | ||||
f) oe (tA i: | f) oe (tA i: | ||||
p) oe (ti oUE | p) oe (ti oUE | ||||
t) ol (er 0l | t) ol (er 0l | ||||
m) ol (ec @l | m) ol (ec @l | ||||
m) ol (ecule 0l | m) ol (ecule 0l | ||||
&) ol (enC @l | |||||
old oUld | old oUld | ||||
w) olf Ulf | w) olf Ulf | ||||
p) olice @li:s | p) olice @li:s | ||||
per (cei p3 | per (cei p3 | ||||
per (culi p3 | per (culi p3 | ||||
per (cus p3 | per (cus p3 | ||||
_) peregrin pEr@grIn | |||||
per (fec p3 | per (fec p3 | ||||
per (iph p@r | per (iph p@r | ||||
perme (a p3:mI | perme (a p3:mI | ||||
qu (_ k | qu (_ k | ||||
quay ki: | quay ki: | ||||
jac) qu k | jac) qu k | ||||
mes) qui (t k'i: | |||||
li) quor k3 | li) quor k3 | ||||
quy kwI | quy kwI | ||||
un) rede (C ,ri:dI2 | un) rede (C ,ri:dI2 | ||||
re (dem+ rI2 | re (dem+ rI2 | ||||
_) re (dC rE | _) re (dC rE | ||||
_) re (dolen rE | |||||
_) re (dr r%i: | _) re (dr r%i: | ||||
_) re (eduP2 r%i: | _) re (eduP2 r%i: | ||||
_) re (emP2 r%i: | _) re (emP2 r%i: | ||||
sch (o sk | sch (o sk | ||||
sch (C S | sch (C S | ||||
sch (_ S | sch (_ S | ||||
_e) sch S | |||||
?3 sch (ed sk | ?3 sch (ed sk | ||||
_) sch (il S | _) sch (il S | ||||
_) scar (A ske@ | _) scar (A ske@ | ||||
_) tian tjan | _) tian tjan | ||||
&) tial S@L | &) tial S@L | ||||
&) ti (ali SI | &) ti (ali SI | ||||
i) tia (liL06 S@ | |||||
&) tien S@n | &) tien S@n | ||||
&) tience S@ns | &) tience S@ns | ||||
&) tion S=@n | &) tion S=@n | ||||
_l) u (a u: | _l) u (a u: | ||||
r) u (aC+ u: | r) u (aC+ u: | ||||
u (a_ =ju: | u (a_ =ju: | ||||
s) ua (d weI | |||||
s) ua (de weI | |||||
s) uag weIdZ | s) uag weIdZ | ||||
@g) ua (ge wI | @g) ua (ge wI | ||||
u (al_ ju: | u (al_ ju: | ||||
fl) ui (d u:I | fl) ui (d u:I | ||||
dr) ui (d u:I | dr) ui (d u:I | ||||
c) uisine wIzi:n | c) uisine wIzi:n | ||||
c) uis wIz | |||||
rc) ui (t I | rc) ui (t I | ||||
rc) ui (tous ''ju:I | rc) ui (tous ''ju:I | ||||
g) ui (ta I2 | g) ui (ta I2 |
váltana $unstressend | váltana $unstressend | ||||
találtam $unstressend | találtam $unstressend | ||||
(sem biztosak) SEm_'||bistoSAk $unstressend | (sem biztosak) SEm_'||bistoSAk $unstressend | ||||
kaphatnak $unstressend | |||||
költ $unstressend | |||||
hivatalt $unstressend | |||||
támogatással $unstressend | |||||
ugyanis $unstressend | |||||
bizonyítják $unstressend | |||||
ösztönzése $unstressend | |||||
elvégezze $unstressend | |||||
intézet $unstressend | |||||
takarítani $unstressend | |||||
bízza $unstressend | |||||
bízna $unstressend | |||||
filmekkel $unstressend | |||||
lejátszóhoz $unstressend | |||||
filmeket $unstressend | |||||
vesződni $unstressend | |||||
(legkényelmesebb az) lEgke:n^ElmESEb:_||Az $unstressend | |||||
sejtem $unstressend | |||||
vonalat $unstressend | |||||
ragaszkodni $unstressend | |||||
(mellett az) mEl:Et:_||Az $unstressend | |||||
(a felület) A'||fElylEt $unstressend | |||||
terveket $unstressend | |||||
tervek $unstressend | |||||
közben $unstressend | |||||
menetrendet $unstressend | |||||
(az indoklást) Az_'||indokla:St $unstressend | |||||
hóbort $unstressend | |||||
fogom $unstressend | |||||
(az adatokat) Az_'||AdAtokAt $unstressend | |||||
zajlik $unstressend | |||||
kütyüt $unstressend | |||||
tartok $unstressend | |||||
(törvényt is) tYR2ve:n^t_||iS $unstressend | |||||
ülésen $unstressend | |||||
jogszabály $unstressend | |||||
törvényjavaslatról $unstressend | |||||
rövid $unstressend | |||||
vonulhatnának $unstressend | |||||
(horderejű kérdésben) hoR2dER2Ejy:_||ke:R2de:SbEn $unstressend | |||||
törvényjavaslatához $unstressend | |||||
(miniszter volt) ministER2||volt $unstressend | |||||
szavazatot $unstressend | |||||
(rendelkezést is) REndElkEze:St_||iS $unstressend | |||||
(lehetővé tenné) lEhEtY:ve:_||tEn:e: $unstressend | |||||
(indítványnak van) indi:tva:n^nAk_||vAn $unstressend | |||||
(ellenére is biztosítaná) El:Ene:R2E_||iS_||bistoSi:tAna: $unstressend | |||||
emelni $unstressend | |||||
(csak ki) tSAk_||ki $unstressend | |||||
indítványokról $unstressend | |||||
(a módosítások) A'||mo:doSi:ta:Sok $unstressend | |||||
közölni $unstressend | |||||
tudjanak $unstressend | |||||
piacot $unstressend | |||||
rakott $unstressend | |||||
(ott van) ot:_||vAn $unstressend | |||||
// word pairs | // word pairs | ||||
_) ப (ாதித்த b | _) ப (ாதித்த b | ||||
_) ப (ாதிப்படை b | _) ப (ாதிப்படை b | ||||
_) ப (ாதிப்படைகி b | _) ப (ாதிப்படைகி b | ||||
_) ப (ாதிப்படைய b | |||||
_) ப (ாதிப்படையுமெ b | _) ப (ாதிப்படையுமெ b | ||||
_) ப (ாதிப்படைவ b | _) ப (ாதிப்படைவ b | ||||
_) ப (ாதிப்பதா b | _) ப (ாதிப்பதா b |
lengthmod 3 | lengthmod 3 | ||||
WAV(ufric/x2, 60) | WAV(ufric/x2, 60) | ||||
endphoneme | endphoneme | ||||
phoneme L | |||||
import_phoneme sq/ll | |||||
// import_phoneme base/l- | |||||
endphoneme | |||||
phoneme l | |||||
liquid | |||||
IF nextPhW(isFlag1) THEN | |||||
ELSE | |||||
ChangePhoneme(L) // Hard | |||||
ENDIF | |||||
CALL base/l | |||||
endphoneme |
}; | }; | ||||
static void WritePhMnemonic(char **buf, PHONEME_TAB *ph, PHONEME_LIST *plist) | |||||
{//======================================================================================= | |||||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa) | |||||
{//===================================================================================== | |||||
int c; | int c; | ||||
int mnem; | int mnem; | ||||
int len; | int len; | ||||
int first; | int first; | ||||
int ix = 0; | int ix = 0; | ||||
char *phon_out; | |||||
char *p; | |||||
unsigned int ipa_control=0; // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme | unsigned int ipa_control=0; // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme | ||||
PHONEME_DATA phdata; | PHONEME_DATA phdata; | ||||
phon_out = *buf; | |||||
if(ph->code == phonEND_WORD) | if(ph->code == phonEND_WORD) | ||||
{ | { | ||||
// ignore | // ignore | ||||
phon_out[0] = 0; | phon_out[0] = 0; | ||||
return; | |||||
return(phon_out); | |||||
} | |||||
if(ph->code == phonSWITCH) | |||||
{ | |||||
// the tone_ph field contains a phoneme table number | |||||
p = phoneme_tab_list[plist->tone_ph].name; | |||||
sprintf(phon_out, "(%s)", p); | |||||
return(phon_out + strlen(phon_out)); | |||||
} | } | ||||
if(option_phonemes == 3) | |||||
if(use_ipa) | |||||
{ | { | ||||
// has an ipa name been defined for this phoneme ? | // has an ipa name been defined for this phoneme ? | ||||
phdata.ipa_string[0] = 0; | phdata.ipa_string[0] = 0; | ||||
} | } | ||||
if(ipa_control >= 0x20) | if(ipa_control >= 0x20) | ||||
{ | { | ||||
*buf += ix; | |||||
return; // 0x20 = ignore phoneme | |||||
phon_out = &phon_out[ix]; | |||||
*phon_out = 0; | |||||
return(phon_out); // 0x20 = ignore phoneme | |||||
} | } | ||||
} | } | ||||
} | } | ||||
if((c == '/') && (option_phoneme_variants==0)) | if((c == '/') && (option_phoneme_variants==0)) | ||||
break; // discard phoneme variant indicator | break; // discard phoneme variant indicator | ||||
if(option_phonemes == 3) | |||||
if(use_ipa) | |||||
{ | { | ||||
// convert from ascii to ipa | // convert from ascii to ipa | ||||
if(first && (c == '_')) | if(first && (c == '_')) | ||||
first = 0; | first = 0; | ||||
} | } | ||||
*buf += ix; | |||||
phon_out = &phon_out[ix]; | |||||
*phon_out = 0; | |||||
return(phon_out); | |||||
} // end of WritePhMnemonic | } // end of WritePhMnemonic | ||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out) | |||||
{//============================================================ | |||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||||
{//========================================================================= | |||||
/* Can be called after a clause has been translated into phonemes, in order | /* Can be called after a clause has been translated into phonemes, in order | ||||
to display the clause in phoneme mnemonic form. | to display the clause in phoneme mnemonic form. | ||||
*/ | */ | ||||
int phon_out_ix=0; | int phon_out_ix=0; | ||||
int stress; | int stress; | ||||
unsigned int c; | unsigned int c; | ||||
char *p; | |||||
char *buf; | char *buf; | ||||
char phon_buf[30]; | char phon_buf[30]; | ||||
PHONEME_LIST *plist; | PHONEME_LIST *plist; | ||||
c = 0; | c = 0; | ||||
if(stress > 5) stress = 5; | if(stress > 5) stress = 5; | ||||
if(option_phonemes == 3) | |||||
if(use_ipa) | |||||
{ | { | ||||
c = 0x2cc; // ipa, secondary stress | c = 0x2cc; // ipa, secondary stress | ||||
if(stress > 3) | if(stress > 3) | ||||
} | } | ||||
} | } | ||||
if(plist->ph->code == phonSWITCH) | |||||
{ | |||||
// the tone_ph field contains a phoneme table number | |||||
p = phoneme_tab_list[plist->tone_ph].name; | |||||
buf = WritePhMnemonic(buf, plist->ph, plist, use_ipa); | |||||
sprintf(buf, "(%s)", p); | |||||
buf += (strlen(p) + 2); | |||||
} | |||||
else | |||||
if(plist->ph->code != phonSWITCH) | |||||
{ | { | ||||
WritePhMnemonic(&buf, plist->ph, plist); | |||||
if(plist->synthflags & SFLAG_LENGTHEN) | if(plist->synthflags & SFLAG_LENGTHEN) | ||||
{ | { | ||||
WritePhMnemonic(&buf, phoneme_tab[phonLENGTHEN], NULL); | |||||
buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa); | |||||
} | } | ||||
if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL)) | if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL)) | ||||
{ | { | ||||
// syllablic consonant | // syllablic consonant | ||||
WritePhMnemonic(&buf, phoneme_tab[phonSYLLABIC], NULL); | |||||
buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa); | |||||
} | } | ||||
if(plist->tone_ph > 0) | if(plist->tone_ph > 0) | ||||
{ | { | ||||
WritePhMnemonic(&buf, phoneme_tab[plist->tone_ph], NULL); | |||||
buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa); | |||||
} | } | ||||
} | } | ||||
fprintf(f_events,"'%s'\n",events->id.name); | fprintf(f_events,"'%s'\n",events->id.name); | ||||
else | else | ||||
if(type==espeakEVENT_PHONEME) | if(type==espeakEVENT_PHONEME) | ||||
fprintf(f_events,"[%s]\n",WordToString(events->id.number)); | |||||
{ | |||||
char buf[10]; | |||||
// fprintf(f_events,"[%s]\n",WordToString(events->id.number)); //old version, only 4 characters bytes | |||||
memcpy(buf, events->id.string, 8); | |||||
buf[8] = 0; | |||||
fprintf(f_events,"[%s]\n", buf); | |||||
} | |||||
else | else | ||||
fprintf(f_events,"%d\n",events->id.number); | fprintf(f_events,"%d\n",events->id.number); | ||||
fprintf(f_events,"Type Audio Text Length Id\n"); | fprintf(f_events,"Type Audio Text Length Id\n"); | ||||
fclose(f_events); | fclose(f_events); | ||||
espeak_Initialize(AUDIO_OUTPUT_RETRIEVAL,1000,NULL,1); | |||||
espeak_Initialize(AUDIO_OUTPUT_RETRIEVAL, 1000, NULL, espeakINITIALIZE_PHONEME_IPA); | |||||
espeak_SetSynthCallback(TestSynthCallback); | espeak_SetSynthCallback(TestSynthCallback); | ||||
espeak_SetUriCallback(TestUriCallback); | espeak_SetUriCallback(TestUriCallback); | ||||
void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) | |||||
void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) | |||||
{//====================================================================================== | {//====================================================================================== | ||||
// Do nothing in the command-line version. | // Do nothing in the command-line version. | ||||
if(type == 2) | if(type == 2) |
#endif | #endif | ||||
void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) | |||||
{//====================================================================================== | |||||
// type: 1=word, 2=sentence, 3=named mark, 4=play audio, 5=end | |||||
void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) | |||||
{//================================================================================================== | |||||
// type: 1=word, 2=sentence, 3=named mark, 4=play audio, 5=end, 7=phoneme | |||||
ENTER("MarkerEvent"); | ENTER("MarkerEvent"); | ||||
espeak_EVENT *ep; | espeak_EVENT *ep; | ||||
double time; | double time; | ||||
PHONEME_TAB *ph; | |||||
if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | ||||
return; | return; | ||||
if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) | if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) | ||||
ep->id.name = &namedata[value]; | ep->id.name = &namedata[value]; | ||||
else | else | ||||
if(type == espeakEVENT_PHONEME) | |||||
{ | |||||
int *p; | |||||
p = (int *)(ep->id.string); | |||||
p[0] = value; | |||||
p[1] = value2; | |||||
} | |||||
else | |||||
{ | |||||
ep->id.number = value; | ep->id.number = value; | ||||
} | |||||
} // end of MarkerEvent | } // end of MarkerEvent | ||||
option_phonemes = 0; | option_phonemes = 0; | ||||
option_mbrola_phonemes = 0; | option_mbrola_phonemes = 0; | ||||
option_phoneme_events = (options & 1); | |||||
option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA)); | |||||
VoiceReset(0); | VoiceReset(0); | ||||
// SetVoiceByName("default"); | // SetVoiceByName("default"); |
#define ESPEAK_API | #define ESPEAK_API | ||||
#endif | #endif | ||||
#define ESPEAK_API_REVISION 6 | |||||
#define ESPEAK_API_REVISION 7 | |||||
/* | /* | ||||
Revision 2 | Revision 2 | ||||
Added parameter "options" to eSpeakInitialize() | Added parameter "options" to eSpeakInitialize() | ||||
Revision 6 | Revision 6 | ||||
Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL | Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL | ||||
Revision 7 24.Dec.2011 | |||||
Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. | |||||
Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. | |||||
*/ | */ | ||||
/********************/ | /********************/ | ||||
/* Initialization */ | /* Initialization */ | ||||
int sample; // sample id (internal use) | int sample; // sample id (internal use) | ||||
void* user_data; // pointer supplied by the calling program | void* user_data; // pointer supplied by the calling program | ||||
union { | union { | ||||
int number; // used for WORD and SENTENCE events. For PHONEME events this is the phoneme mnemonic. | |||||
int number; // used for WORD and SENTENCE events. | |||||
const char *name; // used for MARK and PLAY events. UTF8 string | const char *name; // used for MARK and PLAY events. UTF8 string | ||||
char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. | |||||
} id; | } id; | ||||
} espeak_EVENT; | } espeak_EVENT; | ||||
/* | /* | ||||
} espeak_ERROR; | } espeak_ERROR; | ||||
#define espeakINITIALIZE_PHONEME_EVENTS 0x0001 | #define espeakINITIALIZE_PHONEME_EVENTS 0x0001 | ||||
#define espeakINITIALIZE_PHONEME_IPA 0x0002 | |||||
#define espeakINITIALIZE_DONT_EXIT 0x8000 | #define espeakINITIALIZE_DONT_EXIT 0x8000 | ||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
path: The directory which contains the espeak-data directory, or NULL for the default location. | path: The directory which contains the espeak-data directory, or NULL for the default location. | ||||
options: bit 0: 1=allow espeakEVENT_PHONEME events. | options: bit 0: 1=allow espeakEVENT_PHONEME events. | ||||
bit 1: 1= espeakEVENT_PHONEME events give IPA phoneme names, not eSpeak phoneme names | |||||
bit 15: 1=don't exit if espeak_data is not found (used for --help) | bit 15: 1=don't exit if espeak_data is not found (used for --help) | ||||
Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR). | Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR). |
len = (80 * speed.wav_factor)/256; | len = (80 * speed.wav_factor)/256; | ||||
if(ph->code != phonEND_WORD) | if(ph->code != phonEND_WORD) | ||||
DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | |||||
{ | |||||
char phoneme_name[16]; | |||||
WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA); | |||||
DoPhonemeMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, phoneme_name); | |||||
} | |||||
ptr += sprintf(ptr,"%s\t",WordToString(name)); | ptr += sprintf(ptr,"%s\t",WordToString(name)); | ||||
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.46.10 21.Dec.11"; | |||||
const char *version_string = "1.46.11 24.Dec.11"; | |||||
const int version_phdata = 0x014600; | const int version_phdata = 0x014600; | ||||
int option_device_number = -1; | int option_device_number = -1; | ||||
if(control & 0x100) | if(control & 0x100) | ||||
{ | { | ||||
// change phonemes pass | |||||
// "change phonemes" pass | |||||
plist->ph = phoneme_tab[plist->phcode]; | plist->ph = phoneme_tab[plist->phcode]; | ||||
} | } | ||||
ph = plist->ph; | ph = plist->ph; |
// Type 1=word, 2=sentence, 3=named marker, 4=play audio, 5=end | // Type 1=word, 2=sentence, 3=named marker, 4=play audio, 5=end | ||||
if(WcmdqFree() > 5) | if(WcmdqFree() > 5) | ||||
{ | { | ||||
wcmdq[wcmdq_tail][0] = WCMD_MARKER; | |||||
wcmdq[wcmdq_tail][1] = type; | |||||
wcmdq[wcmdq_tail][2] = (char_posn & 0xffffff) | (length << 24); | |||||
wcmdq[wcmdq_tail][3] = value; | |||||
wcmdq[wcmdq_tail][0] = WCMD_MARKER + (type << 8); | |||||
wcmdq[wcmdq_tail][1] = (char_posn & 0xffffff) | (length << 24); | |||||
wcmdq[wcmdq_tail][2] = value; | |||||
WcmdqInc(); | |||||
} | |||||
} // end of DoMarker | |||||
void DoPhonemeMarker(int type, int char_posn, int length, char *name) | |||||
{//================================================================== | |||||
// This could be used to return an index to the word currently being spoken | |||||
// Type 7=phoneme | |||||
int *p; | |||||
if(WcmdqFree() > 5) | |||||
{ | |||||
wcmdq[wcmdq_tail][0] = WCMD_MARKER + (type << 8); | |||||
wcmdq[wcmdq_tail][1] = (char_posn & 0xffffff) | (length << 24); | |||||
p = (int *)name; | |||||
wcmdq[wcmdq_tail][2] = p[0]; // up to 8 bytes of UTF8 characters | |||||
wcmdq[wcmdq_tail][3] = p[1]; | |||||
WcmdqInc(); | WcmdqInc(); | ||||
} | } | ||||
} // end of DoMarker | } // end of DoMarker | ||||
unsigned char *pitch_env=NULL; | unsigned char *pitch_env=NULL; | ||||
unsigned char *amp_env; | unsigned char *amp_env; | ||||
PHONEME_TAB *ph; | PHONEME_TAB *ph; | ||||
int use_ipa=0; | |||||
char phoneme_name[16]; | |||||
static int sourceix=0; | static int sourceix=0; | ||||
PHONEME_DATA phdata; | PHONEME_DATA phdata; | ||||
if(option_quiet) | if(option_quiet) | ||||
return(0); | return(0); | ||||
if(option_phoneme_events & espeakINITIALIZE_PHONEME_IPA) | |||||
use_ipa = 1; | |||||
if(mbrola_name[0] != 0) | if(mbrola_name[0] != 0) | ||||
return(MbrolaGenerate(phoneme_list,n_ph,resume)); | return(MbrolaGenerate(phoneme_list,n_ph,resume)); | ||||
if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) | if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) | ||||
{ | { | ||||
// Note, for vowels, do the phoneme event after the vowel-start | // Note, for vowels, do the phoneme event after the vowel-start | ||||
DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); | |||||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||||
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||||
} | } | ||||
switch(p->type) | switch(p->type) | ||||
if(option_phoneme_events) | if(option_phoneme_events) | ||||
{ | { | ||||
DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); | |||||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||||
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||||
} | } | ||||
fmtp.fmt_addr = phdata.sound_addr[pd_FMT]; | fmtp.fmt_addr = phdata.sound_addr[pd_FMT]; | ||||
if((option_phonemes > 0) || (phoneme_callback != NULL)) | if((option_phonemes > 0) || (phoneme_callback != NULL)) | ||||
{ | { | ||||
GetTranslatedPhonemeString(translator->phon_out,sizeof(translator->phon_out)); | |||||
int use_ipa = 0; | |||||
if(option_phonemes == 3) | |||||
use_ipa = 1; | |||||
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||||
if(option_phonemes > 0) | if(option_phonemes > 0) | ||||
{ | { | ||||
fprintf(f_trans,"%s\n",translator->phon_out); | fprintf(f_trans,"%s\n",translator->phon_out); |
void WavegenInit(int rate, int wavemult_fact); | void WavegenInit(int rate, int wavemult_fact); | ||||
float polint(float xa[],float ya[],int n,float x); | float polint(float xa[],float ya[],int n,float x); | ||||
int WavegenFill(int fill_zeros); | int WavegenFill(int fill_zeros); | ||||
void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr); | |||||
void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr); | |||||
extern unsigned char *wavefile_data; | extern unsigned char *wavefile_data; | ||||
void MbrolaReset(void); | void MbrolaReset(void); | ||||
void DoEmbedded(int *embix, int sourceix); | void DoEmbedded(int *embix, int sourceix); | ||||
void DoMarker(int type, int char_posn, int length, int value); | void DoMarker(int type, int char_posn, int length, int value); | ||||
//int DoSample(PHONEME_TAB *ph1, PHONEME_TAB *ph2, int which, int length_mod, int amp); | |||||
void DoPhonemeMarker(int type, int char_posn, int length, char *name); | |||||
int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp); | int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp); | ||||
int DoSpect2(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, PHONEME_LIST *plist, int modulation); | int DoSpect2(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, PHONEME_LIST *plist, int modulation); | ||||
int PauseLength(int pause, int control); | int PauseLength(int pause, int control); |
int IsAlpha(unsigned int c); | int IsAlpha(unsigned int c); | ||||
int isspace2(unsigned int c); | int isspace2(unsigned int c); | ||||
int towlower2(unsigned int c); | int towlower2(unsigned int c); | ||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out); | |||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); | |||||
Translator *SelectTranslator(const char *name); | Translator *SelectTranslator(const char *name); | ||||
int SetTranslator2(const char *name); | int SetTranslator2(const char *name); | ||||
void SetVoiceStack(espeak_VOICE *v, const char *variant_name); | void SetVoiceStack(espeak_VOICE *v, const char *variant_name); | ||||
void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata); | void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata); | ||||
void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); | void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); | ||||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa); | |||||
extern FILE *f_trans; // for logging | extern FILE *f_trans; // for logging | ||||
extern FILE *f_logespeak; | extern FILE *f_logespeak; |
char phon_out[N_PH_LIST*2]; | char phon_out[N_PH_LIST*2]; | ||||
int clause_tone; | int clause_tone; | ||||
int clause_count; | int clause_count; | ||||
int use_ipa = 0; | |||||
FILE *f; | FILE *f; | ||||
int fd_temp; | int fd_temp; | ||||
char fname_temp[100]; | char fname_temp[100]; | ||||
t_phonetic->SetDefaultStyle(style_phonetic_large); | t_phonetic->SetDefaultStyle(style_phonetic_large); | ||||
translate_text = 3; | translate_text = 3; | ||||
use_ipa = 1; | |||||
break; | break; | ||||
case T_PROCESS: | case T_PROCESS: | ||||
myframe->OnProsody(event); | myframe->OnProsody(event); | ||||
} | } | ||||
prosodycanvas->LayoutData(ph_list,n_ph_list); | prosodycanvas->LayoutData(ph_list,n_ph_list); | ||||
option_phoneme_events = 1; | |||||
option_phoneme_events = espeakINITIALIZE_PHONEME_EVENTS; | |||||
option_log_frames = 1; | option_log_frames = 1; | ||||
MakeWave2(ph_list,n_ph_list); | MakeWave2(ph_list,n_ph_list); | ||||
option_log_frames = 0; | option_log_frames = 0; | ||||
CalcPitches(translator,clause_tone); | CalcPitches(translator,clause_tone); | ||||
CalcLengths(translator); | CalcLengths(translator); | ||||
GetTranslatedPhonemeString(translator->phon_out,sizeof(translator->phon_out)); | |||||
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||||
if(clause_count++ > 0) | if(clause_count++ > 0) | ||||
strcat(phon_out," ||"); | strcat(phon_out," ||"); | ||||
strcat(phon_out,translator->phon_out); | strcat(phon_out,translator->phon_out); |
#ifdef LOG_FRAMES | #ifdef LOG_FRAMES | ||||
static void LogMarker(int type, int value) | |||||
{//======================================= | |||||
static void LogMarker(int type, int value, int value2) | |||||
{//=================================================== | |||||
char buf[20]; | |||||
int *p; | |||||
if(option_log_frames == 0) | if(option_log_frames == 0) | ||||
return; | return; | ||||
if(f_log) | if(f_log) | ||||
{ | { | ||||
if(type == espeakEVENT_PHONEME) | if(type == espeakEVENT_PHONEME) | ||||
fprintf(f_log,"Phoneme [%s]\n",WordToString(value)); | |||||
{ | |||||
p = (int *)buf; | |||||
p[0] = value; | |||||
p[1] = value2; | |||||
buf[8] = 0; | |||||
fprintf(f_log,"Phoneme [%s]\n", buf); | |||||
} | |||||
else | else | ||||
fprintf(f_log,"\n"); | fprintf(f_log,"\n"); | ||||
fclose(f_log); | fclose(f_log); | ||||
} | } | ||||
WavegenSetEcho(); | WavegenSetEcho(); | ||||
SetPitchFormants(); | SetPitchFormants(); | ||||
MarkerEvent(espeakEVENT_SAMPLERATE,0,wvoice->samplerate,out_ptr); | |||||
MarkerEvent(espeakEVENT_SAMPLERATE, 0, wvoice->samplerate, 0, out_ptr); | |||||
// WVoiceChanged(wvoice); | // WVoiceChanged(wvoice); | ||||
} | } | ||||
long *q; | long *q; | ||||
int length; | int length; | ||||
int result; | int result; | ||||
int marker_type; | |||||
static int resume=0; | static int resume=0; | ||||
static int echo_complete=0; | static int echo_complete=0; | ||||
q = wcmdq[wcmdq_head]; | q = wcmdq[wcmdq_head]; | ||||
length = q[1]; | length = q[1]; | ||||
switch(q[0]) | |||||
switch(q[0] & 0xff) | |||||
{ | { | ||||
case WCMD_PITCH: | case WCMD_PITCH: | ||||
SetPitch(length,(unsigned char *)q[2],q[3] >> 16,q[3] & 0xffff); | SetPitch(length,(unsigned char *)q[2],q[3] >> 16,q[3] & 0xffff); | ||||
#endif | #endif | ||||
case WCMD_MARKER: | case WCMD_MARKER: | ||||
MarkerEvent(q[1],q[2],q[3],out_ptr); | |||||
marker_type = q[0] >> 8; | |||||
MarkerEvent(marker_type, q[1],q[2],q[3],out_ptr); | |||||
#ifdef LOG_FRAMES | #ifdef LOG_FRAMES | ||||
LogMarker(q[1],q[3]); | |||||
LogMarker(marker_type, q[2], q[3]); | |||||
#endif | #endif | ||||
if(q[1] == 1) | |||||
if(marker_type == 1) // word marker | |||||
{ | { | ||||
current_source_index = q[2] & 0xffffff; | |||||
current_source_index = q[1] & 0xffffff; | |||||
} | } | ||||
break; | break; | ||||