Changed -b option to include an option for 16 bit character input. numbers.cpp: Added option for vigesimal number systems for tens+units. Fixed problems with word-length indications in callback events. -m option now ignores XML comments. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@216 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -196,26 +196,29 @@ _dpt 'pWnt | |||
_roman rum'eIns@ | |||
// ordinal numbers | |||
_ord d@ // default suffix | |||
_ord20 st@ // for 20,30,etc | |||
_1o _'e@rst@ | |||
_2o tw'e@d@ | |||
_3o d'&:rd@ | |||
_7o s'e@v@nd@ | |||
_8o _'ax2st@ | |||
_9o ne@x2@nd@ | |||
_0de d@ | |||
_0ste st@ | |||
_1o _'e@r | |||
_2o tw'e@ | |||
_3o d'&:r | |||
_7o s'e@v@n | |||
_8o _'ax2 | |||
_9o ne@x2@n | |||
_0Co h'On@rtst@ | |||
// Place names | |||
acapulco akap'ulk@U | |||
afganistan afg'anistan | |||
alaska al'aska | |||
albanië alb'A:ne@:@- | |||
algerië alx2'e@re@:@- | |||
amanzimtoti $4 | |||
antwerpen antv&rp@n | |||
babilon babilOn | |||
bangladesj baNglad'ES | |||
barkly _^_EN | |||
bellevue b&lvju: | |||
bermuda $2 | |||
bethlehem bEt_liEm | |||
@@ -235,6 +238,7 @@ ceylon s@lOn | |||
chicago _^_EN | |||
china S'ina | |||
clanwilliam kl&:nw'ili@m | |||
clifton _^_EN | |||
colenso kul'E:ns@U | |||
colesberg ko@lsb&rx2 | |||
constantia $2 | |||
@@ -247,12 +251,13 @@ ermelo &rm@lo@ | |||
franschhoek frA~nsh'uk | |||
gadara x2@dA:ra | |||
galilea x2al@l'i:a | |||
gariep x2ar'ip | |||
germiston _^_EN | |||
getsémané x2Ets'e@mani | |||
gonubie g@nu:bi | |||
goudini $2 | |||
gordonsbaai gO:rd@nsb'AI | |||
(graaff reinet) x2rA:f||r@n'Et | |||
grahamstad x2rA:mstat | |||
griekeland x2rik@lant | |||
groblersdal x2rObl@rsd'al | |||
havana hav'ana | |||
@@ -260,6 +265,7 @@ hermon $1 | |||
hirosjima hiruS'ima | |||
israel IsraI:l | |||
italië it'A:li;@ | |||
jeffreysbaai dZEfrisb'AI | |||
kalafong kalaf'ON | |||
kanada kanad%a | |||
kanaän kA:nA:an | |||
@@ -272,6 +278,9 @@ kongo kONgu | |||
knysna neIsna | |||
kuruman kuruman | |||
kwa kwa $u $only // KwaZulu, etc. | |||
lady _^_EN // Lady Grey/Lady Smith | |||
ladybrand leIdibr'ant | |||
laingsburg leInsbWrx2 | |||
lesotho l@sutu | |||
limpopo l@mpo@po@ | |||
(los angeles) lOs_'andZ@li:z | |||
@@ -283,10 +292,10 @@ maputo map'u:tu | |||
mauritius mOr'iSjWs | |||
milaan $2 | |||
mesopotamië mEsuput'A:mi@ | |||
mpumalanga mpu:mal'aNga | |||
montagu mOnt@ky | |||
moreletapark mOr@l,Etap'ark | |||
moorreesburg mur'e@sbWrx2 | |||
mosambiek mo@samb'ik | |||
(thaba nchu) tab'A:||ntSu | |||
europa Y@r'o@pa | |||
nigel _^_EN | |||
@@ -314,6 +323,7 @@ tunisië $2 | |||
turkye $2 | |||
ulundi ul'undi | |||
upington apiNt@n | |||
vanrhynsdorp fanr'eInsdOrp | |||
vesuvius v@su:viWs | |||
viëtnam vj'Etnam | |||
wallonië val'o@ni@ | |||
@@ -333,14 +343,20 @@ adam adam | |||
adriaan A:drijan | |||
adrie A:dri | |||
albertus alb'&rtWs | |||
alfred _^_EN | |||
allah %alA: | |||
amelia am'i:lija | |||
annalet anal'Et | |||
André 'andreI | |||
annette an'Et | |||
antoinette antun'Et | |||
barbara bA:b@ra | |||
basson $2 | |||
bea bi:ja | |||
benade b@nA:di | |||
benjamin bEndZ@m@n | |||
bennett bEn@t | |||
bertha b&rta | |||
bester b'Est@r | |||
beyers beI@rs | |||
blignault blIx2n@Ut | |||
@@ -350,7 +366,7 @@ bouwer b@U@r | |||
brian _^_EN | |||
bredenkamp bre@d@nkamp | |||
breytenbach breIt@nbax2 | |||
brouwer bruw'&:r | |||
bruwer bruw'&:r | |||
caesar siz@r | |||
carl kA:r@L | |||
casanova kasan'o@va | |||
@@ -375,6 +391,7 @@ cindy sIndi | |||
coetzee kuts'e@ | |||
cronjé krOnj'e@ | |||
cynthia _^_EN | |||
dalene dal'e@n | |||
darwin _^_EN | |||
david _^_EN | |||
(da vinci) da||v'intSi | |||
@@ -390,16 +407,20 @@ donaldson _^_EN | |||
du $u | |||
(du pisanie) du||pis'A:ni | |||
(du plessis) du||pl@s'i | |||
(du plooy) d@||ploI | |||
(du preez) d@||pr'e@ | |||
(du toit) d@||toI | |||
duvenage dyv@nA:x2@ | |||
eksteen $1 | |||
eldorado &ldOr'A:d@U | |||
elisabeth il'isabEt | |||
elize il'i:z | |||
elmien $2 | |||
elsabe &ls@bi | |||
elsabé &ls@bi | |||
emmarentia Emar'e~nSja | |||
erasmus $2 | |||
ernest _^_EN | |||
eségiël is'e@x2i_@l | |||
estelle %ist&l | |||
etienne Eti@n | |||
@@ -418,15 +439,18 @@ george _^_EN | |||
georgina dZO:dZ'ina | |||
gerhard x2&rart | |||
gerhardus $2 | |||
gertruida $2 | |||
gloria glO:ria | |||
grange x2rA:nsi | |||
gustav gustaf | |||
guy _^_EN | |||
hamlet _^_EN | |||
harry _^_EN | |||
havenga hA:f@Nx2a | |||
haydn hAId@n | |||
helen _^_EN | |||
helena hil'e@na | |||
helene hi:l'i:n | |||
helloïse hEluw'i:z | |||
henry _^_EN | |||
herklaas $1 | |||
@@ -436,10 +460,12 @@ ilse 'ilz@ | |||
ingrid iNgr@d | |||
isabel is@b&l | |||
iskariot isk'ariOt | |||
jaco jaku | |||
jacques ZA:k | |||
james _^_EN | |||
jane _^_EN | |||
Jean ZA~n $capital | |||
jesebel je@s@b&l | |||
jimmy _^_EN | |||
joan _^_EN | |||
joey dZ@Ui | |||
@@ -452,14 +478,17 @@ kelvin _^_EN | |||
kim _^_EN $capital | |||
krige krix2@ | |||
labuschagne labWsk'ax2ni | |||
lafras $2 | |||
langenhoven laN@nho@f@n | |||
lasarus lA:s@r%Ws | |||
lategan lA:t@x2an | |||
le l@ $only | |||
leandra li'andra | |||
leipoldt lAIpOlt | |||
leonardo liu:n'ardu | |||
leonie li'o@ni | |||
levi le@fi | |||
liesbet lisbEt | |||
louis luI | |||
louise luw'i:z | |||
mackintosh _^_EN | |||
@@ -467,6 +496,8 @@ mbeki mbE:ki | |||
magdalena $3 | |||
malan mal'an | |||
malherbe mal'&rb@ | |||
mantovani mantOv'A:ni | |||
mara mA:ra | |||
marelie mar@li | |||
margaret _^_EN | |||
margaretha marx2ar'e@ta | |||
@@ -478,8 +509,11 @@ marlise marl'i:s | |||
martha marta | |||
martin m'A:rt@n | |||
mary _^_EN | |||
mathilda mat'Ilda | |||
matteus mat'i:Ws | |||
matthee mat'e@ | |||
matthéüs mat'i:Ws | |||
maureen _^_EN | |||
mefistofeles mEfist'o@f@l@s | |||
melanie m@lA:ni | |||
meraai m@rAI | |||
@@ -491,6 +525,7 @@ michiel $2 | |||
mike _^_EN | |||
miriam mIri@m | |||
mohammed muh'am@t | |||
morkel mOrk@l | |||
morné mOrn'eI | |||
mostert m'Ost@rt | |||
mouton mut'On | |||
@@ -516,10 +551,12 @@ rebekka r@bEka | |||
reinette r@nEt | |||
renette r@nEt | |||
renée r@neI | |||
retha re@ta | |||
retief r@tif | |||
rhodes _^_EN | |||
robert _^_EN | |||
ronel run'&l | |||
rossouw r@s@U | |||
rousseau r@s@U | |||
ruda ruda | |||
rupert rup@rt | |||
@@ -554,6 +591,7 @@ toerien $2 | |||
totius to@SiWs | |||
trudie trudi | |||
versfeld f&rsf< | |||
veronica _^_EN | |||
victoria _^_EN | |||
viljoen $2 | |||
villiers vIli@rs | |||
@@ -574,8 +612,11 @@ schalkwyk skalkveIk | |||
schreiner SraIn@r | |||
tony t@Uni | |||
trichardt trix2A:rt | |||
vera ve@ra | |||
verwey f@rveI | |||
vivaldi viv'aldi | |||
viviers v@v@je@ | |||
wilhelm v@lh&l@-m | |||
khumalo kum'A:lu | |||
zuma zu:ma | |||
@@ -589,6 +630,11 @@ citroên s@trun | |||
ferrari f@rA:ri | |||
martini mart'i:ni | |||
naspers nasp&rs | |||
peugeot pW:Z@U | |||
(pick n pay) p,ik||@n||p'eI | |||
port pOrt $1 | |||
rover _^_EN | |||
sotho su:tu | |||
toyota $2 | |||
venda vEnda | |||
volvo vOlvu | |||
@@ -665,7 +711,7 @@ hoekom $pause | |||
hoeveel $pause | |||
wat $pause | |||
watter $pause | |||
ás as '!as | |||
// prepositions | |||
aan $u $strend2 | |||
@@ -717,9 +763,10 @@ dis $u | |||
// phrase with words spoken together | |||
(nie waar nie) n,i||v,A:r||n'i | |||
(à la carte) a||la||k'art | |||
(carpe diem) karpE||di:Em | |||
(nie waar nie) n,i||v,A:r||n'i | |||
(sy aan sy) s,eI||an||s'eI | |||
// main word list | |||
@@ -735,6 +782,7 @@ agamemnon ax2am'EmnOn | |||
aggressie $2 | |||
agterstevoor $4 | |||
agterweë $3 | |||
aha A:h'!A: | |||
algaande $2 | |||
alge alx2@ | |||
algehele alx2@h,e@l@ | |||
@@ -743,8 +791,10 @@ almiskie $3 | |||
alom al_'Om | |||
alreeds $2 | |||
alternatiewe $4 | |||
amelee am@le@ | |||
amen A:mEn | |||
anale an'A:l@ | |||
as't as@t $u | |||
asof asOf | |||
asook %as_o@k | |||
aspris $2 | |||
@@ -762,6 +812,7 @@ beswil bEsv@l | |||
besnedene b@sne@d@n@ | |||
bestes bEst@s | |||
beta be@ta $only | |||
betlehemster bEtli:Emst&r | |||
bewe be@v@ | |||
bewend be@v@nt | |||
bewering b@ve@rIN | |||
@@ -779,6 +830,9 @@ capita kapita | |||
casino kas'i:n@U | |||
cedille s@dIl@ | |||
charisma kar'Isma | |||
cliché kliS'eI: | |||
clichés kliS'eI:s | |||
crescendo kr@SEndu | |||
dadelik dA:d@lIk | |||
@@ -832,6 +886,7 @@ geldelike x2&ld@l@k@ | |||
genade $2 | |||
genesis x2e@n@s@s | |||
//gesamentlik x2@sA:m@ntl@k | |||
gladiator x2ladi'A:tOr | |||
globale x2lo@b'A:l@ | |||
gooi x2OI | |||
gomorra x2@mOra | |||
@@ -840,6 +895,7 @@ gratis x2r'A:t@s | |||
grondys x2rO:nt_eIs | |||
hallo h'Il,@U | |||
handtertjie hant&:rci | |||
hanou hA:n@U | |||
hardop hart?Op | |||
heeltemal he@lt@mal | |||
@@ -896,7 +952,9 @@ kulture $2 | |||
kunsmatige kWnsm'A:t@x2@ | |||
kwansuis $2 | |||
lasagne las'anj@ | |||
libido l@bidu | |||
lokaas lOk_A:s | |||
londense lOnd@ns@ | |||
lord _^_EN | |||
@@ -910,7 +968,9 @@ meegee me@x2e@ | |||
memorabilia mEmOrab'ilija | |||
memoriam mEm'o@riam | |||
mercedes $2 | |||
meregebied me@r@x2@bit | |||
merlot m&rl'o@ | |||
miaau mi'aU: | |||
midwinter mIdv@nt@r | |||
militêre mIl@t'&:r@ | |||
minister m@nIst@r | |||
@@ -997,6 +1057,7 @@ pandemonium pand@m'o@niWm | |||
parate par'A:t@ | |||
parke park@ | |||
parkie $1 | |||
parte $1 | |||
patos pA:tOs | |||
patriotisme patri|ut'Ism@ | |||
penorent pEno@rEnt | |||
@@ -1056,6 +1117,7 @@ suburbia sWb'Wrbija | |||
tanga taNga | |||
tango taNx2u | |||
tenminste $2 | |||
tequila t@ki:la | |||
terdeë $2 | |||
terug t@-rWx2 | |||
tesaam t@sA:m |
@@ -23,6 +23,7 @@ | |||
&b) a (_ %a // short final a: mamba and compounds/marimba/hamba | |||
&d) a (_ %a // short, unstressed a after d at end of word: soda/padda... and compounds | |||
i) a (_ %a // a short and unstressed in words ending in ia: laboratoria/millennia | |||
&rm) a (_ %a // shorten a sound: Irma/karma/firma and compounds | |||
&r) a (_ %a // short final a in words ending in -ra: infra/mantra/sentra, etc. | |||
Cbr) a (_ A: // long a: blommetjies-/kantbra | |||
&dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc. | |||
@@ -36,7 +37,7 @@ | |||
C) a (Csier %a // (ge)finansier/kassier | |||
j) a (pan %a //japan first a sound and stress | |||
C) abie 'A:bi | |||
abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie | |||
_) abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie | |||
_) a (bC %a // abdy/ablatief/ablusie/abstrak, etc. | |||
_) a (bba a // restore default stress: (ge)abba/abbamandjie, etc. | |||
abse (s %apsE // fix stress and e sound: abses/-se | |||
@@ -257,6 +258,7 @@ | |||
arre (stA %ar@ // arrestasie/arresteer | |||
arro (g %ar%u // arrogant/-e/arrogansie | |||
ar (seen %ar | |||
arte (fak %art@ // move default stress: artefak/-te | |||
ar (tikel %ar // stress: artikel and compounds | |||
artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer | |||
@C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc. | |||
@@ -290,6 +292,7 @@ | |||
C) a (xA+ a // shorten a before x: taxi and compounds/praxi/saxofoon | |||
ay (_ _^_EN // words ending in ay are English | |||
ays (_ _^_EN // words ending in ays are English | |||
aë (robi %aI // move default stress: aërobies/-e | |||
.group aa | |||
@@ -365,6 +368,8 @@ | |||
_) ann (a@ %an // move default stress: annaal/annale | |||
g) an (_ _^_EN //if it ends in gan it is English | |||
C) anette (_ %anEt // Janette/Sanette | |||
ano (rak an%u // fix stress and vowel sounds: anorak/-ke | |||
ano (reksi %an%u // fix stress and o sound: anoreksie(leier...) | |||
ansjovi anS''o@f@ // fix stress and o sound: ansjovis/-se/-smeer | |||
an (tjie aIN | |||
_) ana (C ,ana // words starting with ana starts destressed | |||
@@ -470,6 +475,7 @@ | |||
balsem bals@m // correct e sound in derivatives like balseming | |||
bara (k bar'a | |||
bar (bA b%ar // barbaar/barbare and derivatives/barbier and compounds | |||
basi (lisk b%as@ // fix vowel sounds: basilisk/-e and compounds | |||
bastion bastiOn // -tion not English: bastion/-s and compounds | |||
_) bate b''A:t@ // fix stress and e sound: batefinansiering/-portefeulje and many others | |||
batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur... | |||
@@ -528,7 +534,7 @@ | |||
bybel beIb@l // to correct pronunc. of e in compounds | |||
byder (C@ b%eId@r // byderhand/-s/byderwets | |||
by (een b%eI_ // move default stress: byeen/byeenkoms/-te, etc. | |||
byge (low b%eIx2@ // move default stress: bygelowig/-e/-heid | |||
byge (lowi b%eIx2@ // move default stress: bygelowig/-e/-heid | |||
_) by (telP2 b'eI // fix e sound: bytel/-ling/-lery | |||
by (voorb b%eI// move default stress | |||
bywoordeli b%eIvo@rd@l@ // move default stressa: bywoordelik/-e | |||
@@ -553,21 +559,19 @@ | |||
C) be (rsie b'&: //kombersie etc. | |||
bene (r be@n@ //benerig/e | |||
be (C%+ bE // beffie/bessie/bennie/bettie/blombeddings | |||
bek (d b&k // fix e sound: eendbekdier/kortbekdolfyn/rooibekduifie/skinderbekdorp | |||
re) be (lK+ b& // fix e sounds: rebel/-le/-lie | |||
_) be (Cy b@ // bely/beny/betyds | |||
bes (ie_ be@s //sonbesie duinebesie etc. | |||
bes (ies_ be@s //sonbesies duinebesies etc. | |||
son) be (sie be@ // fix e sound in compounds with sonbesie: sonbesiebos, etc. | |||
beste (k b@st& // fix e sound: bestekopname and many compounds of bestek | |||
bed (h bEt // fix stress, e sound and d sound: bedhoek/bedhok, etc. | |||
bed (C bEt | |||
bedjie bE:ici // (ge)bedjie/-s/bababedjie | |||
bed (k bEt // bedkassie/bedkaartjie/bedkatel/bedkussing | |||
bed (l bEt // bedlamp/bedliggie/dubbelbedlaken | |||
bed (m bEt // bedmaats/bedmatjie, etc. | |||
bed (p bEt // fix e sound: bedpan/-ne/-poot, etc. | |||
bed (rand bEt // fix e and first d sounds | |||
bed (s bEt // bedsitkamer/bedsprei/gebedsdag | |||
be (dr@ b@ // bedremmeld/bedrewe/bedrywig, etc. | |||
bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd | |||
bedw (@ b@dw // bedwing and similar | |||
@) bed (_ bEt // bruidsbed/dubbelbed; many compounds ending in bed | |||
be (de_ be@ // bede/gebede | |||
bedes (_ be@d@s // bedes/seënbedes, etc. | |||
@@ -733,6 +737,7 @@ | |||
deto (nA d%Et%u // fix e and o sounds and stress: detonasie/detoneer/detonering | |||
deur (aar d%y@r_ // move default stress: deuraar/-de | |||
deur (bo d%Y@r // move default stress: deurboor/deurborende | |||
deur (dag d%Y@r // move default stress: (on)deurdag/-te/-theid | |||
deur (drenk d%y@r // move default stress: deurdrenk/-te | |||
deur (dring@ d%y@r // move default stress: deurdringend/-e | |||
deur (grond d%y@r // move default stress: (on)deurgrond/-elik/-e/-heid | |||
@@ -862,6 +867,7 @@ | |||
du (et d%u:w // fix stress and -ue-sound: (klavier)duet/-te, etc. | |||
@n) d (uit t_ // fix d sound and insert short break: enduit/handuit and similar | |||
dwelm (_ dw&l@-m // fix d and e sounds in compounds like wonderdwelm | |||
dw (erg dw // fix d sound: tuindwerg/-e/-ie | |||
@) dwes tv'Es // noordwes/te/lik/e suidwes/te/lik/e | |||
@) dwese tve@s@ // leedwese/vakbondwese | |||
@) dwillig tv'Il@x2 // d sound and stress: kwaadwillig/bereidwillig | |||
@@ -875,11 +881,13 @@ | |||
e (C E | |||
CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand | |||
CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette | |||
blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese | |||
juwel) e (C @ // fix e sound: juwelekissie and similar compounds | |||
fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc. | |||
kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar | |||
narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc. | |||
ooi) e (C @ // fix e sound: dooiepunt/ooievaar and similar | |||
skew) e (C @ // fix e sound: skewekop/-mond | |||
trol) e (C@ @ // fix e sound in compounds: kontrolebank/-doeleindes/-kamer/-lys/-maatreël/-rekening... | |||
voorrad) e (C @ // fix e sound: voorradedepot/-konvooi and similar | |||
@C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid | |||
@@ -890,6 +898,7 @@ | |||
CAC) e (rr @ // fix e sound: koperring/-rooi/nederryn/somerreën/-rok/superrealis/syferrekenaar... | |||
@C) e (reekK @ // fix e sound: duine-/rotsereeks | |||
aai) e (C @ // fix e sound: baaierd/waaierstert/paaiement/compounds starting with baaiers- | |||
lat) eres @r@s //lateres | |||
fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc. | |||
bloup) ers &:rs // fix e sound: bloupers | |||
treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds | |||
@@ -931,6 +940,7 @@ | |||
ies) e (b @ // fix e sound: dinamiesebinding/ekonomiesebemagtiging | |||
&At) e (bA@ @ // fix e sound: batebestuur/sekuriteitebeurs/soldatebbaadjie/geslotebaan, etc. | |||
Aw) e (bA @ // fix e sound: briewebesteller/diewebende/newebedoeling/skewebek/stywebeen | |||
@d) e (bl @ // fix e sound: huldeblyk/-e/lindeblom/maagdebloeisel | |||
@C) e (bo @ // compounds with boek/boer/boog/boom/bol/bord/borsel/bos/ grondbonebotter/kamdebo... | |||
@C) e (bu @ // briewebus/ereburger/novellebundel/urinebuis/woedebui | |||
@C) e (by @ // fix e sound: statebybel/-s | |||
@@ -1422,6 +1432,7 @@ | |||
fari (seër f%ar%i // fix stress and a sound: Fariseër/-s | |||
farma (seut f%arm%a // move default stress: farmaseut/-e/-ies/-ika | |||
fasade f%asA:d@ // fix stress and 1st a sound: fasade/-s and compounds | |||
fase (tK f%asE // | |||
fasili f%as@l%i // fasiliteit/e/aftrekorderfasiliteit | |||
fa (ta@ f%a //fix stress and 1st a sound: fatale/fatalis/-me/-te/-ties | |||
fat (soen f%at // move default stress: (on)fatsoen(lik) | |||
@@ -1443,6 +1454,7 @@ | |||
fi (siek f@ // correct 1st i sound and move default stress: | |||
fili (ppA f@l@ // fix stress and i sounds: Filippyne/-pynse/filippien | |||
filistyn f@l@st'eIn // filistyn/e | |||
fille (t f@lE // fix stress and e sound: (bees)fillet/-te and similar | |||
_) fi (na@ f%i // finaal/finale/finansies | |||
mor) fine (@ fin@_ // fix e sound in compounds: morfineafhanklikheid/-beswyming/-dosis/-tablet | |||
fi (skA f@ // move default stress: fiskaal/fiskale/konfiskeer | |||
@@ -1456,8 +1468,10 @@ | |||
flu (we fl%y // move default stress: fluweel/fluwele and compounds | |||
_) fok (o fOk_ // fix o sound, insert short break: fokop/fokof | |||
folio fo@li_u // fix o sounds: folio and compounds | |||
fondue f%Ondy // fix stress and ue sound: fondue and compounds | |||
@) fonie fun'i // kakofonie/simfonieorkes/telefonie | |||
@) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies | |||
@) fonie (s@@ fun'i // fix stress: simfonieseisoen and similar | |||
fon (tein f%On // move default stress: fontein/fonteinwater, etc. | |||
_) for (C f%Or // formeel/formele/forseer/fortuin | |||
fore (l f%ur& // fix stress and e sound: forel/-e and compounds | |||
@@ -1472,6 +1486,7 @@ | |||
fo (togra fo@ // move default stress: fotograaf and similar | |||
fra (giel fr%a // fix stress and a sound: fragiel/-e | |||
_) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca | |||
frangi (pani fr%aN%i // fix stress: frangipani and compounds | |||
fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds | |||
freud frOId // Freud/Freudiaans/-e | |||
front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering | |||
@@ -1494,10 +1509,14 @@ | |||
gal (joen x2%al // move default stress: galjoen/-e and compounds | |||
gamie (_ x2am'i // bi-/mono-/poligamie, etc. | |||
gamies x2'A:mis // bi-/mono-/poligamies/-e | |||
ga (riep x2%a // fix stress and a sound: Gariep(dam) | |||
gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds | |||
garni (soen x2%arn%i // fix stress: garnisoen and compounds | |||
@C) garye x2%ar'eI@ // Fix stress: Bulgarye/Hongarye | |||
gas (aan x2as_ // fix stress: gasaanleg/-aansteker and similar comp9ounds | |||
_) gas (A x2''as_ // fix stress: gasaanleg/-aansteker/-installasie/-ontploffing | |||
gas (erig x2A:s // long a and no pause: gaserig/-e/-heid | |||
gas (ie x2A:s // long a and no pause: gasie/-s and compounds | |||
gas (ig x2A:s // long a and no pause: gasig/-e/-heid | |||
gauteng x2%aUtEN //Gauteng and compounds | |||
_) gh g | |||
gh (_ k | |||
@@ -1739,6 +1758,7 @@ | |||
heid (_S4 heIt | |||
herinner h&r'In@r // herinner/-ing/-e|s | |||
hetero (@@P6 h%Et@-r%u // fix stress and vowel sounds: many compounds: heteroseksueel/-ele/-aliteit, etc. | |||
hex (C hEks // prevent English translation: Hex(rivier)vallei | |||
hia (sint h%ij%a // fix stress: hiasint/-e and compounds | |||
_) hi (bis h%i // move default stress: hibiskus/-se and compounds | |||
higië (nA h%ix2%ie@ | |||
@@ -1757,6 +1777,7 @@ | |||
hiër (argie h%i@r // stress on 1st a: hiërargies/-e | |||
hiëro (glie h%i@r%u // fix stress and vowel sounds: hiëroglief/-gliewe | |||
A) hle (_ =LE // Nguni words and names ending in -hle: Enhlalakahle/Hlalanikahle/malahle/Phahle | |||
_) hobo ho@bu // fix o sound in compounds: hobokonsert/-musiek/-solo/-sonata/-speler | |||
hoeve (r h%uf& // fix stress and e sounds: hoever(re) | |||
hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede | |||
hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure... | |||
@@ -1785,6 +1806,7 @@ | |||
ie i | |||
tr) ie (_ 'i //stress on trie at word end | |||
ieë (K i:@ // knieë/vlieë/spieël/-tjie | |||
ie (uu i // split ie/uu, eu not diphthong: drieuur and similar | |||
ss) ief (_ 'if // move default stress: aggressief/massief/obsessief/progressief, etc. | |||
ss) iewe (_ 'iv@ // move default stress: aggressiewe/massiewe/obsessiewe/progressiewe | |||
ns) iewe (K 'iv@ // fix stress and e sound: intensiewesorg(eenheid) and similar | |||
@@ -1827,6 +1849,7 @@ | |||
_) immi (grA @m@ // fix stress and i sounds: immigrant/-e and compounds | |||
_) i (mmu %i // fix stress and i sound: immuun/immune/immuniteit | |||
_) inder (C @nd@r // inderdaad/inderhaas/indertyd | |||
_) indel (C Ind&l // fix e sound: indelf/indelwe/indelwing | |||
indi (a@ @nd%i // fix stress: Indiaan/Indiane | |||
in (dien @n //indienstreding/indiensopleiding/indiensplasing | |||
indis (kr @nd@s // stress: indiskreet/-e/indiskresie/-s | |||
@@ -1939,6 +1962,8 @@ | |||
irriter (@ ir@t'e@r // irriterend/e/irritering | |||
iles (_ _^_EN // words and names ending in -iles are English | |||
ipe (kon %ip@ // Fix stress and e sound: ipekonders and compounds | |||
_) ira (C %ira // fix stress: Irak/Iran/Iranees/-nese/Iraki | |||
ity (_N _^_EN | |||
@) igering ix2'e@r@N | |||
instruks @nstr'Wks // instruksie/s (stress) | |||
@@ -1978,6 +2003,7 @@ | |||
@) iseur is'Y@r // adviseur/narkotiseur | |||
@) i (sering i | |||
C) isie 'isi // ambisie/ammunisie/komposisie/ammunisiekis | |||
@@@C) isie isi // restore default stress in compounds like kragkompetisie... | |||
C) isieus isi'Y@s // ambisieus/suspisieuse | |||
C) isk (_ 'Isk // asterisk/tamarisk | |||
C) isk (e_ 'Isk // asteriske/tamariske | |||
@@ -2074,6 +2100,7 @@ | |||
_) kilo kil%u // fix o sound in compounds: kilogram/-liter/-meter | |||
kker (A k@r // swakkerig/blikkerig/flikkerend/flikkering | |||
klaarblyklik klA:rbl'eIkl@k // klaarblyklik/e | |||
kla (kous klA: // fix stress and long a sound: klakous/-e | |||
klande (sti kl%and@ // move default stress: klandestien/-e | |||
_) kla (sA@@ kla // klasaantekeninge/klasonderwyser and other compounds | |||
kla (ssiek kl%a // move default stress: klassiek/-e | |||
@@ -2103,7 +2130,7 @@ | |||
kleure klY@r@ // fix e sound: kleurebeeld/-gloed/-kaart/-kontras/-mengeling/-prag/-sin... | |||
kli (maat kl@ // move default stress: klimaat and compounds | |||
kli (mop klI // fix i sound: klimop(plant) | |||
klim (u klIm_ // fix i sound in compounds like bergklimuitstappie | |||
berg) klim (A klIm_ // fix i sound in compounds like bergklimuitstappie/-ekspedisie | |||
kli (niek kl@ // fix stress and i sound: kliniek and compounds | |||
klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie | |||
klou (sule kl%@U // move default stress: klousule/-s | |||
@@ -2209,6 +2236,8 @@ | |||
_) kar (b k%ar // move default stress: karba/karbol/karbonkel and their compounds | |||
kar (be kar // restore default stress: karbestuurder/-s/-besitter, etc. | |||
kar (does k%ar // move default stress: kardoes and compounds | |||
_) ka (rien k%a // fix stress and a sound: Karien/Karientjie/Kariena | |||
karika (tu k%ar%ik%a // fix stress and a sounds: karikatuur/karikature | |||
karme (naadj k%arm@ // fix stress and e sound: karmenaadjie and compounds | |||
karmosyn k%arm%useIn // fix stress and o sound: karmosyn and compounds | |||
karna (val k%arn%a // fix stress and 2nd a sound: karnaval and compounds | |||
@@ -2224,13 +2253,14 @@ | |||
kar (wei k%ar // move default stress: karwei and derivatives | |||
ka (sarm k%a // move default stress: kasarm and compounds | |||
kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne and compounds | |||
kaske (nade k%ask@ // fix stress and e sound: kaskenade/-s and compounds | |||
_) ka (sta k%a // move default stress: kastaiing and compounds | |||
_) ka (ste@ k%a // move default stress: kasteel/kastele and compounds | |||
ka (sty k%a // move default stress: kasty/-der/-ding | |||
kasse (t k%asE // fix stress and e sound: kasset/-te and compounds | |||
ka (strol k%a // move default stress: kastrol/-le and compounds | |||
_) kata ,kata | |||
katalo (gus k%atalu // fix stress and vowel sounds: katalogus and compounds | |||
katalo (gA k%atal%u // fix stress and vowel sounds: katalogus and compounds/katalogi/katalogisering | |||
kate (dr k%at@ // katedraal/katedrale and compounds | |||
kate (gA k%at@ // fix stress and vowel sounds: kategis/-te/kategismus and compounds/kategese/kategeet | |||
kategorie k,at@x2ur'i // to also handle plural | |||
@@ -2238,6 +2268,7 @@ | |||
kategories k,at@x2'o@ris // to move stress | |||
K) katel kA:t@l // fix e sound of compounds: katelknop/-styl, etc. | |||
katjie (pie k%aIc%i // move default stress: katjiepiering and compounds | |||
katki (sA k%atk@ // fix i sound: katkiseer/katkisasie, etc. | |||
_) ka (to k%a // fix stress and a sound: katode and compounds/katoliek/katots | |||
_) ka (tr k%a // move default stress: Katrina/katrol and compounds | |||
@@ -2311,10 +2342,12 @@ | |||
konkel kONk@l // restore default stress and fix [N] sound: konkelaar/konkelwerk, etc. | |||
konsen (tr k%Ons@n // fix stress and e sound: konsentreer/konsentrerend/konsentrasie | |||
konsen (trie k%Ons''En // fix stress and e sound: konsentries/-e | |||
konsep (A k%OnsEp_ // fix e sound, pause: konsepooreenkoms and similar compounds | |||
konsertina k%Ons@rtin%a // fix stress and vowel sounds: konsertina/-musiek and similar | |||
konside (rA k%Ons@d@ // fix vowel sounds: konsiderasie/konsidereer | |||
konsist k%Ons@st // konsistorie and compounds/konsistensie | |||
konstabel k%OnstA:b@l // (hof/hoof/verkeers)konstabel/-s, etc. | |||
konsti (tusi k%Onst@ // fix stress and i sound: konstitusie and compounds | |||
konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr | |||
kon (sul kOn // restore default stress: konsul and compounds | |||
konsul (tant k%Ons%Wl // fix stress: konsultant/-e and compounds | |||
@@ -2322,6 +2355,7 @@ | |||
_) kontra (KP6 k'Ontra // kontra is prefix | |||
kontra (diks k%Ontr%a // move default stress: kontradiksie/-s | |||
_) kontrak k%Ontrak // move default stress: kontraksie/kontrak and compounds | |||
kontrap (sie k%Ontrap // fix stress: kontrapsie/-s | |||
_) kontras k%Ontras // move default stress: kontras/-te/kontrasteer | |||
kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives | |||
kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel | |||
@@ -2341,7 +2375,7 @@ | |||
kos (tu k%Os // move default stress: kostuum and compounds | |||
kouka (sië k%ukA: // fix stress and vowel sounds: Koukasiër/-s | |||
kou (sa@ k%@U // move default stress: kousaal/-ale | |||
koö k%o@O // koördinasie/koöpsie, etc. | |||
ko (ö k%u // koördinasie/koöpsie/koöperasie/-atief, etc. | |||
@@ -2354,9 +2388,11 @@ | |||
lagune l%ax2yn@ // move default stress: lagune and compounds | |||
_) la (kon l%a // lakoniek/lakonies/lakonisme | |||
lamfer lA~mf@r // fix e sound: lamferdoek/-vlae, etc. (variant) | |||
lampe (t l%ampE // move default stress: lampet/-te/lampetbeker/-s | |||
lanfer lA~mf@r // fix e sound: lanferdoek/-vlae, etc. | |||
lam (len l%am // move default stress: lamlendeling/lamlendig/-e/-heid | |||
lande (ry l%and@ // move default stress: landerye/compounds of landery- | |||
_) land (_rover _^_EN | |||
_) lang (d@@ l%aN // langdradig/langdurig and their derivitivs | |||
_) lange (CA laN@ // e sound: langelaas/Langeberge | |||
lang (werp l%aN // move default stress: langwerpig/-e/-heid | |||
@@ -2379,6 +2415,7 @@ | |||
legende l@x2End@ // move default stress; fix e sounds | |||
legen (da l@x2@n // move default stress and fix e sounds | |||
legi (oen l%Ex2%i // fix stress and e sound: legioen/-e and compounds | |||
le (kker l& // fix e sound: luilekker/-dae/-lewe, etc | |||
leli (k le@l@ // fix e sound and stress: lelik and derivatives | |||
_) lende lEnd@ // lendelam/lendene/compounds of lende | |||
lening le@n@N // banklening/sorgverlening/hulpverlening... | |||
@@ -2474,6 +2511,7 @@ | |||
majestu m%A:j@st%y // fix stress: majestueus/-e | |||
makaber m%akA:b@r // fix stress and vowel sounds: makaber/-e/-heid | |||
maka (paan m%ak%a // fix stress and a sounds: Makapaan/-s/-grot and compounds | |||
ma (kassar m%a // fix stress and 1st a sound: (anti)makassar/-s | |||
@) makie (sie mak'i // fix a sound and stress: bol(le)makiesie/-slanery | |||
ma (kietie m%a // fix stress and a sound: makietie and compounds: verjaardagmakietie/-s | |||
@) makranka makr'anka // fix stress and vowel sounds: koek(e)makranka/-s | |||
@@ -2605,6 +2643,7 @@ | |||
morf (otomie m%Orf // move default stress: morfotomie | |||
_) morr (i mOr // restore default stress: morrig/morrie/-doring | |||
_) mors (@ mOrs // restore default stress: morsaf/morsdood/morsig | |||
mosam (biek m%o@s%am // move default stress: Mosambiek/-er/-se | |||
mosa (ïek m%o@s%a // move default stress: mosaïek and compounds | |||
mo (skee m%O // move default stress: moskee/-s and compounds | |||
motor mo@t@r // motorfiets/motorkar/vragmotor | |||
@@ -2627,7 +2666,7 @@ | |||
mede (doë m%e@d@ // move default stress: mededoë/-nd | |||
_) mede (ly m%e@d@// move stress | |||
mede (plig m%e@d@ // move stress: medepligtige | |||
media mi:dia // compounds of media | |||
media mi:di:ja, // compounds of media | |||
medisi (na@ m%Ed@s%i // fix stress and vowel sounds: medisinaal/-nale | |||
medi (tA m%Ed%i // fix e sound: mediteer/meditering/meditasie | |||
medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e | |||
@@ -2657,7 +2696,7 @@ | |||
mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related | |||
mentele (K mEnt'e@l@ // stress always on penultimate slb of words ending in ntele/-r | |||
men (tasie m%En // fix stress: argumentasie/dokumentasie and similar | |||
mentering mEnt'e@r@N | |||
mekaar m@k'A:r | |||
mekaarge m@k'A:rx2@ | |||
@@ -2706,10 +2745,12 @@ | |||
eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend | |||
oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar | |||
Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond | |||
we) n (g@++ n // split n/g: opwengrammofoon/wengereg/-gedagtes | |||
y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens | |||
ë) n (g n // split -ng-: reëngeluid/-geur/-gogga/-gordel/seëngebed | |||
aa) n (gas n // split n/g: metaangas and compounds and similar | |||
&) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e | |||
spi) n (ge n // split n/g: spingehalte/-geluid, etc. | |||
ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds | |||
ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees | |||
n (_g N | |||
@@ -2720,6 +2761,8 @@ | |||
_) na (C_ n'a //three-letter words starting with na | |||
na (boots nA: // long a in compounds: klank-/vlugnabootser, etc. | |||
na (burig n%A: // move default stress: naburig/-e/-heid | |||
na (byge n%A: // move default stress: nabygeleë and derivatives | |||
nabyh (e n%A:beIh // move default stress: nabyheid/-hede | |||
na (ï n%a_ // naïef/naïewe/naïwiteit | |||
@) na (lis n%a // shorten a sound: joernalis/-te/-tiek | |||
nami (bi n%amI // Namibië/Namibiese | |||
@@ -2767,6 +2810,7 @@ | |||
neo (li n%i%u // fix stress and vowel sounds: neolities/-e/neolitikum | |||
ner (veu n%&r // move default stress: nerveus/-e | |||
@C) nes (_ nEs // fix final e sound: doringnes/aasvoëlnes/kalkoennes/hamerkopnes/reiernes/kiewietnes | |||
bye) nes nEs // fix e sound: byenes and compounds | |||
by) nes nEs // fix e sound: (perde)bynes/te | |||
net (agtig nEt_ // fix e sound: (vis)netagtig/-e | |||
_) net (o nEt_ // fix o sound: netonderrok/-klere | |||
@@ -2812,7 +2856,7 @@ | |||
no (stalgie n%O // stress on 2nd slb.: nostalgies | |||
note (b no@t@ // fix e sound: notebalk/-e/-bank/-beurs | |||
notule (K n%utyl@ // fix stress and vowel sounds: notule and compounds | |||
no (velle n%u // move default stress and fix o sound | |||
novelle n%uf&l@ // move default stress and fix o sound: novelle/-s and compounds | |||
november n%o@fEmb@r // fix 1st e sound and stress: November and compounds | |||
ntere (ss ntr@' // interessant/interesseer/geïnteresseerd | |||
n (tjie N // breintjie/fonteintjie/kleintjie | |||
@@ -2857,7 +2901,7 @@ | |||
_) ok (tA %Ok // move default stress: Oktober and compounds: Oktobermaand, etc./oktaaf/oktawe | |||
ole (ander %o@l%i // fix stress and e sound: oleander and compounds | |||
C) o (lia o@ // fix o sound: Goliat/magnolia | |||
oliek (_ ul'ik // koliek/mankoliek/simboliek | |||
K) oliek ul'ik // koliek/mankoliek/simboliek/koliekbaba | |||
oliek (e_ ul'ik // mankolieke/katolieke | |||
oliekig ul'ik@x2 // mankoliekig/-e/-heid | |||
o (lien %u // fix stress and o sound: olien/-hout, etc. | |||
@@ -2929,6 +2973,7 @@ | |||
oloog ul'o@x2 // bioloog/kardioloog and similar | |||
oloë ul'u@ // bioloë/kardioloë and similar | |||
omega %o@me@x2a // omega/-s | |||
omele (t %Om@lE // fix stress and vowel sounds: omelet/-te and compounds | |||
ometrie ume@tr'i // geometrie/psigometrie | |||
ometries um'e@tris // geometries/psigometriese | |||
w) o (rs O: //lengthen o sound in wors compounds | |||
@@ -2991,6 +3036,7 @@ | |||
opper Op@r // oppergesag/wese/vlak/man | |||
opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste | |||
opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid | |||
op (sione@ %Op // fix stress vowel and s sounds: opsioneel/-nele | |||
optel Opt&l | |||
_) op (@P2 'Op // opeet/opeis/optredes/opoffering | |||
open (+ o@p@n // open/opening/e/s | |||
@@ -3328,6 +3374,7 @@ | |||
peripa (t pEripa'' // fix stress and vowel sounds: peripateties/-e/peripatetikus/-se/peripatetici | |||
peri (sCA p%Er@ // fix stress and vowel sounds: peristalties/-e/peristaltiek/periskoop/-skopies | |||
@) perke (_ p&rk@ // fix e sound in some words ending in -perke: menseperke | |||
@) perker (K p&rk@r // fix e sound: words like spoedbeperker/-s | |||
@) perking p&rk@N // fix e sound in some words containing -perking | |||
per (kussie p@r // fix stress and e sound: perkussie and compounds | |||
perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds/reperkussie/-s | |||
@@ -3343,6 +3390,8 @@ | |||
pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds | |||
perso (neel p%&rs%u // personeel and compounds | |||
pervers p@rf&rs // pervers/perversie | |||
pervert p@rf&rt // fix stress and e sounds: pervert/-e and compounds | |||
runder) pes pEs // fix e sound: runderpes and compounds | |||
pe (tieter p@ // fix stress and 1st e sound: petieterig/-e/-heid | |||
pe (tisi p@ // fix stress and e sound: petisie/petisionaris and compounds | |||
_) pe (trA_ pe@ // lengthen e sound: Petro/Petra | |||
@@ -3352,10 +3401,12 @@ | |||
ph (_ f // fix ph sound: Rudolph/Joseph | |||
phi (lip fI | |||
phi (lippA_ f@ // fix stress and 1st i sound: Philippa/Philippi | |||
_) pieter (sA@ p%it@r // move default stress: pieters(i)elie and compounds | |||
pig (meA p@x2 // move default stress: pigmee/pigmeë | |||
pi (kant p%i // move default stress: pikant/-e, etc. | |||
pikke (wyn p@k@ // move default stress: pikkewyn and compounds | |||
_) pi (la p%i // move default stress: pilaar/pilare/pilatus | |||
pio (n p%ijO // fix stress: pion/-ne and compounds of pion | |||
pio (nier p%i%u // fix stress and vowel sounds: pionier and compounds | |||
pira (mi p%ir%a // move default stress: piramide/-s/piramiedvormig | |||
pi (sto p@ // pistool/pistole and compounds | |||
@@ -3452,8 +3503,9 @@ | |||
promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit | |||
promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering | |||
proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc. | |||
prosa pr'o@sa //prosa and compounds | |||
prosa pro@s%a //prosa and compounds | |||
prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e | |||
@) prose (_ pro@s@ // fix o sound: klap-/klip-/knop-/popr ose | |||
proses pr%usEs // proses/versoeningsproses/strafproseswet | |||
projek pr%ujEk | |||
@@ -3519,6 +3571,7 @@ | |||
rasse ras@ // e sound of compounds starting with rasse | |||
ribbe (tj r'Ibi | |||
riete rit@ // fix e sound: merietelys/rietedak, etc. | |||
rinkh (als rINk // drop h: rinkhals and compounds | |||
rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der | |||
_) ri (o r%i // move default stress: riool and compounds/riolering | |||
ris (kant r@s // move default stress: riskant/-e | |||
@@ -3551,6 +3604,7 @@ | |||
rugby rWgbi | |||
ru (dolC ru // fix u sound: rudolf | |||
_) rug (A@ r''Wx2_ // fix u sound, pause: rugoefeninge/-operasie and similar | |||
ruma (tiek r%Wm@ // fix stress and vowel sounds: rumatiek(vingers and similar) | |||
ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid | |||
rusper (C rWsp@r // fix e sound: rusperband/-tjie/-trekker and similar | |||
ru (ïn r%y_ // move default stress: ruïne/-s | |||
@@ -3631,9 +3685,11 @@ | |||
o) rene r@n@ // eersgeborene/uitverkorenes | |||
re (geer r@ // regeer/geregeer; stress to end | |||
reger (A r@x2e@r // regering/regerende | |||
repertoire r%Ep@rtwA:r // repertoire and compounds | |||
re (sensA r@ // resensie/-s/resenseer/resensent | |||
reser (v r@s@r // fix stress and e sounds: (ge)reserveer/reservering | |||
re (sessie r@ // fix stress and e sound: resessie/-s and compounds | |||
resi (tA r@s@ // fix vowel sounds: resitasie and compounds/resiteer | |||
respek r@spEk | |||
respek (teer r@sp%Ek // stress to end | |||
&) rele (_ r'e@l@ | |||
@@ -3693,6 +3749,7 @@ | |||
_) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra | |||
se (ggA s& // fix e sound: niksseggend/-e | |||
@) seko (no@ s_%Ek%u // fix e sound; default stress; insert short pause: bedryfs-landsekonomie/-s/-ekonoom | |||
@) seks (_ sEks // fix final e sound: kinder-/kuber-/oumens-/selfoon-/tienerseks | |||
seks (tant s%Eks // move default stress: sekstant and compounds | |||
sekste (t s%EkstE // fix stress and 2nd e sound: sekstet/-te | |||
selek (CA s@lEk //seleksie selekteer etc. | |||
@@ -3700,6 +3757,7 @@ | |||
sen (sorie s%En // move default stress: sensories/-e | |||
senter sEnt@r // fix e sound: binne-/buite-/Springboksenter | |||
@C) se (re_ se@ // fix penultimate e sound: bed-/brand-/keel-/kop-/kruip-/maag-/mond-/pitsere | |||
se (roet s@ // fix stress and e sound: seroet and compounds | |||
seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.) | |||
sitrus s'itr%Ws_ //i sound and stress in compounds | |||
@@ -3733,6 +3791,7 @@ | |||
sa (tanie s%A: | |||
sa (tir s%a // move default stress: satire/satiries/-e | |||
sa (turnu s%a // fix stress and a sound: saturnus and compounds | |||
sauna sO:na // fix au sound: sauna(bad and similar compounds) | |||
sav (annA s%av // fix stress and v sound: savanna/-s/savanne | |||
_) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher | |||
_) sedan s@dan // fix stress and e sound: sedan/-s/sedanmotor, etc. | |||
@@ -3814,6 +3873,7 @@ | |||
skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds | |||
skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum | |||
skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene | |||
_) skok (AP4 sk''Ok_ // fix o sound and stress: skokaankondiging/-effek/-insluiting/-onthulling... | |||
skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet | |||
sko (lier sk%o@ // move default stress: skolier/-e | |||
skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s | |||
@@ -3821,7 +3881,7 @@ | |||
skrif (A skrIf_ // i sound: (hand)skrifontleder/skrifuitleg/tydskrifadvertensie/-afdeling/-artikel | |||
skuld (erken skWlt_ // fix d sound: skulderkenning/-s/-erkentenis | |||
skyn (hei sk%eIn // move default stress: skynheilig/-e/-heid | |||
_) slag sl'ax2 | |||
_) slag sl''ax2_ // slagoffer/-instrument/-e | |||
slag (off slax2_ // short a sound, insert pause: misdaadslagoffer and similar compounds | |||
sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds | |||
sla (we slA: // fix stress and a sound: slawearbeid/-er, etc. | |||
@@ -3982,6 +4042,7 @@ | |||
standerd (@ st%and@rt // compounds starting with standerd | |||
stand (houde st%ant // move default stress: standhoudend/-e/-heid | |||
stand (vasti st%ant // move default stress: (on)standvastig/-e/-heid | |||
_) stap (A stap_ // fix a sound, pause: stapafstand/-ekspedisie/-oord | |||
stapel stA:p@l // fix e sound: (op)stapeling/stapelaar | |||
staties st'A:tis | |||
sta (tutA st%a // fix stress and a sound: statute/statutêr | |||
@@ -4162,7 +4223,8 @@ | |||
_) trak (ta tr%ak // move default stress: traktaat/traktate | |||
_) trans (@P5 tr%ans // transatlanties/transformasie/transoranje/Transvaal, etc. | |||
_) trans (aksie tr%ans // remove small break: transaksie/-s and compounds | |||
transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal | |||
transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal | |||
transistor tr%ansIst@r // trans- not prefix, fix o sound: transistor(radio, etc.) | |||
transito tr%ansit%u // trans not prefix: transitorooftog and similar | |||
transport tr%anspOrt // fix stress: transport and compounds | |||
trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds | |||
@@ -4269,6 +4331,7 @@ | |||
_) ter (l t@r // move default stress: terloops/-e | |||
@) term (_ t&r@m // correct pronunciation of e | |||
@) terme (_ t&rm@ // correct pronunciation of 1st e | |||
&) termes t@rmEs // fix e sounds: bottermes and similar | |||
ter (miet t%&r // move default stress: termiet/-e and compounds | |||
_) ter (w t@r // stress and e sound: terwyl/terwille | |||
sin) te (ti te@ //sintetiseer, compounds and derivatives | |||
@@ -4299,6 +4362,7 @@ | |||
&) tel (_ t@l | |||
ge) tel (_ t&l // fix e sound: bymekaargetel/oorgetel, etc. | |||
teleur t@lY@r // teleur/teleurstelling/teleurgesteld | |||
&) tels (_ t@ls | |||
sleu) tel t@l //sleutel in compounds | |||
@@ -4386,7 +4450,7 @@ | |||
uit (voerig %Yyt // move stress: uitvoerig/-e/-heid | |||
uit (wisba %Yyt // move default stress: (on)uitwisbaar/-bare/-baarheid | |||
_) uitge (@P5 'Yytx2@ // words beginning with uitge have stress on 1st slb | |||
uitgewer 'Yytx2,e@v@r | |||
uitgewer Yytx2%e@v@r | |||
uitgewerk Yytx2@v&rk // uitgewerk and derivatives; see rule: uitgewer | |||
uitgewerp Yytx2@v&rp // fix vowel sounds, see rule: uitgewer | |||
uitke (n YytkE // mix e sound: uitken | |||
@@ -4460,6 +4524,7 @@ | |||
vere (_ fe@r@ // fix e sound: vere and compounds ending in vere | |||
ve (st fE // fix e sound: huweliksbevestiger/-bevestiging | |||
_) vet (A fEt_ // fix e sound, pause: vetafskeiding/-olie/-oplossing, etc. | |||
vete (X fe@t@ // fix stress and e sounds, remove pause: vete/-s and compounds | |||
vete (ra f%Et@ // fix stress and e sounds: veteraan/-ane and compounds | |||
veter (K fe@t@r // (skoen)veter/-s, etc. | |||
_) veto (reg fe@t%u // fix o sound: vetoreg/-te | |||
@@ -4569,6 +4634,7 @@ | |||
vol (kome f%Ol | |||
vo (llA_ fO // volle/vollê/Volla - exception to: vo (lC f%O | |||
volle (dig f%Ole@ // fix stress and e sound: (on)volledig/-e/-heid... | |||
voll (engte fOlE | |||
vo (ller fO // exception to: vo (lC f%O | |||
volles (_ fOl@s // fix stress and e sound: volles/passievolles, etc. | |||
vol (hou_ fOl // exception to: vo (lC f%O | |||
@@ -4576,7 +4642,7 @@ | |||
vol (mane fOl // exception to: vo (lC f%O | |||
vol (prop fOl // exception to: vo (lC f%O | |||
vol (r fOl // volrond/-rooi/-ryp: exception to: vo (lC f%O | |||
vol (sirk fOl // volsirkel: exception to: vo (lC f%O | |||
vol (siC fOl // volsirkel/volsin/-ne: exception to: vo (lC f%O | |||
_) vol (sk fOl // restore default stress: volskaalse/-skaduwee/-skerm/-skiet, etc. | |||
vol (ste_ fOl // exception to: vo (lC f%O | |||
vol (sto fOl // volstof/volstoom/volstop/volstort; exception to: vo (lC f%O | |||
@@ -4644,6 +4710,7 @@ | |||
nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal | |||
Cod) w v // fix w sound: godwelgevallig/godweet/godwees | |||
k) w w | |||
k) w (erC v // fix w sound: wrakwerf/-werwe | |||
volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc. | |||
k) w (And v // fix w sound: buikwand/rukwinde | |||
s) w w | |||
@@ -4886,12 +4953,14 @@ | |||
@) 'tjie %ici // foto'tjie/ma'tjie, etc. | |||
K) á (CK '!a // extra stress: kán/wás and similar | |||
áá '!A: // extra stress: dáár/dáár and similar | |||
álle (K '!al@ // ekstra stress: álle/-s | |||
K) ék (_ '&k // fix e sound and stress: ék/gék | |||
K) é (CK '!E // extra stress: hét/nét and similar | |||
éé '!e@ // extra stress: één, etdc. | |||
ék (_ '!&k // ekstra stress: ék/plék | |||
ə @ // char.replacement for 'n | |||
_C) è (_ E // dè/nè | |||
éú '!Y@ // stressed syllable | |||
ê e: | |||
l) êer &:@r // fix ê sound: lêer and compounds | |||
@@ -4908,6 +4977,7 @@ | |||
ï (nsp @ // geïnspireer/-de | |||
ï (nt @ // geïnteresseerd | |||
ï (nC 'I // beïndruk/beïnvloed | |||
ïnkarn (A @Nk%arn // fix stress and nk sound: reïnkarnasie and compounds/reïnkarneer | |||
ïsol %is%ul // geïsoleer/-d | |||
K) ó (CK '!O // extra stress: óf/kón and similar | |||
óé '!u // extra stress: móét/sóék and similar | |||
@@ -4919,13 +4989,12 @@ | |||
ûe W:@ // brûe/rû | |||
ý '!eI // extra stress: jý/mý/sý and similar | |||
ñ _^_ES // words containing ñ are Spanish: senñor/-a/-ita | |||
// punctuation | |||
! _:eItrup_: | |||
!) ! | |||
$ dOl@r | |||
__) - (_D minWs | |||
A_) - (_D _ | |||
C_) - (_D _ | |||
@@ -42,7 +42,6 @@ _< m@n'o||_:_:k@ | |||
_> ma#Z;'o||_:_:k@ | |||
_' a#p'Ost**'Uf | |||
_" kUm'Et@s | |||
_$ dola#r | |||
- m'En^s | |||
__ b'aRR2a#||B'ajS;a# | |||
_/ ba*Ra | |||
@@ -50,8 +49,8 @@ _\ b'a*RaimbERt'iDa | |||
_` a#ks'Ent,UB'E**t | |||
_( 'ob**@||pa#**'Ent@zis | |||
_) t'anka#||pa#**'Ent@zis | |||
_[ 'ob**@||kla#wD'at,or | |||
_] t'anka#||kla#wD'at,or | |||
_[ 'ob**@||kla#wD'at,o* | |||
_] t'anka#||kla#wD'at,o* | |||
_{ 'ob**@||kl'aws | |||
_} t'anka#||kl'aws | |||
_« 'ob**@||kUm'Et@s | |||
@@ -69,7 +68,7 @@ _» t'anka#||kUm'Et@s | |||
@ a*R'oBa | |||
/ ba*Ra | |||
© kopi*R'aIt | |||
£ lliur**@s | |||
£ lliu**@s | |||
¶ pa#**'aQ**a#f | |||
§ a#pa#**t'at // o secció? | |||
@@ -216,7 +215,7 @@ o o $atend | |||
b be | |||
c se | |||
ç se,tr@nkaDa# | |||
ç se,t**@nkaDa# | |||
d de | |||
f Efa# | |||
g Je |
@@ -12,7 +12,7 @@ | |||
.L02 h l r s v w y z // continuants, not f | |||
.L03 f h r s v w y z // continuants, not l | |||
.L04 i í e é è // front vowels | |||
.L08 p t k f s // sords | |||
.L05 p t k f s // sords | |||
.L09 b d g m v l n d z r q // sonors | |||
.L10 a e o // vocals fortes | |||
.L11 i u // vocals febles | |||
@@ -116,7 +116,7 @@ | |||
m m | |||
_) m' (P2 m | |||
mp (K m | |||
ment (_ m'Ent | |||
// ment (_ m'En // ?? | |||
.group n | |||
@@ -126,6 +126,7 @@ | |||
e) n (_ n // except after e, i | |||
i) n (_ n | |||
nt (K n | |||
nt (_ =n | |||
ny n^ | |||
b) n (@ m | |||
v) n (@ m | |||
@@ -137,7 +138,7 @@ | |||
.group o | |||
o o | |||
or (_ 'or | |||
or (_ 'o* | |||
ou Ow | |||
@@ -155,7 +156,7 @@ | |||
.group r | |||
r R | |||
_) r RR2 | |||
_) r *R | |||
r (_ = // final r is silent, but stress the vowel | |||
r (t ** | |||
A) r (A ** | |||
@@ -164,7 +165,7 @@ | |||
m) r (A R | |||
n) r (A R | |||
s) r (A R | |||
rr RR2 | |||
rr *R | |||
.group s | |||
@@ -205,8 +206,8 @@ | |||
.group x | |||
x ks | |||
_e) x dz | |||
_è) x dz | |||
_A) x gz | |||
_A) x (L05 ks | |||
K) x S; | |||
Ai) x S; | |||
Au) x S; | |||
@@ -236,4 +237,4 @@ | |||
g) ü w | |||
ñ n^ | |||
$ dola#r | |||
$ dola#* |
@@ -109,7 +109,7 @@ _17 'zi:btse:n | |||
_18 '_axttse:n | |||
_19 'nOYntse:n | |||
_2X 'tsvantsIC | |||
_3X 'd@-*aItsIC | |||
_3X 'd@-*aIsIC | |||
_4X 'fi:*tsIC | |||
_5X 'fynftsIC | |||
_6X 'zEktsIC |
@@ -36,9 +36,9 @@ o O u U | |||
* ** : ; b B d D | |||
dZ; f g j J J^ k l | |||
l^ m n N n^ p Q r | |||
R R2 s S; t T ts tS; | |||
v v# w z Z Z; | |||
l^ m n N n^ p Q R | |||
R2 s S; t T ts tS; v | |||
v# w z Z Z; | |||
Dictionary cs_dict | |||
@@ -139,8 +139,8 @@ o O oI u | |||
* ** : b B d D f | |||
g j J J^ k l m n | |||
N n^ p Q r R R2 s | |||
t T tS v v# w x z | |||
N n^ p Q R R2 s t | |||
T tS v v# w x z | |||
Dictionary fi_dict | |||
@@ -371,6 +371,18 @@ N n^ p q R s S S; | |||
t tS v w x z | |||
Dictionary eu_dict | |||
a aI aU e eI eU i o | |||
oI u Y | |||
* ** : ; b B c d | |||
D f g h j J k l | |||
l^ m n n^ p Q r R | |||
s S t tS ts tz v w | |||
x z | |||
Dictionary nl_dict | |||
8 @ @- A a: E e: EI |
@@ -178,8 +178,8 @@ _‼ Ekskla2m'eIS@nz | |||
_₠ jU@roU | |||
# haS $max3 | |||
@ _at_ | |||
& _and | |||
@ _at_ $u+ | |||
& _and $u+ | |||
\ bakstroUk $max3 | |||
/ stroUk $max3 | |||
?3 \ bakslaS $max3 | |||
@@ -303,12 +303,15 @@ _0M3 b'Ili@n | |||
_dpt pOInt | |||
_roman roUm@n_ | |||
_0st st | |||
_0nd @nd | |||
_0rd d | |||
_0th T | |||
_ord T // default ending | |||
_ord20 @T // for 20,30,etc | |||
_1o f'3:st | |||
_2o s'Ek@nd | |||
_3o T'3:d | |||
_5o f'IT | |||
_1o f'3: | |||
_2o s'Ek | |||
_3o T'3: | |||
_5o f'I | |||
_0Co h'Vndr@dT | |||
@@ -429,6 +432,7 @@ accursed a2k3:sI2d | |||
?5 accursed a2kVRsI2d | |||
achille a2kIli: | |||
aching eIkI2N | |||
achy eIkI | |||
adam ad@m | |||
adamant ad@m@nt | |||
add ad | |||
@@ -607,6 +611,7 @@ authority a2T0rI2tI | |||
authoritative O:T'0rI2t@tIv | |||
autograph O:t@graf | |||
auto O:toU | |||
autocracy O:t'0kr@sI | |||
automobile O:t@m@bi@l | |||
autonomous O:t'0n@m@s | |||
autopsy O:t0psI | |||
@@ -720,6 +725,7 @@ cannabis kana2bIs | |||
canoe k@nu: | |||
canoes k@nu:z | |||
canton kant0n | |||
canvas kanv@s | |||
capitol kapIt@L | |||
caprice ka2pr'i:s | |||
caramel kar@mEl | |||
@@ -753,6 +759,8 @@ chapel tSap@L | |||
charade Sa2rA:d | |||
charismatic karIsm'atIk | |||
charit tSarIt // charitable | |||
chic Si:k | |||
chisel tSIz@L | |||
chocolate tS0kl@t | |||
cholera k0l@r@ | |||
cholesterol k@lEst@r0l | |||
@@ -847,6 +855,7 @@ coordinate koU'O:dI2neIt $verb | |||
copier k0pi@3 | |||
coral k0r@L | |||
coronet k0r@nEt | |||
corollary $2 | |||
corporal kO@pr@L | |||
corporate kO@p@r@t | |||
corps kO@ $only | |||
@@ -1203,6 +1212,7 @@ hospitable h0sp'It@b@L | |||
hostage h0stI2dZ | |||
hostess hoUstEs | |||
hotel hoUt'El | |||
hotkey h0tki: | |||
house haUz $verb | |||
however $2 | |||
howto haUtu: | |||
@@ -1582,6 +1592,7 @@ pageant padZ@nt | |||
paltry pO:ltrI | |||
panacea pana2s'i:@ | |||
panache $2 | |||
pancreas pankri@s | |||
parabola p@rab@l@ | |||
paralysis p@ral@sIs | |||
parameter p@ramI2t3 | |||
@@ -1912,6 +1923,7 @@ shrilly SrIllI $verbf | |||
sibelius sI2beIli@s | |||
sierra sI'e@r@ | |||
signage saInI2dZ | |||
signal sIgn@l // signaled | |||
signer saIn3 | |||
sikh si:k | |||
silhouette sI2lUw'Et | |||
@@ -2142,6 +2154,7 @@ vegan vi:g@n | |||
vengeance vEndZ@ns | |||
venus vi:n@s | |||
versus v3:sI2z | |||
vertices v3:tIsi:z | |||
vestige vEstI2dZ | |||
vex vEks // for vexed | |||
vicar vIk3 | |||
@@ -2391,7 +2404,7 @@ Oman oUm'an | |||
Oregon 0rI2g@n | |||
Pacific pa2sIfIk | |||
Palestine pal@staIn | |||
Palestinian pal@st'Ini:@n | |||
Palestinia pal@st'Ini:@ | |||
Panama pan@mA: | |||
Paris parIs | |||
Peking pi:k'IN | |||
@@ -2420,7 +2433,7 @@ Seychelle seIS'El | |||
Sicily sIsI2lI | |||
Slovak sloUvak | |||
Seoul soUl | |||
(sri lanka) sr,i:||l'anka2 | |||
Sri sr,i: // Sri Lanka(n) | |||
Sudan su:d'an | |||
Suez su:I2z | |||
Sulawesi su:la2w'eIsI | |||
@@ -2448,6 +2461,7 @@ Wyoming waI'oUmI2N | |||
Xhosa kO:s@ | |||
zaire zaI'i@3 | |||
zimbabwe zI2mbA:bwI | |||
zimbabwean zI2mbA:bwI@n | |||
Aaron e@r@n | |||
Abe eIb | |||
@@ -2505,6 +2519,7 @@ Gary garI | |||
Geraint gEraInt | |||
Gibbs gIbz | |||
Giles gaIlz | |||
Gladys gladIs | |||
Glynn glIn | |||
Graeme greI@m | |||
Graham greI@m | |||
@@ -2565,6 +2580,7 @@ Mohammad moUh'amI2d | |||
Muhammad moUh'amI2d | |||
Moira mOIr@ | |||
Natalie nata2li | |||
Natasha $2 | |||
Nathan neIT@n | |||
Neville nEvIl | |||
Nicholas nIk@l@s | |||
@@ -2887,6 +2903,7 @@ we'd %wi:d $pastf | |||
I aI $u+ $verbf $only | |||
(I am) %aIa2m | |||
(I am) %aIam $atend | |||
he %hi: $verbsf | |||
she %Si: $only $verbsf | |||
it %It $verbsf |
@@ -1442,7 +1442,7 @@ | |||
conva (l k0nv@ | |||
_) co (nvoy k0 | |||
_) copy k0pI | |||
coro (lla k@r0 | |||
coro (ll k0r0 | |||
co (rrect k@ | |||
correspo k,0rIsp'0 | |||
co (rro k@ | |||
@@ -1869,6 +1869,7 @@ | |||
@f) ed (_S2vdei t | |||
@g) ed (_S1vi d | |||
@k) ed (_S2vdei t | |||
el) ed (_S2dv d | |||
&en) ed (_S2v d | |||
cl) ed (_S1v d | |||
@p) ed (_S2vdei t | |||
@@ -2751,6 +2752,7 @@ | |||
ie I | |||
ie (_ I | |||
ied (_S2i d // suffix | |||
ieds (_S3i dz | |||
ie (c aI | |||
ie (ce i: | |||
ie (_ aI | |||
@@ -2875,6 +2877,7 @@ | |||
@) ingment (_S7dve I2Ng-m@nt | |||
logu) ing (_S4v I2N | |||
x) ing (_+S3v I2N | |||
el) ing (_+S3dv I2N | |||
@@om) ing (_S3dv I2N | |||
en) ing (_S3v I2N | |||
en) ings (_S4v I2Nz | |||
@@ -3831,6 +3834,7 @@ | |||
_f) or (@ O@ | |||
_f) ore (A O@ | |||
f) or (k O@ | |||
_f) or (s@ %O@ | |||
ch) or (d O@ | |||
l) or (d O@ | |||
_m) or O@ | |||
@@ -4083,7 +4087,7 @@ | |||
c) over Vv3 | |||
c) ov (et Vv | |||
d) ove Vv | |||
g) ov (ern Vv | |||
g) overn Vv3n | |||
sh) ov (+ Vv | |||
h) ov (el 0v | |||
h) ov (er 0v | |||
@@ -4106,7 +4110,7 @@ | |||
.group ow | |||
ow oU | |||
ow (itz =oUv | |||
ow (itz_ =oUv | |||
ow (ay_ @w | |||
kn) owle (d 0lI | |||
_) ow (l aU | |||
@@ -4183,6 +4187,7 @@ | |||
ras) p (b | |||
_) pur (su p3 | |||
put (_ pUt | |||
s) put (_ pVt | |||
pyon pj0n | |||
_) pyro (@@P4 p,aIroU | |||
pyrom (e paIr'0m | |||
@@ -4794,6 +4799,7 @@ | |||
@) u (late =jU | |||
@) u (lar =jU | |||
@) u (lum =jU | |||
@) uli (_ =jUlaI | |||
&) u (lous_ =jU | |||
ll) u (l ju: | |||
j) u (li u: |
@@ -29,6 +29,16 @@ _0M3 mili'ardo | |||
_0M4 duili'ono | |||
_dpt _komo_ | |||
// ordinal numbers | |||
_0a a | |||
_0aj aI | |||
_0an an | |||
_0ajn aIn | |||
_0-a a | |||
_0-aj aI | |||
_0-an an | |||
_0-ajn aIn | |||
// accent names | |||
_lig ligat'uRa | |||
_acu dekst@-*ak'oRna |
@@ -17,10 +17,6 @@ | |||
a a | |||
aj aI | |||
aŭ aU | |||
D_-_) a (_ %a //'a' after a number | |||
D_-_) an (_ %an //'an' after a number | |||
D_) a (_ %a //'a' after a number | |||
D_) an (_ %an //'an' after a number | |||
.group b |
@@ -63,7 +63,7 @@ _» kom'iJ^as||dE**'EtSas | |||
^ TiRkumfl'exo | |||
€ eU**o | |||
% pOrTj'Ento $max3 | |||
% pO**Tj'Ento $max3 | |||
& ampERs'ant | |||
@ a*R'oBa | |||
/ ba*Ra |
@@ -212,7 +212,7 @@ | |||
ü u | |||
ñ n^ | |||
$ d'Olar | |||
$ d'Ola* | |||
_) - (_D m'EnOs | |||
A_) - (_D _ |
@@ -24,7 +24,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated 2009-01-14 Michel Such <[email protected]> | |||
// Updated 2009-02-01 Michel Such <[email protected]> | |||
// | |||
// * Numbers, a few abbreviations and exceptions. | |||
// | |||
@@ -111,7 +111,6 @@ _# djEz | |||
_' a2postr'Of | |||
_( 'uvR@-parA~t'Ez | |||
_) f'Erm parA~t'Ez | |||
_* asterisk: | |||
_, virgyl | |||
_- tirE | |||
_. _|pw%E~ | |||
@@ -141,11 +140,11 @@ _µ mikR'o | |||
_§ sEksj'O~ | |||
// symbols that are normally spoken when reading text | |||
@ arobaz | |||
% pursA~ $max3 | |||
* asterisk: $max3 | |||
@ _!arobaz | |||
% pursA~ $max3 | |||
& e $u $brk | |||
_& _e_komErsj'al | |||
* asterisk: $max3 | |||
+ plys $max3 | |||
~ tilde | |||
€ @ro | |||
@@ -200,30 +199,11 @@ _4X karA~t | |||
_41 karA~te:W~ | |||
_5X sE~kA~t | |||
_51 sE~kA~te:W~ | |||
_6X swAsA~t | |||
_6X swAsA~t: | |||
_61 swAsA~te:W~ | |||
_7X swAsA~t:diz3 | |||
_71 swAsA~te:O~z | |||
_72 swAsA~t:duz | |||
_73 swAsA~t:tREz | |||
_74 swAsA~t:katOrz | |||
_75 swAsA~t:kE~z | |||
_76 swAsA~t:sEz | |||
_77 swAsA~t:dis:Et | |||
_78 swAsA~t:diz'w^it3 | |||
_79 swAsA~t:diznWf | |||
_8X katR@vE~ | |||
_8X katR@vE~: | |||
_80 katR@vE~z2 | |||
_9X katR@vE~diz3 | |||
_91 katR@vE~:O~z | |||
_92 katR@vE~:duz | |||
_93 katR@vE~:tREz | |||
_94 katR@vE~:katOrz | |||
_95 katR@vE~:kE~z | |||
_96 katR@vE~:sEz | |||
_97 katR@vE~:dis:Et | |||
_98 katR@vE~:dizw^it3 | |||
_99 katR@vE~:diznWf | |||
_0C sA~ | |||
_1C0 sA~t2 | |||
_0M1 mil | |||
@@ -236,24 +216,8 @@ _dpt virgyl | |||
//some numbers have special pronunciation in Belgium and Switzerland | |||
?2 _7X sEptA~t | |||
?2 _71 sEptA~te:W~ | |||
?2 _72 sEptA~t:dYz2 | |||
?2 _73 sEptA~t:tRwAz2 | |||
?2 _74 sEptA~t:katr | |||
?2 _75 sEptA~t:sE~k | |||
?2 _76 sEptA~t:siz3 | |||
?2 _77 sEptA~t:sEt | |||
?2 _78 sEptA~t:w^it3 | |||
?2 _79 sEptA~t:nWf | |||
?2 _9X no2nA~t | |||
?2 _91 no2nA~te:W~ | |||
?2 _92 no2nA~t:dYz2 | |||
?2 _93 no2nA~t:tRwAz2 | |||
?2 _94 no2nA~t:katr | |||
?2 _95 no2nA~t:sE~k | |||
?2 _96 no2nA~t:siz3 | |||
?2 _97 no2nA~t:sEt | |||
?2 _98 no2nA~t:w^it3 | |||
?2 _99 no2nA~t:nWf | |||
(21 ème) vE~te:yniEm | |||
(31 ème) tRA~te:yniEm | |||
@@ -288,7 +252,7 @@ hz _!E2rts | |||
ibm $abbrev | |||
ide $abbrev | |||
ip $abbrev | |||
jaws dZ'O2wz | |||
jaws dZ'awz | |||
kde $abbrev | |||
kg kilogram | |||
khz kiloE2rts | |||
@@ -324,8 +288,9 @@ xfce iksEfse@ | |||
xy $abbrev | |||
dr dOkt Wr $dot $capital | |||
dr dOktWr $dot $capital | |||
prof $dot | |||
pr professeur $text *dot $capital | |||
@@ -472,7 +437,6 @@ trop $u+ | |||
assez $u+ | |||
beaucoup $u+ | |||
peu $u+ | |||
peu $noun | |||
très $u | |||
// negative | |||
@@ -480,7 +444,6 @@ ne $u $verbf | |||
pas $u+ | |||
pas $noun | |||
plus $u+ | |||
plus $noun | |||
guère $u+ | |||
jamais $u+ | |||
non nO~ $u+ | |||
@@ -504,7 +467,8 @@ sommes $u+ $verb | |||
sont $u+ $verb | |||
fus $u+ $verb | |||
fut $u+ $verb | |||
fut fyt2 $u+ $verb | |||
fût fyt2 $u+ $verb | |||
fûmes $u+ $verb | |||
fûtes $u+ $verb | |||
furent $u+ | |||
@@ -526,6 +490,7 @@ eues yz2 $u+ | |||
eus yz2 $u+ | |||
eut yt2 $u+ $verb | |||
eût yt2 $u+ $verb | |||
eûmes $u+ $verb | |||
eûtes $u+ $verb | |||
eurent yrt2 $u+ | |||
@@ -627,14 +592,17 @@ malus malys | |||
mapper _^_en | |||
mars mars | |||
mieux mj'Y $u+ | |||
mrs _^_en | |||
ours urs | |||
parangon parA~gO~ | |||
phallus falys | |||
polder pOldEr | |||
premier pr@mjer2 | |||
(program files) pr,o2gram||f'ajlz | |||
program _^_en | |||
quit _^_en | |||
scanner skaner2 | |||
scanner skanWr $noun | |||
sir _^_EN | |||
souris suri | |||
sus sys | |||
sus sy $verb | |||
@@ -733,7 +701,7 @@ from frO2m $u+ | |||
get _^_en | |||
google gu:gWl | |||
gnome gnOm | |||
gnu gnu | |||
gnu $abbrev | |||
hamburger hA~b@rgWr | |||
help _^_en | |||
hot _^_en | |||
@@ -819,5 +787,5 @@ wallis wAlis | |||
futuna futuna | |||
zimbabwe zimbabwe | |||
pest $1 | |||
@@ -23,7 +23,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated: 2009-01-14 Michel Such <[email protected]> | |||
// Updated: 2009-02-19 Michel Such <[email protected]> | |||
// | |||
// Letter classes: | |||
@@ -738,6 +738,7 @@ _) half _^_en | |||
_AC) ind (er_ _^_en // finder, reminder | |||
ize (X _^_en // realize | |||
dr) i (ve _^_en | |||
ram_f) i (le _^_en | |||
.group î | |||
@@ -902,7 +903,7 @@ _) half _^_en | |||
// group o: English section | |||
oa (X _^_en // approach, load | |||
oa (CeX _^_en | |||
oa (CerX _^_en | |||
oach _^_en | |||
old (er_ _^_en // folder, older | |||
C) oing (_ _^_en // going | |||
@@ -1102,6 +1103,7 @@ _) t (_ te | |||
-) t (- t2 | |||
_) t' (P2v t | |||
Vn) t (_ t2 | |||
A) t (- t2 | |||
t (_ | |||
peti) t (_ t2 | |||
_) th t // thon | |||
@@ -1292,6 +1294,8 @@ Vn) t (_ t2 | |||
.group x | |||
x ks | |||
_) x (A gz // xylophone | |||
xml (_S3 _!iksEmEl | |||
e) x (A gz // exagérer exemple | |||
L03e) x (A ks // annexe, vexer | |||
_ine) x (A gz |
@@ -136,6 +136,4 @@ | |||
4 4 | |||
5 5 | |||
6 6 | |||
7 1 | |||
8 3 | |||
9 6 | |||
7 7 |
@@ -1,4 +1,4 @@ | |||
58 phoneme tables | |||
59 phoneme tables | |||
new total | |||
base 103 103 | |||
base2 24 122 | |||
@@ -43,7 +43,7 @@ | |||
no 28 129 | |||
is 33 129 | |||
vi 41 140 | |||
zhy 40 136 | |||
zhy 41 137 | |||
zh 66 154 | |||
sw 14 112 | |||
tr 18 127 | |||
@@ -58,6 +58,7 @@ | |||
ne 18 157 | |||
mr 1 149 | |||
om 25 125 | |||
eu 6 124 | |||
Data file Used by | |||
b/b [b] base | |||
@@ -245,8 +246,8 @@ envelope/p_214 [5] vi | |||
envelope/p_512 [6] vi | |||
envelope/p_fall [2] vi | |||
[7] vi | |||
[1] zhy | |||
[4] zhy | |||
[7] zhy | |||
[21] zh | |||
[51] zh | |||
[22] zh | |||
@@ -255,6 +256,7 @@ envelope/p_fall [2] vi | |||
[+] rw | |||
envelope/p_fallrise [4] vi | |||
envelope/p_level [1] vi | |||
[1] zhy | |||
[3] zhy | |||
[6] zhy | |||
[55] zh | |||
@@ -723,6 +725,8 @@ ufric/s [s] base | |||
[s] es | |||
[s#] pt | |||
[z] sq | |||
[s] eu | |||
[z] eu | |||
ufric/s_ [s] base | |||
[z] base | |||
[s2] fi | |||
@@ -738,6 +742,8 @@ ufric/s_ [s] base | |||
[s2] is | |||
[z] sq | |||
[s2] om | |||
[s] eu | |||
[z] eu | |||
ufric/s! [s] base | |||
[s2] fi | |||
[s] fr | |||
@@ -1012,6 +1018,8 @@ ustop/ts [ts] base2 | |||
[dz] sq | |||
[dz] hy | |||
[ts#] hy | |||
[ts] eu | |||
[tz] eu | |||
ustop/ts_ [ts] base2 | |||
[ts] de | |||
[ts] eo | |||
@@ -1024,6 +1032,8 @@ ustop/ts_ [ts] base2 | |||
[dz] sq | |||
[dz] hy | |||
[ts#] hy | |||
[ts] eu | |||
[tz] eu | |||
ustop/ts2 [ts] lv | |||
[ts] hy | |||
ustop/tsh [tS] base | |||
@@ -2134,6 +2144,7 @@ vowel/y# [Y:] en | |||
[8] nl | |||
[Y] ro | |||
[oe] zhy | |||
[Y] eu | |||
vowel/y## [y#] is | |||
vowel/y_2 [y] fr | |||
[y"] fr |
@@ -6,7 +6,7 @@ | |||
phoneme 1 // tone: high level | |||
stress | |||
tone 50 30 envelope/p_fall NULL | |||
tone 50 50 envelope/p_level NULL | |||
endphoneme | |||
@@ -40,6 +40,12 @@ phoneme 6 // tone: low level | |||
endphoneme | |||
phoneme 7 // tone: high fall | |||
stress | |||
tone 50 30 envelope/p_fall NULL | |||
endphoneme | |||
//==================================================== | |||
// Consonants | |||
//==================================================== |
@@ -1361,3 +1361,6 @@ include ph_mathari | |||
phonemetable om base | |||
include ph_oromo | |||
phonemetable eu base2 | |||
include ph_basque |
@@ -1030,8 +1030,8 @@ void ChangeWordStress(Translator *tr, char *word, int new_stress) | |||
void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, int tonic, int prev_stress) | |||
{//======================================================================================================== | |||
void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress) | |||
{//========================================================================================================= | |||
/* Guess stress pattern of word. This is language specific | |||
'dictionary_flags' has bits 0-3 position of stressed vowel (if > 0) | |||
@@ -1109,6 +1109,13 @@ void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, | |||
max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1); | |||
if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2)) | |||
{ | |||
// option: don't stress monosyllables except at end-of-clause | |||
vowel_stress[1] = 1; | |||
dictionary_flags |= FLAG_STRESS_END; | |||
} | |||
// heavy or light syllables | |||
ix = 1; | |||
for(p = phonetic; *p != 0; p++) | |||
@@ -1219,8 +1226,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, | |||
else | |||
{ | |||
stressed_syllable = 1; | |||
if(stressflags & 0x1) | |||
max_stress = 3; // don't give full stress to monosyllables | |||
} | |||
// only set the stress if it's not already marked explicitly |
@@ -52,7 +52,7 @@ static const char *help_text = | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" | |||
"\t Write output to this WAV file, rather than speaking it directly\n" | |||
"-b\t Input text is 8-bit encoding\n" | |||
"-b\t Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit \n" | |||
"-m\t Interpret SSML markup, and ignore other < > tags\n" | |||
"-q\t Quiet, don't produce any speech (may be useful with -x)\n" | |||
"-x\t Write phoneme mnemonics to stdout\n" | |||
@@ -330,6 +330,7 @@ int main (int argc, char **argv) | |||
int option_index = 0; | |||
int c; | |||
int ix; | |||
int value; | |||
int flag_stdin = 0; | |||
int flag_compile = 0; | |||
int filesize = 0; | |||
@@ -362,7 +363,7 @@ int main (int argc, char **argv) | |||
while(true) | |||
{ | |||
c = getopt_long (argc, argv, "a:bf:g:hk:l:mp:qs:v:w:xXz", | |||
c = getopt_long (argc, argv, "a:b:f:g:hk:l:mp:qs:v:w:xXz", | |||
long_options, &option_index); | |||
/* Detect the end of the options. */ | |||
@@ -372,7 +373,11 @@ int main (int argc, char **argv) | |||
switch (c) | |||
{ | |||
case 'b': | |||
synth_flags |= espeakCHARS_8BIT; | |||
// input character encoding, 8bit, 16bit, UTF8 | |||
if((sscanf(optarg,"%d",&value) == 1) && (value <= 4)) | |||
synth_flags |= value; | |||
else | |||
synth_flags |= espeakCHARS_8BIT; | |||
break; | |||
case 'h': |
@@ -192,7 +192,7 @@ t_espeak_command* create_espeak_mark(const void *text, size_t size, const char * | |||
//> | |||
//< create_espeak_key, create_espeak_char | |||
t_espeak_command* create_espeak_key(const char *key_name) | |||
t_espeak_command* create_espeak_key(const char *key_name, void *user_data) | |||
{ | |||
ENTER("create_espeak_key"); | |||
int a_error=1; | |||
@@ -205,7 +205,9 @@ t_espeak_command* create_espeak_key(const char *key_name) | |||
a_command->type = ET_KEY; | |||
a_command->state = CS_UNDEFINED; | |||
a_command->u.my_key = strdup( key_name); | |||
a_command->u.my_key.user_data = user_data; | |||
a_command->u.my_key.unique_identifier = ++my_current_text_id; | |||
a_command->u.my_key.key_name = strdup( key_name); | |||
a_error=0; | |||
key_error: | |||
@@ -223,7 +225,7 @@ t_espeak_command* create_espeak_key(const char *key_name) | |||
return a_command; | |||
} | |||
t_espeak_command* create_espeak_char(wchar_t character) | |||
t_espeak_command* create_espeak_char(wchar_t character, void* user_data) | |||
{ | |||
ENTER("create_espeak_char"); | |||
int a_error=1; | |||
@@ -235,7 +237,9 @@ t_espeak_command* create_espeak_char(wchar_t character) | |||
a_command->type = ET_CHAR; | |||
a_command->state = CS_UNDEFINED; | |||
a_command->u.my_char = character; | |||
a_command->u.my_char.user_data = user_data; | |||
a_command->u.my_char.unique_identifier = ++my_current_text_id; | |||
a_command->u.my_char.character = character; | |||
a_error=0; | |||
char_error: | |||
@@ -463,9 +467,9 @@ int delete_espeak_command( t_espeak_command* the_command) | |||
break; | |||
case ET_KEY: | |||
if (the_command->u.my_key) | |||
if (the_command->u.my_key.key_name) | |||
{ | |||
free((void*)(the_command->u.my_key)); | |||
free((void*)(the_command->u.my_key.key_name)); | |||
} | |||
break; | |||
@@ -562,14 +566,14 @@ void process_espeak_command( t_espeak_command* the_command) | |||
case ET_KEY: | |||
{ | |||
const char* data = the_command->u.my_key; | |||
const char* data = the_command->u.my_key.key_name; | |||
sync_espeak_Key(data); | |||
} | |||
break; | |||
case ET_CHAR: | |||
{ | |||
const wchar_t data = the_command->u.my_char; | |||
const wchar_t data = the_command->u.my_char.character; | |||
sync_espeak_Char( data); | |||
} | |||
break; |
@@ -42,12 +42,28 @@ typedef struct | |||
void* user_data; | |||
} t_espeak_mark; | |||
typedef struct | |||
{ | |||
unsigned int unique_identifier; | |||
void* user_data; | |||
wchar_t character; | |||
} t_espeak_character; | |||
typedef struct | |||
{ | |||
unsigned int unique_identifier; | |||
void* user_data; | |||
const char* key_name; | |||
} t_espeak_key; | |||
typedef struct | |||
{ | |||
unsigned int unique_identifier; | |||
void* user_data; | |||
} t_espeak_terminated_msg; | |||
typedef struct | |||
{ | |||
espeak_PARAMETER parameter; | |||
@@ -71,8 +87,8 @@ typedef struct | |||
{ | |||
t_espeak_text my_text; | |||
t_espeak_mark my_mark; | |||
const char* my_key; | |||
wchar_t my_char; | |||
t_espeak_key my_key; | |||
t_espeak_character my_char; | |||
t_espeak_parameter my_param; | |||
const wchar_t* my_punctuation_list; | |||
const char *my_voice_name; | |||
@@ -88,9 +104,9 @@ t_espeak_command* create_espeak_mark(const void *text, size_t size, const char * | |||
t_espeak_command* create_espeak_terminated_msg(unsigned int unique_identifier, void* user_data); | |||
t_espeak_command* create_espeak_key(const char *key_name); | |||
t_espeak_command* create_espeak_key(const char *key_name, void *user_data); | |||
t_espeak_command* create_espeak_char(wchar_t character); | |||
t_espeak_command* create_espeak_char(wchar_t character, void *user_data); | |||
t_espeak_command* create_espeak_parameter(espeak_PARAMETER parameter, int value, int relative); | |||
@@ -747,6 +747,9 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars) | |||
// Numbers | |||
static char ph_ordinal2[12]; | |||
int TranslateRoman(Translator *tr, char *word, char *ph_out) | |||
{//===================================================== | |||
@@ -905,13 +908,14 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
int found_ordinal = 0; | |||
int next_phtype; | |||
char string[12]; // for looking up entries in *_list | |||
char ph_ordinal[20]; | |||
char ph_tens[50]; | |||
char ph_digits[50]; | |||
char ph_and[12]; | |||
char ph_ordinal[12]; | |||
// is there a special pronunciation for this 2-digit number | |||
found = 0; | |||
ph_ordinal[0] = 0; | |||
if(control & 4) | |||
{ | |||
@@ -920,6 +924,8 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
} | |||
if(control & 2) | |||
{ | |||
strcpy(ph_ordinal, ph_ordinal2); | |||
sprintf(string,"_%do",value); | |||
if((found = Lookup(tr, string, ph_digits)) != 0) | |||
{ | |||
@@ -969,6 +975,14 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
Lookup(tr, string, ph_tens); | |||
} | |||
if((ph_tens[0] == 0) && (tr->langopts.numbers & NUM_VIGESIMAL)) | |||
{ | |||
// tens not found, (for example) 73 is 60+13 | |||
units = (value % 20); | |||
sprintf(string,"_%dX",(value / 10) & 0xfe); | |||
Lookup(tr, string, ph_tens); | |||
} | |||
ph_digits[0] = 0; | |||
if(units > 0) | |||
{ | |||
@@ -997,8 +1011,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
} | |||
} | |||
ph_ordinal[0] = 0; | |||
if((control & 2) && (found_ordinal == 0)) | |||
if((control & 2) && (found_ordinal == 0) && (ph_ordinal[0] == 0)) | |||
{ | |||
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10))) | |||
Lookup(tr, "_ord20", ph_ordinal); | |||
@@ -1196,10 +1209,6 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null | |||
} // end of LookupNum3 | |||
static const char *ordinalstr_en[] = {"th","st","nd","rd",NULL,}; | |||
static const char *ordinalstr_af[] = {"de","ste",NULL,}; | |||
static const char **ordinal_strings[] = {NULL, ordinalstr_en, ordinalstr_af}; | |||
static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int *flags, int wflags) | |||
{//==================================================================================================== | |||
// Number translation with various options | |||
@@ -1208,7 +1217,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
int n_digits; | |||
int value; | |||
int ix; | |||
unsigned int ix; | |||
unsigned char c; | |||
int suppress_null = 0; | |||
int decimal_point = 0; | |||
@@ -1221,41 +1230,57 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
int decimal_count; | |||
int max_decimal_count; | |||
int decimal_mode; | |||
int len; | |||
const char *p; | |||
const char **pp; | |||
char string[12]; // for looking up entries in de_list | |||
int hyphen; | |||
char *p; | |||
char string[20]; // for looking up entries in **_list | |||
char buf1[100]; | |||
char ph_append[50]; | |||
char ph_buf[200]; | |||
char ph_buf2[50]; | |||
char suffix[20]; | |||
static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | |||
*flags = 0; | |||
for(ix=0; isdigit(word[ix]); ix++) ; | |||
n_digits = ix; | |||
value = this_value = atoi(word); | |||
ph_ordinal2[0] = 0; | |||
if((tr->langopts.numbers & 0x10000) && (word[ix] == '.')) | |||
{ | |||
// ordinal number | |||
// ordinal number is indicated by dot after the number | |||
ordinal = 2; | |||
word[ix] = ' '; | |||
} | |||
else | |||
if(tr->langopts.ordinals) | |||
{ | |||
// ordinal numbers are recognized by letters after the number | |||
// look for an ordinal number suffix after the number | |||
ix++; | |||
pp = ordinal_strings[tr->langopts.ordinals]; | |||
while((p = *pp++) != NULL) | |||
hyphen = 0; | |||
p = suffix; | |||
if(word[ix] == '-') | |||
{ | |||
*p++ = '-'; | |||
hyphen = 1; | |||
ix += 2; | |||
} | |||
while((word[ix] != 0) && (word[ix] != ' ') && (ix < (sizeof(suffix)-1))) | |||
{ | |||
len = strlen(p); | |||
if((word[ix+len] == ' ') && (memcmp(&word[ix], p, len) == 0)) | |||
*p++ = word[ix++]; | |||
} | |||
*p = 0; | |||
if(suffix[0] != 0) | |||
{ | |||
sprintf(string,"_0%s",suffix); | |||
if(Lookup(tr, string, ph_ordinal2)) | |||
{ | |||
// this is an ordinal suffix | |||
ordinal = 2; | |||
memset(&word[ix], ' ', len); | |||
break; | |||
flags[0] |= FLAG_SKIPWORDS; | |||
dictionary_skipwords = 1 + hyphen; | |||
} | |||
} | |||
} | |||
@@ -1462,7 +1487,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | |||
} | |||
*flags = FLAG_FOUND; | |||
*flags |= FLAG_FOUND; | |||
prev_value = this_value; | |||
return(1); | |||
} // end of TranslateNumber_1 |
@@ -51,7 +51,7 @@ char *namedata = NULL; | |||
static FILE *f_input = NULL; | |||
static int ungot_char2 = 0; | |||
char *p_textinput; | |||
unsigned char *p_textinput; | |||
wchar_t *p_wchar_input; | |||
static int ungot_char; | |||
static const char *ungot_word = NULL; | |||
@@ -373,13 +373,21 @@ int Eof(void) | |||
static int GetC_get(void) | |||
{//====================== | |||
int c; | |||
unsigned int c; | |||
unsigned int c2; | |||
if(f_input != NULL) | |||
{ | |||
c = fgetc(f_input); | |||
if(feof(f_input)) c = ' '; | |||
return(c & 0xff); | |||
if(option_multibyte == espeakCHARS_16BIT) | |||
{ | |||
c2 = fgetc(f_input); | |||
if(feof(f_input)) c2 = 0; | |||
c = c + (c2 << 8); | |||
} | |||
return(c); | |||
} | |||
if(option_multibyte == espeakCHARS_WCHAR) | |||
@@ -402,7 +410,15 @@ static int GetC_get(void) | |||
} | |||
if(!end_of_input) | |||
{ | |||
if(option_multibyte == espeakCHARS_16BIT) | |||
{ | |||
c = p_textinput[0] + (p_textinput[1] << 8); | |||
p_textinput += 2; | |||
return(c); | |||
} | |||
return(*p_textinput++ & 0xff); | |||
} | |||
} | |||
return(0); | |||
} | |||
@@ -440,7 +456,7 @@ static int GetC(void) | |||
c1 = GetC_get(); | |||
} | |||
if(option_multibyte == espeakCHARS_WCHAR) | |||
if((option_multibyte == espeakCHARS_WCHAR) || (option_multibyte == espeakCHARS_16BIT)) | |||
{ | |||
count_characters++; | |||
return(c1); // wchar_t text | |||
@@ -1862,8 +1878,8 @@ static MNEM_TAB xml_char_mnemonics[] = { | |||
{NULL,-1}}; | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type) | |||
{//============================================================================================ | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type) | |||
{//============================================================================================================= | |||
/* Find the end of the current clause. | |||
Write the clause into buf | |||
@@ -2031,49 +2047,62 @@ f_input = f_in; // for GetC etc | |||
} | |||
} | |||
else | |||
if((c1 == '<') && (ssml_ignore_l_angle != '<') && ((c2 == '/') || iswalpha(c2))) | |||
if((c1 == '<') && (ssml_ignore_l_angle != '<')) | |||
{ | |||
// SSML Tag | |||
n_xml_buf = 0; | |||
c1 = c2; | |||
while(!Eof() && (c1 != '>') && (n_xml_buf < N_XML_BUF)) | |||
if(c2 == '!') | |||
{ | |||
xml_buf[n_xml_buf++] = c1; | |||
c1 = GetC(); | |||
} | |||
xml_buf[n_xml_buf] = 0; | |||
c2 = ' '; | |||
buf[ix++] = ' '; | |||
self_closing = 0; | |||
if(xml_buf[n_xml_buf-1] == '/') | |||
{ | |||
// a self-closing tag | |||
xml_buf[n_xml_buf-1] = ' '; | |||
self_closing = 1; | |||
// a comment, ignore until closing '<' | |||
while(!Eof() && (c1 != '>')) | |||
{ | |||
c1 = GetC(); | |||
} | |||
c2 = ' '; | |||
} | |||
terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing); | |||
if(terminator != 0) | |||
else | |||
if((c2 == '/') || iswalpha(c2)) | |||
{ | |||
buf[ix] = ' '; | |||
buf[ix++] = 0; | |||
if(terminator & CLAUSE_BIT_VOICE) | |||
// SSML Tag | |||
n_xml_buf = 0; | |||
c1 = c2; | |||
while(!Eof() && (c1 != '>') && (n_xml_buf < N_XML_BUF)) | |||
{ | |||
// a change in voice, write the new voice name to the end of the buf | |||
p = current_voice_id; | |||
while((*p != 0) && (ix < (n_buf-1))) | |||
xml_buf[n_xml_buf++] = c1; | |||
c1 = GetC(); | |||
} | |||
xml_buf[n_xml_buf] = 0; | |||
c2 = ' '; | |||
buf[ix++] = ' '; | |||
self_closing = 0; | |||
if(xml_buf[n_xml_buf-1] == '/') | |||
{ | |||
// a self-closing tag | |||
xml_buf[n_xml_buf-1] = ' '; | |||
self_closing = 1; | |||
} | |||
terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing); | |||
if(terminator != 0) | |||
{ | |||
buf[ix] = ' '; | |||
buf[ix++] = 0; | |||
if(terminator & CLAUSE_BIT_VOICE) | |||
{ | |||
buf[ix++] = *p++; | |||
// a change in voice, write the new voice name to the end of the buf | |||
p = current_voice_id; | |||
while((*p != 0) && (ix < (n_buf-1))) | |||
{ | |||
buf[ix++] = *p++; | |||
} | |||
buf[ix++] = 0; | |||
} | |||
buf[ix++] = 0; | |||
return(terminator); | |||
} | |||
return(terminator); | |||
continue; | |||
} | |||
continue; | |||
} | |||
} | |||
ssml_ignore_l_angle=0; | |||
@@ -2087,6 +2116,7 @@ f_input = f_in; // for GetC etc | |||
if((punct = lookupwchar(punct_chars,c1)) == 0) | |||
{ | |||
charix[ix] = count_characters - clause_start_char; | |||
*charix_top = ix; | |||
ix += utf8_out(c1,&buf[ix]); | |||
terminator = CLAUSE_PERIOD; // line doesn't end in punctuation, assume period | |||
} | |||
@@ -2342,6 +2372,7 @@ if(option_ssml) parag=1; | |||
while(j < ix) | |||
charix[j++] = -1; // subsequent bytes of a multibyte character | |||
} | |||
*charix_top = ix; | |||
if(((ix > (n_buf-20)) && !IsAlpha(c1) && !iswdigit(c1)) || (ix >= (n_buf-2))) | |||
{ |
@@ -86,7 +86,7 @@ static const char *help_text = | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" | |||
"\t Write output to this WAV file, rather than speaking it directly\n" | |||
"-b\t Input text is 8-bit encoding\n" | |||
"-b\t Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit \n" | |||
"-m\t Interpret SSML markup, and ignore other < > tags\n" | |||
"-q\t Quiet, don't produce any speech (may be useful with -x)\n" | |||
"-x\t Write phoneme mnemonics to stdout\n" | |||
@@ -568,7 +568,7 @@ int main (int argc, char **argv) | |||
#else | |||
while(true) | |||
{ | |||
c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXmz", | |||
c = getopt_long (argc, argv, "a:b:f:g:hk:l:p:qs:v:w:xXmz", | |||
long_options, &option_index); | |||
/* Detect the end of the options. */ | |||
@@ -580,7 +580,10 @@ int main (int argc, char **argv) | |||
switch (c) | |||
{ | |||
case 'b': | |||
// input character encoding, 8bit, 16bit, UTF8 | |||
option_multibyte = espeakCHARS_8BIT; | |||
if((sscanf(optarg2,"%d",&value) == 1) && (value <= 4)) | |||
option_multibyte= value; | |||
break; | |||
case 'h': |
@@ -884,7 +884,7 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key) | |||
} | |||
#ifdef USE_ASYNC | |||
t_espeak_command* c = create_espeak_key( key); | |||
t_espeak_command* c = create_espeak_key( key, NULL); | |||
a_error = fifo_add_command(c); | |||
if (a_error != EE_OK) | |||
{ | |||
@@ -910,7 +910,7 @@ ESPEAK_API espeak_ERROR espeak_Char(wchar_t character) | |||
return(EE_OK); | |||
} | |||
t_espeak_command* c = create_espeak_char( character); | |||
t_espeak_command* c = create_espeak_char( character, NULL); | |||
a_error = fifo_add_command(c); | |||
if (a_error != EE_OK) | |||
{ |
@@ -27,7 +27,7 @@ | |||
#include <stdio.h> | |||
#define ESPEAK_API_REVISION 3 | |||
#define ESPEAK_API_REVISION 5 | |||
/* | |||
Revision 2 | |||
Added parameter "options" to eSpeakInitialize() | |||
@@ -38,6 +38,8 @@ Revision 3 | |||
Revision 4 | |||
Added flags parameter to espeak_CompileDictionary() | |||
Revision 5 | |||
Added espeakCHARS_16BIT | |||
*/ | |||
/********************/ | |||
/* Initialization */ | |||
@@ -227,6 +229,7 @@ int UriCallback(int type, const char *uri, const char *base); | |||
#define espeakCHARS_UTF8 1 | |||
#define espeakCHARS_8BIT 2 | |||
#define espeakCHARS_WCHAR 3 | |||
#define espeakCHARS_16BIT 4 | |||
#define espeakSSML 0x10 | |||
#define espeakPHONEMES 0x100 |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.40.07 13.Jan.09"; | |||
const char *version_string = "1.40.09 11.Mar.09"; | |||
const int version_phdata = 0x014000; | |||
int option_device_number = -1; |
@@ -263,7 +263,6 @@ Translator *SelectTranslator(const char *name) | |||
SetLetterVowel(tr,'y'); // add 'y' to vowels | |||
tr->langopts.numbers = 0x8d1 + NUM_ROMAN; | |||
tr->langopts.ordinals = 2; | |||
tr->langopts.accents = 1; | |||
} | |||
break; | |||
@@ -345,7 +344,6 @@ Translator *SelectTranslator(const char *name) | |||
tr->langopts.stress_rule = 0; | |||
tr->langopts.numbers = 0x841 + NUM_ROMAN; | |||
tr->langopts.ordinals = 1; | |||
tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word | |||
} | |||
break; | |||
@@ -446,6 +444,17 @@ Translator *SelectTranslator(const char *name) | |||
break; | |||
case L('e','u'): // basque | |||
{ | |||
static const short stress_lengths_eu[8] = {200, 200, 200, 200, 0, 0, 210, 230}; // very weak stress | |||
static const unsigned char stress_amps_eu[8] = {16,16, 18,18, 18,18, 18,18 }; | |||
SetupTranslator(tr,stress_lengths_eu,stress_amps_eu); | |||
tr->langopts.stress_rule = 1; // ?? second syllable ?? | |||
tr->langopts.numbers = 0x569 + NUM_VIGESIMAL; | |||
} | |||
break; | |||
case L('f','i'): // Finnish | |||
{ | |||
static const unsigned char stress_amps_fi[8] = {18,16, 22,22, 20,22, 22,22 }; | |||
@@ -466,6 +475,7 @@ Translator *SelectTranslator(const char *name) | |||
} | |||
break; | |||
case L('f','r'): // french | |||
{ | |||
static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 235, 240}; | |||
@@ -473,10 +483,10 @@ Translator *SelectTranslator(const char *name) | |||
SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | |||
tr->langopts.stress_rule = 3; // stress on final syllable | |||
tr->langopts.stress_flags = 0x0024; // don't use secondary stress | |||
tr->langopts.stress_flags = 0x0024 + 0x1; // don't use secondary stress, monosyllables are unstressed | |||
tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | |||
tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN; | |||
tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL; | |||
SetLetterVowel(tr,'y'); | |||
} | |||
break; | |||
@@ -958,7 +968,7 @@ SetLengthMods(tr,3); // all equal | |||
SetupTranslator(tr,stress_lengths_th,stress_amps_th); | |||
tr->langopts.stress_rule = 0; // stress on final syllable of a "word" | |||
tr->langopts.stress_flags = 1; // don't automatically set diminished stress (may be set in the intonation module) | |||
tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) | |||
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() | |||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
// tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping) | |||
@@ -1024,7 +1034,7 @@ SetLengthMods(tr,3); // all equal | |||
SetupTranslator(tr,stress_lengths_zh,stress_amps_zh); | |||
tr->langopts.stress_rule = 3; // stress on final syllable of a "word" | |||
tr->langopts.stress_flags = 1; // don't automatically set diminished stress (may be set in the intonation module) | |||
tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) | |||
tr->langopts.vowel_pause = 0; | |||
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() | |||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable |
@@ -86,7 +86,7 @@ PHONEME_LIST2 ph_list2[N_PHONEME_LIST]; // first stage of text->phonemes | |||
wchar_t option_punctlist[N_PUNCTLIST]={0}; | |||
char ctrl_embedded = '\001'; // to allow an alternative CTRL for embedded commands | |||
int option_multibyte=espeakCHARS_AUTO; // 0=auto, 1=utf8, 2=8bit, 3=wchar | |||
int option_multibyte=espeakCHARS_AUTO; // 0=auto, 1=utf8, 2=8bit, 3=wchar, 4=16bit | |||
// these are overridden by defaults set in the "speak" file | |||
int option_linelength = 0; | |||
@@ -1950,7 +1950,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
int finished; | |||
int single_quoted; | |||
int phoneme_mode = 0; | |||
int dict_flags; // returned from dictionary lookup | |||
int dict_flags = 0; // returned from dictionary lookup | |||
int word_flags; // set here | |||
int next_word_flags; | |||
int embedded_count = 0; | |||
@@ -1962,8 +1962,9 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
char *p; | |||
int j, k; | |||
int n_digits; | |||
int charix_top; | |||
short charix[N_TR_SOURCE+1]; | |||
short charix[N_TR_SOURCE+4]; | |||
WORD_TAB words[N_CLAUSE_WORDS]; | |||
int word_count=0; // index into words | |||
@@ -1973,7 +1974,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
int tone; | |||
int tone2; | |||
p_textinput = (char *)vp_input; | |||
p_textinput = (unsigned char *)vp_input; | |||
p_wchar_input = (wchar_t *)vp_input; | |||
embedded_ix = 0; | |||
@@ -1987,9 +1988,11 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
for(ix=0; ix<N_TR_SOURCE; ix++) | |||
charix[ix] = 0; | |||
terminator = ReadClause(tr, f_text, source, charix, N_TR_SOURCE, &tone2); | |||
terminator = ReadClause(tr, f_text, source, charix, &charix_top, N_TR_SOURCE, &tone2); | |||
charix[N_TR_SOURCE] = count_characters; | |||
charix[charix_top+1] = 0; | |||
charix[charix_top+2] = 0x7fff; | |||
charix[charix_top+3] = 0; | |||
clause_pause = (terminator & 0xfff) * 10; // mS | |||
tone = (terminator >> 12) & 0xf; | |||
@@ -2454,16 +2457,14 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
if(IsSpace(c)) | |||
{ | |||
if(space_inserted) | |||
if(prev_out == ' ') | |||
{ | |||
source_index = prev_source_index; // rewind to the previous character | |||
char_inserted = 0; | |||
space_inserted = 0; | |||
continue; // multiple spaces | |||
} | |||
if(prev_out == ' ') | |||
if(space_inserted) | |||
{ | |||
continue; // multiple spaces | |||
words[word_count].length = source_index - words[word_count].sourceix; | |||
} | |||
// end of 'word' | |||
@@ -2516,6 +2517,13 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
all_upper_case = FLAG_ALL_UPPER; | |||
syllable_marked = 0; | |||
} | |||
if(space_inserted) | |||
{ | |||
source_index = prev_source_index; // rewind to the previous character | |||
char_inserted = 0; | |||
space_inserted = 0; | |||
} | |||
} | |||
else | |||
{ | |||
@@ -2644,12 +2652,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
// include the next few characters, in case there are an ordinal indicator | |||
pn[0] = ' '; | |||
memcpy(pn+1, pw, 5); | |||
pn[5] = 0; | |||
memcpy(pn+1, pw, 8); | |||
pn[8] = 0; | |||
for(pw = &number_buf[1]; pw < pn;) | |||
{ | |||
TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 ); | |||
dict_flags = TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 ); | |||
while(*pw++ != ' '); | |||
words[ix].pre_pause = 0; | |||
words[ix].flags = 0; | |||
@@ -2679,11 +2687,6 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
} | |||
} | |||
if(dict_flags & FLAG_SKIPWORDS) | |||
{ | |||
ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||
} | |||
if((dict_flags & FLAG_DOT) && (ix == word_count-1) && (terminator == CLAUSE_PERIOD)) | |||
{ | |||
// probably an abbreviation such as Mr. or B. rather than end of sentence | |||
@@ -2691,6 +2694,11 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
tone = 4; | |||
} | |||
} | |||
if(dict_flags & FLAG_SKIPWORDS) | |||
{ | |||
ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||
} | |||
} | |||
for(ix=0; ix<2; ix++) |
@@ -301,7 +301,7 @@ typedef struct { | |||
int vowel_pause; | |||
int stress_rule; // 1=first syllable, 2=penultimate, 3=last | |||
// bit0=don't stress monosyllables, | |||
// bit0=don't stress monosyllables, except at end of clause | |||
// bit1=don't set diminished stress, | |||
// bit2=mark unstressed final syllables as diminished | |||
// bit4=don't allow secondary stress on last syllable | |||
@@ -328,6 +328,7 @@ typedef struct { | |||
#define NUM_ROMAN_UC 0x40000 | |||
#define NUM_NOPAUSE 0x80000 | |||
#define NUM_ROMAN_AFTER 0x200000 | |||
#define NUM_VIGESIMAL 0x400000 | |||
// bits0-1=which numbers routine to use. | |||
// bit2= thousands separator must be space | |||
@@ -348,6 +349,7 @@ typedef struct { | |||
// bit19=don't add pause after a number | |||
// bit20='and' before hundreds | |||
// bit21= say "roman" after the number, not before | |||
// bit22= vigesimal number, if tens are not found | |||
int numbers; | |||
#define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000 | |||
@@ -364,7 +366,6 @@ typedef struct { | |||
int max_roman; | |||
int thousands_sep; | |||
int decimal_sep; | |||
int ordinals; | |||
// bit 0, accent name before the letter name, bit 1 "capital" after letter name | |||
int accents; | |||
@@ -514,7 +515,7 @@ extern Translator *translator2; | |||
extern const unsigned short *charsets[N_CHARSETS]; | |||
extern char dictionary_name[40]; | |||
extern char ctrl_embedded; // to allow an alternative CTRL for embedded commands | |||
extern char *p_textinput; | |||
extern unsigned char *p_textinput; | |||
extern wchar_t *p_wchar_input; | |||
extern int dictionary_skipwords; | |||
@@ -568,11 +569,11 @@ void CalcPitches(Translator *tr, int clause_tone); | |||
int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | |||
int Unpronouncable(Translator *tr, char *word); | |||
void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, int tonic, int prev_stress); | |||
void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress); | |||
int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); | |||
int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | |||
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type); | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type); | |||
void SetVoiceStack(espeak_VOICE *v); | |||