Browse Source

[1.42.42]

Don't recognize space as a thousands separator if it's tab, newline, or multiple spaces.
Don't recognuze space as a thousands separator if not followed by exactly 3 digits.

Unrecognized HTML tags should not add a space (eg. <font> <b> inside a word).

lang=hu: fixes for when numbers are ordinal.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@236 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 15 years ago
parent
commit
2698461aa4
69 changed files with 2062 additions and 851 deletions
  1. 88
    5
      dictsource/af_list
  2. 125
    16
      dictsource/af_rules
  3. 17
    8
      dictsource/da_list
  4. 21
    4
      dictsource/da_rules
  5. 3
    2
      dictsource/de_list
  6. 10
    3
      dictsource/de_rules
  7. 49
    32
      dictsource/dict_phonemes
  8. 11
    5
      dictsource/en_list
  9. 3
    2
      dictsource/en_rules
  10. 8
    8
      dictsource/eo_list
  11. 1
    0
      dictsource/es_rules
  12. 10
    11
      dictsource/fr_list
  13. 3
    3
      dictsource/fr_rules
  14. 188
    109
      dictsource/hu_list
  15. 118
    24
      dictsource/hu_rules
  16. 11
    11
      dictsource/id_list
  17. 8
    6
      dictsource/id_rules
  18. 6
    2
      dictsource/no_list
  19. 308
    63
      dictsource/ro_list
  20. 329
    312
      dictsource/ro_rules
  21. 73
    8
      dictsource/ta_list
  22. 245
    28
      dictsource/ta_rules
  23. 35
    19
      phsource/compile_report
  24. BIN
      phsource/d/xd
  25. BIN
      phsource/d/xdz
  26. BIN
      phsource/m/m_
  27. 2
    2
      phsource/mbrola/id1
  28. BIN
      phsource/n^/n^@
  29. BIN
      phsource/n^/n^a
  30. BIN
      phsource/n^/n^e
  31. BIN
      phsource/n^/n^i
  32. BIN
      phsource/n^/n^o
  33. BIN
      phsource/n^/n^u
  34. 3
    0
      phsource/ph_english
  35. 15
    31
      phsource/ph_french
  36. 25
    2
      phsource/ph_hungarian
  37. 1
    1
      phsource/ph_romanian
  38. 8
    2
      phsource/ph_tamil
  39. 40
    1
      phsource/ph_zh
  40. 12
    4
      phsource/phonemes
  41. BIN
      phsource/vdiph2/eo
  42. BIN
      phsource/vwl_fr/@R3
  43. BIN
      phsource/vwl_fr/@R4
  44. BIN
      phsource/vwl_fr/@R5
  45. BIN
      phsource/vwl_fr/_r
  46. BIN
      phsource/vwl_fr/_r2
  47. BIN
      phsource/vwl_fr/r@
  48. BIN
      phsource/vwl_fr/ra
  49. BIN
      phsource/vwl_fr/re
  50. BIN
      phsource/vwl_fr/ri
  51. BIN
      phsource/vwl_fr/ro
  52. BIN
      phsource/vwl_fr/ru
  53. BIN
      phsource/vwl_fr/xr
  54. 1
    1
      platforms/big_endian/README
  55. 45
    42
      platforms/big_endian/espeak-phoneme-data.c
  56. 9
    3
      src/compiledata.cpp
  57. 2
    1
      src/compiledict.cpp
  58. 28
    20
      src/dictionary.cpp
  59. 109
    25
      src/numbers.cpp
  60. 1
    1
      src/phoneme.h
  61. 26
    10
      src/readclause.cpp
  62. 2
    2
      src/speak_lib.cpp
  63. 2
    1
      src/speak_lib.h
  64. 4
    3
      src/synthdata.cpp
  65. 2
    2
      src/synthesize.cpp
  66. 4
    2
      src/tr_languages.cpp
  67. 44
    12
      src/translate.cpp
  68. 6
    1
      src/translate.h
  69. 1
    1
      src/voices.cpp

+ 88
- 5
dictsource/af_list View File

ú $accent ú $accent
û $accent û $accent
ü $accent ü $accent
ý $accent


_cap h'o@flEt@r _cap h'o@flEt@r
_?? s@mb'o@l _?? s@mb'o@l
_roman rum'eIns@ _roman rum'eIns@


// ordinal numbers // ordinal numbers
_0de d@
_0ste st@
_#de d@
_#ste st@
_1o _'e@r _1o _'e@r
_2o tw'e@ _2o tw'e@
_3o d'&:r _3o d'&:r
algerië alx2'e@re@:@- algerië alx2'e@re@:@-
amanzimtoti $4 amanzimtoti $4
antwerpen antv&rp@n antwerpen antv&rp@n
avignon _^_FR
babilon babilOn babilon babilOn
bangladesj baNglad'ES bangladesj baNglad'ES
barcelona bars@l'o@na barcelona bars@l'o@na
duitswes dYytsv'Es duitswes dYytsv'Es
ermelo &rm@lo@ ermelo &rm@lo@
franschhoek frA~nsh'uk franschhoek frA~nsh'uk
fraserburg freIz@rbWrx2
gadara x2@dA:ra gadara x2@dA:ra
galilea x2al@l'i:a galilea x2al@l'i:a
gdansk g@-dansk
genève Z@nE:v genève Z@nE:v
germiston _^_EN germiston _^_EN
getsémané x2Ets'e@mani getsémané x2Ets'e@mani
havana hav'ana havana hav'ana
hermon $1 hermon $1
hirosjima hiruS'ima hirosjima hiruS'ima
ingwavuma iNgwav'u:ma
israel IsraI:l israel IsraI:l
italië it'A:li;@ italië it'A:li;@
jeffreysbaai dZEfrisb'AI jeffreysbaai dZEfrisb'AI
knysna neIsna knysna neIsna
kuruman kuruman kuruman kuruman
kwa kwa $u $only // KwaZulu, etc. kwa kwa $u $only // KwaZulu, etc.
kwazulu kwaz'ulu // Kwazulu (lowercase z)
lady _^_EN // Lady Grey/Lady Smith lady _^_EN // Lady Grey/Lady Smith
ladybrand leIdibr'ant ladybrand leIdibr'ant
laingsburg leInsbWrx2 laingsburg leInsbWrx2
lesotho l@sutu lesotho l@sutu
limpopo l@mpo@po@ limpopo l@mpo@po@
lockerbie _^_EN
(los angeles) lOs_'andZ@li:z (los angeles) lOs_'andZ@li:z
macedonië mas@d'o@ni@ macedonië mas@d'o@ni@
madagaskar madax2'askar madagaskar madax2'askar
europa Y@r'o@pa europa Y@r'o@pa
nigel _^_EN nigel _^_EN
nineve nIn@fi nineve nIn@fi
oberammergau o@b@r'am@rgaU
oklahoma @Ukl@h'@Uma oklahoma @Ukl@h'@Uma
outeniekwa @Ut@n'ikwa outeniekwa @Ut@n'ikwa
oxford _^_EN oxford _^_EN
rhône _^_FR rhône _^_FR
richardsbaai ritS@dsb'AI richardsbaai ritS@dsb'AI
robertson _^_EN robertson _^_EN
sahara sah'A:ra
salvador salvadO:r salvador salvadO:r
santiago santi;'A:gu santiago santi;'A:gu
secunda s@kunda secunda s@kunda
sunnyside _^_EN sunnyside _^_EN
suriname syrin'A:m@ suriname syrin'A:m@
swellendam $3 swellendam $3
tankwa taNkwa
tokio to@kiu tokio to@kiu
trafalgar traf'algar
tunisië $2 tunisië $2
turkye $2 turkye $2
ulundi ul'undi ulundi ul'undi
wallonië val'o@ni@ wallonië val'o@ni@
washington _^_EN washington _^_EN
wellington wEliNt@n wellington wEliNt@n
wimbledon _^_EN
wolseley wulsli wolseley wulsli
uganda ug'anda uganda ug'anda
uruguay urugwaI uruguay urugwaI
adam adam adam adam
adriaan A:drijan adriaan A:drijan
adrie A:dri adrie A:dri
agnes _^_EN
albertus alb'&rtWs albertus alb'&rtWs
alfred _^_EN alfred _^_EN
allah %alA: allah %alA:
annalet anal'Et annalet anal'Et
André 'andreI André 'andreI
annette an'Et annette an'Et
anthonie ant'o@ni
antoinette antun'Et antoinette antun'Et
archimedes arx2im'e@dEs archimedes arx2im'e@dEs
aristoteles arist'o@t@lEs aristoteles arist'o@t@lEs
bennett bEn@t bennett bEn@t
bertha b&rta bertha b&rta
bester b'Est@r bester b'Est@r
betjie bEici
betsie bEtsi betsie bEtsi
beyers beI@rs beyers beI@rs
blignault blIx2n@Ut blignault blIx2n@Ut
blum blum blum blum
botha bo@ta botha bo@ta
bouwer b@U@r bouwer b@U@r
braham brA:m
brian _^_EN brian _^_EN
bredenkamp bre@d@nkamp bredenkamp bre@d@nkamp
bruwer bruw'&:r bruwer bruw'&:r
caesar siz@r caesar siz@r
cameron _^_EN
carl kA:r@L carl kA:r@L
carlyle _^_EN carlyle _^_EN
carol _^_EN carol _^_EN
charlie tSA:li charlie tSA:li
charmaine SA:m'eI:n charmaine SA:m'eI:n
chopin S%OpA~ chopin S%OpA~
claire _^_EN
clark _^_EN clark _^_EN
conradie $2 conradie $2
chris krIs chris krIs
christo krIstu christo krIstu
christof krIstOf
christoffel kr@stOf@l christoffel kr@stOf@l
christiaan krIstiA:n christiaan krIstiA:n
christian krIstian christian krIstian
cussons kas@ns cussons kas@ns
cynthia _^_EN cynthia _^_EN
dalene dal'e@n dalene dal'e@n
danielle dani;'&l
darwin _^_EN darwin _^_EN
daniël d'A:ni:@l daniël d'A:ni:@l
david _^_EN david _^_EN
floris $1 floris $1
fouché fuS'e@ fouché fuS'e@
fourie fur'i fourie fur'i
francina $2
francois franSwa francois franSwa
françois frA~nsw'A: françois frA~nsw'A:
gabriël x2A:bri@l gabriël x2A:bri@l
georgina dZO:dZ'ina georgina dZO:dZ'ina
gerhard x2&rart gerhard x2&rart
gerhardus $2 gerhardus $2
gertie gI:ti
gertruida $2 gertruida $2
gilbert _^_EN gilbert _^_EN
gloria glO:ria gloria glO:ria
gordon _^_EN gordon _^_EN
grange x2rA:nsi grange x2rA:nsi
greta gre@ta
grové x2ruv'e@ grové x2ruv'e@
gulliver _^_EN gulliver _^_EN
gustav gustaf gustav gustaf
isabel is@b&l isabel is@b&l
iskariot isk'ariOt iskariot isk'ariOt
jaco jaku jaco jaku
jakomina jakum'ina
james _^_EN james _^_EN
jane _^_EN jane _^_EN
Jean ZA~n $capital Jean ZA~n $capital
lasarus lA:s@r%Ws lasarus lA:s@r%Ws
lategan lA:t@x2an lategan lA:t@x2an
le l@ $only le l@ $only
leana li'A:na
leandra li'andra leandra li'andra
leipoldt lAIpOlt leipoldt lAIpOlt
leonardo liu:n'ardu leonardo liu:n'ardu
leonie li'o@ni leonie li'o@ni
levi le@fi levi le@fi
lewies l@vis
liesbet lisbEt liesbet lisbEt
loubser l@UpS@r
louis luI louis luI
louise luw'i:z louise luw'i:z
lucretia lukr'i:Sja
lukas lukas lukas lukas
lulu lulu
mabalêl mabal'&l
mabel _^_EN
mackintosh _^_EN mackintosh _^_EN
madelene mad@l'e@n madelene mad@l'e@n
mbeki mbE:ki mbeki mbE:ki
marlene marl'e@:n marlene marl'e@:n
marlise marl'i:s marlise marl'i:s
martha marta martha marta
marthinus mart'inWs
martiens $2
martin m'A:rt@n martin m'A:rt@n
mary _^_EN mary _^_EN
mathilda mat'Ilda mathilda mat'Ilda
mostert m'Ost@rt mostert m'Ost@rt
mouton mut'On mouton mut'On
mozart mo@tsart mozart mo@tsart
myburgh meIbWrx2
naomi na_'o@mi naomi na_'o@mi
napoleon nap'o@liOn napoleon nap'o@liOn
natasha n%at'aSa natasha n%at'aSa
niklaas niklA:s niklaas niklA:s
olga Olga olga Olga
ontong OntON ontong OntON
patrick _^_EN
petoors p@to@rs
phillips fIl@ps phillips fIl@ps
pierre p'e@r pierre p'e@r
petronella pe@trun'&la petronella pe@trun'&la
rachmaninoff rax2m'aninOf rachmaninoff rax2m'aninOf
rademeyer rA:d@meI@r rademeyer rA:d@meI@r
rall rA:l rall rA:l
raymond _^_EN
rebekka r@bEka rebekka r@bEka
reinette r@nEt reinette r@nEt
renette r@nEt renette r@nEt
rhodes _^_EN rhodes _^_EN
riekert rik@rt riekert rik@rt
robert _^_EN robert _^_EN
robin _^_EN
ronel run'&l ronel run'&l
rossouw r@s@U rossouw r@s@U
rousseau r@s@U rousseau r@s@U
stevenson _^_EN stevenson _^_EN
strauss straUs strauss straUs
stockenström stOk@nstro@m stockenström stOk@nstro@m
stuart _^_EN
suzanne suz'A:n suzanne suz'A:n
suzette suz'Et suzette suz'Et
tania tanja tania tanja
trichardt trix2A:rt trichardt trix2A:rt
vera ve@ra vera ve@ra
verwey f@rveI verwey f@rveI
virginia _^_EN
vivaldi viv'aldi vivaldi viv'aldi
viviers v@v@je@ viviers v@v@je@
wilhelm v@lh&l@-m wilhelm v@lh&l@-m
williston _^_EN
khumalo kum'A:lu khumalo kum'A:lu
zuma zu:ma zuma zu:ma


chrysler kraIsl@r chrysler kraIsl@r
citroên s@trun citroên s@trun
ferrari f@rA:ri ferrari f@rA:ri
isuzu is'u:zu
martini mart'i:ni martini mart'i:ni
naspers nasp&rs naspers nasp&rs
peugeot pW:Z@U peugeot pW:Z@U
(pick n pay) p,ik||@n||p'eI (pick n pay) p,ik||@n||p'eI
porsche pOrS@ porsche pOrS@
port pOrt $1 port pOrt $1
prestik prEstik
rover _^_EN rover _^_EN
sesotho s@s'u:tu
sorbonne _^_FR sorbonne _^_FR
sotho su:tu sotho su:tu
toyota $2 toyota $2
venda vEnda venda vEnda
vicks viks
volvo vOlvu volvo vOlvu
wimpy wImpi wimpy wImpi


alge alx2@ alge alx2@
algehele alx2@h,e@l@ algehele alx2@h,e@l@
allegro al'Egru allegro al'Egru
allergene $3
almiskie $3 almiskie $3
alom al_'Om alom al_'Om
alreeds $2 alreeds $2
asseblief as@bl'if asseblief as@bl'if
assessore $3 assessore $3
attraksie $2 attraksie $2
aversie av'&rsi


babelaas bab@lA:s babelaas bab@lA:s
barrikade $3 barrikade $3
bewend be@v@nt bewend be@v@nt
bewering b@ve@rIN bewering b@ve@rIN
bomaat bo@mA:t bomaat bo@mA:t
bordegoed bO:rd@x2ut
boskaas $2 boskaas $2
bostaande b'o@stA:nd@ bostaande b'o@stA:nd@
bourgeois _^_FR bourgeois _^_FR
bourgeoisie _^_FR bourgeoisie _^_FR
briewemes briv@mEs briewemes briv@mEs
bêretyd b&:r@teIt


cabernet kab@rn'eI cabernet kab@rn'eI
camembert kam@mb'&:r camembert kam@mb'&:r
cedille s@dIl@ cedille s@dIl@
charisma kar'Isma charisma kar'Isma
cliché kliS'eI: cliché kliS'eI:
clivia klIvija
cognac kOn^ak
confetti $2
crescendo kr@SEndu crescendo kr@SEndu
crimpelene kr@mp@li:n


dadelik dA:d@lIk dadelik dA:d@lIk
dagorde dax2_Ord@ dagorde dax2_Ord@
daisy deIzi
darem dar@m darem dar@m
dekade dEk'A:d@ dekade dEk'A:d@
dekreling dEkre@l@N dekreling dEkre@l@N
deurentyd dy@r@nteIt deurentyd dy@r@nteIt
deurgaans $1 deurgaans $1
deurkruis $2 deurkruis $2
deurry dY@rreI
deurstaan $2 deurstaan $2
deurstraalde $2 deurstraalde $2
dikwels dIkv@ls dikwels dIkv@ls
diplomasie d@plo@mas'i diplomasie d@plo@mas'i
disleksie $2
doktore $2 doktore $2
doyen dO:j'En doyen dO:j'En
dubbelken dWb@lkEn dubbelken dWb@lkEn
dusver dWsf&r dusver dWsf&r


edelagbare $3
eenkeer $1 eenkeer $1
efesiër if'e@si@r efesiër if'e@si@r
effata Ef'A:ta
effense Ef@ns@ effense Ef@ns@
eks Eks eks Eks
ekself %&ks'&lf ekself %&ks'&lf
espeak i:;spi:k espeak i:;spi:k
(et cetera) Ets'Et@ra (et cetera) Ets'Et@ra
euro Y@ru euro Y@ru
ewentwil e@v@ntv@l
exodus Eks'o@dWs exodus Eks'o@dWs


fakture $2 fakture $2
fetakaas fEtakA:s
figuur f@x2yr figuur f@x2yr
filippense f@l@pEns@ filippense f@l@pEns@
finalis $3 finalis $3
gee x2e@ gee x2e@
geen x2e@n geen x2e@n
geldelike x2&ld@l@k@ geldelike x2&ld@l@k@
gelerendheid x2@le@r@ntheIt
genade $2 genade $2
genesis x2e@n@s@s genesis x2e@n@s@s
//gesamentlik x2@sA:m@ntl@k //gesamentlik x2@sA:m@ntl@k
gentleman _^_EN gentleman _^_EN
germolene dZI:m@l'i:n
gewellys x2e@v@lleIs gewellys x2e@v@lleIs
gladiator x2ladi'A:tOr gladiator x2ladi'A:tOr
globale x2lo@b'A:l@ globale x2lo@b'A:l@
intensiteit $4 intensiteit $4
ironieë irun'i:@ ironieë irun'i:@


jantwak jantw'ak
jawoord jA:vo@rt jawoord jA:vo@rt
jupiter jupit@r jupiter jupit@r


kameraderie kam@rA:d@r'i kameraderie kam@rA:d@r'i
katswink katsv@nk katswink katsv@nk
kaviaar kavi'A:r kaviaar kavi'A:r
kennisvaardig $1
klaasvakie $2 klaasvakie $2
klimeid klImeIt
knapsekêrel knaps@k&:r@l knapsekêrel knaps@k&:r@l
kolossense kOl@s'e~ns@ kolossense kOl@s'e~ns@
komaan kOmA:n komaan kOmA:n
konfyttertjie kOnf'eIt&:rci
konkawe kOnk'A:v@ konkawe kOnk'A:v@
konte $1 konte $1
kopaar kOp_A:r
kopiereg kup'ir&x2 kopiereg kup'ir&x2
korswel kOrsv@l korswel kOrsv@l
kotiljons kOt@lj'o~ns kotiljons kOt@lj'o~ns
lykwaak leIkvA:k lykwaak leIkvA:k


macaroni makar'o@ni macaroni makar'o@ni
macho matS@U
madame mad'A:m madame mad'A:m
madamoiselle _^_FR madamoiselle _^_FR
maskering mask'e@r@N $only maskering mask'e@r@N $only
massale $2 massale $2
meegee me@x2e@ meegee me@x2e@
memorabilia mEmOrab'ilija memorabilia mEmOrab'ilija
memoriam mEm'o@riam
mercedes $2 mercedes $2
meregebied me@r@x2@bit meregebied me@r@x2@bit
merlot m&rl'o@ merlot m&rl'o@
nirvana n@rvA:na nirvana n@rvA:na
nogeens nOx2_e@ns nogeens nOx2_e@ns
normale nOrm'A:l@ normale nOrm'A:l@
nousedae n@Us@dA:
numeri nWm@ri numeri nWm@ri


oeuvre W:vr@ oeuvre W:vr@
oorsee $2 oorsee $2
oorsese $2 oorsese $2
oorval $2 $verb oorval $2 $verb
oranjepers o@r'anj@p&:rs
oudsher @Utsh&r oudsher @Utsh&r


pandemonium pand@m'o@niWm pandemonium pand@m'o@niWm
per p@r $only per p@r $only
persent p@rsEnt persent p@rsEnt
petite p@tit petite p@tit
pikanienie pikan'ini
pinotage pinut'A:Z pinotage pinut'A:Z
pirouette p@ru:'Et pirouette p@ru:'Et
plaasjaap plA:sjA:p plaasjaap plA:sjA:p
plasenta plas'Enta plasenta plas'Enta
poinsettia pOIns'Etia poinsettia pOIns'Etia
potpourri pOtpur'i
primate $2 primate $2
profetes prOf@t'Es
(pro forma) pro@||f'Orma (pro forma) pro@||f'Orma


rebelleer r@b@le@r rebelleer r@b@le@r
rededele re@d@de@l@ rededele re@d@de@l@
regie r@Zi: regie r@Zi:
rekent re@k@nt
renaissance rEn@s'A~ns renaissance rEn@s'A~ns
retoriek r@tur'ik retoriek r@tur'ik
rimpeling rImp@l@N rimpeling rImp@l@N
ruspes rWsp@s ruspes rWsp@s
rymelary reIm@lar'eI rymelary reIm@lar'eI


saint sInt $u
salami sal'A:mi salami sal'A:mi
salute sal'yt@ salute sal'yt@
samelewing sA:m@l,e@v@N samelewing sA:m@l,e@v@N
staccato $2 staccato $2
sterwens st&rv@ns sterwens st&rv@ns
stilswye $1 stilswye $1
strydros streIt_rOs
subiet sWb'it subiet sWb'it
suburbia sWb'Wrbija suburbia sWb'Wrbija
swangerswaar swaN@rswA:r swangerswaar swaN@rswA:r
swetterjoel $3


tanga taNga tanga taNga
tango taNx2u tango taNx2u
terdeë $2 terdeë $2
terug t@-rWx2 terug t@-rWx2
tesaam t@sA:m tesaam t@sA:m
tesourus t@s@UrWs
tevrede t@fre@d@ tevrede t@fre@d@
thula tu:la
toegee tux2e@ toegee tux2e@
toereken ture@k@n toereken ture@k@n
tornado $2
totale tut'A:l@ totale tut'A:l@
totsiens $2 totsiens $2
tragiek trax2'ik tragiek trax2'ik
tsoenami tsun'A:mi


uitdaging YydA:x2@N uitdaging YydA:x2@N
uiteraard Yyt@r_'A:rt uiteraard Yyt@r_'A:rt
verby f@rbeI verby f@rbeI
verdere f&rd@r@ verdere f&rd@r@
ver f'&:r ver f'&:r
verderaan f&:rd@r_A:n
vereduifie fe@r@dYyfi vereduifie fe@r@dYyfi
verg f&rx2 verg f&rx2
vergeleë f&:rx2@l,e@@ vergeleë f&:rx2@l,e@@
vergete f@rx2e@t@ vergete f@rx2e@t@
verkeerdom f@rke@rt_Om
verlangste f@rlaNst@
vermy $2 vermy $2
verre f&:r@ verre f&:r@
verregaande f&r@x2'A:nd@ verregaande f&r@x2'A:nd@
verte f&rt@ verte f&rt@
verweg f&:rv&x2 verweg f&:rv&x2
via via via via
voelentheid ful@ntheIt
volheid $1 volheid $1
volpunte $1
volspoed $1
volswanger $1 volswanger $1
volte $1 volte $1
voluit fOl_Yyt voluit fOl_Yyt
weggewens v&x2@v'E:ns weggewens v&x2@v'E:ns
welaf v&l_af welaf v&l_af
weleer v&l_'e@r weleer v&l_'e@r
wentaktiek $1
wysgere veIsx2e@r@ wysgere veIsx2e@r@



+ 125
- 16
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
//With contributions by Christo de Klerk //With contributions by Christo de Klerk
ad (vies %at // move default stress: advies/-brief/-komitee and many similar ad (vies %at // move default stress: advies/-brief/-komitee and many similar


af (gunstig %af // move default stress: afgunstig/-e af (gunstig %af // move default stress: afgunstig/-e
aga (pant %ag%a // fix g sound and stress: agapant/-e and compounds
C) agie A:x2i C) agie A:x2i
a (gitA %a // fix a sound: agitasie/(ge)agiteer a (gitA %a // fix a sound: agitasie/(ge)agiteer
agte (losig %ax2t@ // move default stress: agtelosig/-e/-heid agte (losig %ax2t@ // move default stress: agtelosig/-e/-heid
agter (dogt %ax2t@r // move default stress: agterdogtig and derivatives agter (dogt %ax2t@r // move default stress: agterdogtig and derivatives
agtereen (volg %ax2t@r_%e@n // move default stress: agtereenvolgend/-e/-ens agtereen (volg %ax2t@r_%e@n // move default stress: agtereenvolgend/-e/-ens
agter (losig %ax2t@r // move default stress: agterlosig/-e/-heid
agter (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc. agter (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc.
&) agtig 'ax2t@x2 // this string almost always carries stress on a &) agtig 'ax2t@x2 // this string almost always carries stress on a
a (gurkie %a // fix stress and a sound: agurkie/-s and compounds a (gurkie %a // fix stress and a sound: agurkie/-s and compounds
@form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc. @form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc.
gl) asie A:si // restore default stress: wyn-/sjampanjeglasie, etc. gl) asie A:si // restore default stress: wyn-/sjampanjeglasie, etc.
pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar
Csp) asie A:s%i // restore default stress: vloer/kantoorspasie, etc.
@sp) asie A:s%i // restore default stress: vloer/kantoorspasie/weggooispasie, etc.
Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar
AAst) asie A:si // default stress: polisie/radio/televisie/uitsaaistasie, etc. AAst) asie A:si // default stress: polisie/radio/televisie/uitsaaistasie, etc.
aspek %aspEk // fix stress and e sound: aspek/-te/-tief and compounds aspek %aspEk // fix stress and e sound: aspek/-te/-tief and compounds
alge (ryn %alx2@ // move default stress: Algeryn/-e/-s alge (ryn %alx2@ // move default stress: Algeryn/-e/-s
alia A:l%i%a // fix stress and a sound: alias/-se/(inter )alia alia A:l%i%a // fix stress and a sound: alias/-se/(inter )alia
_) ali (krA al%i // fix vowel sounds: alikreukel/alikruik/alikruk _) ali (krA al%i // fix vowel sounds: alikreukel/alikruik/alikruk
al (jander %al // move default stress: aljander and compounds
alkohol alk%u%Ol // fix o sounds and drop h: alkohol/-is/-iste/-isme alkohol alk%u%Ol // fix o sounds and drop h: alkohol/-is/-iste/-isme
alkohol (ieK %alk%uho@l // fix stress and 2nd o sound: alkoholies/-e alkohol (ieK %alk%uho@l // fix stress and 2nd o sound: alkoholies/-e
_) alle (C al@ // alledaags/e/allerhande _) alle (C al@ // alledaags/e/allerhande
alle (mint %al@ // move default stress: allemintig/-e
_) a (llooi %a // move default stress: allooi(metaal/-silwer, etc.) _) a (llooi %a // move default stress: allooi(metaal/-silwer, etc.)
alma (nak %alm%a // move default stress: almanak/-ke and compounds alma (nak %alm%a // move default stress: almanak/-ke and compounds
alogie alux2'i // genealogie/mineralogie and similar alogie alux2'i // genealogie/mineralogie and similar
C) afel (@ A:f@l // compounds starting with tafel/ontrafeling/uitrafeling C) afel (@ A:f@l // compounds starting with tafel/ontrafeling/uitrafeling
_) a (ffA %a // move default stress: affêre and compounds/affekteer _) a (ffA %a // move default stress: affêre and compounds/affekteer
a (fflik %a // move default stress: affliksie/-s a (fflik %a // move default stress: affliksie/-s
affo (dil %af%u // fix stress and o sound: affodil/-le
affro (nt %afr%O // fix stress: affronteer/-tasie affro (nt %afr%O // fix stress: affronteer/-tasie
afgee (+ 'afx2e@ // see rule: _) afge (@P4 afx2@ afgee (+ 'afx2e@ // see rule: _) afge (@P4 afx2@
_) afge (@P4 'afx2@ // stress on 1st slb _) afge (@P4 'afx2@ // stress on 1st slb
arre (stA %ar@ // arrestasie/arresteer arre (stA %ar@ // arrestasie/arresteer
arro (g %ar%u // arrogant/-e/arrogansie arro (g %ar%u // arrogant/-e/arrogansie
ar (seen %ar ar (seen %ar
arse (na %ars@ // move default stress: arsenaal/arsenale and compounds
arte (fak %art@ // move default stress: artefak/-te arte (fak %art@ // move default stress: artefak/-te
ar (tikel %ar // stress: artikel and compounds ar (tikel %ar // stress: artikel and compounds
artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer
aan (stAAC %A:n // stress on 2nd slb.: aanstootlik/aansteeklik aan (stAAC %A:n // stress on 2nd slb.: aanstootlik/aansteeklik
aan (stAAC_N A:n // stress on 1st slb.: aanstoot/aansteek aan (stAAC_N A:n // stress on 1st slb.: aanstoot/aansteek
aan (tasb %A:n // stress: (on)aantasbaar/-bare aan (tasb %A:n // stress: (on)aantasbaar/-bare
_) aantel A:nt&l // fix e sound: aantel/-lery
aantreklik %A:ntr&kl@k // move default stress: aantreklik/-heid aantreklik %A:ntr&kl@k // move default stress: aantreklik/-heid
aan (trek_N A:n // restore default stress: aantrek aan (trek_N A:n // restore default stress: aantrek
aan (vaar %A:n // aanvaar/de/baar aan (vaar %A:n // aanvaar/de/baar
bla (tant bl%a // shorten 1st a and move default stress: blatant/-e/-heid bla (tant bl%a // shorten 1st a and move default stress: blatant/-e/-heid
_) blik (A blIk_ // fix i sound: blikaspaai/blikemmer/-s/blikoopmaker/-s/blikoor/blikore _) blik (A blIk_ // fix i sound: blikaspaai/blikemmer/-s/blikoopmaker/-s/blikoor/blikore
bloe (ddors@ bl%u // bloeddorstig and derivatives, but bloeddors bloe (ddors@ bl%u // bloeddorstig and derivatives, but bloeddors
bloed (skendig bl%ut // move default stress: bloedskendig/-e
bloed (stol bl%ut // move default stress: bloedstollend/-e bloed (stol bl%ut // move default stress: bloedstollend/-e
_) blo (kka bl%O // move default stress: blokkade/-s and compounds _) blo (kka bl%O // move default stress: blokkade/-s and compounds
_) blo (kkeer bl%O // move default stress: (ge)blokkeer/-der, etc. _) blo (kkeer bl%O // move default stress: (ge)blokkeer/-der, etc.
bo (he b%u // fix stress: boheems/boheme bo (he b%u // fix stress: boheems/boheme
bok (ooi bOk_ // bokooi/e/ribbokooi/boerbokooi bok (ooi bOk_ // bokooi/e/ribbokooi/boerbokooi
_) bongo bONgu // fix g and o sounds: bongo and compounds: bongotromme _) bongo bONgu // fix g and o sounds: bongo and compounds: bongotromme
bonsmara b%OnsmA:r%a // move default stress: bonsmarabees/-bul/-koei
bosch (_ bOs // Rondebosch/Stellenbosch bosch (_ bOs // Rondebosch/Stellenbosch
bo (tanie b%o@ // stress on 2nd slb.: botanies/-e bo (tanie b%o@ // stress on 2nd slb.: botanies/-e
bota (nie_N b%o@t%a // stress on 3rd slb.: botanie bota (nie_N b%o@t%a // stress on 3rd slb.: botanie
_) bota (niCA bo@t''A: // fix stress: botanikus/botanici
boulevard bul@vard // boulevard/-s boulevard bul@vard // boulevard/-s
_) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon _) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon
_) breda br@dA: // move default stress: (van )Breda/Bredasdorp _) breda br@dA: // move default stress: (van )Breda/Bredasdorp
baba bA:ba baba bA:ba
baba (tjie bA:baI // fix 2nd a sound: babatjie/-s baba (tjie bA:baI // fix 2nd a sound: babatjie/-s
_) bad (A bat_ // shorten a sound, pause: bad-/afloop/artikel/olie/oord/uitloop _) bad (A bat_ // shorten a sound, pause: bad-/afloop/artikel/olie/oord/uitloop
baklei b@kl'eI // baklei/er
bad (r bat // fix d sound: (swem)badrand/badroom
bahama b%ahA:m%a // fix 1st a sound and stress: Bahama/-s and compounds
baklei b@kleI // baklei/er
_) bak (o bak_ // fix a sound and stress: bakoor/bakore _) bak (o bak_ // fix a sound and stress: bakoor/bakore
balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds
balaklawa b%al%aklA:v%a // fix stress and a sounds: balaklawa and compounds balaklawa b%al%aklA:v%a // fix stress and a sounds: balaklawa and compounds
@) bewys b@veIs // "be" in rybewys/lisensiebewys/geboortebewys @) bewys b@veIs // "be" in rybewys/lisensiebewys/geboortebewys
bee (+ be@ bee (+ be@
@) beer (_ b'e@r // absorbeer/inhibeer, etc. @) beer (_ b'e@r // absorbeer/inhibeer, etc.
%Ca) beer be@r // restore default stress: pappa-/mammabeer
teddie) beer be@r // restore default stress teddie) beer be@r // restore default stress
ys) beer be@r // restore default stress ys) beer be@r // restore default stress
bede (Cf b@d& // bederf/bedelf bede (Cf b@d& // bederf/bedelf
beter b'e@t@r beter b'e@t@r
beties be@tis // fix e sounds: diabeties/-e beties be@tis // fix e sounds: diabeties/-e
betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer
bewe (knie be@v@ // fix 1st e sound and stress: beweknie/-ë
bewe (lip be@v@ // fix 1st e sound and stress: bewelip/-pe
bewe (rasie be@v@ // fix e sounds: bewerasie/-siekte bewe (rasie be@v@ // fix e sounds: bewerasie/-siekte




chemika (li x2%e@m%ikA: // for compounds of chemikalieë chemika (li x2%e@m%ikA: // for compounds of chemikalieë
cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds
cholesterol k%OlEst@-r%Ol // cholesterol and many compounds cholesterol k%OlEst@-r%Ol // cholesterol and many compounds
chore (ogra k%Or%i // fix stress and vowel sounds: choreografie and derivatives
ch (l k // chloor and compounds ch (l k // chloor and compounds
ch (ro k ch (ro k
chat _^_EN chat _^_EN
CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand
CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette
blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese
pous) e (C @ // fix e sound: pousebrood/-klok/-tyd, etc.
vreugd) e (C @ // fix e sound: vreugdefees/-klokkies/-lied/-tyd... vreugd) e (C @ // fix e sound: vreugdefees/-klokkies/-lied/-tyd...
vriend) e (C @ // fix e sound: vriendepaar/-woorde vriend) e (C @ // fix e sound: vriendepaar/-woorde
juwel) e (C @ // fix e sound: juwelekissie and similar compounds juwel) e (C @ // fix e sound: juwelekissie and similar compounds
lat) eres @r@s //lateres lat) eres @r@s //lateres
fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc. fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc.
bloup) ers &:rs // fix e sound: bloupers bloup) ers &:rs // fix e sound: bloupers
iew) ers (ter @rs // fix e sound: (l)iewerster
treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds
dehands) e (C@ @ // fix e sound: tweedehandsemotorhandelaar/-winkel, etc. dehands) e (C@ @ // fix e sound: tweedehandsemotorhandelaar/-winkel, etc.
goeder) e (@ @ // fix e sound: goederekapitaal/-kantoor/-loods/-mark/-omset/-reg goeder) e (@ @ // fix e sound: goederekapitaal/-kantoor/-loods/-mark/-omset/-reg
&) etjie (+ ici &) etjie (+ ici
Cn) etjies Eicis // kraaknetjies/hipernetjies Cn) etjies Eicis // kraaknetjies/hipernetjies
nn) etjies icis // kannetjies/mannetjies/pennetjies, etc. nn) etjies icis // kannetjies/mannetjies/pennetjies, etc.
&) elikheid (_S8 @l@keIt // vriendelikheid/duidelikheid
&) elikheid @l@keIt // vriendelikheid/duidelikheid/gemoedelikheid
epi (deC %Ep%i // epidemie/-s/-e/epidermies/epidermis epi (deC %Ep%i // epidemie/-s/-e/epidermies/epidermis


&K) erig @rIx2 &K) erig @rIx2
&) ere (_ @r@ &) ere (_ @r@
@l) ere (_ e@r@ // fix e sound: staanlere/toonlere @l) ere (_ e@r@ // fix e sound: staanlere/toonlere
sw) ere (_ e@:r@ // fix e sound: pitswere and similar compounds sw) ere (_ e@:r@ // fix e sound: pitswere and similar compounds
@C) erp (_ &rp // fix e sound: wol-/syserp and similar
@C) erpe (_ &rp@ // fix e sound: wol-/syserpe and similar
@C) erpie (_ &rpi // fix e sound: wol-/syserpie/-s
@) ery (_+ @reI // oorlopery, etc. @) ery (_+ @reI // oorlopery, etc.
@) ery (e_ @reI // fix 2nd e sound: delwerye and similar @) ery (e_ @reI // fix 2nd e sound: delwerye and similar
_) es (karp %Es // move default stress: eskarp/-e and compounds
eti (ket %Et%i // shorten e sound and move stress: etiket/-te eti (ket %Et%i // shorten e sound and move stress: etiket/-te
etikette (rA %Et%ik%Ete@ // fix e sound: etiketterend/-ering etikette (rA %Et%ik%Ete@ // fix e sound: etiketterend/-ering
C) e (waar @ // fix e sound: bate-/portefeulje-/toegevoegdewaarde/benedewaarts C) e (waar @ // fix e sound: bate-/portefeulje-/toegevoegdewaarde/benedewaarts
ik) eer 'e@r // abdikeer/kommunikeer, etc. ik) eer 'e@r // abdikeer/kommunikeer, etc.
AAl) eer e@r // restore default stress: evange-/evolusie-/seekoeilieleer, etc. AAl) eer e@r // restore default stress: evange-/evolusie-/seekoeilieleer, etc.
Aol) eer 'e@r // fix stress: rioleer/gelanseoleer/-de/gepetioleer Aol) eer 'e@r // fix stress: rioleer/gelanseoleer/-de/gepetioleer
@Cl) eer e@r // restore default stress in compounds like windpompleer
oriënt) eer e@r // default stress: beroepsgeoriënteerd and similar oriënt) eer e@r // default stress: beroepsgeoriënteerd and similar
Cm) eer e@r // words containing meer preceded by consonant take default stress: bergmeer/strandmeer, etc. Cm) eer e@r // words containing meer preceded by consonant take default stress: bergmeer/strandmeer, etc.
rm) eer 'e@r // but not words like: alarmeer/gereformeerd/transformeer rm) eer 'e@r // but not words like: alarmeer/gereformeerd/transformeer
@) 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
@C) ent (e_ 'Ent // plurals of some of the above @C) ent (e_ 'Ent // plurals of some of the above
en) ent (_ Ent // restore default stress: koppenent/voetenent
en) ent (++ Ent // restore default stress: koppenent/-e/voetenent/-e
pr) ent (++ Ent // default stress for compounds of prent/-e pr) ent (++ Ent // default stress for compounds of prent/-e
pr) entjie E:iNk%i //fix prentjie pr) entjie E:iNk%i //fix prentjie
@s) ent (rA Ent // winkelsentrum/studentesentrum, etc. @s) ent (rA Ent // winkelsentrum/studentesentrum, etc.
fa (nati f%a // fix stress and a sound: fanaties/-e fa (nati f%a // fix stress and a sound: fanaties/-e
fan (fare f%an // move default stress: fanfare/-s fan (fare f%an // move default stress: fanfare/-s
fanta (sA f%ant%a // fantaseer/fantasie fanta (sA f%ant%a // fantaseer/fantasie
_) fan (to f%an // move default stress: fantoom/fantome
fari (seër f%ar%i // fix stress and a sound: Fariseër/-s fari (seër f%ar%i // fix stress and a sound: Fariseër/-s
farma (seut f%arm%a // move default stress: farmaseut/-e/-ies/-ika farma (seut f%arm%a // move default stress: farmaseut/-e/-ies/-ika
fasade f%asA:d@ // fix stress and 1st a sound: fasade/-s and compounds fasade f%asA:d@ // fix stress and 1st a sound: fasade/-s and compounds
foto fo@tu foto fo@tu
fotoge (nie f%o@t%ux2e@ // fix stress and e sound: fotogenies/-e fotoge (nie f%o@t%ux2e@ // fix stress and e sound: fotogenies/-e
fo (togra fo@ // move default stress: fotograaf and similar fo (togra fo@ // move default stress: fotograaf and similar
foto (sta f%o@t%u // move default stress: fotostaat/fotostate and derivatives
fra (giel fr%a // fix stress and a sound: fragiel/-e fra (giel fr%a // fix stress and a sound: fragiel/-e
fran (Cina fr%an
_) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca _) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca
frangi (pani fr%aN%i // fix stress: frangipani and compounds frangi (pani fr%aN%i // fix stress: frangipani and compounds
fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds
freud frOId // Freud/Freudiaans/-e freud frOId // Freud/Freudiaans/-e
frikkade (l fr@k@d& // fix stress, a and e sounds: frikkadel/-le
front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering
fru (str fr%W // move default stress: frustrerend/-e fru (str fr%W // move default stress: frustrerend/-e
fung (e f%WNx2 // fungeer/fungerende/fungering fung (e f%WNx2 // fungeer/fungerende/fungering
gal (joen x2%al // move default stress: galjoen/-e and compounds gal (joen x2%al // move default stress: galjoen/-e and compounds
gamie (_ x2am'i // bi-/mono-/poligamie, etc. gamie (_ x2am'i // bi-/mono-/poligamie, etc.
gamies x2'A:mis // bi-/mono-/poligamies/-e gamies x2'A:mis // bi-/mono-/poligamies/-e
@) gans x2A~ns // nasalise a: berggans/kolgans/-e
gans (C x2A~ns // nasalise a: gansveer/-vere and similar compounds
ga (riep x2%a // fix stress and a sound: Gariep(dam) ga (riep x2%a // fix stress and a sound: Gariep(dam)
gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds
garni (soen x2%arn%i // fix stress: garnisoen and compounds garni (soen x2%arn%i // fix stress: garnisoen and compounds
_) goewer x2%uv@r // move default stress: goewerneur and compounds _) goewer x2%uv@r // move default stress: goewerneur and compounds
A) gogie (_ x2ux2'i // demagogie/pedagogie A) gogie (_ x2ux2'i // demagogie/pedagogie
A) gogies x2'o@x2is // demagogies/-e/pedagogies/-e A) gogies x2'o@x2is // demagogies/-e/pedagogies/-e
gomag (tig x2Om_%ax2 // fix o sound and stress, pause: gomagtig/-e/-heid
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
go (rilla g%u // fix g and o sounds: gorilla and compounds go (rilla g%u // fix g and o sounds: gorilla and compounds
grotere x2ro@t@r@ // fix vowel sounds and stress: grotere/-s grotere x2ro@t@r@ // fix vowel sounds and stress: grotere/-s
guerrilla g@r'Ila guerrilla g@r'Ila
guillotine g%il%utin // guillotine and compounds guillotine g%il%utin // guillotine and compounds
gus (ooi x2Ws_ // fix u sound, pause: gusooi/-e
guttu (ra x2%Wt%W // move default stress: gutturaal/gutturale guttu (ra x2%Wt%W // move default stress: gutturaal/gutturale
gésel x2e@s@l // fix stress and e sounds: (ge)gésel/-ing gésel x2e@s@l // fix stress and e sounds: (ge)gésel/-ing


ge (kg x2& // fix stress and e sound: gekgeskeer ge (kg x2& // fix stress and e sound: gekgeskeer
ge (kk x2& ge (kk x2&
ge (kh x2& ge (kh x2&
geklede x2@kle@d@ // fix e sound: wit-/swart-/groengeklede
ge (kt x2& // fix e sound: gektalery ge (kt x2& // fix e sound: gektalery
gekw (ord x2&kv // fix stress, e and w sounds: gekwordens/gekwording gekw (ord x2&kv // fix stress, e and w sounds: gekwordens/gekwording
genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc. genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc.
gesels x2@s&ls gesels x2@s&ls
A) ge (tjie x2i // fix e sound: (graad)negetjie/-s A) ge (tjie x2i // fix e sound: (graad)negetjie/-s
geves (_ x2@fEs // prevent Eng. translation: hout-/staalgeves, etc. geves (_ x2@fEs // prevent Eng. translation: hout-/staalgeves, etc.
geweer x2@ve@r // restore default stress: geweerhout/-sport/-staander
@C) gewens x2@ve~ns @C) gewens x2@ve~ns




.group h .group h
h h h h
h (h h (h
@A) h (_ // drop final h after vowel: (Su)Sarah and similar
_) half (geP4 h'alf // fix e sound in halfgetem(de), etc. _) half (geP4 h'alf // fix e sound in halfgetem(de), etc.
half (kro@ h%alf // move default stress: halfkroon/halfkrone half (kro@ h%alf // move default stress: halfkroon/halfkrone
half (een h%alf_ // move default stress in this and following time expressions: halfeen/-vergadering half (een h%alf_ // move default stress in this and following time expressions: halfeen/-vergadering
hiëro (glie h%i@r%u // fix stress and vowel sounds: hiëroglief/-gliewe hiëro (glie h%i@r%u // fix stress and vowel sounds: hiëroglief/-gliewe
A) hle (_ =LE // Nguni words and names ending in -hle: Enhlalakahle/Hlalanikahle/malahle/Phahle A) hle (_ =LE // Nguni words and names ending in -hle: Enhlalakahle/Hlalanikahle/malahle/Phahle
_) hobo ho@bu // fix o sound in compounds: hobokonsert/-musiek/-solo/-sonata/-speler _) hobo ho@bu // fix o sound in compounds: hobokonsert/-musiek/-solo/-sonata/-speler
hoender hun@r // drop d: hoender and many compounds
hoeve (r h%uf& // fix stress and e sounds: hoever(re) hoeve (r h%uf& // fix stress and e sounds: hoever(re)
hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede
hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure... hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure...
heet (hoofdi h%e@t // move default stress: heethoofdig/-e/-heid heet (hoofdi h%e@t // move default stress: heethoofdig/-e/-heid
heide (C heId@ // heidene/heidense/heidendom/heidekind/Heidelberg heide (C heId@ // heidene/heidense/heidendom/heidekind/Heidelberg
hekse (C hEks@ // fix 2nd e sound in compounds starting with hekse: heksebrousel, etc. hekse (C hEks@ // fix 2nd e sound in compounds starting with hekse: heksebrousel, etc.
_) hek (ta h%Ek // move default stress: hektaar/hektare
held (haft h%&lt // move default stress: heldhaftig/-e/-heid held (haft h%&lt // move default stress: heldhaftig/-e/-heid
hel (din h%&l // move default stress: heldin/-ne/-netjie hel (din h%&l // move default stress: heldin/-ne/-netjie
_) hele (K he@l@ // hele/helend/heler _) hele (K he@l@ // hele/helend/heler
i i i i
i (C I i (C I
i (CA i i (CA i
ô) i (K %i // i unstressed: ou-/jongnôi
tax) i (@ %i // fix i sound: taxidrywer/-staanplek/-staking/minibustaxistelsel tax) i (@ %i // fix i sound: taxidrywer/-staanplek/-staking/minibustaxistelsel
iaal (_K i'A:l // aal normally stressed in words like bilabiaal/koloniaal, etc. iaal (_K i'A:l // aal normally stressed in words like bilabiaal/koloniaal, etc.
iale (_ i'A:l@ // al normally stressed in words like bilabiale/koloniale, etc. iale (_ i'A:l@ // al normally stressed in words like bilabiale/koloniale, etc.
_) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus _) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus
jacaranda j%ak%ar'anda //jacaranda and compounds jacaranda j%ak%ar'anda //jacaranda and compounds
jakaranda j%ak%ar'anda //jakaranda and compounds jakaranda j%ak%ar'anda //jakaranda and compounds
jakob (regop j%A:k%Op // move default stress: jakobregop/-pies and similar
jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë
jaloe (sie j%al%u // stress: jaloesie/beroepsjaloesie jaloe (sie j%al%u // stress: jaloesie/beroepsjaloesie
_) jan (C@ j%an // fix stress and n sound: janfiskaal/janfrederik/jangroentjie/janrap/jansalie _) jan (C@ j%an // fix stress and n sound: janfiskaal/janfrederik/jangroentjie/janrap/jansalie
kelende (_ k@l@nd@ kelende (_ k@l@nd@
kkelend (_ k@l@nt kkelend (_ k@l@nt
kkelende (_ k@l@nd@ kkelende (_ k@l@nd@
kelkie (wyn k%&lk%i // move default stress: kelkiewyn/-e
kelner k&ln@r // fix 2nd e sound in compounds like kelnerbaadjie, etc. kelner k&ln@r // fix 2nd e sound in compounds like kelnerbaadjie, etc.
kelner (in k%&ln@r // move default stress: kelnerin/-ne/-netjie kelner (in k%&ln@r // move default stress: kelnerin/-ne/-netjie
ke (nnAK kE // fix e sound: boek-/markkenner/-kennis ke (nnAK kE // fix e sound: boek-/markkenner/-kennis
flik) kerkers k@rk&:rs // fix e sounds: flikkerkers/-e flik) kerkers k@rk&:rs // fix e sounds: flikkerkers/-e
weder) ker (A k'e@r // wederkerend/wederkerig weder) ker (A k'e@r // wederkerend/wederkerig
bottel) kers k&:rs // fix e sound: bottelkers/-e bottel) kers k&:rs // fix e sound: bottelkers/-e
@) ker (sie_ k&r // fix e sound: koekkersies and similar compounds
kete (l ke@t@ // fix e sounds: stookketel/ketelmaker and many similar compounds kete (l ke@t@ // fix e sounds: stookketel/ketelmaker and many similar compounds
_) keuse k''Y@s@ // fix connecting e sound in compounds starting with keuse _) keuse k''Y@s@ // fix connecting e sound in compounds starting with keuse
kiaat k%i;A:t // move default stress: kiaat and compounds kiaat k%i;A:t // move default stress: kiaat and compounds
klawerses kl%A:v@rsEs // fix stress and last e sound: klawerses klawerses kl%A:v@rsEs // fix stress and last e sound: klawerses
klawer (t kl%A:v@r // move default stress: klawertwee/-tien klawer (t kl%A:v@r // move default stress: klawertwee/-tien
klawer (v kl%A:v@r // move default stress: klawervier/-vyf/-vrou klawer (v kl%A:v@r // move default stress: klawervier/-vyf/-vrou
klawer (veld klA:v@r // restore default stress: klawerveld/-e
kleinse (rig kl%eInse@ // fix stress and e sound: kleinserig/-e/-heid kleinse (rig kl%eInse@ // fix stress and e sound: kleinserig/-e/-heid
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
kartets k%artEts // fix stress and e sound: kartets/-e and compounds kartets k%artEts // fix stress and e sound: kartets/-e and compounds
kar (ton k%ar // move default stress: karton and compounds kar (ton k%ar // move default stress: karton and compounds
_) kar (ve k%ar // move default stress: karveel/karvele _) kar (ve k%ar // move default stress: karveel/karvele
kar (ven kar // restore default stress: karvenster and compounds
kar (ver kar // restore default stress: karverkoper/-verhuurder, etc. kar (ver kar // restore default stress: karverkoper/-verhuurder, etc.
kar (wats k%ar // move default stress: karwats and compounds kar (wats k%ar // move default stress: karwats and compounds
kar (wei k%ar // move default stress: karwei and derivatives kar (wei k%ar // move default stress: karwei and derivatives
kar (wy k%ar // move default stress: karwysaad and compounds
ka (sarm k%a // move default stress: kasarm and compounds ka (sarm k%a // move default stress: kasarm and compounds
kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne and compounds kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne and compounds
kaske (nade k%ask@ // fix stress and e sound: kaskenade/-s and compounds kaske (nade k%ask@ // fix stress and e sound: kaskenade/-s and compounds
_) ka (sta k%a // move default stress: kastaiing and compounds _) ka (sta k%a // move default stress: kastaiing and compounds
kasta (njet k%ast%a // move default stress: kastanjet/-te and compounds
_) ka (ste@ k%a // move default stress: kasteel/kastele and compounds _) ka (ste@ k%a // move default stress: kasteel/kastele and compounds
ka (sty k%a // move default stress: kasty/-der/-ding ka (sty k%a // move default stress: kasty/-der/-ding
kasse (t k%asE // fix stress and e sound: kasset/-te and compounds kasse (t k%asE // fix stress and e sound: kasset/-te and compounds
ko (kon k%u // fix 1st o sound and move default stress: kokon and compounds ko (kon k%u // fix 1st o sound and move default stress: kokon and compounds
kol (jan k%Ol // move default stress: koljander and compounds kol (jan k%Ol // move default stress: koljander and compounds
ko (lom k%u // fix stress and 1st o sound: kolom/-me and compounds ko (lom k%u // fix stress and 1st o sound: kolom/-me and compounds
kol (wyn k%Ol // move default stress: kolwyntjie and compounds
komati (K k%umA:t%i // fix stress and vowel sounds: Komati(poort and other compounds) komati (K k%umA:t%i // fix stress and vowel sounds: Komati(poort and other compounds)
kombers k%Omb&:rs // fix stress and e sound: kombers/-e/dons-/lappieskombers, etc. kombers k%Omb&:rs // fix stress and e sound: kombers/-e/dons-/lappieskombers, etc.
ko (mete k%u // fix stress and 1st o sound: komete and compounds ko (mete k%u // fix stress and 1st o sound: komete and compounds
kommissie k%umis%i //kommissie alone and in compounds kommissie k%umis%i //kommissie alone and in compounds
_) ko (pie@ k%u // kopiereg/kopieë _) ko (pie@ k%u // kopiereg/kopieë
koe (rA k%u // koerier/koerasie/koerant and compounds koe (rA k%u // koerier/koerasie/koerant and compounds
koe (rend ku // restore default stress: koerend/-e
ko (ra k%u // fix stress and o sound: koraal/korale and compounds ko (ra k%u // fix stress and o sound: koraal/korale and compounds
korrek k%urEk //korrek and derivatives korrek k%urEk //korrek and derivatives
korrektiewe k%Or%Ektiv@ // fix stress and vowel sounds: korrektiewe(toesig, etc.) korrektiewe k%Or%Ektiv@ // fix stress and vowel sounds: korrektiewe(toesig, etc.)
lang (werp l%aN // move default stress: langwerpig/-e/-heid lang (werp l%aN // move default stress: langwerpig/-e/-heid
lank (moe l%aNk // move default stress: lankmoedig/-e/-heid lank (moe l%aNk // move default stress: lankmoedig/-e/-heid
_) lan (sA l%an // move default stress: lanset/-te/lanseer/-ering/lansier _) lan (sA l%an // move default stress: lanset/-te/lanseer/-ering/lansier
_) lapa (K lA:pa // fix words like lapakombuis
lapar (otomi l%ap%ar // fix stress and a sounds: laparotomie lapar (otomi l%ap%ar // fix stress and a sounds: laparotomie
_) lapel l%ap'&l //lapelwapen etc. _) lapel l%ap'&l //lapelwapen etc.
lapel (_ l%ap'&l //baadjielapel etc. lapel (_ l%ap'&l //baadjielapel etc.
likke (wa l@k@ // move default stress: likkewaan/likkewane likke (wa l@k@ // move default stress: likkewaan/likkewane
&) likste (_S6 l@kst@ &) likste (_S6 l@kst@
li (kwid l%i // fix 1st i sound: (ge)likwideer/likwidasie/likwiditeit li (kwid l%i // fix 1st i sound: (ge)likwideer/likwidasie/likwiditeit
lini (aal l@n%i // fix stress and 1st i sound: liniaal(tjie) and compounds
litera (t l@t@r%a // literatuur/literature/literatore, but literbottel litera (t l@t@r%a // literatuur/literature/literatore, but literbottel
liter (A l@t@r // fix i sound: literêr/-e/alliterasie liter (A l@t@r // fix i sound: literêr/-e/alliterasie
_) li (mi l@ // fix stress and 1st i sound: limiet/-e/limitasie/limiteer _) li (mi l@ // fix stress and 1st i sound: limiet/-e/limitasie/limiteer
mani (ak m%A:n%i // fix stress and 1st a sound: maniak/-ke and compounds mani (ak m%A:n%i // fix stress and 1st a sound: maniak/-ke and compounds
manier m@ni:r //manier and compounds manier m@ni:r //manier and compounds
manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer
mani (ku m%an%i // fix stress and a sound: manikuur and compounds
manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie
manji (fie m%anj@ // fix stress and i sound: manjifiek/-e manji (fie m%anj@ // fix stress and i sound: manjifiek/-e
man (moe m%an // move default stress: manmoedig/-e/-heid man (moe m%an // move default stress: manmoedig/-e/-heid
melank m%El%aNk // stress and 1st e sound: melankolies/melankoliek/-e/melankolikus/-ci melank m%El%aNk // stress and 1st e sound: melankolies/melankoliek/-e/melankolikus/-ci
mem (bra m%Em // move default stress: membraan/membrane mem (bra m%Em // move default stress: membraan/membrane
memo (rA m%Em%u // fix stress and vowel sounds: memorandum/memoranda and compounds/memoriseer/-sering memo (rA m%Em%u // fix stress and vowel sounds: memorandum/memoranda and compounds/memoriseer/-sering
memo (riA m%Emo@ // fix stress and o sound: memorie(boek)/in memoriam
meneer m@n'e@r // meneer/meneertjie meneer m@n'e@r // meneer/meneertjie
menere m@n'e@r@ // menere/beroepsmenere menere m@n'e@r@ // menere/beroepsmenere
meng (sel mEN // fix e sound: sitronellamengsel and similar compounds meng (sel mEN // fix e sound: sitronellamengsel and similar compounds
mening m'e@n@N mening m'e@n@N
mening (itis mEn@Nx2 // see rule: mening m'e@n@N mening (itis mEn@Nx2 // see rule: mening m'e@n@N
menstru m%Enstr%y // 1st e not nasalised, fix stress: menstruasie/menstrueer
mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related
mentele (K mEnt'e@l@ // stress always on penultimate slb of words ending in ntele/-r mentele (K mEnt'e@l@ // stress always on penultimate slb of words ending in ntele/-r
men (tasie m%En // fix stress: argumentasie/dokumentasie and similar men (tasie m%En // fix stress: argumentasie/dokumentasie and similar
memora (bili m%Em%Or%a // fix vowel sounds and stress: (sport)memorabilia and similar memora (bili m%Em%Or%a // fix vowel sounds and stress: (sport)memorabilia and similar
_) metel me@t@l // vermetel/-e/-es/-heid... _) metel me@t@l // vermetel/-e/-es/-heid...
ment m'Ent ment m'Ent
mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds
mentali (teit m%Ent%al%i // fix stress: mentaliteit/sentimentaliteit and compounds/slagoffermentaliteit
mentjie m'EiNci // monumentjie/dokumentjies mentjie m'EiNci // monumentjie/dokumentjies
menue (t m%En%y:;E // fix stress and vowel sounds: menuet/-te menue (t m%En%y:;E // fix stress and vowel sounds: menuet/-te
@C) mere (_ me@:r@ // fix penultimate e sound: sout(water)-/strandmere @C) mere (_ me@:r@ // fix penultimate e sound: sout(water)-/strandmere
me (riete m@ // move default stress: meriete and compounds 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.
te) merk m&rk // fix e sound: hoogte-/geboortemerk/-e/-ie
me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds
AAs) mes (_ mEs // fix last e sound in compounds like kombuismes AAs) mes (_ mEs // fix last e sound in compounds like kombuismes
Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes
hef) mes (_ mEs // fix e sound: hout-/rooihefmes and similar
sny) mes (_ mEs // fix final e sound in compounds like brood-/voorsnymes
tafel) mes (_ mEs // fix final e sound: tafelmes tafel) mes (_ mEs // fix final e sound: tafelmes
_) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler _) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler
metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds
mi (miek m@ // fix stress and i sound: mimiek and compounds mi (miek m@ // fix stress and i sound: mimiek and compounds
mi (mosa m@ // fix stress and i sound: mimosa/-s mi (mosa m@ // fix stress and i sound: mimosa/-s
minag m'Inax2 // minag/geminag/minagting/minagtend minag m'Inax2 // minag/geminag/minagting/minagtend
minare (t m@n%arE // fix stress and vowel sounds: minaret/-te
minder (jar m@n@r // move default stress: minderjarig and derivatives minder (jar m@n@r // move default stress: minderjarig and derivatives
miner (A m@n@r // mineraal and many compounds miner (A m@n@r // mineraal and many compounds
mi (neur m%i // move default stress: mineur and compounds mi (neur m%i // move default stress: mineur and compounds
monit (e m%On%it // fix vowel sounds and stress: moniteer/-tering and compounds monit (e m%On%it // fix vowel sounds and stress: moniteer/-tering and compounds
monitor (K mOnitOr // fix o sound: monitor/-skerm, etc. monitor (K mOnitOr // fix o sound: monitor/-skerm, etc.
monnike mOn@k@ // fix i and e sounds: monnikedom/-klooster/-koor/-werk and many similar monnike mOn@k@ // fix i and e sounds: monnikedom/-klooster/-koor/-werk and many similar
mono (ga m%o@n%o@ // move default stress: monogaam/-game
monopo (li m%o@n%o@p%u // fix stress and o sound: monopolie/-ë/-monopolisties/-e monopo (li m%o@n%o@p%u // fix stress and o sound: monopolie/-ë/-monopolisties/-e
mon (teur m%On // move default stress: monteur/-s and compounds mon (teur m%On // move default stress: monteur/-s and compounds
monu (ment m%On%y // monument/e/vrouemonument/monumenteel monu (ment m%On%y // monument/e/vrouemonument/monumenteel
motie (C m%o@ti // handle stress: winsmotief/-tiewe and similar compounds motie (C m%o@ti // handle stress: winsmotief/-tiewe and similar compounds
motor mo@t@r // motorfiets/motorkar/vragmotor motor mo@t@r // motorfiets/motorkar/vragmotor
motor (ie m%uto@r // fix stress and o sounds: motories/-e motor (ie m%uto@r // fix stress and o sounds: motories/-e
mozzarella m%Ots%ar&l%a // fix stress and zz sound: Mozzarella(kaas)




.group n .group n
spi) n (ge n // split n/g: spingehalte/-geluid, etc. spi) n (ge n // split n/g: spingehalte/-geluid, etc.
ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds
ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees
e) n (goeC n // split ng: lakengoed/-goeters and similar
n (_g N n (_g N
ng (ent Nx2 // kontingent/tangent and derivatives ng (ent Nx2 // kontingent/tangent and derivatives
CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste
na (burig n%A: // move default stress: naburig/-e/-heid na (burig n%A: // move default stress: naburig/-e/-heid
na (byge n%A: // move default stress: nabygeleë and derivatives na (byge n%A: // move default stress: nabygeleë and derivatives
nabyh (e n%A:beIh // move default stress: nabyheid/-hede nabyh (e n%A:beIh // move default stress: nabyheid/-hede
nag (adder nax2_ // fix a sound, pause: nagadder/-s/nagaddergif, etc.
na (ï n%a_ // naïef/naïewe/naïwiteit na (ï n%a_ // naïef/naïewe/naïwiteit
@) na (lis n%a // shorten a sound: joernalis/-te/-tiek @) na (lis n%a // shorten a sound: joernalis/-te/-tiek
nami (bi n%amI // Namibië/Namibiese nami (bi n%amI // Namibië/Namibiese
omkeer Omke@r // restore default stress: omkeer/handomkeer and similar omkeer Omke@r // restore default stress: omkeer/handomkeer and similar
_) omker (A Omke@r // omkering/omkerende _) omker (A Omke@r // omkering/omkerende
_) om (klem %Om // move default stress: omklem/-ming _) om (klem %Om // move default stress: omklem/-ming
_) om (kringP2 Om // move default stress: omkring/-de/-ing
_) om (laag %Om // move default stress: omlaag and compounds _) om (laag %Om // move default stress: omlaag and compounds
_) omli (gg %OmlI // move default stress: omliggend/-e _) omli (gg %OmlI // move default stress: omliggend/-e
om (ly %Om // move default stress: omlyn/-ing om (ly %Om // move default stress: omlyn/-ing
ort (ometr %Ort // fix 2nd o sound and stress: ortometrie/-metries/-e ort (ometr %Ort // fix 2nd o sound and stress: ortometrie/-metries/-e
ort (osko %Ort // fix 2nd o sound and stress: ortoskopies/-e ort (osko %Ort // fix 2nd o sound and stress: ortoskopies/-e
ose (a %o@S%i // fix stress and s and e sounds: oseaan/oseane and compounds ose (a %o@S%i // fix stress and s and e sounds: oseaan/oseane and compounds
o (soon %O // fix stress and 1st o sound: osoon(laag) and similar
@) oties 'o@tis // antibioties/eksoties/eroties/neuroties @) oties 'o@tis // antibioties/eksoties/eroties/neuroties
@) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc. @) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc.
@) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc. @) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc.
onder (werping %On@r // move default stress: onderwerping/-sklousule onder (werping %On@r // move default stress: onderwerping/-sklousule
onder (worp %On@r // move default stress: onderworpene/onderworpenheid, etc. onder (worp %On@r // move default stress: onderworpene/onderworpenheid, etc.
onder (wysC@ ''On@r // force default stress: onderwysdepartement and similar onder (wysC@ ''On@r // force default stress: onderwysdepartement and similar
onderwyser (a On@rv'eIs@r_ // fix stress, e sound, pause: ouer-onderwyseraand/-e and similar
_) onderge (@P7 'On@rx2@ _) onderge (@P7 'On@rx2@
_) on (kant On // stress on 1st slb.: onkant and compounds _) on (kant On // stress on 1st slb.: onkant and compounds
on (langs On // stress on 1st slb.: onlangs/-e on (langs On // stress on 1st slb.: onlangs/-e
K) opeen _%Op_e@n K) opeen _%Op_e@n
_) ope (K o@p@ //opehart opestelling etc./ope _) ope (K o@p@ //opehart opestelling etc./ope
ope (l o@p@ // dopeling/hopelik/opelug/opelyf ope (l o@p@ // dopeling/hopelik/opelug/opelyf
_) ope (rig o@p@ // fix stress: operig/-e
opgee (+ 'Opx2e@ // see rule: _) opge (@P4 Opx2@ opgee (+ 'Opx2e@ // see rule: _) opge (@P4 Opx2@
_) opge (@P4 'Opx2@ // stress on 1st slb _) opge (@P4 'Opx2@ // stress on 1st slb
&C) op (ig 'o@p // wanhopig/voorlopige &C) op (ig 'o@p // wanhopig/voorlopige
op (lett %Op // move default stress: oplettend/-e/-heid
opper Op@r // oppergesag/wese/vlak/man opper Op@r // oppergesag/wese/vlak/man
opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste
opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid
pori (eus p%o@r%i // fix stress: porieus/-e pori (eus p%o@r%i // fix stress: porieus/-e
porse (lein p%Ors@ // fix stress and e sound: porselein and compounds porse (lein p%Ors@ // fix stress and e sound: porselein and compounds
por (sie pOr // restore default stress: porsie/-s/-tjie por (sie pOr // restore default stress: porsie/-s/-tjie
por (stok pOr // restore default stress: porstok/-ke
portu (ge p%Ort%y // fix stress: Portugees/Portugese portu (ge p%Ort%y // fix stress: Portugees/Portugese
_) pos (a pOs //posadres/posadministrasie _) pos (a pOs //posadres/posadministrasie
posisie p%uzis%i posisie p%uzis%i
_) poten (C p%utEn // fix stress and vowel sounds: potent/-e/potensie _) poten (C p%utEn // fix stress and vowel sounds: potent/-e/potensie
poten (sia p%o@t%En // fix e sound: potensiaal/potensiale and compounds poten (sia p%o@t%En // fix e sound: potensiaal/potensiale and compounds
pot (sier p%Ot // move default stress: potsierlik/-e/-heid pot (sier p%Ot // move default stress: potsierlik/-e/-heid
pot (yster pOt_ // fix o sound, insert pause: potyster/-tafel and similar compounds
poësie p%u:@zi // bieg/natuurpoësie/poëversameling, etc. poësie p%u:@zi // bieg/natuurpoësie/poëversameling, etc.
poë (tA p%u:e@ // poëties/-e/poëte poë (tA p%u:e@ // poëties/-e/poëte
ra) pporte (rA p%Orte@ // fix stress and e sound: rapportering/rapporterende ra) pporte (rA p%Orte@ // fix stress and e sound: rapportering/rapporterende
pajama p@dZ'A:ma //pajama and compounds pajama p@dZ'A:ma //pajama and compounds
pak (A pak? // pakesel/pakos/verpakafdeling pak (A pak? // pakesel/pakos/verpakafdeling
pakistan p%ak%istan //first a and stress pakistan p%ak%istan //first a and stress
_) pa (kka p%a // move default stress: pakkaas/pakkase
pakke (t p%akE // pakket/-te and compounds pakke (t p%akE // pakket/-te and compounds
pale (stA p%al@ // fix stress and a sound: Palestina/Palestyn and derivatives pale (stA p%al@ // fix stress and a sound: Palestina/Palestyn and derivatives
pale (t p%alE // fix stress and a sound: palet/-te and compounds pale (t p%alE // fix stress and a sound: palet/-te and compounds
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 (CA p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig _) par (CA p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
parka (baadj park%a // restore default stress: parkabaadjie/-s and compounds
parke (raad park@ // fix stress and e sound: Parkeraad(slid, etc.) parke (raad park@ // fix stress and e sound: Parkeraad(slid, 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


.group pe .group pe
_) pe (dA p@ //pedaal pedanties etc. _) pe (dA p@ //pedaal pedanties etc.
@C) pe (da p@ // fix e sound: voet-/petrolpedaal/-pedale
_) peda (g p%Ed%a //pedagogie etc. _) peda (g p%Ed%a //pedagogie etc.
_) pedi p%Ed%i //pediater etc. _) pedi p%Ed%i //pediater etc.
_) ped (of p%Ed //pedofiel pedofilie, etc. _) ped (of p%Ed //pedofiel pedofilie, etc.
prakti (syn pr%akt%i // move default stress: praktisien and compounds and plural prakti (syn pr%akt%i // move default stress: praktisien and compounds and plural
_) prak (tyk pr%ak // stress: praktyk and compounds _) prak (tyk pr%ak // stress: praktyk and compounds
prefek prifEk // fix vowel sounds: prefek/-te/-tuur and compounds prefek prifEk // fix vowel sounds: prefek/-te/-tuur and compounds
preg (nanC pr%Ex2 // move default stress: pregnant/pregnansie
pre (histo pre@ // fix pre sound: prehistories/-e pre (histo pre@ // fix pre sound: prehistories/-e
pre (lud pr@ // fix stress and e sound: prelude/-s/(ge)preludeer pre (lud pr@ // fix stress and e sound: prelude/-s/(ge)preludeer
pre (mier pr@ // move default stress and fix e sound: premier and compounds pre (mier pr@ // move default stress and fix e sound: premier and compounds
pre (nata pr,e@ // fix e sound: prenataal/-tale pre (nata pr,e@ // fix e sound: prenataal/-tale
presbiteri (a pr%Esb@t%e@r%i presbiteri (a pr%Esb@t%e@r%i
@) present pr@sEnt // restore default stress when present 2nd part of compound: krismispresent, etc.
preste (rend pr@ste@ // fix stress and vowel sounds: presterend/-e preste (rend pr@ste@ // fix stress and vowel sounds: presterend/-e
prestige pr%Esti:Z // prestige and compounds
pretori pr%it%o@r%i //pretorianer,pretoriaan, fix e and o sounds a pretori pr%it%o@r%i //pretorianer,pretoriaan, fix e and o sounds a
pretoria (_ pr%it'o@ria //ending in pretoria pretoria (_ pr%it'o@ria //ending in pretoria
pretoria (C prit'o@ria //pretoriase, pretoriahuis etc. pretoria (C prit'o@ria //pretoriase, pretoriahuis etc.
promenade pr%Om@nA:d@ // fix stress and vowel sounds: promenade/-dek/-konsert, etc. promenade pr%Om@nA:d@ // fix stress and vowel sounds: promenade/-dek/-konsert, etc.
promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit
promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering
pronker (tji prONk_&r // insert pause, fix e sound: pronkertjie/-s and compounds
proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc. proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc.
prosa pro@s%a //prosa and compounds prosa pro@s%a //prosa and compounds
prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e
proto (C pro@tu // protokol/prototipe proto (C pro@tu // protokol/prototipe
prot (on+ pro@t // fix o sounds: proton/-e and compounds prot (on+ pro@t // fix o sounds: proton/-e and compounds
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.
provita pr%uvit%a // fix v sound: provita/-s and compounds




.group q .group q
ra (pier r%a // move default stress: rapier/-e 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 rIb%i // skaapribbetjie
riete rit@ // fix e sound: merietelys/rietedak, etc. riete rit@ // fix e sound: merietelys/rietedak, etc.
rinkh (als rINk // drop h: rinkhals and compounds rinkh (als rINk // drop h: rinkhals and compounds
rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der
ris (kant r@s // move default stress: riskant/-e 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
rl(_ _^_EN // words ending in -rl are English: girl/whirl/pearl, etc.
roersel rurs@l // fix stress and e sound: roersele and compounds of roersel roersel rurs@l // fix stress and e sound: roersele and compounds of roersel
_) rol (A rOl? // oprolaksie/roloorvleueling _) rol (A rOl? // oprolaksie/roloorvleueling
roeme (nië r%umi: // fix stress and e sound: Roemenië(r) roeme (nië r%umi: // fix stress and e sound: Roemenië(r)
regi (sseuC r@x2@ // fix stress and e sound: (film-/kuns-/mede-/musiek-/oorklankings-)regisseur/-sseuse regi (sseuC r@x2@ // fix stress and e sound: (film-/kuns-/mede-/musiek-/oorklankings-)regisseur/-sseuse
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 regle (ment r@x2l@ // fix stress and e sounds: reglement/-e and compounds
re (gulA r%E // fix e sound: regulasie/reguleer/regulering
regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list
rekla (mA r@kla // fix e sound: reklamatories/-e/reklamasie rekla (mA r@kla // fix e sound: reklamatories/-e/reklamasie
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
@) s (_S1q s // to correctly handle plurals of propernames in af_list: Jouberts, etc. @) s (_S1q s // to correctly handle plurals of propernames in af_list: Jouberts, etc.
@@@) s (_S1 s // to correctly handle plural s @@@) s (_S1 s // to correctly handle plural s
i) s (_ s // exceptions to rule: @@@) s (_S1 s i) s (_ s // exceptions to rule: @@@) s (_S1 s
sahara sah'A:ra // fix stress and a sound: Sahara/-woestyn and similar compounds
sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres
o) s (_ s // exceptions to rule: @@@) s (_S1 s o) s (_ s // exceptions to rule: @@@) s (_S1 s
u) s (_ s // exceptions to rule: @@@) s (_S1 s u) s (_ s // exceptions to rule: @@@) s (_S1 s
@) s (jas s // fix s/j sounds: asjas/huisjas/nertsjas/pelsjas @) s (jas s // fix s/j sounds: asjas/huisjas/nertsjas/pelsjas
sjerrie SEri // fix e sound: sjerrie and compounds sjerrie SEri // fix e sound: sjerrie and compounds
sjimpan (see S@mp%an // move default stress: sjimpansee/-s and compounds sjimpan (see S@mp%an // move default stress: sjimpansee/-s and compounds
sjokolade SOk@l'A:d@ // sjokolade and compounds
sjokolade S%Ok@lA:d@ // sjokolade and compounds: warmsjokolade
s (jaap s // stads-/dorpsjaap s (jaap s // stads-/dorpsjaap
@) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar @) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar
@) sj (aCA sj // apartheidsjare/oesjare/beroepsjaloesie @) sj (aCA sj // apartheidsjare/oesjare/beroepsjaloesie
skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds
skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum
skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene
skle (rose skl@ // fix stress and e sound: sklerose and compounds
_) skok (AP4 sk''Ok_ // fix o sound and stress: skokaankondiging/-effek/-insluiting/-onthulling... _) skok (AP4 sk''Ok_ // fix o sound and stress: skokaankondiging/-effek/-insluiting/-onthulling...
skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet
sko (lier sk%o@ // move default stress: skolier/-e sko (lier sk%o@ // move default stress: skolier/-e
spi (na@ sp%i // move default stress: spinaal/spinale spi (na@ sp%i // move default stress: spinaal/spinale
_) 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 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
_) sport (@@@ sp''Ort_ // force stress on 1st slb.: sportadministrasie/-konfederasie _) sport (@@@ sp''Ort_ // force stress on 1st slb.: sportadministrasie/-konfederasie
subli (mA s%Wbl%i // move default stress: sublimaat/-ate/sublimering subli (mA s%Wbl%i // move default stress: sublimaat/-ate/sublimering
sublimi (na s%Wbl%im%i // move default stress: subliminaal/-ale sublimi (na s%Wbl%im%i // move default stress: subliminaal/-ale
sub (sidA s%Wb // move default stress: subsidie/-s and compounds sub (sidA s%Wb // move default stress: subsidie/-s and compounds
sub (skrip s%Wb // move default stress: subskripsie and compounds
sub (stansie s%Wp // move default stress and fix b sound: substansie/-s/substansieel/-siële sub (stansie s%Wp // move default stress and fix b sound: substansie/-s/substansieel/-siële
substi (tu s%Wbst@ // move default stress: subsistuut/-tute substi (tu s%Wbst@ // move default stress: subsistuut/-tute
sub (ti s%Wp // stress and b sound: subtiel/-ste/subtiliteit sub (ti s%Wp // stress and b sound: subtiel/-ste/subtiliteit
se (_ s@ //the word se and some ending in se se (_ s@ //the word se and some ending in se
__) se (_ s@ //Se at start of sentence. __) se (_ s@ //Se at start of sentence.
_) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra _) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra
_) se (doos s@ // fix stress and e sound: sedoos(wind)
se (ggA s& // fix e sound: niksseggend/-e se (ggA s& // fix e sound: niksseggend/-e
@) seko (no@ s_%Ek%u // fix e sound; default stress; insert short pause: bedryfs-landsekonomie/-s/-ekonoom @) seko (no@ s_%Ek%u // fix e sound; default stress; insert short pause: bedryfs-landsekonomie/-s/-ekonoom
@) seks (_ sEks // fix final e sound: kinder-/kuber-/oumens-/selfoon-/tienerseks @) seks (_ sEks // fix final e sound: kinder-/kuber-/oumens-/selfoon-/tienerseks
sending (_ sEnd@N //fix sending at word end sending (_ sEnd@N //fix sending at word end
sen (sorie s%En // move default stress: sensories/-e sen (sorie s%En // move default stress: sensories/-e
senter sEnt@r // fix e sound: binne-/buite-/Springboksenter senter sEnt@r // fix e sound: binne-/buite-/Springboksenter
senti (ment s%Ent%i // fix stress: sentimentaliteit
@C) se (re_ se@ // fix penultimate e sound: bed-/brand-/keel-/kop-/kruip-/maag-/mond-/pitsere @C) se (re_ se@ // fix penultimate e sound: bed-/brand-/keel-/kop-/kruip-/maag-/mond-/pitsere
se (roet s@ // fix stress and e sound: seroet and compounds se (roet s@ // fix stress and e sound: seroet and compounds
seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.) seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.)
@) sel (wig s'&l // stress: (ver)eenselwig and derivatives @) sel (wig s'&l // stress: (ver)eenselwig and derivatives
polisie) se (lK s& // fix e sound: polisiesel/-le polisie) se (lK s& // fix e sound: polisiesel/-le
_) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s _) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s
semel (@ se@m@l // fix stress and e sound: semeltjie/semeluitslag
_) semi (_ sEmi // fix e sound: semi/semi-formeel, etc. _) semi (_ sEmi // fix e sound: semi/semi-formeel, etc.
semi (na s%Em%i // seminaar/seminare/seminarium semi (na s%Em%i // seminaar/seminare/seminarium
_) semi (C sEmi // fix vowel sounds: semistaatsinstellings and similar _) semi (C sEmi // fix vowel sounds: semistaatsinstellings and similar
staties st'A:tis staties st'A:tis
sta (tutA st%a // fix stress and a sound: statute/statutêr sta (tutA st%a // fix stress and a sound: statute/statutêr
êr) ste (_S3 st@ // preserve stress: elementêrste/primêrste, etc. êr) ste (_S3 st@ // preserve stress: elementêrste/primêrste, etc.
_) ste (faan st@ // fix stress and e sound: Stefaan/-s/-sie
%Cel) ste (r st& // fix e sound: dubbelster/-re %Cel) ste (r st& // fix e sound: dubbelster/-re
Cet) ste (rK st& // fix e sound: ballet-/kabaret-/krieketster/-re Cet) ste (rK st& // fix e sound: ballet-/kabaret-/krieketster/-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
film) ste (r st& // fix e sound: filmster and compounds
nd) ste (r st& // fix e sound: aandster/oggendster nd) ste (r st& // fix e sound: aandster/oggendster
pool) ste (r st& // fix e sound: poolster pool) ste (r st& // fix e sound: poolster
prent) ste (r st& // fix e sound: rolprentster/-re prent) ste (r st& // fix e sound: rolprentster/-re
_) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit
ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel
ster (hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfsterhotel ster (hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfsterhotel
skaap) ster (tjie st&:r // fix e sound: skaapstertjie/-s
vark) ster (tjie st&:r // fix e sound: varkstertjie/-s
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
stede (C ste@d@ // fix e sounds of many compounds and derivatives containing stede stede (C ste@d@ // fix e sounds of many compounds and derivatives containing stede
steding ste@d@N // besteding and compounds steding ste@d@N // besteding and compounds
stede (_ ste@d@ //voorstede, hoofstede etc. stede (_ ste@d@ //voorstede, hoofstede etc.
stele (_ ste@l@ //kastele lepelstele etc. stele (_ ste@l@ //kastele lepelstele etc.
stene (_ ste@n@ //skoorstene, bakstene etc. stene (_ ste@n@ //skoorstene, bakstene etc.
sten (sil stEn // fix e sound in compounds like wolbaalstensil
chri) stene (_ st@n@ //fix christene and compounds chri) stene (_ st@n@ //fix christene and compounds
@) stel (o st@l //bewusteloos/lustelose/rusteloosheid/kosteloos @) stel (o st@l //bewusteloos/lustelose/rusteloosheid/kosteloos
mAre) ste (r st& // fix e sound: more/môrester/-re mAre) ste (r st& // fix e sound: more/môrester/-re
@) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc. @) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc.
stewel ste@v@l // sokkerstewels/stewelmaker and other compounds stewel ste@v@l // sokkerstewels/stewelmaker and other compounds
stie (beu st%i // move default stress: stiebeuel and compounds stie (beu st%i // move default stress: stiebeuel and compounds
@) stiek st'ik // statistiek/akoestiek/artistiek and many similar
@V) stiek st'ik // statistiek/akoestiek/artistiek and many similar
@) sties =st%is // statisties/akoesties/artisties and many similar @) sties =st%is // statisties/akoesties/artisties and many similar
sti (let st%i // move default stress: stilet/-te/stiletto sti (let st%i // move default stress: stilet/-te/stiletto
stil (swy st@l // move default stress: stilswy(g)end/-e stil (swy st@l // move default stress: stilswy(g)end/-e
talen (tjie t%alEiN // fix -entjie: (kuns-/musiek)talentjie talen (tjie t%alEiN // fix -entjie: (kuns-/musiek)talentjie
@) talig t'A:l@x2 // Anderstalig/tweetalig @) talig t'A:l@x2 // Anderstalig/tweetalig
@) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar @) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar
_) ta (ma t%a // tamatie and compounds
tama (tie t%amA: // tamatie and compounds/kersietamaties, etc.
_) ta (mb t%a // tamboer and compounds/tambotie and compounds _) ta (mb t%a // tamboer and compounds/tambotie and compounds
tamboe (ryn t%amb%u // move default stress: tamboeryn/-e and compounds tamboe (ryn t%amb%u // move default stress: tamboeryn/-e and compounds
tamele (tj t%am@lEi // fix stress and vowel sounds: tameletjie/-s tamele (tj t%am@lEi // fix stress and vowel sounds: tameletjie/-s
ti (perA t%i // move default stress: tipering/tiperend/-e ti (perA t%i // move default stress: tipering/tiperend/-e
ti (ra t%i // move default stress tiran tirade ti (ra t%i // move default stress tiran tirade
tira (nnie t%ir%a // move default stress: tirannie tira (nnie t%ir%a // move default stress: tirannie
tissue tiS%u // English word often used in Afrikaans text: manstissue, etc.
titel tit@l // fix e sound: (on)getiteld/titelblad/-geveg and many similar titel tit@l // fix e sound: (on)getiteld/titelblad/-geveg and many similar
tj tS tj tS
@) tj (a tj // separate tj: agtjarig/blatjang/bontjas/olifantjag/ouditjaar/tweegatjakkals @) tj (a tj // separate tj: agtjarig/blatjang/bontjas/olifantjag/ouditjaar/tweegatjakkals
toi (let t%OI // move default stress: toilet and compounds toi (let t%OI // move default stress: toilet and compounds
tokke (lo t%Ok@ // move default stress: tokkelos/-sie/tokkelok and compounds tokke (lo t%Ok@ // move default stress: tokkelos/-sie/tokkelok and compounds
tok (tokk t%Ok // move default stress: toktokkie/-s/-spelery, etc. tok (tokk t%Ok // move default stress: toktokkie/-s/-spelery, etc.
tombola t%Ombo@l%a // move default stress: tombola and compounds
_) to (na t%o@ // fix stress and o sound: tonaal/tonale _) to (na t%o@ // fix stress and o sound: tonaal/tonale
_) top (A t''Op_ // fix o sound: topaandeel/-offisier/-universiteit, etc. _) top (A t''Op_ // fix o sound: topaandeel/-offisier/-universiteit, etc.
_) top (aas t%up // fix stress and o sound: topaas and compounds _) top (aas t%up // fix stress and o sound: topaas and compounds
_) top (ogra t%o@p // fix stress and o sound: topografies and derivatives _) top (ogra t%o@p // fix stress and o sound: topografies and derivatives
_) top (olo t%o@p // fix stress and o sound: topologies and derivatives _) top (olo t%o@p // fix stress and o sound: topologies and derivatives
@) toris (_ t'o@r@s // fix stress: pectoris/klitoris @) toris (_ t'o@r@s // fix stress: pectoris/klitoris
_) tor (nyn t%Or // move default stress: tornyn/-e and compounds
_) tos (ka t%Os // move default stress: Toskaanse/Toskane _) tos (ka t%Os // move default stress: Toskaanse/Toskane
ttel t@l // many compounds of bottel/skottelgoed ttel t@l // many compounds of bottel/skottelgoed
tuberkulose t%yb@rk%ylo@s@ // fix stress; e sound in compounds: tuberkulose/-behandeling tuberkulose t%yb@rk%ylo@s@ // fix stress; e sound in compounds: tuberkulose/-behandeling
tug (A tWx2_ // fix u sound: (on)tugondersoek/-oortreding/-ordonnansie tug (A tWx2_ // fix u sound: (on)tugondersoek/-oortreding/-ordonnansie
tuiglik t'Yyx2l@k // stress: werktuiglik/sintuiglik/-e/-heid tuiglik t'Yyx2l@k // stress: werktuiglik/sintuiglik/-e/-heid
tuin (ier t%Yyn // move default stress: tuinier and compounds tuin (ier t%Yyn // move default stress: tuinier and compounds
turlington tW:l%iNt@n // Turlington/-reuk/-smaak
tussen tWs@n // tussenin/tussenbeide/tussenganger tussen tWs@n // tussenin/tussenbeide/tussenganger
tuur t'yr tuur t'yr
parti) tuur ty:r // compounds ending with partituur take default stress: musiekpartituur parti) tuur ty:r // compounds ending with partituur take default stress: musiekpartituur
s) tuur ty:r // "uur" in stuur takes default stress: weggestuur s) tuur ty:r // "uur" in stuur takes default stress: weggestuur
tweed (K twi:d // english pronunciation: tweedbaadjie/-pak, etc.
tweed (ra twe@d // but: tweedrag/tweedraadwol, etc.
twis (A twIs_ // fix i sound, pause: twisappel/-s twis (A twIs_ // fix i sound, pause: twisappel/-s
twyfe (l tweIf@ // fix e sound: twyfelloos/twyfellose twyfe (l tweIf@ // fix e sound: twyfelloos/twyfellose
@) ty (dig t'eI // gelyktydig/vroegtydig @) ty (dig t'eI // gelyktydig/vroegtydig
@) tele (_ t'e@l@ @) tele (_ t'e@l@


tenis t@nIs tenis t@nIs
tennis t'En@s // tennisafrigter/tennisarm
tennis tEn@s // tennisafrigter/tennisarm/tafeltennis
tera (pA t%Er%a // terapie/terapeut/terapeuties/arbeids-/groepsterapie tera (pA t%Er%a // terapie/terapeut/terapeuties/arbeids-/groepsterapie
o) tera (pA t%Er%a' // stress: chemoterapie/fisioterapeut/psigoterapie... o) tera (pA t%Er%a' // stress: chemoterapie/fisioterapeut/psigoterapie...
_) tereg t@r&x2 // teregwysing/teregstelling/tereghelp/tereg _) tereg t@r&x2 // teregwysing/teregstelling/tereghelp/tereg
transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal
transistor tr%ansIst@r // trans- not prefix, fix o sound: transistor(radio, etc.) transistor tr%ansIst@r // trans- not prefix, fix o sound: transistor(radio, etc.)
transito tr%ansit%u // trans not prefix: transitorooftog and similar transito tr%ansit%u // trans not prefix: transitorooftog and similar
transpa (rant tr%ansp@ // fix stress and a sound: transparant/-e and compounds
transport tr%anspOrt // fix stress: transport and compounds transport tr%anspOrt // fix stress: transport and compounds
trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds
trap (soe tr%ap // move default stress: trapsoetjies/-e trap (soe tr%ap // move default stress: trapsoetjies/-e


tre (k tr& tre (k tr&
trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering
tril (joen tr@l // move default stress: triljoen/-e
trio (_ tri:u // fix o sound: (fluit-/harp/-kitaar...)trio trio (_ tri:u // fix o sound: (fluit-/harp/-kitaar...)trio
triomf (ant tr%i%Omf // move default stress: triomfantlik/-e triomf (ant tr%i%Omf // move default stress: triomfantlik/-e
tri (omf tr%i // move default stress: triomf/-boog/-lied/-tog, etc. tri (omf tr%i // move default stress: triomf/-boog/-lied/-tog, etc.
_) trom (pet tr%Om // move default stress: trompet/-tte/-tter and compounds _) trom (pet tr%Om // move default stress: trompet/-tte/-tter and compounds
tro (tseer tr%O // stress: trotseer/getrotseer tro (tseer tr%O // stress: trotseer/getrotseer
tro (tsering tr%O // move default stress tro (tsering tr%O // move default stress
trousseau tr''u:s@U // trousseau/-kis and similar
truk (aats tryk // default stress: trukaatser/-s truk (aats tryk // default stress: trukaatser/-s
tru (projek try
tru (spieë try // fix u sound: truspieël/-tjie/-s tru (spieë try // fix u sound: truspieël/-tjie/-s
tru (stee tr%W // move default stress: trustee and compounds tru (stee tr%W // move default stress: trustee and compounds


uit (sluiten %Yyt // move default stress: uitsluitend/-e uit (sluiten %Yyt // move default stress: uitsluitend/-e
uitsluitlik %YytslYytl@k // move default stress: uitsluitlik/-e uitsluitlik %YytslYytl@k // move default stress: uitsluitlik/-e
uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder
uitspatlik %Yytspatl@k // move default stress: uitspatlik/-e/-heid
uitspreekl %Yytspre@kl // fix stress and avoid -lik suffix: onuitspreeklik/-e uitspreekl %Yytspre@kl // fix stress and avoid -lik suffix: onuitspreeklik/-e
uitstaan (C %YytstA:n // move default stress: uitstaande/onuitstaanbaar/-bare uitstaan (C %YytstA:n // move default stress: uitstaande/onuitstaanbaar/-bare
uit (steken %Yyt // move default stress uit (steken %Yyt // move default stress
ve (l f& // maagvel, stress on 1st slb ve (l f& // maagvel, stress on 1st slb
@) vel (A fe@l // aanbeveling/aanbevelingsbrief @) vel (A fe@l // aanbeveling/aanbevelingsbrief
veld (C f&lt // fix d sound: veldreuk/-radio/-rantsoen, etc. veld (C f&lt // fix d sound: veldreuk/-radio/-rantsoen, etc.
veld (eks f&lt_ // fix d sound, pause: veldekskursie/-ekspedisie/-s
veld (o f&lt_ // fix d sound, pause: veldorgideë/-opsigter/-oppervlakte/-opname, etc.
vele f'e@l@ vele f'e@l@
ven (detta v%En // fix stress and v sound: vendatta and compounds ven (detta v%En // fix stress and v sound: vendatta and compounds
ven (dusie f@n // fix stress and e sound: vendusie and compounds ven (dusie f@n // fix stress and e sound: vendusie and compounds
ven (yn f@n // venyn/venynig ven (yn f@n // venyn/venynig
ver f@r ver f@r
veranda v@randa // fix stress and e sound: veranda and compounds veranda v@randa // fix stress and e sound: veranda and compounds
verbena v@rbe@n%a // fix v sound: verbena/-s and compounds
verby f@rbeI // fix stress: verbykomkans/verbykomslag, etc. verby f@rbeI // fix stress: verbykomkans/verbykomslag, etc.
vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds
verversing f@rf'&rs@N //verversing and compounds verversing f@rf'&rs@N //verversing and compounds
ver (baal v%&r // fix v and e sounds and stress: (nie)verbaal ver (baal v%&r // fix v and e sounds and stress: (nie)verbaal
ver (balA v%&r // fix v and e sounds and stress: (nie)verbale/verbaliseer ver (balA v%&r // fix v and e sounds and stress: (nie)verbale/verbaliseer
vere (b fe@r@ // ver- not prefix: verebed/-bedryf/-bedekking vere (b fe@r@ // ver- not prefix: verebed/-bedryf/-bedekking
vere (do fe@r@ // ver not prefix: veredons/veredos
vere (h fe@r@ // ver- not prefix: verehoed/-e/-ens vere (h fe@r@ // ver- not prefix: verehoed/-e/-ens
vere (k fe@r@ // ver- not prefix: verekombers/-kuif/-kussing vere (k fe@r@ // ver- not prefix: verekombers/-kuif/-kussing
vere (m fe@r@ // ver- not prefix: verematras/-se/-sie vere (m fe@r@ // ver- not prefix: verematras/-se/-sie
C) verse (_ f&rs@ C) verse (_ f&rs@
KA) verse (_ v'&rs@ KA) verse (_ v'&rs@
versifi (C v%&rs%if%i // fix stress and v and e sounds: (di)versifiseer/-sering/-kasie and compounds versifi (C v%&rs%if%i // fix stress and v and e sounds: (di)versifiseer/-sering/-kasie and compounds
vers (kalC f&:rs // fix stress and e sound: verskalf/verskalwers/verskalfie
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
voor (sie f%o@r // move default stress: voorsien/-ing voor (sie f%o@r // move default stress: voorsien/-ing
voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid
voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar
voor (spoedi f%o@r // move default stress: voorspoedig/-e
voor (sk fo@r // voorskiet/voorskot/voorskrif/voorskryf voor (sk fo@r // voorskiet/voorskot/voorskrif/voorskryf
voorstedeli (k f%o@rste@d@l@ // move default stress: voorstedelik/-e vs voorstede voorstedeli (k f%o@rste@d@l@ // move default stress: voorstedelik/-e vs voorstede
voor (trap fo@r // restore default stress: voortrap/-pe/-pies
voort (duren f%o@r_ // fix stress and drop t: voortdurend/-e voort (duren f%o@r_ // fix stress and drop t: voortdurend/-e
voor (trek fo@r // voortrek/voortrekker and compounds voor (trek fo@r // voortrek/voortrekker and compounds
voort (v@@ f%o@rt // voortvarend/voortvlugtige voort (v@@ f%o@rt // voortvarend/voortvlugtige
C) wag (K vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter C) wag (K vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter
k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc. k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc.
wal (kure v%al // move default stress: Walkure/-s wal (kure v%al // move default stress: Walkure/-s
@k) w (alm v // fix w sound: drank-/tabakwalm/-s
wange (drag vanx2@ // (jeug)wangedrag and similar wange (drag vanx2@ // (jeug)wangedrag and similar
wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid
wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid
wan (stalt v%an // move default stress: wanstaltig/-e/-heid wan (stalt v%an // move default stress: wanstaltig/-e/-heid
wan (trouig v%an // move default stress: wantrouig/-e wan (trouig v%an // move default stress: wantrouig/-e
wapen vA:p@n // fix problems with compounds and derivatives of wapen: ontwapening/wapengeweld wapen vA:p@n // fix problems with compounds and derivatives of wapen: ontwapening/wapengeweld
//wapenopleiding
t) ware (K vA:r@ // fix w sound: toilet-/genot-/gietware
wasag (tig vas_,ax2 // fix a sound, stress, pause: wasagtig/-e/-heid
@k) ware vA:r@ // breekware/blikware/lakware @k) ware vA:r@ // breekware/blikware/lakware
@s) ware vA:r@ // kruideniersware/bronsware/glasware/kombuisware @s) ware vA:r@ // kruideniersware/bronsware/glasware/kombuisware
bes) ware wA:r@ // geloofsbesware/gewetensbesware bes) ware wA:r@ // geloofsbesware/gewetensbesware
wa (vrag vA: // long a sound: (bok-/krui)wavrag/-te wa (vrag vA: // long a sound: (bok-/krui)wavrag/-te
_) wa (wy vA: // fix stress and a sound: // wawyd/wawydwakker, etc. _) wa (wy vA: // fix stress and a sound: // wawyd/wawydwakker, etc.
AC) w (aaier v // fix w sound: blaas-/bamboes-/dakwaaier and similar AC) w (aaier v // fix w sound: blaas-/bamboes-/dakwaaier and similar
k) waar vA:r // fix w sound: eerlikwaar/waarlikwaar/werklikwaar
waardeer vard'e@r // waardeer/waardeerder waardeer vard'e@r // waardeer/waardeerder
waarder (@ vard'e@r // waarderend/e/waardering waarder (@ vard'e@r // waarderend/e/waardering
&) waardig v'A:rd@x2 // stress on -waardig: merkwaardig/besienswaardigheid, etc. &) waardig v'A:rd@x2 // stress on -waardig: merkwaardig/besienswaardigheid, etc.
_) wig vIx2 // fix stress: gewig/-tig/-e _) wig vIx2 // fix stress: gewig/-tig/-e
wiking vikiN // fix i sounds wiking vikiN // fix i sounds
wilhel (mi v@lh%&l // move default stress: Wilhelmina/-straat wilhel (mi v@lh%&l // move default stress: Wilhelmina/-straat
wille (mi v@l@ // move default stress: Willemien/-tjie/Willemina
_) wind (a vInt_ // fix d sound, insert pause: windaf(dryfmiddel)/as _) wind (a vInt_ // fix d sound, insert pause: windaf(dryfmiddel)/as
_) wind (o vInt_ // fix d sound, insert pause: windop/windorrel, etc. _) wind (o vInt_ // fix d sound, insert pause: windop/windorrel, etc.
wispel (tu v@sp@l // move default stress: wispelturig/-e/-heid wispel (tu v@sp@l // move default stress: wispelturig/-e/-heid
@) w (_N _^_EN @) w (_N _^_EN
@) werste (_ vIrst@ @) werste (_ vIrst@
k) w (oA v // fix w sound: dankwoord/werkwoord/skoonmaakwoede/spreekwoord k) w (oA v // fix w sound: dankwoord/werkwoord/skoonmaakwoede/spreekwoord
@C) w (oCC v // fix w sound: kubiekwortel/steekwond/onafhanklikwording/republiekwording/varkwors
@C) w (oCK v // fix w sound: kubiekwortel/steekwond/onafhanklikwording/republiekwording/varkwors
@C) woning vo@n@N // fix w sound in many compounds ending in -woning @C) woning vo@n@N // fix w sound in many compounds ending in -woning
woe (styn v%u // move default stress: woestyn and compounds woe (styn v%u // move default stress: woestyn and compounds
wolke vOlk@ // nimbuswolke/wolkekrabber wolke vOlk@ // nimbuswolke/wolkekrabber
@t) w (y v // fix w sound: granaatwyn/kieswetwysiging/krotwyk/straatwys(ie) @t) w (y v // fix w sound: granaatwyn/kieswetwysiging/krotwyk/straatwys(ie)
@C) w (yd v // fix w sound: kerkwyding/landswyd/reikwydte/republiekwyd/wêreldwyd @C) w (yd v // fix w sound: kerkwyding/landswyd/reikwydte/republiekwyd/wêreldwyd
@t) wyfel weIf@l // fix w sound: gewetenstwyfel and similar @t) wyfel weIf@l // fix w sound: gewetenstwyfel and similar
&s) wyk veIk // fix w sound: diakenswyk/dorpswyk/koshuiswyk/-e and similar compounds
wynkel (der veInk&l // split n/k, fix e sound: (brande)wynkelder/-s wynkel (der veInk&l // split n/k, fix e sound: (brande)wynkelder/-s
w (ys v //padwyser and many others with wyser in compounds w (ys v //padwyser and many others with wyser in compounds
wysge (rig v%eIsx2e@ // fix stress and e sound: wysgerig/-e wysge (rig v%eIsx2e@ // fix stress and e sound: wysgerig/-e
wel (spreken v%&l // move default stress: welsprekend/-e wel (spreken v%&l // move default stress: welsprekend/-e
@) wendig v'End@x2 // inwendig/noodwendig/uitwendig @) wendig v'End@x2 // inwendig/noodwendig/uitwendig
&) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene &) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene
fees) wens ve~ns // fix w and e sounds: kersfeeswens/-e
A) wer (AA v@r // fix e sound: beyweraar/keweruitroeiing/nyweraar/oewereienaar A) wer (AA v@r // fix e sound: beyweraar/keweruitroeiing/nyweraar/oewereienaar
ge) were ve@r@ // fix e sound in compounds ending in gewere ge) were ve@r@ // fix e sound in compounds ending in gewere
werk (stelli v%&rk // fix stress: bewerkstellig and derivatives werk (stelli v%&rk // fix stress: bewerkstellig and derivatives

+ 17
- 8
dictsource/da_list View File


// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling-to-phoneme words for Danish // Spelling-to-phoneme words for Danish


_brv br'i:v _brv br'i:v
_ced s@d'ila _ced s@d'ila
_cir s'3:kVmfl,Eks _cir s'3:kVmfl,Eks
_dia 'umlaut
_dia 'omlyd
_dot wiDd'0tabVv _dot wiDd'0tabVv
_grv aks'aN gr'a:v _grv aks'aN gr'a:v
_hac h'atS,Ek _hac h'atS,Ek
@ sn,&:bel'&: @ sn,&:bel'&:
/ sgRVsdrai $max3 / sgRVsdrai $max3
\ 'Vmvendsgr,VsdRai $max3 \ 'Vmvendsgr,VsdRai $max3
_, koma:
_, k'oma:
_; se:mi:ko:lVn _; se:mi:ko:lVn
_: ko:lVn
_: k'o:lVn
_. puNtum _. puNtum
_? spWrgsmVlstajn _? spWrgsmVlstajn
_! udRVbstejn _! udRVbstejn
÷ divid'eReD meD ÷ divid'eReD meD
= l'imeD = l'imeD
# n'OmV # n'OmV
§ paragR'af


§ paragr'af
× g'aNe
ª feminin Wdin'al
º m'askulin Wdin'al
® registr'eret varemerke
¼ en kvart
¢ s'ents
¥ j'en:
µ my
' apostr'of


// numbers // numbers
_0 'nOl _0 'nOl




// exceptions // exceptions
Alene al'en@ // alone
egen a:j@n egen a:j@n
eget a:j@D eget a:j@D
egne a:in@ egne a:in@
idet id'e // in so far as idet id'e // in so far as
sagde sa@ // said sagde sa@ // said
sig sAi // oneself sig sAi // oneself
//slags sl+ags // sort, type
slags sl'ags // sort, type
tre tr'e // the number 3 tre tr'e // the number 3








+ 21
- 4
dictsource/da_rules View File


// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling-to-phoneme rules for Danish // Spelling-to-phoneme rules for Danish


ch) au (f o ch) au (f o
nive) au o nive) au o
an (cienn aN an (cienn aN
restaur) ant aN
rest) au (r o
aw (K aw aw (K aw
ay (K aj ay (K aj
aa O: aa O:
d) d d d) d d
e) d (t e) d (t
i) d (e d i) d (e d
i) d (ræt d
i) d (t i) d (t
o) d (a d o) d (a d
o) d (i d o) d (i d
æn) d (ri d æn) d (ri d
æn) d (re d æn) d (re d
æn) d (re d æn) d (re d
bol) d d
kla) dd (e D kla) dd (e D
kry) dd (er D kry) dd (er D
dd (et D dd (et D
plu) d (se plu) d (se
ral) d (e ral) d (e
sag) d (e sag) d (e
sed) d (el D
sku) d (t sku) d (t
smu) d (s smu) d (s
snu) d (e D snu) d (e D
o) ld l o) ld l
æ) ld (r ld æ) ld (r ld
bo) ld ld bo) ld ld
bo) ld (A ld
fo) ld l fo) ld l
he) ld l he) ld l
he) ld (ig ld he) ld (ig ld
ki) ld (A l
me) ld (el l me) ld (el l
me) ld (ing l me) ld (ing l
no) ld l no) ld l
so) ld (aC d so) ld (aC d
so) ld (at ld







mm m mm m
m (A m m (A m
gour) met m'e gour) met m'e

kompli) ment maN
kompli) ment (e ment
regle) ment (e ment


.group n .group n


sa) n (kt sa) n (kt
eku) nd nd eku) nd nd
pag) n (e nj pag) n (e nj
ballo) n N
ræso) n N
sæso) n N
talo) n N
gleme) n (t N gleme) n (t N




sa) ng (e N sa) ng (e N
se) ng (e N se) ng (e N
ti) ng (e N ti) ng (e N
ti) ng (ent Ng
træ) ng (e N træ) ng (e N
arra) ng NS arra) ng NS






.group r .group r
r r
r (A R
r R
r (K r // not followed by a vowel
ø) r V: ø) r V:
Ae) r V Ae) r V
&) rd (e_ r &) rd (e_ r








+ 3
- 2
dictsource/de_list View File

// Numbers // Numbers
//======== //========
_0 'nUl _0 'nUl
_1 _'aIn
_1a _'aIns
_1 _'aIns
_1a _'aIn
_2 'tsvaI _2 'tsvaI
_3 'd@-*aI _3 'd@-*aI
_4 'fi:* _4 'fi:*
selbst zElpst selbst zElpst
serie se:*I;@ serie se:*I;@
service sE*vIs service sE*vIs
soeben zo:_'e:b@n
sofort $2 sofort $2
sogar $2 sogar $2
soweit $2 soweit $2

+ 10
- 3
dictsource/de_rules View File

@@) erisch @*IS @@) erisch @*IS
&) erung (_ =@*UN &) erung (_ =@*UN


echo ECo:
_) e (ff %E _) e (ff %E
l) e (g_ 'e: l) e (g_ 'e:
eih (_ aI eih (_ aI
// @) keit (_S4 kaIt // @) keit (_S4 kaIt
// @) keiten (_S6 kaIt@n // @) keiten (_S6 kaIt@n


ko (e@ ko:
kolleg k%Ole:g kolleg k%Ole:g
_) komme (C@ k%OmE _) komme (C@ k%OmE
_) ko (mp k%O _) ko (mp k%O
_) ob (jek %Op _) ob (jek %Op
_) obst (reP4 'o:pst _) obst (reP4 'o:pst
oe (_ o:@ oe (_ o:@
@) oen (_S1 n
_n) o (e o:
@) o (g_ 'o: @) o (g_ 'o:
t) ogen (_ o:g'e:n t) ogen (_ o:g'e:n
@) o (gin_ 'o: @) o (gin_ 'o:
_) periphe p,e:*i:fe: _) periphe p,e:*i:fe:
_) personen (@P8 pE*s'o:n@n _) personen (@P8 pE*s'o:n@n
philie f'i:li: philie f'i:li:
_) photo f,o:to:
_) pro (@ %p@-*o: _) pro (@ %p@-*o:


_) po (e p%o:
_) poe (sc pY:
po (em p%o:
po (et p%o:
poesie po:e:z'i:
_) poly (@P4 p,o:ly: _) poly (@P4 p,o:ly:
partei p%a*taI partei p%a*taI
_) perfe (k p%E*fE _) perfe (k p%E*fE
t (chen_ t t (chen_ t
_) teen _^_EN _) teen _^_EN
_) tele (@ t,e:le: _) tele (@ t,e:le:
_) thermo tE*mo:
tuerei (_ tu:@*'aI tuerei (_ tu:@*'aI
thrill _^_EN thrill _^_EN
_pa) th t _pa) th t
u u: u u:
uh (+ u: uh (+ u:
uell u:'El uell u:'El
ue y:
u (e u:
r) ue (_ u:@ r) ue (_ u:@
t) ue (_ u:@ t) ue (_ u:@
ue (_ 'y: ue (_ 'y:

+ 49
- 32
dictsource/dict_phonemes View File



- : ; ? b c d dZ - : ; ? b c d dZ
f g h j k l L m f g h j k l L m
n N p r s S t T
tS v w x x2 z Z
n N n^ p r s S t
T tS v w x x2 z Z




Dictionary ne_dict Dictionary ne_dict
T tS v v# w x z T tS v v# w x z




Dictionary hu_dict

A a: E e: i i: o o:
u u: Y y y: Y:

- : b c d dZ dz f
g h j J k l m n
n^ p r R R2 s S s2
t tS ts v z Z


Dictionary fi_dict Dictionary fi_dict


& &i &y a a2 ai au e & &i &y a a2 ai au e


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




Dictionary grc_dict Dictionary grc_dict
th. v w x z th. v w x z




Dictionary hu_dict
Dictionary am_dict


A a: E e: i i: o o:
u u: Y y y: Y:
@ a e i o u y


- : b c d dZ f g
h j J k l m n N
n^ p r R R2 s S s2
t tS ts v z Z
b d h l m q R s
S t tS




Dictionary hy_dict Dictionary hy_dict
@ a aI aU e E E2 i @ a aI aU e E E2 i
o O u o O u


* : ? b d dZ f g
h j k l m n N n^
p r R R2 s S t tS
v w x z
: ? b d dZ f g h
j k l m n N n^ p
r R R2 s S t tS v
w x z




Dictionary is_dict Dictionary is_dict
S t tS v w x z Z S t tS v w x z Z




Dictionary ro_dict

@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o O Oa oI oU u uI
y Y yI yU

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


Dictionary ku_dict Dictionary ku_dict


8 a e E E# eI eU i 8 a e E E# eI eU i
z z. z z.




Dictionary nci_dict

a e i o O

: ? b c d f g j
k l m n p R s S
t tS v w x


Dictionary nl_dict Dictionary nl_dict


8 @ @- A a: E e: EI 8 @ @- A a: E e: EI
w x z Z w x z Z




Dictionary ro_dict

@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o O Oa oI oU u uI
y Y yI yU

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


Dictionary ru_dict Dictionary ru_dict


8 @- a A e E E# E2 8 @- a A e E E# E2
: ; b C d d. dZ f : ; b C d d. dZ f
g h H j k l l. m g h H j k l l. m
n N n. n^ p Q r R n N n. n^ p Q r R
s S s. t t. th tS v
w z z.
s S s. t T t. th tS
v w z z.




Dictionary tr_dict Dictionary tr_dict

+ 11
- 5
dictsource/en_list View File

_dpt pOInt _dpt pOInt
_roman roUm@n_ _roman roUm@n_


_0st st
_0nd @nd
_0rd d
_0th T
_#st st
_#nd @nd
_#rd d
_#th T
_ord T // default ending _ord T // default ending
_1o f'3: _1o f'3:
_2o s'Ek _2o s'Ek
archway $1 archway $1
arena a2ri:n@ arena a2ri:n@
argue A@gju: argue A@gju:
aries e@ri:z
arithmetic a2rITm@tIk arithmetic a2rITm@tIk
arise a2raIz arise a2raIz
arisen a2rIz@n arisen a2rIz@n
inherit Inh'ErIt // inherited inherit Inh'ErIt // inherited
innard In3d innard In3d
inner In3 inner In3
inning InI2N
innovative In@veItIv innovative In@veItIv
insect $1 insect $1
insert Ins3:t $onlys insert Ins3:t $onlys
piquant pi:k@nt piquant pi:k@nt
piracy paI@r@sI piracy paI@r@sI
pirate paIr@t pirate paIr@t
pisces paIsi:z
piteous pIti@s piteous pIti@s
pituitary $2 pituitary $2
plaguing pleIgIN plaguing pleIgIN
Danish deInIS Danish deInIS
Delhi dElI Delhi dElI
Djibouti dZIb'u:tI Djibouti dZIb'u:tI
Donegal d0nI2g'O:l
Durham dVr@m
Egyptian IdZ'IpS@n Egyptian IdZ'IpS@n
Eire e@r@ Eire e@r@
Geneva dZ@ni:v@ Geneva dZ@ni:v@
Bambi bambi: Bambi bambi:
Barack ba2rA:k Barack ba2rA:k
Barbara bA@b@r@ Barbara bA@b@r@
Betsy bEtsI
Boris b0rIs Boris b0rIs
Brien braI@n Brien braI@n
Candace kandIs Candace kandIs
Graham greI@m Graham greI@m
Hadrian heIdri:@n Hadrian heIdri:@n
Harriet hari@t Harriet hari@t
Heidi haIdI
Huw hju: Huw hju:
Iain i:@n Iain i:@n
Ian i:@n Ian i:@n
?3 amen ,eIm'En ?3 amen ,eIm'En
?3 anti antaI ?3 anti antaI
?3 banana ba2nan@ ?3 banana ba2nan@
?3 beta beIt@
?3 caffeine $2 ?3 caffeine $2
?3 comrade k0mrad ?3 comrade k0mrad
?3 commentary k0m@ntErI ?3 commentary k0m@ntErI

+ 3
- 2
dictsource/en_rules View File

ies (_S2i z ies (_S2i z
spec) ies (_ i:z spec) ies (_ i:z
ser) ies (_ i:z ser) ies (_ i:z
_ar) ies (_ i:z
iesc I2Es iesc I2Es
&) iest (_S3i @st &) iest (_S3i @st
pr) ie (st i: pr) ie (st i:
_) in (k IN _) in (k IN
_) in (l In _) in (l In
_) in (m In _) in (m In
_) inn (K In
_) inno (ce In@ _) inno (ce In@
_) inno (v In@ _) inno (v In@
_) inn (um %In _) inn (um %In
?3 n) ucle u:klI ?3 n) ucle u:klI
?3 n) uclear u:kli@3 ?3 n) uclear u:kli@3
@) u (da_ 'ju: @) u (da_ 'ju:
b) u (ddh U
u (guC V u (guC V
f) u (gal 'ju: f) u (gal 'ju:
ug (er_ u:g ug (er_ u:g
ž Z ž Z
þ T þ T
ð D ð D
ñ n^
ñ _^_ES




' '

+ 8
- 8
dictsource/eo_list View File

_dpt _komo_ _dpt _komo_


// ordinal numbers // ordinal numbers
_0a a
_0aj aI
_0an an
_0ajn aIn
_0-a a
_0-aj aI
_0-an an
_0-ajn aIn
_#a a
_#aj aI
_#an an
_#ajn aIn
_#-a a
_#-aj aI
_#-an an
_#-ajn aIn


// accent names // accent names
_lig ligat'uRa _lig ligat'uRa

+ 1
- 0
dictsource/es_rules View File

_) d d _) d d
m) d d m) d d
n) d d n) d d
r) d d




.group e .group e

+ 10
- 11
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2009-10-26 Michel Such <[email protected]>
// Updated 2010-02-07 Michel Such <[email protected]>
// //
// * Numbers, a few abbreviations and exceptions. // * Numbers, a few abbreviations and exceptions.
// //
qqs quelques $text qqs quelques $text
ratp $abbrev ratp $abbrev
riaa $abbrev riaa $abbrev
riscos RiskoEs
riscos riskoEs
sap $abbrev sap $abbrev
scsi $abbrev scsi $abbrev
sos $abbrev sos $abbrev
toutefois $u+ toutefois $u+
afin afE~ $u+ $brk afin afE~ $u+ $brk
avant $u+ avant $u+
après $u+
après aprEz2 $u+
(temps en temps) tA~zA~tA~ (temps en temps) tA~zA~tA~
ainsi $u+ ainsi $u+
alors alOr $u+ alors alOr $u+
pour $u+ pour $u+
autant $u+ autant $u+
tandis $u+ tandis $u+
dès $u
dès dEz2 $u
entre $u+ entre $u+
entre $verb entre $verb
contre $u+ contre $u+
telle $u+ telle $u+
telles $u+ telles $u+
tout t'ut2 tout t'ut2
rien Ri-'E~n2
rien ri-'E~n2


// Letters which can be words // Letters which can be words
//=========================== //===========================
hareng _!arA~ hareng _!arA~
pastis pastis pastis pastis
poing pwE~ poing pwE~
ressent R@s'A~t2
riz Ri
ressent r@s'A~t2
riz ri
sphincter sfE~ktEr sphincter sfE~ktEr
sous $u+ sous $u+
sur $u+ sur $u+
quit _^_en quit _^_en
recorder ricordeur $text recorder ricordeur $text
requiem rekw^ijEm requiem rekw^ijEm
revolver RevOlvEr
revolver revOlvEr
scan skan scan skan
scanner skaner2 $verb scanner skaner2 $verb
scanner skanWr $noun scanner skanWr $noun
mazout mazut mazout mazut
michael mikaEl michael mikaEl
out aut out aut
rut Ryt
rut ryt
scorbut scorbutt $text scorbut scorbutt $text
scout skut scout skut
stout staut stout staut
paint _^_en paint _^_en
paper _^_en paper _^_en
people _^_en people _^_en
redhat REdat
redhat rEdat
same _^_en same _^_en
sametime _^_en sametime _^_en
schubert SubEr schubert SubEr
wallis wAlis wallis wAlis
futuna futuna futuna futuna
zimbabwe zimbabwe zimbabwe zimbabwe


+ 3
- 3
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated: 2009-11-20 Michel Such <[email protected]>
// Updated: 2010-02-07 Michel Such <[email protected]>
// //


// Letter classes: // Letter classes:


Z) ème i-Em Z) ème i-Em
è E è E
ès E
Ar) ès (_ Es Ar) ès (_ Es
m) ès (_ Es m) ès (_ Es
n) ès (_ Es n) ès (_ Es


.group r .group r


_) r (A R
_su) rr rr // surréaliste _su) rr rr // surréaliste
cou) rr rr // courrai cou) rr rr // courrai
mou) rr rr // mourrai mou) rr rr // mourrai
cou) rr (i r // courrier cou) rr (i r // courrier
r r // rien r r // rien
rr r rr r
_) radio (@P5 Radio
_) radio (@P5 radio


// group r: English section // group r: English section
_) real _^_en _) real _^_en

+ 188
- 109
dictsource/hu_list View File

_0 nullA _0 nullA
_1 EJ _1 EJ
_2 kEt:Y: _2 kEt:Y:
_2a ke:t // for 200, 2000
_3 ha:R2om _3 ha:R2om
_4 ne:J _4 ne:J
_5 Yt _5 Yt
_8X n^oltsvAn _8X n^oltsvAn
_9X kilEntsvEn _9X kilEntsvEn
_0C sa:z _0C sa:z

_0M1 EzER2 _0M1 EzER2
_1M1 EzER2 _1M1 EzER2
_2M1 ke:tEzER2 _2M1 ke:tEzER2
_1M3 EJmillia:R2d _1M3 EJmillia:R2d
_2M3 ke:tmillia:R2d _2M3 ke:tmillia:R2d



_0M4 billio: _0M4 billio:
_1M4 billio: _1M4 billio:
_2M4 ke:tbillio: _2M4 ke:tbillio:
_dpt ||Ege:s //Not need the pause before this word _dpt ||Ege:s //Not need the pause before this word



// variants used when followed by hyphen and suffix starting with 'e' or 'a'
_1e EJ:
_2e kEt:
_3e ha:R2m
_7e hEt
_0M1e EzR2
_1M1e EzR2
_2M1e ke:tEzR2
// used after decimal point
_0Z1 tizEd // tenths _0Z1 tizEd // tenths
_0Z2 sa:zAd // hundredths _0Z2 sa:zAd // hundredths
_0Z3 EzR2Ed _0Z3 EzR2Ed
_1M1o EzR2Edik _1M1o EzR2Edik
_2M1o ke:tEzR2Edik _2M1o ke:tEzR2Edik


// ordinal numbers with -a or -e suffix, which is spoken but not written (eg. "december 2. óta")
// Use this pronunciation when a number (with a dot) is between a $alt word and a $alt3 word.
// Set $alt3 flag for: óta, és. közt, között

_1qx ElSEjE
_2qx ma:SodikA
_1q EJ:EdikE
_2q kEt:EdikE
_3q hAR2_mAdikA
_4q nEJEdikE
_5q YtYdikE
_6q hAtodikA
_7q hEtEdikE
_8q n^oltsAdikA
_9q kilEntsEdikE
_10q tizEdikE
_20q husAdikA
_30q hAR2_mintsAdikA



// $alt2 means these rules only apply if the previous word // $alt2 means these rules only apply if the previous word
// has $alt1 (language specific). $text implies $only (for this group only) // has $alt1 (language specific). $text implies $only (for this group only)


_0-a A $alt2
_0-i Ei $alt2
_0-e E $alt2
_0-án a:n $alt2
_0-ára a:R2A $alt2
_0-ére e:R2E $alt2
_0-ra a:R2A $alt2
_0-re e:R2E $alt2
_0-én e:n $alt2
_0-ai Ai $alt2
_0-ei Ei $alt2
_0-től e:tY:l $alt2
_0-tól a:to:l $alt2
_0-ig e:ig $alt2 //special date ordinal numbers for example elsejéig, negyedikéig etc.
_0-éről e:R2Y:l $alt2
_0-áról a:R2o:l $alt2
_0-ára a:R2A $alt2
_0-ától a:to:l $alt2
_0-ről e:R2Y:l $alt2
_0-ról a:R2o:l $alt2
_0-ével e:vEl $alt2
_0-ával a:vAl $alt2
_0-éig e:ig $alt2
_0-áig a:ig $alt2
_#-a A $alt2
_#-i Ei $alt2
_#-e E $alt2
_#-án a:n //Need remove the $alt2 tag with this line, because some
//time with the book the sentences beginning with this form, and need
//spokening ordinal number alwais. For example: In 20th, the rain is raining.
_#-ára a:R2A //need remove the $alt2 tag, because with a books lot of
//string using following form: január 19-ről 20-ára. With this situation,
//need spokening huszadikára, not húsz-ára string.
_#-ére e:R2E //Same as prewious doed fix.
_#-ra a:R2A $alt2 //But this line for example need the $alt2 tag.
_#-re e:R2E $alt2
_#-én e:n //need remove the $alt2 attribute with this line
_#-ai Ai $alt2
_#-ei Ei $alt2
_#-től e:tY:l $alt2
_#-tól a:to:l $alt2
_#-ig e:ig $alt2 //special date ordinal numbers for example elsejéig, negyedikéig etc.
_#-éről e:R2Y:l
_#-áról a:R2o:l $alt2

_#-ától a:to:l $alt2
_#-ről e:R2Y:l $alt2
_#-ról a:R2o:l $alt2
_#-ével e:vEl $alt2
_#-ával a:vAl $alt2
_#-éig e:ig $alt2
_#-áig a:ig $alt2
_#-étől e:tY:l $alt2
_#-ét e:t $alt2
_#-át a:t $alt2

(1-e) elseje $text $alt2 (1-e) elseje $text $alt2
(1-én) elsején $text $alt2 (1-én) elsején $text $alt2
(1-jén) elsején $text $alt2 (1-jén) elsején $text $alt2
(1-ről) elsejéről $text $alt2 (1-ről) elsejéről $text $alt2
(1-ével) elsejével $text $alt2 (1-ével) elsejével $text $alt2
(1-éig) elsejéig $text $alt2 (1-éig) elsejéig $text $alt2
(1-étől) elsejétől $text $alt2
(1-ét) elsejét $text $alt2
(1-je) elseje $text $alt2
(1-jei) elsejei $text $alt2
(1-jével) elsejével $text $alt2
(1-jére) elsejére $text $alt2
(1-jétől) elsejétől $text $alt2
(1-jéig) elsejéig $text $alt2
(2-i) másodikai $text $alt2 (2-i) másodikai $text $alt2
(2-ig) másodikáig $text $alt2 (2-ig) másodikáig $text $alt2
(3-i) hAR2_mAdikAi $alt2 (3-i) hAR2_mAdikAi $alt2
(30-i) harmincadikai $text $alt2 (30-i) harmincadikai $text $alt2






// these exceptions only for 0, not for other numbers ending in '0' // these exceptions only for 0, not for other numbers ending in '0'
(0-ás) nul:a:S (0-ás) nul:a:S
(0-t) nul:a:t (0-t) nul:a:t
(0-nál) nul:a:na:l (0-nál) nul:a:na:l
(0-hoz) nul:a:hoz (0-hoz) nul:a:hoz
(0-s) nul:a:S (0-s) nul:a:S
(0-ára) nul:a:R2A //But if the 0-ára string have the text (only 0 number before the suffix, need spokening this exception.
(0-án) nul:a:n //same as prewious exception.
(0-ig) nul:a:ig
(00-ig) nul:Anul:a:ig //special exception
(0-ban) nul:a:bAn
(0-ba) nul:a:bA
(1-gyet) EJ:Et
(1-gyes) EJ:ES
(2-őt) kEt:Y:t


// entries with a single digit such as (2-i) also apply to 22, 32, etc, unless $only // entries with a single digit such as (2-i) also apply to 22, 32, etc, unless $only

// with these suffixes, use [J:] not [J]
(1-es) EJ:ES
(1-et) EJ:Et
(1-est) EJ:ESt
(1-esét) EJ:ESe:t
(1-esével) EJ:ESe:vEl
(1-essel) EJ:ES:El
(1-eseik) EJ:ESEik
(1-eseikkel) EJ:ESEik:El
(1-eseiket) EJ:ESEikEt
(1-esekkel) EJ:ESEk:El
(1-esek) EJ:ESEk
(1-el) EJ:El

(2-es) kEt:ES
(2-est) kEt:ESt
(2-essel) kEt:ES:El
(2-őt) kEt:Y:t
(2-esen) kEt:ESEn
(2-esével) kEt:ESe:vEl
(2-n) kEt:Y:n
(2-esekkel) kEt:ESEk:El
(2-eseket) kEt:ESEkEt
(2-eseik) kEt:ESEik
(2-esük) kEt:ESyk
(3-as) ha:R2mAS
(3-asának) ha:R2mASa:nAk
(3-ason) ha:R2mASon
(3-assal) ha:R2mAS:Al
(3-asával) ha:R2mASa:vAl
(3-ast) ha:R2mASt
(3-astól) ha:R2mASto:l
(3-ashoz) ha:R2mAShoz
(3-at) ha:R2mAt
(3-al) ha:R2om:Al
(3-asok) ha:R2mASok
(3-asoknak) ha:R2mASoknAk
(30-cal) hAR2mints:Al


//4 number suffixes //4 number suffixes
(4-el) ne:J:El //Nneed J: phoneme, not J phoneme contains one suffix) (4-el) ne:J:El //Nneed J: phoneme, not J phoneme contains one suffix)
(4-gyel) ne:J:El //Need J: phoneme, not J phoneme (4-gyel) ne:J:El //Need J: phoneme, not J phoneme
(4-t) ne:JEt //special number suffix exception
(5-tel) Yt:El (5-tel) Yt:El
(5-el) Yt:El (5-el) Yt:El
(5-től) Yt:Y:l (5-től) Yt:Y:l
(6-tal) hAt:Al (6-tal) hAt:Al
(6-tól) hAt:o:l (6-tól) hAt:o:l
(6-tól) h'Atodika:to:l $alt2 (6-tól) h'Atodika:to:l $alt2
(7-es) hEtES
(7-est) hEtESt
(7-esek) hEtESEk
(7-eseket) hEtESEkEt
(7-esekkel) hEtESEk:El
(7-esbe) hEtESbE
(7-esben) hEtESbEn
(7-esük) hEtESyk
(7-tel) he:t:El
(7-el) he:t:El

(7-től) he:t:Y:l (7-től) he:t:Y:l
(7-től) hEtEdike:tY:l $alt2 (7-től) hEtEdike:tY:l $alt2
(7-essel) hEtES:El
(7-esen) hEtESEN
(7-eseknek) hEtESEknEk
(7-et) hEtEt
(7-em) hEtEm
(10-es) tizES // use [i] not [i:]
(10-est) tizESt
(10-essel) tizES:El
(10-esével) tizESe:vEl
(10-en) tizEn
(10-et) tizEt
(7-tel) he:t:El
(8-cal) n^olts:Al
_10e tiz
_20e hus
(10-szer) ti:s:ER2 (10-szer) ti:s:ER2
(10-szeres) ti:s:ER2ES (10-szeres) ti:s:ER2ES
(20-as) husAS // use [u] not [u:]
(20-ast) husASt
(20-assal) husAS:Al
(20-asával) husASa:vAl
(20-at) husAt






//special number exceptions //special number exceptions
(80-al) n^oltsvAn:Al (80-al) n^oltsvAn:Al
(90-el) kilEntsvEn:El (90-el) kilEntsvEn:El



// These words mean that a dot after number, immediately preceding, does not mean an ordinal number // These words mean that a dot after number, immediately preceding, does not mean an ordinal number
január $alt január $alt
február $alt február $alt
szombat $alt szombat $alt
vasárnap $alt vasárnap $alt


//Following four seasons and suffixes not need spokening ordinal number
tavasz $alt
nyár $alt
ősz $alt
tél $alt
tavaszán $alt
nyarán $alt
őszén $alt
telén $alt
tavaszi $alt
nyári $alt
őszi $alt
téli $alt

// accent names // accent names
_lig ligAtu:R2A _lig ligAtu:R2A
_acu e:lES _acu e:lES


// characters // characters
_#9 tAb _#9 tAb
_#13 vAlAmi
_#32 so:kYz _#32 so:kYz
_cap n'AJ_| _cap n'AJ_|
_?? kAR2AktEr||ko:d // unknown characters (change this) _?? kAR2AktEr||ko:d // unknown characters (change this)
ADSL a:de:ESEl $allcaps //Internet connection type, we pronouns this with ádéesel ADSL a:de:ESEl $allcaps //Internet connection type, we pronouns this with ádéesel
ÁNTSZ a:Ente:Es $allcaps ÁNTSZ a:Ente:Es $allcaps
ATM a:te:Em $allcaps //The ATM stands. We pronouns this abbreviation with átéem word. Default, Espeak pronouns this abbreviation with atéem word. ATM a:te:Em $allcaps //The ATM stands. We pronouns this abbreviation with átéem word. Default, Espeak pronouns this abbreviation with atéem word.
cm tsEntime:tER2
km kilo:me:tER2 km kilo:me:tER2

GYSEV JESEv $allcaps GYSEV JESEv $allcaps
GYESEV JESEv $allcaps GYESEV JESEv $allcaps
HÉV he:v $allcaps HÉV he:v $allcaps
GDP dZi:di:pi: $allcaps GDP dZi:di:pi: $allcaps
?2 GDP $abbrev $allcaps ?2 GDP $abbrev $allcaps
HSDPA $abbrev $allcaps HSDPA $abbrev $allcaps
kb kYR2ylbElyl $hasdot
ORTT $abbrev $allcaps ORTT $abbrev $allcaps
ORFK oEREfka: $abbrev $allcaps ORFK oEREfka: $abbrev $allcaps
MÁV ma:v $allcaps MÁV ma:v $allcaps
mm milime:tER2 mm milime:tER2
RAM R2Am $allcaps //Espeak normaly spokening this abbreviation with erraem, but this is not good RAM R2Am $allcaps //Espeak normaly spokening this abbreviation with erraem, but this is not good
Psszt ps:t $capital // similar word with quiet word. Espeak default spokening this abbrew quiet word with letter by letter by default. Psszt ps:t $capital // similar word with quiet word. Espeak default spokening this abbrew quiet word with letter by letter by default.
Pszt ps:t $capital //same as prewious abbrewiation
VDSZSZ ve:de:EsEs $allcaps VDSZSZ ve:de:EsEs $allcaps
WC ve:tse: $allcaps
LST ElESte: $allcaps
BAR bAR2 $allcaps
SS EsEs $allcaps

a.m An^n^i||m'int $dot a.m An^n^i||m'int $dot
ún u:JnEvEzEt: $hasdot ún u:JnEvEzEt: $hasdot
dr doktoR2 $dot dr doktoR2 $dot


// Articles // Articles
a $u $strend2 // the a $u $strend2 // the
az $u $strend2
az $u $strend2 //Need remove the $alt3 attribute this article, because
//following context result bad spokening output if $alt3 attribute is used:
//az 5. és 6. hadsereg.
//This text means in english: the 1th and 2th solders
//Espeak spokening following phoneme if $alt3 attribute is used:
//Az YtYdikE és hAtodik hAdSER2Eg
//This is wrong this context, the right phoneme is:
//Az YtYdik és hAtodik hAdSER2Eg
//But for example the following sentence part need the $alt3 attribute with
//az article word, but now impossible doing this right:
//Június 6. az a nap
//If I removed the $alt3 attribute with az word, Espeak sending this phoneme:
//ju:niuS hAtodik Az A nAp
//The right phoneme is:
//ju:niuS hAtodikA Az A nAp

//aki $u+ // that //aki $u+ // that


ez $unstressend // this ez $unstressend // this




// Conjunctions // Conjunctions
és $u $strend2 // and
és $u $strend2 $alt3 // and
de $u+ $pause // but de $u+ $pause // but
vagy $u+ $pause // or vagy $u+ $pause // or


mert $u $pause // because mert $u $pause // because
miatt $u // because
miatt $unstressend // because
bár $u $pause // although bár $u $pause // although
habár $u $pause // although habár $u $pause // although
ha $u $pause // if ha $u $pause // if
elöl $unstressend // in front of elöl $unstressend // in front of
elől $unstressend elől $unstressend
elé $unstressend elé $unstressend
előtt $unstressend

előtt $alt3 $unstressend
este $alt3
estéjén $alt3
mögül $unstressend // behind mögül $unstressend // behind
mögött $unstressend mögött $unstressend
mögé $unstressend mögé $unstressend


kívül $unstressend kívül $unstressend
után $unstressend // after
után $unstressend $alt3 // after


alól $unstressend alól $unstressend
alá $unstressend alá $unstressend
nekem $unstressend nekem $unstressend
közül $unstressend közül $unstressend
közé $unstressend közé $unstressend
között $u
között $u $alt3
an $u // so many persons an $u // so many persons
as $u as $u
ba $unstressend // into ba $unstressend // into
ban $unstressend // in
ban $u // in
be $unstressend be $unstressend
ben $unstressend
ból $unstressend // from inside
ből $unstressend
ben $u
ból $u // from inside
ből $u
e $u // in query, his/her e $u // in query, his/her
ei $u // his her multiole ei $u // his her multiole
en $u en $u


ellen $unstressend // against ellen $unstressend // against
//elé $u // before //elé $u // before
//óta $u // since
óta $alt3 // since
hétfőig $alt3
keddig $alt3
szerdáig $alt3
csütörtökig $alt3
péntekig $alt3
szombatig $alt3
vasárnapig $alt3


sok $unstressend // many sok $unstressend // many
kevés $unstressend // few kevés $unstressend // few
erős $unstressend erős $unstressend
lenni $unstressend lenni $unstressend
lennie $unstressend lennie $unstressend
közt $u+
levegőjére $unstressend levegőjére $unstressend
ad $unstressend ad $unstressend
kapják $unstressend kapják $unstressend
velünk $unstressend velünk $unstressend
veletek $unstressend veletek $unstressend
velük $unstressend velük $unstressend
közt $unstressend
közt $unstressend $alt3
hiszik $unstressend hiszik $unstressend
hiszitek $unstressend hiszitek $unstressend
önt $unstressend önt $unstressend
véled $unstressend véled $unstressend
véli $unstressend véli $unstressend
vélitek $unstressend vélitek $unstressend
szól $unstressend
tank $unstressend
adta $unstressend
kellett $unstressend
főt $unstressend
nőtt $unstressend
vitt $unstressend
rést $unstressend
brit $unstressend
természetes $u $1



// word pairs // word pairs




voltam $u // to be, past voltam $u // to be, past
voltál $u voltál $u
volt $u
volt $u $alt3
voltunk $u voltunk $u
voltatok $u voltatok $u
voltak $u voltak $u
® bEjEJzEt: ® bEjEJzEt:
™ ve:djEJ ™ ve:djEJ
_` tompA _` tompA
SokYz
so:kYz
_« bElSY:|bAl|ide:zY:jEl _« bElSY:|bAl|ide:zY:jEl
_» bElSY:|jobb|ide:zY:jEl _» bElSY:|jobb|ide:zY:jEl
_­ la:JkYtY:jEl _­ la:JkYtY:jEl
(end-of line) u:jS,oR2 (end-of line) u:jS,oR2





$textmode $textmode
MSZP emeszpé MSZP emeszpé
SZDSZ eszdéesz SZDSZ eszdéesz



egyezség eggyesség egyezség eggyesség




(CD-d) cédéd (CD-d) cédéd
(db-os) darabos (db-os) darabos
(db-ot) darabot (db-ot) darabot
(LST-k) elesték
(LST-n) elestén
(PC-k) pécék
(://) (kettőspontperper) $pause //Hungarian Nwda users ask me put this entry
//again, because Nwda unfortunately does'nt spokening colondashdash
//characters for example with a http or an ftp url.
//The parenthese with second part is required, because if I using this form,
//Orca speech driver does'nt pronouns wrong the url's if I navigating word
//after word and don't disturb Orca working.
(PC-n) pécén
(USB-n) úesbén
(USA-ból) usából
(USA-nak) usának
(DVD-k) dévédék
(dvd-k) dévédék
(DVD-n) dévédén
(dvd-n) dévédén
(dvd-d) dévédéd
(DVD-d) dévédéd












+ 118
- 24
dictsource/hu_rules View File

biz (A biz, // bizalmas etc. biz (A biz, // bizalmas etc.
biedermeier bi:dER2ma:jER2 biedermeier bi:dER2ma:jER2
_) batthiány bAc:a:n^i _) batthiány bAc:a:n^i
tö) bb (ször b
tö) bb (ség b
tö) bb (nyire b
tö) bb (nek b


.group c .group c
c ts c ts
kilen) c (csatorn ts kilen) c (csatorn ts
ner) c (stóla ts ner) c (stóla ts
kavi) cs (zátony tS kavi) cs (zátony tS
?!2 cherbourg SER2buR2g
har) c (cselek ts






mün) ch (en h mün) ch (en h
maso) ch (istA h maso) ch (istA h
monar) ch (i h monar) ch (i h
_pe) ch h
_pe) ch h:
szé) ch tS szé) ch tS
_zi) ch (y tS _zi) ch (y tS
_szé) che (ny tSe: _szé) che (ny tSe:
ar) ch (ivál h ar) ch (ivál h


?!2 _) church (il tSYR2tS ?!2 _) church (il tSYR2tS
?!2 bu) ch (enwald h
?!2 da) ch (au h


.group d .group d
d d d d
föl) d (sáv d föl) d (sáv d
dühtől dytY:l dühtől dytY:l
rövi) d (zárlat d rövi) d (zárlat d
sarja) d (zik d
nyála) d (z d
ren) dsz (erint d|s ren) dsz (erint d|s
szaba) d (szájú d szaba) d (szájú d
menetren) dsz (erű d|s menetren) dsz (erű d|s
hazár) d (játék d
főha) d (segéd d
csalá) d (szerető d
föl) d (szoros d
min) d (jobban d
bri) ddzs (el dZ:
rekor) d (sebesség
hol) d (sü d
árpá) d (sáv d


.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
tapogató) dz z tapogató) dz z
ó) dz (kod ts ó) dz (kod ts
villó) dz z villó) dz z
e) dz (ő dz
e) dz (és dz
e) dz (ő dz:
e) dz (és dz:
kére) dz ts kére) dz ts
mentegető) dz z mentegető) dz z
dz dz
A) dz (A dz
dz dz:
A) dz (A dz:
dzs dZ dzs dZ
A) dzs dZ: A) dzs dZ:
dz dz
dz dz:
C) dzs dZ C) dzs dZ
A) dzs (A dZ: A) dzs (A dZ:
borsó) dz z borsó) dz z
beszé) dz (avar dz
beszé) dz (avar d|z
dobáló) dz z dobáló) dz z
kérő) dz z kérő) dz z
követelő) dz z követelő) dz z
rángató) dz z rángató) dz z
titkoló) dz z
ringató) dz z




.group e .group e
e E e E
000_-) el (_ REl // double R for 1000-el 000_-) el (_ REl // double R for 1000-el
000000_-) el (_ El // ... but not 1000000-el 000000_-) el (_ El // ... but not 1000000-el


_) ehhez EhEz _) ehhez EhEz
_) egyezség EJ:ESSe:g _) egyezség EJ:ESSe:g



.group é .group é
é e: é e:
éi (é e::i: éi (é e::i:
ritkasá) g (gyűjt g ritkasá) g (gyűjt g
üve) g (gy g üve) g (gy g
vilá) g (gyűlöl g vilá) g (gyűlöl g

gk k:
é) gh (ajla kh


.group gy .group gy
gy J gy J
e) gyj (elentésű Jj e) gyj (elentésű Jj
lá) gy (sá J lá) gy (sá J
gyön) gy (sor J gyön) gy (sor J
_minde) gy (ik J:
_minde) gy (ik J


na) gysz (a Js na) gysz (a Js
na) gy (sokára J na) gy (sokára J
ho) gy (se J ho) gy (se J
na) gy (ság J na) gy (ság J
he) gy (ség J he) gy (ség J
e) gy (ség J
e) gys (ég J|S
e) gy (sarkú J e) gy (sarkú J
e) gy (sejtű J e) gy (sejtű J
e) gy (sínű J e) gy (sínű J
e) gy (es-egyedül J //need one J phoneme with this word, not J: phoneme e) gy (es-egyedül J //need one J phoneme with this word, not J: phoneme
ú) gy (sem J ú) gy (sem J
né) gy (sarok J né) gy (sarok J
na) gy (stíl J
fa) gy (sérül J
_e) gy (ezmény J:
_mege) gy (ez J:
e) gy (-egy J:
na) gy (stratégia J
e) gy (értelmű J:
e) gy (ezked J:
e) gy (eztet J:
e) gy (etért J:
e) gy (irányú J:
kie) gy (ez J:
belee) gy (ez J:
_e) gy (ez J:
e) gy (általán J:
e) gy (ensúly J:
tizene) gy (edszer J:
tizene) gy (es J:
ú) gy (sincs J
e) gy (ért J:
a) gy (sérül J




.group h .group h
h h h h
t) í (zen i t) í (zen i
t) í (zet i t) í (zet i
v) í (zen i v) í (zen i
sz) í (vatás i
v) í (zére i




.group j .group j
j j j j
kossuth koSu:t kossuth koSu:t
kossutht koSu:t: kossutht koSu:t:
készségg ke:SSe:g: készségg ke:SSe:g:
_a) kk (reditál k


.group l .group l
l l l l
fe) l (javít l fe) l (javít l
fe) l (jogosít l fe) l (jogosít l
ökö) l (jog l: ökö) l (jog l:
ha) ll (gatom l
me) ll (kas l




.group m .group m
mauser mAuzER2 mauser mAuzER2
mosquito moskito: mosquito moskito:
mosquitó moskito: mosquitó moskito:
messerschmitt mEs:ER2Smit:
?!2 hi) mm (ler m



.group n .group n
n n n n
n (g N
n (k N
n (g n
n (k n
n (p m n (p m
ny n^ ny n^
nny n^n^ nny n^n^
ö) n (járó n ö) n (járó n
tulajdo) n (jog n tulajdo) n (jog n
ko) nn (ektor n //connector word, we spokening one n letter, not two n letter ko) nn (ektor n //connector word, we spokening one n letter, not two n letter
me) nj (_S2 n^
be) nn (szülött n be) nn (szülött n
éle) n (jár n éle) n (jár n
magá) n (jelleg n magá) n (jelleg n
elle) n (jegy n elle) n (jegy n
fe) nn (tartás n fe) nn (tartás n
fe) nn (sík n fe) nn (sík n
egye) n (jogú n
beto) n (járda n



.group o .group o
o o o o
_) richá (rd R2iCa: _) richá (rd R2iCa:
reichsmarschall R2EjsmAR2SAl: reichsmarschall R2EjsmAR2SAl:
?!2 _) roose (velt R2u:z ?!2 _) roose (velt R2u:z
?!2 _) reichs R2Ejs


.group s .group s
s S s S
óriá) s S óriá) s S
látá) s (zavar S látá) s (zavar S
hallá) s (zavar S hallá) s (zavar S

?!2 _) sherman SER2mAn
?!2 siegfried sigfR2i:d
gyalogo) s (zászló S




.group ss .group ss
ssz ss2 ssz ss2
ssz (ínű Ss ssz (ínű Ss
mu) ss (olini ss2
mu) ss (olin ss2
_má) ssz (ó Ss _má) ssz (ó Ss
mennydörgé) ssz (erű Ss mennydörgé) ssz (erű Ss
robbaná) ss S: robbaná) ss S:
kavará) ssz (erű Ss kavará) ssz (erű Ss
_sa) ssz (eg Ss _sa) ssz (eg Ss
ké) ssz (úrás Ss ké) ssz (úrás Ss
gyalogo) ssz Ss
puská) ssz Ss
mozgá) ssz Ss
_ke) ss (elring s:
rádió) ssz (ob Ss


.group sz .group sz
sz s sz s
li) sztsz (erű st|s li) sztsz (erű st|s
tava) sz (ára s tava) sz (ára s
rongyo) szs (ák SZ rongyo) szs (ák SZ
para) sztsz (ek st|s


.group t .group t


á) t (sza t á) t (sza t
á) tj (ár t|j á) tj (ár t|j
á) t (szö t á) t (szö t
á) t (sző t
á) tsz (ő t|s
á) t (szú t á) t (szú t
á) t (szű t á) t (szű t
á) t (jut t á) t (jut t
épüle) t (sarok t épüle) t (sarok t
mene) t (sor t mene) t (sor t
skó) t (sapka t skó) t (sapka t
lé) t (jogosultsága t
lé) t (jogosultság t
bérle) t (jegy t bérle) t (jegy t
csapa) t (játék t csapa) t (játék t
ese) t (jog t ese) t (jog t
á) tj (ön t|j á) tj (ön t|j
á) t (süvít t á) t (süvít t
bará) tj (ára c: bará) tj (ára c:
kísérle) t (sorozat t
á) t (sült t
á) t (süt t
épüle) t (sarok t
terüle) ts (áv t|S
terüle) t (cél t
hé) t (jegyű t
természetes tER2me:sEtES
ha) t (sáv t
szen) t (szobrok t
tesz) t (cél t
dró) t (sövény t
dró) t (sövénny t
a) th (én t



.group ts .group ts
ts (_S2 tS //general rule with word end of ts letters ts (_S2 tS //general rule with word end of ts letters
tehe) ts (ég tS: tehe) ts (ég tS:
lá) tsz ts: lá) tsz ts:
lá) tssz (on ts: lá) tssz (on ts:
lá) tssz (anak ts:
te) tsz ts: te) tsz ts:
fize) ts (ég tS: fize) ts (ég tS:
segí) ts tS: segí) ts tS:
skó) tsz (okny t|s skó) tsz (okny t|s
söté) tsz (őke t|s söté) tsz (őke t|s
á) ts (é t|S á) ts (é t|S
halla) tssz (on ts:
me) tsz (ik ts:
me) tsz (e ts:
hű) ts tS:




.group u .group u
u u u u
.group ú .group ú
ú u: ú u:
h) ú (szan u h) ú (szan u
h) ú (szas u
h) ú (szat u


.group ü .group ü
ü y ü y
ű y: ű y:
t) ű (zijáték y t) ű (zijáték y
_t) ű (nés y //If this word is a single word, need y phoneme, not y: phoneme. For example the tűnés word, but not need this rule with eltűnés word. _t) ű (nés y //If this word is a single word, need y phoneme, not y: phoneme. For example the tűnés word, but not need this rule with eltűnés word.
_t) ű (njön y


.group v .group v
v v v v
tájéko) z (tass s tájéko) z (tass s
bi) z (tat s bi) z (tat s
rá) z (kód s rá) z (kód s

ré) z (síp z
gará) zs (tároló S
dará) zs (fészek S
ri) zs (t S
tű) zsz (erész s:
tű) zsz (eréssz s:
búcsú) z (ko s
nyújtó) z (ko s


.group .group

$ dolla:R2 $ dolla:R2
ä E ä E
æ E æ E

+ 11
- 11
dictsource/id_list View File

_8X d@l'apanpuluh _8X d@l'apanpuluh
_9X s@mb'ilanpuluh _9X s@mb'ilanpuluh
_0C R'atus_| _0C R'atus_|
_1C s@*'atus_|
_1C s@R2'atus_|
_0M1 R'ibu_ _0M1 R'ibu_
_1M1 s@r'ibu_ _1M1 s@r'ibu_
_0M2 dZ'uta_ _0M2 dZ'uta_
// punctuation // punctuation
_! t,anda||s'ER2u _! t,anda||s'ER2u
_" t,andak'utip _" t,andak'utip
£ ponst'E*RliN
% p@*Rs'En
£ ponst'ER2liN
% p@R2s'En $max3
^ t,andat'opi ^ t,andat'opi
& t,andad'an & t,andad'an
_* b'intaN
* b'intaN $max3
+ t'ambah $max3
= s,ama||d'ENan $max3
~ t'ilde
# p'agaR $max3
@ a||k'EOng
/ g,aR2is||m'iR2iN $max3
\ 'bEkslES
_( k,uR2uN||b'uka _( k,uR2uN||b'uka
_) k,uR2uN||t'utup _) k,uR2uN||t'utup
__ g,aR2is||b'awah __ g,aR2is||b'awah
_- t,andah'ubuN _- t,andah'ubuN
+ t'ambah
= s,ama||d'ENan
_{ k,uR2uN||kuR2'awal _{ k,uR2uN||kuR2'awal
_} k,uR2uN||kuR2,awal||t'utup _} k,uR2uN||kuR2,awal||t'utup
_[ k,uR2uN||s'iku _[ k,uR2uN||s'iku
_] k,uR2uN||s,iku||t'utup _] k,uR2uN||s,iku||t'utup
_: t,iti?||d'ua _: t,iti?||d'ua
_; t,iti?||k'oma _; t,iti?||k'oma
@ a||k'EOng
_' k,utip||t'uNgal _' k,utip||t'uNgal
~ t'ilde
# p'agaR
_< k,uR2aN||d'aR2i _< k,uR2aN||d'aR2i
_> l,Ebih||d'aR2i _> l,Ebih||d'aR2i
_, k'oma _, k'oma
_. t'iti? _. t'iti?
_? t,anda||t'an^a _? t,anda||t'an^a
/ g,aR2is||m'iR2iN
_\ 'bEkslES




// unstressed words // unstressed words

+ 8
- 6
dictsource/id_rules View File



.group b .group b
b b b b

_) be (@@ b@ _) be (@@ b@
be (n b@




.group c .group c
e E e E
e) e _|E e) e _|E
A_) e _|E A_) e _|E
e (_ e
e (_ E


.group f .group f
f f f f


.group k .group k
k k k k
k (_ ?
k (_ k
kh x kh x

_) ke (@@ k@ _) ke (@@ k@
ke (n k@




.group l .group l
.group r .group r
r R2 r R2
r (K R r (K R
e) r (K *R
e) r (K R




.group s .group s
.group t .group t
t t t t
tj tS // Dutch tj tS // Dutch
_) tel t@l
_) ter (@@ t@R


_) ter (@@ t@*R




.group u .group u
** **
**) * (_ _:: **) * (_ _::




+ 6
- 2
dictsource/no_list View File

j je: j je:
k ko: k ko:
l El l El
m e:m
m Em
n En n En
p pe: p pe:
q ku-: q ku-:


// numeric // numeric
//******** //********
_0 n'Ul
_0 n'u-l
_1 'e:n _1 'e:n
_2 t'u: _2 t'u:
_3 tR'e: _3 tR'e:


// abbreviations // abbreviations
//************** //**************
ooxml $abbrev




// articles // articles
her hE:R her hE:R
kom kOm kom kOm
loe lu: $capital loe lu: $capital
noe nU:@2
noen nU:@n // no+en
office Offi:s
system syst'e:m system syst'e:m

+ 308
- 63
dictsource/ro_list
File diff suppressed because it is too large
View File


+ 329
- 312
dictsource/ro_rules View File




// translation rules for Romanian // translation rules for Romanian
// This file is UTF-8 encoded // This file is UTF-8 encoded




// replace s-comma, t-comma by s-cedilla, t-cedilla
// replace s-comma, t-comma by s-cedilla, t-cedilla
.replace .replace
ș ş ș ş
ț ţ ț ţ
Ț ţ Ț ţ


.group a .group a
a a
ai aI
ai (a aj
ai (_ 'aI
au aU // ?? only at end of word ??
c) au (t au
au (_ 'aU
a (AAA a
&) a (_S1q a

gi) a (_S1q a
V@) a (N_ 'a
ăi) a (_ 'a
@) abil (_ 'abil
a a
ai aI
ai (a aj
ai (_ 'aI
n) ai ((v ai
au aU // ?? only at end of word ??
c) au (t au
au (d au
au (z au
au (r au
au (st au
_l) au (d 'au
au (_ 'aU
a (AAA a
&) a (_S1q a

gi) a (_S1q a
V@) a (N_ 'a
ăi) a (_ 'a
@) abil (_ 'abil
_) anti (@P4 anti _) anti (@P4 anti
@) ale (_ 'ale
@ion) a (_ 'a
@) ale (_ 'ale
@ion) a (_ 'a




.group ă .group ă
ă @
ăi (_ @I
ău @U // ?? only at end of word ??
c) ău (t @u
ău (_ '@U
@) ăte (_S3t @te
@) ătă (_S3t @t@
ă @
ăi (_ @I
ău @U // ?? only at end of word ??
c) ău (t @u
_b) ău (t @u
_l) ău (d @u
_d) ău (n @u
ău (_ '@U
@) ăte (_S3t @te
@) ătă (_S3t @t@
@) ătul (_S4t @tul @) ătul (_S4t @tul
@) ătele (_S5t @tele @) ătele (_S5t @tele
@) ătului (_S6t @tuluI @) ătului (_S6t @tuluI
@) ătelor (_S6t @telor @) ătelor (_S6t @telor
&) ă (_S1 @
&ec) ă (_ @
@ăC) ă (_ @
@er) ă (_ @
@iţ) ă (_ @
@) ă (Că_ =@
ări (A_ @*'i
ării (_ @*'iI
ări (AA_ @*'i
@) ăie (_ =@Ie
&) ă (_S1q @
&ec) ă (_ @
@ăC) ă (_ @
@er) ă (_ @
@iţ) ă (_ @
@) ă (Că_ =@
ări (A_ @*'i
ării (_ @*'iI
ări (AA_ @*'i
@) ăie (_ =@Ie




.group â .group â
â y
âi yI
âu yU
@) âie (_ =yIe
â y
âi yI
âu yU
@) âie (_ =yIe




.group b .group b
b b
bb b
@) b (i_ b;
@) b (il_ =b
@) b (ila_ =b
@) b (ili_ =b
@) b (ilii_ =b
b b
bb b
@) b (i_ b;
@) b (il_ =b
@) b (ila_ =b
@) b (ili_ =b
@) b (ilii_ =b
@) b (ilului_ =b @) b (ilului_ =b
@) b (ililor_ =b @) b (ililor_ =b
@) b (ilile_ =b
mo) bil (_ b'il
@) b (ilile_ =b
mo) bil (_ b'il




.group c .group c
c k
c (e tS
c (i tS
ci (o tS
cii tSiI
ch k
@@) col (_ =kol
@@) coli (_S1t =I^
@@) cole (_S1t e
@) cni (_ kn'i
@) cnea (_ kne'a
c k
c (e tS
c (i tS
ci (o tS
cii tSiI
ch k
@@) col (_ =kol
@@) coli (_S1t =I^
@@) cole (_S1t e
@) cni (_ kn'i
@) cnea (_ kne'a






.group d .group d
d d
dd d
@) d (i_ d;
d d
dd d
@) d (i_ d;




.group e .group e
e e
_) ei eI
ei (_ eI
e e
_) ei eI
ei (_ eI
// eu eU // only at end of word ?? // eu eU // only at end of word ??
// eu e[u // ?? // eu e[u // ??
@) eu (l_ 'eu
@) eu (_ eu
@) eu (_N 'eU
ea ea
&) ea (_S2q ea
&) eSi eaj
eau eaw
eo eo
e (AAA e
@) eş (_ =eS

@) eşul (_ =eSul
@) eşi (_ =eSI^
@) eşului (_ =eSuluI
@) eşilor (_ =eSilor
@) eu (l_ 'eu
@) eu (_ eu
@) eu (_N 'eU
ea ea
&) ea (_S2q ea
&) eSi eaj
eau eaw
eo eo
d) eo (seb e|o
e (AAA e
@) eş (_ =eS

@) eşul (_ =eSul
@) eşi (_ =eSI^
@) eşului (_ =eSuluI
@) eşilor (_ =eSilor


//@) ec (a_ =ek //@) ec (a_ =ek
//@) ec (ă_ =ek //@) ec (ă_ =ek
//@) ec (ilor_ =etS //@) ec (ilor_ =etS
//@At) ec (i@_ etS //@At) ec (i@_ etS
//@At) ec (A_ ek //@At) ec (A_ ek
@At) ec (ii_ etS
@At) ec (ii_ etS
// &) es (_S1q e // &) es (_S1q e
&C) e (re_ %e
_ac) ee (a eI
r) ei (er_ 'eI
@) e (re_ =e
@) e (ri_ =e
@) e (rea_ =e
@) e (rii_ =e
@) e (rei_ =e
i) e (re_ e
i) e (ri_ e
i) e (rii_ e
i) e (rea_ e
@) e (ra_ =e
@) e (ră_ =e
@f) e (ra_ e
@f) e (ra_ e
i) e (ră_ e
i) e (ra_ e
eoa eO'a
&C) e (re_ %e
_ac) ee (a eI
r) ei (er_ 'eI
@) e (re_ =e
@) e (ri_ =e
@) e (rea_ =e
@) e (rii_ =e
@) e (rei_ =e
i) e (re_ e
i) e (ri_ e
i) e (rii_ e
i) e (rea_ e
@) e (ra_ =e
@) e (ră_ =e
@f) e (ra_ e
@f) e (ra_ e
i) e (ră_ e
i) e (ra_ e
eoa eo'a




.group f .group f
f f
ff f
@) f (i_ f;
f f
ff f
@) f (i_ f;




.group g .group g
g g
g (e dZ
g (i dZ
gii dZiI
gh g
&) gii (_ dZ'iI
&) gi (A_ dZi
g g
g (e dZ
g (i dZ
gii dZiI
gh g
&) gii (_ dZ'iI
&) gi (A_ dZi






.group h .group h
h h
@) h (i_ C
h h
@) h (i_ C




.group i .group i
i i
i (A j

@) i (e_ j
&C) i (_NS1q i/
&) i (_NS1q i
&) i (-NS1q i // don't reduce to [I^] if a hyphen follows
ţ) i (-Că i
ţ) i (-Ci i

ţ) i (-l i
ţ) i (-ne i
&') i (_ i
ţi-) i (_ _ // combined with previous word as [iI]
Cr) i (_ i
V&) i (N_ 'i // verb
ăC) ia (_ 'ia
âC) ia (_ 'ia
ăC) ie (_ 'ie
âC) ie (_ 'ie

g) i (ne_ =i
g) i (nea_ =i
i i
i (A j
@) i (e_ j
&C) i (_NS1q i/
&) i (_NS1q i
&) i (-NS1q i // don't reduce to [I^] if a hyphen follows
ţ) i (-Că i
ţ) i (-Ci i
ţ) i (-l i
ţ) i (-ne i
&') i (_ i
ţi-) i (_ _ // combined with previous word as [iI]
Cr) i (_+++ i
V&) i (N_ 'i // verb
ăC) ia (_ 'ia
âC) ia (_ 'ia
ăC) ie (_ 'ie
âC) ie (_ 'ie

g) i (ne_ =i
g) i (nea_ =i
c) i (uC c) i (uC
cţ) ie (_ =ie
cţ) iei (_ =ieI
cţ) ia (_ =ja
graf) ie (_ 'ie
graf) ia (_ 'ia
graf) iei (_ 'ieI
graf) ii (_ 'iI
scop) ie (_ 'ie
scop) ia (_ 'ia
scop) iei (_ ieI
scop) ii (_ 'iI
er) ia (_ 'ia
er) iei (_ 'ieI
on) ie (_ 'ie
on) ia (_ 'ia
on) iei (_ 'ieI
uş) ie (_ 'ie
uş) ia (_ 'ia
uş) iei (_ 'ieI
cţ) ie (_ =ie
cţ) iei (_ =ieI
cţ) ia (_ =ja
graf) ie (_ 'ie
graf) ia (_ 'ia
graf) iei (_ 'ieI
graf) ii (_ 'iI
nom) ie (_ 'ie
nom) ia (_ 'ia
nom) iei (_ 'ei
scop) ie (_ 'ie
scop) ia (_ 'ia
scop) iei (_ ieI
scop) ii (_ 'iI
fil) ie (_ 'ie
fil) ia (_ 'ia
fil) iei (_ 'ei
er) ia (_ 'ia
er) iei (_ 'ieI
on) ie (_ 'ie
on) ia (_ 'ia
on) iei (_ 'ieI
uş) ie (_ 'ie
uş) ia (_ 'ia
uş) iei (_ 'ieI
// @) ie (_S1q ie // @) ie (_S1q ie

iei (_ 'ieI
ii iI
&) ii (_S2q iI
iii iji
iu (_ iU
iu ju

&) ic (_ =ik
&) ica (_ =ika
&) ice (_ =itSe
&) icile (_ =itSile
&) icilor (_ =itSilor
@) icii (_ =itSiI
@) icei (_ =itSeI

scr) i (e 'i
&) ing (_ %iNg // foreign words

i (t_ 'i
ioa iO'a

@) işte (_ =iSte
@) iştea (_ =iStea
iei (_ 'ieI
ii iI
&) ii (_S2q iI
iii iji
iu (_ iU
iu ju

&) ic (_ =ik
&) ica (_ =ika
&) ice (_ =itSe
&) icile (_ =itSile
&) icilor (_ =itSilor
@) icii (_ =itSiI
@) icei (_ =itSeI

scr) i (e 'i
&) ing (_ %iNg // foreign words

i (t_ 'i
ioa jO'a

@) işte (_ =iSte
@) iştea (_ =iStea
@) i (ţă_++++++++ =i @) i (ţă_++++++++ =i
@) i (ţe_ =i
@) i (ţei_ =i
@) i (ţelor_ =i
-) i (_ j
@) i (ţele_ =i
@) i (ţe_ =i
@) i (ţei_ =i
@) i (ţelor_ =i
-) i (_ j
@) i (ţele_ =i




.group î .group î
î y
@) î (_ 'y
î y
@) î (_ 'y




.group j .group j
j Z
@) j (i_ Z;
j Z
@) j (i_ Z;




.group k .group k
k k
k k




.group l .group l
l l
ll l
@) l (i_ l;
_) l (_ le
-) l (_ l // -l
l l
ll l
@) l (i_ l;
_) l (_ le
-) l (_ l // -l


iu) l (_S1t l
&) le (_S2t le
&) lor (_S3t lor
&) lui (_S3t luI
iu) l (_S1t l
&) le (_S2t le
&) lor (_S3t lor
&) lui (_S3t luI




.group m .group m
_) m (_ me
m m
mm m
@) m (i_ m;
_) m (-a m
_) m (_ me
m m
mm m
@) m (i_ m;
_) m (-a m


-) mi (_ mi/
-) mi (_ mi/




.group n .group n
_) n (_ ne
n n
@) n (i_ n;
n (g N
n (k N
@) n (tic_ =n
@) n (ic_ =n
_) n (-a n
-) n (_ n
@itudi) ne (_S2t ne
@itudi) nea (_S3t nea
@itudi) nii (_S3t niI
@itudi) ni (_S2t ni
_) n (_ ne
n n
@) n (i_ n;
n (g N
n (k N
@) n (tic_ =n
@) n (ic_ =n
_) n (-a n
-) n (_ n
@itudi) ne (_S2t ne
@itudi) nea (_S3t nea
@itudi) nii (_S3t niI
@itudi) ni (_S2t ni
@itudi) nile (_S4t nile @itudi) nile (_S4t nile
@itudi) nilor (_S5t nilor @itudi) nilor (_S5t nilor




.group o .group o
o o
oa Oa
oai Oaj
_) oi oI
oi (_ 'oI
ou oU
ou (_N 'oU
ou (_ ou
o (AAA o
o o
oa Oa
oai Oaj
_) oi oj
oi (_ 'oj
ou oU
ou (_N 'oU
ou (_ ou
o (AAA o




.group p .group p
p p
pp p
@) p (i_ p;
p p
pp p
@) p (i_ p;
ph f


.group q .group q
q k
qu kw
q k
qu kw




.group r .group r
r r
rr r
A) r (A *
C) r (A @-*
rr *r
A) r (i_ *;
_) re (@P2T re
_) re (gul re
r r
rr r
A) r (A *
C) r (A @-*
rr *r
A) r (i_ *;
r (ă_ *
_) re (@P2T re
_) re (gul re
@u) ri (_NS2t rI^ @u) ri (_NS2t rI^
C) ri (_ @-*i
@u) rii (_S3t riI
C) ri (_ @-*i
@u) rii (_S3t riI
@u) rile (_S4t rile @u) rile (_S4t rile
@u) rilor (_S5t rilor @u) rilor (_S5t rilor


@) răm (_S1t m
@) răm (_S1t m
@) răţi (_S4t *@tsI^ @) răţi (_S4t *@tsI^
@u) re (_S2t *e
@u) re (_S2t *e




.group s .group s
_) s (_ se
_) s (-a s
s s
-) s (_ s
sh S
ss s
_) s (_ se
_) s (-a s
s s
-) s (_ s
sh S
ss s


&) sprezece (_S8t sp@-*ez,etSe &) sprezece (_S8t sp@-*ez,etSe


@) sem (_S1t m
@) seră (_S2t *@
@) sem (_S1t m
@) seră (_S2t *@
@) serăm (_S3t *@m @) serăm (_S3t *@m
@) serăţi (_S4t *@tsI^ @) serăţi (_S4t *@tsI^
@) seşi (_S2t SI^
@) sni (_ sn'i
@) seşi (_S2t SI^
@) sni (_ sn'i




.group ş .group ş
ş S
@) ş (i_ S;
ş S
@) ş (i_ S;


@) şni (_ Sn'i
-) şi (_ SI^
@) şni (_ Sn'i
-) şi (_ SI^




.group t .group t
t t
tt (_ t
@) t (i_ t;
t t
tt (_ t
@) t (i_ t;


ts ts
tz ts
tt t
ts ts
tz ts
tt t




.group ţ .group ţ
ţ ts
@) ţ (i_ ts;
ţ ts
@) ţ (i_ ts;
// @) ţi (-mă ts;'i // @) ţi (-mă ts;'i
// @) ţi (-vă ts;'i // @) ţi (-vă ts;'i
// @) ţi (-le ts;'i // @) ţi (-le ts;'i
// @) ţi (-i ts;'iI // @) ţi (-i ts;'iI
// @) ţi (-l ts;'i // @) ţi (-l ts;'i


-) ţi (_ ts;i/
-) ţi (_ ts;i/




.group u .group u
u u
u (A w
_) ui uI
ui (_ 'uI
r) ui (n ui
ui (e wi
V&) ui (_N u'i

dest) ul ul
&) ul (_S2t ul
@ic) ul (_S2t ul
@ic) ule (_S3t ule
u u
u (A w
uia (_ uj'a
_) ui uI
ui (_ 'uI
r) ui (n ui
ui (e wi
V&) ui (_N u'i

dest) ul ul
&) ul (_S2t ul
@ic) ul (_S2t ul
@ic) ule (_S3t ule
@ic) ului (_S4t uluI @ic) ului (_S4t uluI
@ic) uri (_S3 urI^
@ic) uri (_S3 urI^
@ic) urile (_S5 urile @ic) urile (_S5 urile


&) ului (_S4t uluI &) ului (_S4t uluI
@) us (_S2t us
@) us (_S2t us
@) usul (_S4t usul @) usul (_S4t usul
@) usuri (_S5t usuri @) usuri (_S5t usuri
@) usului (_S6t usuluI @) usului (_S6t usuluI
@) usurile (_SS´7t usurile @) usurile (_SS´7t usurile
@) usurilor (_S8t usurilor @) usurilor (_S8t usurilor
@ăC) u (N_ 'u
@) um (_S2t um
@ăC) u (N_ 'u
@) um (_S2q um
@) umul (_S4t umul @) umul (_S4t umul
@) umului (_S6t umuluI @) umului (_S6t umuluI
@) umuri (_S5t umuri @) umuri (_S5t umuri
@) umurile (_S7t umurile @) umurile (_S7t umurile
@) umurilor (_S8t umurilor @) umurilor (_S8t umurilor
c) um (_ um
@) uie (_ =wie
c) um (_ um
@) uie (_ =wie




.group v .group v
v v
@) v (i_ v;
v v
@) v (i_ v;




.group w .group w
w w
w w




.group x .group x
x ks
e) x (a gz
e) x (e gz
e) x (i gz
me) x (ic ks
e) x (iA_ ks
e) x (iu ks
e) x (Ag ks
le) x ks
x ks
e) x (a gz
e) x (e gz
e) x (i gz
) x (e_ ks
_ale) x ks
me) x (ic ks
e) x (iA_ ks
e) x (iu ks
e) x (Ag ks
le) x (+ ks




.group y .group y
y i
y (A j
y i
y (A j




.group z .group z
z z
zz z
@) z (i_ z;
z z
zz z
@) z (i_ z;




.group .group
ö Y
D_) % la_sut@
% p@-*otSent
$ dolar
ö Y
D_) % la_sut@
% p@-*otSent
$ dolar


, (D v'irgul@
, (D v'irgul@


__) - (_D m'inus
A_) - (_D _
C_) - (_D _
__) - (_D m'inus
A_) - (_D _
C_) - (_D _







+ 73
- 8
dictsource/ta_list View File

பாகவதம் $alt பாகவதம் $alt
பகவத் $alt பகவத் $alt
பங்கம் $alt பங்கம் $alt
பீடி $alt
பீதி $alt பீதி $alt
பேகம் $alt பேகம் $alt
பார்லி $alt பார்லி $alt
பாக்கி $alt பாக்கி $alt
பலி $alt பலி $alt
போதி $alt போதி $alt
பலத்த $alt
புத்தி $alt
படா $alt
பால $alt
பாம்ப் $alt
பீராமண $alt
பிரதர் $alt
பால்ய $alt
பலு $alt
பில் $alt
பந்த் $alt
பில்லி $alt
பம்பளிமாஸ் $alt
பட்டர் $alt
பட்டரால் $alt
பைக்கை $alt
பெட்டின் $alt
பெட்டில் $alt
படவா $alt
பாக்கிப் $alt
பாக்கித் $alt
பாக்கிச் $alt
(பி . ஏ) bije:




// initial த as [d] // initial த as [d]
தயாநிதி $alt தயாநிதி $alt
தயாளு $alt தயாளு $alt
துந்துவி $alt துந்துவி $alt
தயவு $alt
தடால் $alt
திக் $alt திக் $alt
தடக் $alt தடக் $alt
தீக்ஷை $alt தீக்ஷை $alt
திக்கற்ற $alt திக்கற்ற $alt
தானு $alt தானு $alt
திட $alt திட $alt
தேவ $alt
தோ $alt
தினசரி $alt
தரும $alt
தொப் $alt
தொப்பென்று $alt
தொப்னு $alt
திக்கெட்டும் $alt
தேவா $alt


// initial ட
டார்ச் t.a:rtS




// initial ச as [tS] // initial ச as [tS]
சீ tSi:
சே tSe:
சீ $alt
சே $alt
சீசீ tSi:tSi:
சீச்சீ $alt
சிட்டாய் $alt
சேச்சே $alt




கக $alt // initial க as [g] கக $alt // initial க as [g]
கனம் $alt கனம் $alt
கணம் $alt
கிலி $alt கிலி $alt
கில்லி $alt கில்லி $alt
காந்தி $alt காந்தி $alt
கோமதி $alt கோமதி $alt
கயா $alt கயா $alt
காயத்ரி $alt காயத்ரி $alt
கங்கை $alt
கங்கா $alt
கட $alt கட $alt
கோ $alt கோ $alt
கதி $alt கதி $alt
கச்சாமி $alt கச்சாமி $alt
குரு $alt குரு $alt
கோர $alt கோர $alt
கும் $alt
கும்மென்று $alt
கும்முனு $alt
குருவுக்கு $alt
குருன்னு $alt
குருவே $alt
கண்டம் $alt
கோலி $alt
குப் $alt
கம்னு $alt
கம்மென்று $alt


// p as [f]
போன் fo:n
போனில் fo:nil
பைல் faIl
பைலை faIlaI
பாதர் fa:dVr
பாதரிடம் fa:dVrid.Vm
பாதருடன் fa:dVrUd.Vn
பாதரில்லாமல் fa:dVrilla:mVl
காபி ka:fi
பேனில் fe:nil
பேன்ல fe:nlV
போன்ல fo:nlV




பப pVpV பப pVpV
தீப் di:p தீப் di:p
டிரேயின் t.re:jn
பைக் baIk
பைக்கில் baIkkIl
தாங்ஸ் Ta:Nks // thanks
டிபுடி d.EpjUt.i // deputy

+ 245
- 28
dictsource/ta_rules View File

// க is k when preceded by these // க is k when preceded by these
.L01 ஷ் ஸ் ட் .L01 ஷ் ஸ் ட்


// ப is p when preceded by these
.L02 ட் ற் ல் ஷ் ஸ்



// consonants // consonants


_) க kV _) க kV
_) க (B k _) க (B k
_) க (T gV // if word has $alt attribute in ta_list _) க (T gV // if word has $alt attribute in ta_list
_) க (BT g // $alt
_) க (BT+ g // $alt
க்க kkV க்க kkV
க்க (B kk க்க (B kk
ற்) க _kV ற்) க _kV
L01) க (B k L01) க (B k
க (ிரு k க (ிரு k
க (ூட k க (ூட k
ங்) க (ொ k


க (ீத g க (ீத g
க (ஜ gV க (ஜ gV
_) க (ாண்டாமிருக g _) க (ாண்டாமிருக g
_) க (ோந்து g _) க (ோந்து g
_) க (ாந்த g _) க (ாந்த g
_) க (ுண்ட g
_) க (ோபுர g _) க (ோபுர g
_) க (ுகன g _) க (ுகன g
_) க (ணபதி gV _) க (ணபதி gV
_) க (ோதுமை g _) க (ோதுமை g
_) க (ுகை g _) க (ுகை g
_) க (ோஷ g _) க (ோஷ g
_) க (ுண g
_) க (தியில் gV _) க (தியில் gV
_) க (டிகார gV _) க (டிகார gV
வி) க்ட (ோரியா kt. // victoria வி) க்ட (ோரியா kt. // victoria
_) க (ாண்டீப g _) க (ாண்டீப g
_) க (ர்வ gV _) க (ர்வ gV
_) க (ுருவா g _) க (ுருவா g
_) க (னம gV
_) க (னத் gV
_) க (ுண்டு g
_) க (ுண்டன g
_) க (ுண்டர g
_) க (ுண்டடி g
_) க (ுண்டாக g
_) க (ுண்டாய g
_) க (ுணம g
_) க (ுணங் g
_) க (ுணத் g
_) க (ண்டங் gV
_) க (ுண்டம்மா g
_) க (டப்பாரை gV
_) க (ோலிக g
_) க (ோலிய g
_) க (ானம g
_) க (ானங் g
_) க (ானத்த g
_) க (திகலங் gV
_) க (ுப்பென்ற g
_) க (ுபீர g
_) க (ும்பல g
_) க (ும்மிருட்ட g
_) க (ப்பென்ர gV
_) க (ங்கை gV
_) க (ங்கா gV
_) க (ுபுக் g
_) க (லாட்டா gV
_) குண்டாந்த (டி gun.d.a:ntV
_) க (லீர gV
_) க (ோல்மால g
_) க (வாஸ்கர gV


_கல்) க (ி k _கல்) க (ி k
_கல்) க (ண்ட kV _கல்) க (ண்ட kV
கொல்) க (த்தா kV கொல்) க (த்தா kV
கோயில்) க (ாளை k கோயில்) க (ாளை k
_) குல்க (ந்த gulkV _) குல்க (ந்த gulkV
_ராஜ) க (ும k
_ராஜ) க (ுல k
க (வி kV
க (ுல k
க (ுமார k
தின) க (ர kV
பிரபா) க (ர kV
சுதா) க (ர்_ kV
சுதா) க (ரிட kV
சுதா) க (ரின kV
மது) க (ர kV
திவா) க (ர kV

_) கி (ராம g
_) கி (ரகண g
நற்) க (ுண g




.group ங .group ங
ச (B s ச (B s
_) ச sV _) ச sV
_) ச (B s _) ச (B s
_) ச (T tSV
_) ச (BT tS
ச்ச tS:V ச்ச tS:V
ச்ச (B tS: ச்ச (B tS:
ட்) ச tSV ட்) ச tSV
ற்) ச (B tS ற்) ச (B tS
ஞ்) ச dZV ஞ்) ச dZV
ஞ்) ச (B dZ ஞ்) ச (B dZ
ச் (_ tS
ச் (_N tS
ச்_) ச tSV // previous word ends in ச் ச்_) ச tSV // previous word ends in ச்
ச்_) ச (B tS ச்_) ச (B tS
_) ச (ெண்ட tS _) ச (ெண்ட tS
_) சாம்ப (ியன tSa:mp


_) ச (ிட் tS
_) ச (ின் tS _) ச (ின் tS
_) ச (ிட்டு tS
_) ச (ிட்டாட்ட tS
_) ச (ிட்டி tS
_) ச (ிட்ல tS
_) ச (ேரி tS _) ச (ேரி tS
_) ச (ெஸ் tS


_) ச (ப்பாத்தி tSV _) ச (ப்பாத்தி tSV
_) ச (ெட்டியார tS _) ச (ெட்டியார tS
_) ச (ித்ரா tS _) ச (ித்ரா tS
_) ச (ெல்லம tS _) ச (ெல்லம tS
_) ச (துர் tSV _) ச (துர் tSV
ச (ந்திர tSV
வி) ச (ித்திர tS வி) ச (ித்திர tS
சு) சித (்ரா tSit
_) ச (ிட்டாக tS


_) சிரு (ஷ்டி sri _) சிரு (ஷ்டி sri
சீ (னிவாச sri:
ச (ாந்தி s. ச (ாந்தி s.
ச (ண்மு s.V ச (ண்மு s.V
சங்க (ர s.VNkV சங்க (ர s.VNkV
ச (ண்பக s.V ச (ண்பக s.V
ச (ெண்பக s. ச (ெண்பக s.
சு (வாரஸ்ய s
சு (வாமி s
சி (ரம s




.group ஜ .group ஜ
ிங்) ட (ன் t.V // -ington ிங்) ட (ன் t.V // -ington
_) ட (ாக்க t. // talkies _) ட (ாக்க t. // talkies
_) டிராக்ட (ர t.ira:gt.V _) டிராக்ட (ர t.ira:gt.V
_) ட (யர t.V
_) ட (ைம்_ t.
டெலிப (ோன t.elif
_) ட (ம்ப்ளர t.V
_) ட (ிக்க t.
_) ட (ிராம t.
_) ட (வுன t.V
_) டென்டுல்க (ர t.ent.UlkV

_) டிரேயின (ை t.re:jn



.group ண .group ண
ண n.V ண n.V
_) த tV _) த tV
_) த (B t _) த (B t
_) த (T dV // if word has $alt attribute in ta_list _) த (T dV // if word has $alt attribute in ta_list
_) த (BT d // if word has $alt
_) த (BT+ d // if word has $alt
த்த ttV த்த ttV
த்த (B tt த்த (B tt
க்) த tV க்) த tV
க்) த (B t க்) த (B t
ஸ்) த tV ஸ்) த tV
ஸ்) த (B t ஸ்) த (B t
ப்) த tV
ப்) த (B t


// exceptions, த as [d] // exceptions, த as [d]
_) த (ர்ம dV _) த (ர்ம dV
_) த (ெய்வ d _) த (ெய்வ d
_) த (ுஷ் d _) த (ுஷ் d
_) த (க்ஷிணா dV _) த (க்ஷிணா dV
_) த (ண்ட dV
_) த (ண்டவாள tV
_) த (ண்டன dV
_) த (ண்டம dV
_) த (ண்டத் dV
_) த (ண்டக் dV
_) த (ருமி dV _) த (ருமி dV
_) த (ர்பை dV _) த (ர்பை dV
_) த (ாவா d _) த (ாவா d
_) த (ிரவிய d _) த (ிரவிய d
_) த (ூப d _) த (ூப d
_) த (ீப d _) த (ீப d
_) த (ீப்ப t
_) த (ைரிய d _) த (ைரிய d
_) த (ிடீர d _) த (ிடீர d
_) த (ிடப d _) த (ிடப d
_) த (ிரவ d _) த (ிரவ d
_) த (ிடீ d _) த (ிடீ d
_) த (ிவச d _) த (ிவச d
_) த (ியான d
_) தி (யான dj
_) த (ானிய d _) த (ானிய d
_) த (ுக்க d _) த (ுக்க d
_) த (ுக்கிரி t
_) த (ுக்கடா t
_) த (ிகில d _) த (ிகில d
_) த (ூம d _) த (ூம d
_) த (ாவணி d _) த (ாவணி d
_) த (டியர dV _) த (டியர dV
_) த (ிக்கு d _) த (ிக்கு d
_) த (ிக்கு_வாய t _) த (ிக்கு_வாய t
_) த (ிக்கு_முக்க t
_) த (ிக்கில d _) த (ிக்கில d
_) த (னபால dV _) த (னபால dV
_) த (னசேகரன dV _) த (னசேகரன dV
_) த (ட்சிண dV _) த (ட்சிண dV
_) த (ன்ராஜ dV _) த (ன்ராஜ dV
_) த (ாராபுர d _) த (ாராபுர d
_) த (டி_மாட dV
_) த (டிJ_மாட dV
_) த (டிJ_புத்தக dV
_) த (டிJ_பயல dV
_) த (ேவன d _) த (ேவன d
_) த (ேவி d _) த (ேவி d
_) த (ேவர்க d _) த (ேவர்க d
_) த (ேவேந் d _) த (ேவேந் d
_) த (ரிசி dV _) த (ரிசி dV
_) த (ுரை d _) த (ுரை d
_) த (ேவ d
_) த (ூசி d _) த (ூசி d
_) த (ம்பதி dV
_) த (ிவான d
_) த (ினேஷ d
_) த (ாராள d
_) து (வேச d // dv
_) து (வேஷ d // dv
_) த (ருமன dV
_) த (ருமர dV
_) த (ண்டபாணி dV
_) த (ண்டாயுதபாணி dV
_) த (ண்டித் dV
_) த (ரிசனங் dV
_) த (ேவகி d
_) த (கி dV
_) த (ாயாதி d
_) த (ுட்ட d
_) த (ொம் d
_) த (டபுடல dV
_) த (டால dV
_) த (ம்பிடி dV
_) த (ிக்கை d
_) த (ிக்கே d
_) த (ேவாமிருத d
_) த (ுச்சம d
_) த (ொபுக் d
_) த (ினந் d
_) த (யவ dV
_) த (ிவாகர d



யு) த்த ddV யு) த்த ddV
யு) த்த(B dd யு) த்த(B dd
பு) த்த (ியி dd பு) த்த (ியி dd
பு) த்த (ர ddV பு) த்த (ர ddV
பு) த்த (ன ddV பு) த்த (ன ddV
சமு) த்த (ிர dd


_சாந்) த (ி t _சாந்) த (ி t
_சும) த (ி t _சும) த (ி t
பிரபாவ) த (ி t பிரபாவ) த (ி t
_கோம) த (ி t _கோம) த (ி t
_பிர) த (ீ t _பிர) த (ீ t
பவி) த (்ரா t
நி) த (்ய t
சி) த (்ரா t


_) திரு (ஷ்டி dri _) திரு (ஷ்டி dri
_) திரு (திரா dri _) திரு (திரா dri
ப (B b ப (B b
_) ப pV _) ப pV
_) ப (B p _) ப (B p
_) ப (T bV // if word has $alt attribute in ta_list
_) ப (BT b // if word has $alt
_) ப (T+ bV // if word has $alt attribute in ta_list
_) ப (BT+ b // if word has $alt
ப்ப ppV ப்ப ppV
ப்ப (B pp ப்ப (B pp
ட்) ப pV
ட்) ப (B p
ற்) ப pV
ற்) ப (B p
L02) ப pV
L02) ப (B p
குஷ்) ப (ு b
று) ப _pV று) ப _pV
று) ப(B _p று) ப(B _p


த) ப (B b த) ப (B b


@) பத (ி pVt @) பத (ி pVt
ன்) பத (ி bVd
ப (ுர p ப (ுர p
ப (ால p ப (ால p
ப (ாள p ப (ாள p
ம்) ப (ா b ம்) ப (ா b
ப (ூர p



// _) ப (ால b
_) ப (ால் p _) ப (ால் p
_) ப (ாலின் p _) ப (ாலின் p
_) ப (ாலை p _) ப (ாலை p
// _) ப (ாலில் p
_) ப (ாலுடன் p _) ப (ாலுடன் p
// _) ப (ாலினுடைய p


_) ப (ாலாபிஷேக p _) ப (ாலாபிஷேக p
_) ப (ாலு b _) ப (ாலு b
_) ப (ாலும்_ p
_) ப (ானு b _) ப (ானு b
_) ப (ீம b _) ப (ீம b
_) ப (காசுர bV _) ப (காசுர bV
_) பக் (த bVk _) பக் (த bVk
_) ப (லம bV _) ப (லம bV
_) ப (லவான bV _) ப (லவான bV
_) ப (ிராமண b
_) ப (ிரம்ம b _) ப (ிரம்ம b
_) ப (ம்பர bV _) ப (ம்பர bV
_) ப (லூன bV _) ப (லூன bV
_) ப (லிய bV _) ப (லிய bV
_) ப (ோதித் b _) ப (ோதித் b
_) ப (ோதன b _) ப (ோதன b

_) ப (ூட்ஸ b
_) ப (ுத்திய b
_) ப (ுத்திக் b
_) ப (ுத்திசாலி b
_) ப (ேஜார b
_) ப (ேதி b
_) ப (த்திரமா bV
_) ப (ேலன்ஸ b
_) ப (ந்தோபஸ்த bV
_) ப (ெல் b
_) ப (ாதகம b
_) ப (ீராமணர b
_) ப (ிரித்தானி b
_) ப (ாதிப்ப b
_) ப (ாதிக்க b
_) ப (லகீன bV
_) ப (லஹீன bV
_) ப (ட்சண bV
_) ப (ீடி b
_) ப (ீடிகை p
_) ப (ீடித்த p
_) ப (ெட்ரூம b
_) ப (ாத்ரூம b
_) ப (ாபுவ b
_) ப (யபக்தி bV
_) ப (ாவனை b
_) ப (ேஷ b
_) ப (ாத்யதை b
_) ப (ில்டிங் b
_) ப (ால்ய b
_) ப (ாவனா b
_) ப (லங் bV
_) ப (ட்டரி bV
_) ப (ட்டரு bV
_) ப (ட்டன bV
_) ப (லப்படு bV
_) ப (ாரத்த b
_) ப (ந்துக்கள bV
_) ப (ந்துவ bV
_) பலாத்க (ார bVla:dk
_) ப (லராம bV
_) ப (ங்கார bV
_) ப (லசாலி bV
_) ப (ூதாகார b


கோ) ப (ி p கோ) ப (ி p
முரன்) ப (ாட p முரன்) ப (ாட p
முன்) ப (கல pV முன்) ப (கல pV
நன்) ப (கல pV நன்) ப (கல pV
பின்) ப (கல pV பின்) ப (கல pV
கல்) ப (னா pV
ப (ாதை p
ப (டி pV
ம்) ப (ுரா b
இன்ஸ்) ப (ெக்டர p
எதிர்) ப (ார p
ப (ோது p
ப (ோதிலும் p
ப (ோதும் p
எழும்) ப (ூர b
நாலா) ப (ுற p
ப (ோதும்_+ p
ப (ோதே_+ p
ப (ோல்_ p

// If ப+ appearing in the middle of a word is followed by ட+
// and not preceded by ம், then ப should sound as 'pa'.
ப (ட pV
ப (Bட p
ம்) ப (ட bV
ம்) ப (Bட b


_) பி (ரம்மன b _) பி (ரம்மன b
_) பி (ராமணன b _) பி (ராமணன b
_) பி (ரதேச p _) பி (ரதேச p
_) பி (ரசித்தி p _) பி (ரசித்தி p
_) பி (ரம்ம b _) பி (ரம்ம b

_) பி (ரமிப்ப b
_) பீ (ராமண b
_) பி (ரித்தானி b
_) பி (ரதர்_ b
_) பி (ராப் p
_) பி (ரத p
_) பி (ரவேசி p
_) பி (ரசவ p
_) பி (ரசங் p
_) பி (ரளய p
_) பி (ராமண b
_) பி (ரார்தி p
_) பி (ரோகிதர p
_) பி (ரஸ்தா p
_) பி (ரஜ p
_) பி (ரமை b
_) பி (ரமுகர p
_) பி (ரயோசன p
_) பி (ரவாக p
_) பி (ரமித் b
_) பிரச (்னை prVtS
_) பி (ரியர p
_) பி (ரவேச p
_) பி (ரயோக p
_) பி (ரக்ஞை p
_) பி (ரயத்தன p


// musical notes // musical notes
சா) ப (ா p சா) ப (ா p
_த) ப (ால b _த) ப (ால b
_க) ப (ால b _க) ப (ால b
_கா) ப (ந்து bV _கா) ப (ந்து bV


சு) ப்ப bbV
சு) ப்ப(B bb


_) ப (ோனை f
_) ப (ோட்டோ f
_) ப (ைல்கள f
_) ப (ோனிலும் f
_சோ) ப (ா f // sofa
_ஆ) ப (ீஸ f // office
_ஆ) ப (ீச f // office
_ஆ) ப (ிஸ f // office
_ஆ) ப (ிச f // office
கிராம) ப (ோன f // gramaphone
_கா) ப (ியை f


.group ம .group ம
ம mV ம mV
.group வ .group வ
வ vV வ vV
வ (B v வ (B v
_) வி (யாபார v




.group ஶ .group ஶ


இ i இ i
_) இ (ரா // silent before 'raa' _) இ (ரா // silent before 'raa'
_) இ (ராக i
_) இ (ரான i
_) இ (லட்சிய // silent


ஈ i: ஈ i:



+ 35
- 19
phsource/compile_report View File

58 phoneme tables
59 phoneme tables
new total new total
base 99 99 base 99 99
consonants 9 107 consonants 9 107
de 32 126 de 32 126
eo 13 111 eo 13 111
jbo 2 111 jbo 2 111
nci 3 120
fi 40 130 fi 40 130
fr 56 138
fr 55 138
fr_ca 11 138 fr_ca 11 138
hi 58 145 hi 58 145
ta 20 148 ta 20 148
hu 23 115
hu 24 116
lv 29 122 lv 29 122
nl 24 119 nl 24 119
pl 20 113 pl 20 113
ru 39 130 ru 39 130
vi 41 136 vi 41 136
zhy 41 133 zhy 41 133
zh 62 150
zh 64 150
sw 12 108 sw 12 108
tr 18 123 tr 18 123
ku 18 124 ku 18 124
[d] base2 [d] base2
[d] fi [d] fi
[d] fr [d] fr
[d] hu
[d] pl [d] pl
[d;] pl [d;] pl
[d] hr [d] hr
[d] fi [d] fi
[d] fr [d] fr
[d.] hi [d.] hi
[d] hu
[d] pl [d] pl
[d;] pl [d;] pl
[d] hr [d] hr
[d] fr [d] fr
[d.] hi [d.] hi
[dh.] hi [dh.] hi
[d] hu
[d] pl [d] pl
[d;] pl [d;] pl
[d] hr [d] hr
[d.] hi [d.] hi
[dh] hi [dh] hi
[dh.] hi [dh.] hi
[d] hu
[d] pl [d] pl
[d] hr [d] hr
[d] sr [d] sr
j2/j2u [;] base j2/j2u [;] base
j2/xj2 [;] base j2/xj2 [;] base
j/_j [j] base j/_j [j] base
[j] zh
j/j_ [j] base j/j_ [j] base
[j] de [j] de
[j] zh
j/j@ [j] base j/j@ [j] base
[j] de [j] de
[j] zh
j/ja [j] base j/ja [j] base
[j] de [j] de
[j] zh
j/je [j] base j/je [j] base
[j] de [j] de
[j] zh
j/ji [j] base j/ji [j] base
[j] de [j] de
[j] zh
j/jo [j] base j/jo [j] base
[j] de [j] de
[j] zh
j/_j_short [j] de j/_j_short [j] de
j/ju [j] base j/ju [j] base
[j] de [j] de
[j] zh
j/xj [j] base j/xj [j] base
[j] de [j] de
[j] zh
klatt/b [b] base klatt/b [b] base
klatt/bh [B] base klatt/bh [B] base
klatt/dz_pzd [J] base klatt/dz_pzd [J] base
[l] fr [l] fr
[l/] fr [l/] fr
[l] hu [l] hu
[l] zh
l/l_ [l/] base l/l_ [l/] base
[l/3] base [l/3] base
[l/] fr [l/] fr
[W] fr [W] fr
[Y] fr [Y] fr
[l/] fr [l/] fr
l/l@ [] base
l/l@ [] base
[L] base [L] base
[W] fr [W] fr
[Y] fr [Y] fr
l/L2_uL [l/2] base l/L2_uL [l/2] base
l/l_3 [l/] de l/l_3 [l/] de
l/l_4 [ll] sq l/l_4 [ll] sq
l/la [] base
l/la [] base
[L] base [L] base
[a] fr [a] fr
[l] fr [l] fr
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
[wA] fr [wA] fr
l/le [] base
l/le [] base
[L] base [L] base
[l] fr [l] fr
l/l_e [l/3] base l/l_e [l/3] base
[&:] af [&:] af
l/l_front [L] sq l/l_front [L] sq
l/l_front_ [l/4] sq l/l_front_ [l/4] sq
l/li [] base
l/li [] base
[L] base [L] base
[l] fr [l] fr
[l] zh
l/l_i [l/3] base l/l_i [l/3] base
[l/] fr [l/] fr
[i] sq [i] sq
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [] base
l/lo [] base
[L] base [L] base
[l] fr [l] fr
l/l_o [l/3] base l/l_o [l/3] base
[l/] fr [l/] fr
[o2] fr [o2] fr
l^/l_rfx [l.] base l^/l_rfx [l.] base
l/lu [] base
l/lu [] base
[L] base [L] base
[l] fr [l] fr
[w^i] fr [w^i] fr
[r*] sr [r*] sr
[x] pt [x] pt
r3/r_uvl [r"] base r3/r_uvl [r"] base
[r] fr
[r/2] fr
r3/r_uvl.wav [r"] base r3/r_uvl.wav [r"] base
r3/rx [*] base r3/rx [*] base
[r/] base [r/] base
[r/] af [r/] af
[r] fr
[r/2] fr
[R] fr_ca [R] fr_ca
[x] pt_pt [x] pt_pt
[*;] ro [*;] ro
[E2] de [E2] de
[E:] de [E:] de
[e] jbo [e] jbo
[e] nci
[e] fi [e] fi
[E] nl [E] nl
[e] sk [e] sk
vowel/i_fnt [i:] en_wi vowel/i_fnt [i:] en_wi
[i:] hi [i:] hi
[i] pa [i] pa
vowel/ii [I] en_n
vowel/ii [I] en
[I] en_n
[I2] en_n [I2] en_n
[I] en_rp [I] en_rp
[I2] en_rp [I2] en_rp
vwl_fr/@R [x] pt_pt vwl_fr/@R [x] pt_pt
vwl_fr/_r2 [r] fr vwl_fr/_r2 [r] fr
vwl_fr/@R2 [R] fr_ca vwl_fr/@R2 [R] fr_ca
vwl_fr/ra [r] fr
vwl_fr/ra [a] fr
vwl_fr/r_a [r/2] fr vwl_fr/r_a [r/2] fr
vwl_fr/r_a~ [A~] fr vwl_fr/r_a~ [A~] fr
vwl_fr/rA~ [A~] fr vwl_fr/rA~ [A~] fr
vwl_fr/re [r] fr vwl_fr/re [r] fr
vwl_fr/r_e [r/2] fr vwl_fr/r_e [r/2] fr
vwl_fr/ri [i] fr
[r] fr
vwl_fr/ri [r] fr
vwl_fr/r_i [r/2] fr vwl_fr/r_i [r/2] fr
vwl_fr/ro [r] fr vwl_fr/ro [r] fr
vwl_fr/r_o [o] fr vwl_fr/r_o [o] fr
[o2] fr [o2] fr
[r/2] fr [r/2] fr
vwl_fr/ru [r] fr vwl_fr/ru [r] fr
[u] fr
vwl_fr/r_u [r/2] fr vwl_fr/r_u [r/2] fr
vwl_fr/ry [y] fr
[w^i] fr
vwl_fr/ry [w^i] fr
vwl_fr/r_y [y] fr vwl_fr/r_y [y] fr
vwl_fr/tr [r] fr vwl_fr/tr [r] fr
vwl_fr/w_a [wA] fr vwl_fr/w_a [wA] fr
x/d_dnt [d[] base x/d_dnt [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] hu
[d] pl [d] pl
x/d_pzd [d;] pl x/d_pzd [d;] pl
x/dzh [J] base x/dzh [J] base

BIN
phsource/d/xd View File


BIN
phsource/d/xdz View File


BIN
phsource/m/m_ View File


+ 2
- 2
phsource/mbrola/id1 View File

0 l- NULL 0 l 0 l- NULL 0 l
0 w/ NULL 0 w 0 w/ NULL 0 w
0 j/ NULL 0 j 0 j/ NULL 0 j
0 a/ NULL 0 V
2 ; i 0 NULL 2 ; i 0 NULL
0 ; NULL 0 NULL 0 ; NULL 0 NULL
0 - NULL 0 NULL 0 - NULL 0 NULL
0 g- NULL 0 NULL 0 g- NULL 0 NULL
0 @- NULL 0 NULL 0 @- NULL 0 NULL
0 * NULL 0 r
0 * NULL 0 NULL
0 R2 NULL 0 r 0 R2 NULL 0 r
0 R NULL 0 r 0 R NULL 0 r


0 R NULL 0 r 0 R NULL 0 r
0 x NULL 0 h 0 x NULL 0 h




BIN
phsource/n^/n^@ View File


BIN
phsource/n^/n^a View File


BIN
phsource/n^/n^e View File


BIN
phsource/n^/n^i View File


BIN
phsource/n^/n^o View File


BIN
phsource/n^/n^u View File


+ 3
- 0
phsource/ph_english View File

vowel starttype #i endtype #i vowel starttype #i endtype #i
length 130 length 130
IfNextVowelAppend(;) IfNextVowelAppend(;)
IF nextPhW(isVel) THEN
FMT(vowel/ii)
ENDIF
FMT(vowel/ii_2) FMT(vowel/ii_2)
endphoneme endphoneme



+ 15
- 31
phsource/ph_french View File

//==================================================== //====================================================
// French // French
//==================================================== //====================================================
// Updated 2009-10-13 Michel Such <[email protected]>
// Updated 2010-02-09 Michel Such <[email protected]>


phoneme #l virtual phoneme #l virtual
// Used for l and l/ // Used for l and l/


NextVowelStarts NextVowelStarts
VowelStart(vwl_fr/r@) VowelStart(vwl_fr/r@)
VowelStart(vwl_fr/ra)
VowelStart(NULL)
VowelStart(vwl_fr/re) VowelStart(vwl_fr/re)
VowelStart(vwl_fr/ri) VowelStart(vwl_fr/ri)
VowelStart(vwl_fr/ro) VowelStart(vwl_fr/ro)
ELIF prevPhW(p) OR prevPhW(k) THEN ELIF prevPhW(p) OR prevPhW(k) THEN
FMT(vwl_fr/tr) FMT(vwl_fr/tr)
ELIF prevPhW(t) THEN ELIF prevPhW(t) THEN
FMT(vwl_fr/tr) addWav(r3/r_uvl,30)
FMT(vwl_fr/tr) addWav(r3/rx,30)
ENDIF ENDIF


IF thisPh(isWordStart) THEN IF thisPh(isWordStart) THEN
IF prevPh(isVowel) OR prevPh(isPause) OR prevPh(#l) OR prevPh(r/2) THEN IF prevPh(isVowel) OR prevPh(isPause) OR prevPh(#l) OR prevPh(r/2) THEN
FMT(vwl_fr/_r) FMT(vwl_fr/_r)
ENDIF ENDIF
FMT(vwl_fr/_r2) addWav(r3/r_uvl, 25)
FMT(vwl_fr/_r2) addWav(r3/rx, 15)
ENDIF ENDIF


FMT(vwl_fr/r) addWav(r3/r_uvl,25)
endphoneme


phoneme R // First letter of a word
import_phoneme fr/r
lengthmod 0
FMT(vwl_fr/r) addWav(r3/rx,25)
endphoneme endphoneme




EndSwitch EndSwitch


IF prevPh(isVowel) THEN IF prevPh(isVowel) THEN
FMT(vwl_fr/r_) addWav(r3/r_uvl, 30)
FMT(vwl_fr/r_) addWav(r3/rx, 30)
ELIF prevPh(m) OR prevPh(n) THEN ELIF prevPh(m) OR prevPh(n) THEN
FMT(r3/r_n) FMT(r3/r_n)
ENDIF ENDIF
VowelStart(l/la, -15) VowelStart(l/la, -15)
ENDIF ENDIF


IF prevPh(#r) THEN
VowelStart(vwl_fr/ra)
ENDIF
FMT(vowel/a_6) FMT(vowel/a_6)
endphoneme endphoneme




IfNextVowelAppend(;) IfNextVowelAppend(;)


IF prevPh(#r) THEN
VowelStart(vwl_fr/ri, -30)
ENDIF

FMT(vowel/i_2) FMT(vowel/i_2)
endphoneme endphoneme


length 170 length 170


IF nextPh(i) THEN IF nextPh(i) THEN
Length 50
ENDIF

IF prevPh(R) THEN
VowelStart(vwl_fr/ru, -10)
Length 50
ENDIF ENDIF


FMT(vowel/u_bck2) FMT(vowel/u_bck2)
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 170 length 170


IF prevPh(#r) THEN
VowelStart(vwl_fr/ry)
ENDIF

IF nextPh(l/) THEN IF nextPh(l/) THEN
VowelEnding(l/l_y, -30) VowelEnding(l/l_y, -30)
ENDIF ENDIF
phoneme A~ phoneme A~
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 190 length 190

IF prevPh(#r) THEN
VowelStart(vwl_fr/rA~)
ENDIF
IF nextPh(r/2) THEN IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_a~) VowelEnding(vwl_fr/r_a~)
ENDIF ENDIF
IF prevPh(#r) THEN
VowelStart(vwl_fr/rA~)
ENDIF


FMT(vnasal/aa_n4) FMT(vnasal/aa_n4)
endphoneme endphoneme
FMT(g/g_) addWav(x/g_) FMT(g/g_) addWav(x/g_)
ENDIF ENDIF


FMT(g/g) addWav(x/g, 20)
FMT(g/g) addWav(x/g, 20)
endphoneme endphoneme




vcd alv frc sibilant vcd alv frc sibilant
voicingswitch s voicingswitch s
lengthmod 6 lengthmod 6
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50


IF nextPh(isPause2) THEN IF nextPh(isPause2) THEN
FMT(voc/z_) addWav(ufric/s_, 45) FMT(voc/z_) addWav(ufric/s_, 45)

+ 25
- 2
phsource/ph_hungarian View File

endphoneme endphoneme




phoneme dz
import_phoneme consonants/dz
voicingswitch ts
endphoneme


phoneme t // dental variant of /t/ phoneme t // dental variant of /t/
vls dnt stop vls dnt stop
lengthmod 2 lengthmod 2
endphoneme endphoneme




phoneme d // dental variant of /d/
import_phoneme base/d[
phoneme d
vcd dnt stop
voicingswitch t voicingswitch t
lengthmod 5
Vowelin f1=2 f2=1500 -300 300 f3=-150 80
Vowelout f1=2 f2=1500 -300 300 f3=-150 80

IF PreVoicing THEN
FMT(d/xd)
ENDIF

IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_dnt)
ELIF nextPh(r) THEN
FMT(d/dr) addWav(x/d_dnt, 110)
ENDIF

FMT(d/d) addWav(x/d_dnt, 110)
endphoneme endphoneme






phoneme c phoneme c
import_phoneme consonants/c2 import_phoneme consonants/c2
voicingswitch J voicingswitch J

+ 1
- 1
phsource/ph_romanian View File



//==================================================== //====================================================
// Romanian - based on Italian
// Romanian
//==================================================== //====================================================


// Vowels // Vowels

+ 8
- 2
phsource/ph_tamil View File

phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 110 length 110
ChangeIfNotStressed(U)
IF prevPhW(isVel) THEN
ELSE
ChangeIfNotStressed(U)
ENDIF
FMT(vowel/u_6) FMT(vowel/u_6)
endphoneme endphoneme


phoneme u: phoneme u:
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 260 length 260
ChangeIfNotStressed(U:)
IF prevPhW(isVel) THEN
ELSE
ChangeIfNotStressed(U:)
ENDIF
FMT(vowel/u_6) FMT(vowel/u_6)
endphoneme endphoneme



+ 40
- 1
phsource/ph_zh View File

//based on "phonemes"
//==================================================== //====================================================
// Tone Numbers // Tone Numbers
//==================================================== //====================================================
endphoneme endphoneme




phoneme l
liquid
lengthmod 2

CALL vowelstart_l

IF nextPhW(#i) THEN
VowelStart(l/li)
ENDIF
FMT(l/_l)
endphoneme


phoneme j
liquid palatal
lengthmod 1

IF nextPh(isVowel) THEN
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch

VowelEnding(j/xj, -30)

FMT(j/_j)
ELSE
// no vowel follows
Vowelout len=70
FMT(j/j_)
ENDIF
endphoneme





phoneme p phoneme p
vls blb stop vls blb stop

+ 12
- 4
phsource/phonemes View File

VowelStart(m/mu) VowelStart(m/mu)
EndSwitch EndSwitch


IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(m/mj) FMT(m/mj)
ELIF prevPh(isPause) THEN ELIF prevPh(isPause) THEN
FMT(m/_m) FMT(m/_m)
VowelStart(n/nu) VowelStart(n/nu)
EndSwitch EndSwitch


IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(n/nj) FMT(n/nj)
ELIF prevPh(isPause) OR prevPh(n) THEN ELIF prevPh(isPause) OR prevPh(n) THEN
FMT(n/_n) FMT(n/_n)
VowelStart(n/nu) VowelStart(n/nu)
EndSwitch EndSwitch


IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(n/nj) FMT(n/nj)
ELIF prevPh(isPause) OR prevPh(n.) THEN ELIF prevPh(isPause) OR prevPh(n.) THEN
FMT(n/_nr) FMT(n/_nr)
IF prevPh(isPause) THEN IF prevPh(isPause) THEN
FMT(n^/_n^) FMT(n^/_n^)
ELIF nextPh(isNotVowel) THEN ELIF nextPh(isNotVowel) THEN
IF nextPhW(n^) THEN
Length 75
ELIF prevPhW(n^) THEN
Length 100
ENDIF
FMT(n^/n^_) FMT(n^/n^_)
ENDIF ENDIF
endphoneme endphoneme
VowelEnding(nn/inn, -40) VowelEnding(nn/inn, -40)
ENDIF ENDIF


IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(nn/nnj) FMT(nn/nnj)
ELIF prevPh(isPause) THEN ELIF prevPh(isPause) THEN
FMT(nn/_nn) FMT(nn/_nn)
phonemetable jbo eo phonemetable jbo eo
include ph_lojban include ph_lojban


phonemetable nci base2
include ph_nahuatl

phonemetable fi base phonemetable fi base
include ph_finnish include ph_finnish



BIN
phsource/vdiph2/eo View File


BIN
phsource/vwl_fr/@R3 View File


BIN
phsource/vwl_fr/@R4 View File


BIN
phsource/vwl_fr/@R5 View File


BIN
phsource/vwl_fr/_r View File


BIN
phsource/vwl_fr/_r2 View File


BIN
phsource/vwl_fr/r@ View File


BIN
phsource/vwl_fr/ra View File


BIN
phsource/vwl_fr/re View File


BIN
phsource/vwl_fr/ri View File


BIN
phsource/vwl_fr/ro View File


BIN
phsource/vwl_fr/ru View File


BIN
phsource/vwl_fr/xr View File


+ 1
- 1
platforms/big_endian/README View File

the phoneme data. If it is not present here, find it in the espeak-data directory. the phoneme data. If it is not present here, find it in the espeak-data directory.


NOTE: NOTE:
The format of espeak-data/phondata changed in eSpeak version 1.41. The utility
The format of espeak-data/phondata changed in eSpeak version 1.43. The utility
has been modified for this. [jonsd] has been modified for this. [jonsd]


--- ---

+ 45
- 42
platforms/big_endian/espeak-phoneme-data.c View File







// 13.02.10 JSD: Changed for eSpeak version 1.43


#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>


#define N_PHONEME_TAB_NAME 32 #define N_PHONEME_TAB_NAME 32


// This is a new format for eSpeak 1.43
typedef struct { typedef struct {
unsigned int mnemonic;
unsigned int phflags;

unsigned short std_length;
unsigned short spect;
unsigned short before;
unsigned short after;

unsigned char code;
unsigned char type;
unsigned char start_type;
unsigned char end_type;

unsigned char length_mod;
unsigned char reduce_to;
unsigned char alternative_ph;
unsigned char link_out;
unsigned int mnemonic; // 1st char is in the l.s.byte
unsigned int phflags; // bits 16-19 place of articulation
unsigned short program;
unsigned char code; // the phoneme number
unsigned char type; // phVOWEL, phPAUSE, phSTOP etc
unsigned char start_type;
unsigned char end_type;
unsigned char std_length; // for vowels, in mS/2; for phSTRESS, the stress/tone type
unsigned char length_mod; // a length_mod group number, used to access length_mod_tab
} PHONEME_TAB; } PHONEME_TAB;



// This is a new format for eSpeak 1.41 // This is a new format for eSpeak 1.41
typedef struct { // 44 bytes typedef struct { // 44 bytes
short frflags; short frflags;






int
main (int argc, char *argv[])
{
int main (int argc, char *argv[])
{//==============================
const char *indir = "/usr/share/espeak-data"; const char *indir = "/usr/share/espeak-data";
const char *outdir = "."; const char *outdir = ".";
const char *manifest = "phondata-manifest"; const char *manifest = "phondata-manifest";
char *f1, *f2; char *f1, *f2;



if (argc > 4) if (argc > 4)
usage (argv[0]); usage (argv[0]);


printf ("Done.\n"); printf ("Done.\n");


return 0; return 0;
}
} // end of main


void
swap_phondata (const char *infile, const char *outfile,
void swap_phondata (const char *infile, const char *outfile,
const char *manifest) const char *manifest)
{
{//==========================================================
FILE *in, *mfest, *out; FILE *in, *mfest, *out;
char line[1024]; char line[1024];
unsigned char buf_4[4]; unsigned char buf_4[4];
fclose (in); fclose (in);
fclose (out); fclose (out);
fclose (mfest); fclose (mfest);
}
} // end of swap_phondata


void
swap_phonindex (const char *infile, const char *outfile)
{
void swap_phonindex (const char *infile, const char *outfile)
{//==========================================================
FILE *in, *out; FILE *in, *out;
char buf_4[4];
unsigned int val; unsigned int val;


in = fopen (infile, "rb"); in = fopen (infile, "rb");
exit (1); exit (1);
} }


fread (buf_4, 4, 1, in); // skip first 4 bytes
fwrite(buf_4, 4, 1, out);

while (! feof (in)) { while (! feof (in)) {
size_t n; size_t n;


n = fread (&val, 4, 1, in);
n = fread (&val, 2, 1, in);
if (n != 1) if (n != 1)
break; break;


val = SWAP_UINT (val);
fwrite (&val, 4, 1, out);
val = SWAP_USHORT (val);
fwrite (&val, 2, 1, out);
} }


fclose (in); fclose (in);
fclose (out); fclose (out);
}
} // end of swap_phonindex


void
swap_phontab (const char *infile, const char *outfile)
{
void swap_phontab (const char *infile, const char *outfile)
{//========================================================
FILE *in, *out; FILE *in, *out;
char buf_4[4]; char buf_4[4];
int i, n_phoneme_tables; int i, n_phoneme_tables;


table.mnemonic = SWAP_UINT (table.mnemonic); table.mnemonic = SWAP_UINT (table.mnemonic);
table.phflags = SWAP_UINT (table.phflags); table.phflags = SWAP_UINT (table.phflags);

table.std_length = SWAP_USHORT (table.std_length);
table.spect = SWAP_USHORT (table.spect);
table.before = SWAP_USHORT (table.before);
table.after = SWAP_USHORT (table.after);
table.program = SWAP_USHORT (table.program);


fwrite (&table, sizeof (PHONEME_TAB), 1, out); fwrite (&table, sizeof (PHONEME_TAB), 1, out);
} }


fclose (in); fclose (in);
fclose (out); fclose (out);
}
} // end of swap_phontab



void void
usage (const char *program_name) usage (const char *program_name)

+ 9
- 3
src/compiledata.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2009 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
{NULL, 0, 0} {NULL, 0, 0}
}; };



// place of articulation
#define i_isVel 0x28

static keywtab_t k_properties[] = { static keywtab_t k_properties[] = {
{"isPause", 0, phPAUSE}, {"isPause", 0, phPAUSE},
{"isVowel", 0, phVOWEL}, {"isVowel", 0, phVOWEL},
{"isPalatal", 0, i_isPalatal}, {"isPalatal", 0, i_isPalatal},
{"isRhotic", 0, i_isRhotic}, {"isRhotic", 0, i_isRhotic},


{"isVel", 0, i_isVel},

{"isDiminished", 0, i_isDiminished}, {"isDiminished", 0, i_isDiminished},
{"isUnstressed", 0, i_isUnstressed}, {"isUnstressed", 0, i_isUnstressed},
{"isNotStressed",0, i_isNotStressed}, {"isNotStressed",0, i_isNotStressed},
{"vcd", tPHONEME_FLAG, phVOICED}, {"vcd", tPHONEME_FLAG, phVOICED},
{"vls", tPHONEME_FLAG, phFORTIS}, {"vls", tPHONEME_FLAG, phFORTIS},


// place of articulation
// place of articulation, set bits 16-19 of phflags
{"blb", tPLACE, 1}, {"blb", tPLACE, 1},
{"lbd", tPLACE, 2}, {"lbd", tPLACE, 2},
{"dnt", tPLACE, 3}, {"dnt", tPLACE, 3},
int any; int any;
const char *name; const char *name;


static char *INV = "Invalid";
static const char *INV = "Invalid";


static const char *instn_category_string[16] = { static const char *instn_category_string[16] = {
"", "", "IF", "IF OR", "", "", "IF", "IF OR",

+ 2
- 1
src/compiledict.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
{"$alt", 20}, // use alternative pronunciation {"$alt", 20}, // use alternative pronunciation
{"$alt2", 21}, {"$alt2", 21},
{"$combine", 22}, // Combine with the next word {"$combine", 22}, // Combine with the next word
{"$alt3", 23},


{"$dot", 24}, // ignore '.' after this word (abbreviation) {"$dot", 24}, // ignore '.' after this word (abbreviation)
{"$hasdot", 25}, // use this pronunciation if there is a dot after the word {"$hasdot", 25}, // use this pronunciation if there is a dot after the word

+ 28
- 20
src/dictionary.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
if(end_type & SUFX_E) if(end_type & SUFX_E)
{ {
// add 'e' to end of stem
if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1))
if(tr->translator_name == L('e','n'))
{ {
// vowel(incl.'y') + hard.consonant

for(i=0; (p = add_e_exceptions[i]) != NULL; i++)
// add 'e' to end of stem
if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1))
{ {
len = strlen(p);
if(memcmp(p,&word_end[1-len],len)==0)
// vowel(incl.'y') + hard.consonant
for(i=0; (p = add_e_exceptions[i]) != NULL; i++)
{ {
break;
len = strlen(p);
if(memcmp(p,&word_end[1-len],len)==0)
{
break;
}
} }
if(p == NULL)
end_flags |= FLAG_SUFX_E_ADDED; // no exception found
} }
if(p == NULL)
end_flags |= FLAG_SUFX_E_ADDED; // no exception found
}
else
{
for(i=0; (p = add_e_additions[i]) != NULL; i++)
else
{ {
len = strlen(p);
if(memcmp(p,&word_end[1-len],len)==0)
for(i=0; (p = add_e_additions[i]) != NULL; i++)
{ {
end_flags |= FLAG_SUFX_E_ADDED;
break;
len = strlen(p);
if(memcmp(p,&word_end[1-len],len)==0)
{
end_flags |= FLAG_SUFX_E_ADDED;
break;
}
} }
} }
} }
else
if(tr->langopts.suffix_add_e != 0)
{
end_flags |= FLAG_SUFX_E_ADDED;
}


if(end_flags & FLAG_SUFX_E_ADDED) if(end_flags & FLAG_SUFX_E_ADDED)
{ {
word_end[1] = 'e';
utf8_out(tr->langopts.suffix_add_e, &word_end[1]);
#ifdef LOG_TRANSLATE #ifdef LOG_TRANSLATE
if(option_phonemes == 2) if(option_phonemes == 2)
{ {

+ 109
- 25
src/numbers.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
static int n_digit_lookup; static int n_digit_lookup;
static char *digit_lookup; static char *digit_lookup;
static int speak_missing_thousands; static int speak_missing_thousands;
static int number_control;




typedef struct { typedef struct {


int ordinal = 0; int ordinal = 0;
int c2; int c2;
int nextflags;


if((tr->langopts.numbers & NUM_ORDINAL_DOT) && ((word[0] == '.') || (wtab[0].flags & FLAG_HAS_DOT)) && !(wtab[1].flags & FLAG_NOSPACE)) if((tr->langopts.numbers & NUM_ORDINAL_DOT) && ((word[0] == '.') || (wtab[0].flags & FLAG_HAS_DOT)) && !(wtab[1].flags & FLAG_NOSPACE))
{ {
if(roman || !(wtab[1].flags & FLAG_FIRST_UPPER)) if(roman || !(wtab[1].flags & FLAG_FIRST_UPPER))
{ {
utf8_in(&c2, &word[2]); utf8_in(&c2, &word[2]);
if((word[1] != 0) && IsAlpha(c2))
if((word[1] != 0) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || IsAlpha(c2)))
{ {
// ordinal number is indicated by dot after the number // ordinal number is indicated by dot after the number
// but not if the next word starts with an upper-case letter // but not if the next word starts with an upper-case letter
// (c2 == 0) is for cases such as, "2.,"
ordinal = 2; ordinal = 2;
if(word[0] == '.') if(word[0] == '.')
word[0] = ' '; word[0] = ' ';
if((roman==0) && (tr->translator_name == L('h','u'))) if((roman==0) && (tr->translator_name == L('h','u')))
{ {
// lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt). It may have a suffix. // lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt). It may have a suffix.
if(TranslateWord(tr, &word[2], 0, NULL) & FLAG_ALT_TRANS)
nextflags = 0;
if(IsAlpha(c2))
{
nextflags = TranslateWord(tr, &word[2], 0, NULL);
}

if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2)))
ordinal = 0; // TEST 09.02.10

if(nextflags & FLAG_ALT_TRANS)
ordinal = 0; ordinal = 0;
if((tr->prev_dict_flags & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS)) && (nextflags & FLAG_ALT3_TRANS))
ordinal = 0x22;
} }
} }
} }
sprintf(string,"_%dM%do",value,thousandplex); sprintf(string,"_%dM%do",value,thousandplex);
found_value = Lookup(tr, string, ph_thousands); found_value = Lookup(tr, string, ph_thousands);
} }
if(!found_value & (number_control & 1))
{
// look for the 'e' variant
sprintf(string,"_%dM%de",value,thousandplex);
found_value = Lookup(tr, string, ph_thousands);
}
if(!found_value) if(!found_value)
{ {
// is there a different pronunciation if there are no hundreds,tens,or units ? (LANG=ta) // is there a different pronunciation if there are no hundreds,tens,or units ? (LANG=ta)
sprintf(string,"_%s%do",M_Variant(value), thousandplex); sprintf(string,"_%s%do",M_Variant(value), thousandplex);
found = Lookup(tr, string, ph_thousands); found = Lookup(tr, string, ph_thousands);
} }
if(!found && (number_control & 1))
{
// look for the 'e' variant
sprintf(string,"_%s%de",M_Variant(value), thousandplex);
found = Lookup(tr, string, ph_thousands);
}
if(!found) if(!found)
{ {
// is there a different pronunciation if there are no hundreds,tens,or units ? // is there a different pronunciation if there are no hundreds,tens,or units ?
{//======================================================================== {//========================================================================
// Lookup a 2 digit number // Lookup a 2 digit number
// control bit 0: ordinal number // control bit 0: ordinal number
// control bit 1: tens and units (use special form of '1', LANG=de "eins")
// control bit 1: final tens and units (not number of thousands) (use special form of '1', LANG=de "eins")
// control bit 2: tens and units only, no higher digits // control bit 2: tens and units only, no higher digits
// control bit 3: use feminine form of '2' (for thousands // control bit 3: use feminine form of '2' (for thousands
// control bit 4: speak zero tens // control bit 4: speak zero tens
// control bit 5: variant of ordinal number (lang=hu)


int found; int found;
int ix; int ix;
int used_and=0; int used_and=0;
int found_ordinal = 0; int found_ordinal = 0;
int next_phtype; int next_phtype;
int ord_type = 'o';
char string[12]; // for looking up entries in *_list char string[12]; // for looking up entries in *_list
char ph_ordinal[20]; char ph_ordinal[20];
char ph_tens[50]; char ph_tens[50];
ph_digits[0] = 0; ph_digits[0] = 0;
ph_and[0] = 0; ph_and[0] = 0;


if(control & 0x20)
{
ord_type = 'q';
}

if((control & 2) && (n_digit_lookup == 2)) if((control & 2) && (n_digit_lookup == 2))
{ {
// pronunciation of the final 2 digits has already been found // pronunciation of the final 2 digits has already been found
if(control & 4) if(control & 4)
{ {
sprintf(string,"_%dox",value); // LANG=hu, special word for 1. 2. when there are no higher digits
sprintf(string,"_%d%cx",value,ord_type); // LANG=hu, special word for 1. 2. when there are no higher digits
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }
if(found == 0) if(found == 0)
{ {
sprintf(string,"_%do",value);
sprintf(string,"_%d%c",value,ord_type);
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }
found_ordinal = found; found_ordinal = found;
if(found == 0) if(found == 0)
{ {
if((value == 1) && (control & 2))
if(control & 2)
{
// the final tens and units of a number
if(number_control & 1)
{
// look for 'e' variant
sprintf(string,"_%de",value);
found = Lookup(tr, string, ph_digits);
}
}
else
{ {
if(Lookup(tr, "_1a", ph_out) != 0) // LANG=de, "eins"
return(0);
// followed by hundreds or thousands etc
sprintf(string,"_%da",value);
found = Lookup(tr, string, ph_digits);
}

if(!found)
{
sprintf(string,"_%d",value);
found = Lookup(tr, string, ph_digits);
} }
sprintf(string,"_%d",value);
found = Lookup(tr, string, ph_digits);
} }
} }
if((control & 1) && ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) if((control & 1) && ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS)))
{ {
sprintf(string,"_%dXo", tens);
sprintf(string,"_%dX%c", tens, ord_type);
if(Lookup(tr, string, ph_tens) != 0) if(Lookup(tr, string, ph_tens) != 0)
{ {
found_ordinal = 1; found_ordinal = 1;
if((control & 1) && ((tr->langopts.numbers & NUM_SWAP_TENS) == 0)) if((control & 1) && ((tr->langopts.numbers & NUM_SWAP_TENS) == 0))
{ {
// ordinal // ordinal
sprintf(string,"_%do",units);
sprintf(string,"_%d%c",units,ord_type);
if((found = Lookup(tr, string, ph_digits)) != 0) if((found = Lookup(tr, string, ph_digits)) != 0)
{ {
found_ordinal = 1; found_ordinal = 1;
} }
} }
if(found == 0) if(found == 0)
{
if((number_control & 1) && (control & 2))
{
// look for 'e' variant
sprintf(string,"_%de",units);
found = Lookup(tr, string, ph_digits);
}
else
if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0))
{
// followed by hundreds or thousands (or tens)
sprintf(string,"_%da",units);
found = Lookup(tr, string, ph_digits);
}
}
if(found == 0)
{ {
sprintf(string,"_%d",units); sprintf(string,"_%d",units);
Lookup(tr, string, ph_digits); Lookup(tr, string, ph_digits);
// Translate a 3 digit number // Translate a 3 digit number
// control bit 0, previous thousands // control bit 0, previous thousands
// bit 1, ordinal number // bit 1, ordinal number
// bit 5 variant form of ordinal number
int found; int found;
int hundreds; int hundreds;
int tensunits; int tensunits;
char ph_hundred_and[12]; char ph_hundred_and[12];
char ph_thousand_and[12]; char ph_thousand_and[12];
ordinal = control & 2;
ordinal = control & 0x22;
hundreds = value / 100; hundreds = value / 100;
tensunits = value % 100; tensunits = value % 100;
buf1[0] = 0; buf1[0] = 0;
} }


if(tr->langopts.numbers2 & 0x200) if(tr->langopts.numbers2 & 0x200)
sprintf(ph_thousands,"%s%s%c",ph_10T,ph_digits,phonPAUSE_NOLINK); // say "thousands" before its number, not after
sprintf(ph_thousands,"%s%s",ph_10T,ph_digits); // say "thousands" before its number, not after
else else
sprintf(ph_thousands,"%s%s%c",ph_digits,ph_10T,phonPAUSE_NOLINK);
sprintf(ph_thousands,"%s%s",ph_digits,ph_10T);


hundreds %= 10; hundreds %= 10;
if(hundreds == 0) if(hundreds == 0)
x = 3; // ordinal number x = 3; // ordinal number
if((value < 100) && !(control & 1)) if((value < 100) && !(control & 1))
x |= 4; // tens and units only, no higher digits x |= 4; // tens and units only, no higher digits
if(ordinal & 0x20)
x |= 0x20; // variant form of ordinal number
} }
else else
{ {
int n_digits; int n_digits;
int value; int value;
int ix; int ix;
int digix;
unsigned char c; unsigned char c;
int suppress_null = 0; int suppress_null = 0;
int decimal_point = 0; int decimal_point = 0;
int max_decimal_count; int max_decimal_count;
int decimal_mode; int decimal_mode;
int hyphen; int hyphen;
int suffix_ix;
char *p; char *p;
char string[20]; // for looking up entries in **_list char string[20]; // for looking up entries in **_list
char buf1[100]; char buf1[100];
n_digit_lookup = 0; n_digit_lookup = 0;
buf_digit_lookup[0] = 0; buf_digit_lookup[0] = 0;
digit_lookup = buf_digit_lookup; digit_lookup = buf_digit_lookup;
number_control = 0;


for(ix=0; isdigit(word[ix]); ix++) ; for(ix=0; isdigit(word[ix]); ix++) ;
n_digits = ix; n_digits = ix;
speak_missing_thousands = 0; speak_missing_thousands = 0;
} }



ph_ordinal2[0] = 0; ph_ordinal2[0] = 0;
ph_zeros[0] = 0; ph_zeros[0] = 0;


} }
*p = 0; *p = 0;


if(suffix[0] != 0)
if((suffix[0] != 0) && (!isdigit(suffix[0]))) // not _#9 (tab)
{ {
sprintf(string,"_0%s",suffix);
sprintf(string,"_#%s",suffix);
if(Lookup(tr, string, ph_ordinal2)) if(Lookup(tr, string, ph_ordinal2))
{ {
// this is an ordinal suffix // this is an ordinal suffix
if(word[n_digits] == tr->langopts.thousands_sep) if(word[n_digits] == tr->langopts.thousands_sep)
thousands_inc = 2; thousands_inc = 2;


suffix_ix = n_digits+2;
if(thousands_inc > 0) if(thousands_inc > 0)
{ {
// if the following "words" are three-digit groups, count them and add // if the following "words" are three-digit groups, count them and add
// a "thousand"/"million" suffix to this one // a "thousand"/"million" suffix to this one
digix = n_digits + thousands_inc;


ix = n_digits + thousands_inc;
while(isdigit(word[ix]) && isdigit(word[ix+1]) && isdigit(word[ix+2]))
while(((wtab[thousandplex+1].flags & FLAG_MULTIPLE_SPACES) == 0) &&
isdigit(word[digix]) && isdigit(word[digix+1]) && isdigit(word[digix+2]) && !isdigit(word[digix+3]) && !isdigit(word[digix-1]))
{ {
if((word[ix] != '0') || (word[ix+1] != '0') || (word[ix+2] != '0'))
if((word[digix] != '0') || (word[digix+1] != '0') || (word[digix+2] != '0'))
thousands_exact = 0; thousands_exact = 0;


thousandplex++; thousandplex++;
if(word[ix+3] == tr->langopts.thousands_sep)
ix += (3 + thousands_inc);
digix += 3;
if((word[digix] == tr->langopts.thousands_sep) || ((tr->langopts.numbers & NUM_ALLOW_SPACE) && (word[digix] == ' ')))
{
suffix_ix = digix+2;
digix += thousands_inc;
}
else else
break; break;
} }
suppress_null = 1; suppress_null = 1;
} }


if(tr->translator_name == L('h','u'))
{
// variant form of numbers when followed by hyphen and a suffix starting with 'a' or 'e'
if((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact==1) && ((word[suffix_ix] == 'a') || (word[suffix_ix] == 'e')))
{
number_control |= 1; // use _1e variant of number
}
}

if((word[n_digits] == tr->langopts.decimal_sep) && isdigit(word[n_digits+1])) if((word[n_digits] == tr->langopts.decimal_sep) && isdigit(word[n_digits+1]))
{ {
// this "word" ends with a decimal point // this "word" ends with a decimal point
if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' '))
utf8_in(&next_char,p); utf8_in(&next_char,p);


if(!iswalpha(next_char) && !(wtab[0].flags & FLAG_HYPHEN_AFTER))
if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
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
- 1
src/phoneme.h View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *

+ 26
- 10
src/readclause.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
int letter; int letter;
char *p; char *p;


p = &outbuf[index+1];
p = &outbuf[index];


if((letter = LookupMnem(keynames, p)) != 0) if((letter = LookupMnem(keynames, p)) != 0)
{ {
ix = utf8_out(letter, p); ix = utf8_out(letter, p);
outix = index + ix + 1;
outix = index + ix;
return(letter); return(letter);
} }
return(0); return(0);
if(tag_name[0] == '/') if(tag_name[0] == '/')
{ {
tag_type = LookupMnem(ssmltags,&tag_name[1]) + SSML_CLOSE; // closing tag
// closing tag
if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != 0)
{
outbuf[outix++] = ' ';
}
tag_type += SSML_CLOSE;
} }
else else
{ {
tag_type = LookupMnem(ssmltags,tag_name);
if((tag_type = LookupMnem(ssmltags,tag_name)) != 0)
{
// separate SSML tags from the previous word (but not unknown HMTL tags such as <b> <font> which can occur inside a word)
outbuf[outix++] = ' ';
}


if(self_closing && ignore_if_self_closing[tag_type]) if(self_closing && ignore_if_self_closing[tag_type])
return(0); return(0);
} }



voice_change_flag = 0; voice_change_flag = 0;
terminator = CLAUSE_NONE; terminator = CLAUSE_NONE;
ssml_sp = &ssml_stack[n_ssml_stack-1]; ssml_sp = &ssml_stack[n_ssml_stack-1];
} }
xml_buf[n_xml_buf] = 0; xml_buf[n_xml_buf] = 0;
c2 = ' '; c2 = ' ';
buf[ix++] = ' ';
self_closing = 0; self_closing = 0;
if(xml_buf[n_xml_buf-1] == '/') if(xml_buf[n_xml_buf-1] == '/')
{ {
} }
return(terminator); return(terminator);
} }
c2 = GetC();
continue; continue;
} }
} }


if(nl_count==0) if(nl_count==0)
{ {
if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next))))
{
// lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number
c1 = CHAR_COMMA_BREAK;
is_end_clause = 0;
}

if(c1 == '.') if(c1 == '.')
{ {
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && if((tr->langopts.numbers & NUM_ORDINAL_DOT) &&
} }
else else
{ {
if (iswlower(c_next))
if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal)
is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag)
} }
} }
buf[ix] = ' '; buf[ix] = ' ';
buf[ix+1] = 0; buf[ix+1] = 0;


if(!IsAlpha(c_next))
if(iswdigit(cprev) && !IsAlpha(c_next)) // ????
{ {
punct_data &= ~CLAUSE_DOT; punct_data &= ~CLAUSE_DOT;
} }

+ 2
- 2
src/speak_lib.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
} }




int sync_espeak_terminated_msg( uint unique_identifier, void* user_data)
int sync_espeak_terminated_msg( uint32_t unique_identifier, void* user_data)
{//===================================================================== {//=====================================================================
ENTER("sync_espeak_terminated_msg"); ENTER("sync_espeak_terminated_msg");



+ 2
- 1
src/speak_lib.h View File

#ifndef SPEAK_LIB_H #ifndef SPEAK_LIB_H
#define SPEAK_LIB_H #define SPEAK_LIB_H
/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
/*************************************************************/ /*************************************************************/


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


#define ESPEAK_API_REVISION 5 #define ESPEAK_API_REVISION 5
/* /*

+ 4
- 3
src/synthdata.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.42.21 19.Dec.09";
const char *version_string = "1.42.42 12.Feb.10";
const int version_phdata = 0x014220; const int version_phdata = 0x014220;


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


case 9: case 9:
data = ((instn & 0xf) << 16) + prog[1]; data = ((instn & 0xf) << 16) + prog[1];
prog++;
switch(instn2) switch(instn2)
{ {
case 1: case 1:
// call a procedure or another phoneme // call a procedure or another phoneme
if(n_return < N_RETURN) if(n_return < N_RETURN)
{ {
return_addr[n_return++] = prog+1;
return_addr[n_return++] = prog;
prog = &phoneme_index[data] - 1; prog = &phoneme_index[data] - 1;
} }
break; break;

+ 2
- 2
src/synthesize.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
} }
} }


if((next->type==phVOWEL) || ((next->type==phLIQUID)) && (next->newword==0)) // ?? test 14.Aug.2007
if((next->type==phVOWEL) || ((next->type==phLIQUID) && (next->newword==0))) // ?? test 14.Aug.2007
{ {
StartSyllable(); StartSyllable();
} }

+ 4
- 2
src/tr_languages.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs


tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama
} }


void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps) void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps)
tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900; tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900;
tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word
tr->langopts.suffix_add_e = 'e';
} }
break; break;




case L('n','o'): // Norwegian case L('n','o'): // Norwegian
{ {
static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,210};
static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,230};


SetupTranslator(tr,stress_lengths_no,NULL); SetupTranslator(tr,stress_lengths_no,NULL);
tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;

+ 44
- 12
src/translate.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
first_phoneme = 0; first_phoneme = 0;
} }
} }

if(word_flags & FLAG_COMMA_AFTER)
{
SetPlist2(&ph_list2[n_ph_list2++],phonPAUSE_CLAUSE);
}

// don't set new-word if there is a hyphen before it // don't set new-word if there is a hyphen before it
if((word_flags & FLAG_HYPHEN) == 0) if((word_flags & FLAG_HYPHEN) == 0)
{ {
int prev_out=' '; int prev_out=' ';
int prev_out2; int prev_out2;
int prev_in2=0; int prev_in2=0;
int prev_in_save=0;
int next_in; int next_in;
int next_in_nbytes; int next_in_nbytes;
int char_inserted=0; int char_inserted=0;
prev_out = 'a'; prev_out = 'a';
} }


if(prev_in2 != 0)
if(prev_in_save != 0)
{ {
prev_in = prev_in2;
prev_in2 = 0;
prev_in = prev_in_save;
prev_in_save = 0;
} }
else else
if(source_index > 0) if(source_index > 0)
{ {
prev_in2 = prev_in;
utf8_in2(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1]; utf8_in2(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1];
} }


if(prev_in != ' ') if(prev_in != ' ')
{ {
c = ' '; c = ' ';
prev_in2 = c;
prev_in_save = c;
source_index--; source_index--;
} }
else else
{ {
embedded_count += EmbeddedCommand(source_index); embedded_count += EmbeddedCommand(source_index);
prev_in2 = prev_in;
prev_in_save = prev_in;
// replace the embedded command by spaces // replace the embedded command by spaces
memset(&source[srcix],' ',source_index-srcix); memset(&source[srcix],' ',source_index-srcix);
source_index = srcix; source_index = srcix;
word_flags |= FLAG_FOCUS; word_flags |= FLAG_FOCUS;
} }


if(c == CHAR_COMMA_BREAK)
{
c = ' ';
word_flags |= FLAG_COMMA_AFTER;
}

c = TranslateChar(tr, &source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function c = TranslateChar(tr, &source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function
if(c == 8) if(c == 8)
continue; // ignore this character continue; // ignore this character


if(iswdigit(prev_out)) if(iswdigit(prev_out))
{ {
if(!iswdigit(c) && (c != '.') && (c != ','))
if(!iswdigit(c) && (c != '.') && (c != ',') && (c != ' '))
{ {
c = ' '; // terminate digit string with a space c = ' '; // terminate digit string with a space
space_inserted = 1; space_inserted = 1;
// start of word, insert space if not one there already // start of word, insert space if not one there already
c = ' '; c = ' ';
space_inserted = 1; space_inserted = 1;
next_word_flags |= FLAG_NOSPACE;

if(!IsBracket(prev_out)) // ?? perhaps only set FLAG_NOSPACE for . - / (hyphenated words, URLs, etc)
{
next_word_flags |= FLAG_NOSPACE;
}
} }
else else
{ {
{ {
c = ' '; // lower case followed by upper case, treat as new word c = ' '; // lower case followed by upper case, treat as new word
space_inserted = 1; space_inserted = 1;
prev_in2 = c;
prev_in_save = c;
} }
else else
if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) if((c != ' ') && iswupper(prev_in) && iswlower(next_in))
// changing from upper to lower case, start new word at the last uppercase, if 3 or more letters // changing from upper to lower case, start new word at the last uppercase, if 3 or more letters
c = ' '; c = ' ';
space_inserted = 1; space_inserted = 1;
prev_in2 = c;
prev_in_save = c;
next_word_flags |= FLAG_NOSPACE; next_word_flags |= FLAG_NOSPACE;
} }
} }
{ {
if(prev_out == ' ') if(prev_out == ' ')
{ {
word_flags |= FLAG_MULTIPLE_SPACES;
continue; // multiple spaces continue; // multiple spaces
} }


if((cc == 0x09) || (cc == 0x0a))
{
next_word_flags |= FLAG_MULTIPLE_SPACES; // tab or newline, not a simple space
}

if(space_inserted) if(space_inserted)
{ {
words[word_count].length = source_index - words[word_count].sourceix; words[word_count].length = source_index - words[word_count].sourceix;
if(word_count > 0) if(word_count > 0)
{ {
words[word_count-1].flags |= FLAG_LAST_WORD; words[word_count-1].flags |= FLAG_LAST_WORD;
// FLAG_NOSPACE check to avoid recognizing .mr -mr
if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE)) if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE))
words[word_count-1].flags |= FLAG_HAS_DOT; words[word_count-1].flags |= FLAG_HAS_DOT;
} }
int c_temp; int c_temp;
char *pn; char *pn;
char *pw; char *pw;
char number_buf[80];
int nw;
char number_buf[60];
WORD_TAB num_wtab[15]; // copy of 'words', when splitting numbers into parts


// start speaking at a specified word position in the text? // start speaking at a specified word position in the text?
count_words++; count_words++;
number_buf[0] = ' '; number_buf[0] = ' ';
pn = &number_buf[1]; pn = &number_buf[1];
nx = n_digits; nx = n_digits;
nw = 0;


while(pn < &number_buf[sizeof(number_buf)-3]) while(pn < &number_buf[sizeof(number_buf)-3])
{ {
*pn++ = c; *pn++ = c;
if((--nx > 0) && (tr->langopts.break_numbers & (1 << nx))) if((--nx > 0) && (tr->langopts.break_numbers & (1 << nx)))
{ {
memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers

if(tr->langopts.thousands_sep != ' ') if(tr->langopts.thousands_sep != ' ')
{ {
*pn++ = tr->langopts.thousands_sep; *pn++ = tr->langopts.thousands_sep;
} }
} }
pw--; pw--;
memcpy(&num_wtab[nw], &words[ix], sizeof(WORD_TAB)*2); // the original number word, and the word after it


// include the next few characters, in case there are an ordinal indicator or other suffix // include the next few characters, in case there are an ordinal indicator or other suffix
memcpy(pn, pw, 16); memcpy(pn, pw, 16);
pn[16] = 0; pn[16] = 0;
nw = 0;


for(pw = &number_buf[1]; pw < pn;) for(pw = &number_buf[1]; pw < pn;)
{ {
// keep wflags for each part, for FLAG_HYPHEN_AFTER // keep wflags for each part, for FLAG_HYPHEN_AFTER
dict_flags = TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 );
dict_flags = TranslateWord2(tr, pw, &num_wtab[nw++], words[ix].pre_pause,0 );
while(*pw++ != ' '); while(*pw++ != ' ');
words[ix].pre_pause = 0; words[ix].pre_pause = 0;
} }

+ 6
- 1
src/translate.h View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
#define FLAG_ALT_TRANS 0x100000 // language specific #define FLAG_ALT_TRANS 0x100000 // language specific
#define FLAG_ALT2_TRANS 0x200000 // language specific #define FLAG_ALT2_TRANS 0x200000 // language specific
#define FLAG_COMBINE 0x400000 // combine with the next word #define FLAG_COMBINE 0x400000 // combine with the next word
#define FLAG_ALT3_TRANS 0x800000 // language specific


#define FLAG_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation) #define FLAG_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation)
#define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot #define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot
#define FLAG_HYPHEN_AFTER 0x4000 #define FLAG_HYPHEN_AFTER 0x4000
#define FLAG_ORDINAL 0x8000 // passed to TranslateNumber() to indicate an ordinal number #define FLAG_ORDINAL 0x8000 // passed to TranslateNumber() to indicate an ordinal number
#define FLAG_HAS_DOT 0x10000 // dot after this word #define FLAG_HAS_DOT 0x10000 // dot after this word
#define FLAG_COMMA_AFTER 0x20000 // comma after this word
#define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab


#define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout
#define FLAG_NO_PREFIX 0x20000000 #define FLAG_NO_PREFIX 0x20000000
#define SAYAS_DIGITS1 0xc1 #define SAYAS_DIGITS1 0xc1


#define CHAR_EMPHASIS 0x0530 // this is an unused character code #define CHAR_EMPHASIS 0x0530 // this is an unused character code
#define CHAR_COMMA_BREAK 0x0557 // unused character code


// Rule: // Rule:
// [4] [match] [1 pre] [2 post] [3 phonemes] 0 // [4] [match] [1 pre] [2 post] [3 phonemes] 0
const unsigned int *replace_chars; // characters to be substitutes const unsigned int *replace_chars; // characters to be substitutes
const char *ascii_language; // switch to this language for Latin characters const char *ascii_language; // switch to this language for Latin characters
int max_lengthmod; int max_lengthmod;
int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character
} LANGUAGE_OPTIONS; } LANGUAGE_OPTIONS;





+ 1
- 1
src/voices.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *

Loading…
Cancel
Save