Browse Source

[1.30.10]

Remove pause before <say-as> if it's at the beginning of a sentence.
Added --split=<minutes>  command-line option. Splits output WAV file (at sentence boundaries).
Fix: espeakEVENT_SENTENCE events were missing.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@121 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
38063c4eea

+ 6
- 2
dictsource/af_list View File

scholtz skO:lts scholtz skO:lts
schoor sko@r schoor sko@r
schutte skWt@ schutte skWt@
sebastian s@bastian
servaas s@rfA:s servaas s@rfA:s
shakespeare _^_EN shakespeare _^_EN
stephan ste@fan stephan ste@fan
primate $2 primate $2


rebelleer r@b@le@r rebelleer r@b@le@r
retireer r@t@re@:r
rededele re@d@de@l@
renaissance rEn@s'A~ns
retoriek r@tur'ik retoriek r@tur'ik
rimpeling rImp@l@N rimpeling rImp@l@N
rinkink $2 rinkink $2
roterende rut'e@r@nd@ roterende rut'e@r@nd@
rukkerig rWk@r@x2 rukkerig rWk@r@x2


salami sal'A:mi
salute sal'yt@ salute sal'yt@
samelewing sA:m@l,e@v@N samelewing sA:m@l,e@v@N
sanhedrin sanh'e@dr@n sanhedrin sanh'e@dr@n
sedertdien $3 sedertdien $3
sektore $2 sektore $2
sinagoge s@n@x2o@x2@ sinagoge s@n@x2o@x2@
senatore s@nat'o@r@
singenot sInx2@nOt singenot sInx2@nOt
skares skA:r@s skares skA:r@s
skepsele skEps@l@ skepsele skEps@l@
skuldelas skWld@las
s'n s@n $u s'n s@n $u
spaghetti sp%agEt%i spaghetti sp%agEt%i
sobere s'o@b@r@ sobere s'o@b@r@
sononder sOn_On@r sononder sOn_On@r
sonop sOn_Op sonop sOn_Op
sover so@f&r sover so@f&r
spesmaas $2
stabiel stab'il stabiel stab'il
staccato $2 staccato $2



+ 94
- 30
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
_) as (ke %as // move default stress: askeet/askete/asketies/askese _) as (ke %as // move default stress: askeet/askete/asketies/askese
a (spersie %a // move default stress: aspersie and compounds a (spersie %a // move default stress: aspersie and compounds
assist %as@st // assistent/e/assisteer assist %as@st // assistent/e/assisteer
assiste (_ %as'Ist@ // rassiste stress and last e sound
r) assis (K %asIs // rassis/-te/-ties/-me
atel (jee %at@L // fix vowel sounds and stress: ateljee and compounds atel (jee %at@L // fix vowel sounds and stress: ateljee and compounds
C) athe (rina %at@ // Catherina/Katherina C) athe (rina %at@ // Catherina/Katherina
at (lant %at // move default stress: Atlanties/-e/Atlantis at (lant %at // move default stress: Atlanties/-e/Atlantis
bek (m b&k // fix e sound: geelbekmalmot/langbekmaande/skeerbekmuis bek (m b&k // fix e sound: geelbekmalmot/langbekmaande/skeerbekmuis
bekk (+ b&k // exception to be (C%+ bE bekk (+ b&k // exception to be (C%+ bE
bek (_ b&k // exception to be (C%+ bE bek (_ b&k // exception to be (C%+ bE
bek (h b&k // e sound: compounds of bek fld. by h: haasbekhond/skewebekhuisies
beken b@kEn // 2nd e sound: oorbekend/welbekende beken b@kEn // 2nd e sound: oorbekend/welbekende
@) beker (_ be@k@r // compounds ending with -beker @) beker (_ be@k@r // compounds ending with -beker
r) be (lK b&l // fix e sound: deurbel/oorbel r) be (lK b&l // fix e sound: deurbel/oorbel
@) cel (_ _^_EN // words ending in cel is English @) cel (_ _^_EN // words ending in cel is English
@) cle (_ _^_EN // words ending in cle is English @) cle (_ _^_EN // words ending in cle is English
cliché kl%iSe@ // cliché/-s cliché kl%iSe@ // cliché/-s
chirurg S@r'Wrx2
chirurg S@rWrx2
chirurg (ie_N S@r%Wrx2 // stress to end: chirurgie chirurg (ie_N S@r%Wrx2 // stress to end: chirurgie
_) ci (prA si // fix i sound: Ciprus/Ciprioties/-e _) ci (prA si // fix i sound: Ciprus/Ciprioties/-e
coke k@Uk // coke/cokebottel/cokeblikkie and similar coke k@Uk // coke/cokebottel/cokeblikkie and similar
naald) e (C @ // fix e sound: naaldekoker/-kussing/-werk, etc. naald) e (C @ // fix e sound: naaldekoker/-kussing/-werk, etc.
noord) e (C @ // fix e sound: noordewind and compounds noord) e (C @ // fix e sound: noordewind and compounds
olw) e (C @ // fix e sound: golweslag/wolwedans olw) e (C @ // fix e sound: golweslag/wolwedans
ros) e (CA @ // fix e sound: rosegeur/roseweg
speld) e (C @ // fix e sound: speldekop/-kussing/-punt, etc.
spok) e (C @ // fix e sound: compounds beginning with spoke: spokebeeld/-lywe/-dans
blak) e (r @ // fix e sound: blakerend/-e/blakering blak) e (r @ // fix e sound: blakerend/-e/blakering
skilf) e (r @ // fix e sound: skilferagtig/skilferdeeg/-kors/afgeskilferde/verskilfering skilf) e (r @ // fix e sound: skilferagtig/skilferdeeg/-kors/afgeskilferde/verskilfering
syf) e (r @ // fix e sound: (be-/in-/ont-/uitsyfering syf) e (r @ // fix e sound: (be-/in-/ont-/uitsyfering
@C) erf (_ &rf // fix e sound: bokerf and similar
@C) erwe (_ &rv@ // fix e sound: plurals: randerwe and similar
CAC) e (rkK & // fix e sound: deurgewerk; exception to: CAC) e (CC CAC) e (rkK & // fix e sound: deurgewerk; exception to: CAC) e (CC
CAp) e (rkC @ // fix e sound: hiperkrities/koperkleurig/koperknope CAp) e (rkC @ // fix e sound: hiperkrities/koperkleurig/koperknope
CAw) e (rkA & // buitewerker/bywerking/genadewerking/grondbewerking/klerewerker/nawerking... CAw) e (rkA & // buitewerker/bywerking/genadewerking/grondbewerking/klerewerker/nawerking...
yw) e (rA @ // fix e sound: beywering/skryweragtig
_) e (rosie %e@ // move default stress: erosie and compounds _) e (rosie %e@ // move default stress: erosie and compounds
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
@mp) e (lC@ @ // fix e sound: dompeldoop/-koker/-verwarmer/drumpeltrapper/pampelmoes/rimpelpapier... @mp) e (lC@ @ // fix e sound: dompeldoop/-koker/-verwarmer/drumpeltrapper/pampelmoes/rimpelpapier...
@k) e (lde_ @ // fix e sound: gekronkelde/(ge/ver)kreukelde @k) e (lde_ @ // fix e sound: gekronkelde/(ge/ver)kreukelde
mp) e (lde_ @ // fix e sound: gemompelde/oorrompelde/verskrompelde and similar mp) e (lde_ @ // fix e sound: gemompelde/oorrompelde/verskrompelde and similar
Ap) e (ling @ // fix e sound: skepeling/compounds of sypeling
@C) e (lk_ & // fix e sound: many compounds ending in kelk/melk @C) e (lk_ & // fix e sound: many compounds ending in kelk/melk
@C) e (lke_ & // fix e sound: many compounds ending in -elke: blomkelke, etc. @C) e (lke_ & // fix e sound: many compounds ending in -elke: blomkelke, etc.
uiC) e (K @ // fix e sound in wrds like: bruidegom/druipeling/duinebesie/duisendpoot/kruisement... uiC) e (K @ // fix e sound in wrds like: bruidegom/druipeling/duinebesie/duisendpoot/kruisement...
ks) eer 'e@r // annekseer/indekseer/lakseer/takseer and their compounds ks) eer 'e@r // annekseer/indekseer/lakseer/takseer and their compounds
ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc.
Cv) eer e@r // stress: (hoender/volstruisveer/dryfveer Cv) eer e@r // stress: (hoender/volstruisveer/dryfveer
ouv) eer e@r // restore default stress: pouveer/makouveer
AAv) eer e@r // restore default stress: pouveer/makouveer/horlosieveer/kraaiveer/rooiveer
w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer
u) eer 'e@r // aktueer/konstrueer/salueer, etc. u) eer 'e@r // aktueer/konstrueer/salueer, etc.
effek %e@fEk // move default stress and fix e sound: effek/-te/-tief effek %e@fEk // move default stress and fix e sound: effek/-te/-tief
e (r & e (r &
Ank) e (r@ @ // ankerpaal/kankerlyer/donkerbril Ank) e (r@ @ // ankerpaal/kankerlyer/donkerbril
rp) e (rCC @ // fix e sound: ontwerpersbaadjie/purperkleurig, etc. rp) e (rCC @ // fix e sound: ontwerpersbaadjie/purperkleurig, etc.
_rasp) e (rC@ @ // fix e sound in rasper- compounds: raspertong/-vyl, etc.


lew) e (ns @ lew) e (ns @
&d) e (r@ @ // not initial or final syllable &d) e (r@ @ // not initial or final syllable
essen (si %isEn // fix e sounds: essensie/essensieel/essensiële essen (si %isEn // fix e sounds: essensie/essensieel/essensiële
komp) e (t@ @ // kompetisie/s/uitklopkompetisie/inkompetensie komp) e (t@ @ // kompetisie/s/uitklopkompetisie/inkompetensie
een (drag@ %e@n // eendrag has stress on 1st slb, but eendragtig and similar on 2nd een (drag@ %e@n // eendrag has stress on 1st slb, but eendragtig and similar on 2nd
eenge 'e@nx2@
een (malig %e@n // move default stress: eenmalig/-e/-heid een (malig %e@n // move default stress: eenmalig/-e/-heid
een (parig %e@n // move default stress: eenparig/-e/-heid een (parig %e@n // move default stress: eenparig/-e/-heid
_) een (stemm %e@n // move default stress: eenstemmig/-e/-heid _) een (stemm %e@n // move default stress: eenstemmig/-e/-heid
_) este (t %Este@ // fix stress and vowel sounds: esteties/-e/estetika _) este (t %Este@ // fix stress and vowel sounds: esteties/-e/estetika
hip) e (r @ hip) e (r @
_) er (b &r' // erbarm/ing _) er (b &r' // erbarm/ing
_) er (k &r' // erkenbaar/erkenning
erke (n %&rkE // fix stress and e sounds: erken/-ning/(self)erkende
_) er (v &r' // ervaar/ervare/ervarings/ervaringe _) er (v &r' // ervaar/ervare/ervarings/ervaringe
&) ere (_ @r@ &) ere (_ @r@
@l) ere (_ e@r@ // fix e sound: staanlere/toonlere @l) ere (_ e@r@ // fix e sound: staanlere/toonlere
@) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaardig @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaardig
@C) ent (K 'Ent // orent/student/presidentsrede @C) ent (K 'Ent // orent/student/presidentsrede
en) ent (_ Ent // restore default stress: koppenent/voetenent en) ent (_ Ent // restore default stress: koppenent/voetenent
pr) ent (+ Ent // default stress for compounds of prent
@s) ent (rA Ent // winkelsentrum/studentesentrum, etc. @s) ent (rA Ent // winkelsentrum/studentesentrum, etc.
@C) ent (e_ 'Ent // plurals of some of the above @C) ent (e_ 'Ent // plurals of some of the above
C) er (tyd @r // tegelykertyd/kindertyd/indertyd C) er (tyd @r // tegelykertyd/kindertyd/indertyd
A) goog (_ x2'o@x2 // demagoog/pedagoog A) goog (_ x2'o@x2 // demagoog/pedagoog
gor (dyn x2%Or // move default stress: gordyn and compounds gor (dyn x2%Or // move default stress: gordyn and compounds
A) goë x2'u@ // demagoë/pedagoë A) goë x2'u@ // demagoë/pedagoë
grade (ring x2r%ade@ // fix stress and vowel sounds: gradering and many compounds
gra (fiek x2r%a // fix stress and a sound: grafiek/-e /lyngrafiek, etc. gra (fiek x2r%a // fix stress and a sound: grafiek/-e /lyngrafiek, etc.
gra (fiet x2r%a // fix stress and a sound: grafiet and compounds gra (fiet x2r%a // fix stress and a sound: grafiet and compounds
grama (doe x2r%am%a // move default stress: gramadoela/-s and compounds grama (doe x2r%am%a // move default stress: gramadoela/-s and compounds
hart (stogte_ h%art // move default stress: hartstogtelik hart (stogte_ h%art // move default stress: hartstogtelik
hart (stogte_N hart // restore default stress: hartstogte hart (stogte_N hart // restore default stress: hartstogte
he (bre h%i // fix stress and 1st e sound: Hebreër/-s he (bre h%i // fix stress and 1st e sound: Hebreër/-s
heen (gaan he@n // split -n/g-: heengaan/-refrein
heeren (grac he@r@n // fix eng sounds: Heerengracht/-straat heeren (grac he@r@n // fix eng sounds: Heerengracht/-straat
heerser he@rs@r // fix e sound in compounds: heersers(drang/geslag/klas/mag/ras/volk) heerser he@rs@r // fix e sound in compounds: heersers(drang/geslag/klas/mag/ras/volk)
heet (hoofdi h%e@t // move default stress: heethoofdig/-e/-heid heet (hoofdi h%e@t // move default stress: heethoofdig/-e/-heid
h) i (dro i //hidro in compounds h) i (dro i //hidro in compounds
_) i (ko %i // move default stress: ikoon/ikone _) i (ko %i // move default stress: ikoon/ikone
_) in (aCemP2 'In_ //inasem/inademing, etc. _) in (aCemP2 'In_ //inasem/inademing, etc.
self) in (C@ _@n // selfingenome/-nheid/selfinkeer, etc.
_) in (a@P2 In // inakkuraat/inaktief/inaktiwiteit _) in (a@P2 In // inakkuraat/inaktief/inaktiwiteit
_) iese (C ,is@ // iesegrimmig and derivitives _) iese (C ,is@ // iesegrimmig and derivitives
ieterma (g %it@rm%a // fix stress and a sound: ietermagô ieterma (g %it@rm%a // fix stress and a sound: ietermagô
klein (sieli kl%eIn // move default stress: kleinsielig/-e/-heid klein (sieli kl%eIn // move default stress: kleinsielig/-e/-heid
_) kamele kam'e@l@ // kamele teenoor skamele _) kamele kam'e@l@ // kamele teenoor skamele
karakter kar'akt@r karakter kar'akt@r
_er) ken kEn // E sound in erkEn
ken (merken k%En ken (merken k%En
@) keurig k'Y@r@x2 // kieskeurig/noukeurig/(on)willekeurig and derivitives @) keurig k'Y@r@x2 // kieskeurig/noukeurig/(on)willekeurig and derivitives
_) ki (ta k%i // move default stress: kitaar and compounds _) ki (ta k%i // move default stress: kitaar and compounds
klou (sule kl%@U // move default stress: klousule/-s klou (sule kl%@U // move default stress: klousule/-s
kklere =kl'e@r@ kklere =kl'e@r@
knip (A knIp? // knipogie/geknipoog/ knip (A knIp? // knipogie/geknipoog/
_) krag (A kr''ax2_ // kragaanleg/-eenheid/-installasie/-onderbreking/-opwekker
kra (gie krA: // but: kragie/-s
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
kabeljou kab@lj'@U //kabeljou and compounds kabeljou kab@lj'@U //kabeljou and compounds


kabinet k%ab%inEt // kabinet/drankkabinet/kabinetsvergadering kabinet k%ab%inEt // kabinet/drankkabinet/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
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
konso (nant k%Ons%u // fix stress and 2nd o sound: konsonant/-e and compounds
konstabel k%OnstA:b@l // (hof/hoof/verkeers)konstabel/-s, etc. konstabel k%OnstA:b@l // (hof/hoof/verkeers)konstabel/-s, etc.
konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr
kon (sul kOn // restore default stress: konsul and compounds kon (sul kOn // restore default stress: konsul and compounds
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
mentjie m'EiNci // monumentjie/dokumentjies mentjie m'EiNci // monumentjie/dokumentjies
me (riete m@ // move default stress: meriete and compounds
merino m@rin%u // fix stress and vowel sounds: merino/-skaap/-ram, etc. merino m@rin%u // fix stress and vowel sounds: merino/-skaap/-ram, etc.
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
n (q N n (q N
n (x N n (x N
ng N ng N
ee) n (g n // split -ng-: beengewas/druipsteengrot/gemeengoed/leengeld/steengroewe/teengif...
ei) n (g n // breingrootte/kleingeld/kleingoed ei) n (g n // breingrootte/kleingeld/kleingoed
eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend
oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar
Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond
y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens
ë) n (g n // split -ng-: reëngeluid/-geur/-gogga/-gordel/seëngebed
&) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e &) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e
ng (eer Nx2 // diftongeer/gedistingeerde/rangeer and compounds ng (eer Nx2 // diftongeer/gedistingeerde/rangeer and compounds
n (_g N n (_g N
on (tugtig %On // fix stress and avoid ont prefix: ontugtig/-e/-heid on (tugtig %On // fix stress and avoid ont prefix: ontugtig/-e/-heid
on (tug On // stress on 1st slb and avoid ont prefix: ontug/-pleger... on (tug On // stress on 1st slb and avoid ont prefix: ontug/-pleger...
on (twyfel %On // "ont" not prefix: ontwyfelbaar/-bare/-baarheid on (twyfel %On // "ont" not prefix: ontwyfelbaar/-bare/-baarheid
on (tyd %On // ontydig and derivitives
_) on (tyd %On // ontydig and derivitives
_) onuit (@P5 On_Yyt // fix stress: onuitblusbaar/onuithou(d)baar/onuitputlik/onuitroeibaar/onuitspreekbaar _) onuit (@P5 On_Yyt // fix stress: onuitblusbaar/onuithou(d)baar/onuitputlik/onuitroeibaar/onuitspreekbaar
_) on (uitge@++P2 On_ // fix stress: onuitgedoof/onuitgegee/onuitgekeer/onuitgeloot/onuitgemaak... _) on (uitge@++P2 On_ // fix stress: onuitgedoof/onuitgegee/onuitgekeer/onuitgeloot/onuitgemaak...
_) on (wAs 'On // onwis/onwys _) on (wAs 'On // onwis/onwys
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
pa (tat p@ // patat/warmpatat/wurgpatat pa (tat p@ // patat/warmpatat/wurgpatat
patie (K 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
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 (C@ p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
pars (C pars // restore default stress: parsbalie/-kuip/-tyd, 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
proto (C pro@tu // protokol/prototipe proto (C pro@tu // protokol/prototipe
provi (and pr%o@v%i // fix stress and v sound: proviand/-meester, etc. provi (and pr%o@v%i // fix stress and v sound: proviand/-meester, etc.
ps (igA s // psigologie/kinderpsigoloog ps (igA s // psigologie/kinderpsigoloog
psalm p@sal@m // schwa between p and s
_) psalm p@sal@m // schwa between p and s
psalmis p@s%al@mIs // move default stress: psalmis/-te psalmis p@s%al@mIs // move default stress: psalmis/-te


pub (li p%Wb pub (li p%Wb
puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivitives puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivitives
pu (pil p%y // move default stress: pupil/-le and compounds pu (pil p%y // move default stress: pupil/-le and compounds
puri (tein p%yr@ // fix stress and i sound: puritein/-e/-se




.group q .group q
radio r'A:di;u:- radio r'A:di;u:-
raffinade (r r%af%in%ad@ // fix stress and 2nd a sound: raffinadery/-e and compounds raffinade (r r%af%in%ad@ // fix stress and 2nd a sound: raffinadery/-e and compounds
rake (t rak'E // raket/te/tennisraket rake (t rak'E // raket/te/tennisraket
ram (pokker r%am // move default stress: rampokker/-s/-ig
ramp (salig r%amp // move default stress ramp (salig r%amp // move default stress
ramp (spoed@ r%amp // move default stress: rampspoedig and derivitives ramp (spoed@ r%amp // move default stress: rampspoedig and derivitives
_) rand (A@ rant_ // fix d sound and insert pause: randafwerking/-akker/-eier
ra (nonkel r@ // fix stress and a sound: ranonkel/-s/ranonkelrooi, etc. ra (nonkel r@ // fix stress and a sound: ranonkel/-s/ranonkelrooi, etc.
ra (ntsoen r%a // move default stress: rantsoen and compounds ra (ntsoen r%a // move default stress: rantsoen and compounds
ra (pier r%a // move default stress: rapier/-e and compounds
_) ra (pport r%a // fix stress: rapport/skoolrapport/rapportryer _) ra (pport r%a // fix stress: rapport/skoolrapport/rapportryer
rasse ras@ // e sound of compounds starting with rasse rasse ras@ // e sound of compounds starting with rasse
ribbe (tj r'Ibi ribbe (tj r'Ibi
riete rit@ // fix e sound: merietelys/rietedak, etc.
rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der
_) ri (o r%i // move default stress: riool and compounds/riolering _) ri (o r%i // move default stress: riool and compounds/riolering
ris (kant r@s // move default stress: riskant/-e
ritme rItm@ // fix e sound in ritmes/ritmespeler ritme rItm@ // fix e sound in ritmes/ritmespeler
ritu (A r@t%y // ritueel/rituele/ritualisties ritu (A r@t%y // ritueel/rituele/ritualisties
roersel rurs@l // fix stress and e sound: roersele and compounds of roersel
_) rol (A rOl? // oprolaksie/roloorvleueling _) rol (A rOl? // oprolaksie/roloorvleueling
roetine r%utin@ // stress: roetine/-basis/-besoek/-kontrole... roetine r%utin@ // stress: roetine/-basis/-besoek/-kontrole...
ro (ja r%u // fix stress and o sound: rojaal/rojale
_) roode r'o@d@ //roodepoort and other names _) roode r'o@d@ //roodepoort and other names


roman r%uman roman r%uman
ron (dawel r%On // move default stress: rondawel/-s/-tjie ron (dawel r%On // move default stress: rondawel/-s/-tjie
rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry
rondom rOnt_%Om // rondom/rondomheen/rondomstaner rondom rOnt_%Om // rondom/rondomheen/rondomstaner
rolprent rOlprEnt // rolprent/rolprentvertoning and other compounds
rondom (tali r%Ont%Om // fix stress and d sound: rondomtalie/-s/rondomtaliemeul, etc.
roulette r%ulEt // fix stress and vowel sounds: roulette/-speler/-tafel roulette r%ulEt // fix stress and vowel sounds: roulette/-speler/-tafel
ru (briek r%W // move default stress: rubriek/-skrywer, etc. ru (briek r%W // move default stress: rubriek/-skrywer, etc.
rugby rWgbi rugby rWgbi
_) rede (C re@d@ // redevoerder/redekawel and similar _) rede (C re@d@ // redevoerder/redekawel and similar
redeneer r@d@n'e@r // redeneer/geredeneer/beredeneer/beredeneerde redeneer r@d@n'e@r // redeneer/geredeneer/beredeneer/beredeneerde
reden (ACA r@d@n' // redenasie/s reden (ACA r@d@n' // redenasie/s
rede (ry r%e@d@ // move default stress: redery/-e and compounds
_) redi (gA r%Ed%i // redigeer/geredigeer/-de/ongeredigeerde _) redi (gA r%Ed%i // redigeer/geredigeer/-de/ongeredigeerde
refor (m r@f%Or // gereformeerde/reformering/reformasie refor (m r@f%Or // gereformeerde/reformering/reformasie
re (frein r@ // move default stress: refrein/-e re (frein r@ // move default stress: refrein/-e
C) re (gat r@ // fix e sound: fregat/-te and compounds/harregat C) re (gat r@ // fix e sound: fregat/-te and compounds/harregat
regime (_ r@Zi:m // regime/-s and compounds regime (_ r@Zi:m // regime/-s and compounds
regi (ment r@x2@ // fix stress and e and i sounds: regement/-e and compounds
reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister
regle (ment r@x2l@ // fix stress and e sounds: reglement/-e and compounds
regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list
reklame r@klA:m@ // fix stress and e sounds: reklame and many compounds reklame r@klA:m@ // fix stress and e sounds: reklame and many compounds
re (kru r@ // move stress from 1st slb re (kru r@ // move stress from 1st slb
_) re (la r@ // relaas/relase/relasie and compounds _) re (la r@ // relaas/relase/relasie and compounds
rele (van r@l@ // relevansie/relevant and derivitives rele (van r@l@ // relevansie/relevant and derivitives
reli (gi r@l@ // fix stress and e sound: religie/-ë/religieus
rem (_ rEm // handrem/kabeltrem/kragrem/noodrem/skyfrem/stadstrem/veiligheidsrem rem (_ rEm // handrem/kabeltrem/kragrem/noodrem/skyfrem/stadstrem/veiligheidsrem
C) re (n_ rE //tydren, fietsren etc. C) re (n_ rE //tydren, fietsren etc.
re (nA r@ // move stress from 1st slb.: renoster re (nA r@ // move stress from 1st slb.: renoster
relase r@lA:s@ // relase/s relase r@lA:s@ // relase/s
rele (gA r@l@ // relegeer/relegasie rele (gA r@l@ // relegeer/relegasie
repet rEp@t repet rEp@t
republiek r@pWbl'ik // republiek/e/ie/sowjetrepubliek
republiek r@p%Wblik // republiek/e/ie
republi (k r@p%Wbl%i // move default stress: republikein/-e/-se
&) rering (_ re@r@N //strukturering, demonstrering etc. &) rering (_ re@r@N //strukturering, demonstrering etc.
reso (lusie r%Es%O // fix stress and vowel sounds: resolusie/-s and compounds
resul (tA r@sWl' // resultaat/resultate/eksamenresultaat... resul (tA r@sWl' // resultaat/resultate/eksamenresultaat...
resep r@sEp // resep/resepte/resepteboek resep r@sEp // resep/resepte/resepteboek
reserwe r@z'&rv@ reserwe r@z'&rv@
respek (teer r@sp%Ek // stress to end respek (teer r@sp%Ek // stress to end
&) rele (_ r'e@l@ &) rele (_ r'e@l@
&A) reel (_ r'e@l // stress: immoreel/kultureel/struktureel/tekstureel/temporeel &A) reel (_ r'e@l // stress: immoreel/kultureel/struktureel/tekstureel/temporeel

reti (re r@t@ // fix stress and vowel sounds: retireer/retirerende
_) retro (@ r%Etr%u // fix stress and vowel sounds: many words beginning with retro-: retrogressie/-f, etc.
re (ü r%i_ // fix stress and e sound, insert pause: reünie/-s and compounds/reünifikasie




.group s .group s
s (japie s // dorpsjapie/plaasjapie/stadsjapie s (japie s // dorpsjapie/plaasjapie/stadsjapie
@) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar @) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar
@) sj (aCA sj // apartheidsjare/oesjare/beroepsjaloesie @) sj (aCA sj // apartheidsjare/oesjare/beroepsjaloesie
@) s (joern s // split -sj-: fabrieks-/reis-/skeepsjournaal, etc.
sigare (t s@x2%arE // fix vowel sounds and move default stress sigare (t s@x2%arE // fix vowel sounds and move default stress
sig (a@ s@x2 // sigaar/sigare/sigaardosie sig (a@ s@x2 // sigaar/sigare/sigaardosie
_) si (klo s%i // fix stress and i sound: sikloon/siklone/sikloop/siklope
siklu (s siklW // siklus and many compounds siklu (s siklW // siklus and many compounds
silhoe (A s@l%uw // silhoeët/-te/-teer silhoe (A s@l%uw // silhoeët/-te/-teer
sili (nd s@lI // silinder(s)/silinderkoppe sili (nd s@lI // silinder(s)/silinderkoppe
si (napK s@ // fix stress and i sound: sinaps/-esinapties
_) si (noC s@ // fix stress and i sound: sinode and compounds/sinops/sinop;ties
sin (takC s@n // move default stress: sintaksis/sintakties
sinteties s@nte@tis // sinteties/e/fotosinteties/-e sinteties s@nte@tis // sinteties/e/fotosinteties/-e
si (viel s@ // move default stress and fix i sound: siviel/-e si (viel s@ // move default stress and fix i sound: siviel/-e
s (iën S s (iën S
_) sa (ff sa'' // move default stress: saffier and compounds/saffraan/-agtig/-peer _) sa (ff sa'' // move default stress: saffier and compounds/saffraan/-agtig/-peer
sag (moe s%ax2 // move default stress: sagmoedig/-e/-heid sag (moe s%ax2 // move default stress: sagmoedig/-e/-heid
salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling
sal (mander s%al // fix stress: salmander/-s/klipsalmander
salo (n s%alO // eetsalon/haarkappersalon salo (n s%alO // eetsalon/haarkappersalon
sal (peter s%al // move default stress: salpeter and compounds
_) sam (b s%am // move default stress: sambok/-kke/sambreel/sambrele and compounds _) sam (b s%am // move default stress: sambok/-kke/sambreel/sambrele and compounds
_) same (@P4 s'A:m@ // samekoms/sameswering _) same (@P4 s'A:m@ // samekoms/sameswering
_) same (hA@ s%A:m@ // stress: (on)samehangend/samehorig/-e/-heid, but samehang _) same (hA@ s%A:m@ // stress: (on)samehangend/samehorig/-e/-heid, but samehang
samel (C sA:m@l // versamelde: see rule:_) same (@P4 s'A:m@ samel (C sA:m@l // versamelde: see rule:_) same (@P4 s'A:m@
samen (+ sA:m@n // gesamentlik/-e samen (+ sA:m@n // gesamentlik/-e
_) san (da s%an // move default stress: sandaal/-tjies/sandale _) san (da s%an // move default stress: sandaal/-tjies/sandale
sara (se s%ar%a // move default stress: saraseen and compounds/sarasene
_) sar (d s%ar // sardien/-blikkie/sardinies/sardyne _) sar (d s%ar // sardien/-blikkie/sardinies/sardyne
sar (kA s%ar // move default stress: sarkasme/sarkasties/sarkoom sar (kA s%ar // move default stress: sarkasme/sarkasties/sarkoom
sa (rong s%a // fix stress and a sound: sarong/-s
sa (tir s%a // move default stress: satire/satiries/-e sa (tir s%a // move default stress: satire/satiries/-e
_) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher _) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher
_) sede se@d@ // sede/-s|-preek _) sede se@d@ // sede/-s|-preek
se (duk s@ // fix stress and e sound: seduksie/-s/seduktief
sei (soen s%eI // move default stress: seisoen and compounds sei (soen s%eI // move default stress: seisoen and compounds
seker se@k@r // versekering/sekerheid/onsekerheid/sekere seker se@k@r // versekering/sekerheid/onsekerheid/sekere
se (ko s@ // sekond/sekonde/sekondes/sekondant se (ko s@ // sekond/sekonde/sekondes/sekondant
_) se (kre s@ // fix e sound: (ge)(kon)sekreer/sekreet/sekresie _) se (kre s@ // fix e sound: (ge)(kon)sekreer/sekreet/sekresie
se (ku s@ // sekuriteit/sekuur se (ku s@ // sekuriteit/sekuur
seku (l s%Ek%y // sekulër/sekulariseer seku (l s%Ek%y // sekulër/sekulariseer
sekwe (strA s%Ekw@ // fix e sounds: sekwestrasie/sekwestreer and compounds
sela (kant s%e@l@ // fix stress and vowel sounds: selakant/-e sela (kant s%e@l@ // fix stress and vowel sounds: selakant/-e
selder (y s%&ld@r // move default stress: seldery and compounds
&) sele (_ s'e@l@ &) sele (_ s'e@l@
no) sele (_ s@l@ // e sounds in onnosele no) sele (_ s@l@ // e sounds in onnosele
self (stan s%&lf // move default stress: selfstandig/-e/-heid self (stan s%&lf // move default stress: selfstandig/-e/-heid
seli (ba s%El%i // move default stress and fix e sound: selibaat/selibate seli (ba s%El%i // move default stress and fix e sound: selibaat/selibate
@) sellig s'&l@x2 // move default stress: een-/twee-/...-/meer-/veelsellig/-e @) sellig s'&l@x2 // move default stress: een-/twee-/...-/meer-/veelsellig/-e
se (llin s%&' // stress on 'in: (met)gesellin/-ne/-netjie, etc. se (llin s%&' // stress on 'in: (met)gesellin/-ne/-netjie, etc.
sello (fa s%&l@ // fix stress and vowel sounds: sellofaan and compounds
_) selon (sC s@lo~n // fix stress and e, nasalise o: selonspampoen/-roos/-rose, etc. _) selon (sC s@lo~n // fix stress and e, nasalise o: selonspampoen/-roos/-rose, etc.
@) sel (wig s'&l // stress: (ver)eenselwig and derivitives @) sel (wig s'&l // stress: (ver)eenselwig and derivitives
polisie) se (lK s& // fix e sound: polisiesel/-le polisie) se (lK s& // fix e sound: polisiesel/-le
semi (na s%Em%i // seminaar/seminare/seminarium semi (na s%Em%i // seminaar/seminare/seminarium


sening se@n@N // sening/haaksening/heupsening sening se@n@N // sening/haaksening/heupsening
_) se (ni@ s@ // fix stress and e sound: seniel/-e/seniliteit
_) senior s''i:ni@r // default stress; fix vowl sounds: senior and compounds starting with senior _) senior s''i:ni@r // default stress; fix vowl sounds: senior and compounds starting with senior
senior (itei s%i:n%i%Or // fix vowel sounds: senioriteit senior (itei s%i:n%i%Or // fix vowel sounds: senioriteit
_) sen (tra@ s%En // exception to default stress rule: sentraal/sentrale _) sen (tra@ s%En // exception to default stress rule: sentraal/sentrale
_) ser (e@ s@r // fix stress and 1st e sound: sereen/serene _) ser (e@ s@r // fix stress and 1st e sound: sereen/serene
sere (moni s%Er@ // seremonie/-meester/huwelikseremonie/seremonieel sere (moni s%Er@ // seremonie/-meester/huwelikseremonie/seremonieel
_) se (ring s@ // fix stress and e sound: sering/-boom/-bloeisels, etc.
ser (sant s@r // move default stress: sersant and compounds ser (sant s@r // move default stress: sersant and compounds
ser (vet s@r // servet and compounds, e.g. servetring ser (vet s@r // servet and compounds, e.g. servetring
ses (uur sEs_ // fix e sound and insert short break: sesuur/-nuus, etc. ses (uur sEs_ // fix e sound and insert short break: sesuur/-nuus, etc.
simp (to s@m // move default stress and drop p: simptoom/simptome/simptomaties simp (to s@m // move default stress and drop p: simptoom/simptome/simptomaties
si (nnig s'I // sinnig in compounds has stress: dubbelsinnig/geheimsinnig/kranksinnig si (nnig s'I // sinnig in compounds has stress: dubbelsinnig/geheimsinnig/kranksinnig
siniste (r s@nIst@ // sinister/sinistere/sinisters siniste (r s@nIst@ // sinister/sinistere/sinisters
sipre (K siprE // fix stress and i sound: sipres/-se/bergsipres/sipresboom
sipre (K s%iprE // fix stress and i sound: sipres/-se/bergsipres/sipresboom
sirene s@re@n@ // move default stress and fix vowel sounds: sirene/-s/-lied/-sang sirene s@re@n@ // move default stress and fix vowel sounds: sirene/-s/-lied/-sang
si (troen s@ // move default stress: sitroen and compounds
skade skA:d@ // elik suffix rule breaks a sound of (on)skadelik skade skA:d@ // elik suffix rule breaks a sound of (on)skadelik
skadu skA:dy // skaduagtig/skadutjie skadu skA:dy // skaduagtig/skadutjie
skaker (ing sk%ake@r // skakering/-s/kleurskakering skaker (ing sk%ake@r // skakering/-s/kleurskakering
skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds
_) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds _) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds
skarrel skar@l // restore default stress: (ge)skarrel/-ing skarrel skar@l // restore default stress: (ge)skarrel/-ing
ska (vot sk%a // fix stress and a sound: skavot and compounds
_) ske (let sk@ // fix stress and 1st e sound: skelet and compounds _) ske (let sk@ // fix stress and 1st e sound: skelet and compounds
skemer ske@m@r // fix 2nd e in many compounds and derivitives of skemer- skemer ske@m@r // fix 2nd e in many compounds and derivitives of skemer-
sker (muts sk%&r // move default stress: (ge)skermutsel/skermutseling/-e sker (muts sk%&r // move default stress: (ge)skermutsel/skermutseling/-e
skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds
skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum
skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene
sko (lier sk%o@ // move default stress: skolier/-e sko (lier sk%o@ // move default stress: skolier/-e
skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s
skuld (erken skWlt_ // fix d sound: skulderkenning/-s/-erkentenis
skyn (hei sk%eIn // move default stress: skynheilig/-e/-heid skyn (hei sk%eIn // move default stress: skynheilig/-e/-heid
_) slag sl'ax2 _) slag sl'ax2
sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds
slop (emmer slOp_ // fix o sound and insert pause: slopemmer/-s
@) sering s'e@r@N // analisering/kategorisering @) sering s'e@r@N // analisering/kategorisering
@) ses (_ s@s // fix 2 slb. words ending in ses @) ses (_ s@s // fix 2 slb. words ending in ses
sma (rag sm%a // fix stress and a sound: smarag/-te
snel (_ sn&l // fix e: aansnel/agternasnel/blitssnel/heengesnel/koppesnel/nasnel/verbysnel snel (_ sn&l // fix e: aansnel/agternasnel/blitssnel/heengesnel/koppesnel/nasnel/verbysnel
sodom (iet s,o@dOm // fix stress sodom (iet s,o@dOm // fix stress
so (ffleu s%u // move default stress and fix o sound: suffleur/soffleuse
soewe (nier s%uv@ // move default stress: soewenier/-e/-s
_) soie so@?i // soiets/soiemand _) soie so@?i // soiets/soiemand
_) sol (da s%Ol // move default stress: soldaat/soldate and compounds _) sol (da s%Ol // move default stress: soldaat/soldate and compounds
sol (dy s%Ol // fix stress: soldy and compounds sol (dy s%Ol // fix stress: soldy and compounds
so (lie s%O // stress and o sound: solied/-e so (lie s%O // stress and o sound: solied/-e
so (lid s%O // konsolidasie/solidariteit so (lid s%O // konsolidasie/solidariteit
sonant sun'ant // fix stress and o sound: sonant/dissonant/konsonant
so (natA s%u // move default stress and fix o sound: sonate/-s and compounds so (natA s%u // move default stress and fix o sound: sonate/-s and compounds
sonne (t s%unE // fix stress and vowel sounds: sonnet/-te/sonnetvorm sonne (t s%unE // fix stress and vowel sounds: sonnet/-te/sonnetvorm
so (nnetjie++ sO // but: sonnetjie/wintersonnetjie so (nnetjie++ sO // but: sonnetjie/wintersonnetjie
so (pra s%u // move default stress and fix o sound: sopraan/soprane so (pra s%u // move default stress and fix o sound: sopraan/soprane
sou (ffleu s%u // move default stress and fix o sound: suffleur/soffleuse
span (dab sp%an // move default stress: spandabel/-rig, etc. span (dab sp%an // move default stress: spandabel/-rig, etc.
span (jAA sp%an // move default stress: Spanjaard/-e/Spanjool span (jAA sp%an // move default stress: Spanjaard/-e/Spanjool
span (spek sp%an // move default stress: spanspek/-ke/-kie and compounds span (spek sp%an // move default stress: spanspek/-ke/-kie and compounds
_) spar (ta@ sp%ar // move default stress: spartaan/-s/spartane
spartel spart@l // fix stress and e sound: spartel/-end/-ing spartel spart@l // fix stress and e sound: spartel/-end/-ing
_) spat (a spat_ // fix stress, a sound and insert pause: spataar/spatare
spek (takel sp%Ek // move default stress: spektakel/-s spek (takel sp%Ek // move default stress: spektakel/-s
spelagtig sp&l'ax2t@x2 // skouspelagtig/e/heid/klugspelagtig spelagtig sp&l'ax2t@x2 // skouspelagtig/e/heid/klugspelagtig
e) spel (_ sp&l //klokkespel/snarespel/driespel/hokkiespel/puntespel/putjiespel e) spel (_ sp&l //klokkespel/snarespel/driespel/hokkiespel/puntespel/putjiespel
C) spel (_ sp&l // many compounds ending in spel after consonant C) spel (_ sp&l // many compounds ending in spel after consonant
&) spele (_ sp'e@l@ &) spele (_ sp'e@l@
spese (ry sp@s@ // spesery and compounds and derivitives spese (ry sp@s@ // spesery and compounds and derivitives
_) spes (ma sp%Es // move default stress: spesmaas/spesmase
_) spi (ra sp%i // move default stress: spiraal and compounds/spirale/spirakel/spirant, etc. _) spi (ra sp%i // move default stress: spiraal and compounds/spirale/spirakel/spirant, etc.
spits (von sp@ts // move default stress: spitsvondig/-e/-heid
spoed (@ sput // spoedaflewering/spoedeisend/spoedorder spoed (@ sput // spoedaflewering/spoedeisend/spoedorder
spoed (ig spud // spoedig/-lik/-er/-ste spoed (ig spud // spoedig/-lik/-er/-ste
_) spon (ta sp%On // move default stress: spontaan/spontane _) spon (ta sp%On // move default stress: spontaan/spontane
sproke spro@k@ // see rule: pro (CA pr%u : aangesprokene/onbesproke, etc. sproke spro@k@ // see rule: pro (CA pr%u : aangesprokene/onbesproke, etc.
self (_ s'&lf // myself/vanself self (_ s'&lf // myself/vanself
// self s'&lf // self s'&lf
sewe (C s'e@v@ // sewejarige/standerdseweklas
K) sewe (C s'e@v@ // sewejarige/standerdseweklas
september s@pt'Emb@r september s@pt'Emb@r
@) sief (_ s'if // massief/aggressief/passief/intensief @) sief (_ s'if // massief/aggressief/passief/intensief
@) siewe (_ s'iv@ // massiewe/aggressiewe/passiewe/intensiewe @) siewe (_ s'iv@ // massiewe/aggressiewe/passiewe/intensiewe
_) sim (bA s@m // move default stress: simbool/simbole/simbolies/-e/simbaal/simbale _) sim (bA s@m // move default stress: simbool/simbole/simbolies/-e/simbaal/simbale
simbo (liek s@mb%u // fix stress and vowel sounds: simboliek and compounds simbo (liek s@mb%u // fix stress and vowel sounds: simboliek and compounds
simme (trie s@me@ // fix stress and e sound: simmetries/-e simme (trie s@me@ // fix stress and e sound: simmetries/-e
simme (trie_N s@m@ // but stress to end: simmetrie
simpo (siA s@mpo@ // fix stress and o sound: simposium/simposia and compounds simpo (siA s@mpo@ // fix stress and o sound: simposium/simposia and compounds
// sioe Si'u // sioe Si'u
si (o Si // fisiologie/-logiese/-loog
sio (ne Siu' // emosioneel/emosionele/rasioneel/rasionele, etc.
@) si (o Si // fisiologie/-logiese/-loog
@) sio (ne Siu' // emosioneel/emosionele/rasioneel/rasionele, etc.
@) sipale sip'A:l@ // move default stress: munisipale/partisipale @) sipale sip'A:l@ // move default stress: munisipale/partisipale
si (pier s@ // fix stress and i sound: sipier and compounds
sist (e s@st // fix stress and vowel sounds: sisteem/sisteme sist (e s@st // fix stress and vowel sounds: sisteem/sisteme
siste (mat s@st@ // fix e sounds: sistematies/-e siste (mat s@st@ // fix e sounds: sistematies/-e
situasie sItSu'A:si situasie sItSu'A:si
spesialis (A spESialis spesialis (A spESialis
spesialis spESal'Is spesialis spESal'Is
spesi (f sp%Es%I // spesifiek/spesifiseer spesi (f sp%Es%I // spesifiek/spesifiseer
@) spre (ken spr'e@ // stress: vanselfsprekend
@@) spre (ken spr'e@ // stress: vanselfsprekend
stede (C ste@d@ // fix e sounds of many compounds and derivitives containing stede stede (C ste@d@ // fix e sounds of many compounds and derivitives containing stede
dubbel) ste (r st& // fix e sound: dubbelster/-re dubbel) ste (r st& // fix e sound: dubbelster/-re
dwaal) ste (r st& // fix e sound: dwaalster/-re dwaal) ste (r st& // fix e sound: dwaalster/-re
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
see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds
_) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit
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.
ste (land st@ // fix e sound: vasteland and several compounds ste (land st@ // fix e sound: vasteland and several compounds
@) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds @) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds
@) ste (llen st'& // belangstellendes/gerusstellend/regstellende/teleurstellend @) ste (llen st'& // belangstellendes/gerusstellend/regstellende/teleurstellend
saam) ste (llen st& // restore default stress: saamstellend/-e
teen) ste (llen st& // restore default stress: teenstellend teen) ste (llen st& // restore default stress: teenstellend
@) stelik st@l@k // oostelik/christelik/beestelik @) stelik st@l@k // oostelik/christelik/beestelik
ste (l st& ste (l st&
stok (A stOk? // stokagtig/stokinsek/stokoud stok (A stOk? // stokagtig/stokinsek/stokoud
stok (e sto@k // stoker/-y stok (e sto@k // stoker/-y
storm stOr@-m storm stOr@-m
strategie strat@x2'i
strategie str%at@x2i // fix stress and vowel sounds: strategie and compounds
strategies str%ate@x2is // fix stress and vowel sounds: strategies/-e
streke stre@k@ streke stre@k@
studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc. studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc.
stu (de st%y // fix stress and e sound: bestuderend/bestudering stu (de st%y // fix stress and e sound: bestuderend/bestudering
t (t t (t
t (_dN // final t, and next word starts with d t (_dN // final t, and next word starts with d
A) tch _^_EN // clutch/pitch/bitch A) tch _^_EN // clutch/pitch/bitch
tabak tab'ak;
tabak t%abak;
ta (blet t%a // move default stress: tablet/-te and compounds ta (blet t%a // move default stress: tablet/-te and compounds
tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds
@) talig t'A:l@x2 // Anderstalig/tweetalig @) talig t'A:l@x2 // Anderstalig/tweetalig
&) treding tre@d@N // betreding/uittreding &) treding tre@d@N // betreding/uittreding
@) treer tr'e@r // this slb always takes stress; many words @) treer tr'e@r // this slb always takes stress; many words
tref (afs trEf_ // fix e sound and insert short pause: trefafstand/-e tref (afs trEf_ // fix e sound and insert short pause: trefafstand/-e
trens (_ tre~ns // fix e sound and nasalise: trens/-snytrens and similar


tre (k tr& tre (k tr&
trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering
terror (is t%Er%ur // terroris/-te/-isme/-istiese terror (is t%Er%ur // terroris/-te/-isme/-istiese
_) ter (s t%&r // tersake/terselfdertyd/tersluiks/terstond/tersyde _) ter (s t%&r // tersake/terselfdertyd/tersluiks/terstond/tersyde
tese (_ t'e@s@ //sintese, and others tese (_ t'e@s@ //sintese, and others
teses (_ t'e@s@s // sinteses and similar
tesi (s te@s@ // tesis/-se and compounds tesi (s te@s@ // tesis/-se and compounds
A) teur t'Y@r // outeur/ouditeur/operateur A) teur t'Y@r // outeur/ouditeur/operateur
k) teur t'Y@r // akteur/inspekteur k) teur t'Y@r // akteur/inspekteur
m) u (skiet %W //change stress for muskiet compounds m) u (skiet %W //change stress for muskiet compounds
n) uwe (C yv@ // nuwelinge/nuwemaan n) uwe (C yv@ // nuwelinge/nuwemaan
n) uw yv // nuwigheid/nuwighede n) uw yv // nuwigheid/nuwighede
r) uwe (C yv@ // gruweldaad/-rolprent/-verhaal.../struweling
Cr) uwe (C yv@ // gruweldaad/-rolprent/-verhaal.../struweling




.group v .group v
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
vakansie f@k'ansi
vakansie f@kansi
va (ku v%a // fix stress and v sound: vakuum and compounds/vakume/evakueer va (ku v%a // fix stress and v sound: vakuum and compounds/vakume/evakueer
vak (unie fak_ // restore default stress, insert short pause: vakunie and compounds vak (unie fak_ // restore default stress, insert short pause: vakunie and compounds
va (llei f%a // fix stress and a sound: vallei/-e and compounds va (llei f%a // fix stress and a sound: vallei/-e and compounds
vergete f@rx2'e@t@ // vergeterig/vergetelheid vergete f@rx2'e@t@ // vergeterig/vergetelheid
_) vergewe f@rx2e@v@ // vergewe/vergewend/-e _) vergewe f@rx2e@v@ // vergewe/vergewend/-e
vering f'e@r@N //motivering preservering etc. vering f'e@r@N //motivering preservering etc.
@C) vers (_ f&rs // teksvers/slotvers/kindervers and similar
@C) vers (e_ f&rs // plurals of words like the above
@) vers (_ f&rs // teksvers/slotvers/kindervers and similar
@) vers (e_ f&rs // plurals of words like the above
ver (sie_ f&:r //words ending in versie ver (sie_ f&:r //words ending in versie
ver (sies_ f&:r //words ending in versies ver (sies_ f&:r //words ending in versies
ver (flent f@r // verflenter and derivitives; see rule: verf (C f&rf ver (flent f@r // verflenter and derivitives; see rule: verf (C f&rf
veronderste (l f@rOn@rst'& // stress: veronderstel/-ling veronderste (l f@rOn@rst'& // stress: veronderstel/-ling
_) verse (b f'&:rs@ _) verse (b f'&:rs@
C) verse (_ f&rs@ C) verse (_ f&rs@
A) verse (_ v'&rs@
KA) verse (_ v'&rs@
vers (r f&rs // fix stress and e sound: versreël/-rym/-ritme vers (r f&rs // fix stress and e sound: versreël/-rym/-ritme
_) veronge (@P7 f@r'O:Nx2@ _) veronge (@P7 f@r'O:Nx2@
verbete f@rb'e@t@ // verbete/verbetenheid verbete f@rb'e@t@ // verbete/verbetenheid

+ 14
- 5
dictsource/dict_phonemes View File

: ; b c d dZ f g : ; b c d dZ f g
h j k l L m n N h j k l L m n N
n^ p r R s S t t2 n^ p r R s S t t2
tS v w z Z z2
tS v w z Z z2 z3




Dictionary hi_dict Dictionary hi_dict
Dictionary nl_dict Dictionary nl_dict


8 @ @- A a: E e: EI 8 @ @- A a: E e: EI
eU i I O o: u VU Wy
y Y: yU
eU i I O O: o: u VU
Wy y Y: yU


* : ; b C d f g * : ; b C d f g
h j k l m n N n^ h j k l m n N n^
p Q r s S s; t tS
p Q r s S S; t tS
v v2 w x z v v2 w x z




* b d d; dZ f g h * b d d; dZ f g h
j k l l^ m n N n^ j k l l^ m n N n^
p r R R^ R^/ s S t p r R R^ R^/ s S t
t; tS ts v w x z Z
t; tS ts v x z Z




Dictionary sv_dict Dictionary sv_dict
t tS v w x z Z t tS v w x z Z




Dictionary th_dict

a a: e E: i i: o O
O: u y

c d h k l m n N
p s t


Dictionary hbs_dict Dictionary hbs_dict


& @ @2 a A a: aI aU & @ @2 a A a: aI aU

+ 23
- 15
dictsource/fr_list View File


// This file in UTF8 encoded // This file in UTF8 encoded


// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
_3 tRw'a _3 tRw'a
_4 k'atR _4 k'atR
_5 s'E~c _5 s'E~c
_6 s'is
_6 s'iz3
six siz2 six siz2
_7 s'Et _7 s'Et
_8 'w^it _8 'w^it
_9 n'@f _9 n'@f
_10 d'is
_10 d'iz3
dix diz2 dix diz2
_11 O~z _11 O~z
_12 d'uz _12 d'uz
_23 v'E~t:tRw'a _23 v'E~t:tRw'a
_24 v'E~tk'atR _24 v'E~tk'atR
_25 v'E~ts'E~c _25 v'E~ts'E~c
_26 v'E~ts'is
_26 v'E~ts'iz3
_27 v'E~ts'Et _27 v'E~ts'Et
_28 v'E~tw^it _28 v'E~tw^it
_29 v'E~tn'@f _29 v'E~tn'@f
puisque $u $brk puisque $u $brk
quand $u $brk quand $u $brk
que $u $brk que $u $brk
qui $u $brk
qui $u $brk $verbf
quoique $u $brk quoique $u $brk
si $u $brk si $u $brk


elles $u+ $verbf elles $u+ $verbf
ils $u+ $verbf ils $u+ $verbf
on $u $verbf on $u $verbf

me $u
te $u
se $u
me $u $verbf
te $u $verbf
se $u $verbf


ce $u $nounf ce $u $nounf
ces sEz2 $u $nounf ces sEz2 $u $nounf
sa $u+ $nounf sa $u+ $nounf
son $u+ $nounf son $u+ $nounf
ses sEz2 $u+ $nounf ses sEz2 $u+ $nounf
notre $u+
votre $u+
notre $u+ $nounf
votre $u+ $nounf
leur $u+ leur $u+
nos $u+
vos $u+
nos $u+ $nounf
vos $u+ $nounf
leurs $u+ leurs $u+


// prepositions // prepositions
durant $brk durant $brk


// negative // negative
ne $u
ne $u $verbf


// questions // questions
où $pause où $pause


// pronunciation exceptions // pronunciation exceptions


divers div'Erz2
scient si scient si
bénéficient benefisi $verb bénéficient benefisi $verb
président pRezid'A~ président pRezid'A~
président pRezidt2 $verb président pRezidt2 $verb
résident Rezid'A~ résident Rezid'A~
résident Rezidt2 $verb résident Rezidt2 $verb
évident evid'A~
récipient Resipj'A~
►évident evid'A~
évident evidt2 $verb évident evidt2 $verb
couvent k'uvt2 $verb couvent k'uvt2 $verb
concurrent kO~kyR'A~ concurrent kO~kyR'A~
récurrent RekyR'A~ récurrent RekyR'A~
ferment fErm'A~ ferment fErm'A~
ferment f'Ermt2 $verb ferment f'Ermt2 $verb
parent paR'A~
parent p'art2 $verb
sergent sErZ'A~ sergent sErZ'A~
serment sErm'A~ serment sErm'A~
serpent sErp'A~ serpent sErp'A~
torrent tOR'A~




// MAIN WORD DICTIONARY // MAIN WORD DICTIONARY
bus bys bus bys
choeur kWr choeur kWr
discident disidA~ discident disidA~
dix diz3
echo Eko echo Eko
fils fis fils fis
haillon _|ajO~ haillon _|ajO~
prudent pRydA~ prudent pRydA~
secret sYkRE secret sYkRE
secrets sYkREz2 secrets sYkREz2
six siz3





sens sA~s sens sA~s








+ 124
- 122
dictsource/fr_rules View File

a (ill a a (ill a
a (ils_ a a (ils_ a
a (il_ a a (il_ a
aie (me E // paiement
aie (me E // paiement
ai E // aile ai E // aile
am (b A~ // jambon am (b A~ // jambon
am (p A~ // camp am (p A~ // camp
c' s // s c' s // s
cch k // bacchanale cch k // bacchanale
cc (Y ks // accéder cc (Y ks // accéder
cc k // occuper
cc k // occuper
ar) ch (ét k // archétype architecte ar) ch (ét k // archétype architecte
or) ch (esC k // orchestre or) ch (esC k // orchestre
or) ch (iC k // orchidée or) ch (iC k // orchidée
sy) ch (o k // psycho sy) ch (o k // psycho
_) ch (or k // chorale _) ch (or k // chorale
ch (r k // chrétien ch (r k // chrétien
ch (l k
ch (n k
ch (s k
ch (to k
ch (l k
ch (n k
ch (s k
ch (to k
ch S // chien ch S // chien
ck k // nickel ck k // nickel
cqu k // grecque cqu k // grecque
cq k // pecq cq k // pecq
s) c (Y //
x) c (Y
s) c (Y //
x) c (Y
c (Y s // cède c (Y s // cède
ban) c (_ // banc ban) c (_ // banc
blan) c (_ // blan blan) c (_ // blan
cler) c (_ // leclerc cler) c (_ // leclerc
tchou) c (_
taba) c (_
tchou) c (_
taba) c (_
se) c (ond g // seconde secondaire se) c (ond g // seconde secondaire
c k // recoin donc c k // recoin donc


dd d // addition dd d // addition
_) d' (P2 d _) d' (P2 d
_lan) d (_ d // land _lan) d (_ d // land
Clan) d (_ d
_san) d (_ d
Csan) d (_ d
Clan) d (_ d
_san) d (_ d
Csan) d (_ d
_tan) d (_ d // stand _tan) d (_ d // stand
Ctan) d (_ d
Ctan) d (_ d


Can) d (_ t2 // grand ami, grand marchand Can) d (_ t2 // grand ami, grand marchand
Cen) d (_ t2
Con) d (_ t2
quan) d (_ t2
quen) d (_ t2
quon) d (_ t2
Cen) d (_ t2
Con) d (_ t2
quan) d (_ t2
quen) d (_ t2
quon) d (_ t2


dt (_ t // Schmidt dt (_ t // Schmidt
r) d (_ // lourd placard r) d (_ // lourd placard
ee i // meeting ee i // meeting
_cl) ef (_ e // clef _cl) ef (_ e // clef
ein (C E~ // peindre ein (C E~ // peindre
ein (_ E~
ein (_ E~
e (il E // vieille e (il E // vieille
ei E // neige ei E // neige
ell El // selle ell El // selle
em (me a // femme patiemment em (me a // femme patiemment
em (b A~ // décembre em (b A~ // décembre
em (m A~ // emmencher em (m A~ // emmencher
em (p A~
em (p A~
en (_ A~ // en en (_ A~ // en
en (hA A~n // enharmonique en (hA A~n // enharmonique
en (A A~n // enivrer en (A A~n // enivrer
en (_A A~n // en avion en (_A A~n // en avion


C) en (d_ A~ // comprend dépend C) en (d_ A~ // comprend dépend
C) en (ds_ A~
qu) en (d_ A~
qu) en (ds_ A~
C) en (ds_ A~
qu) en (d_ A~
qu) en (ds_ A~


pati) en A~ // patient patience pati) en A~ // patient patience
_) en (nu A~ // ennui _) en (nu A~ // ennui
C) en (A @n // menu C) en (A @n // menu


en (nA E // penne ennemi en (nA E // penne ennemi
Ci) en (nA E // mienne
Ci) en (nA E // mienne


éC) en (t_ A~ // récent différent élément éC) en (t_ A~ // récent différent élément


_C) en (t_ A~ // cent vent lent dent
_C) en (t_ A~ // cent vent lent dent
cc) en (t_ A~ // accent cc) en (t_ A~ // accent


_jac) en (t_ A~ // sous-jacent _jac) en (t_ A~ // sous-jacent
al) en (t_ A~ // talent équivalent al) en (t_ A~ // talent équivalent
xcell) en (t_ A~ // excellent xcell) en (t_ A~ // excellent


mm) en (t_ A~
mm) en (t_ A~
em) en (t_ A~ // vitement em) en (t_ A~ // vitement
mom) en (t_ A~ // moment mom) en (t_ A~ // moment
Aaim) en (t_ A~
Caim) en (t_ A~
cum) en (t_ A~
gum) en (t_ A~
lum) en (t_ A~
Aaim) en (t_ A~
Caim) en (t_ A~
cum) en (t_ A~
gum) en (t_ A~
lum) en (t_ A~
rum) en (t_ A~ // prudemment rum) en (t_ A~ // prudemment


_cli) en (t_ A~ // client _cli) en (t_ A~ // client
_laur) en (t_ A~
_mécont) en (t_ A~
_cont) en (t_ A~
_laur) en (t_ A~
_mécont) en (t_ A~
_cont) en (t_ A~
mpét) en (t_ A~ // compétent mpét) en (t_ A~ // compétent
prés) en (t_ A~
prés) en (t_ A~
_souv) en (t_ A~ // souvent _souv) en (t_ A~ // souvent


s_couv) en (t_ // elles couvent s_couv) en (t_ // elles couvent
qui_couv) en (t_
qui_couv) en (t_


_couv) en (t_ A~ // le couvent _couv) en (t_ A~ // le couvent
en (t_ // étaient mangent en (t_ // étaient mangent


_am) en (_ En // amen _am) en (_ En // amen


AA) en (_ E~
AA) en (_ E~
AC) en (_ E~ // examen AC) en (_ E~ // examen
CA) en (_ E~ // rien CA) en (_ E~ // rien
CC) en (_ E~
CC) en (_ E~


en (s_ A~
en (CA A~ // pentathlon
en (CC A~ // entre
en (s_ A~
en (CA A~ // pentathlon
en (CC A~ // entre


_C) er (_ ER // fer _C) er (_ ER // fer
_Ch) er (_ ER // cher _Ch) er (_ ER // cher
_env) er (_ ER
_hi) er (_ ER // hier
_env) er (_ ER
_hi) er (_ ER // hier
_hiv) er (_ ER // hiver _hiv) er (_ ER // hiver
_trav) er (_ ER
_ti) er (_ ER
_trav) er (_ ER
_ti) er (_ ER


th) er (_ WR // brother th) er (_ WR // brother
th) er (s_ WR
th) er (s_ WR
w) er (_ WR // power w) er (_ WR // power
w) er (s_ WR
w) er (s_ WR


er (_ e // parler léger er (_ e // parler léger
er (_A eR // parler léger er (_A eR // parler léger
er (s_ e
er (s_ e


i) ert (_t2 e // requiert
i) ert (_t2 e // requiert


d) e (ssous_ @ // dessous d) e (ssous_ @ // dessous
d) e (ssus_ @ // dessus
d) e (ssus_ @ // dessus


_d) es (bA e
_d) es (jA e // Desjardins
_d) es (nA e
_d) es (bA e
_d) es (jA e // Desjardins
_d) es (nA e
_d) es (qA e // desquels _d) es (qA e // desquels


_l) es (qA e // lesquels _l) es (qA e // lesquels


_m) es (dA e // mesdames _m) es (dA e // mesdames
_m) es (nA e
Am) es (dA e
_m) es (nA e
Am) es (dA e
Am) es (nA e // Dumesnil Am) es (nA e // Dumesnil


d) esh (A ez // Deshormeaux d) esh (A ez // Deshormeaux


_r) es (A @s // resaisir resaluer _r) es (A @s // resaisir resaluer


_r) e (ss @ // ressembler
_r) e (stra @
_r) e (stre @
_r) e (stro @
_r) e (ss @ // ressembler
_r) e (stra @
_r) e (stre @
_r) e (stro @
_r) e (stru @ // restructurer _r) e (stru @ // restructurer
-) est (_ Est // -est -) est (_ Est // -est


@Cr) es (_C =@
rC) es (_C =@ // fortes dames
@Cr) es (_C =@
rC) es (_C =@ // fortes dames


') eu (_ y // eu ') eu (_ y // eu
eu (r_ W // peur eu (r_ W // peur
eu (rs_ W // tracteurs eu (rs_ W // tracteurs


eu (b @ // meuble
eu (f @ // neuf
eu (i @
eu (l @ // fieul
eu (b @ // meuble
eu (f @ // neuf
eu (i @
eu (l @ // fieul
eu (n @ // jeune eu (n @ // jeune
eu (p @
eu (r @
eu (v @
eu (p @
eu (r @
eu (v @


eu Y // meute tueuse jeu gueuze eu Y // meute tueuse jeu gueuze
_) eû y // eût _) eû y // eût
ey Ej // asseye ey Ej // asseye


ez (_ ez2 // nez mangez chez ez (_ ez2 // nez mangez chez
_C) e (_ @ // je te
_CC) e (_ @
_C) e (_ @ // je te
_CC) e (_ @
_qu) e (_ @ // que _qu) e (_ @ // que


@Cr) e (_C =@ // quatre pattes @Cr) e (_C =@ // quatre pattes
rC) e (_C =@
rC) e (_C =@


e (_ // montre e (_ // montre


g) e (A // mangeons g) e (A // mangeons


AC) e (ment // vitement sûrement AC) e (ment // vitement sûrement
Aqu) e (ment
enC) e (ment
enqu) e (ment
Aqu) e (ment
enC) e (ment
enqu) e (ment


_d) e (ch @
_d) e (Cl @
_d) e (Cr @ // degré
_d) e (ch @
_d) e (Cl @
_d) e (Cr @ // degré
_r) e (ch @ // recherche _r) e (ch @ // recherche
_r) e (Cl @
_r) e (Cr @ // retracer
_l) e (xA E
_l) e (CA @
_l) e (ChA @
_l) e (ClA @ // Leclerc
_l) e (CrA @ // Lebrun
tr) e (CA @
tr) e (ChA @
tr) e (ClA @
_r) e (Cl @
_r) e (Cr @ // retracer
_l) e (xA E
_l) e (CA @
_l) e (ChA @
_l) e (ClA @ // Leclerc
_l) e (CrA @ // Lebrun
tr) e (CA @
tr) e (ChA @
tr) e (ClA @
tr) e (CrA @ // entreprise tr) e (CrA @ // entreprise


e (CC E // infect pelle mettre e (CC E // infect pelle mettre
e (C_ E
e (C_ E


ll) e (m // actuellement guillemets ll) e (m // actuellement guillemets


As) e (gA
As) e (pA
Ass) e (gA
As) e (gA
As) e (pA
Ass) e (gA
Ass) e (pA // passeport Ass) e (pA // passeport
Av) e (gA // sauvegarde
Av) e (pA
Av) e (gA // sauvegarde
Av) e (pA


e @ // menue e @ // menue


ai) gni n^ // craignions châtaignier ai) gni n^ // craignions châtaignier
gn n^ // agneau gn n^ // agneau
_quatre_vin) gts (_ z2 // quatre-vingts ans _quatre_vin) gts (_ z2 // quatre-vingts ans
_quatrevin) gts (_ z2
_quatrevin) gts (_ z2


vin) gt (_A t // liaison: vingt ans vin) gt (_A t // liaison: vingt ans


vin) gt (_un
vin) gt (_deux t
vin) gt (_un
vin) gt (_deux t
vin) gt (_trois t //liaison: vingt-trois vin) gt (_trois t //liaison: vingt-trois
vin) gt (_quatr t
vin) gt (_cinq t
vin) gt (_six t
vin) gt (_sept t
vin) gt (_huit t
vin) gt (_neuf t
vin) gt (_quatr t
vin) gt (_cinq t
vin) gt (_six t
vin) gt (_sept t
vin) gt (_huit t
vin) gt (_neuf t


gt (_ // vingt doigts gt (_ // vingt doigts


gt t // vingtaine doigté gt t // vingtaine doigté
ai) gu (il gy // aiguillage ai) gu (il gy // aiguillage
in) gu (is gy // linguiste in) gu (is gy // linguiste
g (C g
g (C g
g (a g // langage g (a g // langage
g (u g
g (â g
g (o g
g (û g
g (u g
g (â g
g (o g
g (û g


_ran) g (_ // rang _ran) g (_ // rang
_san) g (_ // sang _san) g (_ // sang
A) ill j // caillou A) ill j // caillou
ill ij // famille ill ij // famille
a) il (_ j // bail a) il (_ j // bail
e) il (_ j
e) il (_ j
u) il (_ j // deuil u) il (_ j // deuil


imm imm // immaculé imm imm // immaculé
.group l .group l
_) l (_ El _) l (_ El
l l // lit l l // lit
ll l // aller
ll l // aller
_) l' (P2 l _) l' (P2 l
au) lt // hérault au) lt // hérault
outi) l (_ // outil outi) l (_ // outil


o (ch o // cochon o (ch o // cochon
oe (ll wa // moelleux oe (ll wa // moelleux
_) oe (C Y // oesophage
_) oe (C Y // oesophage
o (eu // soeur oeuf o (eu // soeur oeuf
o (eC o // coefficient o (eC o // coefficient
_) oi (gnon O // oignons _) oi (gnon O // oignons
m) on (_A O~n // mon appui m) on (_A O~n // mon appui
s) on (_A O~n s) on (_A O~n
t) on (_A O~n t) on (_A O~n
z) o (ne_ o // amazone z) o (ne_ o // amazone
c) o (ne_ o c) o (ne_ o
h) o (ne_ o h) o (ne_ o
o (mo o // momo o (mo o // momo
o (no o // nono o (no o // nono
om) o o // monocorde om) o o // monocorde
on) o o //
on) o o //


o O // sobre notions émotions o O // sobre notions émotions


ph f // phrase ph f // phrase


m) ps (_ // temps champs m) ps (_ // temps champs
r) ps (_ // corps
r) ps (_ // corps


cham) p (_ // contrechamp cham) p (_ // contrechamp


_) r (_ ER _) r (_ ER
right _^_EN // copyright right _^_EN // copyright
_su) rr RR // surréaliste _su) rr RR // surréaliste
ou) rr RR // courrai
rr R // erreur
r R // rien
ou) rr RR // courrai
rre (_ R // barre
rr R // erreur
r r // rien


.group s .group s
_) s (_ Es _) s (_ Es
t t // bataille t t // bataille
t (_ t2 // silent at end of word unless next word starts with a vowel t (_ t2 // silent at end of word unless next word starts with a vowel
ts (_S1 z2 // silent at end of word unless next word starts with a vowel ts (_S1 z2 // silent at end of word unless next word starts with a vowel
C) t (_ t // compost watt soft script malttact abrupt
C) t (_ t // compost watt soft script malttact abrupt
n) t (_ t2 // emprunt n) t (_ t2 // emprunt
r) t (_ t2 // fort r) t (_ t2 // fort


s) t (ion t // gestion s) t (ion t // gestion


t (iel s // partiel patiemment t (iel s // partiel patiemment
t (iem s
t (iem s


mar) t (ien s // martien vénitienne mar) t (ien s // martien vénitienne
i) t (ien s i) t (ien s
pa) t (ien s pa) t (ien s
o) t (ien s o) t (ien s


Cu) t (ie_ s // minutie
Cu) t (ie_ s // minutie
Cu) t (ies_ s Cu) t (ies_ s


cra) t (ie_ s // démocratie cra) t (ie_ s // démocratie


au) x (_ z2 // faux beaux au) x (_ z2 // faux beaux
eu) x (_ z2 // jeux eu) x (_ z2 // jeux
ou) x (_ z2 // choux genoux
ou) x (_ z2 // choux genoux


_au) x (quel // auxquels _au) x (quel // auxquels


¾ tRw'a k'aR ¾ tRw'a k'aR
© _^_EN © _^_EN
® R@ZistR'@d_m'aRk ® R@ZistR'@d_m'aRk


+ 1
- 0
dictsource/jbo_list View File



i $u+ $pause i $u+ $pause



// terminators (include a pause after) // terminators (include a pause after)
ku ku_: ku ku_:
boi bOI_: boi bOI_:

+ 6
- 4
dictsource/nl_rules View File

bs (_N ps bs (_N ps


_) be (@P2 b@ _) be (@P2 b@
_) bee be:
_) b (ee+ b
_) be (ter be:
_) beu bY: _) beu bY:








.group h .group h
_) h (_ hA:
_) h (_ ha:
h h h h
C) h (K C) h (K


o (CC O o (CC O
o (C_ O o (C_ O
o (r o: o (r o:
oo (r o:
oo (r O: // ?? or just for word-final "oor" ?
ooi o:j ooi o:j
oo o: oo o:
oe u oe u




.group s .group s
_) s (_ Es
s s s s
ss s ss s
sch s;
sch S;
sj S sj S





+ 1
- 0
dictsource/no_rules View File



o (nd U o (nd U
o (rt U o (rt U
o (rd u: // ?? or just for "bord" ?
o (st U o (st U


.group p .group p

+ 3
- 0
dictsource/sk_list View File

individuálne $alt individuálne $alt
iní $alt iní $alt
init $alt init $alt
inteligentní $alt
introvertní $alt introvertní $alt
jeden $alt jeden $alt
júni $alt júni $alt
podeň $alt podeň $alt
podísť $alt podísť $alt
postihnutí post;ihnuti: postihnutí post;ihnuti:
poučení $alt
poverení $alt poverení $alt
požiarne $alt požiarne $alt
predeň $alt predeň $alt
únie $alt únie $alt
únii $alt únii $alt
úniu $alt úniu $alt
ukrižovaní $alt
vážení $alt vážení $alt
vínečko $alt vínečko $alt
vinen $alt vinen $alt

+ 25
- 14
dictsource/sk_rules View File

b (_ p b (_ p
b (_G b b (_G b


_) bez (-P4 'bes
_) bezo (-P5 'bezo

.group c .group c
c ts c ts
ch x ch x
d (_ t d (_ t
d (_G d d (_G d
d (e d; d (e d;
d (e_ d
d (i d; d (i d;
d (í d; d (í d;
d (eT d // word has $alt attribute d (eT d // word has $alt attribute
d (iskre d d (iskre d
diskre) d (i d diskre) d (i d
_ka) d (et d _ka) d (et d
_) d (eci d
d (eci d
_) d (ece d
d (isku d d (isku d
_pre) d (íď d _pre) d (íď d
_pre) d (íd d _pre) d (íd d
n (g N n (g N
n (k N n (k N
n (e n^ n (e n^
n (e_ n
n (i n^ n (i n^
n (í n^ n (í n^
n (eT n // word has $alt attribute
n (eT n // word has $alt attribute from sk_list
n (iT n n (iT n
n (íT n n (íT n
@C) n (ej_ n

_) na (-P3 'na // include $alt2 words as stressed prefixes


n (ent n n (ent n
_be) n (ef n _be) n (ef n
_) n (eutrál n _) n (eutrál n
harmo) n (i n harmo) n (i n
_te) n (is n _te) n (is n
_) n (ikoti n
_) n (ikot n
lí) n (i n lí) n (i n
_konkrét) n (e n _konkrét) n (e n
_matki) n (e n _matki) n (e n
_) n (erv n _) n (erv n
natív) n (e n natív) n (e n
_) n (ext n _) n (ext n
zva) n (ej_ n
_u) n (i n


.group ň .group ň
ň n^ ň n^
.group p .group p
p p p p


_) po (-P3 'po
_) pod (-P4 'pot
_) pri (-P4 'pRi

.group q .group q
q k q k
qu kv qu kv
.group s .group s
s s s s


_) so (-P3 'so

.group š .group š
š S š S


.group t .group t
t t t t
t (e t; t (e t;
t (e_ t
t (i t; t (i t;
t (í t; t (í t;
t (eT t // word has $alt attribute t (eT t // word has $alt attribute
t (iT t t (iT t
t (íT t t (íT t


_teres) t (ri t
_) t (erestri t


t (ik_ t t (ik_ t
t (ing t t (ing t
_antipa) t (i t _antipa) t (i t
ema) t (i t ema) t (i t
_) t (imotej t _) t (imotej t
a) t (iká t


_sensi) tí ti: _sensi) tí ti:
_dif) tí (n ti: _dif) tí (n ti:
_konštruk) tí (v ti: _konštruk) tí (v ti:
_jus) tí ti: _jus) tí ti:
viknu) tí ti: viknu) tí ti:
ales) tí (t ti:






_sys) te (m te _sys) te (m te
_al) te (rn te _al) te (rn te
_syn) te ( te _syn) te ( te
_li) te (r te




.group ť .group ť


.group v .group v
v v v v
A) v (K w
A) v (n v
A) v (ň v
v (stať v
o) v (_ u
o) v (_ u

_) vy (@P2 'vi


.group w .group w
w v w v
% pertsento % pertsento
+ plus + plus


// 557

+ 96
- 41
phsource/compile_report View File

43 phoneme tables
44 phoneme tables
new total new total
base 96 96 base 96 96
base2 24 115 base2 24 115
en_sc 39 146 en_sc 39 146
en_rp 34 144 en_rp 34 144
en_wm 30 144 en_wm 30 144
en_wi 30 144
af 38 128 af 38 128
cy 29 122 cy 29 122
de 33 123 de 33 123
eo 13 108 eo 13 108
jbo 4 109 jbo 4 109
fi 40 127 fi 40 127
fr 34 118
fr_ca 11 118
fr 35 119
fr_ca 11 119
hi 50 132 hi 50 132
ta 13 134 ta 13 134
hu 23 112 hu 23 112
nl 26 117
nl 28 119
pl 15 107 pl 15 107
sk 29 125 sk 29 125
cs 6 125 cs 6 125
zhy 40 129 zhy 40 129
zh 61 143 zh 61 143
sw 14 105 sw 14 105
en_wi 30 144
th 50 139


Data file Used by Data file Used by
b/b [b] base b/b [b] base
dzh/xdz_pzd [J] base dzh/xdz_pzd [J] base
[J2] hi [J2] hi
envelope/p_214 [214] zh envelope/p_214 [214] zh
[5] th
envelope/p_451 [3] th
envelope/p_512 [8] vi envelope/p_512 [8] vi
envelope/p_fall [2] vi envelope/p_fall [2] vi
[7] vi [7] vi
[22] zh [22] zh
[33] zh [33] zh
[53] zh [53] zh
[1] th
[2] th
envelope/p_fallrise [4] vi envelope/p_fallrise [4] vi
envelope/p_level [1] vi envelope/p_level [1] vi
[3] zhy [3] zhy
[2] zhy [2] zhy
[5] zhy [5] zhy
[35] zh [35] zh
[4] th
envelope/vi_5 [5] vi envelope/vi_5 [5] vi
envelope/vi_5amp [5] vi envelope/vi_5amp [5] vi
envelope/vi_6 [6] vi envelope/vi_6 [6] vi
l^/l^ [l^] base l^/l^ [l^] base
l/l [l] base l/l [l] base
[l] en [l] en
[l] en_wi
[l] af [l] af
[l] hu [l] hu
[l] sk [l] sk
[l] la [l] la
[l] pt [l] pt
[l;] ro [l;] ro
[l] en_wi
l/_l [l] base l/_l [l] base
[l/] base [l/] base
[l] en [l] en
[l] en_wi
[l] af [l] af
[l/] de [l/] de
[l] hu [l] hu
[l] pt [l] pt
[l;] ro [l;] ro
[l] zh [l] zh
[l] en_wi
l/l_ [l/] base l/l_ [l/] base
l/l@ [(@)] base l/l@ [(@)] base
l/L1_aL [(a)] base l/L1_aL [(a)] base
l/lu [(u)] base l/lu [(u)] base
l/tl [l] base l/tl [l] base
[l] en [l] en
[l] en_wi
[l] af [l] af
[l] hu [l] hu
[l] sk [l] sk
[l] la [l] la
[l] pt [l] pt
[l;] ro [l;] ro
[l] en_wi
l/xl [(@)] base l/xl [(@)] base
[(a)] base [(a)] base
[(e)] base [(e)] base
[z] base [z] base
[s2] fi [s2] fi
[z2] fr [z2] fr
[z3] fr
[s2] hu [s2] hu
[s] es [s] es
[s#] pt [s#] pt
[s;] ro [s;] ro
ufric/s_pzd_ [s;] base ufric/s_pzd_ [s;] base
[z;] base [z;] base
ufric/sx_sv [sx] sv
ufric/sx_sv [Sx] nl
[sx] sv
ufric/th [T] base ufric/th [T] base
ufric/th_ [T] base ufric/th_ [T] base
ufric/tl# [tl#] is ufric/tl# [tl#] is
[k] el [k] el
[kh] zh [kh] zh
[k] sw [k] sw
[kh] th
ustop/ki [c] base ustop/ki [c] base
[k] base [k] base
[k] base2 [k] base2
[k] el [k] el
[k] zhy [k] zhy
ustop/k_unasp_ [k] zh ustop/k_unasp_ [k] zh
[k] th
ustop/p [p] base ustop/p [p] base
[p] fr [p] fr
[ph] hi [ph] hi
[p] zhy [p] zhy
[ph] th
ustop/p_ [p] base ustop/p_ [p] base
[p] fr [p] fr
[ph] hi [ph] hi
[p] la [p] la
[p;] ro [p;] ro
[p] zh [p] zh
[p] th
ustop/p_unasp_ [p] base2 ustop/p_unasp_ [p] base2
[p] fi [p] fi
[p] hi [p] hi
[t] sk [t] sk
[t] el [t] el
[th] zh [th] zh
[th] th
ustop/t_dnt [t] base ustop/t_dnt [t] base
[t[] base [t[] base
[t] base2 [t] base2
[t] sk [t] sk
[t] el [t] el
ustop/tsh_pzd [tS;] zh ustop/tsh_pzd [tS;] zh
[ch] th
ustop/tsh_pzd_unasp [tS;] zh ustop/tsh_pzd_unasp [tS;] zh
[c] th
ustop/tsh_sr.wav [tS] sr ustop/tsh_sr.wav [tS] sr
ustop/ts_pzd [tS;] base ustop/ts_pzd [tS;] base
[ts;] base [ts;] base
[dZ;] sr [dZ;] sr
ustop/ts_unasp [ts] zh ustop/ts_unasp [ts] zh
ustop/t_unasp [t] zh ustop/t_unasp [t] zh
[t] th
vdiph/0i [OI] pt vdiph/0i [OI] pt
[OI] grc [OI] grc
[OI] vi [OI] vi
[O:I] th
vdiph/0i_2 [OI] en_sc vdiph/0i_2 [OI] en_sc
[AI] no
[OI] en_wi [OI] en_wi
[AI] no
vdiph2/e@ [3:] en_sc vdiph2/e@ [3:] en_sc
[e@] en_sc [e@] en_sc
[e@] en_wi [e@] en_wi
vdiph2/e[u [e[u] ro vdiph2/e[u [e[u] ro
vdiph2/i@ [i@] en_n vdiph2/i@ [i@] en_n
vdiph2/i@_2 [i@] en_wm vdiph2/i@_2 [i@] en_wm
vdiph2/ie [ie] fi
[i@] en_wi
vdiph2/ie [i@] en_wi
[ie] fi
[ia] th
[i:a] th
vdiph2/ii@ [i@] en vdiph2/ii@ [i@] en
vdiph2/ii@_3 [i@] vi vdiph2/ii@_3 [i@] vi
vdiph2/iioo [io] zh vdiph2/iioo [io] zh
vdiph2/iu [iU] base2 vdiph2/iu [iU] base2
[iU] vi [iU] vi
[iu] zhy [iu] zhy
[iU] th
vdiph2/iu_2 [iu] fi vdiph2/iu_2 [iu] fi
vdiph2/iu_3 [iu] af vdiph2/iu_3 [iu] af
vdiph2/iu_4 [Iu] cy vdiph2/iu_4 [Iu] cy
[u@] zh [u@] zh
vdiph2/oa [Oa] ro vdiph2/oa [Oa] ro
[ua] zh [ua] zh
vdiph2/o_oo [o] is
[o@] en_wi
vdiph2/o_oo [o@] en_wi
[o] is
vdiph2/u-@ [y@] vi vdiph2/u-@ [y@] vi
[y:a] th
vdiph2/u#@ [U@] en_sc vdiph2/u#@ [U@] en_sc
vdiph2/uo [uo] fi vdiph2/uo [uo] fi
vdiph2/uu@ [U@] en vdiph2/uu@ [U@] en
[U@] en_n [U@] en_n
[U@] en_wm [U@] en_wm
[u@] vi [u@] vi
[ua] th
[u:a] th
vdiph2/y#@ [Y@] af vdiph2/y#@ [Y@] af
[y@] zh [y@] zh
vdiph2/yu [yU] nl vdiph2/yu [yU] nl
[AY] cy [AY] cy
vdiph/aai_3 [ai] fi vdiph/aai_3 [ai] fi
vdiph/aau [au] fi vdiph/aau [au] fi
vdiph/aau_2 [aU] de
vdiph/aau_2 [aU] en_wi
[aU] de
[VU] nl [VU] nl
[aU] la [aU] la
[aau] zhy [aau] zhy
[aU] en_wi
vdiph/aau_3 [aU] hi vdiph/aau_3 [aU] hi
vdiph/aau_4 [aU] vi vdiph/aau_4 [aU] vi
vdiph/ae [E:] fr_ca vdiph/ae [E:] fr_ca
[ai] zh [ai] zh
vdiph/ae_2 [aI] en_n vdiph/ae_2 [aI] en_n
vdiph/ai [aI] base2 vdiph/ai [aI] base2
[aI] en_wi
[aI] eo [aI] eo
[aI] sk [aI] sk
[aI] hr [aI] hr
[aI] it [aI] it
[aI] pt [aI] pt
[a:I] vi [a:I] vi
[aI] en_wi
[aI] th
[a:I] th
vdiph/ai_2 [aI] cy vdiph/ai_2 [aI] cy
[aY] cy [aY] cy
vdiph/ai_3 [aI] no vdiph/ai_3 [aI] no
vdiph/au [aU] en vdiph/au [aU] en
[aU] af [aU] af
[a:U] vi [a:U] vi
[aU] th
[a:U] th
vdiph/au# [aU] en_sc vdiph/au# [aU] en_sc
vdiph/au_2 [aU] en_us vdiph/au_2 [aU] en_us
[au] zhy [au] zhy
[EU] grc [EU] grc
[EU] vi [EU] vi
[eu] zhy [eu] zhy
[E:U] th
vdiph/eeu_2 [EU] la vdiph/eeu_2 [EU] la
[EU] pt_pt [EU] pt_pt
vdiph/eeu_3 [aU] en_n vdiph/eeu_3 [aU] en_n
[eU] sk [eU] sk
[eU] pt [eU] pt
[eU] vi [eU] vi
[eU] th
[e:U] th
vdiph/eu_2 [eu] fi vdiph/eu_2 [eu] fi
vdiph/@i [@:I] th
vdiph/&i [&i] fi vdiph/&i [&i] fi
[aI] hi [aI] hi
vdiph/@i_2 [eI] af vdiph/@i_2 [eI] af
[oI] it [oI] it
[OI] la [OI] la
[oI] vi [oI] vi
[o:I] th
vdiph/oi_2 [oI] af vdiph/oi_2 [oI] af
vdiph/ooi [OI] en vdiph/ooi [OI] en
[OI] en_n [OI] en_n
[ui] fi [ui] fi
[uI] vi [uI] vi
[ui] zhy [ui] zhy
[uI] th
[u:I] th
vdiph/u-i [yI] vi vdiph/u-i [yI] vi
vdiph/ui_2 [uI] af vdiph/ui_2 [uI] af
vdiph/ui_3 [uI] cy vdiph/ui_3 [uI] cy
vocw/zh_rfx [z.] base vocw/zh_rfx [z.] base
voc/z [z] base voc/z [z] base
[z2] fr [z2] fr
[z3] fr
[z;] ro [z;] ro
voc/z_ [z] base voc/z_ [z] base
[z2] fr [z2] fr
[z3] fr
[z;] ro [z;] ro
voc/zh [Z] base voc/zh [Z] base
[z.] base [z.] base
[@] en_rp [@] en_rp
[V] cy [V] cy
[@4] hi [@4] hi
[@] th
vowel/@- [@-] base vowel/@- [@-] base
[r*] hr [r*] hr
vowel/& [a] en_rp vowel/& [a] en_rp
vowel/3_en [3:] en vowel/3_en [3:] en
[e@] en_wm [e@] en_wm
[3:] af [3:] af
[@:] th
vowel/@_4 [@] nl vowel/@_4 [@] nl
vowel/8_2 [U] en_us vowel/8_2 [U] en_us
[8] sv [8] sv
[a] it [a] it
[a:] la [a:] la
[a] zh [a] zh
[a] th
[a:] th
vowel/a# [a/] base2 vowel/a# [a/] base2
[a2] en_sc [a2] en_sc
[a2] en_wi
[&] sr [&] sr
[&] pt [&] pt
[&/] pt [&/] pt
[a2] en_wi
vowel/a_2 [a] base2 vowel/a_2 [a] base2
[a] en_wi
[A:] en_wi
[A@] en_wi
[aa] en_wi
[a] eo [a] eo
[a] la [a] la
[A] pt [A] pt
[a] pt_pt [a] pt_pt
[a] ro [a] ro
[a:] vi [a:] vi
[a] en_wi
[A:] en_wi
[A@] en_wi
[aa] en_wi
vowel/a#_2 [a] ta vowel/a#_2 [a] ta
[&] hr [&] hr
[a2] sv [a2] sv
[A:] no [A:] no
[aa] zhy [aa] zhy
[A] zh [A] zh
vowel/aa# [a2] fi
[0] en_wi
vowel/aa# [0] en_wi
[a2] fi
vowel/aa_2 [A:] en vowel/aa_2 [A:] en
[A@] en [A@] en
[A:] cy [A:] cy
[e:] en [e:] en
[eI] en_n [eI] en_n
[E] en_wm [E] en_wm
[E] en_wi
[eI] en_wi
[e:] af [e:] af
[e:] cy [e:] cy
[e] eo [e] eo
[e] pt_pt [e] pt_pt
[e] grc [e] grc
[e] vi [e] vi
[E] en_wi
[eI] en_wi
[e] th
[e:] th
vowel/e# [I] en_sc vowel/e# [I] en_sc
[I2] en_sc [I2] en_sc
vowel/e_2 [eI] en_sc vowel/e_2 [eI] en_sc
vowel/ee_6 [E] en_n vowel/ee_6 [E] en_n
[&] sk [&] sk
[E3] sv [E3] sv
[E] th
[E:] th
vowel/e_mid [E] en_rp vowel/e_mid [E] en_rp
[e] jbo [e] jbo
[E] fr_ca [E] fr_ca
[e] ro [e] ro
[e] el [e] el
[e] sw [e] sw
vowel/@_fnt [@2] hr
[@] en_wi
vowel/@_fnt [@] en_wi
[@2] en_wi [@2] en_wi
[@2] hr
vowel/@_hgh [@] en_us vowel/@_hgh [@] en_us
[@2] en_us [@2] en_us
[@5] en_us [@5] en_us
vowel/i [i] base2 vowel/i [i] base2
[i:] en_n [i:] en_n
[i] en_wm [i] en_wm
[i] en_wi
[i:] cy [i:] cy
[i] eo [i] eo
[I] fr [I] fr
[i] zhy [i] zhy
[i] zh [i] zh
[i] sw [i] sw
[i] en_wi
[i] th
[i:] th
vowel/i# [i] en_us vowel/i# [i] en_us
[i] en_rp [i] en_rp
[y:] cy [y:] cy
[i] hu [i] hu
[I] it [I] it
[i] is [i] is
vowel/i#_4 [y] th
[y:] th
vowel/i_5 [i:] en_sc vowel/i_5 [i:] en_sc
vowel/i#_5 [y] pt_pt vowel/i#_5 [y] pt_pt
[i/] pt_pt [i/] pt_pt
[i] hr [i] hr
vowel/i_en [i:] en vowel/i_en [i:] en
[i] vi [i] vi
vowel/i_fnt [i] hi
vowel/i_fnt [i:] en_wi
[i] hi
[i:] hi [i:] hi
[i:] en_wi
vowel/ii [I] en_rp vowel/ii [I] en_rp
[I2] en_rp [I2] en_rp
[I] en_wm [I] en_wm
[@2] no [@2] no
vowel/o [o] base2 vowel/o [o] base2
[o:] en [o:] en
[oU] en_wi
[o:] de [o:] de
[o] hi [o] hi
[o] ta [o] ta
[o:] sv [o:] sv
[o] zh [o] zh
[u] zh [u] zh
[oU] en_wi
[o] th
[o:] th
vowel/o- [o-] zh vowel/o- [o-] zh
vowel/o_2 [o:] cy vowel/o_2 [o:] cy
[o:] hi [o:] hi
vowel/o-_3 [U] en_rp vowel/o-_3 [U] en_rp
vowel/o_4 [oU] en_n vowel/o_4 [oU] en_n
vowel/o-_4 [o] ro vowel/o-_4 [o] ro
vowel/o_6 [O] nl
vowel/o_5 [O] nl
vowel/o_6 [O:] nl
vowel/oe [W] en vowel/oe [W] en
[W] af [W] af
[W] de [W] de
vowel/o_mid [O] fr vowel/o_mid [O] fr
[o] hu [o] hu
vowel/oo [O:] en_sc vowel/oo [O:] en_sc
[O] en_wi
[O:] en_wi
[O@] en_wi
[O] de [O] de
[o] eo [o] eo
[O] la [O] la
[O] sv [O] sv
[O] no [O] no
[o] zhy [o] zhy
[O] en_wi
[O:] en_wi
[O@] en_wi
[O] th
[O:] th
vowel/oo_1 [O:] en_n vowel/oo_1 [O:] en_n
[O:] en_rp [O:] en_rp
[O@] en_rp [O@] en_rp
[o] cs [o] cs
vowel/oo_3 [O] af vowel/oo_3 [O] af
vowel/oo_4 [0] en_wm vowel/oo_4 [0] en_wm
[V] en_wi
[3:] en_wi
[O:] hi [O:] hi
[O] pl [O] pl
[O] it [O] it
[V] en_wi
[3:] en_wi
vowel/oo_5 [O] is vowel/oo_5 [O] is
vowel/oo_en [O] en vowel/oo_en [O] en
[O:] en [O:] en
[3] en_sc [3] en_sc
[@r] zh [@r] zh
vowelr/V_r [IR] en vowelr/V_r [IR] en
vowel/u [u:] cy
vowel/u [u:] en_wi
[u:] cy
[u:] de [u:] de
[u] eo [u] eo
[U] fr [U] fr
[u:] cs [u:] cs
[u:] la [u:] la
[u] zh [u] zh
[u:] en_wi
[u] th
[u:] th
vowel/u# [u-] en vowel/u# [u-] en
[u:] en_sc [u:] en_sc
vowel/u_2 [u1] fi vowel/u_2 [u1] fi
vowel/uu_4 [U] fi vowel/uu_4 [U] fi
[U] sv [U] sv
vowel/uu_bck [U] en_n vowel/uu_bck [U] en_n
[U] en_wi
[U] fr_ca [U] fr_ca
[U] hi [U] hi
[u] ta [u] ta
[U] pt [U] pt
[U] no [U] no
[u] zhy [u] zhy
[U] en_wi
vowel/V [3] en_sc vowel/V [3] en_sc
vowel/V_2 [V] en vowel/V_2 [V] en
[a] af [a] af

+ 3
- 3
phsource/envelope/p_214 View File

ENVELOPE ENVELOPE
0 33 0 33
25 16
50 0
75 50
20 15
35 3
75 40
100 100 100 100





+ 16
- 0
phsource/ph_dutch View File

phoneme O phoneme O
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 150 length 150
formants vowel/o_5
endphoneme

phoneme O: // for "oor"
vowel starttype (o) endtype (o)
length 210
formants vowel/o_6 formants vowel/o_6
endphoneme endphoneme


endphoneme endphoneme




phoneme Sx // Swedish "sj" sound for TESTING
vls vel frc
vowelin f1=0 f2=2300 300 400 f3=200 100
vowelout f1=0 f2=2300 300 400 f3=200 100 rms=20
length 100
lengthmod 3
wave ufric/sx_sv%60
endphoneme



+ 11
- 1
phsource/ph_french View File



phoneme A~ phoneme A~
vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)
length 160
length 170
formants vnasal/aa_n3 formants vnasal/aa_n3
endphoneme endphoneme


lengthmod 6 lengthmod 6
endphoneme endphoneme


phoneme z3 // "six" and "dix". [s] before pause, [z] before vowel, else []
beforepause s
beforenotvowel NULL
vcd alv frc sibilant
vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
formants voc/z+ufric/s_
before _ voc/z_+ufric/s_
lengthmod 6
endphoneme





phoneme k phoneme k

+ 6
- 8
phsource/phonemes View File

phonemetable en_wm en phonemetable en_wm en
include ph_english_wm include ph_english_wm


phonemetable en_wi en
include ph_english_wi


phonemetable af base phonemetable af base
include ph_afrikaans include ph_afrikaans


phonemetable sw base phonemetable sw base
include ph_swahili include ph_swahili


//phonemetable basef base
//include pf
//phonemetable f_en basef
//include pf_english

phonemetable en_wi en
include ph_english_wi

phonemetable th base
include ph_thai



BIN
phsource/vowel/a View File


BIN
phsource/vowel/i#_4 View File


BIN
phsource/vowel/i#_6 View File


BIN
phsource/vowel/o_5 View File


BIN
phsource/vowel/u_unr View File


+ 8
- 4
platforms/windows/windows_dll/src/speak_lib.h View File

Revision 3 Revision 3
Added espeakWORDGAP to espeak_PARAMETER Added espeakWORDGAP to espeak_PARAMETER


Revision 4
Added flags parameter to espeak_CompileDictionary()

*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */
espeakEVENT_SENTENCE, // Start of sentence espeakEVENT_SENTENCE, // Start of sentence
espeakEVENT_MARK, // Mark espeakEVENT_MARK, // Mark
espeakEVENT_PLAY, // Audio element espeakEVENT_PLAY, // Audio element
espeakEVENT_END, // End of sentence
espeakEVENT_END, // End of sentence or clause
espeakEVENT_MSG_TERMINATED, // End of message espeakEVENT_MSG_TERMINATED, // End of message
espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize() espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize()
} espeak_EVENT_TYPE; } espeak_EVENT_TYPE;
EE_INTERNAL_ERROR. EE_INTERNAL_ERROR.
*/ */


/* Note, there is no function to play a sound icon. This would be done by the calling program */





/***********************/ /***********************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log);
ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags);
/* Compile pronunciation dictionary for a language which corresponds to the currently /* Compile pronunciation dictionary for a language which corresponds to the currently
selected voice. The required voice should be selected before calling this function. selected voice. The required voice should be selected before calling this function.


path: The directory which contains the language's '_rules' and '_list' files. path: The directory which contains the language's '_rules' and '_list' files.
'path' should end with a path separator character ('/'). 'path' should end with a path separator character ('/').
log: Stream for error reports and statistics information. If log=NULL then stderr will be used. log: Stream for error reports and statistics information. If log=NULL then stderr will be used.

flags: Bit 0: include source line information for debug purposes (This is displayed with the
-X command line option).
*/ */
/***********************/ /***********************/
/* Voice Selection */ /* Voice Selection */

+ 9
- 0
src/compiledata.cpp View File

#define tVOWELOUT 23 #define tVOWELOUT 23
#define tAPPENDPH 24 // always insert another phoneme (linkout) after this one #define tAPPENDPH 24 // always insert another phoneme (linkout) after this one
#define tIMPORTPH 25 #define tIMPORTPH 25
#define tBEFOREPAUSE 26


#define tPHONEMENUMBER 29 #define tPHONEMENUMBER 29
#define tPHONEMETABLE 30 #define tPHONEMETABLE 30
{"vowelout",23}, {"vowelout",23},
{"appendph",24}, {"appendph",24},
{"import_phoneme",25}, {"import_phoneme",25},
{"beforepause",26},


// flags // flags
{"wavef", 0x2000000+phWAVE}, {"wavef", 0x2000000+phWAVE},
ph->alternative_ph = phcode; ph->alternative_ph = phcode;
break; break;


case tBEFOREPAUSE:
ph->phflags |= phBEFOREPAUSE;
if((phcode = NextItem(tPHONEMEMNEM)) == -1)
phcode = LookupPhoneme(item_string,1);
ph->link_out = phcode;
break;

case tAPPENDPH: case tAPPENDPH:
ph->phflags |= phAPPENDPH; // drop through to tLINKOUT ph->phflags |= phAPPENDPH; // drop through to tLINKOUT
case tLINKOUT: case tLINKOUT:

+ 54
- 7
src/espeak.cpp View File





int samplerate; int samplerate;
int quiet = 0;
unsigned int samples_total = 0;
unsigned int samples_split = 0;
unsigned int wavefile_count = 0;

FILE *f_wavfile = NULL; FILE *f_wavfile = NULL;
char wavefile[160];
char filetype[5];
char wavefile[200];




int GetFileLength(const char *filename) int GetFileLength(const char *filename)






static void CloseWavFile(int rate)
//================================
static void CloseWavFile()
//========================
{ {
unsigned int pos; unsigned int pos;


} // end of CloseWavFile } // end of CloseWavFile





static int SynthCallback(short *wav, int numsamples, espeak_EVENT *events) static int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
{//======================================================================== {//========================================================================
char fname[210];


if(f_wavfile == NULL) return(0); // -q quiet mode
if(quiet) return(0); // -q quiet mode


if(wav == NULL) if(wav == NULL)
{ {
CloseWavFile(samplerate);
CloseWavFile();
return(0); return(0);
} }


if(samples_split > 0)
{
// start a new WAV file when this limit is reached, at the next sentence boundary
while(events->type != 0)
{
if((events->type == espeakEVENT_SENTENCE) && (samples_total > samples_split))
{
CloseWavFile();
samples_total = 0;
}
events++;
}
}

if(f_wavfile == NULL)
{
sprintf(fname,"%s_%.2d%s",wavefile,++wavefile_count,filetype);
if(OpenWavFile(fname, samplerate) != 0)
return(1);
}

if(numsamples > 0) if(numsamples > 0)
{ {
samples_total += numsamples;
fwrite(wav,numsamples*2,1,f_wavfile); fwrite(wav,numsamples*2,1,f_wavfile);
} }
return(0); return(0);
{"punct", optional_argument, 0, 0x103}, {"punct", optional_argument, 0, 0x103},
{"voices", optional_argument, 0, 0x104}, {"voices", optional_argument, 0, 0x104},
{"stdout", no_argument, 0, 0x105}, {"stdout", no_argument, 0, 0x105},
{"split", optional_argument, 0, 0x106},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };


int option_index = 0; int option_index = 0;
int c; int c;
int ix; int ix;
int quiet = 0;
int flag_stdin = 0; int flag_stdin = 0;
int flag_compile = 0; int flag_compile = 0;
int filesize = 0; int filesize = 0;
DisplayVoices(stdout,optarg); DisplayVoices(stdout,optarg);
exit(0); exit(0);


case 0x106: // -- split
if(optarg == NULL)
samples_split = 30; // default 30 minutes
else
samples_split = atoi(optarg);
break;

default: default:
exit(0); exit(0);
} }
{ {
// writing to a file (or no output), we can use synchronous mode // writing to a file (or no output), we can use synchronous mode
samplerate = espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,NULL,0); samplerate = espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,NULL,0);
samples_split = (samplerate * samples_split) * 60;


espeak_SetSynthCallback(SynthCallback); espeak_SetSynthCallback(SynthCallback);
if(samples_split)
{
char *extn;
extn = strrchr(wavefile,'.');
if((extn != NULL) && ((wavefile + strlen(wavefile) - extn) <= 4))
{
strcpy(filetype,extn);
*extn = 0;
}
}
else
if(option_waveout) if(option_waveout)
{ {
if(OpenWavFile(wavefile,samplerate) != 0) if(OpenWavFile(wavefile,samplerate) != 0)

+ 9
- 3
src/numbers.cpp View File

else else
if(c == 0xff) if(c == 0xff)
{ {
if(control < 2)
if((control < 2) || (ix==0))
continue; // don't insert pauses continue; // don't insert pauses


if(control == 4) if(control == 4)
c = phonPAUSE; // pause after each character c = phonPAUSE; // pause after each character
if(((count % 3) == 0) || (control == 4)) if(((count % 3) == 0) || (control == 4))
c = phonPAUSE_NOLINK; // pause following a primary stress
c = phonPAUSE_SHORT; // pause following a primary stress
else else
continue; // remove marker continue; // remove marker
} }
if((ph_out[0] != 0) && (ph_out[0] != phonSWITCH)) if((ph_out[0] != 0) && (ph_out[0] != phonSWITCH))
{ {
int next_char; int next_char;
utf8_in(&next_char,&word[n_digits+1],0);
char *p;
p = &word[n_digits+1];

p += utf8_in(&next_char,p,0);
if((langopts.numbers & NUM_NOPAUSE) && (next_char == ' '))
utf8_in(&next_char,p,0);

if(!iswalpha(next_char)) if(!iswalpha(next_char))
strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc.
} }

+ 1
- 0
src/phoneme.h View File

#define phLONG 0x1000 #define phLONG 0x1000
#define phAPPENDPH 0x2000 // always insert another phoneme (link_out) after this one #define phAPPENDPH 0x2000 // always insert another phoneme (link_out) after this one
#define phBRKAFTER 0x4000 // [*] add a post-pause #define phBRKAFTER 0x4000 // [*] add a post-pause
#define phBEFOREPAUSE 0x8000 // replace with the link_out phoneme if the next phoneme is a pause


#define phALTERNATIVE 0x0c00 // bits 10,11 specifying use of alternative_ph #define phALTERNATIVE 0x0c00 // bits 10,11 specifying use of alternative_ph
#define phBEFOREVOWEL 0x0000 #define phBEFOREVOWEL 0x0000

+ 23
- 18
src/phonemelist.cpp View File

} }
} }


alternative = 0;

if(ph->alternative_ph > 0) if(ph->alternative_ph > 0)
{ {
alternative = 0;

switch(ph->phflags & phALTERNATIVE) switch(ph->phflags & phALTERNATIVE)
{ {
// This phoneme changes if vowel follows, or doesn't follow, depending on its phNOTFOLLOWS flag // This phoneme changes if vowel follows, or doesn't follow, depending on its phNOTFOLLOWS flag
alternative = ph->alternative_ph; alternative = ph->alternative_ph;
break; break;
} }
}
if(ph->phflags & phBEFOREPAUSE)
{
if(next->type == phPAUSE)
alternative = ph->link_out; // replace with the link_out phoneme
}


if(alternative == 1)
continue; // NULL phoneme, discard
if(alternative == 1)
continue; // NULL phoneme, discard


if(alternative > 1)
{
PHONEME_TAB *ph2;
ph2 = ph;
ph = phoneme_tab[alternative];
if(alternative > 1)
{
PHONEME_TAB *ph2;
ph2 = ph;
ph = phoneme_tab[alternative];


if(ph->type == phVOWEL)
{
plist2->synthflags |= SFLAG_SYLLABLE;
if(ph2->type != phVOWEL)
plist2->stress = 0; // change from non-vowel to vowel, make sure it's unstressed
}
else
plist2->synthflags &= ~SFLAG_SYLLABLE;
if(ph->type == phVOWEL)
{
plist2->synthflags |= SFLAG_SYLLABLE;
if(ph2->type != phVOWEL)
plist2->stress = 0; // change from non-vowel to vowel, make sure it's unstressed
} }
else
plist2->synthflags &= ~SFLAG_SYLLABLE;
} }


if(langopts.param[LOPT_REDUCE_T]) if(langopts.param[LOPT_REDUCE_T])


next2 = phoneme_tab[(plist2+2)->phcode]; next2 = phoneme_tab[(plist2+2)->phcode];


if((insert_ph == 0) && (ph->link_out != 0) && (((plist2+1)->synthflags & SFLAG_EMBEDDED)==0))
if((insert_ph == 0) && (ph->link_out != 0) && !(ph->phflags && phBEFOREPAUSE) && (((plist2+1)->synthflags & SFLAG_EMBEDDED)==0))
{ {
if(ph->phflags & phAPPENDPH) if(ph->phflags & phAPPENDPH)
{ {

+ 1
- 1
src/readclause.cpp View File



// indexed by (entry num. in punct_chars) + 1 // indexed by (entry num. in punct_chars) + 1
// bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket // bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket
static const unsigned short punct_attributes [] = { 0,
static const unsigned int punct_attributes [] = { 0,
CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON,
CLAUSE_SEMICOLON, // en-dash CLAUSE_SEMICOLON, // en-dash
CLAUSE_SEMICOLON, // em-dash CLAUSE_SEMICOLON, // em-dash

+ 131
- 3
src/speak.cpp View File







extern void Write4Bytes(FILE *f, int value);
char path_home[N_PATH_HOME]; // this is the espeak-data directory char path_home[N_PATH_HOME]; // this is the espeak-data directory


char wavefile[120];
char filetype[5];
char wavefile[200];
int (* uri_callback)(int, const char *, const char *) = NULL; int (* uri_callback)(int, const char *, const char *) = NULL;
int (* phoneme_callback)(const char *) = NULL; int (* phoneme_callback)(const char *) = NULL;


FILE *f_wave = NULL;
int quiet = 0;
unsigned int samples_total = 0;
unsigned int samples_split = 0;
unsigned int wavefile_count = 0;
int end_of_sentence = 0;


static const char *help_text = static const char *help_text =
"\nspeak [options] [\"<words>\"]\n\n" "\nspeak [options] [\"<words>\"]\n\n"
} // end of PitchAdjustment } // end of PitchAdjustment






static int OpenWaveFile(const char *path, int rate)
//=================================================
{
// Set the length of 0x7fffffff for --stdout
// This will be changed to the correct length for -w (write to file)
static unsigned char wave_hdr[44] = {
'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ',
0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0,
2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f};

if(path == NULL)
return(2);

if(strcmp(path,"stdout")==0)
f_wave = stdout;
else
f_wave = fopen(path,"wb");

if(f_wave != NULL)
{
fwrite(wave_hdr,1,24,f_wave);
Write4Bytes(f_wave,rate);
Write4Bytes(f_wave,rate * 2);
fwrite(&wave_hdr[32],1,12,f_wave);
return(0);
}
return(1);
} // end of OpenWaveFile




static void CloseWaveFile()
//=========================
{
unsigned int pos;

if((f_wave == NULL) || (f_wave == stdout))
return;

fflush(f_wave);
pos = ftell(f_wave);

fseek(f_wave,4,SEEK_SET);
Write4Bytes(f_wave,pos - 8);

fseek(f_wave,40,SEEK_SET);
Write4Bytes(f_wave,pos - 44);


fclose(f_wave);
f_wave = NULL;

} // end of CloseWaveFile




void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr)
{//====================================================================================== {//======================================================================================
// Do nothing in the command-line version. // Do nothing in the command-line version.
if(type == 2)
end_of_sentence = 1;
} // end of MarkerEvent } // end of MarkerEvent




static int WavegenFile(void)
{//=========================
int finished;
unsigned char wav_outbuf[512];
char fname[210];

out_ptr = out_start = wav_outbuf;
out_end = wav_outbuf + sizeof(wav_outbuf);

finished = WavegenFill(0);

if(f_wave == NULL)
{
sprintf(fname,"%s_%.2d%s",wavefile,++wavefile_count,filetype);
if(OpenWaveFile(fname, samplerate) != 0)
return(1);
}

if(end_of_sentence)
{
end_of_sentence = 0;
if(samples_total > samples_split)
{
CloseWaveFile();
samples_total = 0;
}
}

if(f_wave != NULL)
{
samples_total += (out_ptr - wav_outbuf)/2;
fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave);
}
return(finished);
} // end of WavegenFile




static void init_path(char *argv0) static void init_path(char *argv0)
{//=============================== {//===============================
{"punct", optional_argument, 0, 0x103}, {"punct", optional_argument, 0, 0x103},
{"voices", optional_argument, 0, 0x104}, {"voices", optional_argument, 0, 0x104},
{"stdout", no_argument, 0, 0x105}, {"stdout", no_argument, 0, 0x105},
{"split", optional_argument, 0, 0x106},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };


int amp = 100; // default int amp = 100; // default
int wordgap = 0; int wordgap = 0;
int speaking = 0; int speaking = 0;
int quiet = 0;
int flag_stdin = 0; int flag_stdin = 0;
int flag_compile = 0; int flag_compile = 0;
int pitch_adjustment = 50; int pitch_adjustment = 50;
DisplayVoices(stdout,optarg2); DisplayVoices(stdout,optarg2);
exit(0); exit(0);



case 0x106: // -- split
if(optarg2 == NULL)
samples_split = 30; // default 30 minutes
else
samples_split = atoi(optarg2);
break;
default: default:
exit(0); exit(0);
} }
else else
{ {
// write sound output to a WAV file // write sound output to a WAV file
samples_split = (samplerate * samples_split) * 60;

if(samples_split)
{
// don't open the wav file until we start generating speech
char *extn;
extn = strrchr(wavefile,'.');
if((extn != NULL) && ((wavefile + strlen(wavefile) - extn) <= 4))
{
strcpy(filetype,extn);
*extn = 0;
}
}
else
if(OpenWaveFile(wavefile,samplerate) != 0) if(OpenWaveFile(wavefile,samplerate) != 0)
{ {
fprintf(stderr,"Can't write to output file '%s'\n'",wavefile); fprintf(stderr,"Can't write to output file '%s'\n'",wavefile);
SpeakNextClause(NULL,NULL,1); SpeakNextClause(NULL,NULL,1);
} }


CloseWaveFile(samplerate);
CloseWaveFile();
} }
else else
{ {

+ 1
- 1
src/speak_lib.h View File

espeakEVENT_SENTENCE, // Start of sentence espeakEVENT_SENTENCE, // Start of sentence
espeakEVENT_MARK, // Mark espeakEVENT_MARK, // Mark
espeakEVENT_PLAY, // Audio element espeakEVENT_PLAY, // Audio element
espeakEVENT_END, // End of sentence
espeakEVENT_END, // End of sentence or clause
espeakEVENT_MSG_TERMINATED, // End of message espeakEVENT_MSG_TERMINATED, // End of message
espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize() espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize()
} espeak_EVENT_TYPE; } espeak_EVENT_TYPE;

+ 80
- 0
src/speak_riscos.cpp View File

extern int WcmdqUsed(); extern int WcmdqUsed();
extern void FreePhData(); extern void FreePhData();
extern void FreeDictionary(); extern void FreeDictionary();
extern void Write4Bytes(FILE *f, int value);


extern int wcmdq_head; extern int wcmdq_head;
extern int wcmdq_tail; extern int wcmdq_tail;
extern int current_source_index; extern int current_source_index;


FILE *f_text; FILE *f_text;
FILE *f_wave = NULL;
int (* uri_callback)(int, const char *, const char *) = NULL; int (* uri_callback)(int, const char *, const char *) = NULL;
int (* phoneme_callback)(const char *) = NULL; int (* phoneme_callback)(const char *) = NULL;


#endif #endif






static int OpenWaveFile(const char *path, int rate)
//=================================================
{
// Set the length of 0x7fffffff for --stdout
// This will be changed to the correct length for -w (write to file)
static unsigned char wave_hdr[44] = {
'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ',
0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0,
2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f};

if(path == NULL)
return(2);

if(strcmp(path,"stdout")==0)
f_wave = stdout;
else
f_wave = fopen(path,"wb");

if(f_wave != NULL)
{
fwrite(wave_hdr,1,24,f_wave);
Write4Bytes(f_wave,rate);
Write4Bytes(f_wave,rate * 2);
fwrite(&wave_hdr[32],1,12,f_wave);
return(0);
}
return(1);
} // end of OpenWaveFile




static void CloseWaveFile(int rate)
//=================================
{
unsigned int pos;

if((f_wave == NULL) || (f_wave == stdout))
return;

fflush(f_wave);
pos = ftell(f_wave);

fseek(f_wave,4,SEEK_SET);
Write4Bytes(f_wave,pos - 8);

fseek(f_wave,40,SEEK_SET);
Write4Bytes(f_wave,pos - 44);


fclose(f_wave);
f_wave = NULL;

} // end of CloseWaveFile




void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr)
{//====================================================================================== {//======================================================================================
// Do nothing in the command-line version. // Do nothing in the command-line version.
} // end of MarkerEvent } // end of MarkerEvent




static int WavegenFile(void)
{//=========================
int finished;
unsigned char wav_outbuf[1024];

out_ptr = out_start = wav_outbuf;
out_end = wav_outbuf + sizeof(wav_outbuf);

finished = WavegenFill(0);

if(f_wave != NULL)
{
fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave);
}
return(finished);
} // end of WavegenFile






void FillSoundBuf(int size) void FillSoundBuf(int size)

+ 24
- 2
src/spectseq.cpp View File



int SpeakNextClause(FILE *f_text, const void *text_in, int control); int SpeakNextClause(FILE *f_text, const void *text_in, int control);
extern void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2); extern void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2);
extern int Wavegen();
extern void CloseWaveFile2();
extern FILE *f_wave;


static int frame_width; static int frame_width;


} // end of PeaksZero } // end of PeaksZero





void MakeWaveFile()
{//================
int result=1;
unsigned char wav_outbuf[1024];

while(result != 0)
{
out_ptr = out_start = wav_outbuf;
out_end = &wav_outbuf[sizeof(wav_outbuf)];
result = Wavegen();
if(f_wave != NULL)
fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave);
}
} // end of MakeWaveFile




SpectSeq::SpectSeq(int n) SpectSeq::SpectSeq(int n)
{//====================== {//======================
numframes = n; numframes = n;
SetSynth_mS(30,peaks2,peaks0); SetSynth_mS(30,peaks2,peaks0);
MakeWaveFile(); MakeWaveFile();


CloseWaveFile(samplerate);
CloseWaveFile2();
PlayWavFile(fname_speech); PlayWavFile(fname_speech);


} // end of SpectSeq::MakeWave } // end of SpectSeq::MakeWave
#endif #endif
} }


CloseWaveFile(samplerate);
CloseWaveFile2();
PlayWavFile(fname_speech); PlayWavFile(fname_speech);


} // end of SpectFrame::MakeWaveFrame } // end of SpectFrame::MakeWaveFrame

+ 2
- 2
src/synthdata.cpp View File

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


const char *version_string = "1.30.05 07.Jan.08";
const int version_phdata = 0x013005;
const char *version_string = "1.30.10 13.Jan.08";
const int version_phdata = 0x013010;


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



+ 0
- 3
src/synthesize.h View File

int WavegenCloseSound(); int WavegenCloseSound();
int WavegenInitSound(); int WavegenInitSound();
void WavegenInit(int rate, int wavemult_fact); void WavegenInit(int rate, int wavemult_fact);
int OpenWaveFile(const char *path, int rate);
void CloseWaveFile(int rate);
float polint(float xa[],float ya[],int n,float x); float polint(float xa[],float ya[],int n,float x);
int WavegenFile(void);
int WavegenFill(int fill_zeros); int WavegenFill(int fill_zeros);
void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr); void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr);



+ 19
- 1
src/tr_languages.cpp View File

tr->langopts.stress_flags = 0x0024; // don't use secondary stress tr->langopts.stress_flags = 0x0024; // don't use secondary stress
tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables


tr->langopts.numbers = 0x1509;
tr->langopts.numbers = 0x1509 + NUM_NOPAUSE | NUM_ROMAN;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
} }
break; break;
} }
break; break;



case L('t','h'): // Thai
{
static const short stress_lengths_th[8] = {230,150, 230,230, 230,0, 230,250};
static const unsigned char stress_amps_th[] = {22,16, 22,22, 22,22, 22,22 };

tr = new Translator;
SetupTranslator(tr,stress_lengths_th,stress_amps_th);

tr->langopts.stress_rule = 0; // stress on final syllable of a "word"
tr->langopts.stress_flags = 1; // don't automatically set diminished stress (may be set in the intonation module)
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches()
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
// tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping)
tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
}
break;

case L('t','r'): // Turkish case L('t','r'): // Turkish
{ {
static const unsigned char stress_amps_tr[8] = {16,16, 20,20, 20,24, 24,22 }; static const unsigned char stress_amps_tr[8] = {16,16, 20,20, 20,24, 24,22 };

+ 6
- 2
src/translate.cpp View File



if((option_sayas & 0xf0) == 0x10) if((option_sayas & 0xf0) == 0x10)
{ {
// SAYAS_CHARS, SAYAS_GLYPHS, or SAYAS_SINGLECHARS. Pause between each word.
pre_pause += 4;
if(!(word_flags & FLAG_FIRST_WORD))
{
// SAYAS_CHARS, SAYAS_GLYPHS, or SAYAS_SINGLECHARS. Pause between each word.
pre_pause += 4;
}
} }


if(word_flags & FLAG_FIRST_UPPER) if(word_flags & FLAG_FIRST_UPPER)
words[word_count].pre_pause = 8; words[word_count].pre_pause = 8;
if(word_count > 0) if(word_count > 0)
words[word_count-1].flags |= FLAG_LAST_WORD; words[word_count-1].flags |= FLAG_LAST_WORD;
words[0].flags |= FLAG_FIRST_WORD;


for(ix=0; ix<word_count; ix++) for(ix=0; ix<word_count; ix++)
{ {

+ 3
- 0
src/translate.h View File

#define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ #define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */
#define FLAG_HYPHEN 0x80 #define FLAG_HYPHEN 0x80
#define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space #define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space
#define FLAG_FIRST_WORD 0x200 // first word in clause
#define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 #define FLAG_DONT_SWITCH_TRANSLATOR 0x1000
#define FLAG_SUFFIX_REMOVED 0x2000 #define FLAG_SUFFIX_REMOVED 0x2000
#define FLAG_HYPHEN_AFTER 0x4000 #define FLAG_HYPHEN_AFTER 0x4000


#define NUM_ROMAN 0x20000 #define NUM_ROMAN 0x20000
#define NUM_ROMAN_UC 0x40000 #define NUM_ROMAN_UC 0x40000
#define NUM_NOPAUSE 0x80000


// bits0-1=which numbers routine to use. // bits0-1=which numbers routine to use.
// bit2= thousands separator must be space // bit2= thousands separator must be space
// bit16=dot after number indicates ordinal // bit16=dot after number indicates ordinal
// bit17=recognize roman numbers // bit17=recognize roman numbers
// bit18=Roman numbers only if upper case // bit18=Roman numbers only if upper case
// bit19=don't add pause after a number
int numbers; int numbers;


// bits 1-4 use variant form of numbers before thousands,millions,etc. // bits 1-4 use variant form of numbers before thousands,millions,etc.

+ 78
- 9
src/transldlg.cpp View File

TranslDlg *transldlg = NULL; TranslDlg *transldlg = NULL;
extern char *speech_to_phonemes(char *data, char *phout); extern char *speech_to_phonemes(char *data, char *phout);
extern ProsodyDisplay *prosodycanvas; extern ProsodyDisplay *prosodycanvas;
extern void Write4Bytes(FILE *f, int value);


BEGIN_EVENT_TABLE(TranslDlg, wxPanel) BEGIN_EVENT_TABLE(TranslDlg, wxPanel)
EVT_BUTTON(T_TRANSLATE,TranslDlg::OnCommand) EVT_BUTTON(T_TRANSLATE,TranslDlg::OnCommand)
END_EVENT_TABLE() END_EVENT_TABLE()




FILE *f_wave = NULL;



class IPATextCtrl : public wxTextCtrl class IPATextCtrl : public wxTextCtrl
{ {
} }




int OpenWaveFile2(const char *fname)
{//=================================
int result;


if((result = OpenWaveFile(fname, samplerate)) != 0)
int OpenWaveFile2(const char *path)
/*********************************/
{
// Set the length of 0x7fffffff for --stdout
// This will be changed to the correct length for -w (write to file)
static unsigned char wave_hdr[44] = {
'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ',
0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0,
2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f};

if(path == NULL)
return(2);

if(strcmp(path,"stdout")==0)
f_wave = stdout;
else
f_wave = fopen(path,"wb");

if(f_wave != NULL)
{ {
wxLogStatus(_T("Can't write to WAV file: '"+wxString(fname,wxConvLocal))+_T("'"));
fwrite(wave_hdr,1,24,f_wave);
Write4Bytes(f_wave,samplerate);
Write4Bytes(f_wave,samplerate * 2);
fwrite(&wave_hdr[32],1,12,f_wave);
return(0);
} }
return(result);
}
wxLogStatus(_T("Can't write to WAV file: '"+wxString(path,wxConvLocal))+_T("'"));
return(1);
} // end of OpenWaveFile




void CloseWaveFile2()
/******************/
{
unsigned int pos;

if((f_wave == NULL) || (f_wave == stdout))
return;

fflush(f_wave);
pos = ftell(f_wave);

fseek(f_wave,4,SEEK_SET);
Write4Bytes(f_wave,pos - 8);

fseek(f_wave,40,SEEK_SET);
Write4Bytes(f_wave,pos - 44);


fclose(f_wave);
f_wave = NULL;

} // end of CloseWaveFile




int WavegenFile2(void)
{//==================
int finished;
unsigned char wav_outbuf[1024];

out_ptr = out_start = wav_outbuf;
out_end = wav_outbuf + sizeof(wav_outbuf);

finished = WavegenFill(0);

if(f_wave != NULL)
{
fwrite(wav_outbuf, 1, out_ptr-wav_outbuf, f_wave);
}
return(finished);
} // end of WavegenFile




void MakeWave2(PHONEME_LIST *p, int n_phonemes) void MakeWave2(PHONEME_LIST *p, int n_phonemes)


for(;;) for(;;)
{ {
result = WavegenFile();
result = WavegenFile2();
if(result != 0) if(result != 0)
break; break;
Generate(p,&n_ph,1); Generate(p,&n_ph,1);
} }


CloseWaveFile(samplerate);
CloseWaveFile2();
PlayWavFile(fname_speech); PlayWavFile(fname_speech);


} // end of MakeWave2 } // end of MakeWave2

+ 3
- 103
src/wavegen.cpp View File

unsigned char *out_start; unsigned char *out_start;
unsigned char *out_end; unsigned char *out_end;
int outbuf_size = 0; int outbuf_size = 0;
static unsigned char outbuf[1024]; // used when writing to file


// the queue of operations passed to wavegen from sythesize // the queue of operations passed to wavegen from sythesize
long wcmdq[N_WCMDQ][4]; long wcmdq[N_WCMDQ][4];
#define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word #define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word
int current_source_index=0; int current_source_index=0;


FILE *f_wave = NULL;
extern FILE *f_wave;


#if (USE_PORTAUDIO == 18) #if (USE_PORTAUDIO == 18)
static PortAudioStream *pa_stream=NULL; static PortAudioStream *pa_stream=NULL;






static int Wavegen()
{//=================
int Wavegen()
{//==========
unsigned short waveph; unsigned short waveph;
unsigned short theta; unsigned short theta;
int total; int total;






int OpenWaveFile(const char *path, int rate)
/******************************************/
{
// Set the length of 0x7fffffff for --stdout
// This will be changed to the correct length for -w (write to file)
static unsigned char wave_hdr[44] = {
'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ',
0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0,
2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f};

if(path == NULL)
return(2);

wavephase = 0x7fffffff;

if(strcmp(path,"stdout")==0)
f_wave = stdout;
else
f_wave = fopen(path,"wb");

if(f_wave != NULL)
{
fwrite(wave_hdr,1,24,f_wave);
Write4Bytes(f_wave,rate);
Write4Bytes(f_wave,rate * 2);
fwrite(&wave_hdr[32],1,12,f_wave);
return(0);
}
return(1);
} // end of OpenWaveFile




void CloseWaveFile(int rate)
/******************/
{
unsigned int pos;

if(f_log != NULL)
{
fclose(f_log);
f_log = NULL;
}

if((f_wave == NULL) || (f_wave == stdout))
return;

fflush(f_wave);
pos = ftell(f_wave);

fseek(f_wave,4,SEEK_SET);
Write4Bytes(f_wave,pos - 8);

fseek(f_wave,40,SEEK_SET);
Write4Bytes(f_wave,pos - 44);


fclose(f_wave);
f_wave = NULL;

} // end of CloseWaveFile



void MakeWaveFile()
{//================
int result=1;

while(result != 0)
{
out_ptr = out_start = outbuf;
out_end = &outbuf[sizeof(outbuf)];
result = Wavegen();
if(f_wave != NULL)
fwrite(outbuf,1,out_ptr-outbuf,f_wave);
}
} // end of MakeWaveFile






int WavegenFill(int fill_zeros) int WavegenFill(int fill_zeros)
{//============================ {//============================
} // end of WavegenFill } // end of WavegenFill





int WavegenFile(void)
{//==================
int finished;

out_ptr = out_start = outbuf;
out_end = outbuf + sizeof(outbuf);

finished = WavegenFill(0);

if(f_wave != NULL)
{
fwrite(outbuf,1,out_ptr-outbuf,f_wave);
}
return(finished);
} // end of WavegenFile


Loading…
Cancel
Save