Browse Source

[1.40.09]

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-fd96e6ae7743
master
jonsd 16 years ago
parent
commit
396c1af678

+ 78
- 16
dictsource/af_list View File

_roman rum'eIns@ _roman rum'eIns@


// ordinal numbers // 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@ _0Co h'On@rtst@





// Place names // Place names


acapulco akap'ulk@U
afganistan afg'anistan afganistan afg'anistan
alaska al'aska alaska al'aska
albanië alb'A:ne@:@-
algerië alx2'e@re@:@- algerië alx2'e@re@:@-
amanzimtoti $4
antwerpen antv&rp@n antwerpen antv&rp@n
babilon babilOn babilon babilOn
bangladesj baNglad'ES bangladesj baNglad'ES
barkly _^_EN
bellevue b&lvju: bellevue b&lvju:
bermuda $2 bermuda $2
bethlehem bEt_liEm bethlehem bEt_liEm
chicago _^_EN chicago _^_EN
china S'ina china S'ina
clanwilliam kl&:nw'ili@m clanwilliam kl&:nw'ili@m
clifton _^_EN
colenso kul'E:ns@U colenso kul'E:ns@U
colesberg ko@lsb&rx2 colesberg ko@lsb&rx2
constantia $2 constantia $2
franschhoek frA~nsh'uk franschhoek frA~nsh'uk
gadara x2@dA:ra gadara x2@dA:ra
galilea x2al@l'i:a galilea x2al@l'i:a
gariep x2ar'ip
germiston _^_EN germiston _^_EN
getsémané x2Ets'e@mani getsémané x2Ets'e@mani
gonubie g@nu:bi
goudini $2 goudini $2
gordonsbaai gO:rd@nsb'AI gordonsbaai gO:rd@nsb'AI
(graaff reinet) x2rA:f||r@n'Et (graaff reinet) x2rA:f||r@n'Et
grahamstad x2rA:mstat
griekeland x2rik@lant griekeland x2rik@lant
groblersdal x2rObl@rsd'al groblersdal x2rObl@rsd'al
havana hav'ana havana hav'ana
hirosjima hiruS'ima hirosjima hiruS'ima
israel IsraI:l israel IsraI:l
italië it'A:li;@ italië it'A:li;@
jeffreysbaai dZEfrisb'AI
kalafong kalaf'ON kalafong kalaf'ON
kanada kanad%a kanada kanad%a
kanaän kA:nA:an kanaän kA:nA:an
knysna neIsna knysna neIsna
kuruman kuruman kuruman kuruman
kwa kwa $u $only // KwaZulu, etc. kwa kwa $u $only // KwaZulu, etc.
lady _^_EN // Lady Grey/Lady Smith
ladybrand leIdibr'ant
laingsburg leInsbWrx2
lesotho l@sutu lesotho l@sutu
limpopo l@mpo@po@ limpopo l@mpo@po@
(los angeles) lOs_'andZ@li:z (los angeles) lOs_'andZ@li:z
mauritius mOr'iSjWs mauritius mOr'iSjWs
milaan $2 milaan $2
mesopotamië mEsuput'A:mi@ mesopotamië mEsuput'A:mi@
mpumalanga mpu:mal'aNga
montagu mOnt@ky montagu mOnt@ky
moreletapark mOr@l,Etap'ark moreletapark mOr@l,Etap'ark
moorreesburg mur'e@sbWrx2 moorreesburg mur'e@sbWrx2
mosambiek mo@samb'ik
(thaba nchu) tab'A:||ntSu (thaba nchu) tab'A:||ntSu
europa Y@r'o@pa europa Y@r'o@pa
nigel _^_EN nigel _^_EN
turkye $2 turkye $2
ulundi ul'undi ulundi ul'undi
upington apiNt@n upington apiNt@n
vanrhynsdorp fanr'eInsdOrp
vesuvius v@su:viWs vesuvius v@su:viWs
viëtnam vj'Etnam viëtnam vj'Etnam
wallonië val'o@ni@ wallonië val'o@ni@
adriaan A:drijan adriaan A:drijan
adrie A:dri adrie A:dri
albertus alb'&rtWs albertus alb'&rtWs
alfred _^_EN
allah %alA: allah %alA:
amelia am'i:lija
annalet anal'Et
André 'andreI André 'andreI
annette an'Et annette an'Et
antoinette antun'Et antoinette antun'Et
barbara bA:b@ra barbara bA:b@ra
basson $2
bea bi:ja bea bi:ja
benade b@nA:di
benjamin bEndZ@m@n benjamin bEndZ@m@n
bennett bEn@t bennett bEn@t
bertha b&rta
bester b'Est@r bester b'Est@r
beyers beI@rs beyers beI@rs
blignault blIx2n@Ut blignault blIx2n@Ut
brian _^_EN brian _^_EN
bredenkamp bre@d@nkamp bredenkamp bre@d@nkamp
breytenbach breIt@nbax2 breytenbach breIt@nbax2
brouwer bruw'&:r
bruwer bruw'&:r
caesar siz@r caesar siz@r
carl kA:r@L carl kA:r@L
casanova kasan'o@va casanova kasan'o@va
coetzee kuts'e@ coetzee kuts'e@
cronjé krOnj'e@ cronjé krOnj'e@
cynthia _^_EN cynthia _^_EN
dalene dal'e@n
darwin _^_EN darwin _^_EN
david _^_EN david _^_EN
(da vinci) da||v'intSi (da vinci) da||v'intSi
du $u du $u
(du pisanie) du||pis'A:ni (du pisanie) du||pis'A:ni
(du plessis) du||pl@s'i (du plessis) du||pl@s'i
(du plooy) d@||ploI
(du preez) d@||pr'e@ (du preez) d@||pr'e@
(du toit) d@||toI (du toit) d@||toI
duvenage dyv@nA:x2@
eksteen $1 eksteen $1
eldorado &ldOr'A:d@U eldorado &ldOr'A:d@U
elisabeth il'isabEt elisabeth il'isabEt
elize il'i:z elize il'i:z
elmien $2 elmien $2
elsabe &ls@bi
elsabé &ls@bi elsabé &ls@bi
emmarentia Emar'e~nSja emmarentia Emar'e~nSja
erasmus $2 erasmus $2
ernest _^_EN
eségiël is'e@x2i_@l eségiël is'e@x2i_@l
estelle %ist&l estelle %ist&l
etienne Eti@n etienne Eti@n
georgina dZO:dZ'ina georgina dZO:dZ'ina
gerhard x2&rart gerhard x2&rart
gerhardus $2 gerhardus $2
gertruida $2
gloria glO:ria gloria glO:ria
grange x2rA:nsi grange x2rA:nsi
gustav gustaf gustav gustaf
guy _^_EN guy _^_EN
hamlet _^_EN
harry _^_EN harry _^_EN
havenga hA:f@Nx2a havenga hA:f@Nx2a
haydn hAId@n haydn hAId@n
helen _^_EN helen _^_EN
helena hil'e@na helena hil'e@na
helene hi:l'i:n
helloïse hEluw'i:z helloïse hEluw'i:z
henry _^_EN henry _^_EN
herklaas $1 herklaas $1
ingrid iNgr@d ingrid iNgr@d
isabel is@b&l isabel is@b&l
iskariot isk'ariOt iskariot isk'ariOt
jaco jaku
jacques ZA:k jacques ZA:k
james _^_EN james _^_EN
jane _^_EN jane _^_EN
Jean ZA~n $capital Jean ZA~n $capital
jesebel je@s@b&l
jimmy _^_EN jimmy _^_EN
joan _^_EN joan _^_EN
joey dZ@Ui joey dZ@Ui
kim _^_EN $capital kim _^_EN $capital
krige krix2@ krige krix2@
labuschagne labWsk'ax2ni labuschagne labWsk'ax2ni
lafras $2
langenhoven laN@nho@f@n langenhoven laN@nho@f@n
lasarus lA:s@r%Ws lasarus lA:s@r%Ws
lategan lA:t@x2an lategan lA:t@x2an
le l@ $only le l@ $only
leandra li'andra leandra li'andra
leipoldt lAIpOlt
leonardo liu:n'ardu leonardo liu:n'ardu
leonie li'o@ni
levi le@fi levi le@fi
liesbet lisbEt
louis luI louis luI
louise luw'i:z louise luw'i:z
mackintosh _^_EN mackintosh _^_EN
magdalena $3 magdalena $3
malan mal'an malan mal'an
malherbe mal'&rb@ malherbe mal'&rb@
mantovani mantOv'A:ni
mara mA:ra
marelie mar@li marelie mar@li
margaret _^_EN margaret _^_EN
margaretha marx2ar'e@ta margaretha marx2ar'e@ta
martha marta martha marta
martin m'A:rt@n martin m'A:rt@n
mary _^_EN mary _^_EN
mathilda mat'Ilda
matteus mat'i:Ws matteus mat'i:Ws
matthee mat'e@
matthéüs mat'i:Ws matthéüs mat'i:Ws
maureen _^_EN
mefistofeles mEfist'o@f@l@s mefistofeles mEfist'o@f@l@s
melanie m@lA:ni melanie m@lA:ni
meraai m@rAI meraai m@rAI
mike _^_EN mike _^_EN
miriam mIri@m miriam mIri@m
mohammed muh'am@t mohammed muh'am@t
morkel mOrk@l
morné mOrn'eI morné mOrn'eI
mostert m'Ost@rt mostert m'Ost@rt
mouton mut'On mouton mut'On
reinette r@nEt reinette r@nEt
renette r@nEt renette r@nEt
renée r@neI renée r@neI
retha re@ta
retief r@tif retief r@tif
rhodes _^_EN rhodes _^_EN
robert _^_EN robert _^_EN
ronel run'&l ronel run'&l
rossouw r@s@U
rousseau r@s@U rousseau r@s@U
ruda ruda ruda ruda
rupert rup@rt rupert rup@rt
totius to@SiWs totius to@SiWs
trudie trudi trudie trudi
versfeld f&rsf&lt versfeld f&rsf&lt
veronica _^_EN
victoria _^_EN victoria _^_EN
viljoen $2 viljoen $2
villiers vIli@rs villiers vIli@rs
schreiner SraIn@r schreiner SraIn@r
tony t@Uni tony t@Uni
trichardt trix2A:rt trichardt trix2A:rt
vera ve@ra
verwey f@rveI
vivaldi viv'aldi vivaldi viv'aldi
viviers v@v@je@ viviers v@v@je@
wilhelm v@lh&l@-m
khumalo kum'A:lu khumalo kum'A:lu
zuma zu:ma zuma zu:ma


ferrari f@rA:ri ferrari f@rA:ri
martini mart'i:ni martini mart'i:ni
naspers nasp&rs 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 toyota $2
venda vEnda venda vEnda
volvo vOlvu volvo vOlvu
hoeveel $pause hoeveel $pause
wat $pause wat $pause
watter $pause watter $pause
ás as '!as


// prepositions // prepositions
aan $u $strend2 aan $u $strend2


// phrase with words spoken together // phrase with words spoken together


(nie waar nie) n,i||v,A:r||n'i
(à la carte) a||la||k'art (à 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 // main word list
aggressie $2 aggressie $2
agterstevoor $4 agterstevoor $4
agterweë $3 agterweë $3
aha A:h'!A:
algaande $2 algaande $2
alge alx2@ alge alx2@
algehele alx2@h,e@l@ algehele alx2@h,e@l@
alom al_'Om alom al_'Om
alreeds $2 alreeds $2
alternatiewe $4 alternatiewe $4
amelee am@le@
amen A:mEn amen A:mEn
anale an'A:l@ anale an'A:l@
as't as@t $u
asof asOf asof asOf
asook %as_o@k asook %as_o@k
aspris $2 aspris $2
besnedene b@sne@d@n@ besnedene b@sne@d@n@
bestes bEst@s bestes bEst@s
beta be@ta $only beta be@ta $only
betlehemster bEtli:Emst&r
bewe be@v@ bewe be@v@
bewend be@v@nt bewend be@v@nt
bewering b@ve@rIN bewering b@ve@rIN
casino kas'i:n@U casino kas'i:n@U
cedille s@dIl@ cedille s@dIl@
charisma kar'Isma charisma kar'Isma
cliché kliS'eI:

clichés kliS'eI:s
crescendo kr@SEndu crescendo kr@SEndu


dadelik dA:d@lIk dadelik dA:d@lIk
genade $2 genade $2
genesis x2e@n@s@s genesis x2e@n@s@s
//gesamentlik x2@sA:m@ntl@k //gesamentlik x2@sA:m@ntl@k
gladiator x2ladi'A:tOr
globale x2lo@b'A:l@ globale x2lo@b'A:l@
gooi x2OI gooi x2OI
gomorra x2@mOra gomorra x2@mOra
grondys x2rO:nt_eIs grondys x2rO:nt_eIs


hallo h'Il,@U hallo h'Il,@U
handtertjie hant&:rci
hanou hA:n@U hanou hA:n@U
hardop hart?Op hardop hart?Op
heeltemal he@lt@mal heeltemal he@lt@mal
kunsmatige kWnsm'A:t@x2@ kunsmatige kWnsm'A:t@x2@
kwansuis $2 kwansuis $2


lasagne las'anj@
libido l@bidu libido l@bidu
lokaas lOk_A:s
londense lOnd@ns@ londense lOnd@ns@
lord _^_EN lord _^_EN


memorabilia mEmOrab'ilija memorabilia mEmOrab'ilija
memoriam mEm'o@riam memoriam mEm'o@riam
mercedes $2 mercedes $2
meregebied me@r@x2@bit
merlot m&rl'o@ merlot m&rl'o@
miaau mi'aU:
midwinter mIdv@nt@r midwinter mIdv@nt@r
militêre mIl@t'&:r@ militêre mIl@t'&:r@
minister m@nIst@r minister m@nIst@r
parate par'A:t@ parate par'A:t@
parke park@ parke park@
parkie $1 parkie $1
parte $1
patos pA:tOs patos pA:tOs
patriotisme patri|ut'Ism@ patriotisme patri|ut'Ism@
penorent pEno@rEnt penorent pEno@rEnt
tanga taNga tanga taNga
tango taNx2u tango taNx2u
tenminste $2 tenminste $2
tequila t@ki:la
terdeë $2 terdeë $2
terug t@-rWx2 terug t@-rWx2
tesaam t@sA:m tesaam t@sA:m

+ 93
- 24
dictsource/af_rules View File

&b) a (_ %a // short final a: mamba and compounds/marimba/hamba &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 &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 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. &r) a (_ %a // short final a in words ending in -ra: infra/mantra/sentra, etc.
Cbr) a (_ A: // long a: blommetjies-/kantbra Cbr) a (_ A: // long a: blommetjies-/kantbra
&dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc. &dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc.
C) a (Csier %a // (ge)finansier/kassier C) a (Csier %a // (ge)finansier/kassier
j) a (pan %a //japan first a sound and stress j) a (pan %a //japan first a sound and stress
C) abie 'A:bi 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 (bC %a // abdy/ablatief/ablusie/abstrak, etc.
_) a (bba a // restore default stress: (ge)abba/abbamandjie, etc. _) a (bba a // restore default stress: (ge)abba/abbamandjie, etc.
abse (s %apsE // fix stress and e sound: abses/-se abse (s %apsE // fix stress and e sound: abses/-se
arre (stA %ar@ // arrestasie/arresteer arre (stA %ar@ // arrestasie/arresteer
arro (g %ar%u // arrogant/-e/arrogansie arro (g %ar%u // arrogant/-e/arrogansie
ar (seen %ar ar (seen %ar
arte (fak %art@ // move default stress: artefak/-te
ar (tikel %ar // stress: artikel and compounds ar (tikel %ar // stress: artikel and compounds
artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer
@C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc. @C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc.
C) a (xA+ a // shorten a before x: taxi and compounds/praxi/saxofoon C) a (xA+ a // shorten a before x: taxi and compounds/praxi/saxofoon
ay (_ _^_EN // words ending in ay are English ay (_ _^_EN // words ending in ay are English
ays (_ _^_EN // words ending in ays are English ays (_ _^_EN // words ending in ays are English
aë (robi %aI // move default stress: aërobies/-e




.group aa .group aa
_) ann (a@ %an // move default stress: annaal/annale _) ann (a@ %an // move default stress: annaal/annale
g) an (_ _^_EN //if it ends in gan it is English g) an (_ _^_EN //if it ends in gan it is English
C) anette (_ %anEt // Janette/Sanette 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 ansjovi anS''o@f@ // fix stress and o sound: ansjovis/-se/-smeer
an (tjie aIN an (tjie aIN
_) ana (C ,ana // words starting with ana starts destressed _) ana (C ,ana // words starting with ana starts destressed
balsem bals@m // correct e sound in derivatives like balseming balsem bals@m // correct e sound in derivatives like balseming
bara (k bar'a bara (k bar'a
bar (bA b%ar // barbaar/barbare and derivatives/barbier and compounds 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 bastion bastiOn // -tion not English: bastion/-s and compounds
_) bate b''A:t@ // fix stress and e sound: batefinansiering/-portefeulje and many others _) 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... batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur...
bybel beIb@l // to correct pronunc. of e in compounds bybel beIb@l // to correct pronunc. of e in compounds
byder (C@ b%eId@r // byderhand/-s/byderwets byder (C@ b%eId@r // byderhand/-s/byderwets
by (een b%eI_ // move default stress: byeen/byeenkoms/-te, etc. 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 (telP2 b'eI // fix e sound: bytel/-ling/-lery
by (voorb b%eI// move default stress by (voorb b%eI// move default stress
bywoordeli b%eIvo@rd@l@ // move default stressa: bywoordelik/-e bywoordeli b%eIvo@rd@l@ // move default stressa: bywoordelik/-e
C) be (rsie b'&: //kombersie etc. C) be (rsie b'&: //kombersie etc.
bene (r be@n@ //benerig/e bene (r be@n@ //benerig/e
be (C%+ bE // beffie/bessie/bennie/bettie/blombeddings 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 re) be (lK+ b& // fix e sounds: rebel/-le/-lie
_) be (Cy b@ // bely/beny/betyds _) be (Cy b@ // bely/beny/betyds
bes (ie_ be@s //sonbesie duinebesie etc. bes (ie_ be@s //sonbesie duinebesie etc.
bes (ies_ be@s //sonbesies duinebesies etc. bes (ies_ be@s //sonbesies duinebesies etc.
son) be (sie be@ // fix e sound in compounds with sonbesie: sonbesiebos, 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 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 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 (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 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 @) bed (_ bEt // bruidsbed/dubbelbed; many compounds ending in bed
be (de_ be@ // bede/gebede be (de_ be@ // bede/gebede
bedes (_ be@d@s // bedes/seënbedes, etc. bedes (_ be@d@s // bedes/seënbedes, etc.
deto (nA d%Et%u // fix e and o sounds and stress: detonasie/detoneer/detonering 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 (aar d%y@r_ // move default stress: deuraar/-de
deur (bo d%Y@r // move default stress: deurboor/deurborende 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 (drenk d%y@r // move default stress: deurdrenk/-te
deur (dring@ d%y@r // move default stress: deurdringend/-e deur (dring@ d%y@r // move default stress: deurdringend/-e
deur (grond d%y@r // move default stress: (on)deurgrond/-elik/-e/-heid deur (grond d%y@r // move default stress: (on)deurgrond/-elik/-e/-heid
du (et d%u:w // fix stress and -ue-sound: (klavier)duet/-te, etc. 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 @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 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 @) dwes tv'Es // noordwes/te/lik/e suidwes/te/lik/e
@) dwese tve@s@ // leedwese/vakbondwese @) dwese tve@s@ // leedwese/vakbondwese
@) dwillig tv'Il@x2 // d sound and stress: kwaadwillig/bereidwillig @) dwillig tv'Il@x2 // d sound and stress: kwaadwillig/bereidwillig
e (C E e (C E
CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand
CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette 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 juwel) e (C @ // fix e sound: juwelekissie and similar compounds
fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc. fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc.
kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar
narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc. narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc.
ooi) e (C @ // fix e sound: dooiepunt/ooievaar and similar 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... 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 voorrad) e (C @ // fix e sound: voorradedepot/-konvooi and similar
@C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid @C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid
CAC) e (rr @ // fix e sound: koperring/-rooi/nederryn/somerreën/-rok/superrealis/syferrekenaar... CAC) e (rr @ // fix e sound: koperring/-rooi/nederryn/somerreën/-rok/superrealis/syferrekenaar...
@C) e (reekK @ // fix e sound: duine-/rotsereeks @C) e (reekK @ // fix e sound: duine-/rotsereeks
aai) e (C @ // fix e sound: baaierd/waaierstert/paaiement/compounds starting with baaiers- 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. fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc.
bloup) ers &:rs // fix e sound: bloupers bloup) ers &:rs // fix e sound: bloupers
treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds
ies) e (b @ // fix e sound: dinamiesebinding/ekonomiesebemagtiging ies) e (b @ // fix e sound: dinamiesebinding/ekonomiesebemagtiging
&At) e (bA@ @ // fix e sound: batebestuur/sekuriteitebeurs/soldatebbaadjie/geslotebaan, etc. &At) e (bA@ @ // fix e sound: batebestuur/sekuriteitebeurs/soldatebbaadjie/geslotebaan, etc.
Aw) e (bA @ // fix e sound: briewebesteller/diewebende/newebedoeling/skewebek/stywebeen 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 (bo @ // compounds with boek/boer/boog/boom/bol/bord/borsel/bos/ grondbonebotter/kamdebo...
@C) e (bu @ // briewebus/ereburger/novellebundel/urinebuis/woedebui @C) e (bu @ // briewebus/ereburger/novellebundel/urinebuis/woedebui
@C) e (by @ // fix e sound: statebybel/-s @C) e (by @ // fix e sound: statebybel/-s
fari (seër f%ar%i // fix stress and a sound: Fariseër/-s 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 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 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 fasili f%as@l%i // fasiliteit/e/aftrekorderfasiliteit
fa (ta@ f%a //fix stress and 1st a sound: fatale/fatalis/-me/-te/-ties 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) fat (soen f%at // move default stress: (on)fatsoen(lik)
fi (siek f@ // correct 1st i sound and move default stress: fi (siek f@ // correct 1st i sound and move default stress:
fili (ppA f@l@ // fix stress and i sounds: Filippyne/-pynse/filippien fili (ppA f@l@ // fix stress and i sounds: Filippyne/-pynse/filippien
filistyn f@l@st'eIn // filistyn/e 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 _) fi (na@ f%i // finaal/finale/finansies
mor) fine (@ fin@_ // fix e sound in compounds: morfineafhanklikheid/-beswyming/-dosis/-tablet mor) fine (@ fin@_ // fix e sound in compounds: morfineafhanklikheid/-beswyming/-dosis/-tablet
fi (skA f@ // move default stress: fiskaal/fiskale/konfiskeer fi (skA f@ // move default stress: fiskaal/fiskale/konfiskeer
flu (we fl%y // move default stress: fluweel/fluwele and compounds flu (we fl%y // move default stress: fluweel/fluwele and compounds
_) fok (o fOk_ // fix o sound, insert short break: fokop/fokof _) fok (o fOk_ // fix o sound, insert short break: fokop/fokof
folio fo@li_u // fix o sounds: folio and compounds 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 @) fonie fun'i // kakofonie/simfonieorkes/telefonie
@) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies @) 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. fon (tein f%On // move default stress: fontein/fonteinwater, etc.
_) for (C f%Or // formeel/formele/forseer/fortuin _) for (C f%Or // formeel/formele/forseer/fortuin
fore (l f%ur& // fix stress and e sound: forel/-e and compounds fore (l f%ur& // fix stress and e sound: forel/-e and compounds
fo (togra fo@ // move default stress: fotograaf and similar fo (togra fo@ // move default stress: fotograaf and similar
fra (giel fr%a // fix stress and a sound: fragiel/-e fra (giel fr%a // fix stress and a sound: fragiel/-e
_) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca _) 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 fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds
freud frOId // Freud/Freudiaans/-e freud frOId // Freud/Freudiaans/-e
front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering
gal (joen x2%al // move default stress: galjoen/-e and compounds gal (joen x2%al // move default stress: galjoen/-e and compounds
gamie (_ x2am'i // bi-/mono-/poligamie, etc. gamie (_ x2am'i // bi-/mono-/poligamie, etc.
gamies x2'A:mis // bi-/mono-/poligamies/-e 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 gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds
garni (soen x2%arn%i // fix stress: garnisoen and compounds garni (soen x2%arn%i // fix stress: garnisoen and compounds
@C) garye x2%ar'eI@ // Fix stress: Bulgarye/Hongarye @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 gauteng x2%aUtEN //Gauteng and compounds
_) gh g _) gh g
gh (_ k gh (_ k
heid (_S4 heIt heid (_S4 heIt
herinner h&r'In@r // herinner/-ing/-e|s 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. 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 hia (sint h%ij%a // fix stress: hiasint/-e and compounds
_) hi (bis h%i // move default stress: hibiskus/-se and compounds _) hi (bis h%i // move default stress: hibiskus/-se and compounds
higië (nA h%ix2%ie@ higië (nA h%ix2%ie@
hiër (argie h%i@r // stress on 1st a: hiërargies/-e 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 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 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) hoeve (r h%uf& // fix stress and e sounds: hoever(re)
hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede
hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure... hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure...
ie i ie i
tr) ie (_ 'i //stress on trie at word end tr) ie (_ 'i //stress on trie at word end
ieë (K i:@ // knieë/vlieë/spieël/-tjie 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) ief (_ 'if // move default stress: aggressief/massief/obsessief/progressief, etc.
ss) iewe (_ 'iv@ // move default stress: aggressiewe/massiewe/obsessiewe/progressiewe ss) iewe (_ 'iv@ // move default stress: aggressiewe/massiewe/obsessiewe/progressiewe
ns) iewe (K 'iv@ // fix stress and e sound: intensiewesorg(eenheid) and similar ns) iewe (K 'iv@ // fix stress and e sound: intensiewesorg(eenheid) and similar
_) immi (grA @m@ // fix stress and i sounds: immigrant/-e and compounds _) immi (grA @m@ // fix stress and i sounds: immigrant/-e and compounds
_) i (mmu %i // fix stress and i sound: immuun/immune/immuniteit _) i (mmu %i // fix stress and i sound: immuun/immune/immuniteit
_) inder (C @nd@r // inderdaad/inderhaas/indertyd _) 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 indi (a@ @nd%i // fix stress: Indiaan/Indiane
in (dien @n //indienstreding/indiensopleiding/indiensplasing in (dien @n //indienstreding/indiensopleiding/indiensplasing
indis (kr @nd@s // stress: indiskreet/-e/indiskresie/-s indis (kr @nd@s // stress: indiskreet/-e/indiskresie/-s
irriter (@ ir@t'e@r // irriterend/e/irritering irriter (@ ir@t'e@r // irriterend/e/irritering


iles (_ _^_EN // words and names ending in -iles are English 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 ity (_N _^_EN
@) igering ix2'e@r@N @) igering ix2'e@r@N
instruks @nstr'Wks // instruksie/s (stress) instruks @nstr'Wks // instruksie/s (stress)
@) iseur is'Y@r // adviseur/narkotiseur @) iseur is'Y@r // adviseur/narkotiseur
@) i (sering i @) i (sering i
C) isie 'isi // ambisie/ammunisie/komposisie/ammunisiekis 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) isieus isi'Y@s // ambisieus/suspisieuse
C) isk (_ 'Isk // asterisk/tamarisk C) isk (_ 'Isk // asterisk/tamarisk
C) isk (e_ 'Isk // asteriske/tamariske C) isk (e_ 'Isk // asteriske/tamariske
_) kilo kil%u // fix o sound in compounds: kilogram/-liter/-meter _) kilo kil%u // fix o sound in compounds: kilogram/-liter/-meter
kker (A k@r // swakkerig/blikkerig/flikkerend/flikkering kker (A k@r // swakkerig/blikkerig/flikkerend/flikkering
klaarblyklik klA:rbl'eIkl@k // klaarblyklik/e 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 klande (sti kl%and@ // move default stress: klandestien/-e
_) kla (sA@@ kla // klasaantekeninge/klasonderwyser and other compounds _) kla (sA@@ kla // klasaantekeninge/klasonderwyser and other compounds
kla (ssiek kl%a // move default stress: klassiek/-e kla (ssiek kl%a // move default stress: klassiek/-e
kleure klY@r@ // fix e sound: kleurebeeld/-gloed/-kaart/-kontras/-mengeling/-prag/-sin... kleure klY@r@ // fix e sound: kleurebeeld/-gloed/-kaart/-kontras/-mengeling/-prag/-sin...
kli (maat kl@ // move default stress: klimaat and compounds kli (maat kl@ // move default stress: klimaat and compounds
kli (mop klI // fix i sound: klimop(plant) 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 kli (niek kl@ // fix stress and i sound: kliniek and compounds
klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie
klou (sule kl%@U // move default stress: klousule/-s klou (sule kl%@U // move default stress: klousule/-s
_) kar (b k%ar // move default stress: karba/karbol/karbonkel and their compounds _) kar (b k%ar // move default stress: karba/karbol/karbonkel and their compounds
kar (be kar // restore default stress: karbestuurder/-s/-besitter, etc. kar (be kar // restore default stress: karbestuurder/-s/-besitter, etc.
kar (does k%ar // move default stress: kardoes and compounds 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 karme (naadj k%arm@ // fix stress and e sound: karmenaadjie and compounds
karmosyn k%arm%useIn // fix stress and o sound: karmosyn 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 karna (val k%arn%a // fix stress and 2nd a sound: karnaval and compounds
kar (wei k%ar // move default stress: karwei and derivatives kar (wei k%ar // move default stress: karwei and derivatives
ka (sarm k%a // move default stress: kasarm and compounds ka (sarm k%a // move default stress: kasarm and compounds
kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne 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 (sta k%a // move default stress: kastaiing and compounds
_) ka (ste@ k%a // move default stress: kasteel/kastele and compounds _) ka (ste@ k%a // move default stress: kasteel/kastele and compounds
ka (sty k%a // move default stress: kasty/-der/-ding ka (sty k%a // move default stress: kasty/-der/-ding
kasse (t k%asE // fix stress and e sound: kasset/-te and compounds kasse (t k%asE // fix stress and e sound: kasset/-te and compounds
ka (strol k%a // move default stress: kastrol/-le and compounds ka (strol k%a // move default stress: kastrol/-le and compounds
_) kata ,kata _) 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 (dr k%at@ // katedraal/katedrale and compounds
kate (gA k%at@ // fix stress and vowel sounds: kategis/-te/kategismus and compounds/kategese/kategeet 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 kategorie k,at@x2ur'i // to also handle plural
kategories k,at@x2'o@ris // to move stress kategories k,at@x2'o@ris // to move stress
K) katel kA:t@l // fix e sound of compounds: katelknop/-styl, etc. K) katel kA:t@l // fix e sound of compounds: katelknop/-styl, etc.
katjie (pie k%aIc%i // move default stress: katjiepiering and compounds 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 (to k%a // fix stress and a sound: katode and compounds/katoliek/katots
_) ka (tr k%a // move default stress: Katrina/katrol and compounds _) ka (tr k%a // move default stress: Katrina/katrol and compounds


konkel kONk@l // restore default stress and fix [N] sound: konkelaar/konkelwerk, etc. 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 (tr k%Ons@n // fix stress and e sound: konsentreer/konsentrerend/konsentrasie
konsen (trie k%Ons''En // fix stress and e sound: konsentries/-e 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 konsertina k%Ons@rtin%a // fix stress and vowel sounds: konsertina/-musiek and similar
konside (rA k%Ons@d@ // fix vowel sounds: konsiderasie/konsidereer konside (rA k%Ons@d@ // fix vowel sounds: konsiderasie/konsidereer
konsist k%Ons@st // konsistorie and compounds/konsistensie konsist k%Ons@st // konsistorie and compounds/konsistensie
konstabel k%OnstA:b@l // (hof/hoof/verkeers)konstabel/-s, etc. 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 konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr
kon (sul kOn // restore default stress: konsul and compounds kon (sul kOn // restore default stress: konsul and compounds
konsul (tant k%Ons%Wl // fix stress: konsultant/-e and compounds konsul (tant k%Ons%Wl // fix stress: konsultant/-e and compounds
_) kontra (KP6 k'Ontra // kontra is prefix _) kontra (KP6 k'Ontra // kontra is prefix
kontra (diks k%Ontr%a // move default stress: kontradiksie/-s kontra (diks k%Ontr%a // move default stress: kontradiksie/-s
_) kontrak k%Ontrak // move default stress: kontraksie/kontrak and compounds _) 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 _) kontras k%Ontras // move default stress: kontras/-te/kontrasteer
kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives
kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel
kos (tu k%Os // move default stress: kostuum and compounds kos (tu k%Os // move default stress: kostuum and compounds
kouka (sië k%ukA: // fix stress and vowel sounds: Koukasiër/-s kouka (sië k%ukA: // fix stress and vowel sounds: Koukasiër/-s
kou (sa@ k%@U // move default stress: kousaal/-ale 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.






lagune l%ax2yn@ // move default stress: lagune and compounds lagune l%ax2yn@ // move default stress: lagune and compounds
_) la (kon l%a // lakoniek/lakonies/lakonisme _) la (kon l%a // lakoniek/lakonies/lakonisme
lamfer lA~mf@r // fix e sound: lamferdoek/-vlae, etc. (variant) 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. lanfer lA~mf@r // fix e sound: lanferdoek/-vlae, etc.
lam (len l%am // move default stress: lamlendeling/lamlendig/-e/-heid lam (len l%am // move default stress: lamlendeling/lamlendig/-e/-heid
lande (ry l%and@ // move default stress: landerye/compounds of landery- lande (ry l%and@ // move default stress: landerye/compounds of landery-
_) land (_rover _^_EN
_) lang (d@@ l%aN // langdradig/langdurig and their derivitivs _) lang (d@@ l%aN // langdradig/langdurig and their derivitivs
 _) lange (CA laN@ // e sound: langelaas/Langeberge  _) lange (CA laN@ // e sound: langelaas/Langeberge
lang (werp l%aN // move default stress: langwerpig/-e/-heid lang (werp l%aN // move default stress: langwerpig/-e/-heid
legende l@x2End@ // move default stress; fix e sounds legende l@x2End@ // move default stress; fix e sounds
legen (da l@x2@n // move default stress and 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 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 leli (k le@l@ // fix e sound and stress: lelik and derivatives
_) lende lEnd@ // lendelam/lendene/compounds of lende _) lende lEnd@ // lendelam/lendene/compounds of lende
lening le@n@N // banklening/sorgverlening/hulpverlening... lening le@n@N // banklening/sorgverlening/hulpverlening...
majestu m%A:j@st%y // fix stress: majestueus/-e majestu m%A:j@st%y // fix stress: majestueus/-e
makaber m%akA:b@r // fix stress and vowel sounds: makaber/-e/-heid 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 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 @) 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 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 @) makranka makr'anka // fix stress and vowel sounds: koek(e)makranka/-s
morf (otomie m%Orf // move default stress: morfotomie morf (otomie m%Orf // move default stress: morfotomie
_) morr (i mOr // restore default stress: morrig/morrie/-doring _) morr (i mOr // restore default stress: morrig/morrie/-doring
_) mors (@ mOrs // restore default stress: morsaf/morsdood/morsig _) 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 mosa (ïek m%o@s%a // move default stress: mosaïek and compounds
mo (skee m%O // move default stress: moskee/-s and compounds mo (skee m%O // move default stress: moskee/-s and compounds
motor mo@t@r // motorfiets/motorkar/vragmotor motor mo@t@r // motorfiets/motorkar/vragmotor
mede (doë m%e@d@ // move default stress: mededoë/-nd mede (doë m%e@d@ // move default stress: mededoë/-nd
_) mede (ly m%e@d@// move stress _) mede (ly m%e@d@// move stress
mede (plig m%e@d@ // move stress: medepligtige 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 medisi (na@ m%Ed@s%i // fix stress and vowel sounds: medisinaal/-nale
medi (tA m%Ed%i // fix e sound: mediteer/meditering/meditasie medi (tA m%Ed%i // fix e sound: mediteer/meditering/meditasie
medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e


mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related 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 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 mentering mEnt'e@r@N
mekaar m@k'A:r mekaar m@k'A:r
mekaarge m@k'A:rx2@ mekaarge m@k'A:rx2@
eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend
oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar
Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond 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 y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens
ë) n (g n // split -ng-: reëngeluid/-geur/-gogga/-gordel/seëngebed ë) n (g n // split -ng-: reëngeluid/-geur/-gogga/-gordel/seëngebed
aa) n (gas n // split n/g: metaangas and compounds and similar aa) n (gas n // split n/g: metaangas and compounds and similar
&) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e &) 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 ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds
ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees
n (_g N n (_g N
_) na (C_ n'a //three-letter words starting with na _) na (C_ n'a //three-letter words starting with na
na (boots nA: // long a in compounds: klank-/vlugnabootser, etc. na (boots nA: // long a in compounds: klank-/vlugnabootser, etc.
na (burig n%A: // move default stress: naburig/-e/-heid 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 (ï n%a_ // naïef/naïewe/naïwiteit
@) na (lis n%a // shorten a sound: joernalis/-te/-tiek @) na (lis n%a // shorten a sound: joernalis/-te/-tiek
nami (bi n%amI // Namibië/Namibiese nami (bi n%amI // Namibië/Namibiese
neo (li n%i%u // fix stress and vowel sounds: neolities/-e/neolitikum neo (li n%i%u // fix stress and vowel sounds: neolities/-e/neolitikum
ner (veu n%&r // move default stress: nerveus/-e ner (veu n%&r // move default stress: nerveus/-e
@C) nes (_ nEs // fix final e sound: doringnes/aasvoëlnes/kalkoennes/hamerkopnes/reiernes/kiewietnes @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 by) nes nEs // fix e sound: (perde)bynes/te
net (agtig nEt_ // fix e sound: (vis)netagtig/-e net (agtig nEt_ // fix e sound: (vis)netagtig/-e
_) net (o nEt_ // fix o sound: netonderrok/-klere _) net (o nEt_ // fix o sound: netonderrok/-klere
no (stalgie n%O // stress on 2nd slb.: nostalgies no (stalgie n%O // stress on 2nd slb.: nostalgies
note (b no@t@ // fix e sound: notebalk/-e/-bank/-beurs note (b no@t@ // fix e sound: notebalk/-e/-bank/-beurs
notule (K n%utyl@ // fix stress and vowel sounds: notule and compounds 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 november n%o@fEmb@r // fix 1st e sound and stress: November and compounds
ntere (ss ntr@' // interessant/interesseer/geïnteresseerd ntere (ss ntr@' // interessant/interesseer/geïnteresseerd
n (tjie N // breintjie/fonteintjie/kleintjie n (tjie N // breintjie/fonteintjie/kleintjie
_) ok (tA %Ok // move default stress: Oktober and compounds: Oktobermaand, etc./oktaaf/oktawe _) 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 ole (ander %o@l%i // fix stress and e sound: oleander and compounds
C) o (lia o@ // fix o sound: Goliat/magnolia 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 oliek (e_ ul'ik // mankolieke/katolieke
oliekig ul'ik@x2 // mankoliekig/-e/-heid oliekig ul'ik@x2 // mankoliekig/-e/-heid
o (lien %u // fix stress and o sound: olien/-hout, etc. o (lien %u // fix stress and o sound: olien/-hout, etc.
oloog ul'o@x2 // bioloog/kardioloog and similar oloog ul'o@x2 // bioloog/kardioloog and similar
oloë ul'u@ // bioloë/kardioloë and similar oloë ul'u@ // bioloë/kardioloë and similar
omega %o@me@x2a // omega/-s 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 ometrie ume@tr'i // geometrie/psigometrie
ometries um'e@tris // geometries/psigometriese ometries um'e@tris // geometries/psigometriese
w) o (rs O: //lengthen o sound in wors compounds w) o (rs O: //lengthen o sound in wors compounds
opper Op@r // oppergesag/wese/vlak/man opper Op@r // oppergesag/wese/vlak/man
opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste
opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid
op (sione@ %Op // fix stress vowel and s sounds: opsioneel/-nele
optel Opt&l optel Opt&l
_) op (@P2 'Op // opeet/opeis/optredes/opoffering _) op (@P2 'Op // opeet/opeis/optredes/opoffering
open (+ o@p@n // open/opening/e/s open (+ o@p@n // open/opening/e/s
peripa (t pEripa'' // fix stress and vowel sounds: peripateties/-e/peripatetikus/-se/peripatetici 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 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 @) 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 @) perking p&rk@N // fix e sound in some words containing -perking
per (kussie p@r // fix stress and e sound: perkussie and compounds 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 perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds/reperkussie/-s
pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds
perso (neel p%&rs%u // personeel and compounds perso (neel p%&rs%u // personeel and compounds
pervers p@rf&rs // pervers/perversie 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 (tieter p@ // fix stress and 1st e sound: petieterig/-e/-heid
pe (tisi p@ // fix stress and e sound: petisie/petisionaris and compounds pe (tisi p@ // fix stress and e sound: petisie/petisionaris and compounds
_) pe (trA_ pe@ // lengthen e sound: Petro/Petra _) pe (trA_ pe@ // lengthen e sound: Petro/Petra
ph (_ f // fix ph sound: Rudolph/Joseph ph (_ f // fix ph sound: Rudolph/Joseph
phi (lip fI phi (lip fI
phi (lippA_ f@ // fix stress and 1st i sound: Philippa/Philippi 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ë pig (meA p@x2 // move default stress: pigmee/pigmeë
pi (kant p%i // move default stress: pikant/-e, etc. pi (kant p%i // move default stress: pikant/-e, etc.
pikke (wyn p@k@ // move default stress: pikkewyn and compounds pikke (wyn p@k@ // move default stress: pikkewyn and compounds
_) pi (la p%i // move default stress: pilaar/pilare/pilatus _) 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 pio (nier p%i%u // fix stress and vowel sounds: pionier and compounds
pira (mi p%ir%a // move default stress: piramide/-s/piramiedvormig pira (mi p%ir%a // move default stress: piramide/-s/piramiedvormig
pi (sto p@ // pistool/pistole and compounds pi (sto p@ // pistool/pistole and compounds
promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit
promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering 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. 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 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 proses pr%usEs // proses/versoeningsproses/strafproseswet


projek pr%ujEk projek pr%ujEk
rasse ras@ // e sound of compounds starting with rasse rasse ras@ // e sound of compounds starting with rasse
ribbe (tj r'Ibi ribbe (tj r'Ibi
riete rit@ // fix e sound: merietelys/rietedak, etc. 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 rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der
_) ri (o r%i // move default stress: riool and compounds/riolering _) ri (o r%i // move default stress: riool and compounds/riolering
ris (kant r@s // move default stress: riskant/-e ris (kant r@s // move default stress: riskant/-e
rugby rWgbi rugby rWgbi
ru (dolC ru // fix u sound: rudolf ru (dolC ru // fix u sound: rudolf
_) rug (A@ r''Wx2_ // fix u sound, pause: rugoefeninge/-operasie and similar _) 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 ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid
rusper (C rWsp@r // fix e sound: rusperband/-tjie/-trekker and similar rusper (C rWsp@r // fix e sound: rusperband/-tjie/-trekker and similar
ru (ïn r%y_ // move default stress: ruïne/-s ru (ïn r%y_ // move default stress: ruïne/-s
o) rene r@n@ // eersgeborene/uitverkorenes o) rene r@n@ // eersgeborene/uitverkorenes
re (geer r@ // regeer/geregeer; stress to end re (geer r@ // regeer/geregeer; stress to end
reger (A r@x2e@r // regering/regerende reger (A r@x2e@r // regering/regerende
repertoire r%Ep@rtwA:r // repertoire and compounds
re (sensA r@ // resensie/-s/resenseer/resensent re (sensA r@ // resensie/-s/resenseer/resensent
reser (v r@s@r // fix stress and e sounds: (ge)reserveer/reservering 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 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 r@spEk
respek (teer r@sp%Ek // stress to end respek (teer r@sp%Ek // stress to end
&) rele (_ r'e@l@ &) rele (_ r'e@l@
_) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra _) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra
se (ggA s& // fix e sound: niksseggend/-e 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 @) 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 seks (tant s%Eks // move default stress: sekstant and compounds
sekste (t s%EkstE // fix stress and 2nd e sound: sekstet/-te sekste (t s%EkstE // fix stress and 2nd e sound: sekstet/-te
selek (CA s@lEk //seleksie selekteer etc. selek (CA s@lEk //seleksie selekteer etc.
sen (sorie s%En // move default stress: sensories/-e sen (sorie s%En // move default stress: sensories/-e
senter sEnt@r // fix e sound: binne-/buite-/Springboksenter 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 @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.) seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.)
sitrus s'itr%Ws_ //i sound and stress in compounds sitrus s'itr%Ws_ //i sound and stress in compounds


sa (tanie s%A: sa (tanie s%A:
sa (tir s%a // move default stress: satire/satiries/-e sa (tir s%a // move default stress: satire/satiries/-e
sa (turnu s%a // fix stress and a sound: saturnus and compounds 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 sav (annA s%av // fix stress and v sound: savanna/-s/savanne
_) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher _) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher
_) sedan s@dan // fix stress and e sound: sedan/-s/sedanmotor, etc. _) sedan s@dan // fix stress and e sound: sedan/-s/sedanmotor, etc.
skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds 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 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 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 skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet
sko (lier sk%o@ // move default stress: skolier/-e sko (lier sk%o@ // move default stress: skolier/-e
skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s
skrif (A skrIf_ // i sound: (hand)skrifontleder/skrifuitleg/tydskrifadvertensie/-afdeling/-artikel skrif (A skrIf_ // i sound: (hand)skrifontleder/skrifuitleg/tydskrifadvertensie/-afdeling/-artikel
skuld (erken skWlt_ // fix d sound: skulderkenning/-s/-erkentenis skuld (erken skWlt_ // fix d sound: skulderkenning/-s/-erkentenis
skyn (hei sk%eIn // move default stress: skynheilig/-e/-heid 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 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 (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. sla (we slA: // fix stress and a sound: slawearbeid/-er, etc.
standerd (@ st%and@rt // compounds starting with standerd standerd (@ st%and@rt // compounds starting with standerd
stand (houde st%ant // move default stress: standhoudend/-e/-heid stand (houde st%ant // move default stress: standhoudend/-e/-heid
stand (vasti st%ant // move default stress: (on)standvastig/-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 stapel stA:p@l // fix e sound: (op)stapeling/stapelaar
staties st'A:tis staties st'A:tis
sta (tutA st%a // fix stress and a sound: statute/statutêr sta (tutA st%a // fix stress and a sound: statute/statutêr
_) trak (ta tr%ak // move default stress: traktaat/traktate _) trak (ta tr%ak // move default stress: traktaat/traktate
_) trans (@P5 tr%ans // transatlanties/transformasie/transoranje/Transvaal, etc. _) trans (@P5 tr%ans // transatlanties/transformasie/transoranje/Transvaal, etc.
_) trans (aksie tr%ans // remove small break: transaksie/-s and compounds _) 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 transito tr%ansit%u // trans not prefix: transitorooftog and similar
transport tr%anspOrt // fix stress: transport and compounds transport tr%anspOrt // fix stress: transport and compounds
trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds
_) ter (l t@r // move default stress: terloops/-e _) ter (l t@r // move default stress: terloops/-e
@) term (_ t&r@m // correct pronunciation of e @) term (_ t&r@m // correct pronunciation of e
@) terme (_ t&rm@ // correct pronunciation of 1st 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 (miet t%&r // move default stress: termiet/-e and compounds
_) ter (w t@r // stress and e sound: terwyl/terwille _) ter (w t@r // stress and e sound: terwyl/terwille
sin) te (ti te@ //sintetiseer, compounds and derivatives sin) te (ti te@ //sintetiseer, compounds and derivatives




&) tel (_ t@l &) tel (_ t@l
ge) tel (_ t&l // fix e sound: bymekaargetel/oorgetel, etc.
teleur t@lY@r // teleur/teleurstelling/teleurgesteld teleur t@lY@r // teleur/teleurstelling/teleurgesteld
&) tels (_ t@ls &) tels (_ t@ls
sleu) tel t@l //sleutel in compounds sleu) tel t@l //sleutel in compounds
uit (voerig %Yyt // move stress: uitvoerig/-e/-heid uit (voerig %Yyt // move stress: uitvoerig/-e/-heid
uit (wisba %Yyt // move default stress: (on)uitwisbaar/-bare/-baarheid uit (wisba %Yyt // move default stress: (on)uitwisbaar/-bare/-baarheid
_) uitge (@P5 'Yytx2@ // words beginning with uitge have stress on 1st slb _) 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 uitgewerk Yytx2@v&rk // uitgewerk and derivatives; see rule: uitgewer
uitgewerp Yytx2@v&rp // fix vowel sounds, see rule: uitgewer uitgewerp Yytx2@v&rp // fix vowel sounds, see rule: uitgewer
uitke (n YytkE // mix e sound: uitken uitke (n YytkE // mix e sound: uitken
vere (_ fe@r@ // fix e sound: vere and compounds ending in vere vere (_ fe@r@ // fix e sound: vere and compounds ending in vere
ve (st fE // fix e sound: huweliksbevestiger/-bevestiging ve (st fE // fix e sound: huweliksbevestiger/-bevestiging
_) vet (A fEt_ // fix e sound, pause: vetafskeiding/-olie/-oplossing, etc. _) 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 vete (ra f%Et@ // fix stress and e sounds: veteraan/-ane and compounds
veter (K fe@t@r // (skoen)veter/-s, etc. veter (K fe@t@r // (skoen)veter/-s, etc.
_) veto (reg fe@t%u // fix o sound: vetoreg/-te _) veto (reg fe@t%u // fix o sound: vetoreg/-te
vol (kome f%Ol vol (kome f%Ol
vo (llA_ fO // volle/vollê/Volla - exception to: vo (lC f%O 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... 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 vo (ller fO // exception to: vo (lC f%O
volles (_ fOl@s // fix stress and e sound: volles/passievolles, etc. volles (_ fOl@s // fix stress and e sound: volles/passievolles, etc.
vol (hou_ fOl // exception to: vo (lC f%O vol (hou_ fOl // exception to: vo (lC f%O
vol (mane fOl // exception to: vo (lC f%O vol (mane fOl // exception to: vo (lC f%O
vol (prop 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 (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 (sk fOl // restore default stress: volskaalse/-skaduwee/-skerm/-skiet, etc.
vol (ste_ fOl // exception to: vo (lC f%O vol (ste_ fOl // exception to: vo (lC f%O
vol (sto fOl // volstof/volstoom/volstop/volstort; exception to: vo (lC f%O vol (sto fOl // volstof/volstoom/volstop/volstort; exception to: vo (lC f%O
nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal
Cod) w v // fix w sound: godwelgevallig/godweet/godwees Cod) w v // fix w sound: godwelgevallig/godweet/godwees
k) w w k) w w
k) w (erC v // fix w sound: wrakwerf/-werwe
volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc. volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc.
k) w (And v // fix w sound: buikwand/rukwinde k) w (And v // fix w sound: buikwand/rukwinde
s) w w s) w w
@) 'tjie %ici // foto'tjie/ma'tjie, etc. @) 'tjie %ici // foto'tjie/ma'tjie, etc.
K) á (CK '!a // extra stress: kán/wás and similar K) á (CK '!a // extra stress: kán/wás and similar
áá '!A: // extra stress: dáár/dáár 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) ék (_ '&k // fix e sound and stress: ék/gék
K) é (CK '!E // extra stress: hét/nét and similar K) é (CK '!E // extra stress: hét/nét and similar
éé '!e@ // extra stress: één, etdc. éé '!e@ // extra stress: één, etdc.
ék (_ '!&k // ekstra stress: ék/plék ék (_ '!&k // ekstra stress: ék/plék
ə @ // char.replacement for 'n ə @ // char.replacement for 'n
_C) è (_ E // dè/nè _C) è (_ E // dè/nè
éú '!Y@ // stressed syllable


ê e: ê e:
l) êer &:@r // fix ê sound: lêer and compounds l) êer &:@r // fix ê sound: lêer and compounds
ï (nsp @ // geïnspireer/-de ï (nsp @ // geïnspireer/-de
ï (nt @ // geïnteresseerd ï (nt @ // geïnteresseerd
ï (nC 'I // beïndruk/beïnvloed ï (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 ïsol %is%ul // geïsoleer/-d
K) ó (CK '!O // extra stress: óf/kón and similar K) ó (CK '!O // extra stress: óf/kón and similar
óé '!u // extra stress: móét/sóék and similar óé '!u // extra stress: móét/sóék and similar
ûe W:@ // brûe/rû ûe W:@ // brûe/rû
ý '!eI // extra stress: jý/mý/sý and similar ý '!eI // extra stress: jý/mý/sý and similar
ñ _^_ES // words containing ñ are Spanish: senñor/-a/-ita ñ _^_ES // words containing ñ are Spanish: senñor/-a/-ita

// punctuation // punctuation
! _:eItrup_: ! _:eItrup_:
!) ! !) !
$ dOl@r $ dOl@r

__) - (_D minWs __) - (_D minWs
A_) - (_D _ A_) - (_D _
C_) - (_D _ C_) - (_D _




+ 4
- 5
dictsource/ca_list View File

_> ma#Z;'o||_:_:k@ _> ma#Z;'o||_:_:k@
_' a#p'Ost**'Uf _' a#p'Ost**'Uf
_" kUm'Et@s _" kUm'Et@s
_$ dola#r
- m'En^s - m'En^s
__ b'aRR2a#||B'ajS;a# __ b'aRR2a#||B'ajS;a#
_/ ba*Ra _/ ba*Ra
_` a#ks'Ent,UB'E**t _` a#ks'Ent,UB'E**t
_( 'ob**@||pa#**'Ent@zis _( 'ob**@||pa#**'Ent@zis
_) t'anka#||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 _{ 'ob**@||kl'aws
_} t'anka#||kl'aws _} t'anka#||kl'aws
_« 'ob**@||kUm'Et@s _« 'ob**@||kUm'Et@s
@ a*R'oBa @ a*R'oBa
/ ba*Ra / ba*Ra
© kopi*R'aIt © kopi*R'aIt
£ lliur**@s
£ lliu**@s
¶ pa#**'aQ**a#f ¶ pa#**'aQ**a#f
§ a#pa#**t'at // o secció? § a#pa#**t'at // o secció?




b be b be
c se c se
ç se,tr@nkaDa#
ç se,t**@nkaDa#
d de d de
f Efa# f Efa#
g Je g Je

+ 9
- 8
dictsource/ca_rules View File

.L02 h l r s v w y z // continuants, not f .L02 h l r s v w y z // continuants, not f
.L03 f h r s v w y z // continuants, not l .L03 f h r s v w y z // continuants, not l
.L04 i í e é è // front vowels .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 .L09 b d g m v l n d z r q // sonors
.L10 a e o // vocals fortes .L10 a e o // vocals fortes
.L11 i u // vocals febles .L11 i u // vocals febles
m m m m
_) m' (P2 m _) m' (P2 m
mp (K m mp (K m
ment (_ m'Ent
// ment (_ m'En // ??




.group n .group n
e) n (_ n // except after e, i e) n (_ n // except after e, i
i) n (_ n i) n (_ n
nt (K n nt (K n
nt (_ =n
ny n^ ny n^
b) n (@ m b) n (@ m
v) n (@ m v) n (@ m


.group o .group o
o o o o
or (_ 'or
or (_ 'o*
ou Ow ou Ow






.group r .group r
r R r R
_) r RR2
_) r *R
r (_ = // final r is silent, but stress the vowel r (_ = // final r is silent, but stress the vowel
r (t ** r (t **
A) r (A ** A) r (A **
m) r (A R m) r (A R
n) r (A R n) r (A R
s) r (A R s) r (A R
rr RR2
rr *R




.group s .group s


.group x .group x
x ks x ks
_e) x dz
_è) x dz
_A) x gz
_A) x (L05 ks
K) x S; K) x S;
Ai) x S; Ai) x S;
Au) x S; Au) x S;
g) ü w g) ü w
ñ n^ ñ n^


$ dola#r
$ dola#*

+ 1
- 1
dictsource/de_list View File

_18 '_axttse:n _18 '_axttse:n
_19 'nOYntse:n _19 'nOYntse:n
_2X 'tsvantsIC _2X 'tsvantsIC
_3X 'd@-*aItsIC
_3X 'd@-*aIsIC
_4X 'fi:*tsIC _4X 'fi:*tsIC
_5X 'fynftsIC _5X 'fynftsIC
_6X 'zEktsIC _6X 'zEktsIC

+ 17
- 5
dictsource/dict_phonemes View File



* ** : ; b B d D * ** : ; b B d D
dZ; f g j J J^ k l 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 Dictionary cs_dict


* ** : b B d D f * ** : b B d D f
g j J J^ k l m n 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 Dictionary fi_dict
t tS v w x z 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 Dictionary nl_dict


8 @ @- A a: E e: EI 8 @ @- A a: E e: EI

+ 26
- 9
dictsource/en_list View File

_₠ jU@roU _₠ jU@roU


# haS $max3 # haS $max3
@ _at_
& _and
@ _at_ $u+
& _and $u+
\ bakstroUk $max3 \ bakstroUk $max3
/ stroUk $max3 / stroUk $max3
?3 \ bakslaS $max3 ?3 \ bakslaS $max3
_dpt pOInt _dpt pOInt
_roman roUm@n_ _roman roUm@n_


_0st st
_0nd @nd
_0rd d
_0th T
_ord T // default ending _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 _0Co h'Vndr@dT




?5 accursed a2kVRsI2d ?5 accursed a2kVRsI2d
achille a2kIli: achille a2kIli:
aching eIkI2N aching eIkI2N
achy eIkI
adam ad@m adam ad@m
adamant ad@m@nt adamant ad@m@nt
add ad add ad
authoritative O:T'0rI2t@tIv authoritative O:T'0rI2t@tIv
autograph O:t@graf autograph O:t@graf
auto O:toU auto O:toU
autocracy O:t'0kr@sI
automobile O:t@m@bi@l automobile O:t@m@bi@l
autonomous O:t'0n@m@s autonomous O:t'0n@m@s
autopsy O:t0psI autopsy O:t0psI
canoe k@nu: canoe k@nu:
canoes k@nu:z canoes k@nu:z
canton kant0n canton kant0n
canvas kanv@s
capitol kapIt@L capitol kapIt@L
caprice ka2pr'i:s caprice ka2pr'i:s
caramel kar@mEl caramel kar@mEl
charade Sa2rA:d charade Sa2rA:d
charismatic karIsm'atIk charismatic karIsm'atIk
charit tSarIt // charitable charit tSarIt // charitable
chic Si:k
chisel tSIz@L
chocolate tS0kl@t chocolate tS0kl@t
cholera k0l@r@ cholera k0l@r@
cholesterol k@lEst@r0l cholesterol k@lEst@r0l
copier k0pi@3 copier k0pi@3
coral k0r@L coral k0r@L
coronet k0r@nEt coronet k0r@nEt
corollary $2
corporal kO@pr@L corporal kO@pr@L
corporate kO@p@r@t corporate kO@p@r@t
corps kO@ $only corps kO@ $only
hostage h0stI2dZ hostage h0stI2dZ
hostess hoUstEs hostess hoUstEs
hotel hoUt'El hotel hoUt'El
hotkey h0tki:
house haUz $verb house haUz $verb
however $2 however $2
howto haUtu: howto haUtu:
paltry pO:ltrI paltry pO:ltrI
panacea pana2s'i:@ panacea pana2s'i:@
panache $2 panache $2
pancreas pankri@s
parabola p@rab@l@ parabola p@rab@l@
paralysis p@ral@sIs paralysis p@ral@sIs
parameter p@ramI2t3 parameter p@ramI2t3
sibelius sI2beIli@s sibelius sI2beIli@s
sierra sI'e@r@ sierra sI'e@r@
signage saInI2dZ signage saInI2dZ
signal sIgn@l // signaled
signer saIn3 signer saIn3
sikh si:k sikh si:k
silhouette sI2lUw'Et silhouette sI2lUw'Et
vengeance vEndZ@ns vengeance vEndZ@ns
venus vi:n@s venus vi:n@s
versus v3:sI2z versus v3:sI2z
vertices v3:tIsi:z
vestige vEstI2dZ vestige vEstI2dZ
vex vEks // for vexed vex vEks // for vexed
vicar vIk3 vicar vIk3
Oregon 0rI2g@n Oregon 0rI2g@n
Pacific pa2sIfIk Pacific pa2sIfIk
Palestine pal@staIn Palestine pal@staIn
Palestinian pal@st'Ini:@n
Palestinia pal@st'Ini:@
Panama pan@mA: Panama pan@mA:
Paris parIs Paris parIs
Peking pi:k'IN Peking pi:k'IN
Sicily sIsI2lI Sicily sIsI2lI
Slovak sloUvak Slovak sloUvak
Seoul soUl Seoul soUl
(sri lanka) sr,i:||l'anka2
Sri sr,i: // Sri Lanka(n)
Sudan su:d'an Sudan su:d'an
Suez su:I2z Suez su:I2z
Sulawesi su:la2w'eIsI Sulawesi su:la2w'eIsI
Xhosa kO:s@ Xhosa kO:s@
zaire zaI'i@3 zaire zaI'i@3
zimbabwe zI2mbA:bwI zimbabwe zI2mbA:bwI
zimbabwean zI2mbA:bwI@n


Aaron e@r@n Aaron e@r@n
Abe eIb Abe eIb
Geraint gEraInt Geraint gEraInt
Gibbs gIbz Gibbs gIbz
Giles gaIlz Giles gaIlz
Gladys gladIs
Glynn glIn Glynn glIn
Graeme greI@m Graeme greI@m
Graham greI@m Graham greI@m
Muhammad moUh'amI2d Muhammad moUh'amI2d
Moira mOIr@ Moira mOIr@
Natalie nata2li Natalie nata2li
Natasha $2
Nathan neIT@n Nathan neIT@n
Neville nEvIl Neville nEvIl
Nicholas nIk@l@s Nicholas nIk@l@s


I aI $u+ $verbf $only I aI $u+ $verbf $only
(I am) %aIa2m (I am) %aIa2m
(I am) %aIam $atend
he %hi: $verbsf he %hi: $verbsf
she %Si: $only $verbsf she %Si: $only $verbsf
it %It $verbsf it %It $verbsf

+ 9
- 3
dictsource/en_rules View File

conva (l k0nv@ conva (l k0nv@
_) co (nvoy k0 _) co (nvoy k0
_) copy k0pI _) copy k0pI
coro (lla k@r0
coro (ll k0r0
co (rrect k@ co (rrect k@
correspo k,0rIsp'0 correspo k,0rIsp'0
co (rro k@ co (rro k@
@f) ed (_S2vdei t @f) ed (_S2vdei t
@g) ed (_S1vi d @g) ed (_S1vi d
@k) ed (_S2vdei t @k) ed (_S2vdei t
el) ed (_S2dv d
&en) ed (_S2v d &en) ed (_S2v d
cl) ed (_S1v d cl) ed (_S1v d
@p) ed (_S2vdei t @p) ed (_S2vdei t
ie I ie I
ie (_ I ie (_ I
ied (_S2i d // suffix ied (_S2i d // suffix
ieds (_S3i dz
ie (c aI ie (c aI
ie (ce i: ie (ce i:
ie (_ aI ie (_ aI
@) ingment (_S7dve I2Ng-m@nt @) ingment (_S7dve I2Ng-m@nt
logu) ing (_S4v I2N logu) ing (_S4v I2N
x) ing (_+S3v I2N x) ing (_+S3v I2N
el) ing (_+S3dv I2N
@@om) ing (_S3dv I2N @@om) ing (_S3dv I2N
en) ing (_S3v I2N en) ing (_S3v I2N
en) ings (_S4v I2Nz en) ings (_S4v I2Nz
_f) or (@ O@ _f) or (@ O@
_f) ore (A O@ _f) ore (A O@
f) or (k O@ f) or (k O@
_f) or (s@ %O@
ch) or (d O@ ch) or (d O@
l) or (d O@ l) or (d O@
_m) or O@ _m) or O@
c) over Vv3 c) over Vv3
c) ov (et Vv c) ov (et Vv
d) ove Vv d) ove Vv
g) ov (ern Vv
g) overn Vv3n
sh) ov (+ Vv sh) ov (+ Vv
h) ov (el 0v h) ov (el 0v
h) ov (er 0v h) ov (er 0v


.group ow .group ow
ow oU ow oU
ow (itz =oUv
ow (itz_ =oUv
ow (ay_ @w ow (ay_ @w
kn) owle (d 0lI kn) owle (d 0lI
_) ow (l aU _) ow (l aU
ras) p (b ras) p (b
_) pur (su p3 _) pur (su p3
put (_ pUt put (_ pUt
s) put (_ pVt
pyon pj0n pyon pj0n
_) pyro (@@P4 p,aIroU _) pyro (@@P4 p,aIroU
pyrom (e paIr'0m pyrom (e paIr'0m
@) u (late =jU @) u (late =jU
@) u (lar =jU @) u (lar =jU
@) u (lum =jU @) u (lum =jU
@) uli (_ =jUlaI
&) u (lous_ =jU &) u (lous_ =jU
ll) u (l ju: ll) u (l ju:
j) u (li u: j) u (li u:

+ 10
- 0
dictsource/eo_list View File

_0M4 duili'ono _0M4 duili'ono
_dpt _komo_ _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 // accent names
_lig ligat'uRa _lig ligat'uRa
_acu dekst@-*ak'oRna _acu dekst@-*ak'oRna

+ 0
- 4
dictsource/eo_rules View File

a a a a
aj aI aj aI
aŭ aU 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 .group b

+ 1
- 1
dictsource/es_list View File



^ TiRkumfl'exo ^ TiRkumfl'exo
€ eU**o € eU**o
% pOrTj'Ento $max3
% pO**Tj'Ento $max3
& ampERs'ant & ampERs'ant
@ a*R'oBa @ a*R'oBa
/ ba*Ra / ba*Ra

+ 1
- 1
dictsource/es_rules View File

ü u ü u
ñ n^ ñ n^


$ d'Olar
$ d'Ola*


_) - (_D m'EnOs _) - (_D m'EnOs
A_) - (_D _ A_) - (_D _

+ 18
- 50
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 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. // * Numbers, a few abbreviations and exceptions.
// //
_' a2postr'Of _' a2postr'Of
_( 'uvR@-parA~t'Ez _( 'uvR@-parA~t'Ez
_) f'Erm parA~t'Ez _) f'Erm parA~t'Ez
_* asterisk:
_, virgyl _, virgyl
_- tirE _- tirE
_. _|pw%E~ _. _|pw%E~
_§ sEksj'O~ _§ sEksj'O~


// symbols that are normally spoken when reading text // symbols that are normally spoken when reading text
@ arobaz
% pursA~ $max3
* asterisk: $max3
@ _!arobaz
% pursA~ $max3
& e $u $brk & e $u $brk
_& _e_komErsj'al _& _e_komErsj'al
* asterisk: $max3
+ plys $max3 + plys $max3
~ tilde ~ tilde
€ @ro € @ro
_41 karA~te:W~ _41 karA~te:W~
_5X sE~kA~t _5X sE~kA~t
_51 sE~kA~te:W~ _51 sE~kA~te:W~
_6X swAsA~t
_6X swAsA~t:
_61 swAsA~te:W~ _61 swAsA~te:W~
_7X swAsA~t:diz3
_71 swAsA~te:O~z _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 _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~ _0C sA~
_1C0 sA~t2 _1C0 sA~t2
_0M1 mil _0M1 mil
//some numbers have special pronunciation in Belgium and Switzerland //some numbers have special pronunciation in Belgium and Switzerland
?2 _7X sEptA~t ?2 _7X sEptA~t
?2 _71 sEptA~te:W~ ?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 _9X no2nA~t
?2 _91 no2nA~te:W~ ?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 (21 ème) vE~te:yniEm
(31 ème) tRA~te:yniEm (31 ème) tRA~te:yniEm
ibm $abbrev ibm $abbrev
ide $abbrev ide $abbrev
ip $abbrev ip $abbrev
jaws dZ'O2wz
jaws dZ'awz
kde $abbrev kde $abbrev
kg kilogram kg kilogram
khz kiloE2rts khz kiloE2rts
xy $abbrev xy $abbrev




dr dOkt Wr $dot $capital
dr dOktWr $dot $capital
prof $dot prof $dot
pr professeur $text *dot $capital






assez $u+ assez $u+
beaucoup $u+ beaucoup $u+
peu $u+ peu $u+
peu $noun
très $u très $u


// negative // negative
pas $u+ pas $u+
pas $noun pas $noun
plus $u+ plus $u+
plus $noun
guère $u+ guère $u+
jamais $u+ jamais $u+
non nO~ $u+ non nO~ $u+
sont $u+ $verb sont $u+ $verb


fus $u+ $verb fus $u+ $verb
fut $u+ $verb
fut fyt2 $u+ $verb
fût fyt2 $u+ $verb
fûmes $u+ $verb fûmes $u+ $verb
fûtes $u+ $verb fûtes $u+ $verb
furent $u+ furent $u+
eus yz2 $u+ eus yz2 $u+


eut yt2 $u+ $verb eut yt2 $u+ $verb
eût yt2 $u+ $verb
eûmes $u+ $verb eûmes $u+ $verb
eûtes $u+ $verb eûtes $u+ $verb
eurent yrt2 $u+ eurent yrt2 $u+
mapper _^_en mapper _^_en
mars mars mars mars
mieux mj'Y $u+ mieux mj'Y $u+
mrs _^_en
ours urs ours urs
parangon parA~gO~ parangon parA~gO~
phallus falys phallus falys
polder pOldEr polder pOldEr
premier pr@mjer2 premier pr@mjer2
(program files) pr,o2gram||f'ajlz
program _^_en
quit _^_en
scanner skaner2 scanner skaner2
scanner skanWr $noun scanner skanWr $noun
sir _^_EN
souris suri souris suri
sus sys sus sys
sus sy $verb sus sy $verb
get _^_en get _^_en
google gu:gWl google gu:gWl
gnome gnOm gnome gnOm
gnu gnu
gnu $abbrev
hamburger hA~b@rgWr hamburger hA~b@rgWr
help _^_en help _^_en
hot _^_en hot _^_en
futuna futuna futuna futuna
zimbabwe zimbabwe zimbabwe zimbabwe


pest $1



+ 6
- 2
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 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: // Letter classes:
_AC) ind (er_ _^_en // finder, reminder _AC) ind (er_ _^_en // finder, reminder
ize (X _^_en // realize ize (X _^_en // realize
dr) i (ve _^_en dr) i (ve _^_en
ram_f) i (le _^_en




.group î .group î


// group o: English section // group o: English section
oa (X _^_en // approach, load oa (X _^_en // approach, load
oa (CeX _^_en
oa (CerX _^_en
oach _^_en oach _^_en
old (er_ _^_en // folder, older old (er_ _^_en // folder, older
C) oing (_ _^_en // going C) oing (_ _^_en // going
-) t (- t2 -) t (- t2
_) t' (P2v t _) t' (P2v t
Vn) t (_ t2 Vn) t (_ t2
A) t (- t2
t (_ t (_
peti) t (_ t2 peti) t (_ t2
_) th t // thon _) th t // thon


.group x .group x
x ks x ks
_) x (A gz // xylophone
xml (_S3 _!iksEmEl
e) x (A gz // exagérer exemple e) x (A gz // exagérer exemple
L03e) x (A ks // annexe, vexer L03e) x (A ks // annexe, vexer
_ine) x (A gz _ine) x (A gz

+ 1
- 3
dictsource/zhy_rules View File

4 4 4 4
5 5 5 5
6 6 6 6
7 1
8 3
9 6
7 7

+ 14
- 3
phsource/compile_report View File

58 phoneme tables
59 phoneme tables
new total new total
base 103 103 base 103 103
base2 24 122 base2 24 122
no 28 129 no 28 129
is 33 129 is 33 129
vi 41 140 vi 41 140
zhy 40 136
zhy 41 137
zh 66 154 zh 66 154
sw 14 112 sw 14 112
tr 18 127 tr 18 127
ne 18 157 ne 18 157
mr 1 149 mr 1 149
om 25 125 om 25 125
eu 6 124


Data file Used by Data file Used by
b/b [b] base b/b [b] base
envelope/p_512 [6] vi envelope/p_512 [6] vi
envelope/p_fall [2] vi envelope/p_fall [2] vi
[7] vi [7] vi
[1] zhy
[4] zhy [4] zhy
[7] zhy
[21] zh [21] zh
[51] zh [51] zh
[22] zh [22] zh
[+] rw [+] rw
envelope/p_fallrise [4] vi envelope/p_fallrise [4] vi
envelope/p_level [1] vi envelope/p_level [1] vi
[1] zhy
[3] zhy [3] zhy
[6] zhy [6] zhy
[55] zh [55] zh
[s] es [s] es
[s#] pt [s#] pt
[z] sq [z] sq
[s] eu
[z] eu
ufric/s_ [s] base ufric/s_ [s] base
[z] base [z] base
[s2] fi [s2] fi
[s2] is [s2] is
[z] sq [z] sq
[s2] om [s2] om
[s] eu
[z] eu
ufric/s! [s] base ufric/s! [s] base
[s2] fi [s2] fi
[s] fr [s] fr
[dz] sq [dz] sq
[dz] hy [dz] hy
[ts#] hy [ts#] hy
[ts] eu
[tz] eu
ustop/ts_ [ts] base2 ustop/ts_ [ts] base2
[ts] de [ts] de
[ts] eo [ts] eo
[dz] sq [dz] sq
[dz] hy [dz] hy
[ts#] hy [ts#] hy
[ts] eu
[tz] eu
ustop/ts2 [ts] lv ustop/ts2 [ts] lv
[ts] hy [ts] hy
ustop/tsh [tS] base ustop/tsh [tS] base
[8] nl [8] nl
[Y] ro [Y] ro
[oe] zhy [oe] zhy
[Y] eu
vowel/y## [y#] is vowel/y## [y#] is
vowel/y_2 [y] fr vowel/y_2 [y] fr
[y"] fr [y"] fr

+ 7
- 1
phsource/ph_zh_yue View File



phoneme 1 // tone: high level phoneme 1 // tone: high level
stress stress
tone 50 30 envelope/p_fall NULL
tone 50 50 envelope/p_level NULL
endphoneme endphoneme




endphoneme endphoneme




phoneme 7 // tone: high fall
stress
tone 50 30 envelope/p_fall NULL
endphoneme


//==================================================== //====================================================
// Consonants // Consonants
//==================================================== //====================================================

+ 3
- 0
phsource/phonemes View File



phonemetable om base phonemetable om base
include ph_oromo include ph_oromo

phonemetable eu base2
include ph_basque

+ 9
- 4
src/dictionary.cpp View File







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 /* Guess stress pattern of word. This is language specific


'dictionary_flags' has bits 0-3 position of stressed vowel (if > 0) 'dictionary_flags' has bits 0-3 position of stressed vowel (if > 0)


max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1); 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 // heavy or light syllables
ix = 1; ix = 1;
for(p = phonetic; *p != 0; p++) for(p = phonetic; *p != 0; p++)
else else
{ {
stressed_syllable = 1; 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 // only set the stress if it's not already marked explicitly

+ 8
- 3
src/espeak.cpp View File

"\t Use voice file of this name from espeak-data/voices\n" "\t Use voice file of this name from espeak-data/voices\n"
"-w <wave file name>\n" "-w <wave file name>\n"
"\t Write output to this WAV file, rather than speaking it directly\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" "-m\t Interpret SSML markup, and ignore other < > tags\n"
"-q\t Quiet, don't produce any speech (may be useful with -x)\n" "-q\t Quiet, don't produce any speech (may be useful with -x)\n"
"-x\t Write phoneme mnemonics to stdout\n" "-x\t Write phoneme mnemonics to stdout\n"
int option_index = 0; int option_index = 0;
int c; int c;
int ix; int ix;
int value;
int flag_stdin = 0; int flag_stdin = 0;
int flag_compile = 0; int flag_compile = 0;
int filesize = 0; int filesize = 0;


while(true) 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); long_options, &option_index);


/* Detect the end of the options. */ /* Detect the end of the options. */
switch (c) switch (c)
{ {
case 'b': 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; break;


case 'h': case 'h':

+ 12
- 8
src/espeak_command.cpp View File

//> //>
//< create_espeak_key, create_espeak_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"); ENTER("create_espeak_key");
int a_error=1; int a_error=1;


a_command->type = ET_KEY; a_command->type = ET_KEY;
a_command->state = CS_UNDEFINED; 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; a_error=0;


key_error: key_error:
return a_command; 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"); ENTER("create_espeak_char");
int a_error=1; int a_error=1;
a_command->type = ET_CHAR; a_command->type = ET_CHAR;
a_command->state = CS_UNDEFINED; 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; a_error=0;


char_error: char_error:
break; break;


case ET_KEY: 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; break;




case ET_KEY: 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); sync_espeak_Key(data);
} }
break; break;


case ET_CHAR: 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); sync_espeak_Char( data);
} }
break; break;

+ 20
- 4
src/espeak_command.h View File

void* user_data; void* user_data;
} t_espeak_mark; } 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 typedef struct
{ {
unsigned int unique_identifier; unsigned int unique_identifier;
void* user_data; void* user_data;
} t_espeak_terminated_msg; } t_espeak_terminated_msg;



typedef struct typedef struct
{ {
espeak_PARAMETER parameter; espeak_PARAMETER parameter;
{ {
t_espeak_text my_text; t_espeak_text my_text;
t_espeak_mark my_mark; 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; t_espeak_parameter my_param;
const wchar_t* my_punctuation_list; const wchar_t* my_punctuation_list;
const char *my_voice_name; const char *my_voice_name;


t_espeak_command* create_espeak_terminated_msg(unsigned int unique_identifier, void* user_data); 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); t_espeak_command* create_espeak_parameter(espeak_PARAMETER parameter, int value, int relative);



+ 47
- 22
src/numbers.cpp View File







// Numbers

static char ph_ordinal2[12];


int TranslateRoman(Translator *tr, char *word, char *ph_out) int TranslateRoman(Translator *tr, char *word, char *ph_out)
{//===================================================== {//=====================================================
int found_ordinal = 0; int found_ordinal = 0;
int next_phtype; int next_phtype;
char string[12]; // for looking up entries in *_list char string[12]; // for looking up entries in *_list
char ph_ordinal[20];
char ph_tens[50]; char ph_tens[50];
char ph_digits[50]; char ph_digits[50];
char ph_and[12]; char ph_and[12];
char ph_ordinal[12];


// is there a special pronunciation for this 2-digit number // is there a special pronunciation for this 2-digit number
found = 0; found = 0;
ph_ordinal[0] = 0;


if(control & 4) if(control & 4)
{ {
} }
if(control & 2) if(control & 2)
{ {
strcpy(ph_ordinal, ph_ordinal2);

sprintf(string,"_%do",value); sprintf(string,"_%do",value);
if((found = Lookup(tr, string, ph_digits)) != 0) if((found = Lookup(tr, string, ph_digits)) != 0)
{ {
Lookup(tr, string, ph_tens); 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; ph_digits[0] = 0;
if(units > 0) if(units > 0)
{ {
} }
} }


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))) if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10)))
Lookup(tr, "_ord20", ph_ordinal); Lookup(tr, "_ord20", ph_ordinal);
} // end of LookupNum3 } // 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) static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int *flags, int wflags)
{//==================================================================================================== {//====================================================================================================
// Number translation with various options // Number translation with various options


int n_digits; int n_digits;
int value; int value;
int ix;
unsigned int ix;
unsigned char c; unsigned char c;
int suppress_null = 0; int suppress_null = 0;
int decimal_point = 0; int decimal_point = 0;
int decimal_count; int decimal_count;
int max_decimal_count; int max_decimal_count;
int decimal_mode; 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 buf1[100];
char ph_append[50]; char ph_append[50];
char ph_buf[200]; char ph_buf[200];
char ph_buf2[50]; char ph_buf2[50];
char suffix[20];


static const char str_pause[2] = {phonPAUSE_NOLINK,0}; static const char str_pause[2] = {phonPAUSE_NOLINK,0};


*flags = 0;

for(ix=0; isdigit(word[ix]); ix++) ; for(ix=0; isdigit(word[ix]); ix++) ;
n_digits = ix; n_digits = ix;
value = this_value = atoi(word); value = this_value = atoi(word);


ph_ordinal2[0] = 0;
if((tr->langopts.numbers & 0x10000) && (word[ix] == '.')) if((tr->langopts.numbers & 0x10000) && (word[ix] == '.'))
{ {
// ordinal number
// ordinal number is indicated by dot after the number
ordinal = 2; ordinal = 2;
word[ix] = ' '; word[ix] = ' ';
} }
else else
if(tr->langopts.ordinals)
{ {
// ordinal numbers are recognized by letters after the number
// look for an ordinal number suffix after the number
ix++; 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; ordinal = 2;
memset(&word[ix], ' ', len);
break;
flags[0] |= FLAG_SKIPWORDS;
dictionary_skipwords = 1 + hyphen;
} }
} }
} }
strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc.
} }


*flags = FLAG_FOUND;
*flags |= FLAG_FOUND;
prev_value = this_value; prev_value = this_value;
return(1); return(1);
} // end of TranslateNumber_1 } // end of TranslateNumber_1

+ 71
- 40
src/readclause.cpp View File



static FILE *f_input = NULL; static FILE *f_input = NULL;
static int ungot_char2 = 0; static int ungot_char2 = 0;
char *p_textinput;
unsigned char *p_textinput;
wchar_t *p_wchar_input; wchar_t *p_wchar_input;
static int ungot_char; static int ungot_char;
static const char *ungot_word = NULL; static const char *ungot_word = NULL;


static int GetC_get(void) static int GetC_get(void)
{//====================== {//======================
int c;
unsigned int c;
unsigned int c2;


if(f_input != NULL) if(f_input != NULL)
{ {
c = fgetc(f_input); c = fgetc(f_input);
if(feof(f_input)) c = ' '; 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) if(option_multibyte == espeakCHARS_WCHAR)
} }
if(!end_of_input) 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(*p_textinput++ & 0xff);
}
} }
return(0); return(0);
} }
c1 = GetC_get(); c1 = GetC_get();
} }


if(option_multibyte == espeakCHARS_WCHAR)
if((option_multibyte == espeakCHARS_WCHAR) || (option_multibyte == espeakCHARS_16BIT))
{ {
count_characters++; count_characters++;
return(c1); // wchar_t text return(c1); // wchar_t text
{NULL,-1}}; {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. /* Find the end of the current clause.
Write the clause into buf Write the clause into buf


} }
} }
else 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; ssml_ignore_l_angle=0;
if((punct = lookupwchar(punct_chars,c1)) == 0) if((punct = lookupwchar(punct_chars,c1)) == 0)
{ {
charix[ix] = count_characters - clause_start_char; charix[ix] = count_characters - clause_start_char;
*charix_top = ix;
ix += utf8_out(c1,&buf[ix]); ix += utf8_out(c1,&buf[ix]);
terminator = CLAUSE_PERIOD; // line doesn't end in punctuation, assume period terminator = CLAUSE_PERIOD; // line doesn't end in punctuation, assume period
} }
while(j < ix) while(j < ix)
charix[j++] = -1; // subsequent bytes of a multibyte character 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))) if(((ix > (n_buf-20)) && !IsAlpha(c1) && !iswdigit(c1)) || (ix >= (n_buf-2)))
{ {

+ 5
- 2
src/speak.cpp View File

"\t Use voice file of this name from espeak-data/voices\n" "\t Use voice file of this name from espeak-data/voices\n"
"-w <wave file name>\n" "-w <wave file name>\n"
"\t Write output to this WAV file, rather than speaking it directly\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" "-m\t Interpret SSML markup, and ignore other < > tags\n"
"-q\t Quiet, don't produce any speech (may be useful with -x)\n" "-q\t Quiet, don't produce any speech (may be useful with -x)\n"
"-x\t Write phoneme mnemonics to stdout\n" "-x\t Write phoneme mnemonics to stdout\n"
#else #else
while(true) 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); long_options, &option_index);


/* Detect the end of the options. */ /* Detect the end of the options. */
switch (c) switch (c)
{ {
case 'b': case 'b':
// input character encoding, 8bit, 16bit, UTF8
option_multibyte = espeakCHARS_8BIT; option_multibyte = espeakCHARS_8BIT;
if((sscanf(optarg2,"%d",&value) == 1) && (value <= 4))
option_multibyte= value;
break; break;


case 'h': case 'h':

+ 2
- 2
src/speak_lib.cpp View File

} }


#ifdef USE_ASYNC #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); a_error = fifo_add_command(c);
if (a_error != EE_OK) if (a_error != EE_OK)
{ {
return(EE_OK); 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); a_error = fifo_add_command(c);
if (a_error != EE_OK) if (a_error != EE_OK)
{ {

+ 4
- 1
src/speak_lib.h View File



#include <stdio.h> #include <stdio.h>


#define ESPEAK_API_REVISION 3
#define ESPEAK_API_REVISION 5
/* /*
Revision 2 Revision 2
Added parameter "options" to eSpeakInitialize() Added parameter "options" to eSpeakInitialize()
Revision 4 Revision 4
Added flags parameter to espeak_CompileDictionary() Added flags parameter to espeak_CompileDictionary()


Revision 5
Added espeakCHARS_16BIT
*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */
#define espeakCHARS_UTF8 1 #define espeakCHARS_UTF8 1
#define espeakCHARS_8BIT 2 #define espeakCHARS_8BIT 2
#define espeakCHARS_WCHAR 3 #define espeakCHARS_WCHAR 3
#define espeakCHARS_16BIT 4


#define espeakSSML 0x10 #define espeakSSML 0x10
#define espeakPHONEMES 0x100 #define espeakPHONEMES 0x100

+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.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; const int version_phdata = 0x014000;


int option_device_number = -1; int option_device_number = -1;

+ 16
- 6
src/tr_languages.cpp View File

SetLetterVowel(tr,'y'); // add 'y' to vowels SetLetterVowel(tr,'y'); // add 'y' to vowels
tr->langopts.numbers = 0x8d1 + NUM_ROMAN; tr->langopts.numbers = 0x8d1 + NUM_ROMAN;
tr->langopts.ordinals = 2;
tr->langopts.accents = 1; tr->langopts.accents = 1;
} }
break; break;


tr->langopts.stress_rule = 0; tr->langopts.stress_rule = 0;
tr->langopts.numbers = 0x841 + NUM_ROMAN; 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 tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word
} }
break; break;
break; 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 case L('f','i'): // Finnish
{ {
static const unsigned char stress_amps_fi[8] = {18,16, 22,22, 20,22, 22,22 }; static const unsigned char stress_amps_fi[8] = {18,16, 22,22, 20,22, 22,22 };
} }
break; break;



case L('f','r'): // french case L('f','r'): // french
{ {
static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 235, 240}; static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 235, 240};


SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
tr->langopts.stress_rule = 3; // stress on final syllable 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.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'); SetLetterVowel(tr,'y');
} }
break; break;
SetupTranslator(tr,stress_lengths_th,stress_amps_th); SetupTranslator(tr,stress_lengths_th,stress_amps_th);


tr->langopts.stress_rule = 0; // stress on final syllable of a "word" 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.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.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) // tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping)
SetupTranslator(tr,stress_lengths_zh,stress_amps_zh); SetupTranslator(tr,stress_lengths_zh,stress_amps_zh);


tr->langopts.stress_rule = 3; // stress on final syllable of a "word" 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.vowel_pause = 0;
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() 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.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable

+ 28
- 20
src/translate.cpp View File



wchar_t option_punctlist[N_PUNCTLIST]={0}; wchar_t option_punctlist[N_PUNCTLIST]={0};
char ctrl_embedded = '\001'; // to allow an alternative CTRL for embedded commands 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 // these are overridden by defaults set in the "speak" file
int option_linelength = 0; int option_linelength = 0;
int finished; int finished;
int single_quoted; int single_quoted;
int phoneme_mode = 0; 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 word_flags; // set here
int next_word_flags; int next_word_flags;
int embedded_count = 0; int embedded_count = 0;
char *p; char *p;
int j, k; int j, k;
int n_digits; int n_digits;
int charix_top;


short charix[N_TR_SOURCE+1];
short charix[N_TR_SOURCE+4];
WORD_TAB words[N_CLAUSE_WORDS]; WORD_TAB words[N_CLAUSE_WORDS];
int word_count=0; // index into words int word_count=0; // index into words


int tone; int tone;
int tone2; int tone2;


p_textinput = (char *)vp_input;
p_textinput = (unsigned char *)vp_input;
p_wchar_input = (wchar_t *)vp_input; p_wchar_input = (wchar_t *)vp_input;


embedded_ix = 0; embedded_ix = 0;


for(ix=0; ix<N_TR_SOURCE; ix++) for(ix=0; ix<N_TR_SOURCE; ix++)
charix[ix] = 0; 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 clause_pause = (terminator & 0xfff) * 10; // mS
tone = (terminator >> 12) & 0xf; tone = (terminator >> 12) & 0xf;


if(IsSpace(c)) 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' // end of 'word'
all_upper_case = FLAG_ALL_UPPER; all_upper_case = FLAG_ALL_UPPER;
syllable_marked = 0; syllable_marked = 0;
} }

if(space_inserted)
{
source_index = prev_source_index; // rewind to the previous character
char_inserted = 0;
space_inserted = 0;
}
} }
else else
{ {


// include the next few characters, in case there are an ordinal indicator // include the next few characters, in case there are an ordinal indicator
pn[0] = ' '; 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;) 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++ != ' '); while(*pw++ != ' ');
words[ix].pre_pause = 0; words[ix].pre_pause = 0;
words[ix].flags = 0; words[ix].flags = 0;
} }
} }


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)) 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 // probably an abbreviation such as Mr. or B. rather than end of sentence
tone = 4; tone = 4;
} }
} }

if(dict_flags & FLAG_SKIPWORDS)
{
ix += dictionary_skipwords; // dictionary indicates skip next word(s)
}
} }


for(ix=0; ix<2; ix++) for(ix=0; ix<2; ix++)

+ 6
- 5
src/translate.h View File

int vowel_pause; int vowel_pause;
int stress_rule; // 1=first syllable, 2=penultimate, 3=last 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, // bit1=don't set diminished stress,
// bit2=mark unstressed final syllables as diminished // bit2=mark unstressed final syllables as diminished
// bit4=don't allow secondary stress on last syllable // bit4=don't allow secondary stress on last syllable
#define NUM_ROMAN_UC 0x40000 #define NUM_ROMAN_UC 0x40000
#define NUM_NOPAUSE 0x80000 #define NUM_NOPAUSE 0x80000
#define NUM_ROMAN_AFTER 0x200000 #define NUM_ROMAN_AFTER 0x200000
#define NUM_VIGESIMAL 0x400000


// bits0-1=which numbers routine to use. // bits0-1=which numbers routine to use.
// bit2= thousands separator must be space // bit2= thousands separator must be space
// bit19=don't add pause after a number // bit19=don't add pause after a number
// bit20='and' before hundreds // bit20='and' before hundreds
// bit21= say "roman" after the number, not before // bit21= say "roman" after the number, not before
// bit22= vigesimal number, if tens are not found
int numbers; int numbers;


#define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000 #define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000
int max_roman; int max_roman;
int thousands_sep; int thousands_sep;
int decimal_sep; int decimal_sep;
int ordinals;


// bit 0, accent name before the letter name, bit 1 "capital" after letter name // bit 0, accent name before the letter name, bit 1 "capital" after letter name
int accents; int accents;
extern const unsigned short *charsets[N_CHARSETS]; extern const unsigned short *charsets[N_CHARSETS];
extern char dictionary_name[40]; extern char dictionary_name[40];
extern char ctrl_embedded; // to allow an alternative CTRL for embedded commands 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 wchar_t *p_wchar_input;
extern int dictionary_skipwords; extern int dictionary_skipwords;




int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy);
int Unpronouncable(Translator *tr, char *word); 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 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); 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); 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); void SetVoiceStack(espeak_VOICE *v);



Loading…
Cancel
Save