Browse Source

[1.40.07]

*_list files. Ad feature for ordinal numbers (for some languages).
*_list files. Allow hyphenated word groups to start with a number.
*_list files. Allow "words" of symbols to contain brackets (move check for bracket characters to after the *_list lookup).
--punct option. Fix some unnecessary pauses when speaking punctuation names.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@215 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 16 years ago
parent
commit
0d3e23ef39

+ 88
- 9
dictsource/af_list View File

_tld t'Ild@ _tld t'Ild@


// symbols // symbols
_' tik
_" hA:l_|A:n
_- kOp@lte@k@n
__ leIn
_? frA:x2te@k@n
_: dWb@lpWnt
_; kOmapWnt
_, kOma
_| afstre@p
_( lINshaki
_) r&x2shaki
_[ lINs||blOkhaki
_] r&x2s||blOkhaki
_{ lINs||krWlhaki
_} r&x2s||krWlhaki
_< kleIn@r_|as
_> x2ro@t@r_|as

= _x2@l'eIk_ $max3
* st&r $max3
+ pl'Ws $max3
. pWnt $max3
~ tIld@ $max3
% p@rs'Ent $max3
# nOm@r $max3
& _|amp&rsant
£ pO:nt
€ Y@ru
/ stre@p $max3
@ beI_:
\ trystre@p

¥ jEn
§ afde@l@N
¶ parax2rA:f
¶¶ parax2rA:v@
¤ mWnte@k@n
© kup'ir&x2
° x2rA:d@
− minWs
± plWs_OfminWs
µ mikru
× mA:l
÷ x2@de@ldY@r
♯ krYys
♭ mOl
¼ @kwart
½ @halv@
¾ drikwart
⅓ d&:rd@ ⅓ d&:rd@
⅔ tw,e@d'&:rd@s ⅔ tw,e@d'&:rd@s


_dpt 'pWnt _dpt 'pWnt
_roman rum'eIns@ _roman rum'eIns@



// ordinal numbers
_ord d@ // default suffix
_ord20 st@ // for 20,30,etc
_1o _'e@rst@
_2o tw'e@d@
_3o d'&:rd@
_7o s'e@v@nd@
_8o _'ax2st@
_9o ne@x2@nd@
_0Co h'On@rtst@






antwerpen antv&rp@n antwerpen antv&rp@n
babilon babilOn babilon babilOn
bangladesj baNglad'ES bangladesj baNglad'ES
bastille bast'il
bellevue b&lvju: bellevue b&lvju:
bermuda $2 bermuda $2
bethlehem bEt_liEm bethlehem bEt_liEm
boekarest bukarEst boekarest bukarEst
bolivië bul'Ivi:@ bolivië bul'Ivi:@
bonnievale _^_EN bonnievale _^_EN
bordeaux bOrd'@U
brittanje $2 brittanje $2
brooklyn _^_EN brooklyn _^_EN
burundi bur'undi burundi bur'undi
ceres se@r@s ceres se@r@s
cesaréa s@s@ri:ja cesaréa s@s@ri:ja
ceylon s@lOn ceylon s@lOn
chicago _^_EN
china S'ina china S'ina
clanwilliam kl&:nw'ili@m clanwilliam kl&:nw'ili@m
colenso kul'E:ns@U colenso kul'E:ns@U
kwa kwa $u $only // KwaZulu, etc. kwa kwa $u $only // KwaZulu, etc.
lesotho l@sutu lesotho l@sutu
limpopo l@mpo@po@ limpopo l@mpo@po@
(los angeles) lOs_'andZ@li:z
macedonië mas@d'o@ni@ macedonië mas@d'o@ni@
madagaskar madax2'askar madagaskar madax2'askar
majuba maj'uba majuba maj'uba
sahara sah'A:ra sahara sah'A:ra
secunda s@kunda secunda s@kunda
senekal se@n@kal senekal se@n@kal
seychelle seIS'&l@
seychelles seIS'&lz
singapoer siNgapur singapoer siNgapur
soshanguve sOSaNg'u:vE soshanguve sOSaNg'u:vE
soweto suw'E:tu soweto suw'E:tu
annette an'Et annette an'Et
antoinette antun'Et antoinette antun'Et
barbara bA:b@ra barbara bA:b@ra
bea bi:ja
benjamin bEndZ@m@n benjamin bEndZ@m@n
bennett bEn@t bennett bEn@t
bester b'Est@r bester b'Est@r
beyers beI@rs beyers beI@rs
blignault blIx2n@Ut
blomerus blum'e@rWs blomerus blum'e@rWs
botha bo@ta botha bo@ta
bouwer b@U@r bouwer b@U@r
brouwer bruw'&:r brouwer bruw'&:r
caesar siz@r caesar siz@r
carl kA:r@L carl kA:r@L
casanova kasan'o@va
cecil sEs@l cecil sEs@l
cecile s@si:l
cecilia s@si:lia cecilia s@si:lia
charl SA:l charl SA:l
charles _^_EN charles _^_EN
chris krIs chris krIs
christo krIstu christo krIstu
christoffel kr@stOf@l christoffel kr@stOf@l
christiaan krIstiA:n
christian krIstian christian krIstian
christelle kr@st&l christelle kr@st&l
christina kr@stina christina kr@stina
(da vinci) da||v'intSi (da vinci) da||v'intSi
debora d@bo@ra debora d@bo@ra
debussy d@bus'i: debussy d@bus'i:
de d@
de d@ $only
(de la) d@||la $u // de la Rey/de la Bat, etc. (de la) d@||la $u // de la Rey/de la Bat, etc.
der d@r der d@r
derick dErik derick dErik
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@
le l@ $only
leandra li'andra leandra li'andra
leonardo liu:n'ardu leonardo liu:n'ardu
levi le@fi levi le@fi
magdalena $3 magdalena $3
malan mal'an malan mal'an
malherbe mal'&rb@ malherbe mal'&rb@
marelie mar@li
margaret _^_EN margaret _^_EN
margaretha marx2ar'e@ta margaretha marx2ar'e@ta
marguerite mA:g@r'i:t marguerite mA:g@r'i:t
melanie m@lA:ni melanie m@lA:ni
meraai m@rAI meraai m@rAI
messias m@sijas messias m@sijas
metusalem m@t'ysalEm
michael _^_EN michael _^_EN
michelle miS'&l michelle miS'&l
michiel $2 michiel $2
petronella pe@trun'&la petronella pe@trun'&la
petrus pe@trWs petrus pe@trWs
phoebe fi:bi phoebe fi:bi
picasso pik'asu
quixote kix2'OtE quixote kix2'OtE
rachmaninoff rax2m'aninOf rachmaninoff rax2m'aninOf
rademeyer rA:d@meI@r rademeyer rA:d@meI@r
sebastian s@bastian sebastian s@bastian
servaas s@rfA:s servaas s@rfA:s
shakespeare _^_EN shakespeare _^_EN
sigmund sigmunt
sophia suf'i:ja sophia suf'i:ja
sophie _^_EN sophie _^_EN
stephan ste@fan stephan ste@fan
schreiner SraIn@r schreiner SraIn@r
tony t@Uni tony t@Uni
trichardt trix2A:rt trichardt trix2A:rt

vivaldi viv'aldi
viviers v@v@je@
khumalo kum'A:lu khumalo kum'A:lu
zuma zu:ma zuma zu:ma


centaurus $2 centaurus $2
checkers tSEk@rs checkers tSEk@rs
chrysler kraIsl@r chrysler kraIsl@r
citroên s@trun
ferrari f@rA:ri ferrari f@rA:ri
martini mart'i:ni martini mart'i:ni
naspers nasp&rs naspers nasp&rs
toyota $2
venda vEnda venda vEnda
volvo vOlvu
wimpy wImpi wimpy wImpi


// article // article
jou $u $only $verbf jou $u $only $verbf
hom $u $verbf hom $u $verbf
haar $u $only $verbf haar $u $only $verbf
se Es@ $capital
se Es@ $capital $only


dis $u dis $u


camouflage kamufl'A:Z camouflage kamufl'A:Z
capita kapita capita kapita
casino kas'i:n@U casino kas'i:n@U
cedille s@dIl@
charisma kar'Isma charisma kar'Isma
chemikalieë $3
crescendo kr@SEndu crescendo kr@SEndu


dadelik dA:d@lIk dadelik dA:d@lIk
darem dar@m darem dar@m
dekade dEk'A:d@ dekade dEk'A:d@
dekreling dEkre@l@N
deurentyd dy@r@nteIt deurentyd dy@r@nteIt
deurgaans $1 deurgaans $1
deurkruis $2 deurkruis $2
eenkeer $1 eenkeer $1
efesiër if'e@si@r efesiër if'e@si@r
effense Ef@ns@ effense Ef@ns@
eks Eks
ekself %&ks'&lf ekself %&ks'&lf
elders &ld@rs elders &ld@rs
elite il'i:t elite il'i:t
jupiter jupit@r jupiter jupit@r


kafee kaf'e@ kafee kaf'e@
kameraderie kam@rA:d@r'i
katswink katsv@nk katswink katsv@nk
kaviaar kavi'A:r kaviaar kavi'A:r
klaasvakie $2 klaasvakie $2
knapsekêrel knaps@k&:r@l knapsekêrel knaps@k&:r@l
kolossense kOl@s'e~ns@
komaan kOmA:n komaan kOmA:n
konkawe kOnk'A:v@ konkawe kOnk'A:v@
konte $1 konte $1
netjies nE:icis netjies nE:icis
netjiese nEicis@ netjiese nEicis@
netsowel nEtso@v&l netsowel nEtso@v&l
neurone nY@r'o@n@
nikswerd nIksv&:rt nikswerd nIksv&:rt
nimmermeer $1 nimmermeer $1
nirvana n@rvA:na nirvana n@rvA:na
suburbia sWb'Wrbija suburbia sWb'Wrbija


tanga taNga tanga taNga
tango taNx2u
tenminste $2 tenminste $2
terdeë $2 terdeë $2
terug t@-rWx2 terug t@-rWx2
voluit fOl_Yyt voluit fOl_Yyt
voorgee fo@rx2e@ voorgee fo@rx2e@
voorkeer $1 voorkeer $1
voorkom $2
voorkom $2 $only
voormalige fo@rm'A:l@x2@ voormalige fo@rm'A:l@x2@
//voorsien $2 //voorsien $2
voorwaar $2 voorwaar $2

+ 88
- 68
dictsource/af_rules View File

//maintainer: Willem van der Walt
//maintainer: Willem van der Walt
// email: [email protected] // email: [email protected]
// tel: +27 12 8413996 // tel: +27 12 8413996
// Meraka Institute, CSIR // Meraka Institute, CSIR
&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
&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
&dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc. &dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc.
_) a (lA %a //short unstressed a for words starting with Al _) a (lA %a //short unstressed a for words starting with Al
i) a (tieC %a //words containing iatief/w short unstressed a i) a (tieC %a //words containing iatief/w short unstressed a
ara (bi %arA: // fix 1st a sound and stress: Arabië/Arabies/-e ara (bi %arA: // fix 1st a sound and stress: Arabië/Arabies/-e
ara (bier %ar%a // Stress and a sounds: Arabier/-e ara (bier %ar%a // Stress and a sounds: Arabier/-e
C) are (CA A:r@ // e sound: amptenaredom/blaredak/garebiltong/haredos/jarelange C) are (CA A:r@ // e sound: amptenaredom/blaredak/garebiltong/haredos/jarelange
K) ar (puis %ar // fix stress: (h)arpuis and compounds
Cel) ary ar'eI // move default stress: bedelary/bottelary/dobbelary/huigelary/smokkelary... Cel) ary ar'eI // move default stress: bedelary/bottelary/dobbelary/huigelary/smokkelary...
@@@smokkel) ary %ar%eI // default stress: diamant-/drank-/dwelm-/goud-/kokaïensmokkelary, etc. @@@smokkel) ary %ar%eI // default stress: diamant-/drank-/dwelm-/goud-/kokaïensmokkelary, etc.
amarula %am%arul%a // fix stress and a sounds: amarula and compounds amarula %am%arul%a // fix stress and a sounds: amarula and compounds
arm (last %ar@-m // move default stress: armlastig/-e arm (last %ar@-m // move default stress: armlastig/-e
C) asie 'A:si C) asie 'A:si
@@@@) asie A:s%i @@@@) asie A:s%i
C%C) asie A:si // restore default stress: bok-/dikmelkkasie and similar
oub) asie A:si // restore default stress: oubasie/-s oub) asie A:si // restore default stress: oubasie/-s
@form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc. @form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc.
pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar
a (Cie A: // apies/middagslapie a (Cie A: // apies/middagslapie
a (Cy %a a (Cy %a
a (CA A: a (CA A:
_) aka %ak@ //akademie etc.
aka (de@ %ak@ // (sport-/leierskaps)akademie/akademies/akadeem/akademe
akkedi %ak@dI //akkedis and compounds akkedi %ak@dI //akkedis and compounds
akkommo (d %ak%Om@ // fix stress and vowel sounds: akkommodasie/akkommodeer/-derend akkommo (d %ak%Om@ // fix stress and vowel sounds: akkommodasie/akkommodeer/-derend
a (kkoord %a // move default stress: akkoord/-e and compounds a (kkoord %a // move default stress: akkoord/-e and compounds
angleer aNle@r // hangleer/slangleer and compounds angleer aNle@r // hangleer/slangleer and compounds
angola A~Nx2'o@la //Angola, Angolabos etc. angola A~Nx2'o@la //Angola, Angolabos etc.
angol (e %A~Nx2%ul //Angolese etc. angol (e %A~Nx2%ul //Angolese etc.
angora %aNgO:r%a // angora(trui-/wol, etc.)
_) 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
@) ba (ren b'A: // onrusbarend/opsienbarend and derivatives @) ba (ren b'A: // onrusbarend/opsienbarend and derivatives
ba (retK b%a // move default stress and shorten a sound: baret/-te ba (retK b%a // move default stress and shorten a sound: baret/-te
ba (riton ba // shorten a sound: bariton and compounds ba (riton ba // shorten a sound: bariton and compounds
ba (rok b%a // fix stress and a sound: barok and compounds
barok bar''Ok_ // fix stress and a sound: barok/-instrumente/-agtig
baro (meter bar%u // fix a and o sounds: barometer and compounds baro (meter bar%u // fix a and o sounds: barometer and compounds
ba (ron b%a // fix stress and a sound: baron/-ne and compounds ba (ron b%a // fix stress and a sound: baron/-ne and compounds
_) ba (sa b%a fix stress and 1st a sound: basalt and compounds _) ba (sa b%a fix stress and 1st a sound: basalt and compounds
ba (sili b%a // fix stress and 1st a sound: basilie/-kruit, etc.
ba (sieli b%a // fix stress and 1st a sound: basielie/-kruit, etc.
basotho b%asut%u // fix stress and vowel sounds: Basotho/-0ponie and similar basotho b%asut%u // fix stress and vowel sounds: Basotho/-0ponie and similar
basi (s bA:s@ // basis and compounds basi (s bA:s@ // basis and compounds
bastille b%asti:l // Bastille and compounds like Bastilledag
batal (jon b%at%al // shorten 1st a sound, moved stress: bataljon and compounds batal (jon b%at%al // shorten 1st a sound, moved stress: bataljon and compounds
ba (tik b%a // fix stress and a sound: batik/-doek/-kuns/-werk ba (tik b%a // fix stress and a sound: batik/-doek/-kuns/-werk
bbe (rr b@ // fix e sound: rubberrand/-ranke/-ring/-roller, etc. bbe (rr b@ // fix e sound: rubberrand/-ranke/-ring/-roller, etc.


baba bA:ba baba bA:ba
baba (tjie bA:baI // fix 2nd a sound: babatjie/-s baba (tjie bA:baI // fix 2nd a sound: babatjie/-s
_) bad (A bat_ // shorten a sound, pause: bad-/afloop/artikel/olie/oord/uitloop
baklei b@kl'eI // baklei/er baklei b@kl'eI // baklei/er
_) bak (o bak_ // fix a sound and stress: bakoor/bakore _) bak (o bak_ // fix a sound and stress: bakoor/bakore
balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds
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
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
batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur... batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur...


bibli (oC b@bl%i:% // biblioteek and compounds/biblioteke/bibliofiel/bibliografie... bibli (oC b@bl%i:% // biblioteek and compounds/biblioteke/bibliofiel/bibliografie...
bul (ga b%ul // fix stress and u sound: Bulgaarse/Bulgare bul (ga b%ul // fix stress and u sound: Bulgaarse/Bulgare
bulle (tin b%ul@ // fix stress and u sound: bulletin and compounds bulle (tin b%ul@ // fix stress and u sound: bulletin and compounds
bur (lesk b%Wr // move default stress: burlesk/-e bur (lesk b%Wr // move default stress: burlesk/-e
buro b%yro@ // fix stress and o sound: burohoof and similar
bur (okra b%yr // fix stress for burokraat/-krate/-krasie/-kraties
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.
bed (k bEt // bedkassie/bedkaartjie/bedkatel/bedkussing bed (k bEt // bedkassie/bedkaartjie/bedkatel/bedkussing
bed (l bEt // bedlamp/bedliggie/dubbelbedlaken bed (l bEt // bedlamp/bedliggie/dubbelbedlaken
bed (m bEt // bedmaats/bedmatjie, etc. 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 bed (s bEt // bedsitkamer/bedsprei/gebedsdag
bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd
bering b'e@r@N // ontbering/inhibering/inkubering bering b'e@r@N // ontbering/inhibering/inkubering
o) bering b@r@N // versobering o) bering b@r@N // versobering
C) bering b@r@N // verorbering/versombering C) bering b@r@N // verorbering/versombering
ont) bering be@r@N // fix e sound in compounds like slaapontbering
skrob) bering b'e@r@N // skrobbering skrob) bering b'e@r@N // skrobbering


beu (C bY@ // beur/beuke/beul beu (C bY@ // beur/beuke/beul
besem be@s@m besem be@s@m
besering =b@se@r@N // besering/s/kniebesering... besering =b@se@r@N // besering/s/kniebesering...
bete (_ be@t@ // fix stress and e sound: (af)gebete/diabete bete (_ be@t@ // fix stress and e sound: (af)gebete/diabete
dia) betes (@ be@t@s // fix stress and e sound: diabetisleier/-middel, etc.
beter b'e@t@r beter b'e@t@r
beties be@tis // fix e sounds: diabeties/-e beties be@tis // fix e sounds: diabeties/-e
betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer
cha (risma k%a // fix stress and ch and 1st a sounds: charismaties/-e cha (risma k%a // fix stress and ch and 1st a sounds: charismaties/-e
chau (C S%@U // chauffeer/chauffeur/-s/chauvinis/-me/-ties chau (C S%@U // chauffeer/chauffeur/-s/chauvinis/-me/-ties
cheddar tSEd@r // fix ch and a sounds: cheddar(kaas) cheddar tSEd@r // fix ch and a sounds: cheddar(kaas)
chemika (li x2%e@m%ikA: // for compounds of chemikalieë
cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds
cholesterol k%OlEst@-r%Ol // cholesterol and many compounds cholesterol k%OlEst@-r%Ol // cholesterol and many compounds
ch (l k // chloor and compounds ch (l k // chloor and compounds
daaren (te d%A:r@n // fix stress and e sound: daarenteen/daarenteë daaren (te d%A:r@n // fix stress and e sound: daarenteen/daarenteë
daarop (v d%A:r%Op // move default stress: daaropvolgend/-e daarop (v d%A:r%Op // move default stress: daaropvolgend/-e
aan) dag (tig d'ax2 // accent on dag aan) dag (tig d'ax2 // accent on dag
A) d (agtig t_ // fix d sound in words like oerwoudagtig and similar
daniël dA:ni@l // fix stress: Daniël(skuil) daniël dA:ni@l // fix stress: Daniël(skuil)
dani (gh d'A:n@ // -hoedanigheid/hoedanighede/onderdanigheid dani (gh d'A:n@ // -hoedanigheid/hoedanighede/onderdanigheid
@) dant d'ant // dant takes stress: kommandant/pruimedant @) dant d'ant // dant takes stress: kommandant/pruimedant
_) de (klass de@ // deklassifikasie/gedeklassifiseer _) de (klass de@ // deklassifikasie/gedeklassifiseer
de (klinA d%E // fix 1st e sound: deklinasie/deklineer/-nering and compounds de (klinA d%E // fix 1st e sound: deklinasie/deklineer/-nering and compounds
de (krimina d%e@ // fix e sound: (ge)dekriminaliseer/dekriminalisering, etc. de (krimina d%e@ // fix e sound: (ge)dekriminaliseer/dekriminalisering, etc.
kun) dele (K d@lE // fix e sounds: Aardryks-/wiskundeles/-se, etc.
onder) dele (@ de@l@_ // fix e sound: onderdelebedryf/-pakhuis, etc.
voor) dele (@ de@l@_ // fix e sound: voordelefonds and similar
_) dele (gA d@l@ // fix stress and e sounds: delegeer/delegasie _) dele (gA d@l@ // fix stress and e sounds: delegeer/delegasie
@) de (ment d@ // fix e sound: amendement/bombardement/rendement @) de (ment d@ // fix e sound: amendement/bombardement/rendement
de (moCr d%E // demokraat/demokrasie/-ë/demokraties/demografie de (moCr d%E // demokraat/demokrasie/-ë/demokraties/demografie
@) d (t // drop d: breedte/handtekening/rondte/rondtrek... @) d (t // drop d: breedte/handtekening/rondte/rondtrek...
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
@) 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
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
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
@C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid @C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid
C) e (marie @ //anemarie, lisemarie etc. C) e (marie @ //anemarie, lisemarie etc.
n) eke (_ @k@ //anneke Heineke etc. n) eke (_ @k@ //anneke Heineke etc.
Cien) e (rC@ @ // fix e sound: opsienersamp/tienerstatus and many similar compounds Cien) e (rC@ @ // fix e sound: opsienersamp/tienerstatus and many similar compounds
@) erts (_ _&rts // fix e sound of many compounds ending in erts @) erts (_ _&rts // fix e sound of many compounds ending in erts
@p) e (rtjie @ // fix e sound: helpertjies/wegkruipertjie @p) e (rtjie @ // fix e sound: helpertjies/wegkruipertjie
C) e (maat @ // fix e sound: onderdele-/platemaatskappy and similar
@C) e (male_ @ // fix e sound: enemale/telkemale @C) e (male_ @ // fix e sound: enemale/telkemale
C) e (man @ // e sound: briewemandjie/derdemannetjie/dowemansdeur/semantiek/semanties/Weideman C) e (man @ // e sound: briewemandjie/derdemannetjie/dowemansdeur/semantiek/semanties/Weideman
C) e (mm++ E // geelkoperemmer/wateremmer C) e (mm++ E // geelkoperemmer/wateremmer
@C) eps (+ Eps // fix e sound: biseps/triseps and similar @C) eps (+ Eps // fix e sound: biseps/triseps and similar
Celm) e (tK @ // fix e sound: helmet/pelmet and compounds Celm) e (tK @ // fix e sound: helmet/pelmet and compounds
@C) e (taal @ // fix e sound: ape-/burokrate-/diewe-/engele-/gode-/leke-/siele-/skoliere-/tweetaal... @C) e (taal @ // fix e sound: ape-/burokrate-/diewe-/engele-/gode-/leke-/siele-/skoliere-/tweetaal...
Cd) e (tr @ // fix e sound: teveldetrekking/vreugdetraan/voogdetrust/waardetrust
@k) e (tt@+ E // menseketting/etikette @k) e (tt@+ E // menseketting/etikette
sp) e (lonk @ // spelonk/rowerspelonk/spelonkagtig etc. sp) e (lonk @ // spelonk/rowerspelonk/spelonkagtig etc.
_k) e (ndh =E // but bekendheid/onbekendheid _k) e (ndh =E // but bekendheid/onbekendheid
e (klipK %e@ // fix stress and e sound: eklips/eklipties e (klipK %e@ // fix stress and e sound: eklips/eklipties
e (kono@ %E // 1st e: ekonome/ekonomie/ekonomies/ekonoom e (kono@ %E // 1st e: ekonome/ekonomie/ekonomies/ekonoom
&) ekon (o@ _%Ek%un // fix stress and vowel sounds in compounds like: groepekonoom/handelsekonome &) ekon (o@ _%Ek%un // fix stress and vowel sounds in compounds like: groepekonoom/handelsekonome
eksamin (A %Eks%am%in // fix stress and vowel sounds: eksaminator/eksaminering(sproses)
eksege (CA %Eks@x2e@ // fix stress and e sounds: eksegese/eksegeties/-e eksege (CA %Eks@x2e@ // fix stress and e sounds: eksegese/eksegeties/-e
ekse (llenC %Eks@ // fix 2nd e sound: eksellensie/-s/eksellent/-e ekse (llenC %Eks@ // fix 2nd e sound: eksellensie/-s/eksellent/-e
ekspli (siet %Ekspl@ // fix stress and i sound: eksplisiet/-e ekspli (siet %Ekspl@ // fix stress and i sound: eksplisiet/-e
werp) e (rsA @ // fix e sound: ontwerpersolie/-sonbril/-uitrusting werp) e (rsA @ // fix e sound: ontwerpersolie/-sonbril/-uitrusting
lew) e (ns @ lew) e (ns @
&d) e (r@+ @ // not initial or final syllable &d) e (r@+ @ // not initial or final syllable
skuld) erke _&rkE // fix e sound: skulderkentennis/-erkenning
@C) e (reë @ // fix e sound: geelperskereën/tropereën, etc. @C) e (reë @ // fix e sound: geelperskereën/tropereën, etc.
@d) e (rnst+ & // but fix e sound in doodernstig/-e @d) e (rnst+ & // but fix e sound in doodernstig/-e
&t) e (r@ @ &t) e (r@ @
fakul (teit f%ak%Wl // fix stress and a sound: fakulteit/-e and many compounds fakul (teit f%ak%Wl // fix stress and a sound: fakulteit/-e and many compounds
fa (lanks fa // shorten 1st a: falanks/-e fa (lanks fa // shorten 1st a: falanks/-e
fami (liA f%ami // fix stress and a sound: familie and compounds/familiêr/-e fami (liA f%ami // fix stress and a sound: familie and compounds/familiêr/-e
fa (nati f%a // fix stress and a sound: fanaties/-e
fan (fare f%an // move default stress: fanfare/-s fan (fare f%an // move default stress: fanfare/-s
fanta (sA f%ant%a // fantaseer/fantasie fanta (sA f%ant%a // fantaseer/fantasie
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
fos (fa f%Os // move default stress: fosfaat/fosfate fos (fa f%Os // move default stress: fosfaat/fosfate
fo (ssiel f%O // move default stress: fossiel/-e and compounds fo (ssiel f%O // move default stress: fossiel/-e and compounds
foto fo@tu foto fo@tu
fotoge (nie f%o@t%ux2e@ // fix stress and e sound: fotogenies/-e
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
_) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca _) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca
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
ge (kk x2& ge (kk x2&
ge (kh x2& ge (kh x2&
ge (kt x2& // fix e sound: gektalery ge (kt x2& // fix e sound: gektalery
gekw (ord x2&kv // fix stress, e and w sounds: gekwordens/gekwording
genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc. genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc.
genad (etjie x2@nA:d // correct 2nd e in genadetjie genad (etjie x2@nA:d // correct 2nd e in genadetjie
_) ge (rC x2& // gerf/gerwe/gert/gerber _) ge (rC x2& // gerf/gerwe/gert/gerber
@C) hal (sA h'al // reikhalsend/waaghalsig @C) hal (sA h'al // reikhalsend/waaghalsig
hal (sstar h%al // move default stress: hal (sstar h%al // move default stress:
hal (ve@ h%al // move default stress: halveer/halvering/gehalveerde, etc. hal (ve@ h%al // move default stress: halveer/halvering/gehalveerde, etc.
hamer hA:m@r // fix e sound: hameragtig/hamerend/-e
hand (o hant? // fix d sound: handopsteek/handoplegging hand (o hant? // fix d sound: handopsteek/handoplegging
_) hane (C hA:n@ // hanekam/hanekraai/hanepoot/hanetree _) hane (C hA:n@ // hanekam/hanekraai/hanepoot/hanetree
haper hA:p@r // fix e sound: haperend/hapering/-e haper hA:p@r // fix e sound: haperend/hapering/-e
he (g h& he (g h&
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.
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@
indwing Indw@N // fix d sound: indwing/-ing indwing Indw@N // fix d sound: indwing/-ing
in (een @n // ineengedoke/ineengekrimp/ineenstorting and many similar in (een @n // ineengedoke/ineengekrimp/ineenstorting and many similar
_) in (ent ''In_ // fix stress, i sound, pause: inent/-ing _) in (ent ''In_ // fix stress, i sound, pause: inent/-ing
infan (ti @nf%an // fix stress: infantiel/-e
in (fek @n // move default stress: infeksie/-s and compounds in (fek @n // move default stress: infeksie/-s and compounds
infor (ma @nf%Or // move default stress: informant/-e/informasie infor (ma @nf%Or // move default stress: informant/-e/informasie
in (formeP2 'In // fix e sound: informele in (formeP2 'In // fix e sound: informele
kieser (@ kis@r // fix e sound: kiesertal/-weerstand/kieserskorps/-lys/-opkoms... kieser (@ kis@r // fix e sound: kiesertal/-weerstand/kieserskorps/-lys/-opkoms...
kikoe (joe k%iku: // fix stress, lengthen oe: kikoejoe and compounds kikoe (joe k%iku: // fix stress, lengthen oe: kikoejoe and compounds
kilimandjaro k%il@m%andZA:ru // fix stress and vowel and "dj" sounds: kilimandjaro and compounds kilimandjaro k%il@m%andZA:ru // fix stress and vowel and "dj" sounds: kilimandjaro and compounds
_) 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
klande (sti kl%and@ // move default stress: klandestien/-e klande (sti kl%and@ // move default stress: klandestien/-e
kre (diet kr@ // move default stress: krediet/-kaart/-balans, etc. kre (diet kr@ // move default stress: krediet/-kaart/-balans, etc.
kre (dit kr%E // fix e sound: krediteer/akkreditasie kre (dit kr%E // fix e sound: krediteer/akkreditasie
kreme (tart kr@m@ // fix stress and e sounds: kremetart and compounds kreme (tart kr@m@ // fix stress and e sounds: kremetart and compounds
_) kre (o kr%i // fix stress and e sound: Kreool/Kreole/Kreoolse
_) kre (pe@ kr@ // fix stress and 1ste sound: krepeer/-krepering _) kre (pe@ kr@ // fix stress and 1ste sound: krepeer/-krepering
krimi (nA kr@m@' // krimineel/kriminele/diskrimineer krimi (nA kr@m@' // krimineel/kriminele/diskrimineer
kri (oel kr%i // move default stress: krioel and derivatives kri (oel kr%i // move default stress: krioel and derivatives
_) kwar (tA kw%ar // move default stress: kwartaal/kwartier _) kwar (tA kw%ar // move default stress: kwartaal/kwartier
kwart (eeu kwart_ // stress and short break: kwarteeu(-fees/-viering...) kwart (eeu kwart_ // stress and short break: kwarteeu(-fees/-viering...)
kwartel kwart@l_ // restore default stress: kwartel/-eier/-s and similar kwartel kwart@l_ // restore default stress: kwartel/-eier/-s and similar
kwarte (t kw%artE // fix stress and e sound: (stryk)kwartet/-te
kwa (tryn kw%a // move default stress: kwatryn/-e/kwatrynvorm kwa (tryn kw%a // move default stress: kwatryn/-e/kwatrynvorm
kwela kwE:la // fix vowel sounds: kwela/-dans, etc. kwela kwE:la // fix vowel sounds: kwela/-dans, etc.
_) kwik (A kwIk_ // fix i sound: kwikinhoud/-oksied _) kwik (A kwIk_ // fix i sound: kwikinhoud/-oksied
kwinte (t kw@ntE // fix stress and e sound: (stryk)kwintet/-te
kwi (tans kw@ // move default stress: kwitansie and compounds kwi (tans kw@ // move default stress: kwitansie and compounds




kabel kA:b@l //stress and e sound kabel kA:b@l //stress and e sound
kabeljou kab@lj'@U //kabeljou and compounds kabeljou kab@lj'@U //kabeljou and compounds


kabinet k%ab%inEt // kabinet/drankkabinet/kabinetsvergadering
kabine (t k%ab%inE // kabinet/drankkabinet/-te/kabinetsvergadering
_) ka (d@ k%a // stress and 1st a: kadawer-/kadet-/kado/kadot(jie)/kadriel,etc. _) ka (d@ k%a // stress and 1st a: kadawer-/kadet-/kado/kadot(jie)/kadriel,etc.
ka (der kA: // restore stress on long a: kader/-s and compounds ka (der kA: // restore stress on long a: kader/-s and compounds
kad (mium kad // fix stress and d sound: kadmium and compounds kad (mium kad // fix stress and d sound: kadmium and compounds
kafe (te k%af@ // fix stress and vowel sounds: kafeteria and compounds kafe (te k%af@ // fix stress and vowel sounds: kafeteria and compounds
kafe (ï k%af%i // fix stress and vowel sounds: kafeïene and compounds
ka (jak k%a // fix stress and 1st a sound: kajak/-ke/-vaarder ka (jak k%a // fix stress and 1st a sound: kajak/-ke/-vaarder
kake (C kA:k@ // kakebeen/skakelaar/skakelbord/skakelfunksie kake (C kA:k@ // kakebeen/skakelaar/skakelbord/skakelfunksie
kalahari kalah'A:ri // stress: Kalahari/-sand/-woestyn kalahari kalah'A:ri // stress: Kalahari/-sand/-woestyn
ka (mas k%a // fix stress and 1st a sound: kamas/-te and compounds ka (mas k%a // fix stress and 1st a sound: kamas/-te and compounds
kamer kA:m@r // compounds: kamerindeling/kamerorkes, etc. kamer kA:m@r // compounds: kamerindeling/kamerorkes, etc.
kamera kam@ra kamera kam@ra
kamer (atjie kam@r // fix a sound: kameratjie and compounds
kamerade k%am@rA:d@ // stress: kamerade/skeepskamerade kamerade k%am@rA:d@ // stress: kamerade/skeepskamerade
kameraa kam@r'A: kameraa kam@r'A:
kamer (C kA:m@r // kamerdeur/eetkamermat/sitkamervenster kamer (C kA:m@r // kamerdeur/eetkamermat/sitkamervenster
kape (la@ k%ap@ // fix e sound: kapelaan/kapelane and compounds kape (la@ k%ap@ // fix e sound: kapelaan/kapelane and compounds
kaper (jol k%ap@r // fix stress and a sound: kaperjolle and compounds kaper (jol k%ap@r // fix stress and a sound: kaperjolle and compounds
kapi (ta k%ap%i // fix stress and 1st a sound: kapitaal and compounds/kapitalis/-me/-ties kapi (ta k%ap%i // fix stress and 1st a sound: kapitaal and compounds/kapitalis/-me/-ties
_) ka (poC k%a // move default stress and shorten a: kapok and compounds/kapot
_) kapo (C k%apO // move default stress and shorten a: kapok and compounds/kapot
kap (tein k%ap // kaptein/kapteinskap/skeepskaptein kap (tein k%ap // kaptein/kapteinskap/skeepskaptein
kapsule k%apsyl@ // stress and e sound: kapsule/-fabriek/-vorm, etc. kapsule k%apsyl@ // stress and e sound: kapsule/-fabriek/-vorm, etc.
kara (byn k%ar%a // fix stress and a sounds: karabyn/-e and compounds kara (byn k%ar%a // fix stress and a sounds: karabyn/-e and compounds
kar (does k%ar // move default stress: kardoes and compounds kar (does k%ar // move default stress: kardoes and compounds
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
kar (nuffel k%ar // move default stress: (ge)karnuffel/-de kar (nuffel k%ar // move default stress: (ge)karnuffel/-de
kara (koel k%ar%a // fix stress and a sounds: karakoel and compounds kara (koel k%ar%a // fix stress and a sounds: karakoel and compounds
kara (va k%ar@ // move default stress: karavaan/karavane kara (va k%ar@ // move default stress: karavaan/karavane
konnek k%unEk // fix stress and vowel sounds: konneksie/-s and compounds konnek k%unEk // fix stress and vowel sounds: konneksie/-s 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%OnsEn // fix stress and e sound: konsentries/-e
konsen (trie k%Ons''En // fix stress and e sound: konsentries/-e
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
kosme (tiek k%Osm@ // move default stress: kosmetiek and compounds kosme (tiek k%Osm@ // move default stress: kosmetiek and compounds
kos (met k%Os // move default stress: kosmeties/-e kos (met k%Os // move default stress: kosmeties/-e
koste kOst@ // fix e sound in compounds: kostemodel/-ontleding/laekostelugdiens koste kOst@ // fix e sound in compounds: kostemodel/-ontleding/laekostelugdiens
kos (term kOs // fix e sound: kosterm/-e
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
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%o@O // koördinasie/koöpsie, etc.


m m m m
m (m m (m
@) marie (_ m%ar'i //names ending in marie fix a and stress. @) marie (_ m%ar'i //names ending in marie fix a and stress.
mari (tiem m%ar@ // fix stress and vowel sounds: maritiem/-e
macedo (nA m%as@do@ // fix stress and vowel sounds: Macedonië/Macedóniër/-s macedo (nA m%as@do@ // fix stress and vowel sounds: Macedonië/Macedóniër/-s
machiave m%ak%i%avE // fix stress, vowel and v sounds: Machiavelliaans/-e machiave m%ak%i%avE // fix stress, vowel and v sounds: Machiavelliaans/-e
made (lie m%A:d@ // fix stress and e sound: madeliefie/-s/watermadeliefies made (lie m%A:d@ // fix stress and e sound: madeliefie/-s/watermadeliefies
ma (griet m%a // move default stress: Magriet/-e/-jie ma (griet m%a // move default stress: Magriet/-e/-jie
ma (hA m%a // mahoniehout/-lessenaar and similar/mahala ma (hA m%a // mahoniehout/-lessenaar and similar/mahala
majesteitli m%A:j@steItl@ // move default stress: majesteitlik/-e/-heid majesteitli m%A:j@steItl@ // move default stress: majesteitlik/-e/-heid
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
@) 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
manu (sk ,many manu (sk ,many
_) ma (rA m%a // short, unstressed a: Marietjie/Marina/Marinda/Marita/Maree/marog _) ma (rA m%a // short, unstressed a: Marietjie/Marina/Marinda/Marita/Maree/marog
marat (on mar%at // fix stress and a sounds: maraton and compounds marat (on mar%at // fix stress and a sounds: maraton and compounds
marath (on mar%at // fix stress, a sound, drop h: marathon and compounds
marathon mar%at%On_ // fix stress, a sound, drop h: marathon and compounds: marathonatleet, etc.
marga (ri m%arx2%a // fix stress and a sound: margarien and compounds marga (ri m%arx2%a // fix stress and a sound: margarien and compounds
marine m%arin@ // marine and compounds
marine (K m%arin@ // marine and compounds
mario (net m%ar%i%u // fix stress and vowel sounds: marionet/-te and compounds mario (net m%ar%i%u // fix stress and vowel sounds: marionet/-te and compounds
ma (ritz m%a' // fix stress: Maritz/Pietermaritsburg ma (ritz m%a' // fix stress: Maritz/Pietermaritsburg
marmelade m%arm@lA:d@ // fix stress and e sounds: marmelade and compounds marmelade m%arm@lA:d@ // fix stress and e sounds: marmelade and compounds
mede (plig m%e@d@ // move stress: medepligtige mede (plig m%e@d@ // move stress: medepligtige
media mi:dia // compounds of media media mi:dia // 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
medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e
me (dium mi: // fix e sound me (dium mi: // fix e sound
_) me (duC m@ // fix stress and e sound: medulla/medusa _) me (duC m@ // fix stress and e sound: medulla/medusa
_) melodi (eu m%El%ud%i //melodieus _) melodi (eu m%El%ud%i //melodieus
_) melodie mElud'i _) melodie mElud'i
_) melo (dr m'Elu //melodrama etc. _) melo (dr m'Elu //melodrama etc.
memora (bili m%Em%Or%a // fix vowel sounds and stress: (sport)memorabilia and similar
_) metel me@t@l // vermetel/-e/-es/-heid... _) metel me@t@l // vermetel/-e/-es/-heid...
ment m'Ent ment m'Ent
mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds
me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds
AAs) mes (_ mEs // fix last e sound in compounds like kombuismes AAs) mes (_ mEs // fix last e sound in compounds like kombuismes
Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes
tafel) mes (_ mEs // fix final e sound: tafelmes
_) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler _) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler
metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds
metale m@t'A:l@ metale m@t'A:l@
@) nges (_ N@s // banges/langes/dinges @) nges (_ N@s // banges/langes/dinges
@) ng (itis_ Nx2 // brongitis/faringitis/laringitis @) ng (itis_ Nx2 // brongitis/faringitis/laringitis
_) 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 (burig n%A: // move default stress: naburig/-e/-heid na (burig n%A: // move default stress: naburig/-e/-heid
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
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
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
_) netto nEt%u // fix o sound: nettobalans/-skuldboek and many such compounds _) netto nEt%u // fix o sound: nettobalans/-skuldboek and many such compounds
net (werk nEt // fix e sound in compounds: kern-/rugsteun-/selfoon-/teen-/telefoon-/vastelynnetwerk net (werk nEt // fix e sound in compounds: kern-/rugsteun-/selfoon-/teen-/telefoon-/vastelynnetwerk
neuro (CA n%Y@ro@ // move default stress: neurone/neurose/-s
neute nY@t@ // fix connecting e sound: neutedop/neutekraker neute nY@t@ // fix connecting e sound: neutedop/neutekraker
neu (tr n%Y@ // move default stress: neutraal/neutrale neu (tr n%Y@ // move default stress: neutraal/neutrale
_) nguni Ngu:ni // Nguni/-beeste/-tale _) nguni Ngu:ni // Nguni/-beeste/-tale
@) oties 'o@tis // antibioties/eksoties/eroties/neuroties @) oties 'o@tis // antibioties/eksoties/eroties/neuroties
@) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc. @) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc.
@) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc. @) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc.
_) outo (@P4 @Utu // fix stress and o sound: outomaat/-mate/-maties/outomobiel, etc.
out (okra %@Ut // to handle outokraat and derivatives
oux 'u //in surnames like tredoux, leroux etc. oux 'u //in surnames like tredoux, leroux etc.
_) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig _) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig
ovari (otomi %o@v%A:r%i // fix stress, v and vowel sounds: ovariotomie ovari (otomi %o@v%A:r%i // fix stress, v and vowel sounds: ovariotomie
_) oor (denk %o@r // move default stress: oordenk/-ing/-s _) oor (denk %o@r // move default stress: oordenk/-ing/-s
oordrewe o@rdr'e@v@ // stress: oordrewe/oordrewenheid oordrewe o@rdr'e@v@ // stress: oordrewe/oordrewenheid
oor (dink %o@r // move default stress oor (dink %o@r // move default stress
oor (doen %o@r // move default stress
_) oor (doen %o@r // move default stress
oor (donder %o@r // move default stress: oordonder/-ing oor (donder %o@r // move default stress: oordonder/-ing
oor (draag %o@r // move default stress: oordraagbaar/-lik, etc. oor (draag %o@r // move default stress: oordraagbaar/-lik, etc.
_) oor (dryC %o@r // move default stress: oordryf/oordrywing _) oor (dryC %o@r // move default stress: oordryf/oordrywing
oor (rompel %o@r // move default stress oor (rompel %o@r // move default stress
oorsaaklik %o@rsA:kl@k // fix stress: oorsaaklik/-e/-heid oorsaaklik %o@rsA:kl@k // fix stress: oorsaaklik/-e/-heid
oor (sigt %o@r // move default stress: oorsigtelik/oorsigtig/-e oor (sigt %o@r // move default stress: oorsigtelik/oorsigtig/-e
oor (sigtyd o@r // restore default stress: oorsigtydperk/-e
_) oor (skadu %o@r // move default stress: oorskadu/-wing _) oor (skadu %o@r // move default stress: oorskadu/-wing
_) oor (skat %o@r // move default stress: oorskat/-te/-ting _) oor (skat %o@r // move default stress: oorskat/-te/-ting
oor (skry %o@r // stress: oorskry/-ding and compounds oor (skry %o@r // stress: oorskry/-ding and compounds
paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds
parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds
pase (lla p%as& // fix stress and a sound: pasella(tjie) and compounds pase (lla p%as& // fix stress and a sound: pasella(tjie) and compounds
pa (sifi p%a // shorten a sound: pasifis/-me/-ties/-e
pa (stel p%a // move default stress: pastel(kleur) and similar compounds pa (stel p%a // move default stress: pastel(kleur) and similar compounds
pa (tat p@ // patat/warmpatat/wurgpatat pa (tat p@ // patat/warmpatat/wurgpatat
patie (KN p%at'i //words ending in patie has stress at end + a sound/simpatiek patie (KN p%at'i //words ending in patie has stress at end + a sound/simpatiek
@) paties p'A:tis // fix stress and a sound: simpaties/-e @) paties p'A:tis // fix stress and a sound: simpaties/-e
para (C ,para //paralel, paragraaf etc. para (C ,para //paralel, paragraaf etc.
parade (K p@rA:d@ // parade and compounds parade (K p@rA:d@ // parade and compounds
_) par (C@ p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
_) par (CA p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
parke (raad park@ // fix stress and e sound: Parkeraad(slid, etc.) parke (raad park@ // fix stress and e sound: Parkeraad(slid, etc.)
pars (C pars // restore default stress: parsbalie/-kuip/-tyd, etc.
_) pas (AA pas // pasaangeër/pasoortreding _) pas (AA pas // pasaangeër/pasoortreding
pas (op p%as // pasop/pasoppens pas (op p%as // pasop/pasoppens
passa (sier p%as%a // stress: passasier and compounds passa (sier p%as%a // stress: passasier and compounds
prominen prOmin'En // prominent/e/prominensie prominen prOmin'En // prominent/e/prominensie
propag ,prOpax2 propag ,prOpax2


prosedure prOs@d'yr@
prose (dure pr%Os@ // (regs)prosedure/prosedureel/-rele
prosti (tu pr%Ost@ // fix stress and i sound: prostituut/prostitute/prostitusie and compounds prosti (tu pr%Ost@ // fix stress and i sound: prostituut/prostitute/prostitusie and compounds
protes prut'Es protes prut'Es
protes (te_N pr%utEs // proteste, but prevent breaking protestering protes (te_N pr%utEs // proteste, but prevent breaking protestering
re (pliek r@ // fix stress and e sound: repliek and compounds re (pliek r@ // fix stress and e sound: repliek and compounds
re (produ r%e@ // fix stress and e sound: reproduksie/reproduseer re (produ r%e@ // fix stress and e sound: reproduksie/reproduseer
rep (tiel r%Ep // move default stress: reptiel/-e and compounds rep (tiel r%Ep // move default stress: reptiel/-e and compounds
reses (_ r@sEs // fix stress and e sound: (hof-/vakansie)reses
reso (nA r%Es%u // fix stress and e sound: resonant/-e/resonansie/resoneer reso (nA r%Es%u // fix stress and e sound: resonant/-e/resonansie/resoneer
re (spon r@ // fix stress and e sound: respons/-e/-ie/respondent, etc. re (spon r@ // fix stress and e sound: respons/-e/-ie/respondent, etc.
_) re (spyt r@ // fix stress and e sound: respyt/-dae/-tydperk _) re (spyt r@ // fix stress and e sound: respyt/-dae/-tydperk
sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres
o) s (_ s // exceptions to rule: @@@) s (_S1 s o) s (_ s // exceptions to rule: @@@) s (_S1 s
u) s (_ s // exceptions to rule: @@@) s (_S1 s u) s (_ s // exceptions to rule: @@@) s (_S1 s
s (chemi s // split s/ch: watersuiweringschemikalieë and similar compounds
sch S sch S
s (chaos s // split s/ch: regs-/verkeerschaos s (chaos s // split s/ch: regs-/verkeerschaos
sh (_ _^_EN sh (_ _^_EN
sili (nd s@lI // silinder(s)/silinderkoppe sili (nd s@lI // silinder(s)/silinderkoppe
si (llabA s@ si (llabA s@
si (napK s@ // fix stress and i sound: sinaps/-esinapties si (napK s@ // fix stress and i sound: sinaps/-esinapties
_) sin (dro s@n // move default stress: sindroom/sindrome
sin (ja s@n // move default stress: sinjaal/sinjale sin (ja s@n // move default stress: sinjaal/sinjale
_) si (noC s@ // fix stress and i sound: sinode and compounds/sinops/sinop;ties _) si (noC s@ // fix stress and i sound: sinode and compounds/sinops/sinop;ties
sino (niem s,in%u // fix stress and vowel sounds: sinoniem/-e sino (niem s,in%u // fix stress and vowel sounds: sinoniem/-e
sma (rag sm%a // fix stress and a sound: smarag/-te sma (rag sm%a // fix stress and a sound: smarag/-te
snaper (ing snA:p@r // fix stress and vowel sounds: versnapering/-e/-s and compounds snaper (ing snA:p@r // fix stress and vowel sounds: versnapering/-e/-s and compounds
snel (_ sn&l // fix e: aansnel/agternasnel/blitssnel/heengesnel/koppesnel/nasnel/verbysnel snel (_ sn&l // fix e: aansnel/agternasnel/blitssnel/heengesnel/koppesnel/nasnel/verbysnel
_) snel (A sn''&l_ // fix e sound, pause: snelaanval/-instrument/-ontwikkelende/-oorgang, etc.
sodom (iet s,o@dOm // fix stress sodom (iet s,o@dOm // fix stress
_) soeda (n s%uda // fix stress: Soedan/Soedanese _) soeda (n s%uda // fix stress: Soedan/Soedanese
soet (sappi s%ut // move default stress: soetsappig/-e/-heid soet (sappi s%ut // move default stress: soetsappig/-e/-heid
dwerg) ste (r st& // fix e sound: dwergster/-re dwerg) ste (r st& // fix e sound: dwergster/-re
nd) ste (r st& // fix e sound: aandster/oggendster nd) ste (r st& // fix e sound: aandster/oggendster
pool) ste (r st& // fix e sound: poolster pool) ste (r st& // fix e sound: poolster
prent) ste (r st& // fix e sound: rolprentster/-re
see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds
sepie) ste (r st& // fix e sound: sepiester/-re sepie) ste (r st& // fix e sound: sepiester/-re
sewe) ste (r st& // fix e sound: sewester and compounds sewe) ste (r st& // fix e sound: sewester and compounds
visie) ste (r st& // fix e sound: televisiester/-re visie) ste (r st& // fix e sound: televisiester/-re
_) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit
ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel
ster (hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfsterhotel
stimu (lA st@m%y // move default stress and fix i sound: stimuleer/stimulering/stimulasie stimu (lA st@m%y // move default stress and fix i sound: stimuleer/stimulering/stimulasie
_) sub (a sWb_ // subagent/subartikel/subatomies, etc. _) sub (a sWb_ // subagent/subartikel/subatomies, etc.
sub (li s%Wb // move default stress: subliem/-e sub (li s%Wb // move default stress: subliem/-e
_) sw sw // fix w sound: words beginning with sw-: swerweling/swetend _) sw sw // fix w sound: words beginning with sw-: swerweling/swetend
swaar (lyw sw%A:r // move default stress: swaarlywig/-e/-heid swaar (lyw sw%A:r // move default stress: swaarlywig/-e/-heid
swaar (moed sw%A:r // move default stress: swaarmoedig/-e/-heid swaar (moed sw%A:r // move default stress: swaarmoedig/-e/-heid
swag sv'ax2
swag (K sv'ax2
swa (hili sw%a // fix stress and a sound: swahili/-'s swa (hili sw%a // fix stress and a sound: swahili/-'s
_) swam (A@ swam_ // shorten a sound: swamagtig/-etend/-infeksie _) swam (A@ swam_ // shorten a sound: swamagtig/-etend/-infeksie
swart (gal sw%art // move default stress: swartgallig swart (gal sw%art // move default stress: swartgallig


.group st .group st
D_) ste st@ //ste after numbers 22ste etc. D_) ste st@ //ste after numbers 22ste etc.
_) staats st''A:ts // force stress: staatsadministrasie/-advokaat/-akkreditasie, etc.
_) staat (s st''A:t // force stress: staatsadministrasie/-advokaat/-akkreditasie, etc.
_) sta (bi@ st%a // fix stress and a sound: (on)stabiel/-e/stabiliseer/(on)stabiliteit _) sta (bi@ st%a // fix stress and a sound: (on)stabiel/-e/stabiliseer/(on)stabiliteit
sta (dion stA: // fix a sound: stadion and many compounds sta (dion stA: // fix a sound: stadion and many compounds
stalag (Ciet st%al%ax2 // fix stress and 1st a sound: stalagmiet/stalagtiet/-e stalag (Ciet st%al%ax2 // fix stress and 1st a sound: stalagmiet/stalagtiet/-e
sterretjie st'&rici sterretjie st'&rici
sterwens (@ st&rv@ns_ // fix 2nd e sound and insert paus: sterwensuur/-kreet/-nood and similar sterwens (@ st&rv@ns_ // fix 2nd e sound and insert paus: sterwensuur/-kreet/-nood and similar
ste (m stE // eliminate one m in derivatives like stemming ste (m stE // eliminate one m in derivatives like stemming
ste (maat st@ // fix e sound: -dienstemaatskappy/-e and similar
ste (mark st@ // fix e sound: (hoër/laer/middel)inkomstemark/-te, etc. ste (mark st@ // fix e sound: (hoër/laer/middel)inkomstemark/-te, etc.
stempel stEmp@l // fix 2nd e sound: stempelband/-datum/-gereedskap/-hamer/-jaar/-letter... stempel stEmp@l // fix 2nd e sound: stempelband/-datum/-gereedskap/-hamer/-jaar/-letter...
@) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc. @) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc.
tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds
taiwa (n t%aIwa // fix stress and w and a sounds: Taiwan/Taiwanese taiwa (n t%aIwa // fix stress and w and a sounds: Taiwan/Taiwanese
taksider (m t%aks%id%&r // fix stress and e sound: taksidermie/taksidermis/-te taksider (m t%aks%id%&r // fix stress and e sound: taksidermie/taksidermis/-te
ta (lent t%a // fix stress and a sound: talent/-e/-jie
talent t%alEnt // fix stress and a sound: talent/-e/musiek-/kunstalent
talen (tjie t%alEiN // fix -entjie: (kuns-/musiek)talentjie
@) talig t'A:l@x2 // Anderstalig/tweetalig @) talig t'A:l@x2 // Anderstalig/tweetalig
@) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar @) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar
_) ta (ma t%a // tamatie and compounds _) ta (ma t%a // tamatie and compounds
teltjie t@lki teltjie t@lki
@) tel (o t@l // hartelose/besluiteloos/gedagtelose @) tel (o t@l // hartelose/besluiteloos/gedagtelose
tendens t%Ende~ns // fix stress and e sounds: tendens/-e and compounds tendens t%Ende~ns // fix stress and e sounds: tendens/-e and compounds
&) tert (A t@rt // fix e sound: agtertoe/foltertuig/gietertuit/kilometertoelae/lastertaal/letterteken
&) tert (A@ t@rt // fix e sound: agtertoe/foltertuig/gietertuit/kilometertoelae/lastertaal/letterteken
&) tert (r t@rt // fix e sound: pleistertroffel/venstertralie/ystertralies/ystertrap &) tert (r t@rt // fix e sound: pleistertroffel/venstertralie/ystertralies/ystertrap
&s) tert (aan t&:rt // fix e sound: swa(w)elstertaandpak/-ke &s) tert (aan t&:rt // fix e sound: swa(w)elstertaandpak/-ke
&s) tert (e_ t&:rt // fix e sound: swa(w)elsterte/vissterte &s) tert (e_ t&:rt // fix e sound: swa(w)elsterte/vissterte
uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@ uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@
uit (huisig %Yyt // move stress: uithuisig/-e/-heid uit (huisig %Yyt // move stress: uithuisig/-e/-heid
uiting Yyt@N // remove break and fix ng: uiting/-e/-svermoë and similar compounds uiting Yyt@N // remove break and fix ng: uiting/-e/-svermoë and similar compounds
ui (tjie Yy // "uit" not prefix here: uitjie/-s
uitme (kaar %Yytm@ // move default stress: uitmekaar breek/gaan/loop/, etc. uitme (kaar %Yytm@ // move default stress: uitmekaar breek/gaan/loop/, etc.
uit (munten %Yyt // move stress: uitmuntend/-e uit (munten %Yyt // move stress: uitmuntend/-e
uit (sluiten %Yyt // move default stress: uitsluitend/-e uit (sluiten %Yyt // move default stress: uitsluitend/-e
.group v .group v
v f v f
v (v v (v
@) vaardig f'A:rd@x2 // diensvaardig/hulpvaardig/onboetvaardig/strydvaardig
@) vaardig f'A:rd@x2 // diensvaardig/hulpvaardig/onboetvaardig/strydvaardig
uit) vaardig fA:rd@x2 // but uitvaardig uit) vaardig fA:rd@x2 // but uitvaardig
ver) vaardig fA:rd@x2 // default stress: onderdelevervaardiger and similar
va (doek fa // stress on 1st slb.: vadoek/-e va (doek fa // stress on 1st slb.: vadoek/-e
vagina vax2ina // fix v sound and shorten a sound: vagina/-s vagina vax2ina // fix v sound and shorten a sound: vagina/-s
vagin (A@ v%ax2%in // move default stress: vaginale and similar vagin (A@ v%ax2%in // move default stress: vaginale and similar
vari (A v%ar%i // fix v sound and stress: variasie/-s/varieer vari (A v%ar%i // fix v sound and stress: variasie/-s/varieer
vaseline v%as@lin // fix stress, v and vowel sounds: vaseline/-bottel, etc. vaseline v%as@lin // fix stress, v and vowel sounds: vaseline/-bottel, etc.
vasste (l fast& // fix e sound: vasstel(ling/-lende) vasste (l fast& // fix e sound: vasstel(ling/-lende)
_) vat (A@ fat_ // fix a sound: vatafstand/-orgaan
vate (C fA:t@ // fix e sound: vatefabriek/-maker
vati (kaan f%at%i // fix stress and shorten a sound: vatikaan and derivatives and compounds vati (kaan f%at%i // fix stress and shorten a sound: vatikaan and derivatives and compounds
@) ve (_ _^_EN //words ending in ve is English @) ve (_ _^_EN //words ending in ve is English
veel (duid f%e@l // move default stress: veelduidig/-e/veelduidend/-e veel (duid f%e@l // move default stress: veelduidig/-e/veelduidend/-e
vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds
verversing f@rf'&rs@N //verversing and compounds verversing f@rf'&rs@N //verversing and compounds
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
_) vet (A fEt_ // fix e sound, pause: vetafskeiding/-olie/-oplossing, etc. _) vet (A fEt_ // fix e sound, pause: vetafskeiding/-olie/-oplossing, etc.
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.
_) voor (delig f%o@r // move default stress: voordelig/-e _) voor (delig f%o@r // move default stress: voordelig/-e
_) voorge (@P6 f'o@rx2@ _) voorge (@P6 f'o@rx2@
_) voor (komA f%o@r // move default stress: voorkomende/voorkomer/voorkoming and compounds _) voor (komA f%o@r // move default stress: voorkomende/voorkomer/voorkoming and compounds
voor (komba f%o@r // move default stress: voorkombaar/-heid/-bare
voor (sie f%o@r // move default stress: voorsien/-ing voor (sie f%o@r // move default stress: voorsien/-ing
voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid
voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar
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
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
@s) w (aan v // fix w sound: groot-/kleinheids-/hoogmoeds-/liefdes-/vervolgingswaan @s) w (aan v // fix w sound: groot-/kleinheids-/hoogmoeds-/liefdes-/vervolgingswaan
@s) w (An_ v // plurals of the above in -de: de treate @s) w (An_ v // plurals of the above in -de: de treate
_) wan (AP3 v''an_ // wanorde/wanopvatting/wanaanpassing/winindruk/wanadministrasie/wanaangewend _) wan (AP3 v''an_ // wanorde/wanopvatting/wanaanpassing/winindruk/wanadministrasie/wanaangewend
@t) w (and v // fix w sound: bloedvatwand/grotwand/hartwand @t) w (and v // fix w sound: bloedvatwand/grotwand/hartwand
C) wag vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter
C) wag (K vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter
k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc. k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc.
wal (kure v%al // move default stress: Walkure/-s
wange (drag vanx2@ // (jeug)wangedrag and similar wange (drag vanx2@ // (jeug)wangedrag and similar
wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid
wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid


wn _^_EN // names containing town/Brackendowns/Brown wn _^_EN // names containing town/Brackendowns/Brown
_) wol (A vOl_ // fix o sound, insert short break: wol(onderbaadjie/-broek/-hemp/-klere)/-olie _) wol (A vOl_ // fix o sound, insert short break: wol(onderbaadjie/-broek/-hemp/-klere)/-olie
wol (vin v%Ol // move default stress: wolvin/-ne
worth _^_EN worth _^_EN
wood (+ _^_EN // English: Woodstock/Goodwood/Lynnwood wood (+ _^_EN // English: Woodstock/Goodwood/Lynnwood
woongewes vo@nx2@vEs // fix stress and e sounds: woongewes/-te woongewes vo@nx2@vEs // fix stress and e sounds: woongewes/-te
û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
% p@rs'Ent
& _|amp&rsant
£ pO:nt
€ Y@ru
/ stre@p
@ beI_:
\\ trystre@p

// punctuation, but don't speak multiple occurrances
= _:x2@l'eIk_:
= (==
=) = (=
==) = (_ _::

* st&r
*) * (*
**
**) * (_ _::

+ pl'Ws
_) ++ (_ plWspl'Ws
\+\+\+) + // ignore + after the first 3

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

. pWnt
. (. _:
\.) .
~ tIld@

// extra symbols
¥ jEn
§ afde@l@N
¶ parax2rA:f
¶¶ parax2rA:v@
¤ mWnte@k@n
© kup'ir&x2
° x2rA:d@
− minWs
± plWs_OfminWs
µ mikru
¼ @kwart
½ @halv@
¾ drikwart
× mA:l
÷ x2@de@ldY@r
♯ krYys
♭ mOl





+ 10
- 1
dictsource/de_list View File

_0M3 ||mIlI'a*d@n _0M3 ||mIlI'a*d@n
_1M3 _'aIn@||mIlI'a*d@ _1M3 _'aIn@||mIlI'a*d@
_0M4 bIlI'o:n _0M4 bIlI'o:n
_0and ||Unt
_0and ||_|Unt
_dpt _kOma _dpt _kOma


// ordinal numbers
_ord t@ // default ending
_ord20 st@ // 20,30,etc
_1o _'e:*st@
_3o dr'It@
_7o z'i:bt@
_8o _'axt@
_0Co 'hUnd3tst@

// Abbreviations // Abbreviations
//============== //==============
a.a.o A:A:o: a.a.o A:A:o:

+ 81
- 2
dictsource/dict_phonemes View File

tS v w x x2 z Z tS v w x x2 z Z




Dictionary bn_dict

& a a: a~ e E e~ i
I i: i:~ i~ l- o O o:
O~ o~ r- U u u: u:~ u~
V

* b B bh c C ch d
d. d.h dh g gh h j J
Jh k kh l m n N n.
n^ p ph Q r r. s S
s. t t. t.h th tS x z


Dictionary ca_dict Dictionary ca_dict


@ a a# aI e E E2 i @ a a# aI e E E2 i
x z x z




Dictionary kn_dict

a a: aI aU e E e: i
I i: o o: r- u u: V
y

: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s S
s. S; t t. t.h th tS v
w z


Dictionary de_dict Dictionary de_dict


3 @ @- a A A: aI aU 3 @ @- a A A: aI aU
Z Z




Dictionary ml_dict

a a: aI aU e E e: i
I i: o o: r- u u: V
y

: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s s.
S; t t. t.h th tS v w
z z.


Dictionary ne_dict

@ @/ @2 @3 a aI aU a~
e E eI eU e~ E~ i I
i~ l- o O o: oI oU O~
o~ r- u uI u~ V VI VU
V~

- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z z.


Dictionary om_dict

a A a# a: E e E# I
I# i: O O# o: U U# u:

** : b B c` d D d`
dZ f g h j k k` l
m n n^ p p` R s S
s2 t t` tS v w z


Dictionary ku_dict Dictionary ku_dict


8 a e E E# eI eU i 8 a e E E# eI eU i
tS ts tS; v x z Z tS ts tS; v x z Z




Dictionary rw_dict

a e i o u

* : b B c d dZ f
g h j J k l m n
N n^ p q R s S S;
t tS v w x z


Dictionary nl_dict Dictionary nl_dict


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


@ @r a A ai Au E ei @ @r a A ai Au E ei
i i. i[ iA iE io iou N- i i. i[ iA iE io iou N-
o o- ou u u@ ua uai uei
uo y y& y@ yE yi yu
o o- ong ou u u@ ua uai
uei uo y y& y@ yE yi yu


; C f h j k kh l ; C f h j k kh l
L m n N p ph r R L m n N p ph r R

+ 22
- 9
dictsource/en_list View File

_  hA@dspeIs // U+00A0 no-break-space _  hA@dspeIs // U+00A0 no-break-space
_! Ekskl@m'eIS@n _! Ekskl@m'eIS@n
_" kwoUts _" kwoUts
_# haS
_$ d0l3 _$ d0l3
_% p3s'Ent _% p3s'Ent
?5 _% pVRs'Ent ?5 _% pVRs'Ent
_‼ Ekskla2m'eIS@nz _‼ Ekskla2m'eIS@nz
_₠ jU@roU _₠ jU@roU


# haS $max3
@ _at_ @ _at_
& _and & _and
\ bakstroUk $max3 \ bakstroUk $max3
?3 / slaS $max3 ?3 / slaS $max3
* ast@rIsk $max3 * ast@rIsk $max3
% p3sEnt $max3 % p3sEnt $max3
= _:i:kw@Lz_: $max3
?5 % pVRs'Ent $max3 ?5 % pVRs'Ent $max3
= _:i:kw@Lz_: $max3
¢ sEnts ¢ sEnts
£ paUnd £ paUnd
¥ jEn ¥ jEn
_dpt pOInt _dpt pOInt
_roman roUm@n_ _roman roUm@n_


(1 st) f3:st
(2 nd) sEk@nd
(3 rd) T3:d
(5 th) fIT
_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
_0Co h'Vndr@dT




// ABBREVIATIONS // ABBREVIATIONS
ie aIi:_! $pause $only ie aIi:_! $pause $only
i.e aIi:_! $pause i.e aIi:_! $pause
irc $abbrev irc $abbrev
(km ²) skw,e@kIl'0mIt3z
lbs paUndz lbs paUndz
LBS $abbrev LBS $abbrev
ltd lImI2tI2d ltd lImI2tI2d
cone koUn cone koUn
conflict $1 $onlys conflict $1 $onlys
conflict $verb conflict $verb
conger k0ng3
conger k0Ng3
conscience k0nS@ns conscience k0nS@ns
construct $1 $onlys construct $1 $onlys
construct $verb construct $verb
mandate $2 $verb mandate $2 $verb
manganese $1 manganese $1
manger meIndZ3 manger meIndZ3
mangetout m0nZt'u:
manhour manaU@ manhour manaU@
mankind $2 mankind $2
maneuver m@nu:v3 maneuver m@nu:v3
?3 pretense pri:tEns ?3 pretense pri:tEns
pretext pri:tEkst pretext pri:tEkst
pretty prItI pretty prItI
privation praIv'eIS@n
privilege prIvI2lI2dZ privilege prIvI2lI2dZ
privy prIvI privy prIvI
prix pri: prix pri:
satanist seIt@nIst satanist seIt@nIst
saucepan sO:sp@n saucepan sO:sp@n
saudi saUdI saudi saUdI
saute sO:teI
says sEz says sEz
schema ski:m@ schema ski:m@
shallow SaloU shallow SaloU
sequester $2 sequester $2
sequine si:kwI2n sequine si:kwI2n
series si:ri:z series si:ri:z
serenade sErI2n'eId
serene s@ri:n serene s@ri:n
sergeant sA@dZ@nt sergeant sA@dZ@nt
sesame sEsa2mI
settee $2 settee $2
severe sI2v'i@3 $only severe sI2v'i@3 $only
severely sI2v'i@3lI2 $verbf severely sI2v'i@3lI2 $verbf
Michele mI2SEl Michele mI2SEl
Michelle mI2SEl Michelle mI2SEl
Miguel mi:Q'El Miguel mi:Q'El
Mohammad moUh'amId
Muhammad moUh'amId
Minerva mI2n3:v@
Mohamed moUh'amI2d
Mohammad moUh'amI2d
Muhammad moUh'amI2d
Moira mOIr@ Moira mOIr@
Natalie nata2li Natalie nata2li
Nathan neIT@n Nathan neIT@n
Patel pa2tEl Patel pa2tEl
Primavera pri:m@v'e@r@ Primavera pri:m@v'e@r@
Prentice prEntIs Prentice prEntIs
Reid ri:d
Reuter rOIt3 Reuter rOIt3
Ubuntu u:b'u:ntu: Ubuntu u:b'u:ntu:
Yaesu jeIsu: Yaesu jeIsu:
weren't ,w3:nt $pastf $strend2 weren't ,w3:nt $pastf $strend2


will $u+ $only $verbf $strend2 will $u+ $only $verbf $strend2
will $noun
(will to) wIlt@5 (will to) wIlt@5
would $u+ $verbf $only $strend2 would $u+ $verbf $only $strend2
(would have) w%Udh%a2v $pastf (would have) w%Udh%a2v $pastf

+ 12
- 7
dictsource/en_rules View File

// ?8 Use full vowel, not schwa in some word endings // ?8 Use full vowel, not schwa in some word endings


.L01 l r .L01 l r
.L02 i y


.replace .replace
ff ff // ligature ff ff // ligature
area e@ri@ area e@ri@
arest (_ e@r@st arest (_ e@r@st
ar (en ar ar (en ar
p) are (nth @rE
p) are (nthe @rE
c) ar (eer ar c) ar (eer ar
c) are (C@ e@ c) are (C@ e@
p) are (nt e@r@
p) ar (ent e@r
pp) ar (enC ar pp) ar (enC ar
sp) ar (enC ar sp) ar (enC ar
ar' (nt A@ ar' (nt A@
e (meou i: e (meou i:
_C) e (mur i: _C) e (mur i:
&) e (n @ &) e (n @
&r) e (n E
Ah) e (n E Ah) e (n E
ll) e (nge I ll) e (nge I
e (o I2 e (o I2


.group ei .group ei
l) eice (st E l) eice (st E
eich aIx
eigh eI eigh eI
l) eigh i: l) eigh i:
sl) eigh eI sl) eigh eI
@) o (ist oU @) o (ist oU
oix (_ wa oix (_ wa
o (ky_ oU o (ky_ oU
?3 g) o (ng O
?3 r) o (ng O
?3 s) o (ng O
t) o (ngu V t) o (ngu V
&) oped (_ @pd &) oped (_ @pd
c) oped (_ oUpd
_) o (per 0 _) o (per 0
_) ope (n oUp@ _) ope (n oUp@
un) ope (n oUp@ un) ope (n oUp@
@) opol (i '0p@L
@) opol (L02 '0p@l
opolitan @p'0lIt@n opolitan @p'0lIt@n
oppor (tu %0p3 oppor (tu %0p3
opp (res @p opp (res @p
_) one (r oUn@ _) one (r oUn@
m) on (ey Vn m) on (ey Vn
und) one (_ Vn und) one (_ Vn
?3 g) ong ON
?3 r) ong ON
?3 s) ong ON
?!3 m) ong (er VNg ?!3 m) ong (er VNg
on (i_ 'oUn on (i_ 'oUn
&) onism (_ =@nIz@m &) onism (_ =@nIz@m
rehen rIh'En rehen rIh'En
_) re (i@P2 r,i: _) re (i@P2 r,i:
_) rei (l raI _) rei (l raI
_) rei (c raI
_) rele (g rElI2 _) rele (g rElI2
rele (nt rI2lE rele (nt rI2lE
rele (v rElI rele (v rElI
u (lul V u (lul V
h) u (man ju: h) u (man ju:
u (me ju: u (me ju:
r) ument @m@nt
r) um (ent @m
fl) uor u:3 fl) uor u:3
u (o ju: u (o ju:
@) uous =ju:@s @) uous =ju:@s

+ 7
- 3
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2008-12-09 Michel Such <[email protected]>
// Updated 2009-01-14 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~
@ arobaz @ arobaz
% pursA~ $max3 % pursA~ $max3
* asterisk: $max3 * asterisk: $max3
& _e
& e $u $brk
_& _e_komErsj'al _& _e_komErsj'al
+ plys $max3
+ plys $max3
~ tilde ~ tilde
€ @ro € @ro
¢ sEnt ¢ sEnt
(qu'est ce que) kEsk@ $u (qu'est ce que) kEsk@ $u
absent absA~ absent absA~
admin admin admin admin
adsltv $abbrev
airbus E2rbys airbus E2rbys
auvent ovA~ auvent ovA~
bien bjE~n2 $u+ bien bjE~n2 $u+
iris iris iris iris
laser lazEr laser lazEr
malus malys malus malys
mapper _^_en
mars mars mars mars
mieux mj'Y $u+ mieux mj'Y $u+
ours urs ours urs
phallus falys phallus falys
polder pOldEr polder pOldEr
premier pr@mjer2 premier pr@mjer2
(program files) pr,o2gram||f'ajlz
scanner skaner2 scanner skaner2
scanner skanWr $noun scanner skanWr $noun
souris suri souris suri

+ 4
- 3
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated: 2008-12-09 Michel Such <[email protected]>
// Updated: 2009-01-14 Michel Such <[email protected]>
// //


// Letter classes: // Letter classes:
cch k // bacchanale cch k // bacchanale
cc (Y ks // accéder cc (Y ks // accéder
cc k // occuper cc k // occuper
_) c (d se
_) ch (arism k // charisme, charismatique _) ch (arism k // charisme, charismatique
_) ch (irop k // chiroptère _) ch (irop k // chiroptère
a) ch (_ k // almanach a) ch (_ k // almanach
A) e (rA // remerciera A) e (rA // remerciera
gu) e (rA @ gu) e (rA @
qu) e (rA @ qu) e (rA @
v) e (lop @-
@) em (me a // patiemment @) em (me a // patiemment
em (b A~ // décembre em (b A~ // décembre
em (mACC A~ // emmancher em (mACC A~ // emmancher
Cr) i (é i: Cr) i (é i:
Cr) i (er_ i: Cr) i (er_ i:
rr) i (er_ j rr) i (er_ j
dr) iver a2jvWr
C) ien (t_ i C) ien (t_ i
dév) ien (t_ i dév) ien (t_ i
t) ien (K_ jE~ // tient t) ien (K_ jE~ // tient
ind (_ _^_en // find, mind ind (_ _^_en // find, mind
_C) ind (er_ _^_en // finder, reminder _C) ind (er_ _^_en // finder, reminder
_AC) ind (er_ _^_en // finder, reminder _AC) ind (er_ _^_en // finder, reminder
// ink _^_en // link
ize (X _^_en // realize ize (X _^_en // realize
dr) i (ve _^_en




.group î .group î

+ 29
- 6
dictsource/hu_list View File

// Conditional rules: // Conditional rules:
// ?1 speak "i" as Roman number // ?1 speak "i" as Roman number



// Numbers // Numbers


_0 nullA _0 nullA
_1 EJ _1 EJ
_2 kEttY:
_2 kEt:Y:
_3 ha:R2om _3 ha:R2om
_4 ne:J _4 ne:J
_5 Yt _5 Yt
_0M4 billio: _0M4 billio:
_1M4 billio: _1M4 billio:
_2M4 ke:tbillio: _2M4 ke:tbillio:
_dpt ||_vEss2Y:_
_dpt ||_v,Ess2Y:_

_0Z1 tizAd // tenths
_0Z2 sa:zAd // hundredths
_0Z3 EzR2Ed
_0Z4 ti:zEzR2Ed


// ordinal numbers
_ord Edik
_1o ElSY:
_2o ma:Sodik
_3o hAR2_mAdik
_4o nEJEdik
_5o YtYdik
_6o hAtodik
_7o hEtEdik
_8o n^oltsAdik
_9o kilEntsEdik
_10o tizEdik
_12o tizENkEt:Edik
_20o husAdik
_0Co sa:zAdik



// accent names // accent names
_lig ligAtu:R2A _lig ligAtu:R2A
% sa:zAle:k $max3 % sa:zAle:k $max3
+ plus $max3 + plus $max3
= EJEnlY:Se:g $max3 = EJEnlY:Se:g $max3
# sa:mjEl $max3
@ kukAts @ kukAts
& e:SjEl & e:SjEl
€ EuR2o € EuR2o
^ hia:n^ ^ hia:n^
° fokjEl ° fokjEl
Ft foR2int Ft foR2int
\ viss2ApER2 $max3


_, vEss2Y: _, vEss2Y:
_; pontoSvEss2Y: _; pontoSvEss2Y:
_] s'YglEtES||z'a:R2o: _] s'YglEtES||z'a:R2o:
_{ k'AptSoS||z'a:R2o: _{ k'AptSoS||z'a:R2o:
_} k'AptSoS||z'a:R2o: _} k'AptSoS||z'a:R2o:
_# sa:mjEl
_… ha:R2_mASpont _… ha:R2_mASpont
_• di:spont _• di:spont
_\ viss2ApER2


// Main Exceptions List // Main Exceptions List
//===================== //=====================


nato na:to: nato na:to:



$textmode
(1-én) elsején



+ 4
- 3
dictsource/hu_rules View File

_o) sló slo: _o) sló slo:
tojá) s S tojá) s S


sz (öld Sz
va) s (zabl S||
_) semmelweiss sEmmElvEjs _) semmelweiss sEmmElvEjs
_) semmelweis sEmmElvEjs _) semmelweis sEmmElvEjs
_) semmelweiß sEmmElvEjs _) semmelweiß sEmmElvEjs
engel) s s engel) s s
mu) ss (olini ss2 mu) ss (olini ss2
_) saar sa:R2 _) saar sa:R2

_wa) sh (ing S _wa) sh (ing S


sz (öld Sz
va) s (zabl S||
egé) szs (ég S



.group t .group t
_) t (_ te: _) t (_ te:

+ 63
- 4
dictsource/lv_list View File

_1M1 t'u:kstuo:tis _1M1 t'u:kstuo:tis
_0M2 m'iljo:ni _0M2 m'iljo:ni
_1M2 m'iljo:ns _1M2 m'iljo:ns
_dpt k'uomats_
_dpt k'omats_

// ordinal numbers
_ord ais // default ending
_1o p'iR2mais
_2o 'otR2ais
_3o tR'eSais
_4o tS'etuRtais
_5o p'iektais
_6o s'estais
_7o s'epti:tais
_8o 'astotais
_9o d'evi:tais
_0Co s'imtais




// accent names (Mostly English names, please fix) // accent names (Mostly English names, please fix)
_brv 'i:suma _brv 'i:suma
_ced s'edi:la _ced s'edi:la
_cir d'iakR2itiska: _cir d'iakR2itiska:
_dia 'umlaut
_dia 'umlauts
_dot p'unkts _dot p'unkts
_grv gR2'a:v _grv gR2'a:v
_hac h'atSek _hac h'atSek
jūl ju:lijs jūl ju:lijs
jūn ju:nijs jūn ju:nijs
lp lapa lp lapa
lpp lappuse
lat lati:n^u lat lati:n^u
latv latvieSu latv latvieSu
Ls lati $capital Ls lati $capital
st sant st sant
šķ SciR2a šķ SciR2a


// words with [o]
// words with [o]
adadžo $alt
aikido $alt
anno $alt
automoto $alt
bandžo $alt
bendžo $alt
bingo $alt
bolero $alt
bravo $alt
bruno $alt
bruto $alt
depo $alt
dingo $alt
domino $alt
džudo $alt
čello $alt
embargo $alt
esperanto $alt
facto $alt
fiasko $alt
foto $alt
hallo $alt
hugo $alt hugo $alt
indigo $alt
inkognito $alt inkognito $alt
intermeco $alt
kakao $alt
kastro $alt
kazino $alt
microsoft $alt microsoft $alt
moto $alt
lego $alt
lumbago $alt
maestro $alt
metro $alt
moto $alt
odo $alt odo $alt
oto $alt oto $alt
panno $alt
pianīno $alt
rančo $alt
retro $alt
rokoko $alt
roks $alt
sambo $alt
solfedžo $alt
sonera $alt
triko $alt
trimo $alt
uno $alt
veto $alt
žabo $alt







+ 432
- 129
dictsource/lv_rules
File diff suppressed because it is too large
View File


+ 8
- 0
dictsource/zh_rules View File



.group o .group o
o o o o

ou ou ou ou
o1u ou55 o1u ou55
o2u ou35 o2u ou35
o3u ou214 o3u ou214
o4u ou51 o4u ou51

ong (K ong
o1ng (K ong55
o2ng (K ong35
o3ng (K ong214
o4ng (K ong51

y) o io y) o io
y) ou iou y) ou iou
y) o1u iou55 y) o1u iou55

+ 225
- 5
phsource/compile_report
File diff suppressed because it is too large
View File


BIN
phsource/n/n_ View File


+ 1
- 2
phsource/ph_hungarian View File

vowelin f1=0 f2=1700 -300 300 f3=-100 80 vowelin f1=0 f2=1700 -300 300 f3=-100 80
vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
lengthmod 2 lengthmod 2
wave ustop/ts
before _ ustop/ts_
wave ustop/ts // don't use ustop/ts_ (before non-vowel)
endphoneme endphoneme





+ 9
- 3
phsource/ph_zh View File

vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
lengthmod 2 lengthmod 2
wave ustop/p_
wave ustop/p_asp
endphoneme endphoneme


phoneme m //not clear before some vowel phoneme m //not clear before some vowel
vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30 vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
lengthmod 2 lengthmod 2
wave ustop/k_
wave ustop/k_asp%80
endphoneme endphoneme


phoneme tS; phoneme tS;


phoneme @r //tmp use V3_r phoneme @r //tmp use V3_r
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 250
length 350
formants vowelr/V3_r formants vowelr/V3_r
endphoneme endphoneme


formants vdiph/8u formants vdiph/8u
endphoneme endphoneme


phoneme ong
vowel starttype (o) endtype (o)
length 500
formants vwl_zh/ong
endphoneme

phoneme u //try more before N phoneme u //try more before N
vowel starttype (u) endtype (u) vowel starttype (u) endtype (u)
length 250 length 250

+ 20
- 0
phsource/phonemes View File

include ph_armenian include ph_armenian




phonemetable rw base2
include ph_kinyarwanda

phonemetable ml hi
include ph_malayalam

phonemetable kn hi
include ph_kannada

phonemetable bn hi
include ph_bengali

phonemetable ne hi
include ph_nepali

phonemetable mr hi
include ph_mathari

phonemetable om base
include ph_oromo

BIN
phsource/voc/vj View File


BIN
phsource/vowel/ii_final View File


BIN
phsource/vwl_en_us/3_us2 View File


+ 2
- 6
src/compiledata.cpp View File

max = -sample; max = -sample;


} }
if(max > 1)
{
scale_factor = (max / 127) + 1;
}
else
scale_factor = 0;

scale_factor = (max / 127) + 1;


//fprintf(f_errors," sample len=%d max=%4x shift=%d\n",length,max,scale_factor); //fprintf(f_errors," sample len=%d max=%4x shift=%d\n",length,max,scale_factor);



+ 21
- 2
src/compiledict.cpp View File

int flag_offset; int flag_offset;
int length; int length;
int multiple_words = 0; int multiple_words = 0;
int multiple_numeric_hyphen = 0;
char *multiple_string = NULL; char *multiple_string = NULL;
char *multiple_string_end = NULL; char *multiple_string_end = NULL;
case 1: case 1:
if((c == '-') && (word[0] != '_')) if((c == '-') && (word[0] != '_'))
{ {
flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED;
if(isdigit(word[0]))
{
multiple_numeric_hyphen = 1;
}
else
{
flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED;
}
c = ' '; c = ' ';
} }
if(isspace2(c)) if(isspace2(c))
} }
else else
{ {
dict_line[length++] = 80 + multiple_words;
dict_line[length++] = 80 + multiple_words + multiple_numeric_hyphen; // if numeric, count a hyphen as an extra word
ix = multiple_string_end - multiple_string; ix = multiple_string_end - multiple_string;
if(multiple_numeric_hyphen)
{
// the first part is numeric, so keep the hyphen to match on
dict_line[length++] = '-';
dict_line[length++] = ' ';
}
memcpy(&dict_line[length],multiple_string,ix); memcpy(&dict_line[length],multiple_string,ix);
length += ix; length += ix;
} }
fputc(RULE_GROUP_START,f_out); fputc(RULE_GROUP_START,f_out);
fputc(RULE_LETTERGP2,f_out); fputc(RULE_LETTERGP2,f_out);
fputc(group + 'A', f_out); fputc(group + 'A', f_out);
if(letterGroupsDefined[group] != 0)
{
fprintf(f_log,"%5d: lettergroup L%.2d is already defined\n",linenum,group);
error_count++;
}
letterGroupsDefined[group] = 1; letterGroupsDefined[group] = 1;


n_items = 0; n_items = 0;

+ 9
- 1
src/dictionary.cpp View File



if(plist->synthflags & SFLAG_SYLLABLE) if(plist->synthflags & SFLAG_SYLLABLE)
{ {
if((stress = plist->tone) > 1)
if((stress = plist->stresslevel) > 1)
{ {
if(stress > 5) stress = 5; if(stress > 5) stress = 5;
phon_out[phon_out_ix++] = stress_chars[stress]; phon_out[phon_out_ix++] = stress_chars[stress];
return(0); return(0);
} }
#endif #endif

// is it a bracket ?
if(IsBracket(letter))
{
if(pre_pause < 4)
pre_pause = 4;
}

// no match, try removing the accent and re-translating the word // no match, try removing the accent and re-translating the word
if((letter >= 0xc0) && (letter <= 0x241) && ((ix = remove_accent[letter-0xc0]) != 0)) if((letter >= 0xc0) && (letter <= 0x241) && ((ix = remove_accent[letter-0xc0]) != 0))
{ {

+ 1
- 1
src/espeak.cpp View File

break; break;


case 0x104: // --voices case 0x104: // --voices
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,NULL,0);
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,data_path,0);
DisplayVoices(stdout,optarg); DisplayVoices(stdout,optarg);
exit(0); exit(0);



+ 0
- 2
src/extras.cpp View File





const char* text1 = "Hello world. Testing."; const char* text1 = "Hello world. Testing.";
extern void TestCompile2(void);


void TestTest(int control) void TestTest(int control)
{//======================= {//=======================
//CharsetToUnicode("ISO-8859-4"); //CharsetToUnicode("ISO-8859-4");
//CharsetToUnicode("ISCII"); //CharsetToUnicode("ISCII");


//TestCompile2();
return; return;


if(control==2) if(control==2)

+ 11
- 11
src/intonation.cpp View File

p = &phoneme_list[0]; p = &phoneme_list[0];
for(ix=0; ix<n_phoneme_list; ix++, p++) for(ix=0; ix<n_phoneme_list; ix++, p++)
{ {
if((p->type == phVOWEL) && (p->tone >= 4))
if((p->type == phVOWEL) && (p->stresslevel >= 4))
{ {
if(count_stressed == 0) if(count_stressed == 0)
final_stressed = ix; final_stressed = ix;


if(p->tone >= 4)
if(p->stresslevel >= 4)
{ {
final_stressed = ix; final_stressed = ix;
count_stressed++; count_stressed++;
} }
} }


phoneme_list[final_stressed].tone = 7;
phoneme_list[final_stressed].stresslevel = 7;


// language specific, changes to tones // language specific, changes to tones
if(tr->translator_name == L('v','i')) if(tr->translator_name == L('v','i'))
if((tph->mnemonic == 0x3535 ) || (tph->mnemonic == 0x3135)) if((tph->mnemonic == 0x3535 ) || (tph->mnemonic == 0x3135))
{ {
// change sentence final tone 1 or 4 to stress 6, not 7 // change sentence final tone 1 or 4 to stress 6, not 7
phoneme_list[final_stressed].tone = 6;
phoneme_list[final_stressed].stresslevel = 6;
} }
} }


p->tone_ph = PhonemeCode2('4','4'); p->tone_ph = PhonemeCode2('4','4');


// tone 5 is unstressed (shorter) // tone 5 is unstressed (shorter)
p->tone = 1; // diminished stress
p->stresslevel = 1; // diminished stress
} }
} }


{ {
tone_ph = p->tone_ph; tone_ph = p->tone_ph;


if(p->tone != 1) // TEST, consider all syllables as stressed
if(p->stresslevel != 1) // TEST, consider all syllables as stressed
{ {
if(ix == final_stressed) if(ix == final_stressed)
{ {
syllable_tab[n_st].flags = 0; syllable_tab[n_st].flags = 0;
syllable_tab[n_st].env = PITCHfall; syllable_tab[n_st].env = PITCHfall;
syllable_tab[n_st].nextph_type = phoneme_list[ix+1].type; syllable_tab[n_st].nextph_type = phoneme_list[ix+1].type;
syllable_tab[n_st++].stress = p->tone; // stress level
syllable_tab[n_st++].stress = p->stresslevel;


if(p->tone >= 4)
if(p->stresslevel >= 4)
n_primary++; n_primary++;
} }
else else
for(ix=ph_start; ix < ph_end; ix++) for(ix=ph_start; ix < ph_end; ix++)
{ {
p = &phoneme_list[ix]; p = &phoneme_list[ix];
p->tone = syllable_tab[st_ix].stress;
p->stresslevel = syllable_tab[st_ix].stress;
if(p->synthflags & SFLAG_SYLLABLE) if(p->synthflags & SFLAG_SYLLABLE)
{ {
p->env = PITCHrise; p->env = PITCHrise;
} }
else else
if(p->tone > 5)
if(p->stresslevel > 5)
p->env = syl->env; p->env = syl->env;


if(p->pitch1 > p->pitch2) if(p->pitch1 > p->pitch2)


if(syl->flags & SYL_EMPHASIS) if(syl->flags & SYL_EMPHASIS)
{ {
p->tone |= 8; // emphasized
p->stresslevel |= 8; // emphasized
} }
st_ix++; st_ix++;

+ 142
- 61
src/numbers.cpp View File

static int LookupNum2(Translator *tr, int value, int control, char *ph_out) static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{//======================================================================== {//========================================================================
// Lookup a 2 digit number // Lookup a 2 digit number
// control bit 0: use special form of '1'
// control bit 0: tens and units (use special form of '1')
// control bit 1: ordinal number
// control bit 2: use feminine form of '2' // control bit 2: use feminine form of '2'
// control bit 3: speak zero tens


int found; int found;
int ix; int ix;
int units; int units;
int used_and=0; int used_and=0;
int found_ordinal = 0;
int next_phtype; int next_phtype;
char string[12]; // for looking up entries in de_list
char string[12]; // for looking up entries in *_list
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];


if((value == 1) && (control & 1))
{
if(Lookup(tr, "_1a", ph_out) != 0)
return(0);
}
// is there a special pronunciation for this 2-digit number // is there a special pronunciation for this 2-digit number
found = 0; found = 0;

if(control & 4) if(control & 4)
{ {
sprintf(string,"_%df",value); sprintf(string,"_%df",value);
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }
if(control & 2)
{
sprintf(string,"_%do",value);
if((found = Lookup(tr, string, ph_digits)) != 0)
{
found_ordinal = 1;
}
}

if(found == 0) if(found == 0)
{ {
if((value == 1) && (control & 1))
{
if(Lookup(tr, "_1a", ph_out) != 0)
return(0);
}
sprintf(string,"_%d",value); sprintf(string,"_%d",value);
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }


// no, speak as tens+units // no, speak as tens+units
if((control & 2) && (value < 10))

if((control & 8) && (value < 10))
{ {
// speak leading zero // speak leading zero
Lookup(tr, "_0", ph_tens); Lookup(tr, "_0", ph_tens);
{ {
if(found) if(found)
{ {
strcpy(ph_out,ph_digits);
return(0);
ph_tens[0] = 0;
} }

if((value % 10) == 0)
{
sprintf(string,"_%d0",value / 10);
found = Lookup(tr, string, ph_tens);
}
if(!found)
else
{ {
sprintf(string,"_%dX",value / 10);
Lookup(tr, string, ph_tens);
}
units = (value % 10);


if((value % 10) == 0)
{
strcpy(ph_out,ph_tens);
return(0);
}
if((control & 2) && ((units == 0) || (tr->langopts.numbers & 0x10)))
{
sprintf(string,"_%dXo",value / 10);
if(Lookup(tr, string, ph_tens) != 0)
{
found_ordinal = 1;
}
}
if(found_ordinal == 0)
{
sprintf(string,"_%dX",value / 10);
Lookup(tr, string, ph_tens);
}


found = 0;
units = (value % 10);
if(control & 4)
{
// is there a variant form of this number?
sprintf(string,"_%df",units);
found = Lookup(tr, string, ph_digits);
}
if(found == 0)
{
sprintf(string,"_%d",units);
Lookup(tr, string, ph_digits);
ph_digits[0] = 0;
if(units > 0)
{
found = 0;
if(control & 4)
{
// is there a variant form of this number?
sprintf(string,"_%df",units);
found = Lookup(tr, string, ph_digits);
}
if((control & 2) && ((tr->langopts.numbers & 0x10) == 0))
{
// ordinal
sprintf(string,"_%do",units);
if((found = Lookup(tr, string, ph_digits)) != 0)
{
found_ordinal = 1;
}
}
if(found == 0)
{
sprintf(string,"_%d",units);
Lookup(tr, string, ph_digits);
}
}
} }
} }


if(tr->langopts.numbers & 0x30)
ph_ordinal[0] = 0;
if((control & 2) && (found_ordinal == 0))
{
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10)))
Lookup(tr, "_ord20", ph_ordinal);
if(ph_ordinal[0] == 0)
Lookup(tr, "_ord", ph_ordinal);
}

if((tr->langopts.numbers & 0x30) && (ph_tens[0] != 0) && (ph_digits[0] != 0))
{ {
Lookup(tr, "_0and", ph_and); Lookup(tr, "_0and", ph_and);
if(tr->langopts.numbers & 0x10) if(tr->langopts.numbers & 0x10)
sprintf(ph_out,"%s%s%s",ph_digits,ph_and,ph_tens);
sprintf(ph_out,"%s%s%s%s",ph_digits, ph_and, ph_tens, ph_ordinal);
else else
sprintf(ph_out,"%s%s%s",ph_tens,ph_and,ph_digits);
sprintf(ph_out,"%s%s%s%s",ph_tens, ph_and, ph_digits, ph_ordinal);
used_and = 1; used_and = 1;
} }
else else
ph_tens[ix] = 0; ph_tens[ix] = 0;
} }
} }
sprintf(ph_out,"%s%s",ph_tens,ph_digits);
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal);
} }


if(tr->langopts.numbers & 0x100) if(tr->langopts.numbers & 0x100)
} // end of LookupNum2 } // end of LookupNum2




static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands)
{//====================================================================================================================
static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null, int thousandplex, int control)
{//=============================================================================================================
// Translate a 3 digit number // Translate a 3 digit number
// control bit 0, previous thousands
// bit 1, ordinal number
int found; int found;
int hundreds; int hundreds;
int x; int x;
ph_thousands[0] = 0; ph_thousands[0] = 0;
ph_thousand_and[0] = 0; ph_thousand_and[0] = 0;


Lookup(tr, "_0C", ph_100);
found = 0;
if((control & 2) && ((value % 100) == 0))
{
// ordinal number, with no tens or units
found = Lookup(tr, "_0Co", ph_100);
}
if(found == 0)
{
Lookup(tr, "_0C", ph_100);
}


if(((tr->langopts.numbers & 0x0800) != 0) && (hundreds == 19)) if(((tr->langopts.numbers & 0x0800) != 0) && (hundreds == 19))
{ {
ph_digits[0] = 0; ph_digits[0] = 0;
if(hundreds > 0) if(hundreds > 0)
{ {
if((tr->langopts.numbers & 0x100000) && (prev_thousands || (ph_thousands[0] != 0)))
if((tr->langopts.numbers & 0x100000) && ((control & 1) || (ph_thousands[0] != 0)))
{ {
Lookup(tr, "_0and", ph_thousand_and); Lookup(tr, "_0and", ph_thousand_and);
} }
ph_hundred_and[0] = 0; ph_hundred_and[0] = 0;
if((tr->langopts.numbers & 0x40) && ((value % 100) != 0)) if((tr->langopts.numbers & 0x40) && ((value % 100) != 0))
{ {
if((value > 100) || (prev_thousands && (thousandplex==0)))
if((value > 100) || ((control & 1) && (thousandplex==0)))
{ {
Lookup(tr, "_0and", ph_hundred_and); Lookup(tr, "_0and", ph_hundred_and);
} }
buf2[0] = 0; buf2[0] = 0;
value = value % 100; value = value % 100;


if(value == 0)
{
if(suppress_null == 0)
Lookup(tr, "_0", buf2);
}
else
if((value != 0) || (suppress_null == 0))
{ {
x = 0; x = 0;
if(thousandplex==0) if(thousandplex==0)
{
x = 1; // allow "eins" for 1 rather than "ein" x = 1; // allow "eins" for 1 rather than "ein"
if(control & 2)
x = 3; // ordinal number
}
else else
{ {
if(tr->langopts.numbers2 & (1 << thousandplex)) if(tr->langopts.numbers2 & (1 << thousandplex))
} // 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)
{//==================================================================================================== {//====================================================================================================
int thousandplex = 0; int thousandplex = 0;
int thousands_inc = 0; int thousands_inc = 0;
int prev_thousands = 0; int prev_thousands = 0;
int ordinal = 0;
int this_value; int this_value;
static int prev_value; static int prev_value;
int decimal_count; int decimal_count;
int max_decimal_count; int max_decimal_count;
int decimal_mode;
int len;
const char *p;
const char **pp;
char string[12]; // for looking up entries in de_list char string[12]; // for looking up entries in de_list
char buf1[100]; char buf1[100];
char ph_append[50]; char ph_append[50];
n_digits = ix; n_digits = ix;
value = this_value = atoi(word); value = this_value = atoi(word);


if((tr->langopts.numbers & 0x10000) && (word[ix] == '.'))
{
// ordinal number
ordinal = 2;
word[ix] = ' ';
}
else
if(tr->langopts.ordinals)
{
// ordinal numbers are recognized by letters after the number
ix++;
pp = ordinal_strings[tr->langopts.ordinals];
while((p = *pp++) != NULL)
{
len = strlen(p);
if((word[ix+len] == ' ') && (memcmp(&word[ix], p, len) == 0))
{
ordinal = 2;
memset(&word[ix], ' ', len);
break;
}
}
}

ph_append[0] = 0; ph_append[0] = 0;
ph_buf2[0] = 0; ph_buf2[0] = 0;


} }
} }


if((word[0] == '0') && (prev_thousands == 0) && (word[1] != tr->langopts.decimal_sep))
if((word[0] == '0') && (prev_thousands == 0) && (word[1] != ' ') && (word[1] != tr->langopts.decimal_sep))
{ {
if((n_digits == 2) && (word[3] == ':') && isdigit(word[5]) && isspace(word[7])) if((n_digits == 2) && (word[3] == ':') && isdigit(word[5]) && isspace(word[7]))
{ {
Lookup(tr, "_.", ph_append); Lookup(tr, "_.", ph_append);
} }


LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands);
LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal);
if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200))
sprintf(ph_out,"%s%s%s",ph_append,ph_buf2,ph_buf); // say "thousands" before its number sprintf(ph_out,"%s%s%s",ph_append,ph_buf2,ph_buf); // say "thousands" before its number
else else
if(decimal_count > 1) if(decimal_count > 1)
{ {
max_decimal_count = 2; max_decimal_count = 2;
switch(tr->langopts.numbers & 0xe000)
switch(decimal_mode = (tr->langopts.numbers & 0xe000))
{ {
case 0x8000: case 0x8000:
max_decimal_count = 5; max_decimal_count = 5;
break; break;


case 0x2000: case 0x2000:
case 0xa000:
// Italian decimal fractions // Italian decimal fractions
if((decimal_count < 4) || ((decimal_count==4) && (word[n_digits] != '0')))
if(decimal_count <= 4)
{ {
LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0);
strcat(ph_out,buf1);
if(word[n_digits]=='0')
LookupNum3(tr, atoi(&word[n_digits]), ph_buf, 0,0,0);
if((word[n_digits]=='0') || (decimal_mode == 0xa000))
{ {
// decimal part has leading zeros, so add a "hundredths" or "thousandths" suffix // decimal part has leading zeros, so add a "hundredths" or "thousandths" suffix
sprintf(string,"_0Z%d",decimal_count); sprintf(string,"_0Z%d",decimal_count);
Lookup(tr, string, buf1);
strcat(ph_out,buf1);
if(Lookup(tr, string, buf1) == 0)
break; // revert to speaking single digits

strcat(ph_buf,buf1);
} }
strcat(ph_out,ph_buf);
n_digits += decimal_count; n_digits += decimal_count;
} }
break; break;

+ 1
- 1
src/phonemelist.cpp View File

phlist[ix].type = ph->type; phlist[ix].type = ph->type;
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module
phlist[ix].synthflags = plist2->synthflags | switched_language; phlist[ix].synthflags = plist2->synthflags | switched_language;
phlist[ix].tone = plist2->stress & 0xf;
phlist[ix].stresslevel = plist2->stress & 0xf;
phlist[ix].tone_ph = plist2->tone_number; phlist[ix].tone_ph = plist2->tone_number;
phlist[ix].sourceix = 0; phlist[ix].sourceix = 0;



+ 2
- 2
src/prosodydisplay.cpp View File

if((p == NULL) || (p->ph == NULL)) return; if((p == NULL) || (p->ph == NULL)) return;


emphasized = ""; emphasized = "";
if(p->tone & 8)
if(p->stresslevel & 8)
emphasized = "*"; emphasized = "*";


sprintf(buf,"Stress %s%d Amp %2d LenMod %2d Pitch %3d %3d [env=%d] Flags %.2x ", sprintf(buf,"Stress %s%d Amp %2d LenMod %2d Pitch %3d %3d [env=%d] Flags %.2x ",
emphasized,p->tone&0x7,p->amp,p->length,p->pitch1,p->pitch2,p->env,p->ph->phflags);
emphasized,p->stresslevel&0x7,p->amp,p->length,p->pitch1,p->pitch2,p->env,p->ph->phflags);
wxLogStatus(wxString(buf,wxConvLocal)); wxLogStatus(wxString(buf,wxConvLocal));
} }



+ 6
- 4
src/readclause.cpp View File



if(c1 == '-') if(c1 == '-')
return(CLAUSE_NONE); // no pause return(CLAUSE_NONE); // no pause
if(bufix > 0)
return(CLAUSE_SHORTCOMMA);
if((strchr_w(punct_close,c1) != NULL) && !iswalnum(c2)) if((strchr_w(punct_close,c1) != NULL) && !iswalnum(c2))
return(CLAUSE_COLON);
return(CLAUSE_SHORTFALL+4);
if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL)
return(punct_attributes[lookupwchar(punct_chars,c1)]); return(punct_attributes[lookupwchar(punct_chars,c1)]);
} }
} }
else else
if((c1 == '<') && (ssml_ignore_l_angle != '<'))
if((c1 == '<') && (ssml_ignore_l_angle != '<') && ((c2 == '/') || iswalpha(c2)))
{ {
// SSML Tag // SSML Tag
n_xml_buf = 0; n_xml_buf = 0;
if((nl_count==0) && (c1 == '.')) if((nl_count==0) && (c1 == '.'))
{ {
if(iswdigit(cprev) && (tr->langopts.numbers & 0x10000))
if(iswdigit(cprev) && (tr->langopts.numbers & 0x10000) && islower(c2))
{ {
// dot after a number indicates an ordinal number // dot after a number indicates an ordinal number
c2 = ' ';
c2 = '.';
continue; continue;
} }
if(iswlower(c2)) if(iswlower(c2))

+ 2
- 2
src/setlengths.cpp View File

{ {
prev = &phoneme_list[ix-1]; prev = &phoneme_list[ix-1];
p = &phoneme_list[ix]; p = &phoneme_list[ix];
stress = p->tone & 0x7;
emphasized = p->tone & 0x8;
stress = p->stresslevel & 0x7;
emphasized = p->stresslevel & 0x8;


next = &phoneme_list[ix+1]; next = &phoneme_list[ix+1];



+ 1
- 0
src/speak.cpp View File

break; break;


case 0x104: // --voices case 0x104: // --voices
init_path(argv[0],data_path);
DisplayVoices(stdout,optarg2); DisplayVoices(stdout,optarg2);
exit(0); exit(0);



+ 2
- 2
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.40 22.Dec.08";
const char *version_string = "1.40.07 13.Jan.09";
const int version_phdata = 0x014000; const int version_phdata = 0x014000;


int option_device_number = -1; int option_device_number = -1;
PHONEME_TAB *phoneme_tab[N_PHONEME_TAB]; PHONEME_TAB *phoneme_tab[N_PHONEME_TAB];
unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited


unsigned int *phoneme_index=NULL;
static unsigned int *phoneme_index=NULL;
char *spects_data=NULL; char *spects_data=NULL;
unsigned char *wavefile_data=NULL; unsigned char *wavefile_data=NULL;
static unsigned char *phoneme_tab_data = NULL; static unsigned char *phoneme_tab_data = NULL;

+ 1
- 1
src/synthesize.cpp View File



case phVOWEL: case phVOWEL:
ph = p->ph; ph = p->ph;
stress = p->tone & 0xf;
stress = p->stresslevel & 0xf;


// vowel transition from the preceding phoneme // vowel transition from the preceding phoneme
vowel_transition0 = vowel_transition[0]; vowel_transition0 = vowel_transition[0];

+ 1
- 1
src/synthesize.h View File

typedef struct { typedef struct {
PHONEME_TAB *ph; PHONEME_TAB *ph;
unsigned char env; // pitch envelope number unsigned char env; // pitch envelope number
unsigned char tone;
unsigned char stresslevel;
unsigned char type; unsigned char type;
unsigned char prepause; unsigned char prepause;
unsigned char amp; unsigned char amp;

+ 4
- 1
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;
tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.param[LOPT_IT_DOUBLING] = 1;
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word


tr->langopts.numbers = 0x1009 + NUM_ROMAN;
tr->langopts.numbers = 0x1009 + 0xa000 + NUM_ROMAN + 0x10000;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
tr->langopts.spelling_stress = 1; tr->langopts.spelling_stress = 1;
SetLengthMods(tr,3); // all equal SetLengthMods(tr,3); // all equal
break; break;


default: default:
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
break; break;
} }



+ 19
- 5
src/translate.cpp View File



static int prev_clause_pause=0; static int prev_clause_pause=0;
static int max_clause_pause = 0; static int max_clause_pause = 0;
int pre_pause;




// these were previously in translator class // these were previously in translator class
found = LookupDictList(tr, &word1, phonemes, dictionary_flags, FLAG_ALLOW_TEXTMODE, wtab); // the original word found = LookupDictList(tr, &word1, phonemes, dictionary_flags, FLAG_ALLOW_TEXTMODE, wtab); // the original word
if(dictionary_flags[0] & FLAG_TEXTMODE) if(dictionary_flags[0] & FLAG_TEXTMODE)
{ {
first_char = word1[0];
stress_bits = dictionary_flags[0] & 0x7f; stress_bits = dictionary_flags[0] & 0x7f;
found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement
if(dictionary_flags2[0]!=0) if(dictionary_flags2[0]!=0)
if(dictionary_flags[1] & FLAG_NOUNF) if(dictionary_flags[1] & FLAG_NOUNF)
{ {
/* not expecting a verb next */ /* not expecting a verb next */
tr->expect_noun = 3;
tr->expect_noun = 2;
tr->expect_verb = 0; tr->expect_verb = 0;
tr->expect_verb_s = 0; tr->expect_verb_s = 0;
tr->expect_past = 0; tr->expect_past = 0;
int next_in; int next_in;
int char_inserted=0; int char_inserted=0;
int clause_pause; int clause_pause;
int pre_pause=0;
int pre_pause_add=0; int pre_pause_add=0;
int word_mark = 0; int word_mark = 0;
int all_upper_case=FLAG_ALL_UPPER; int all_upper_case=FLAG_ALL_UPPER;
int tone; int tone;
int tone2; int tone2;



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


embedded_ix = 0; embedded_ix = 0;
embedded_read = 0; embedded_read = 0;
option_phoneme_input &= ~2; // clear bit 1 (temporary indication) option_phoneme_input &= ~2; // clear bit 1 (temporary indication)
pre_pause = 0;


if((clause_start_char = count_characters) < 0) if((clause_start_char = count_characters) < 0)
clause_start_char = 0; clause_start_char = 0;
} }
} }
else else
#ifdef deleted
// Brackets are now recognised in TranslateRules()
if(IsBracket(c)) if(IsBracket(c))
{ {
pre_pause_add = 4; pre_pause_add = 4;
c = ' '; c = ' ';
} }
else else
#endif
if(lookupwchar(breaks,c) != 0) if(lookupwchar(breaks,c) != 0)
{ {
c = ' '; // various characters to treat as space c = ' '; // various characters to treat as space
} }
} }
} }
pn[0] = ' ';
pn[1] = 0;
word = pw; word = pw;


// include the next few characters, in case there are an ordinal indicator
pn[0] = ' ';
memcpy(pn+1, pw, 5);
pn[5] = 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 ); TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 );
} }
else else
{ {
pre_pause = 0;
dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause); dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause);


if(pre_pause > words[ix+1].pre_pause)
{
words[ix+1].pre_pause = pre_pause;
pre_pause = 0;
}

if(dict_flags & FLAG_SPELLWORD) if(dict_flags & FLAG_SPELLWORD)
{ {
// redo the word, speaking single letters // redo the word, speaking single letters

+ 4
- 1
src/translate.h View File

#define CLAUSE_VOICE 0 + 0x24000 #define CLAUSE_VOICE 0 + 0x24000
#define CLAUSE_PERIOD 35 + 0x80000 #define CLAUSE_PERIOD 35 + 0x80000
#define CLAUSE_COMMA 20 + 0x41000 #define CLAUSE_COMMA 20 + 0x41000
#define CLAUSE_SHORTCOMMA 5 + 0x41000
#define CLAUSE_SHORTCOMMA 4 + 0x41000
#define CLAUSE_SHORTFALL 4 + 0x40000
#define CLAUSE_QUESTION 35 + 0x82000 #define CLAUSE_QUESTION 35 + 0x82000
#define CLAUSE_EXCLAMATION 40 + 0x83000 #define CLAUSE_EXCLAMATION 40 + 0x83000
#define CLAUSE_COLON 30 + 0x40000 #define CLAUSE_COLON 30 + 0x40000
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 int clause_start_char; extern int clause_start_char;
extern int clause_start_word; extern int clause_start_word;
extern char *namedata; extern char *namedata;
extern int pre_pause;







Loading…
Cancel
Save