lang=hu, ordinal number fixes --punct, changes to intonation of punctuation names. Add language option: don't stress second part of hyphenated words. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@230 d46cf337-b52f-0410-862d-fd96e6ae7743master
(thaba nchu) tab'A:||ntSu | (thaba nchu) tab'A:||ntSu | ||||
europa Y@r'o@pa | europa Y@r'o@pa | ||||
nigel _^_EN | nigel _^_EN | ||||
nineve nIn@fi | |||||
outeniekwa @Ut@n'ikwa | outeniekwa @Ut@n'ikwa | ||||
oxford _^_EN | oxford _^_EN | ||||
pelindaba p&l@nd'A:ba | pelindaba p&l@nd'A:ba | ||||
André 'andreI | André 'andreI | ||||
annette an'Et | annette an'Et | ||||
antoinette antun'Et | antoinette antun'Et | ||||
aristoteles arist'o@t@lEs | |||||
badenhorst bA:d@nhOrst | |||||
barbara bA:b@ra | barbara bA:b@ra | ||||
basson $2 | basson $2 | ||||
bea bi:ja | bea bi:ja | ||||
belcher _^_EN | |||||
benade b@nA:di | benade b@nA:di | ||||
benjamin bEndZ@m@n | benjamin bEndZ@m@n | ||||
bennett bEn@t | bennett bEn@t | ||||
beyers beI@rs | beyers beI@rs | ||||
blignault blIx2n@Ut | blignault blIx2n@Ut | ||||
blomerus blum'e@rWs | blomerus blum'e@rWs | ||||
blum blum | |||||
botha bo@ta | botha bo@ta | ||||
bouwer b@U@r | bouwer b@U@r | ||||
brian _^_EN | brian _^_EN | ||||
bruwer bruw'&:r | bruwer bruw'&:r | ||||
caesar siz@r | caesar siz@r | ||||
carl kA:r@L | carl kA:r@L | ||||
carol _^_EN | |||||
casanova kasan'o@va | casanova kasan'o@va | ||||
cecil sEs@l | cecil sEs@l | ||||
cecile s@si:l | cecile s@si:l | ||||
charlie tSA:li | charlie tSA:li | ||||
charmaine SA:m'eI:n | charmaine SA:m'eI:n | ||||
chopin S%OpA~ | chopin S%OpA~ | ||||
clark _^_EN | |||||
conradie $2 | conradie $2 | ||||
chris krIs | chris krIs | ||||
christo krIstu | christo krIstu | ||||
cindy sIndi | cindy sIndi | ||||
coetzee kuts'e@ | coetzee kuts'e@ | ||||
cronjé krOnj'e@ | cronjé krOnj'e@ | ||||
cussons kas@ns | |||||
cynthia _^_EN | cynthia _^_EN | ||||
dalene dal'e@n | dalene dal'e@n | ||||
daniël d'A:ni:@l | |||||
#zzz | |||||
darwin _^_EN | darwin _^_EN | ||||
daniël d'A:ni:@l | |||||
david _^_EN | david _^_EN | ||||
(da vinci) da||v'intSi | (da vinci) da||v'intSi | ||||
debora d@bo@ra | debora d@bo@ra | ||||
elsabe &ls@bi | elsabe &ls@bi | ||||
elsabé &ls@bi | elsabé &ls@bi | ||||
emmarentia Emar'e~nSja | emmarentia Emar'e~nSja | ||||
engelbrecht EN@lbr&x2t | |||||
erasmus $2 | erasmus $2 | ||||
ernest _^_EN | ernest _^_EN | ||||
esegiël is'e@x2i:@l | |||||
esegiël is'e@x2i: @l | |||||
estelle %ist&l | estelle %ist&l | ||||
etienne Eti@n | etienne Eti@n | ||||
eugene judZ'i:n | eugene judZ'i:n | ||||
eugène yZ'En | eugène yZ'En | ||||
farao fA:ro@ | farao fA:ro@ | ||||
ferreira f@r&:r@ | ferreira f@r&:r@ | ||||
filemon f'il@mOn | |||||
filemon f'il@mOn | |||||
fischer fiS@r | fischer fiS@r | ||||
floris $1 | |||||
fouché fuS'e@ | |||||
fourie fur'i | fourie fur'i | ||||
francina $2 | francina $2 | ||||
francois franSwa | francois franSwa | ||||
gerhard x2&rart | gerhard x2&rart | ||||
gerhardus $2 | gerhardus $2 | ||||
gertruida $2 | gertruida $2 | ||||
gilbert _^_EN | |||||
gloria glO:ria | gloria glO:ria | ||||
grange x2rA:nsi | grange x2rA:nsi | ||||
grové x2ruv'e@ | grové x2ruv'e@ | ||||
isabel is@b&l | isabel is@b&l | ||||
iskariot isk'ariOt | iskariot isk'ariOt | ||||
jaco jaku | jaco jaku | ||||
jacques ZA:k | |||||
james _^_EN | james _^_EN | ||||
jane _^_EN | jane _^_EN | ||||
Jean ZA~n $capital | Jean ZA~n $capital | ||||
jimmy _^_EN | jimmy _^_EN | ||||
joan _^_EN | joan _^_EN | ||||
joey dZ@Ui | joey dZ@Ui | ||||
johl jo@l | |||||
jones _^_EN | jones _^_EN | ||||
jordaan $2 | jordaan $2 | ||||
joris $1 | |||||
josef jo@s@f | josef jo@s@f | ||||
josephina jo@s@f'ina | |||||
juanita juan'ita | juanita juan'ita | ||||
julia _^_EN | julia _^_EN | ||||
khayyam kaj'am | |||||
kelvin _^_EN | kelvin _^_EN | ||||
kim _^_EN $capital | kim _^_EN $capital | ||||
krige krix2@ | krige krix2@ | ||||
liesbet lisbEt | liesbet lisbEt | ||||
louis luI | louis luI | ||||
louise luw'i:z | louise luw'i:z | ||||
lukas l'ukas | |||||
mackintosh _^_EN | mackintosh _^_EN | ||||
madelene mad@l'e@n | madelene mad@l'e@n | ||||
mbeki mbE:ki | mbeki mbE:ki | ||||
madelene mad@l'e@n | |||||
magdalena $3 | magdalena $3 | ||||
malan mal'an | malan mal'an | ||||
malherbe mal'&rb@ | malherbe mal'&rb@ | ||||
neil _^_EN | neil _^_EN | ||||
nelson _^_EN | nelson _^_EN | ||||
niklaas niklA:s | niklaas niklA:s | ||||
olga Olga | |||||
ontong OntON | ontong OntON | ||||
phillips fIl@ps | phillips fIl@ps | ||||
pierre p'e@r | pierre p'e@r | ||||
petrus pe@trWs | petrus pe@trWs | ||||
phoebe fi:bi | phoebe fi:bi | ||||
picasso pik'asu | picasso pik'asu | ||||
piketberg pik'Etb&rx2 | |||||
pinokkio pin'Oki;u | |||||
pretorius pr@to@riWs | |||||
quixote kix2'OtE | quixote kix2'OtE | ||||
rachmaninoff rax2m'aninOf | rachmaninoff rax2m'aninOf | ||||
rademeyer rA:d@meI@r | rademeyer rA:d@meI@r | ||||
rall rA:l | |||||
rebekka r@bEka | rebekka r@bEka | ||||
reinette r@nEt | reinette r@nEt | ||||
renette r@nEt | renette r@nEt | ||||
retha re@ta | retha re@ta | ||||
retief r@tif | retief r@tif | ||||
rhodes _^_EN | rhodes _^_EN | ||||
riekert rik@rt | |||||
robert _^_EN | robert _^_EN | ||||
ronel run'&l | ronel run'&l | ||||
rossouw r@s@U | rossouw r@s@U | ||||
salomo sA:l@mo@ | salomo sA:l@mo@ | ||||
samuel sA:my@l | samuel sA:my@l | ||||
sandra sandra | sandra sandra | ||||
sappho sapfu | |||||
schalk sk'alk | schalk sk'alk | ||||
scheepers ske@p@rs | scheepers ske@p@rs | ||||
schmidt Smit | schmidt Smit | ||||
sebastian s@bastian | sebastian s@bastian | ||||
servaas s@rfA:s | servaas s@rfA:s | ||||
shakespeare _^_EN | shakespeare _^_EN | ||||
sheila Si:la | |||||
sigmund sigmunt | sigmund sigmunt | ||||
sophia suf'i:ja | sophia suf'i:ja | ||||
sophie _^_EN | sophie _^_EN | ||||
stephan ste@fan | stephan ste@fan | ||||
stephanus st@fA:nWs | stephanus st@fA:nWs | ||||
strauss straUs | strauss straUs | ||||
stockenström stOk@nstro@m | |||||
suzanne suz'A:n | suzanne suz'A:n | ||||
suzette suz'Et | suzette suz'Et | ||||
tania tanja | tania tanja | ||||
terblanche t@rblA:nS | terblanche t@rblA:nS | ||||
theo tiu | theo tiu | ||||
theron tr'On | theron tr'On | ||||
timotheus t@m'o@tiWs | |||||
thessalonicense tEsalo@nis'E:ns@ | |||||
thys teIs | thys teIs | ||||
timotheus t@m'o@tiWs | |||||
toerien $2 | toerien $2 | ||||
totius to@SiWs | totius to@SiWs | ||||
trudie trudi | trudie trudi | ||||
violet _^_EN $capital | violet _^_EN $capital | ||||
visagie fis'A:x2i | visagie fis'A:x2i | ||||
william _^_EN | william _^_EN | ||||
wilson _^_EN | |||||
yolande jul'and@ | yolande jul'and@ | ||||
yvonne iv'On | yvonne iv'On | ||||
zyl seIl | zyl seIl | ||||
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@ | |||||
port pOrt $1 | port pOrt $1 | ||||
rover _^_EN | rover _^_EN | ||||
sotho su:tu | sotho su:tu | ||||
thessalonicense tEsalo@nis'Ens@ | |||||
toyota $2 | toyota $2 | ||||
venda vEnda | venda vEnda | ||||
volvo vOlvu | volvo vOlvu | ||||
wimpy wImpi | wimpy wImpi | ||||
// some Bible names | |||||
levitikus $2 | |||||
deuteronomium dY@t@ro@n'o@miWm | |||||
josua j'o@Sia | |||||
jesaja $2 | |||||
jeremia j%e@r@m'ia | |||||
hosea hus'i:a | |||||
amos 'A:mOs | |||||
obadja o@b'atja | |||||
miga m'ix2a | |||||
habakuk h'abakWk | |||||
sefanja s@f'anja | |||||
sagaria sax2ar'ia | |||||
maleagi $3 | |||||
// Some Bible names | |||||
amos 'A:mOs | |||||
deuteronomium dY@t@ro@n'o@miWm | |||||
habakuk h'abakWk | |||||
hosea hus'i:a | |||||
jeremia j%e@r@m'ia | |||||
jesaja $2 | |||||
josua j'o@Sia | |||||
levitikus $2 | |||||
maleagi $3 | |||||
miga m'ix2a | |||||
obadja o@b'atja | |||||
sagaria sax2ar'ia | |||||
sefanja s@f'anja | |||||
// article | // article | ||||
almiskie $3 | almiskie $3 | ||||
alom al_'Om | alom al_'Om | ||||
alreeds $2 | alreeds $2 | ||||
alternatiewe $4 | |||||
altemit $3 | |||||
amelee am@le@ | amelee am@le@ | ||||
amen A:mEn | amen A:mEn | ||||
anale an'A:l@ | anale an'A:l@ | ||||
casino kas'i:n@U | casino kas'i:n@U | ||||
cedille s@dIl@ | cedille s@dIl@ | ||||
charisma kar'Isma | charisma kar'Isma | ||||
clichés kliS'eI:s | |||||
cliché kliS'eI: | cliché kliS'eI: | ||||
crescendo kr@SEndu | crescendo kr@SEndu | ||||
dadelik dA:d@lIk | dadelik dA:d@lIk | ||||
dagorde dax2_Ord@ | |||||
darem dar@m | darem dar@m | ||||
dekade dEk'A:d@ | dekade dEk'A:d@ | ||||
dekreling dEkre@l@N | dekreling dEkre@l@N | ||||
g'n x2In | g'n x2In | ||||
gaandeweg x2A:nd@v&x2 | gaandeweg x2A:nd@v&x2 | ||||
garages g@rA:dZ@s | garages g@rA:dZ@s | ||||
gebrokener x2@bro@k@n@r | |||||
gee x2e@ | gee x2e@ | ||||
geen x2e@n | geen x2e@n | ||||
geldelike x2&ld@l@k@ | geldelike x2&ld@l@k@ | ||||
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 | ||||
gewellys x2e@v@lleIs | |||||
gladiator x2ladi'A:tOr | gladiator x2ladi'A:tOr | ||||
globale x2lo@b'A:l@ | globale x2lo@b'A:l@ | ||||
gooi x2OI | gooi x2OI | ||||
hanou hA:n@U | hanou hA:n@U | ||||
hardop hart?Op | hardop hart?Op | ||||
heeltemal he@lt@mal | heeltemal he@lt@mal | ||||
heimat haImat | |||||
hek h&k | hek h&k | ||||
hekke h&k@ | hekke h&k@ | ||||
helaas he@l'A:s | helaas he@l'A:s | ||||
lokaas lOk_A:s | lokaas lOk_A:s | ||||
londense lOnd@ns@ | londense lOnd@ns@ | ||||
lord _^_EN | lord _^_EN | ||||
luidop lYyt_Op | |||||
macaroni makar'o@ni | macaroni makar'o@ni | ||||
madame mad'A:m | madame mad'A:m | ||||
namate $2 | namate $2 | ||||
negeer n@x2e@r | negeer n@x2e@r | ||||
negering n@x2e@r@N | negering n@x2e@r@N | ||||
negester ne@x2@st&r | |||||
netjies nE:icis | netjies nE:icis | ||||
netjiese nEicis@ | netjiese nEicis@ | ||||
netsowel nEtso@v&l | netsowel nEtso@v&l | ||||
nikswerd nIksv&:rt | nikswerd nIksv&:rt | ||||
nimmermeer $1 | nimmermeer $1 | ||||
nirvana n@rvA:na | nirvana n@rvA:na | ||||
nogeens nOx2_e@ns | |||||
normale nOrm'A:l@ | normale nOrm'A:l@ | ||||
numeri nWm@ri | numeri nWm@ri | ||||
ongelyk $1 | ongelyk $1 | ||||
ongemak $1 | ongemak $1 | ||||
ongerief $1 | ongerief $1 | ||||
ongeriefie $1 | |||||
ongewens $1 | ongewens $1 | ||||
ongewensde $3 | ongewensde $3 | ||||
ongewoons $1 | ongewoons $1 | ||||
parte $1 | parte $1 | ||||
patos pA:tOs | patos pA:tOs | ||||
patriotisme patri|ut'Ism@ | patriotisme patri|ut'Ism@ | ||||
pedaledemping p@dA:l@dEmp@N | |||||
penorent pEno@rEnt | penorent pEno@rEnt | ||||
per p@r $only | per p@r $only | ||||
persent p@rsEnt | persent p@rsEnt | ||||
petite p@tit | petite p@tit | ||||
pinotage pinut'A:Z | pinotage pinut'A:Z | ||||
pirouette p@ru:'Et | pirouette p@ru:'Et | ||||
plaasjaap plA:sjA:p | |||||
plasenta plas'Enta | plasenta plas'Enta | ||||
poinsettia pOIns'Etia | |||||
primate $2 | primate $2 | ||||
(pro forma) pro@||f'Orma | (pro forma) pro@||f'Orma | ||||
retoriek r@tur'ik | retoriek r@tur'ik | ||||
rimpeling rImp@l@N | rimpeling rImp@l@N | ||||
rinkink $2 | rinkink $2 | ||||
rondeel $2 | |||||
rooipers roIp&:rs | rooipers roIp&:rs | ||||
roterende rut'e@r@nd@ | roterende rut'e@r@nd@ | ||||
rottenes rOt@nEs | rottenes rOt@nEs | ||||
sonore sun'o@r@ | sonore sun'o@r@ | ||||
sover so@f&r | sover so@f&r | ||||
staccato $2 | staccato $2 | ||||
sterwens st&rv@ns | |||||
stilswye $1 | stilswye $1 | ||||
subiet sWb'it | |||||
suburbia sWb'Wrbija | suburbia sWb'Wrbija | ||||
swangerswaar swaN@rswA:r | |||||
tanga taNga | tanga taNga | ||||
tango taNx2u | tango taNx2u | ||||
verdere f&rd@r@ | verdere f&rd@r@ | ||||
vererger f@r&rg@r | vererger f@r&rg@r | ||||
ver f'&:r | ver f'&:r | ||||
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@ |
adole (ssen %ad%o@l@ // fix stress and vowel sounds: adolessent/-e/-adolessensie | adole (ssen %ad%o@l@ // fix stress and vowel sounds: adolessent/-e/-adolessensie | ||||
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 | |||||
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 (los %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 (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc. | agter (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc. | ||||
@@@smokkel) ary %ar%eI // default stress: diamant-/drank-/dwelm-/goud-/kokaïensmokkelary, etc. | @@@smokkel) ary %ar%eI // default stress: diamant-/drank-/dwelm-/goud-/kokaïensmokkelary, etc. | ||||
amarula %am%arul%a // fix stress and a sounds: amarula and compounds | amarula %am%arul%a // fix stress and a sounds: amarula and compounds | ||||
a (ment %a // shorten a sound: perkament/testament and compounds | a (ment %a // shorten a sound: perkament/testament and compounds | ||||
arends A:r@nts_ // fix e sound: arendsoog/-kloue/-nes | |||||
argen (tA %arx2@n // move default stress: Argentinië/Argentyns/-e | argen (tA %arx2@n // move default stress: Argentinië/Argentyns/-e | ||||
a (riA 'A: // akwarium/barium/estuarium/herbarium/seminaria | a (riA 'A: // akwarium/barium/estuarium/herbarium/seminaria | ||||
a (ristokr %a // shorten 1st a: aristokrasie/-kraat/-krate/-kraties | a (ristokr %a // shorten 1st a: aristokrasie/-kraat/-krate/-kraties | ||||
C%C) asie A:si // restore default stress: bok-/dikmelkkasie and similar | C%C) asie A:si // restore default stress: bok-/dikmelkkasie and similar | ||||
oub) asie A:si // restore default stress: oubasie/-s | oub) asie A:si // restore default stress: oubasie/-s | ||||
@form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc. | @form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc. | ||||
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. | Csp) asie A:s%i // restore default stress: vloer/kantoorspasie, etc. | ||||
Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar | Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar | ||||
_k) a (nA %a //kanon and others | _k) a (nA %a //kanon and others | ||||
apart %apart // fix stress: (bus-/klein)apartheid | apart %apart // fix stress: (bus-/klein)apartheid | ||||
aphro (dit %afr%u // fix stress and ph and o sounds: Aphrodite/-dities | |||||
_) a (po %a // apollo/apostel | _) a (po %a // apollo/apostel | ||||
apo (krieC %ap%u // fix stress and vowel sounds: apokrief/-iewe | apo (krieC %ap%u // fix stress and vowel sounds: apokrief/-iewe | ||||
a (politi %A: // lengthen a sound: apolitiek/apolities/-e | a (politi %A: // lengthen a sound: apolitiek/apolities/-e | ||||
ar (gaï %ar // move default stress: argaïes/-e | ar (gaï %ar // move default stress: argaïes/-e | ||||
arge (tip %arx2@ // move default stress: argetipe/argetipies/-e | arge (tip %arx2@ // move default stress: argetipe/argetipies/-e | ||||
ar (moedig %ar // move default stress: armoedig/-e/-heid | ar (moedig %ar // move default stress: armoedig/-e/-heid | ||||
arm (salig %ar@-m // move default stress: armsalig/-e/-heid/-ste | |||||
_) arte (ri %arte@ // fix stress and e sound: arterie/-ë/-s | _) arte (ri %arte@ // fix stress and e sound: arterie/-ë/-s | ||||
_) asbes %asbEs // fix stress and e sound: asbes and many compounds | _) asbes %asbEs // fix stress and e sound: asbes and many compounds | ||||
a (siel %a // shorten a sound and move default stress: asiel and compounds | a (siel %a // shorten a sound and move default stress: asiel and compounds | ||||
_) afge (@P4 'afx2@ // stress on 1st slb | _) afge (@P4 'afx2@ // stress on 1st slb | ||||
afgryslik %afx2reIsl@k // move default stress: afgryslik and derivatives vs. afgrys/-e | afgryslik %afx2reIsl@k // move default stress: afgryslik and derivatives vs. afgrys/-e | ||||
af (hank %af // move default stress: afhanklik/-e/-heid, etc. | af (hank %af // move default stress: afhanklik/-e/-heid, etc. | ||||
_) af (kerig %af // move stress: afkerig/-e/-heid | |||||
_) af (komstig %af // move default stress: afkomstig | _) af (komstig %af // move default stress: afkomstig | ||||
afrik (aan %afr%ik // exception to af prefix and move stress to end | afrik (aan %afr%ik // exception to af prefix and move stress to end | ||||
afrikane (K %afr%ikA:n@ // move stress to end: Afrikaner and compounds | afrikane (K %afr%ikA:n@ // move stress to end: Afrikaner and compounds | ||||
afrika A:frika //Stress and 1st a sound: Afrika and compounds: Afrikatale/-state... | afrika A:frika //Stress and 1st a sound: Afrika and compounds: Afrikatale/-state... | ||||
afro (dit %afr%u // alternate spelling: Afrodite/-dities | |||||
af (sigte %af // move default stress: afsigtelik/-e/-heid | af (sigte %af // move default stress: afsigtelik/-e/-heid | ||||
af (skuw %af // move default stress: afskuwelik and derivatives vs afsku | af (skuw %af // move default stress: afskuwelik and derivatives vs afsku | ||||
afsonderl %afsOn@rl // stress, avoid af_ prefix and -lik suffix: afsonderlik/-e/-heid | afsonderl %afsOn@rl // stress, avoid af_ prefix and -lik suffix: afsonderlik/-e/-heid | ||||
afwesig %afve@s@x2 // to steer clear of pre- and suffixes | afwesig %afve@s@x2 // to steer clear of pre- and suffixes | ||||
af (wagten %af // move default stress: afwagtend/-e | af (wagten %af // move default stress: afwagtend/-e | ||||
agenda %ax2End%a // fix stress and 1st a sound: agenda/-s/-punt, etc. | agenda %ax2End%a // fix stress and 1st a sound: agenda/-s/-punt, etc. | ||||
age (rend %ax2e@ // fix stress and vowel sounds: agerend/-e | |||||
a (gonie %a // fix 1st a sound and move default stress: agonies/-e | a (gonie %a // fix 1st a sound and move default stress: agonies/-e | ||||
agonie (_N %ax2%uni // move stress to end: agonie | agonie (_N %ax2%uni // move stress to end: agonie | ||||
agter (bak %ax2t@r // fix stress: agterbaks/-e/-heid | agter (bak %ax2t@r // fix stress: agterbaks/-e/-heid | ||||
aan (grensen %A:n // move default stress: aangrensend/-e | aan (grensen %A:n // move default stress: aangrensend/-e | ||||
aan (grypend %A:n // fix stress: aangrypend/-e | aan (grypend %A:n // fix stress: aangrypend/-e | ||||
aan (hangig %A:n // move default stress: aanhangig vs. aanhang | aan (hangig %A:n // move default stress: aanhangig vs. aanhang | ||||
aan (hank %A:n // move default stress: aanhanklik/-e/-heid | |||||
aan (houden %A:n // move default stress: aanhoudend/-e | aan (houden %A:n // move default stress: aanhoudend/-e | ||||
aan (lok %A:n // move default stress: aanloklik/-heid | aan (lok %A:n // move default stress: aanloklik/-heid | ||||
aan (lok_N A:n // restore default stress: aanlok | aan (lok_N A:n // restore default stress: aanlok | ||||
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. | ||||
blom (akker blOm_ // fix O sound, pause: blomakker/-s and compounds | |||||
blon (dine bl%On // move default stress: blondine/-s | blon (dine bl%On // move default stress: blondine/-s | ||||
bly (moed bl%eI // move default stress: blymoedig/-e/-heid | bly (moed bl%eI // move default stress: blymoedig/-e/-heid | ||||
bo (botie b%u // fix stress and 1st o sound: bobotie and compounds | bo (botie b%u // fix stress and 1st o sound: bobotie and compounds | ||||
_) deli (ka d%El%i // delikaat/delikate | _) deli (ka d%El%i // delikaat/delikate | ||||
delika (tess d%El%ik%a // move default stress: delikatesse/-s | delika (tess d%El%ik%a // move default stress: delikatesse/-s | ||||
deli (rium d@lI // fix stress and vowel sounds: delirium and compounds | deli (rium d@lI // fix stress and vowel sounds: delirium and compounds | ||||
delphinium d%&lfini;Wm // fix stress and ph sound: delphinium and compounds | |||||
@) dend (er d@nd // beduidender/behoudender | @) dend (er d@nd // beduidender/behoudender | ||||
_) den (dri d%En // dendriet/-e/dendrities/-e | _) den (dri d%En // dendriet/-e/dendrities/-e | ||||
@C) derm (K d&r@-m // fix e sound of derm in compounds: nersdermklier/slukdermsiekte, etc. | @C) derm (K d&r@-m // fix e sound of derm in compounds: nersdermklier/slukdermsiekte, etc. | ||||
@) dderd (_ d@rt // ontredderd, se rule: dd d | @) dderd (_ d@rt // ontredderd, se rule: dd d | ||||
_) derge d&rx2@ // dergelik/-e | _) derge d&rx2@ // dergelik/-e | ||||
@) de (rosie t_%e@ // fix e sound, pause: winderosie/tyderosie and similar | |||||
desibel dEsib&l // fix vowel sounds: desibel/-s | desibel dEsib&l // fix vowel sounds: desibel/-s | ||||
de (skun d%E //deskundig/e in compounds | de (skun d%E //deskundig/e in compounds | ||||
_) des (po d%Es // move default stress: despoot/despote | _) des (po d%Es // move default stress: despoot/despote | ||||
digi (ta d%ix2%i // move default stress: digitaal/digitale | digi (ta d%ix2%i // move default stress: digitaal/digitale | ||||
di (gK dI // force default stress: GEDIG/-TE/digbundel/digvorm, etc. | di (gK dI // force default stress: GEDIG/-TE/digbundel/digvorm, etc. | ||||
digtere (K d@x2t@rE // move default stress: digteres/-se | digtere (K d@x2t@rE // move default stress: digteres/-se | ||||
dik (vell d@k // move default stress: dikvellig/-e/-heid | |||||
dilemma d@lEma // dilemma and compounds | dilemma d@lEma // dilemma and compounds | ||||
dimen (si d@mEn // fix stress and 1st i sound: (ontwikkelings)dimensie, etc./-dimensioneel/-ele | dimen (si d@mEn // fix stress and 1st i sound: (ontwikkelings)dimensie, etc./-dimensioneel/-ele | ||||
di (namie d%i // move default stress: dinamies/-e | di (namie d%i // move default stress: dinamies/-e | ||||
dis (koers d@s // move default stress: diskoers/-e | dis (koers d@s // move default stress: diskoers/-e | ||||
diskre (s d@skrE // fix stress and e sound: diskresie/diskresionêre | diskre (s d@skrE // fix stress and e sound: diskresie/diskresionêre | ||||
_) dis (kre d@s // move default stress: diskreet/-heid/-ste/diskrete | _) dis (kre d@s // move default stress: diskreet/-heid/-ste/diskrete | ||||
_) dis (kussA d@s // move default stress: diskussie/-s/diskusseer | |||||
dis (loja d@s // move default stress: dislojaal/-lojale/-lojaliteit | dis (loja d@s // move default stress: dislojaal/-lojale/-lojaliteit | ||||
_) dis (oP3 d@s // disorganisasie/disoriënteer | _) dis (oP3 d@s // disorganisasie/disoriënteer | ||||
dis (pu d@s // move default stress: dispuut/dispute | dis (pu d@s // move default stress: dispuut/dispute | ||||
distro (fie d@str%u // fix stress and o sound: (spier)distrofie, etc. | distro (fie d@str%u // fix stress and o sound: (spier)distrofie, etc. | ||||
divide (nd d@v@dE //dividende etc. | divide (nd d@v@dE //dividende etc. | ||||
d (_N t // | |||||
d (_ t // | |||||
dj c // palatal stop | dj c // palatal stop | ||||
_) dj dZ // regional: djy/djou/djulle, etc. | _) dj dZ // regional: djy/djou/djulle, etc. | ||||
@) d (roos t // fix d sound: draadrooster/maand-/strand-/veldroos | @) d (roos t // fix d sound: draadrooster/maand-/strand-/veldroos | ||||
@) d (rose_ t // fix d sound: maand-/strand-/veldrose | @) d (rose_ t // fix d sound: maand-/strand-/veldrose | ||||
@) d (rosie t // fix d sound: maand-/strand-/veldrosie/-s | @) d (rosie t // fix d sound: maand-/strand-/veldrosie/-s | ||||
_) drukke (ry dr%Wk@ // move default stress: drukkery and compounds | |||||
@) d (t // drop d: breedte/handtekening/rondte/rondtrek... | @) d (t // drop d: breedte/handtekening/rondte/rondtrek... | ||||
du (et d%u:w // fix stress and -ue-sound: (klavier)duet/-te, etc. | du (et d%u:w // fix stress and -ue-sound: (klavier)duet/-te, etc. | ||||
@n) d (uit t_ // fix d sound and insert short break: enduit/handuit and similar | @n) d (uit t_ // fix d sound and insert short break: enduit/handuit and similar | ||||
verby) dw dw // fix d sound: verbydwarrel/-dwaal/-dwing | |||||
dwelm (_ dw&l@-m // fix d and e sounds in compounds like wonderdwelm | dwelm (_ dw&l@-m // fix d and e sounds in compounds like wonderdwelm | ||||
dw (erg dw // fix d sound: tuindwerg/-e/-ie | dw (erg dw // fix d sound: tuindwerg/-e/-ie | ||||
@) dwes tv'Es // noordwes/te/lik/e suidwes/te/lik/e | @) dwes tv'Es // noordwes/te/lik/e suidwes/te/lik/e | ||||
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 | ||||
vreugd) e (C @ // fix e sound: vreugdefees/-klokkies/-lied/-tyd... | |||||
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 | ||||
fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc. | fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc. | ||||
kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar | kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar | ||||
naald) e (C @ // fix e sound: naaldekoker/-kussing/-werk, etc. | naald) e (C @ // fix e sound: naaldekoker/-kussing/-werk, etc. | ||||
noord) e (C @ // fix e sound: noordewind and compounds | noord) e (C @ // fix e sound: noordewind and compounds | ||||
Colw) e (C @ // fix e sound: golweslag/wolwedans | Colw) e (C @ // fix e sound: golweslag/wolwedans | ||||
bolw) e (rk_ & // exception to above: fix e sound: bolwerk and compounds | |||||
ros) e (CA @ // fix e sound: rosegeur/roseweg | ros) e (CA @ // fix e sound: rosegeur/roseweg | ||||
slang) e (C @ // fix e sound: slangebesweerder/-diens/-draer/-gebroedsel/-kuil/-teelt | slang) e (C @ // fix e sound: slangebesweerder/-diens/-draer/-gebroedsel/-kuil/-teelt | ||||
speld) e (C @ // fix e sound: speldekop/-kussing/-punt, etc. | speld) e (C @ // fix e sound: speldekop/-kussing/-punt, etc. | ||||
ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. | ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. | ||||
Cv) eer e@r // stress: (hoender/volstruisveer/dryfveer | Cv) eer e@r // stress: (hoender/volstruisveer/dryfveer | ||||
AAv) eer e@r // restore default stress: pouveer/makouveer/horlosieveer/kraaiveer/rooiveer | AAv) eer e@r // restore default stress: pouveer/makouveer/horlosieveer/kraaiveer/rooiveer | ||||
Cev) eer e@r // restore default stress: duiwe-/haneveer | |||||
w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer | w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer | ||||
u) eer 'e@r // aktueer/konstrueer/salueer, etc. | u) eer 'e@r // aktueer/konstrueer/salueer, etc. | ||||
@) eerdheid 'e@rtheIt // fix stress: geraffineerdheid/ongedissiplineerdheid, etc. | |||||
effek (K %ifEk // move default stress and fix e sound: effek/-te/-tief/rimpeleffek | effek (K %ifEk // move default stress and fix e sound: effek/-te/-tief/rimpeleffek | ||||
eienaardig %eI@nA:rd@x2 // move default stress: eienaardig/-ste | eienaardig %eI@nA:rd@x2 // move default stress: eienaardig/-ste | ||||
@) ein (dig 'eIn // nimmereindige/nimmereindigend | @) ein (dig 'eIn // nimmereindige/nimmereindigend | ||||
C) ema (_ e@ma // words ending in ema: compounds of skema/tema | C) ema (_ e@ma // words ending in ema: compounds of skema/tema | ||||
emfi (seem %Emf%i // move default stress: emfiseem and compounds | emfi (seem %Emf%i // move default stress: emfiseem and compounds | ||||
C) enaar @nA:r // eienaar/lessenaar | C) enaar @nA:r // eienaar/lessenaar | ||||
C) enare (_ @nA:r@ // fix e sound: towenare and similar | |||||
C) enier @n'i:r // kruidenier/spysenier/valkenier/Renier | C) enier @n'i:r // kruidenier/spysenier/valkenier/Renier | ||||
C) enheid @nheIt // opgewondenheid/bedorwenheid and many similar | C) enheid @nheIt // opgewondenheid/bedorwenheid and many similar | ||||
_) enorm e@n'Or@_m // enorm/-s, pronunc. of rm | _) enorm e@n'Or@_m // enorm/-s, pronunc. of rm | ||||
e (gK & | e (gK & | ||||
@C) e (groep @ // fix e sound: beelde-/vriendegroep | @C) e (groep @ // fix e sound: beelde-/vriendegroep | ||||
_) ega (l %e@x2A: // stress: egalig/-e | _) ega (l %e@x2A: // stress: egalig/-e | ||||
egosentrie %e@x2%usEntri // fix stress and o sound: egosentries/-e | |||||
_) e (gipt %e@ // move default stress: Egipte/Egiptenaar/Egipties | _) e (gipt %e@ // move default stress: Egipte/Egiptenaar/Egipties | ||||
C) ektomie 'Ektumi // histerektomie/vasektomie | C) ektomie 'Ektumi // histerektomie/vasektomie | ||||
&) elik (ing @l@k // verduideliking/s/vergoddeliking/verstedeliking | &) elik (ing @l@k // verduideliking/s/vergoddeliking/verstedeliking | ||||
ff) er (@ @r // keffertjie/koffersleutel/offerande/opoffering | ff) er (@ @r // keffertjie/koffersleutel/offerande/opoffering | ||||
stoff) er (A 'e@r // exception to rule: ff) er (@ @ | stoff) er (A 'e@r // exception to rule: ff) er (@ @ | ||||
C) eres @r'Es // ...onderwyseres | C) eres @r'Es // ...onderwyseres | ||||
@dans) ere (K @rE // fix stress: beroeps-/waaierdanseres/-se/-sie, etc. | |||||
C) eress @r'Es // onderwyseresse/-sie | C) eress @r'Es // onderwyseresse/-sie | ||||
&) e (m_ @ | &) e (m_ @ | ||||
&l) e (m_ E // compounds ending in lem | &l) e (m_ E // compounds ending in lem | ||||
_rasp) e (r @ // fix e sound in rasper- compounds: raspertong/-vyl, etc./rasperend | _rasp) e (r @ // fix e sound in rasper- compounds: raspertong/-vyl, etc./rasperend | ||||
werp) e (rsA @ // fix e sound: ontwerpersolie/-sonbril/-uitrusting | werp) e (rsA @ // fix e sound: ontwerpersolie/-sonbril/-uitrusting | ||||
lew) e (ns @ | lew) e (ns @ | ||||
&d) e (r@+ @ // not initial or final syllable | |||||
&d) e (r@++ @ // not initial or final syllable | |||||
skuld) erke _&rkE // fix e sound: skulderkentennis/-erkenning | skuld) erke _&rkE // fix e sound: skulderkentennis/-erkenning | ||||
@C) e (reë @ // fix e sound: geelperskereën/tropereën, etc. | @C) e (reë @ // fix e sound: geelperskereën/tropereën, etc. | ||||
@d) e (rnst+ & // but fix e sound in doodernstig/-e | |||||
@d) e (rnst++ & // but fix e sound in doodernstig/-e | |||||
&t) e (r@ @ | &t) e (r@ @ | ||||
Cit) e (ring e@ // fix final e sound in compounds like begrotingsmonitering | Cit) e (ring e@ // fix final e sound in compounds like begrotingsmonitering | ||||
iënt) e (r@n e@ // fix e sound: lewensoriëntering/-rende | iënt) e (r@n e@ // fix e sound: lewensoriëntering/-rende | ||||
_) este (t %Este@ // fix stress and vowel sounds: esteties/-e/estetika | _) este (t %Este@ // fix stress and vowel sounds: esteties/-e/estetika | ||||
hip) e (r @ | hip) e (r @ | ||||
_) er (b &r' // erbarm/ing | _) er (b &r' // erbarm/ing | ||||
erke (n %&rkE // fix stress and e sounds: erken/-ning/(self)erkende | |||||
erke (n+ %&rkE // fix stress and e sounds: erken/-ning/(self)erkende | |||||
m) erke (nd &rk@ // kenmerkend/-e | m) erke (nd &rk@ // kenmerkend/-e | ||||
p) erke (nd &rk@ // beperkend/-e | p) erke (nd &rk@ // beperkend/-e | ||||
w) erke (nd &rk@ // (mede/terug)werkend/-e | w) erke (nd &rk@ // (mede/terug)werkend/-e | ||||
elaar @lA:r //wandelaar, twyfelaar etc. | elaar @lA:r //wandelaar, twyfelaar etc. | ||||
oord) elaar e@lA:r //beoordelaar and oordelaar/friends | oord) elaar e@lA:r //beoordelaar and oordelaar/friends | ||||
C) ewel (A e@v@l // prewelend/wrewelig/newelig/beneweling | C) ewel (A e@v@l // prewelend/wrewelig/newelig/beneweling | ||||
ewewig (tig %e@v@vIx2 // move default stress: ewewigtig/-e | |||||
d) e (mons E% | d) e (mons E% | ||||
r) e (digering E | r) e (digering E | ||||
som) e (r @ //someraand and others. | som) e (r @ //someraand and others. | ||||
Ceuw) e (l @ //gesneuwelde heuwelhang etc. | Ceuw) e (l @ //gesneuwelde heuwelhang etc. | ||||
v) e (nno@+ @ //vennoot and friends | v) e (nno@+ @ //vennoot and friends | ||||
_) euro (pe %Y@r%o@ // stress: Europees/Europese | _) euro (pe %Y@r%o@ // stress: Europees/Europese | ||||
ev (entue %iv // fix e and v sounds: eventueel/-ele | |||||
_) ewe (red %e@v@ // move default stress: (on)eweredig/-e/-heid | _) ewe (red %e@v@ // move default stress: (on)eweredig/-e/-heid | ||||
ex (+ _^_EN // words containing ex are English | ex (+ _^_EN // words containing ex are English | ||||
al) ex (and %Ekz //alexanderbaai, alexandria etc. | al) ex (and %Ekz //alexanderbaai, alexandria etc. | ||||
_) fok (o fOk_ // fix o sound, insert short break: fokop/fokof | _) fok (o fOk_ // fix o sound, insert short break: fokop/fokof | ||||
folio fo@li_u // fix o sounds: folio and compounds | folio fo@li_u // fix o sounds: folio and compounds | ||||
fondue f%Ondy // fix stress and ue sound: fondue and compounds | fondue f%Ondy // fix stress and ue sound: fondue and compounds | ||||
fone (tiek f%o@n@ // fix e sound: fonetiek and compounds | |||||
fone (tie f%une@ // fix stress and o sound: foneties/-e | |||||
@) fonie fun'i // kakofonie/simfonieorkes/telefonie | @) fonie fun'i // kakofonie/simfonieorkes/telefonie | ||||
@) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies | @) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies | ||||
@) fonie (s@@ fun'i // fix stress: simfonieseisoen and similar | @) fonie (s@@ fun'i // fix stress: simfonieseisoen and similar | ||||
gim (naK x2@m // move default stress: gimnas/-te | gim (naK x2@m // move default stress: gimnas/-te | ||||
gimna (siA x2@mnA: // move default stress and lenghthen a sound: gimnasium/gimnasia | gimna (siA x2@mnA: // move default stress and lenghthen a sound: gimnasium/gimnasia | ||||
glans x2lans // glans not nasalised: glans/-ende/-papier, etc. | glans x2lans // glans not nasalised: glans/-ende/-papier, etc. | ||||
glas (a x2las_ // shorten a sound, short pause: glasafskorting/-albaster/-apparaat... | |||||
glas (o x2las_ // fix a sound and short break: glasoog/-ogie/-oë/-opaal/-oppervlakte | glas (o x2las_ // fix a sound and short break: glasoog/-ogie/-oë/-opaal/-oppervlakte | ||||
gletser x2l''Ets@r // fix 2nd e sound: gletserbeweging/-meer/-vorming/vergletsering, etc. | gletser x2l''Ets@r // fix 2nd e sound: gletserbeweging/-meer/-vorming/vergletsering, etc. | ||||
glise (rien gl@s@ // fix stress and g and vowel sounds: gliserien(-salf/-suur) | glise (rien gl@s@ // fix stress and g and vowel sounds: gliserien(-salf/-suur) | ||||
bur) ger g@r | bur) ger g@r | ||||
gee (+ x2e@ | gee (+ x2e@ | ||||
geër (_ x2e@@r // oorgeër/pasaangeër | geër (_ x2e@@r // oorgeër/pasaangeër | ||||
gees (drift x2%e@s // move default stress: geesdriftig and derivatives | |||||
gees (drifti x2%e@s // move default stress: geesdriftig and derivatives | |||||
@) gegee =x2@x2e@ | @) gegee =x2@x2e@ | ||||
gegewens x2@x2e@v@ns // fix e sounds in many compounds: agtergrond-/fossielgegewens/-versameling | gegewens x2@x2e@v@ns // fix e sounds in many compounds: agtergrond-/fossielgegewens/-versameling | ||||
gei (+ x2eI // geil and derivatives/geiser/geit/-e | gei (+ x2eI // geil and derivatives/geiser/geit/-e | ||||
.group h | .group h | ||||
h h | h h | ||||
h (h | h (h | ||||
_) 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 | ||||
half (twee h%alf | half (twee h%alf | ||||
hard (ste hart // restore default stress: (ge)hardste/-s | hard (ste hart // restore default stress: (ge)hardste/-s | ||||
harle (kyn h%arl@ // fix stress and e sound: harlekyn/-e and compounds | harle (kyn h%arl@ // fix stress and e sound: harlekyn/-e and compounds | ||||
harmo (nie h%arm%u // fix stress and o sound: harmonie/-ë | harmo (nie h%arm%u // fix stress and o sound: harmonie/-ë | ||||
harmonies harm'o@nis // fix stress (dis-/en-/fil-)harmonies/-e | |||||
har (poen h%ar // move default stress: harpoen/-e and compounds | har (poen h%ar // move default stress: harpoen/-e and compounds | ||||
@) hartig h'art@x2 // barmhartig/lighartigheid/lighartig... | @) hartig h'art@x2 // barmhartig/lighartigheid/lighartig... | ||||
hart (roer h%art // move default stress: hartroerend/-e/-ste | hart (roer h%art // move default stress: hartroerend/-e/-ste | ||||
&) hede (_ he@d@ | &) hede (_ he@d@ | ||||
he (g h& | he (g h& | ||||
heid (_S4 heIt | heid (_S4 heIt | ||||
herinner h&r'In@r // herinner/-ing/-e|s | |||||
herinner h%&rIn@r // herinner/-ing/-e|s | |||||
hetero (@@P6 h%Et@-r%u // fix stress and vowel sounds: many compounds: heteroseksueel/-ele/-aliteit, etc. | hetero (@@P6 h%Et@-r%u // fix stress and vowel sounds: many compounds: heteroseksueel/-ele/-aliteit, etc. | ||||
hex (C hEks // prevent English translation: Hex(rivier)vallei | hex (C hEks // prevent English translation: Hex(rivier)vallei | ||||
hia (sint h%ij%a // fix stress: hiasint/-e and compounds | hia (sint h%ij%a // fix stress: hiasint/-e and compounds | ||||
iber (i@ %ibe@r // Siberië/Siberiese/Iberiese | iber (i@ %ibe@r // Siberië/Siberiese/Iberiese | ||||
@) ic (_ _^_EN // Words ending in -ic are English | @) ic (_ _^_EN // Words ending in -ic are English | ||||
ie i | ie i | ||||
tr) ie (_ 'i //stress on trie at word end | |||||
tr) ie (_N 'i //stress on trie at word end | |||||
ieë (K i:@ // knieë/vlieë/spieël/-tjie | ieë (K i:@ // knieë/vlieë/spieël/-tjie | ||||
ie (uu i // split ie/uu, eu not diphthong: drieuur and similar | ie (uu i // split ie/uu, eu not diphthong: drieuur and similar | ||||
ss) ief (_ 'if // move default stress: aggressief/massief/obsessief/progressief, etc. | ss) ief (_ 'if // move default stress: aggressief/massief/obsessief/progressief, etc. | ||||
j j | j j | ||||
j (j | j (j | ||||
ja (broer jA: // fix a sound: jabroer/-s | ja (broer jA: // fix a sound: jabroer/-s | ||||
_) jack _^_EN // English: Jack/-ie/-son | |||||
_) jag (A j''ax2_ // fix stress and a sound: jagavontuur/-ekspedisie/-entoesias/-eskader/-instink... | _) jag (A j''ax2_ // fix stress and a sound: jagavontuur/-ekspedisie/-entoesias/-eskader/-instink... | ||||
jag (end jA:x2 // but long a in jagend/-e and compounds | jag (end jA:x2 // but long a in jagend/-e and compounds | ||||
jag (er jA:x2 // long a in jager and compounds | jag (er jA:x2 // long a in jager and compounds | ||||
klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie | klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie | ||||
klou (sule kl%@U // move default stress: klousule/-s | klou (sule kl%@U // move default stress: klousule/-s | ||||
kklere =kl'e@r@ | kklere =kl'e@r@ | ||||
kners (_ kn&rs // fix e sound: blikners/tande(ge)kners, etc. | |||||
knip (A knIp? // knipogie/geknipoog/ | knip (A knIp? // knipogie/geknipoog/ | ||||
_) krag (A kr''ax2_ // kragaanleg/-eenheid/-installasie/-onderbreking/-opwekker | _) krag (A kr''ax2_ // kragaanleg/-eenheid/-installasie/-onderbreking/-opwekker | ||||
kra (gie krA: // but: kragie/-s | kra (gie krA: // but: kragie/-s | ||||
kreme (tart kr@m@ // fix stress and e sounds: kremetart and compounds | kreme (tart kr@m@ // fix stress and e sounds: kremetart and compounds | ||||
_) kre (o kr%i // fix stress and e sound: Kreool/Kreole/Kreoolse | _) kre (o kr%i // fix stress and e sound: Kreool/Kreole/Kreoolse | ||||
_) kre (pe@ kr@ // fix stress and 1ste sound: krepeer/-krepering | _) kre (pe@ kr@ // fix stress and 1ste sound: krepeer/-krepering | ||||
kriewe (l kriv@ // fix e sound: kriewelend/kriewelkous/-krapper/-siekte... | |||||
krimi (nA kr@m@' // krimineel/kriminele/diskrimineer | krimi (nA kr@m@' // krimineel/kriminele/diskrimineer | ||||
kri (oel kr%i // move default stress: krioel and derivatives | kri (oel kr%i // move default stress: krioel and derivatives | ||||
kri (sant kr@ // move default stress: krisant/-e | kri (sant kr@ // move default stress: krisant/-e | ||||
_) kontras k%Ontras // move default stress: kontras/-te/kontrasteer | _) kontras k%Ontras // move default stress: kontras/-te/kontrasteer | ||||
kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives | kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives | ||||
kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel | kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel | ||||
_) kop (o kOp? // fix o sound: koponder/koponderstebo/kopomdraai/kopoperasie | |||||
kop (o kOp? // fix o sound: koponderstebo/kopomdraai/kopoperasie/gryskoponderwyser/poenskopolifant | |||||
kopu (lA k%Op%y // fix o sound: kopulasie/kopuleer and derivatives | kopu (lA k%Op%y // fix o sound: kopulasie/kopuleer and derivatives | ||||
_) kor (dA k%Or // kordaat/kordon | _) kor (dA k%Or // kordaat/kordon | ||||
ko (rint k%u // fix stress and o sound: korint/-e and compounds | ko (rint k%u // fix stress and o sound: korint/-e and compounds | ||||
ma (kriel m%a // move default stress: makriel/-e | ma (kriel m%a // move default stress: makriel/-e | ||||
maksi (ma@ m%aks%i // move default stress: maksimaal/-male | maksi (ma@ m%aks%i // move default stress: maksimaal/-male | ||||
&) mal (_S3 mal | &) mal (_S3 mal | ||||
mala (giet m%al%a // fix stress and a sounds: malagiet and compounds | |||||
malaria mal'A:ria | malaria mal'A:ria | ||||
mal (gas m%al // move default stress: Malgas/-se/-sies | mal (gas m%al // move default stress: Malgas/-se/-sies | ||||
malles (_ mal@s // fix e sound: (mags)malles and similar | malles (_ mal@s // fix e sound: (mags)malles and similar | ||||
marmer marm@r_ // fix e sound: marmerbeeld/-blad and many others | marmer marm@r_ // fix e sound: marmerbeeld/-blad and many others | ||||
marmo (set m%arm%u // fix stress and o sound: marmoset/-te | marmo (set m%arm%u // fix stress and o sound: marmoset/-te | ||||
mar (sje m%ar // move default stress: marsjeer and derivatives | mar (sje m%ar // move default stress: marsjeer and derivatives | ||||
mas (biek m%as // move default stress: masbieker/-s | |||||
ma s (biek m%as // move default stress: masbieker/-s | |||||
masjien m@Sin // masjien and many compounds | masjien m@Sin // masjien and many compounds | ||||
masji (na@ m%aS%i // move default stress: masjinaal/-ale | |||||
maskara m%askA:r%a // move default stress: maskara and compounds | maskara m%askA:r%a // move default stress: maskara and compounds | ||||
masker mask@r // fix e sound: maskerafdruk/-agtig/ontmaskering | masker mask@r // fix e sound: maskerafdruk/-agtig/ontmaskering | ||||
masker (ade m%ask@r // move default stress: maskerade/-s | masker (ade m%ask@r // move default stress: maskerade/-s | ||||
maso (chis m%as%u // fix vowel sounds: masochis/-te/-ties/-e/-isme | maso (chis m%as%u // fix vowel sounds: masochis/-te/-ties/-e/-isme | ||||
mastekto (m m%astEkt%u // fix stress and vowel sounds: mastektomie and compounds | mastekto (m m%astEkt%u // fix stress and vowel sounds: mastektomie and compounds | ||||
mate (matie m%at@ // fix vowel sounds: matematies/-e | |||||
matemati (CA m%at@m%at%i // fix stress and vowel sounds: matematikus/-ci | matemati (CA m%at@m%at%i // fix stress and vowel sounds: matematikus/-ci | ||||
materi (A@ m%at%e@r%i // materiaal/materiale/materiële/materieel | materi (A@ m%at%e@r%i // materiaal/materiale/materiële/materieel | ||||
materie (+ m%ate@r%i // stress and vowel sounds: materie and many compounds | materie (+ m%ate@r%i // stress and vowel sounds: materie and many compounds | ||||
midde (l mId@ // middellyf/middelpunt/middelste/bemiddelend | midde (l mId@ // middellyf/middelpunt/middelste/bemiddelend | ||||
middel (jari m@d@l // move default stress: middeljarig and derivatives | middel (jari m@d@l // move default stress: middeljarig and derivatives | ||||
middelli (k mId@l@ // drop one l: (on)middellik/-e | middelli (k mId@l@ // drop one l: (on)middellik/-e | ||||
milieu m@ljy // fix stress and vowel sounds: milieu and compounds | |||||
milit m@l@t // militêr/militaris | milit m@l@t // militêr/militaris | ||||
mil (jA m@l // move default stress: miljoen/-e/miljard/-e | mil (jA m@l // move default stress: miljoen/-e/miljard/-e | ||||
mille (nniA m@lE // millennium/millennia | mille (nniA m@lE // millennium/millennia | ||||
mis (gis m@s // stress on 2nd slb | mis (gis m@s // stress on 2nd slb | ||||
mis (gun m@s // stress on 2nd slb | mis (gun m@s // stress on 2nd slb | ||||
mis (ha m@s // mishandel/mishaag | mis (ha m@s // mishandel/mishaag | ||||
_) mis (inP3 m@s // fix 1st i sound, pause: misinterpretasie/misinterpreteer | |||||
miske (n m@skE // misken/ning/onmiskenbaar | miske (n m@skE // misken/ning/onmiskenbaar | ||||
mis (l m@s // misluk/mislei | mis (l m@s // misluk/mislei | ||||
mis (lamp mIs // restore default stress: mislamp/-e | mis (lamp mIs // restore default stress: mislamp/-e | ||||
mosam (biek m%o@s%am // move default stress: Mosambiek/-er/-se | mosam (biek m%o@s%am // move default stress: Mosambiek/-er/-se | ||||
mosa (ïek m%o@s%a // move default stress: mosaïek and compounds | mosa (ïek m%o@s%a // move default stress: mosaïek and compounds | ||||
mo (skee m%O // move default stress: moskee/-s and compounds | mo (skee m%O // move default stress: moskee/-s and compounds | ||||
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 | ||||
@) mpel (A mp@l // bewimpeling/dompelaar/strompeling | @) mpel (A mp@l // bewimpeling/dompelaar/strompeling | ||||
ment m'Ent | ment m'Ent | ||||
mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds | mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds | ||||
mentjie m'EiNci // monumentjie/dokumentjies | mentjie m'EiNci // monumentjie/dokumentjies | ||||
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. | ||||
oe) n (g n //soengroet, pensioengewend etc. | oe) n (g n //soengroet, pensioengewend etc. | ||||
nuanse (K n%yans@ // move default stress: nuanse/-s and compounds | nuanse (K n%yans@ // move default stress: nuanse/-s and compounds | ||||
nuan (seer n%y%an // fix stress: (ge)nuanseer/-d | nuan (seer n%y%an // fix stress: (ge)nuanseer/-d | ||||
nuanse (ring n%y%anse@ // fix stress: nuansering and compounds | |||||
nuus (kierig n%ys // move default stress: nuuskierig/-heid | nuus (kierig n%ys // move default stress: nuuskierig/-heid | ||||
nuwer (wet n%yv@r // move default stress: nuwerwets/-e | nuwer (wet n%yv@r // move default stress: nuwerwets/-e | ||||
@Cer) ny (_ n'eI // move default stress: lekkerny/raserny/slawerny | @Cer) ny (_ n'eI // move default stress: lekkerny/raserny/slawerny | ||||
oase %u_A:s@ // oase/-s and compounds | oase %u_A:s@ // oase/-s and compounds | ||||
o (terap u // psigo-/fisioterapeut | o (terap u // psigo-/fisioterapeut | ||||
_) ob (s %Op // obskuur/obskure/obskuriteit/obsessie/obseen | _) ob (s %Op // obskuur/obskure/obskuriteit/obsessie/obseen | ||||
obser (veer %Ops%&r // fix stress, b sound: (ge)observeer(d/-e) | |||||
C) o (dium o@ // fix stress and o sound: jodium/podium/rodium and their compounds | C) o (dium o@ // fix stress and o sound: jodium/podium/rodium and their compounds | ||||
oefen uf@n// oefenbroekie/oefeningboek/liggaamsoefeninge | oefen uf@n// oefenbroekie/oefeningboek/liggaamsoefeninge | ||||
t) oeke (n uk%E // fix e sound: toeken/-ning/kuns-/watertoekenning | t) oeke (n uk%E // fix e sound: toeken/-ning/kuns-/watertoekenning | ||||
odjie OIci | odjie OIci | ||||
otjie OIci | otjie OIci | ||||
offi (sier %Of@ // move default stress: offisier and compounds | offi (sier %Of@ // move default stress: offisier and compounds | ||||
offisi %Of%iS%i; | |||||
ofiel uf'il // franko-/hemo-/nekro-/pedo-/russofiel, etc. | ofiel uf'il // franko-/hemo-/nekro-/pedo-/russofiel, etc. | ||||
ofilie ufil'i // hemo-/nekro-/pedofilie, etc. | ofilie ufil'i // hemo-/nekro-/pedofilie, etc. | ||||
ofobie ufo@b'i // antropo/-xenofobie and many other -fobie words | ofobie ufo@b'i // antropo/-xenofobie and many other -fobie words | ||||
om (sig %Om // move default stress: omsigtig/-heid | om (sig %Om // move default stress: omsigtig/-heid | ||||
omsingel %OmsIN@l // fix stress: omsingel/fix e sound: omsingelde | omsingel %OmsIN@l // fix stress: omsingel/fix e sound: omsingelde | ||||
_) om (sirkel %Om // move default stress: omsirkel and derivatives | _) om (sirkel %Om // move default stress: omsirkel and derivatives | ||||
_) omskans %Omskans // fix stress: omskans/-ing/-s | |||||
_) om (skep %Om // move default stress: omskep and derivatives | _) om (skep %Om // move default stress: omskep and derivatives | ||||
_) om (skr %Om // move default stress: omskryf/omskrewe | _) om (skr %Om // move default stress: omskryf/omskrewe | ||||
_) om (sluier %Om // move default stress: omsluier and derivatives | _) om (sluier %Om // move default stress: omsluier and derivatives | ||||
ontering %Onte@r@N //ontering in compounds montering etc. | ontering %Onte@r@N //ontering in compounds montering etc. | ||||
_) on (tooCC %On // ontoombaar/-bare/-baarheid/ontoonbaar/-bare/-baarheid/ontoornig/-e/-heid | _) on (tooCC %On // ontoombaar/-bare/-baarheid/ontoonbaar/-bare/-baarheid/ontoornig/-e/-heid | ||||
onvoor (s %Onf%o@r //stress: onvoorsiens, onvoorstelbaar etc. | onvoor (s %Onf%o@r //stress: onvoorsiens, onvoorstelbaar etc. | ||||
onvoor (w %Onf%o@r //stress: onvoorwaardelik etc. | |||||
onome un'o@m@ // astronome/ekonome/gastronome | onome un'o@m@ // astronome/ekonome/gastronome | ||||
onomie unum'i // astronomie/ekonomie/gastronomie | onomie unum'i // astronomie/ekonomie/gastronomie | ||||
onomies un'o@mis // astronomies/-e/ekonomies/-e/gastronomies/-e | onomies un'o@mis // astronomies/-e/ekonomies/-e/gastronomies/-e | ||||
_) on (kruid On // restore default stress: onkruid/-doder and similar | _) on (kruid On // restore default stress: onkruid/-doder and similar | ||||
_) on (lus On // restore default stress: onlus/-te/onlusgebied, etc. | _) on (lus On // restore default stress: onlus/-te/onlusgebied, etc. | ||||
_) onnie Oni // onnie/-s; not on- prefix | _) onnie Oni // onnie/-s; not on- prefix | ||||
onom (stoot %On%Om // fix stress: onomstootbaar/onomstootlik and their derivatives | |||||
_) on (paar On // restore default stress: onpaar/-skoene | _) on (paar On // restore default stress: onpaar/-skoene | ||||
onreg (K Onr&x2 // stress: onreg/te/onregmatig | onreg (K Onr&x2 // stress: onreg/te/onregmatig | ||||
on (regv++ %On // stress: onregverdig/e/heid | on (regv++ %On // stress: onregverdig/e/heid | ||||
oor (heers %o@r // move default stress | oor (heers %o@r // move default stress | ||||
_) oor (hoofs %o@r // move default stress: oorhoofs/-e | _) oor (hoofs %o@r // move default stress: oorhoofs/-e | ||||
oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling | oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling | ||||
oor (koom %o@r // fix stress: (on)oorkoomlik/-e | |||||
oor (laaid %o@r // move default stress: oorlaaide/-s | oor (laaid %o@r // move default stress: oorlaaide/-s | ||||
oor (lams %o@r // move default stress: oorlams/-e/-heid | oor (lams %o@r // move default stress: oorlams/-e/-heid | ||||
_) oorlede o@rl'e@d@ // stress oorlede/ne/s | _) oorlede o@rl'e@d@ // stress oorlede/ne/s | ||||
parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg. | parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg. | ||||
parme (saan p%arm@ // move default stress: parmesaan(kaas) and compounds | parme (saan p%arm@ // move default stress: parmesaan(kaas) and compounds | ||||
paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds | paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds | ||||
parti (sa p%art%i // move default stress: partisaan/-ane | |||||
parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds | parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds | ||||
pase (lla p%as& // fix stress and a sound: pasella(tjie) and compounds | pase (lla p%as& // fix stress and a sound: pasella(tjie) and compounds | ||||
pa (sifi p%a // shorten a sound: pasifis/-me/-ties/-e | pa (sifi p%a // shorten a sound: pasifis/-me/-ties/-e | ||||
ry) pere (_ p@r@ // fix penultimate e sound: rypere | ry) pere (_ p@r@ // fix penultimate e sound: rypere | ||||
skam) pere (_ p@r@ ?? shorten 1st e in ending | skam) pere (_ p@r@ ?? shorten 1st e in ending | ||||
perfek p@rfEk // perfek/-te/-sie/-sionis | perfek p@rfEk // perfek/-te/-sie/-sionis | ||||
pergola p%&rx2o@l%a // move default stress: pergola/-s and compounds | |||||
perife (rA@ p%Er@f@ // fix stress and vowel sounds: periferie/-ë/periferaal/-ale | perife (rA@ p%Er@f@ // fix stress and vowel sounds: periferie/-ë/periferaal/-ale | ||||
peri (o p%e@r%i // stress: periode/-s and compounds | peri (o p%e@r%i // stress: periode/-s and compounds | ||||
peripa (t pEripa'' // fix stress and vowel sounds: peripateties/-e/peripatetikus/-se/peripatetici | peripa (t pEripa'' // fix stress and vowel sounds: peripateties/-e/peripatetikus/-se/peripatetici | ||||
puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivatives | puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivatives | ||||
pu (pil p%y // move default stress: pupil/-le and compounds | pu (pil p%y // move default stress: pupil/-le and compounds | ||||
puri (tein p%yr@ // fix stress and i sound: puritein/-e/-se | puri (tein p%yr@ // fix stress and i sound: puritein/-e/-se | ||||
pêrel p&:r@l // fix e sound: pêrelig/-e | |||||
.group q | .group q | ||||
rivier r@fi:r | rivier r@fi:r | ||||
_) ri (g rI // stress on 1st slb.: rigting/-loos/-vas, etc. | _) ri (g rI // stress on 1st slb.: rigting/-loos/-vas, etc. | ||||
robot (A ro@bOt_ // fix 2nd o sound, pause: robotarm/-oog/-oë | |||||
ron (dawel r%On // move default stress: rondawel/-s/-tjie | ron (dawel r%On // move default stress: rondawel/-s/-tjie | ||||
rond (borst r%Ont // move default stress: rondborstig/-e | rond (borst r%Ont // move default stress: rondborstig/-e | ||||
rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry | rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry | ||||
.group re | .group re | ||||
rea (ks r%ia // reaksie/s/skokreaksie | rea (ks r%ia // reaksie/s/skokreaksie | ||||
rea (C r%i%a // reageer/realis/me|ties | rea (C r%i%a // reageer/realis/me|ties | ||||
re (ageren r%i // fix stress and vowel sounds: reagerend/-e | |||||
re (bel r@ // move stress from 1st slb | re (bel r@ // move stress from 1st slb | ||||
recce rEki // fix e and c sounds: recce/-s | recce rEki // fix e and c sounds: recce/-s | ||||
re (dakC r@ // fix stress and e sound: redaksie/redakteur and compounds | re (dakC r@ // fix stress and e sound: redaksie/redakteur and compounds | ||||
re (kru r@ // move stress from 1st slb | re (kru r@ // move stress from 1st slb | ||||
_) re (la r@ // relaas/relase/relasie and compounds | _) re (la r@ // relaas/relase/relasie and compounds | ||||
rele (van r@l@ // relevansie/relevant and derivatives | rele (van r@l@ // relevansie/relevant and derivatives | ||||
re (liek r@ // fix stress and e sound: reliek/-e and compounds | |||||
reli (gi r@l@ // fix stress and e sound: religie/-ë/religieus | reli (gi r@l@ // fix stress and e sound: religie/-ë/religieus | ||||
reliëf r%e@l%iEf // fix stress and vowel sounds: reliëf and compounds | reliëf r%e@l%iEf // fix stress and vowel sounds: reliëf and compounds | ||||
rem (_ rEm // handrem/kabeltrem/kragrem/noodrem/skyfrem/stadstrem/veiligheidsrem | rem (_ rEm // handrem/kabeltrem/kragrem/noodrem/skyfrem/stadstrem/veiligheidsrem | ||||
_) 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 | ||||
spreekwoordeli spr%e@kvo@rd@l@ // move default stress: spreekwoordelik/-e, vs. spreekwoord | spreekwoordeli spr%e@kvo@rd@l@ // move default stress: spreekwoordelik/-e, vs. spreekwoord | ||||
springbok spr''INbOk // fix o sound: Springbokafrigter/-agterspeler; fix stress: Springbokklere | |||||
springbo (k spr''INbO // fix o sound: Springbokafrigter/-agterspeler; fix stress: Springbokklere | |||||
sproke spro@k@ // see rule: pro (CA pr%u : aangesprokene/onbesproke, etc. | sproke spro@k@ // see rule: pro (CA pr%u : aangesprokene/onbesproke, etc. | ||||
self (_ s'&lf // myself/vanself | self (_ s'&lf // myself/vanself | ||||
K) sewe (C s'e@v@ // sewejarige/standerdseweklas | K) sewe (C s'e@v@ // sewejarige/standerdseweklas | ||||
smelt sm< | smelt sm< | ||||
sodom (iet s,o@dOm // fix stress and 2nd o sound: sodomiet/-e | sodom (iet s,o@dOm // fix stress and 2nd o sound: sodomiet/-e | ||||
son (g@ sOn // songebakte/-brande/-bruinde/-droogde/songod | son (g@ sOn // songebakte/-brande/-bruinde/-droogde/songod | ||||
son (om s''On_ // fix 1st o sound, pause: sonomspoelde/-omgewe | |||||
sosial (i so@Sial' // sosialis/sosialisme/sosialisties | sosial (i so@Sial' // sosialis/sosialisme/sosialisties | ||||
so (v so@ // soveel/sover | so (v so@ // soveel/sover | ||||
soverre so@f'&r@ // stress: se rule: so (v s'o@ // soveel/sover | soverre so@f'&r@ // stress: se rule: so (v s'o@ // soveel/sover | ||||
spas (mod sp%as // move default stress: spasmodies/-e | |||||
speku (lA sp%Ek%y // spekulasie/spekuleer/spekulatief | speku (lA sp%Ek%y // spekulasie/spekuleer/spekulatief | ||||
@) sper (a sp@r' //desperate/desperaatheid/rasperagtig | @) sper (a sp@r' //desperate/desperaatheid/rasperagtig | ||||
ek) sper (im spEr // eksperimenteer/eksperimenteel | ek) sper (im spEr // eksperimenteer/eksperimenteel | ||||
spesialis (A spESialis | spesialis (A spESialis | ||||
spesialis spESal'Is | spesialis spESal'Is | ||||
spesi (f sp%Es%I // spesifiek/spesifiseer | spesi (f sp%Es%I // spesifiek/spesifiseer | ||||
stede (C ste@d@ // fix e sounds of many compounds and derivatives containing stede | |||||
ste (laan st@ // fix e sound: eerste-/ag(t)stelaan | |||||
spine (t sp%inE // move default stress: spinet/-te and compounds | |||||
%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 | ||||
suid (oos s%Yyt_ // move default stress and insert short break: suidoos/-te/-lik | suid (oos s%Yyt_ // move default stress and insert short break: suidoos/-te/-lik | ||||
suite swit@ // fix -ui-sound: suite/-s and compounds | suite swit@ // fix -ui-sound: suite/-s and compounds | ||||
sukses s%WksEs // sukses/suksesse/suksesvol/reusesukses | sukses s%WksEs // sukses/suksesse/suksesvol/reusesukses | ||||
sultana s%WltA:n%a // fix stress, keep last a short in compounds: sultana/-s | |||||
_) su (meri s%u // fix stress and u sound: sumeries/-e | _) su (meri s%u // fix stress and u sound: sumeries/-e | ||||
su (mmier s%W // move default stress: sumier/-e | su (mmier s%W // move default stress: sumier/-e | ||||
superintendent s,upr@nt%EndEnt // fix stress and vowel sounds: superintendent and compounds | superintendent s,upr@nt%EndEnt // fix stress and vowel sounds: superintendent and compounds | ||||
_) sw sw // fix w sound: words beginning with sw-: swerweling/swetend | _) sw sw // fix w sound: words beginning with sw-: swerweling/swetend | ||||
swaar (lyw sw%A:r // move default stress: swaarlywig/-e/-heid | swaar (lyw sw%A:r // move default stress: swaarlywig/-e/-heid | ||||
swaar (moed sw%A:r // move default stress: swaarmoedig/-e/-heid | swaar (moed sw%A:r // move default stress: swaarmoedig/-e/-heid | ||||
swag (K sv'ax2 | |||||
swag (K svax2 // dorps-/volkswag, etc. | |||||
swa (hili sw%a // fix stress and a sound: swahili/-'s | swa (hili sw%a // fix stress and a sound: swahili/-'s | ||||
_) swam (A@ swam_ // shorten a sound: swamagtig/-etend/-infeksie | _) swam (A@ swam_ // shorten a sound: swamagtig/-etend/-infeksie | ||||
swart (gal sw%art // move default stress: swartgallig | swart (gal sw%art // move default stress: swartgallig | ||||
stapel stA:p@l // fix e sound: (op)stapeling/stapelaar | stapel stA:p@l // fix e sound: (op)stapeling/stapelaar | ||||
staties st'A:tis | staties st'A:tis | ||||
sta (tutA st%a // fix stress and a sound: statute/statutêr | sta (tutA st%a // fix stress and a sound: statute/statutêr | ||||
êr) ste (_S3 st@ // preserve stress: elementêrste/primêrste, etc. | |||||
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 | ||||
ste (ke_ ste@ // fix e sound: by-/mes-/proefsteke | ste (ke_ ste@ // fix e sound: by-/mes-/proefsteke | ||||
steke (lig ste@k@ // fix 2nd e sound: stekelig/-e/-heid | |||||
C) steker ste@k@r // e sound: (aan/dop/kwaad/rugsteker/-s/-y, etc. | C) steker ste@k@r // e sound: (aan/dop/kwaad/rugsteker/-s/-y, etc. | ||||
_ne) stel st@l // fix e sound: nestel/-end | _ne) stel st@l // fix e sound: nestel/-end | ||||
wor) stel st@l //worstel e sound in compounds | wor) stel st@l //worstel e sound in compounds | ||||
ste (laan st@ // fix e sound: eerste-/ag(t)stelaan | |||||
ste (land st@ // fix e sound: vasteland and several compounds | ste (land st@ // fix e sound: vasteland and several compounds | ||||
@) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds | @) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds | ||||
&) stele (fo st&l@ // fix e sound in compounds: huis-/werkstelefoon/-fone | &) stele (fo st&l@ // fix e sound in compounds: huis-/werkstelefoon/-fone | ||||
mAre) ste (r st& // fix e sound: more/môrester/-re | mAre) ste (r st& // fix e sound: more/môrester/-re | ||||
stereo (ti st%e@r%i%u // fix stress and vowel sounds: stereotiep/-tipe/-tipeer | stereo (ti st%e@r%i%u // fix stress and vowel sounds: stereotiep/-tipe/-tipeer | ||||
sterf (K st&rf // fix e sound: uitsterf/weg(ge)sterf/kindersterfte | sterf (K st&rf // fix e sound: uitsterf/weg(ge)sterf/kindersterfte | ||||
sterk (_ st&rk // fix e sound: duiwel-/kapitaal-/stormsterk, etc. | |||||
@) sterkt st&rkt // compounds ending in sterkte | @) sterkt st&rkt // compounds ending in sterkte | ||||
stero (ïed st%e@r%u; // fix stress and vowel sounds: steroïed/-e | stero (ïed st%e@r%u; // fix stress and vowel sounds: steroïed/-e | ||||
bok) ster (t st&:r // fix e sound: bokstert/-e/-tjie/-s | bok) ster (t st&:r // fix e sound: bokstert/-e/-tjie/-s | ||||
teater t%iA:t@r // fix stress and e sound: teater and compounds | teater t%iA:t@r // fix stress and e sound: teater and compounds | ||||
tea (tra t%i%a // fix stress and vowel sounds: teatraal/teatrale | tea (tra t%i%a // fix stress and vowel sounds: teatraal/teatrale | ||||
teen (argu t''e@n // forse stress on 1st slb.: teenargument/-e/-asie | teen (argu t''e@n // forse stress on 1st slb.: teenargument/-e/-asie | ||||
te (dom t@ // fix e sound: idiotedom and similar | |||||
teen (oorges t%e@n_ // move default stress: teenoorgestel/-d/-e | teen (oorges t%e@n_ // move default stress: teenoorgestel/-d/-e | ||||
@A) te (geC t@ // fix e sound: Hugenotegemeente/stategebou and similar compounds | @A) te (geC t@ // fix e sound: Hugenotegemeente/stategebou and similar compounds | ||||
@C) te (gn t& //tegniek/iese and friends | @C) te (gn t& //tegniek/iese and friends | ||||
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< // fix d sound: veldreuk/-radio/-rantsoen, 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 | ||||
ver (reik f&:r // fix stress and e sound: verreikend/-e | ver (reik f&:r // fix stress and e sound: verreikend/-e | ||||
@) vers (_ f&rs // teksvers/slotvers/kindervers and similar | @) vers (_ f&rs // teksvers/slotvers/kindervers and similar | ||||
vers (album f&:rs_ // fix e sound: versalbum/-s | vers (album f&:rs_ // fix e sound: versalbum/-s | ||||
_) vers (b f&rs // fix e sound: versbundel/-bou/-boek | |||||
@) vers (e_ f&rs // plurals of words like the above | @) vers (e_ f&rs // plurals of words like the above | ||||
_) versf f''&rsf // fix stress and e sound: versfragment/-e | _) versf f''&rsf // fix stress and e sound: versfragment/-e | ||||
ver (sie_ f&:r //words ending in versie | ver (sie_ f&:r //words ending in versie | ||||
ver (sies_ f&:r //words ending in versies | ver (sies_ f&:r //words ending in versies | ||||
vers (panor f&:rs // fix stress and e sound: verspanorama/-s | vers (panor f&:rs // fix stress and e sound: verspanorama/-s | ||||
ver (spring f''&:r // fix stress and e sound: verspring/-er/-kompetisie | ver (spring f''&:r // fix stress and e sound: verspring/-er/-kompetisie | ||||
vers (v f&rs // fix e sound: versvorm/versvoete | |||||
verf (i f@rf //verfilm and compounds | verf (i f@rf //verfilm and compounds | ||||
ver (flenC f@r // verflenter and derivatives/verflens; see rule: verf (C f&rf | ver (flenC f@r // verflenter and derivatives/verflens; see rule: verf (C f&rf | ||||
ver (fris f@r // verfris and derivatives; see rule: verf (C f&rf | ver (fris f@r // verfris and derivatives; see rule: verf (C f&rf | ||||
voort (v@@ f%o@rt // voortvarend/voortvlugtige | voort (v@@ f%o@rt // voortvarend/voortvlugtige | ||||
_) vooruit fo@r_'Yyt // vooruit/vooruitsig/vooruitbeplanning | _) vooruit fo@r_'Yyt // vooruit/vooruitsig/vooruitbeplanning | ||||
vooruit (strew fo@rYyt' // change stress | vooruit (strew fo@rYyt' // change stress | ||||
voorwaard (_ f%o@rvA:rd // stress: (on)voorwaardelik | |||||
voorwaarde (_ f%o@rvA:rd@ // stress: (on)voorwaardelik | |||||
voorwaarde (_N fo@rvA:rd@ // fix stress: voorwaarde/-s | |||||
vor (_ _^_EN //words ending in vor is English | vor (_ _^_EN //words ending in vor is English | ||||
vorm fOr@m | vorm fOr@m | ||||
vorsti (n fOrst'I // fix stress: vorstin/-ne/-netjie and compounds | vorsti (n fOrst'I // fix stress: vorstin/-ne/-netjie and compounds | ||||
&s) w (eefs v // fix w sound: compounds like -sweefsel/tuisweefstof, etc. | &s) w (eefs v // fix w sound: compounds like -sweefsel/tuisweefstof, etc. | ||||
@s) w (enn v // fix w sound: beurs-/groeps-/klas-/naas-/pryswenner/-wennende | @s) w (enn v // fix w sound: beurs-/groeps-/klas-/naas-/pryswenner/-wennende | ||||
_) web vEb //webadres/se, webarea etc. | _) web vEb //webadres/se, webarea etc. | ||||
As) weer (_ ve@r // fix w sound: kusweer/ysweer, etc. | |||||
AAs) w (enk v // fix w sound: kombuis-/nuus-/sweiswenk/-e | AAs) w (enk v // fix w sound: kombuis-/nuus-/sweiswenk/-e | ||||
plaas) w (erC v // fix w sound: plaaswerf/-werwe | plaas) w (erC v // fix w sound: plaaswerf/-werwe | ||||
s) w (oeling v // fix w sound: koors-/geesteswoelinge | |||||
s) w (ou v // fix w sound: bamboeswoud/keerkringswoud and similar | s) w (ou v // fix w sound: bamboeswoud/keerkringswoud and similar | ||||
s) w (r v // fix w sound: skeepswrak/sielswroeging/aardswreedheid | s) w (r v // fix w sound: skeepswrak/sielswroeging/aardswreedheid | ||||
wreed (a vre@t_ // fix d sound and insert short pause: wreedaard/-s | wreed (a vre@t_ // fix d sound and insert short pause: wreedaard/-s | ||||
weer (leg w%e@r // move default stress: (on)weerlegbaar | weer (leg w%e@r // move default stress: (on)weerlegbaar | ||||
weer (strew v%e@r // move default stress: weerstrewig/-e/-heid | weer (strew v%e@r // move default stress: weerstrewig/-e/-heid | ||||
@) wees (_ ve@s // fix w sound: siekwees/volkwees | @) wees (_ ve@s // fix w sound: siekwees/volkwees | ||||
weet (gierig v%e@t // move default stress: weetgierig/-e/-heid | |||||
@) weg (_ v&x2 // blindweg/botweg and many similar | @) weg (_ v&x2 // blindweg/botweg and many similar | ||||
spoor) weg v&x2 // fix e sound: spoorwegaanleg/-aansluiting/-amptenaar/-eiendom/-inkomste/-ongeluk... | spoor) weg v&x2 // fix e sound: spoorwegaanleg/-aansluiting/-amptenaar/-eiendom/-inkomste/-ongeluk... | ||||
_) wegge (C@P5 v'&x2@ // prefix: weggeja and similar | _) wegge (C@P5 v'&x2@ // prefix: weggeja and similar | ||||
.group y | .group y | ||||
y eI | y eI | ||||
%C) y (_ _^_EN // English: Betty/Eddy/Harry/Molly/Penny/Tommy | %C) y (_ _^_EN // English: Betty/Eddy/Harry/Molly/Penny/Tommy | ||||
skapp) y (_ %eI // compounds like: handels-/versekerings-/verskepingsmaatskappy | |||||
york j'O:k //new-yorkse and may be others | york j'O:k //new-yorkse and may be others | ||||
ysterre (lin eIst@re@ // fix e sound: ysterreling/-s | ysterre (lin eIst@re@ // fix e sound: ysterreling/-s | ||||
| |||||
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Spelling-to-phoneme words for Danish | // Spelling-to-phoneme words for Danish | ||||
_cir s'3:kVmfl,Eks | _cir s'3:kVmfl,Eks | ||||
_dia 'umlaut | _dia 'umlaut | ||||
_dot wiDd'0tabVv | _dot wiDd'0tabVv | ||||
_grv gr'a:v | |||||
_grv aks'aN gr'a:v | |||||
_hac h'atS,Ek | _hac h'atS,Ek | ||||
_mcn m'akr,0n | _mcn m'akr,0n | ||||
_ogo '0g0n,Ek | _ogo '0g0n,Ek | ||||
_, koma: | _, koma: | ||||
_; se:mi:ko:lVn | _; se:mi:ko:lVn | ||||
_: ko:lVn | _: ko:lVn | ||||
_. pun^tum | |||||
_. puNtum | |||||
_? spWrgsmVlstajn | _? spWrgsmVlstajn | ||||
_! udRVbstejn | _! udRVbstejn | ||||
_- binnesdrai | _- binnesdrai | ||||
__ bOndsdrai | |||||
__ b'Onsdrai | |||||
& ou | & ou | ||||
£ pun? | £ pun? | ||||
€ euro | € euro | ||||
© kopyrajt | © kopyrajt | ||||
÷ divid'eReD meD | |||||
= l'imeD | = l'imeD | ||||
# n'OmV | # n'OmV | ||||
§ paragr'af | |||||
// numbers | // numbers | ||||
_0 'nOl | _0 'nOl | ||||
_1 'e:n | _1 'e:n | ||||
l El | l El | ||||
m Em | m Em | ||||
n En | n En | ||||
o o | |||||
p pe: | p pe: | ||||
q ku: | q ku: | ||||
r Er | r Er | ||||
eget a:j@D | eget a:j@D | ||||
egne a:in@ | egne a:in@ | ||||
enter entV | enter entV | ||||
ide id'e // idea | |||||
igen igen | igen igen | ||||
Ny ny // new | Ny ny // new | ||||
også Vs@ // also | også Vs@ // also | ||||
sagde sa@ // said | sagde sa@ // said | ||||
sig sAi // oneself | sig sAi // oneself | ||||
Phonemes which are used in the *_rules and *_list files | Phonemes which are used in the *_rules and *_list files | ||||
Dictionary zhy_dict | |||||
a aa aai aan aau ai au e | |||||
ei eo eoi eu i iu o oe | |||||
oi ong ou u ui yu | |||||
b c d f g h j k | |||||
l m n N p r s t | |||||
tS v w z | |||||
Dictionary fr_dict | |||||
@ @- @2 a A~ e E E2 | |||||
E: E~ i i- i: o O o2 | |||||
O2 o3 O~ u u: W w^i wA | |||||
W~ y Y | |||||
: b d dZ f g h j | |||||
k l m n N n2 n^ p | |||||
p2 r R r2 s S t t2 | |||||
t3 tS v w z Z z2 z3 | |||||
Dictionary nl_dict | |||||
8 @ @- A a: E e: EI | |||||
eU i I O O: o: u VU | |||||
Wy y Y: yU | |||||
* : ; b C d f g | |||||
h j k l m n N n^ | |||||
p Q r s S t tS v | |||||
v2 w x z | |||||
Dictionary jbo_dict | |||||
@ a aI aU e eI i l- | |||||
o oI r- u | |||||
- b d dZ f g h j | |||||
k l m n N p R s | |||||
S t tS v w x z Z | |||||
Dictionary hu_dict | |||||
A a: E e: i i: o o: | |||||
u u: Y y y: Y: | |||||
: b c C d dZ f g | |||||
h j J k l l^ m n | |||||
N n^ p R R2 s S s2 | |||||
t tS ts v z Z | |||||
Dictionary hy_dict | |||||
Dictionary af_dict | |||||
@ a aI e eI i i@ o | |||||
u W y | |||||
& &: 3: @ @- @L @U a | |||||
A: aI AI aU A~ E e: e@ | |||||
eI e~ I i iu O O: o@ | |||||
OI oI o~ u uI W y Y@ | |||||
Yy | |||||
** b c d dZ dz f g | |||||
h j k k# l m n p | |||||
p# r R r" s S t t# | |||||
tS ts ts# v X z Z | |||||
- : ; ? b c d dZ | |||||
f g h j k l L m | |||||
n N p r s S t T | |||||
tS v w x x2 z Z | |||||
Dictionary zh_dict | |||||
Dictionary bn_dict | |||||
@ @r a A ai Au E ei | |||||
i i. i[ iA iE io iou N- | |||||
o o- ong ou u u@ ua uai | |||||
uei uo y y& y@ yE yi yu | |||||
& a a: a~ e E e~ i | |||||
I i: i:~ i~ l- o O o: | |||||
O~ o~ r- U u u: u:~ u~ | |||||
V | |||||
; C f h j k kh l | |||||
L m n N p ph q r | |||||
R s s. S; t th ts ts. | |||||
ts. tS; tS; tsh v w x X | |||||
z. | |||||
* b B bh c C ch d | |||||
d. dh dh. g gh h j J | |||||
Jh k kh l m n N n. | |||||
n^ p ph Q r r. s S | |||||
s. t t. th th. tS x z | |||||
Dictionary ca_dict | Dictionary ca_dict | ||||
v# w z Z Z; | v# w z Z Z; | ||||
Dictionary af_dict | |||||
Dictionary cs_dict | |||||
& &: 3: @ @- @L @U a | |||||
A: aI AI aU A~ E e: e@ | |||||
eI e~ I i iu O O: o@ | |||||
OI oI o~ u uI W y Y@ | |||||
Yy | |||||
@- a a: aU e e: eI eU | |||||
i i: l- o o: oU r- u | |||||
u: | |||||
- : ; ? b c d dZ | |||||
f g h j k l L m | |||||
n N p r s S t T | |||||
tS v w x x2 z Z | |||||
* ; b c d dZ dz f | |||||
g h j J k l l^ m | |||||
n N n^ p r R R^ R^/ | |||||
s S t tS ts v x z | |||||
Z | |||||
Dictionary id_dict | |||||
Dictionary cy_dict | |||||
@ a aI aU e E E2 i | |||||
o O u | |||||
@ @- @I @Y a A: aI aU | |||||
AY aY E e: eU I i: Iu | |||||
O o: OI OY U u: uY V | |||||
Y y: Yu | |||||
* : ? 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 C d D dZ f g | |||||
h j k l L m n N | |||||
p r s S t T v w | |||||
x z | |||||
Dictionary da_dict | |||||
& 0 3 @ @- a A e | |||||
E i o O u V W y | |||||
Y | |||||
* - : ; ? b d D | |||||
dZ f g h j k l L | |||||
m n N p r R s S | |||||
t tS v w | |||||
Dictionary de_dict | |||||
3 @ @- a A A: aI aU | |||||
E E2 E: e: EI I i2 i: | |||||
O o: OY U u: W y y: | |||||
Y: | |||||
* : ; b C C2 d D | |||||
dZ f g h j k l m | |||||
n N p pF r s S t | |||||
tS ts v x z Z | |||||
Dictionary el_dict | Dictionary el_dict | ||||
x z Z | x z Z | ||||
Dictionary cs_dict | |||||
Dictionary eo_dict | |||||
@- a a: aU e e: eI eU | |||||
i i: l- o o: oU r- u | |||||
u: | |||||
@- a aI aU e eI eU i | |||||
o oI u uI | |||||
* ; b c d dZ dz f | |||||
g h j J k l l^ m | |||||
n N n^ p r R R^ R^/ | |||||
s S t tS ts v x z | |||||
Z | |||||
* - b d dZ f g h | |||||
j k l m n p r R | |||||
s S t T tS ts v w | |||||
x z Z | |||||
Dictionary es_dict | |||||
a aI aU e E eI eU i | |||||
o O oI u | |||||
* ** : b B d D f | |||||
g j J J^ k l m n | |||||
N n^ p Q R R2 s t | |||||
T tS v v# w x z | |||||
Dictionary eu_dict | |||||
a aI aU e eI eU i o | |||||
oI u Y | |||||
* ** : ; b B c d | |||||
D f g h j J k l | |||||
l^ m n n^ p Q r R | |||||
s S t tS ts tz v w | |||||
x z | |||||
Dictionary fi_dict | |||||
& &i &y a a2 ai au e | |||||
ei eu ey i I ie iu iy | |||||
o oi ou u ui uo Y y | |||||
Yi yi Yy yY | |||||
: b d f g h j k | |||||
l m n N p r s S | |||||
s2 t v w Z | |||||
Dictionary fr_dict | |||||
@ @- @2 a A~ e E E2 | |||||
E: E~ i i- i: o O o2 | |||||
O2 o3 O~ u u: W w^i wA | |||||
W~ y Y | |||||
: b d dZ f g h j | |||||
k l m n N n2 n^ p | |||||
p2 r R r2 s S t t2 | |||||
t3 tS v w z Z z2 z3 | |||||
Dictionary grc_dict | Dictionary grc_dict | ||||
T v x z | T v x z | ||||
Dictionary cy_dict | |||||
@ @- @I @Y a A: aI aU | |||||
AY aY E e: eU I i: Iu | |||||
O o: OI OY U u: uY V | |||||
Y y: Yu | |||||
: b C d D dZ f g | |||||
h j k l L m n N | |||||
p r s S t T v w | |||||
x z | |||||
Dictionary hbs_dict | Dictionary hbs_dict | ||||
& @ @2 a A a: aI aU | & @ @2 a A a: aI aU | ||||
t tS ts tS; v x z Z | t tS ts tS; v x z Z | ||||
Dictionary it_dict | |||||
Dictionary hi_dict | |||||
@- a a/ aI aU e E eI | |||||
i I o O u | |||||
@ @- @2 @3 a a: aI aU | |||||
e E e: E: E~ i I i: | |||||
l- o O o: O: O~ o~ r- | |||||
U u: u~ V | |||||
* : ; b d dZ f g | |||||
h j k l l^ m n N | |||||
n^ p r R s S t tS | |||||
ts v w w2 z | |||||
- : b bh c ch d d. | |||||
dh dh. f g gh h H j | |||||
J Jh k kh l l. m n | |||||
N n. n^ p ph Q q r | |||||
r. s S s. t T t. th | |||||
th. v w x z | |||||
Dictionary sk_dict | |||||
Dictionary hu_dict | |||||
& @- a a: e e: i i: | |||||
l- l: o o: oU r- r: u | |||||
u: | |||||
A a: E e: i i: o o: | |||||
u u: Y y y: Y: | |||||
* ; b d d; dZ dz f | |||||
g h j k l l^ m n | |||||
N n^ p r R R^ R^/ s | |||||
S t t; tS ts v x z | |||||
Z | |||||
: b c C d dZ f g | |||||
h j J k l l^ m n | |||||
N n^ p R R2 s S s2 | |||||
t tS ts v z Z | |||||
Dictionary ku_dict | |||||
Dictionary hy_dict | |||||
8 a e E E# eI eU i | |||||
I o u U y | |||||
@ a aI e eI i i@ o | |||||
u W y | |||||
* : b c d dZ f g | |||||
h j J k l m n p | |||||
q r R s S t tS v | |||||
w x z Z | |||||
** b c d dZ dz f g | |||||
h j k k# l m n p | |||||
p# r R r" s S t t# | |||||
tS ts ts# v X z Z | |||||
Dictionary sq_dict | |||||
Dictionary id_dict | |||||
@ @/ a A a/ aI E e | |||||
eI i I I# O OI u V | |||||
y yE | |||||
@ a aI aU e E E2 i | |||||
o O u | |||||
** : ; b c d D dZ | |||||
dz dZ; f g h j k l | |||||
L ll m n n^ p r R | |||||
R2 s S t T tS ts v | |||||
w z 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 sw_dict | |||||
Dictionary is_dict | |||||
@- a a/ e i m- n- N- | |||||
o u | |||||
& @- a aI aU e E eI | |||||
i I o O oU oU2 u W | |||||
y y# Yy | |||||
* : b d D f g h | |||||
j J k l m n N n^ | |||||
p Q R s S t T tS | |||||
v w x z | |||||
* ** : ; b c C d | |||||
D f g h j J k l | |||||
l# m m# n N n# N# n^ | |||||
n^# p Q r R r# R2 s | |||||
s2 t T tl# v x z | |||||
Dictionary fi_dict | |||||
Dictionary it_dict | |||||
& &i &y a a2 ai au e | |||||
ei eu ey i I ie iu iy | |||||
o oi ou u ui uo Y y | |||||
Yi yi Yy yY | |||||
@- a a/ aI aU e E eI | |||||
i I o O u | |||||
: b d f g h j k | |||||
l m n N p r s S | |||||
s2 t v w Z | |||||
* : ; b d dZ f g | |||||
h j k l l^ m n N | |||||
n^ p r R s S t tS | |||||
ts v w w2 z | |||||
Dictionary pl_dict | |||||
Dictionary jbo_dict | |||||
a E E# E~ i O O~ u | |||||
y | |||||
@ a aI aU e eI i l- | |||||
o oI r- u | |||||
: ; b c C d d; dZ | |||||
dz dz; f g h j k l | |||||
m n N n^ p r R s | |||||
S s; S; t t; tS ts ts; | |||||
tS; v w x z Z Z; | |||||
- b d dZ f g h j | |||||
k l m n N p R s | |||||
S t tS v w x z Z | |||||
Dictionary no_dict | |||||
Dictionary kn_dict | |||||
@ @2 a A a: A: AI aI | |||||
aU E E: e: I i: O o: | |||||
OI U u- u-: u-I u: W y | |||||
y: Y: Yy | |||||
a a: aI aU e E e: i | |||||
I i: o o: r- u u: V | |||||
y | |||||
: ; b d f g h j | |||||
k l m n N p r R | |||||
s S s; t v w x z | |||||
: b bh c ch d d. dh | |||||
dh. dZ f g gh h j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph R R2 s S | |||||
s. S; t t. th th. tS v | |||||
w z | |||||
Dictionary vi_dict | |||||
Dictionary ku_dict | |||||
@ @: @:I @:U @I @U a a: | |||||
a:I a:U aI aU E e eU EU | |||||
i i@ iU O o OI oI u | |||||
u@ uI y y@ yI | |||||
8 a e E E# eI eU i | |||||
I o u U y | |||||
b c d D f g h j | |||||
J k kh l m n N n^ | |||||
p Q r s s. t t[ ts; | |||||
tS; v w x z Z z. | |||||
* : b c d dZ f g | |||||
h j J k l m n p | |||||
q r R s S t tS v | |||||
w x z Z | |||||
Dictionary ro_dict | |||||
Dictionary la_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 | |||||
@- a a: aI aU E e: EU | |||||
I i: O o: OI U u: y | |||||
y: | |||||
* *; - 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; | |||||
* : ; <h> ? b d f | |||||
g h j k l m n N | |||||
p r R s t w z | |||||
Dictionary lv_dict | Dictionary lv_dict | ||||
tS ts v z Z | tS ts v z Z | ||||
Dictionary pt_dict | |||||
Dictionary mk_dict | |||||
& &/ &U~ &~ @ @- a A | |||||
aI aU e E eI EI eU EU | |||||
i I i/ iU o O oI OI | |||||
o~ u U uI u~ y | |||||
& @ @- @2 a A a: E | |||||
e e: i I i: l- o o: | |||||
oU r- u u: | |||||
* : ; b C d dZ f | |||||
g h j k l l^ m n | |||||
N n^ p Q r R r- s | |||||
S s# s; t T tS ts v | |||||
w x z Z | |||||
* b d dZ dz dZ; f g | |||||
h j k k^ l l^ m n | |||||
N n^ p r R s S t | |||||
tS ts tS; v x z Z | |||||
Dictionary tr_dict | |||||
Dictionary ml_dict | |||||
a e E i I o O u | |||||
U u# W y Y | |||||
a a: aI aU e E e: i | |||||
I i: o o: r- u u: V | |||||
y | |||||
* : b c d dZ f g | |||||
h j J k l m n p | |||||
Q r R s S t tS v | |||||
w z Z | |||||
: b bh c ch d d. dh | |||||
dh. dZ f g gh h j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph R R2 s s. | |||||
S; t t. th th. tS v w | |||||
z z. | |||||
Dictionary ru_dict | |||||
Dictionary mn_dict | |||||
8 @- A a E e E# E2 | |||||
E3 i I I# I2 I3 I^ ja | |||||
ju o O u u" u# V V# | |||||
y Y | |||||
a e i o O o: U u | |||||
* ; b d d; dZ; f g | |||||
j k l l^ m m; n n^ | |||||
p r R s S s; S; t | |||||
t; ts ts; tS; v x z Z | |||||
z; Z; | |||||
: ; c f g j k L | |||||
m n p p# R s S t | |||||
t# tS ts ts# w x | |||||
Dictionary eo_dict | |||||
Dictionary ne_dict | |||||
@- a aI aU e eI eU i | |||||
o oI u uI | |||||
@ @/ @2 @3 a aI aU a~ | |||||
e E eI eU e~ E~ i I | |||||
i~ l- o O o: oI oU O~ | |||||
o~ r- u uI u~ V VI VU | |||||
V~ | |||||
* - b d dZ f g h | |||||
j k l m n p r R | |||||
s S t T tS ts v w | |||||
x z Z | |||||
- : b bh c ch d d. | |||||
dh f g gh h H j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph Q q r r. | |||||
s S s. t T t. th v | |||||
w x z z. | |||||
Dictionary mk_dict | |||||
Dictionary nl_dict | |||||
& @ @- @2 a A a: E | |||||
e e: i I i: l- o o: | |||||
oU r- u u: | |||||
8 @ @- A a: E e: EI | |||||
eU i I O O: o: u VU | |||||
Wy y Y: yU | |||||
* b d dZ dz dZ; f g | |||||
h j k k^ l l^ m n | |||||
N n^ p r R s S t | |||||
tS ts tS; v x z Z | |||||
* : ; b C d f g | |||||
h j k l m n N n^ | |||||
p Q r s S t tS v | |||||
v2 w x z | |||||
Dictionary es_dict | |||||
Dictionary no_dict | |||||
a aI aU e E eI eU i | |||||
o O oI u | |||||
@ @2 a A a: A: AI aI | |||||
aU E E: e: I i: O o: | |||||
OI U u- u-: u-I u: W y | |||||
y: Y: Yy | |||||
* ** : b B d D f | |||||
g j J J^ k l m n | |||||
N n^ p Q R R2 s t | |||||
T tS v v# w x z | |||||
: ; b d f g h j | |||||
k l m n N p r R | |||||
s S s; t v w x z | |||||
Dictionary is_dict | |||||
Dictionary pap_dict | |||||
& @- a aI aU e E eI | |||||
i I o O oU oU2 u W | |||||
y y# Yy | |||||
a a/ aI e E eI i o | |||||
O u y Y | |||||
* ** : ; b c C d | |||||
D f g h j J k l | |||||
l# m m# n N n# N# n^ | |||||
n^# p Q r R r# R2 s | |||||
s2 t T tl# v x z | |||||
: ? b d dZ f g h | |||||
j k l m n N n^ p | |||||
R s S t tS v w x | |||||
z Z | |||||
Dictionary da_dict | |||||
Dictionary pa_dict | |||||
& 0 3 @ @- a A e | |||||
E i o O u V W y | |||||
Y | |||||
@ a a~ e E e~ E~ i | |||||
I i~ I~ o O O~ o~ r- | |||||
U u u~ U~ V V~ | |||||
* - : ; ? b d D | |||||
dZ f g h j k l L | |||||
m n N n^ p r R s | |||||
S t tS v w | |||||
: ; b bh c ch d d. | |||||
dh dh. f g gh h H j | |||||
J Jh k kh l l. m n | |||||
N n. n^ p ph Q R R2 | |||||
s S t t. th th. v x | |||||
z | |||||
Dictionary de_dict | |||||
Dictionary pl_dict | |||||
3 @ @- a A A: aI aU | |||||
E E2 E: e: EI I i2 i: | |||||
O o: OY U u: W y y: | |||||
Y: | |||||
a E E# E~ i O O~ u | |||||
y | |||||
* : ; b C C2 d D | |||||
dZ f g h j k l m | |||||
n N p pF r s S t | |||||
tS ts v x z Z | |||||
: ; b c C d d; dZ | |||||
dz dz; f g h j k l | |||||
m n N n^ p r R s | |||||
S s; S; t t; tS ts ts; | |||||
tS; v w x z Z Z; | |||||
Dictionary sv_dict | |||||
Dictionary prs_dict | |||||
8 @ a a2 A: E E- e: | |||||
E: I i: O o: U u- u: | |||||
W y y: Y: | |||||
@ A i o | |||||
: ; b d f g h j | |||||
k l m n N p R s | |||||
S s. S; sx t v w z | |||||
b d h l t X | |||||
Dictionary la_dict | |||||
Dictionary pt_dict | |||||
@- a a: aI aU E e: EU | |||||
I i: O o: OI U u: y | |||||
y: | |||||
& &/ &U~ &~ @ @- a A | |||||
aI aU e E eI EI eU EU | |||||
i I i/ iU o O oI OI | |||||
o~ u U uI u~ y | |||||
* : ; <h> ? b d f | |||||
g h j k l m n N | |||||
p r R s t w z | |||||
* : ; b C d dZ f | |||||
g h j k l l^ m n | |||||
N n^ p Q r R r- s | |||||
S s# s; t T tS ts v | |||||
w x z Z | |||||
Dictionary hi_dict | |||||
Dictionary ro_dict | |||||
@ @- @2 @3 a a: aI aU | |||||
e E e: E: E~ i I i: | |||||
l- o O o: O: O~ o~ r- | |||||
U u: u~ V | |||||
@ @- @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 bh c ch d d. | |||||
dh dh. f g gh h H j | |||||
J Jh k kh l l. m n | |||||
N n. n^ p ph Q q r | |||||
r. s S s. t T t. th | |||||
th. v w x z | |||||
* *; - 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 ta_dict | |||||
Dictionary ru_dict | |||||
a a: aI aU e E e: i | |||||
I i: o o: U u u: V | |||||
8 @- A a E e E# E2 | |||||
E3 i I I# I2 I3 I^ ja | |||||
ju o O u u" u# V V# | |||||
y Y | |||||
: ; b C d d. dZ f | |||||
g h j k l l. m n | |||||
N n. n^ p r R s S | |||||
s. t t. th tS v w z | |||||
z. | |||||
* ; b d d; dZ; f g | |||||
j k l l^ m m; n n^ | |||||
p r R s S s; S; t | |||||
t; ts ts; tS; v x z Z | |||||
z; Z; | |||||
Dictionary bn_dict | |||||
Dictionary rw_dict | |||||
& a a: a~ e E e~ i | |||||
I i: i:~ i~ l- o O o: | |||||
O~ o~ r- U u u: u:~ u~ | |||||
V | |||||
a e i o u | |||||
* b B bh c C ch d | |||||
d. dh dh. g gh h j J | |||||
Jh k kh l m n N n. | |||||
n^ p ph Q r r. s S | |||||
s. t t. th th. tS x z | |||||
* : b B c d dZ f | |||||
g h j J k l m n | |||||
N n^ p q R s S S; | |||||
t tS v w x z | |||||
Dictionary eu_dict | |||||
Dictionary sk_dict | |||||
a aI aU e eI eU i o | |||||
oI u Y | |||||
& @- a a: e e: i i: | |||||
l- l: o o: oU r- r: u | |||||
u: | |||||
* ** : ; b B c d | |||||
D f g h j J k l | |||||
l^ m n n^ p Q r R | |||||
s S t tS ts tz v w | |||||
x z | |||||
* ; b d d; dZ dz f | |||||
g h j k l l^ m n | |||||
N n^ p r R R^ R^/ s | |||||
S t t; tS ts v x z | |||||
Z | |||||
Dictionary kn_dict | |||||
Dictionary sq_dict | |||||
a a: aI aU e E e: i | |||||
I i: o o: r- u u: V | |||||
y | |||||
@ @/ a A a/ aI E e | |||||
eI i I I# O OI u V | |||||
y yE | |||||
: b bh c ch d d. dh | |||||
dh. dZ f g gh h j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph R R2 s S | |||||
s. S; t t. th th. tS v | |||||
w z | |||||
** : ; b c d D dZ | |||||
dz dZ; f g h j k l | |||||
L ll m n n^ p r R | |||||
R2 s S t T tS ts v | |||||
w z Z | |||||
Dictionary ml_dict | |||||
Dictionary sv_dict | |||||
a a: aI aU e E e: i | |||||
I i: o o: r- u u: V | |||||
y | |||||
8 @ a a2 A: E E- e: | |||||
E: I i: O o: U u- u: | |||||
W y y: Y: | |||||
: b bh c ch d d. dh | |||||
dh. dZ f g gh h j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph R R2 s s. | |||||
S; t t. th th. tS v w | |||||
z z. | |||||
: ; b d f g h j | |||||
k l m n N p R s | |||||
S s. S; sx t v w z | |||||
Dictionary mn_dict | |||||
Dictionary sw_dict | |||||
a e i o O o: U u | |||||
@- a a/ e i m- n- N- | |||||
o u | |||||
: ; c f g j k L | |||||
m n p p# R s S t | |||||
t# tS ts ts# w x | |||||
* : b d D f g h | |||||
j J k l m n N n^ | |||||
p Q R s S t T tS | |||||
v w x z | |||||
Dictionary ne_dict | |||||
Dictionary ta_dict | |||||
@ @/ @2 @3 a aI aU a~ | |||||
e E eI eU e~ E~ i I | |||||
i~ l- o O o: oI oU O~ | |||||
o~ r- u uI u~ V VI VU | |||||
V~ | |||||
a a: aI aU e E e: i | |||||
I i: o o: U u u: V | |||||
- : b bh c ch d d. | |||||
dh f g gh h H j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph Q q r r. | |||||
s S s. t T t. th v | |||||
w x z z. | |||||
: ; b C d d. dZ f | |||||
g h H j k l l. m | |||||
n N n. n^ p r R s | |||||
S s. t t. th tS v w | |||||
z z. | |||||
Dictionary pap_dict | |||||
Dictionary tr_dict | |||||
a a/ aI e E eI i o | |||||
O u y Y | |||||
a e E i I o O u | |||||
U u# W y Y | |||||
: ? b d dZ f g h | |||||
j k l m n N n^ p | |||||
R s S t tS v w x | |||||
z Z | |||||
* : b c d dZ f g | |||||
h j J k l m n p | |||||
Q r R s S t tS v | |||||
w z Z | |||||
Dictionary rw_dict | |||||
Dictionary vi_dict | |||||
a e i o u | |||||
@ @: @:I @:U @I @U a a: | |||||
a:I a:U aI aU E e eU EU | |||||
i i@ iU O o OI oI u | |||||
u@ uI y y@ yI | |||||
* : b B c d dZ f | |||||
g h j J k l m n | |||||
N n^ p q R s S S; | |||||
t tS v w x z | |||||
b c d D f g h j | |||||
J k kh l m n N n^ | |||||
p Q r s s. t t[ ts; | |||||
tS; v w x z Z z. | |||||
Dictionary pa_dict | |||||
Dictionary zh_dict | |||||
@ a a~ e E e~ E~ i | |||||
I i~ I~ o O O~ o~ r- | |||||
U u u~ U~ V V~ | |||||
@ @r a A ai Au E ei | |||||
i i. i[ iA iE io iou N- | |||||
o o- ong ou u u@ ua uai | |||||
uei uo y y& y@ yE yi yu | |||||
: ; b bh c ch d d. | |||||
dh dh. f g gh H j J | |||||
Jh k kh l l. m n N | |||||
n. n^ p ph Q R s S | |||||
t t. th th. v x z | |||||
(u) ; C f h j k kh | |||||
l L m n N p ph q | |||||
r s s. S; t th ts ts. | |||||
ts. tS; tS; tsh v w x X | |||||
z. | |||||
Dictionary prs_dict | |||||
Dictionary zhy_dict | |||||
@ A i o | |||||
a aa aai aan aau ai au e | |||||
ei eo eoi eu i iu o oe | |||||
oi ong ou u ui yu | |||||
b d h l t X | |||||
b c d f g h j k | |||||
l m n N p r s t | |||||
tS v w z |
_?? sImb@L | _?? sImb@L | ||||
_#9 tab | _#9 tab | ||||
_#32 speIs | _#32 speIs | ||||
… _::d%0td,0t // for elipsis or ... while reading | |||||
_ hA@dspeIs // U+00A0 no-break-space | _ hA@dspeIs // U+00A0 no-break-space | ||||
_! Ekskl@m'eIS@n | _! Ekskl@m'eIS@n | ||||
academe a2kad@mI | academe a2kad@mI | ||||
access aksEs $onlys | access aksEs $onlys | ||||
access aksEs $verb | access aksEs $verb | ||||
accouche a2ku:S | |||||
accouchement a2ku:SmO~ | |||||
acer eIs3 | acer eIs3 | ||||
aces eIsI2z | aces eIsI2z | ||||
acetylene a2sEt@li:n | acetylene a2sEt@li:n | ||||
moustache m@st'aaS | moustache m@st'aaS | ||||
mouths maUDz $only | mouths maUDz $only | ||||
movies mu:vI2z | movies mu:vI2z | ||||
multitude $1 | |||||
multiplexer $1 | |||||
mundane $2 | mundane $2 | ||||
murmur m3:m3 | murmur m3:m3 | ||||
?5 murmur mVRm3 | ?5 murmur mVRm3 | ||||
nocturnal $2 | nocturnal $2 | ||||
nomenclature n@mENkl@tS3 | nomenclature n@mENkl@tS3 | ||||
nonsense n0ns@ns | nonsense n0ns@ns | ||||
nonetheless n0nD@l'Es | |||||
nonetheless nVnD@l'Es | |||||
nosedive noUzdaIv | nosedive noUzdaIv | ||||
not noUt // for noted, notable, etc | not noUt // for noted, notable, etc | ||||
nott n0t | nott n0t | ||||
pastry peIstrI | pastry peIstrI | ||||
pate pateI | pate pateI | ||||
pathos peIT0s | pathos peIT0s | ||||
paypal peIpal | |||||
pear pe@ | pear pe@ | ||||
peculiar pI2kju:lI3 | peculiar pI2kju:lI3 | ||||
pedalo pEd@loU | pedalo pEd@loU | ||||
Graham greI@m | Graham greI@m | ||||
Hadrian heIdri:@n | Hadrian heIdri:@n | ||||
Harriet hari@t | Harriet hari@t | ||||
Hugh hju: | |||||
Hughes hju:z | |||||
Huw hju: | Huw hju: | ||||
Iain i:@n | Iain i:@n | ||||
Ian i:@n | Ian i:@n | ||||
their De@ $u $nounf $only | their De@ $u $nounf $only | ||||
theirs De@z | theirs De@z | ||||
none n0n | |||||
none nVn | |||||
noone noUw0n | noone noUw0n | ||||
anyone EnIw0n | anyone EnIw0n | ||||
everyone EvrIw0n | everyone EvrIw0n | ||||
?3 err e@ | ?3 err e@ | ||||
?3 fortune fO@tS@n | ?3 fortune fO@tS@n | ||||
?3 garage ga2rA:Z | ?3 garage ga2rA:Z | ||||
?3 happy hapi: | |||||
?3 herb 3:b | ?3 herb 3:b | ||||
?3 hurricane h3:@keIn | ?3 hurricane h3:@keIn | ||||
?3 investigative Inv,EstI2g'eItIv | ?3 investigative Inv,EstI2g'eItIv |
ch) ar (it ar | ch) ar (it ar | ||||
ph) ar (i ar | ph) ar (i ar | ||||
m) ar (i @r | m) ar (i @r | ||||
m) ar (ig ar | |||||
m) ar (inaC ar | |||||
_m) ar (i ar | |||||
m) ar (in @r | |||||
_m) ar (inaC ar | |||||
m) ar (iner ar | m) ar (iner ar | ||||
m) ar (io ar | m) ar (io ar | ||||
htm) ar e@ | htm) ar e@ | ||||
&) ar (in_ @r | &) ar (in_ @r | ||||
v) ar (iA e@r | v) ar (iA e@r | ||||
@) ar (ity ar | @) ar (ity ar | ||||
ar (iu 'e@r | |||||
ar (iu+ 'e@r | |||||
arom (at a2roUm | arom (at a2roUm | ||||
arre (_ A@ | arre (_ A@ | ||||
arred (_ A@d | arred (_ A@d | ||||
ch (é+ S | ch (é+ S | ||||
ch (ef S | ch (ef S | ||||
ch (em k | ch (em k | ||||
chement (_ =SmO~ | |||||
ch (ev S | ch (ev S | ||||
chez SeI | chez SeI | ||||
Ca) ch (e S | Ca) ch (e S | ||||
en (core 0n | en (core 0n | ||||
&) ency (_ @ns%I | &) ency (_ @ns%I | ||||
ency (cli %EnsI | ency (cli %EnsI | ||||
en (dA_ 'En | |||||
_) en (d En | _) en (d En | ||||
_) en (da %En | _) en (da %En | ||||
eg) en (d @n | eg) en (d @n | ||||
p) ie (_ aI | p) ie (_ aI | ||||
pp) ie (_ I | pp) ie (_ I | ||||
ie (f i: | ie (f i: | ||||
iege i:dZ | |||||
ieg (e# i:dZ | |||||
ie (go I'eI | ie (go I'eI | ||||
ieh (C i: | ieh (C i: | ||||
iei (_ i:aI | iei (_ i:aI | ||||
ie (t aI@ | ie (t aI@ | ||||
@) ie (th i@ | @) ie (th i@ | ||||
iesta i:'Est@ | iesta i:'Est@ | ||||
iette I2'Et | |||||
ie (tt I2'E | |||||
@) iety 'aI@t%I | @) iety 'aI@t%I | ||||
l) ieu u: | l) ieu u: | ||||
l) ieu (te %Ef | l) ieu (te %Ef | ||||
@) most(_S4 moUst | @) most(_S4 moUst | ||||
&) mouth (_ m@T | &) mouth (_ m@T | ||||
_) multi mVltI | _) multi mVltI | ||||
_) multi (@@P5 m,VltI | |||||
.group mi | .group mi | ||||
millen mI2lEn | millen mI2lEn | ||||
oa oU | oa oU | ||||
oar (_ o@ | oar (_ o@ | ||||
oar o@ | oar o@ | ||||
o (atia oU | |||||
cr) o (at oU | |||||
br) oa (d O: | br) oa (d O: | ||||
o (ba oU | o (ba oU | ||||
t) o (bacc @ | t) o (bacc @ | ||||
@) or (ic_ '0r | @) or (ic_ '0r | ||||
or (ig 0r | or (ig 0r | ||||
&) ored (_ @d | &) ored (_ @d | ||||
h) ored (_S1 d | |||||
_f) ore (C O@ | _f) ore (C O@ | ||||
f) ore (clo %o@ | f) ore (clo %o@ | ||||
f) ore (st 0rI | f) ore (st 0rI | ||||
_ca) su Zu: | _ca) su Zu: | ||||
_) sus (A su:z | _) sus (A su:z | ||||
su (al Zu: | su (al Zu: | ||||
n) su (al sju: | |||||
_) su (b sV | _) su (b sV | ||||
su (bdue s%V | su (bdue s%V | ||||
su (bmerg s@ | su (bmerg s@ | ||||
tsch tS | tsch tS | ||||
_) two tu: | _) two tu: | ||||
ttu (r t@ | ttu (r t@ | ||||
@) tu (al tSu: | |||||
@) tu (late =tSU | @) tu (late =tSU | ||||
@) tur (A tS@r | @) tur (A tS@r | ||||
@) tur (al_ tS=@r | @) tur (al_ tS=@r | ||||
f) u (gal 'ju: | f) u (gal 'ju: | ||||
ug (er_ u:g | ug (er_ u:g | ||||
s) ugge (st @dZE | s) ugge (st @dZE | ||||
h) ugh ju: | |||||
mp) ug (n ju: | mp) ug (n ju: | ||||
uh (C u: | uh (C u: | ||||
u (i ju: | u (i ju: | ||||
_f) ully UlI | _f) ully UlI | ||||
f) ull Ul | f) ull Ul | ||||
p) ull Ul | p) ull Ul | ||||
_) ultra (@ ,Ultra | |||||
u (ly u: | u (ly u: | ||||
d) u (ly ju: | d) u (ly ju: | ||||
u (lul V | u (lul V | ||||
uoy OI | uoy OI | ||||
_) us (_ Vz | _) us (_ Vz | ||||
_) us (A ju:z | _) us (A ju:z | ||||
usu (al ju:Zu: | |||||
&) us (_ @s | &) us (_ @s | ||||
usua (l ju:Zu: | |||||
u (sh V | u (sh V | ||||
b) u (sh U | b) u (sh U | ||||
c) u (sh U | c) u (sh U | ||||
En (_ @n | En (_ @n | ||||
?8 En (_ En | ?8 En (_ En | ||||
En (atA @n | En (atA @n | ||||
En (dA_ 'En | |||||
E (ndous E | E (ndous E | ||||
Ener (_ _n@ | Ener (_ _n@ | ||||
Ening (_ _nI2N | Ening (_ _nI2N |
// 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
// | // | ||||
// Updated 2009-10-09 Michel Such <[email protected]> | |||||
// Updated 2009-10-26 Michel Such <[email protected]> | |||||
// | // | ||||
// * Numbers, a few abbreviations and exceptions. | // * Numbers, a few abbreviations and exceptions. | ||||
// | // | ||||
avant $u+ | avant $u+ | ||||
après $u+ | après $u+ | ||||
(temps en temps) tA~zA~tA~ | (temps en temps) tA~zA~tA~ | ||||
alors alOr $u+ | |||||
depuis $u+ | |||||
ainsi $u+ | ainsi $u+ | ||||
alors alOr $u+ | |||||
aussi $u+ | aussi $u+ | ||||
encore $u+ | |||||
depuis $u+ | |||||
certes $u+ | certes $u+ | ||||
tel $u+ | tel $u+ | ||||
telle $u+ | telle $u+ | ||||
telles $u+ | telles $u+ | ||||
tout t'ut2 $u+ | |||||
toute t'ut $u+ | |||||
toutes t'utz2 $u+ | |||||
tous $u+ | |||||
rien Ri-'E~n2 $u+ | |||||
tout t'ut2 | |||||
rien Ri-'E~n2 | |||||
// Letters which can be words | // Letters which can be words | ||||
//=========================== | //=========================== | ||||
arte arte | arte arte | ||||
auvent ovA~ | auvent ovA~ | ||||
beta beta | beta beta | ||||
bien bi-E~n2 $u+ | |||||
bien bi-E~n2 | |||||
bis bis | bis bis | ||||
bissus bisys | bissus bisys | ||||
blues _^_en | blues _^_en | ||||
wallis wAlis | wallis wAlis | ||||
futuna futuna | futuna futuna | ||||
zimbabwe zimbabwe | zimbabwe zimbabwe | ||||
_1M1o EzR2Edik | _1M1o EzR2Edik | ||||
_2M1o ke:tEzR2Edik | _2M1o ke:tEzR2Edik | ||||
_0-a A | |||||
_0-i Ei | |||||
_0-e E | |||||
_0-án a:n | |||||
_0-ára a:R2A | |||||
_0-ére e:R2E | |||||
_0-ra a:R2A | |||||
_0-re e:R2E | |||||
_0-én e:n | |||||
_0-ai Ai | |||||
_0-ei Ei | |||||
(1-e) elseje $text | |||||
(1-én) elsején $text | |||||
(1-jén) elsején $text | |||||
(1-i) elsejei $text | |||||
(1-ei) elsejei $text | |||||
(1-ére) elsejére $text | |||||
(1-re) elsejére $text | |||||
(2-i) másodikai $text | |||||
(3-i) harmadikai $text | |||||
(6-i) hatodikai $text | |||||
(8-i) nyolcadikai $text | |||||
(13-i) tizenharmadikai $text | |||||
(16-i) tizenhatodikai $text | |||||
(18-i) tizennyolcadikai $text | |||||
(20-i) huszadikai $text | |||||
(23-i) huszonharmadikai $text | |||||
(26-i) huszonhatodikai $text | |||||
(28-i) huszonnyolcadikai $text | |||||
(30-i) harmincadikai $text | |||||
// $alt2 means these rules only apply if the previous word | |||||
// 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. | |||||
(1-e) elseje $text $alt2 | |||||
(1-én) elsején $text $alt2 | |||||
(1-jén) elsején $text $alt2 | |||||
(1-i) elsejei $text $alt2 | |||||
(1-ei) elsejei $text $alt2 | |||||
(1-ére) elsejére $text $alt2 | |||||
(1-re) elsejére $text $alt2 | |||||
(1-től) elsejétől $text $alt2 | |||||
(1-ig) elsejéig $text $alt2 | |||||
(2-i) másodikai $text $alt2 | |||||
(2-ig) másodikáig $text $alt2 | |||||
(3-i) hAR2_mAdikAi $alt2 | |||||
(3-ig) harmadikáig $text $alt2 | |||||
(6-i) hAtodikAi $alt2 | |||||
(6-ig) hatodikáig $text $alt2 | |||||
(8-i) n^'oltsAdikAi $alt2 | |||||
(8-ig) nyolcadikáig $text $alt2 | |||||
(13-ig) tizenharmadikáig $text $alt2 | |||||
(16-ig) tizenhatodikáig $text $alt2 | |||||
(18-ig) tizennyolcadikáig $text $alt2 | |||||
(20-i) huszadikai $text $alt2 | |||||
(20-ig) huszadikáig $text $alt2 | |||||
(23-ig) huszonharmadikáig $text $alt2 | |||||
(26-ig) huszonhatodikáig $text $alt2 | |||||
(28-ig) huszonnyolcadikáig $text $alt2 | |||||
(30-ig) harmincadikáig $text $alt2 | |||||
(30-i) harmincadikai $text $alt2 | |||||
// these exceptions only for 0, not for other numbers ending in '0' | |||||
(0-ás) nul:a:S | |||||
(0-t) nul:a:t | |||||
(0-val) nul:a:vAl | |||||
// 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 | |||||
(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-at) ha:R2mAt | |||||
(3-al) ha:R2om:Al | |||||
(4-el) ne:J:El //4 number suffixes (now contains one suffix) | |||||
(5-tel) Yt:El | |||||
(5-el) Yt:El | |||||
(6-al) hAt:Al | |||||
(6-tal) hAt:Al | |||||
(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 | |||||
(10-es) tizES // use [i] not [i:] | |||||
(10-est) tizESt | |||||
(10-essel) tizES:El | |||||
(10-esével) tizESe:vEl | |||||
(20-as) husAS // use [u] not [u:] | |||||
(20-ast) husASt | |||||
(20-assal) husAS:Al | |||||
(20-asával) husASa:vAl | |||||
//special number exceptions | |||||
(10-el) ti:zzEl | |||||
(20-al) hu:s:Al | |||||
(30-al) hAR2mints:Al | |||||
(40-el) nEJvEn:El | |||||
(50-el) YtvEn:El | |||||
(60-al) hAtvAn:Al | |||||
(70-el) hEtvEn:El | |||||
(80-al) n^oltsvAn:Al | |||||
(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 | ||||
//The following 12 row contains shorter hungarian month names | //The following 12 row contains shorter hungarian month names | ||||
jan $alt | jan $alt | ||||
feb $alt | feb $alt | ||||
febr $alt | |||||
márc $alt | márc $alt | ||||
ápr $alt | ápr $alt | ||||
máj $alt | máj $alt | ||||
// Abbreviations | // Abbreviations | ||||
ÁNTSZ a:Ente:Es $allcaps | ÁNTSZ a:Ente:Es $allcaps | ||||
km kilo:me:tER2 | km kilo:me:tER2 | ||||
GYSEV JESEv $allcaps | |||||
GYESEV JESEv $allcaps | |||||
HÉV he:v $allcaps | |||||
City siti $capital | |||||
GDP dZi:di:pi: $allcaps | |||||
HSDPA $abbrev $allcaps | |||||
ORTT $abbrev $allcaps | |||||
ORFK oEREfka: $abbrev $allcaps | |||||
MÁV ma:v $allcaps | |||||
MTI $abbrev $allcaps | |||||
mm milime:tER2 | mm milime:tER2 | ||||
VDSZSZ ve:de:EsEs $allcaps | |||||
a.m An^n^i||m'int $dot | a.m An^n^i||m'int $dot | ||||
ún u:JnEvEzEt: $dot | |||||
dr doktoR2 $dot | dr doktoR2 $dot | ||||
mr mistER2 $dot //in hungarian we not use, but lot of books contains this word. | |||||
mrs misis $dot //In hungarian we not use, but lot of book contains this word. | |||||
gpu $abbrev | gpu $abbrev | ||||
GB gigAba:jt $allcaps | |||||
MB mEgAba:jt $allcaps | |||||
OK ok $allcaps | |||||
mvgyosz Emve:Je:oEs | mvgyosz Emve:Je:oEs | ||||
OTP $abbrev | |||||
OTP o:te:pe: $allcaps | |||||
id idY:SEb: $dot | id idY:SEb: $dot | ||||
ill illEtvE $dot | ill illEtvE $dot | ||||
ifj ifjAb: $dot | ifj ifjAb: $dot | ||||
// Articles | // Articles | ||||
a $u // the | |||||
az $u | |||||
aki $u+ // that | |||||
a $u $strend2 // the | |||||
az $u $strend2 | |||||
//aki $u+ // that | |||||
ez $u+ // this | |||||
ez $unstressend // this | |||||
// Pronouns | // Pronouns | ||||
// If these are only used for emphasis then then don't need $u | // If these are only used for emphasis then then don't need $u | ||||
// én $u | |||||
// te $u | |||||
// ő $u | |||||
// mi $u | |||||
// ti $u | |||||
// ők $u | |||||
// maga $u | |||||
// maguk $u | |||||
én $unstressend | |||||
te $unstressend | |||||
ők $unstressend $pause | |||||
mi $unstressend | |||||
ti $unstressend | |||||
ők $unstressend | |||||
maga $unstressend | |||||
maguk $unstressend | |||||
// Conjunctions | // Conjunctions | ||||
miatt $u // because | miatt $u // 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 | ||||
noha $u $pause // even thought | noha $u $pause // even thought | ||||
// Negative | // Negative | ||||
nem $u $combine $strend | |||||
ne $u+ | |||||
nem $unstressend $combine $strend | |||||
ne $unstressend | |||||
e $u // "-e" question | e $u // "-e" question | ||||
e $atend // stressed at end of sentence | e $atend // stressed at end of sentence | ||||
// Unstressed adverbs prepositions etc. | // Unstressed adverbs prepositions etc. | ||||
néhány $u+ | |||||
néhány $unstressend | |||||
is $u // also | is $u // also | ||||
elöl $u // in front of | |||||
elől $u | |||||
elé $u | |||||
előtt $u | |||||
mögül $u // behind | |||||
mögött $u | |||||
mögé $u | |||||
kívül $u | |||||
után $u // after | |||||
alól $u | |||||
alá $u | |||||
alatt $u // below | |||||
felől $u // above | |||||
felé $u | |||||
fölé $u | |||||
felett $u // above | |||||
fölött $u | |||||
mellől $u // besides | |||||
mellé $u | |||||
mellett $u | |||||
közül $u | |||||
közé $u | |||||
között $u | |||||
elöl $unstressend // in front of | |||||
elől $unstressend | |||||
elé $unstressend | |||||
előtt $unstressend | |||||
mögül $unstressend // behind | |||||
mögött $unstressend | |||||
mögé $unstressend | |||||
kívül $unstressend | |||||
után $unstressend // after | |||||
alól $unstressend | |||||
alá $unstressend | |||||
alatt $unstressend // below | |||||
felől $unstressend // above | |||||
felé $unstressend | |||||
fölé $unstressend | |||||
felett $unstressend // above | |||||
fölött $unstressend | |||||
//mellől $u // besides | |||||
//mellé $u | |||||
//mellett $u | |||||
lett $unstressend | |||||
ott $unstressend | |||||
itt $unstressend | |||||
neked $unstressend | |||||
nektek $unstressend | |||||
nekik $unstressend | |||||
neki $unstressend | |||||
nekem $unstressend | |||||
//közül $u | |||||
//közé $u | |||||
//között $u | |||||
an $u // so many persons | an $u // so many persons | ||||
as $u | as $u | ||||
ba $u // into | |||||
ban $u // in | |||||
be $u | |||||
ben $u | |||||
ból $u // from inside | |||||
ből $u | |||||
ba $unstressend // into | |||||
ban $unstressend // in | |||||
be $unstressend | |||||
ben $unstressend | |||||
ból $unstressend // from inside | |||||
ből $unstressend | |||||
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 | ||||
es $u | es $u | ||||
hez $u | |||||
hoz $u // to | |||||
höz $u | |||||
ig $u // up to | |||||
ik $u // -th | |||||
nak $u // of, him/her | |||||
nek $u | |||||
nál $u // by | |||||
nél $u | |||||
on $u // on | |||||
en $u // on | |||||
hez $unstressend | |||||
hoz $unstressend // to | |||||
höz $unstressend | |||||
ig $unstressend // up to | |||||
ik $unstressend // -th | |||||
nak $unstressend // of, him/her | |||||
nek $unstressend | |||||
nál $unstressend // by | |||||
nél $unstressend | |||||
on $unstressend // on | |||||
en $unstressend // on | |||||
os $u | os $u | ||||
ra $u // onto | |||||
re $u | |||||
ról $u // from top of, about | |||||
röl $u | |||||
ről $u | |||||
ra $unstressend // onto | |||||
re $unstressend | |||||
ról $unstressend // from top of, about | |||||
röl $unstressend | |||||
ről $unstressend | |||||
szer $u | szer $u | ||||
szor $u // times | szor $u // times | ||||
szó $unstressend | |||||
szór $u | szór $u | ||||
ször $u | ször $u | ||||
tól $u // from | |||||
töl $u | |||||
től $u | |||||
val $u // with | |||||
vel $u | |||||
tól $unstressend // from | |||||
töl $unstressend | |||||
től $unstressend | |||||
val $unstressend // with | |||||
vel $unstressend | |||||
án $u // on that day | án $u // on that day | ||||
é $u // his, her | é $u // his, her | ||||
éi $u // his, her multiple | éi $u // his, her multiple | ||||
én $u | |||||
én $unstressend | |||||
ón $u | ón $u | ||||
ós $u | ós $u | ||||
ön $u | |||||
ön $unstressend | |||||
ös $u | ös $u | ||||
ellen $u // against | |||||
elé $u // before | |||||
óta $u // since | |||||
sok $u // many | |||||
kevés $u // few | |||||
se $u // neither | |||||
sem $u // nor | |||||
be $u //into | |||||
ki $u // out of | |||||
le $u // down | |||||
fel $u // up | |||||
föl $u // up | |||||
meg $u // finish an action | |||||
el $u // away | |||||
át $u //through | |||||
rá $u //onto | |||||
ide $u // here | |||||
oda $u // there | |||||
szét $u //apart | |||||
össze $u //connect with | |||||
vissza $u //back | |||||
ellen $u //against | |||||
volna $u // would | |||||
részén $u //on ... part of | |||||
nélkül $u // without | |||||
folytán $u // because of | |||||
úgy $u // like that | |||||
így $u // like this | |||||
egyaránt $u // alike | |||||
minden $u // all | |||||
részben $u // partly | |||||
egyik $u // one of | |||||
másik $u // the other | |||||
ellen $unstressend // against | |||||
//elé $u // before | |||||
//óta $u // since | |||||
sok $unstressend // many | |||||
kevés $unstressend // few | |||||
se $unstressend // neither | |||||
sem $unstressend // nor | |||||
be $unstressend //into | |||||
ki $unstressend // out of | |||||
le $unstressend // down | |||||
fel $unstressend // up | |||||
föl $unstressend // up | |||||
meg $unstressend // finish an action | |||||
el $unstressend // away | |||||
át $unstressend //through | |||||
rá $unstressend //onto | |||||
ide $unstressend // here | |||||
oda $unstressend // there | |||||
szét $unstressend //apart | |||||
//össze $u //connect with | |||||
//vissza $u //back | |||||
volna $unstressend // would | |||||
//részén $u //on ... part of | |||||
nélkül $unstressend // without | |||||
//folytán $u // because of | |||||
úgy $unstressend // like that | |||||
így $unstressend // like this | |||||
egyaránt $unstressend // alike | |||||
//minden $strend // all | |||||
mindent $strend | |||||
//részben $u // partly | |||||
egyik $unstressend // one of | |||||
//másik $u // the other | |||||
lehet $unstressend | |||||
rossz $unstressend | |||||
jó $unstressend | |||||
jót $unstressend | |||||
kér $unstressend | |||||
tartják $unstressend | |||||
erős $unstressend | |||||
lennie $unstressend | |||||
közt $u+ | |||||
levegőjére $unstressend | |||||
ad $unstressend | |||||
kapják $unstressend | |||||
kap $unstressend | |||||
már $unstressend | |||||
maradt $unstressend | |||||
jobb $unstressend | |||||
most $unstressend | |||||
még $unstressend | |||||
gép $unstressend | |||||
részt $unstressend | |||||
lenne $unstressend | |||||
őt $unstressend | |||||
helyes $u+ | |||||
fák $unstressend | |||||
et $unstressend | |||||
megvédeni $unstressend | |||||
sztrájk $unstressend | |||||
hír $unstressend | |||||
magukat $unstressend | |||||
majd $unstressend | |||||
áll $unstressend | |||||
állt $unstressend | |||||
arról $unstressend | |||||
innen $unstressend | |||||
érjen $unstressend | |||||
nap $unstressend | |||||
név $unstressend | |||||
lány $unstressend | |||||
lányt $unstressend | |||||
vár $unstressend | |||||
várt $unstressend | |||||
ért $unstressend | |||||
ér $unstressend | |||||
tag $unstressend | |||||
tesz $unstressend | |||||
tett $unstressend | |||||
tette $unstressend | |||||
baj $unstressend | |||||
csak $unstressend | |||||
vált $unstressend | |||||
jut $unstressend | |||||
legyen $unstressend | |||||
azt $unstressend | |||||
ezt $unstressend | |||||
út $unstressend | |||||
tiszt $unstressend | |||||
vesz $unstressend | |||||
cég $unstressend | |||||
járt $unstressend | |||||
jár $unstressend | |||||
él $unstressend | |||||
élsz $unstressend | |||||
élt $unstressend | |||||
hát $unstressend | |||||
fiú $unstressend | |||||
srác $unstressend | |||||
ült $unstressend | |||||
ám $unstressend | |||||
rám $unstressend | |||||
tűnik $unstressend | |||||
nyújt $unstressend | |||||
nincsen $unstressend | |||||
mégy $unstressend | |||||
nő $unstressend | |||||
nőt $unstressend | |||||
sas $unstressend | |||||
sast $unstressend | |||||
fél $unstressend | |||||
félt $unstressend | |||||
félsz $unstressend | |||||
düh $unstressend | |||||
más $unstressend | |||||
mást $unstressend | |||||
rúd $unstressend | |||||
mint $unstressend $brk $combine | |||||
iránt $unstressend | |||||
légy $unstressend | |||||
tűnt $unstressend | |||||
ösét $unstressend | |||||
új $unstressend | |||||
nyúlt $unstressend | |||||
magát $unstressend | |||||
engem $unstressend | |||||
téged $unstressend | |||||
minket $unstressend | |||||
titeket $unstressend | |||||
őket $unstressend | |||||
cikk $unstressend | |||||
vont $unstressend | |||||
mond $unstressend | |||||
jutni $unstressend | |||||
jött $unstressend | |||||
szólsz $unstressend | |||||
lőtt $unstressend | |||||
sor $unstressend | |||||
árt $unstressend | |||||
fest $unstressend | |||||
fújt $unstressend | |||||
kért $unstressend | |||||
tét $unstressend | |||||
kém $unstressend | |||||
jön $unstressend | |||||
bent $unstressend | |||||
kezd $unstressend | |||||
ránk $unstressend | |||||
gondolt $unstressend | |||||
dönt $unstressend | |||||
véli $unstressend | |||||
folyt $unstressend | |||||
döntött $unstressend | |||||
fájt $unstressend | |||||
hozni $unstressend | |||||
lát $unstressend | |||||
kép $unstressend | |||||
nyert $unstressend | |||||
függ $unstressend | |||||
hidd $unstressend | |||||
megy $unstressend | |||||
hírt $unstressend | |||||
hely $unstressend | |||||
jutott $unstressend | |||||
mit $unstressend | |||||
forrás $unstressend | |||||
terv $unstressend | |||||
mind $unstressend | |||||
ment $unstressend | |||||
jól $unstressend | |||||
napját $unstressend | |||||
több $unstressend | |||||
tart $unstressend | |||||
hág $unstressend | |||||
// word pairs | // word pairs | ||||
lesznek $u | lesznek $u | ||||
kell $u+ // should | |||||
kell $unstressend // should | |||||
szabad $u+ // can (allowed) | szabad $u+ // can (allowed) | ||||
ø $accent | ø $accent | ||||
ß _^_DE | ß _^_DE | ||||
. pont $max3 | |||||
… _p%ontp%ontp%ont // 3 or more dots are changed to elipsis | |||||
. p%ont $max3 | |||||
_. pont | |||||
* tSillAg $max3 | * tSillAg $max3 | ||||
% sa:zAle:k $max3 | % sa:zAle:k $max3 | ||||
+ plus $max3 | + plus $max3 | ||||
_] z'a:R2o:sYglEtES $max3 | _] z'a:R2o:sYglEtES $max3 | ||||
_{ k'EzdY:kAptSoS $max3 | _{ k'EzdY:kAptSoS $max3 | ||||
_} v'e:gkAptSoS $max3 | _} v'e:gkAptSoS $max3 | ||||
_… pontpontpont $max3 | |||||
_… pontpontpont | |||||
_• di:spont | _• di:spont | ||||
_| fyg:Y:lEgESvonAl | _| fyg:Y:lEgESvonAl | ||||
_> nAJob | _> nAJob | ||||
(Szvsz) eszvéesz | (Szvsz) eszvéesz | ||||
(edik szeptember) szeptember | |||||
(CD-k) cédék | |||||
(cd-k) cédék | |||||
(CD-n) cédén | |||||
(cd-n) cédén | |||||
(cd-d) cédéd | |||||
(CD-d) cédéd | |||||
(db-os) darabos | |||||
(db-ot) darabot | |||||
// Hungarian translation rules | // Hungarian translation rules | ||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
û ű | û ű | ||||
.group a | .group a | ||||
a A | a A | ||||
_) a (_ %A | _) a (_ %A | ||||
_) alattvaló _!'AlAtvAlo: | |||||
D00_-) al (_ zAl // double z for 100-al | |||||
000_-) al (_ Al // ... but not 1000-al | |||||
_) alattvaló AlAtvAlo: | |||||
.group á | .group á | ||||
á a: | á a: | ||||
@) ban (_S3 bAn | @) ban (_S3 bAn | ||||
@) ben (_S3 bEn | @) ben (_S3 bEn | ||||
biz (A b'iz, // bizalmas etc. | |||||
biz (A biz, // bizalmas etc. | |||||
biedermeier bi:dER2ma:jER2 | biedermeier bi:dER2ma:jER2 | ||||
.group c | .group c | ||||
cs tS | cs tS | ||||
ccs tS: | ccs tS: | ||||
!) cz ts // in names which start with a capital letter | !) cz ts // in names which start with a capital letter | ||||
ar) csz (e ts | |||||
harmin) c ts | |||||
csz ts|s | |||||
ar) c (cson ts | |||||
anar) ch (i C | anar) ch (i C | ||||
balda) ch (in C | balda) ch (in C | ||||
hierar) ch (i C | hierar) ch (i C | ||||
szé) ch tS | szé) ch tS | ||||
_zi) ch (y tS | _zi) ch (y tS | ||||
c (szín tS | |||||
dA) c (sz ts | |||||
kilen) c (sz ts | |||||
kvar) c (sz ts | |||||
mala) c (sá ts | mala) c (sá ts | ||||
nyol) c (sz ts | |||||
har) c (sz ts | |||||
lán) c (sz ts | |||||
pá) c (só ts | pá) c (só ts | ||||
per) c (sz ts | |||||
pol) c (so ts | pol) c (so ts | ||||
por) c (sé ts | por) c (sé ts | ||||
por) c (sz ts | por) c (sz ts | ||||
rán) c (sz ts | |||||
tán) c (sz ts | |||||
_szé) che (ny tSe: | _szé) che (ny tSe: | ||||
_szé) ché (ny tSe: | _szé) ché (ny tSe: | ||||
_sto) ck (holm k | _sto) ck (holm k | ||||
har) c (csoport ts | |||||
_) church tSYR2tS | _) church tSYR2tS | ||||
lán) c (cs ts | |||||
.group d | .group d | ||||
d d | d d | ||||
beszé) d (szin d | beszé) d (szin d | ||||
cselé) d d | cselé) d d | ||||
fogó) dz (kod ts | fogó) dz (kod ts | ||||
fogó) dz (ó z | |||||
fenyegető) dz z | fenyegető) dz z | ||||
föl) d (sánc d | föl) d (sánc d | ||||
ha) dd (_S2 d | |||||
ha) d (járat d | ha) d (járat d | ||||
ha) d (sor d | ha) d (sor d | ||||
hor) d (szék d | hor) d (szék d | ||||
máso) d (sor d | |||||
akaró) dz z | |||||
hallgató) dz z | |||||
húzó) dz ts | |||||
harapó) dz z | harapó) dz z | ||||
himbáló) dz z | himbáló) dz z | ||||
lopó) dz z | |||||
tapogató) dz z | |||||
villó) dz z | |||||
e) dz (ő dz | |||||
e) dz (és dz | |||||
pa) d (sor d | pa) d (sor d | ||||
ren) d (sza d | ren) d (sza d | ||||
va) d (sző d | va) d (sző d | ||||
kére) dz ts | kére) dz ts | ||||
mentegető) dz z | mentegető) dz z | ||||
dsz ts | dsz ts | ||||
dsz (C ts | dsz (C ts | ||||
dsz (a ds | dsz (a ds | ||||
dsz (á ds | |||||
a) dsz (A ts: | a) dsz (A ts: | ||||
e) dsz (A ts: | e) dsz (A ts: | ||||
o) dsz (A ts: | o) dsz (A ts: | ||||
.group e | .group e | ||||
e E | e E | ||||
000_-) el (_ REl // double R for 1000-el | |||||
000000_-) el (_ El // ... but not 1000000-el | |||||
D_-_) es (_ %ES | |||||
_) egyezség _!'EJ:ESSe:g | |||||
_) egyezség EJ:ESSe:g | |||||
.group é | .group é | ||||
é e: | é e: | ||||
f f | f f | ||||
.group g | .group g | ||||
g g | g g | ||||
gg g: | gg g: | ||||
_e) gy (ik J: | _e) gy (ik J: | ||||
_e) gy (üt J: | _e) gy (üt J: | ||||
e) gyj (elentésű Jj | e) gyj (elentésű Jj | ||||
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 (siet J | |||||
_) goethe gY:tE | _) goethe gY:tE | ||||
_) goethé gY:te: | _) goethé gY:te: | ||||
me) g (gy g | me) g (gy g | ||||
le) g (gy g | le) g (gy g | ||||
orszá) g (gyűlés g | orszá) g (gyűlés g | ||||
ú) gy (se J | |||||
seho) gy (se J | |||||
.group h | .group h | ||||
h h | h h | ||||
hertz hER2ts | |||||
.group i | .group i | ||||
i i | i i | ||||
íts i:tS: | íts i:tS: | ||||
fesz) ítsd i:tSd | fesz) ítsd i:tSd | ||||
ford) ítsd i:tSd | ford) ítsd i:tSd | ||||
szól) ítsd i:tSd | |||||
áll) ítsd i:tSd | |||||
semmis) ítsd i:tSd | semmis) ítsd i:tSd | ||||
bizony) ítsd i:tSd | bizony) ítsd i:tSd | ||||
.group l | .group l | ||||
l l | l l | ||||
fe) l (ju l | |||||
fe) l (jö l | |||||
fe) l (jegy l | |||||
fe) l (jelen l | |||||
e) l (jö l | |||||
lj l^j | lj l^j | ||||
cé) l (já jj | cé) l (já jj | ||||
ly j | ly j | ||||
lly jj | lly jj | ||||
A) lj (A l^j | A) lj (A l^j | ||||
e) l (jut l | |||||
e) l (jus l | |||||
á) ll (j j | á) ll (j j | ||||
beszé) lj jj | beszé) lj jj | ||||
bére) lj jj | bére) lj jj | ||||
mi) ll (i l | mi) ll (i l | ||||
.group m | .group m | ||||
m m | m m | ||||
ko) mm (uni m | ko) mm (uni m | ||||
nj n^n^ | nj n^n^ | ||||
nyj n^n^ | nyj n^n^ | ||||
_) nem (- n,Em // has $combine attribute in hu_list, combine with the next word | |||||
_) nem (- nEm // has $combine attribute in hu_list, combine with the next word | |||||
me) nny (ország n^ | me) nny (ország n^ | ||||
me) nny (d n^ | me) nny (d n^ | ||||
me) nny (k n^ | |||||
pihe) nj (_S2 n^ | |||||
főbe) n (jár n | |||||
szí) n (játék n | |||||
ingye) n n | |||||
sze) nny (víz n^ | |||||
ajá) nlj j: | ajá) nlj j: | ||||
o o | o o | ||||
_r) oose (velt u:z | _r) oose (velt u:z | ||||
_) otthon othon | |||||
otthon othon | |||||
.group ó | .group ó | ||||
ó o: | ó o: | ||||
ssz ss2 | ssz ss2 | ||||
szts stS: | szts stS: | ||||
sztsze stsE | sztsze stsE | ||||
sztsza stsA | |||||
föld) s (ánc S | föld) s (ánc S | ||||
s (színű S | s (színű S | ||||
hel) s (inki z | hel) s (inki z | ||||
rend) sz (er s: | rend) sz (er s: | ||||
robbaná) s S | robbaná) s S | ||||
robbaná) ss S: | robbaná) ss S: | ||||
ejtőernyő) ssz S|s | |||||
krumpli) s (zsák S | |||||
.group t | .group t | ||||
tc ts: | tc ts: | ||||
tt t: | tt t: | ||||
ttk t:k | ttk t:k | ||||
tth t:h | |||||
@) tól (_S3q to:l | @) tól (_S3q to:l | ||||
@) től (_S3q tY:l | @) től (_S3q tY:l | ||||
tt (C tt | tt (C tt | ||||
ttn t:n | ttn t:n | ||||
ttm t:m | |||||
ttl t:l | |||||
ttr t:R2 | ttr t:R2 | ||||
ty c | ty c | ||||
// s) ty c: // | // s) ty c: // | ||||
apá) ts (ág tS: | apá) ts (ág tS: | ||||
becsüle) t t | becsüle) t t | ||||
becsüle) tt t: | becsüle) tt t: | ||||
bizo) ts (ág tS: | |||||
csapa) t (jel t | |||||
cson) t t | cson) t t | ||||
cson) tt t: | cson) tt t: | ||||
cson) tj c | cson) tj c | ||||
ezüs) tt t: | ezüs) tt t: | ||||
éle) t t | éle) t t | ||||
éle) tt t: | éle) tt t: | ||||
fron) t (szolgál t | |||||
gyapo) t t | gyapo) t t | ||||
gyapo) tt t: | gyapo) tt t: | ||||
gondola) t (sor t | |||||
gráni) t t | gráni) t t | ||||
gráni) tt t: | gráni) tt t: | ||||
já) tsz ts: | já) tsz ts: | ||||
já) tssz ts: | já) tssz ts: | ||||
tsz ts: | |||||
já) tsz (m ts | |||||
tsz (_S3 ts: | |||||
tsz (é ts: | |||||
tsz (o ts: | |||||
tsz (ő ts: | |||||
tszó (_S4 ts:o: | |||||
tsz (a t|s | |||||
tsz (e t|s | |||||
tsz (á t|s | |||||
me) tsz (et ts: | |||||
ada) t t | |||||
ada) tt t: | |||||
ké) t (sarok t | |||||
ké) t (sor t | |||||
ké) t (sáv t | |||||
ké) tsz (er ts: | |||||
ö) tsz (ör ts: | |||||
hé) tsz (er ts: | |||||
kegyele) t t | kegyele) t t | ||||
kegyele) tt t: | kegyele) tt t: | ||||
korán) t (se t | |||||
szorí) ts (a tS: | szorí) ts (a tS: | ||||
sie) ts tS: | |||||
üzle) tt t: | |||||
üzle) tj c: | |||||
ürí) ts (e tS: | ürí) ts (e tS: | ||||
mula) ts tS: | mula) ts tS: | ||||
nemze) ts tS: | nemze) ts tS: | ||||
nemze) t (szo t | nemze) t (szo t | ||||
néme) ts (ég tS: | néme) ts (ég tS: | ||||
min) t t | min) t t | ||||
tse tSE | |||||
tso tSo | |||||
ttsá tS:a: | |||||
tsa tSA | |||||
tsá tSa: | |||||
ts (a tS | |||||
ts (á tS | |||||
ts (e tS | |||||
ts (é tS | |||||
ts (o tS | |||||
ts (u tS | |||||
tsd tSd | tsd tSd | ||||
tsé tSe: | |||||
t (cs t | t (cs t | ||||
ttsé tS:e: | |||||
tsu tSu | |||||
tts (á tS: | |||||
tts (é tS: | |||||
tsö tSY | tsö tSY | ||||
j) ts tS | j) ts tS | ||||
C) tj c | C) tj c | ||||
kür) t t | kür) t t | ||||
kür) tj c | kür) tj c | ||||
kür) t (jel t | kür) t (jel t | ||||
kür) t (szó t | |||||
küldö) ttj c: | küldö) ttj c: | ||||
neve) ts (ég tS: | neve) ts (ég tS: | ||||
o) tt t: | o) tt t: | ||||
szen) t (szék t | szen) t (szék t | ||||
szé) t t | szé) t t | ||||
szé) tt t: | szé) tt t: | ||||
szé) tszé t|se: | |||||
szöve) ts (ég tS: | szöve) ts (ég tS: | ||||
söté) ts (ég tS: | söté) ts (ég tS: | ||||
sajá) ts (ág tS: | sajá) ts (ág tS: | ||||
lehe) ts (ég tS: | lehe) ts (ég tS: | ||||
tehe) ts (ég tS: | tehe) ts (ég tS: | ||||
lá) tsz ts: | lá) tsz ts: | ||||
te) tsz ts: | |||||
lá) t (sze t | lá) t (sze t | ||||
fize) ts (ég tS: | fize) ts (ég tS: | ||||
segí) ts tS: | segí) ts tS: | ||||
ha) t (száz t | ha) t (száz t | ||||
hé) t (száz t | hé) t (száz t | ||||
vé) ts (ég tS: | vé) ts (ég tS: | ||||
vona) t (jegy t | |||||
tesz) t (sor t | |||||
tes) t (sér t | |||||
fron) t (jár t | |||||
á) t (söpör t | |||||
ala) tt (jár t: | |||||
fri) tz ts: | |||||
fű) ts tS: | |||||
.group u | .group u | ||||
.group ü | .group ü | ||||
ü y | ü y | ||||
ütt yt: | ütt yt: | ||||
ütty yc: | |||||
.group ű | .group ű | ||||
ű y: | ű y: | ||||
.group z | .group z | ||||
z z | z z | ||||
zs Z | zs Z | ||||
zzs Z: | zzs Z: | ||||
a) z (t s | a) z (t s | ||||
ré) z (sz z | ré) z (sz z | ||||
tartó) z s | tartó) z s | ||||
gá) z (sz z | gá) z (sz z | ||||
gé) z (sz z | |||||
gá) z (cső z | |||||
gé) z (sz z | |||||
ké) z (sz zz | ké) z (sz zz | ||||
há) z (so z | há) z (so z | ||||
_gá) zsz (ámla zs: | _gá) zsz (ámla zs: | ||||
_gá) zsz (ámlá zs: | _gá) zsz (ámlá zs: | ||||
_ré) zs (ó zS | _ré) zs (ó zS | ||||
ő) zs (uta zS | |||||
_vá) zs (or zS | _vá) zs (or zS | ||||
_szára) zs (ág SS | _szára) zs (ág SS | ||||
_nehé) zs (ely zS | _nehé) zs (ely zS | ||||
_) zürich tsyR2iC | _) zürich tsyR2iC | ||||
vigyá) zz (ba z | |||||
vigyá) zz (t z | |||||
.group | .group | ||||
_) :-) v'iJoR2 | |||||
$ dolla:R2 | $ dolla:R2 | ||||
ä E | ä E |
.group b | .group b | ||||
b b | b b | ||||
b (C b_ | |||||
.group c | .group c | ||||
c S | c S | ||||
K) c (C S_! | |||||
.group d | .group d | ||||
d d | d d | ||||
dj dZ | |||||
dj dZ // ?? | |||||
.group e | .group e | ||||
e e | e e | ||||
r r- // syllabic | r r- // syllabic | ||||
A) r R | A) r R | ||||
r (A R | r (A R | ||||
r (C R_ // ?? do this in phonemes data instead? | |||||
.group s | .group s |
! vijVppU // வியப்பு | ! vijVppU // வியப்பு | ||||
_? ke:l.vi // கேள்வி | _? ke:l.vi // கேள்வி | ||||
# en.||kuRi $max3 // எண் குறி | # en.||kuRi $max3 // எண் குறி | ||||
= samVnba:d.U $max3 // சமன்பாடு | |||||
= samVnpa:d.U $max3 // சமன்பாடு | |||||
+ ku:t.t.Vl $max3 // கூட்டல் | + ku:t.t.Vl $max3 // கூட்டல் | ||||
* perUkkVl $max3 // பெருக்கல் | * perUkkVl $max3 // பெருக்கல் | ||||
/ sa:jvU // சாய்வு | / sa:jvU // சாய்வு | ||||
போண்டா $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 // initial த as [d] | |||||
தேகம் $alt | |||||
திரவியம் $alt | |||||
தூபம் $alt | |||||
தீபம் $alt | |||||
// 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 | தடக் $alt | ||||
தீக்ஷை $alt | தீக்ஷை $alt | ||||
தடியன் $alt | தடியன் $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 | |||||
பப pVpV | பப pVpV |
_) க (BT g // $alt | _) க (BT g // $alt | ||||
க்க kkV | க்க kkV | ||||
க்க (B kk | க்க (B kk | ||||
_) க (ௌ g | |||||
க (ீத g | க (ீத g | ||||
க (ஜ gV | க (ஜ gV | ||||
_) க (ௌ g | |||||
_) க (ம்பீர gV | _) க (ம்பீர gV | ||||
_) க (ந்தர்வ gV | _) க (ந்தர்வ gV | ||||
_) க (ோவிந்த g | _) க (ோவிந்த g | ||||
_) க (ணே gV | _) க (ணே gV | ||||
_) க (ருட gV | |||||
_) க (ர்ஜ gV | |||||
_) க (ாண்டாமிருக g | |||||
_) க (ோந்து g | |||||
_) க (ாந்த g | |||||
_) க (ுண்ட g | |||||
_) க (ோபுர g | |||||
_) க (ுரு g | |||||
_) க (ுகன g | |||||
_) க (ணபதி gV | |||||
_) க (ணீர gV | |||||
_) க (ோதுமை g | |||||
_) க (ுகை g | |||||
_) க (ோஷ g | |||||
_) க (ுண g | |||||
_) க (தியில் gV | |||||
_) க (டிகார gV | |||||
ங NV | ங NV | ||||
ட்) ச (B tS | ட்) ச (B tS | ||||
ஞ்) ச dZV | ஞ்) ச dZV | ||||
ஞ்) ச (B dZ | ஞ்) ச (B dZ | ||||
_) ச (ட் tS | |||||
_) ச (Bட் tS | |||||
_) ச (ன் tS | |||||
_) ச (Bன் tS | |||||
_) ச (ிட் tS | |||||
_) ச (ின் tS | |||||
// _) ட (B t. | // _) ட (B t. | ||||
ட்ட t.t.V | ட்ட t.t.V | ||||
ட்ட (B t.t. | ட்ட (B t.t. | ||||
ஷ்) ட t.V | |||||
ஷ்) ட (B t. | |||||
ண n.V | ண n.V | ||||
ண (B n. | ண (B n. | ||||
_) த (BT d // if word has $alt | _) த (BT d // if word has $alt | ||||
த்த ttV | த்த ttV | ||||
த்த (B tt | த்த (B tt | ||||
க்) த tV | |||||
க்) த (B t | |||||
ஸ்) த tV | |||||
ஸ்) த (B t | |||||
// exceptions, த as [d] | |||||
// exceptions, த as [d] | |||||
_) த (ன dV | _) த (ன dV | ||||
_) த (ர்ம dV | _) த (ர்ம dV | ||||
_) த (ுர் d | _) த (ுர் d | ||||
_) த (ுஷ் d | _) த (ுஷ் d | ||||
_) த (க்ஷிணா dV | _) த (க்ஷிணா dV | ||||
_) த (ண்ட dV | _) த (ண்ட dV | ||||
_) த (ருமி dV | |||||
_) த (ர்பை dV | |||||
_) த (ாவா d | |||||
_) த (ாதா d | |||||
_) த (ரித்திரம dV | |||||
_) த (ர்பார dV | |||||
_) த (ீர்க d | |||||
_) த (ினுச d | |||||
_) த (ாராவி d | |||||
_) த (ர்க dV | |||||
_) த (ான d | |||||
_) த (ேக d | |||||
_) த (ேக்கு t | |||||
_) த (ேக்கிலை t | |||||
_) த (ேக்கடி t | |||||
_) த (ிரவிய d | |||||
_) த (ூப d | |||||
_) த (ீப d | |||||
_) த (ீர d | |||||
_) த (ைரிய d | |||||
_) த (ிட d | |||||
_) த (ிரவ d | |||||
_) த (ிடீ d | |||||
_) த (ிவச d | |||||
_) த (ியான d | |||||
_) த (ானிய d | |||||
_) த (ுக்க d | |||||
_) த (ிகில d | |||||
_) த (ூம d | |||||
_) த (ாவணி d | |||||
_) த (ாம்_தூம d | |||||
_) த (ாடி d | |||||
_) த (ாச d | |||||
_) த (சரா dV | |||||
_) த (ோஷ d | |||||
_) த (ரணி dV | |||||
_) த (ாரணி d | |||||
_) த (ோசை d | |||||
ந nV | ந nV | ||||
ந (B n // dental n | ந (B n // dental n | ||||
ட்) ப (B p | ட்) ப (B p | ||||
ற்) ப pV | ற்) ப pV | ||||
ற்) ப (B p | ற்) ப (B p | ||||
று) ப pV | |||||
று) ப(B p | |||||
ன்) ப pV | |||||
ன்) ப (B p | |||||
ம்) ப p | |||||
ம்) ப (ா p | |||||
ம்) ப (B b | |||||
த்) ப p | |||||
த்) ப (ா p | |||||
த்) ப (B b | |||||
ஃ) ப fV | ஃ) ப fV | ||||
ஃ) ப (B f | ஃ) ப (B f | ||||
_) ப (ால b | _) ப (ால b | ||||
_) ப (ால் p | |||||
_) ப (ாலின் p | |||||
_) ப (ாலை p | |||||
_) ப (ாலில் p | |||||
_) ப (ாலுடன் p | |||||
_) ப (ாலினுடைய p | |||||
_) ப (ாலாபிஷேக p | |||||
_) ப (ாலு b | _) ப (ாலு b | ||||
_) ப (ானு b | _) ப (ானு b | ||||
_) ப (ீம b | _) ப (ீம b | ||||
_) ப (காசுர bV | _) ப (காசுர bV | ||||
_) ப (ோஜ b | _) ப (ோஜ b | ||||
_) ப (தில bV | _) ப (தில bV | ||||
_) ப (க்தி bV | |||||
_) ப (ஜ bV | _) ப (ஜ bV | ||||
_) ப (ைரவ b | |||||
_) ப (யம bV | |||||
_) ப (ார்கவி b | |||||
_) ப (ூதேவி b | |||||
_) ப (ம்பாய bV | |||||
_) ப (ாதுஷா b | |||||
_) ப (க்த bV | |||||
_) ப (லம bV | |||||
_) ப (லவான bV | |||||
_) ப (ிராமண b | |||||
_) ப (ிரம்ம b | |||||
_) ப (ம்பர bV | |||||
_) ப (லூன bV | |||||
_) ப (ூமி b | |||||
_) ப (ூலோக b | |||||
_) ப (ூகோல b | |||||
_) ப (ூத b | |||||
_) ப (ுதன b | |||||
_) ப (லி bV | |||||
_) ப (கவான bV | |||||
_) ப (ௌதிக b | |||||
ம mV | ம mV | ||||
ம (B m | ம (B m | ||||
ஸ (B s | ஸ (B s | ||||
ஹ hV | |||||
ஹ (B h | |||||
ஹ HV | |||||
ஹ (B H | |||||
க்ஷ ks.V | க்ஷ ks.V |
id 15 127 | id 15 127 | ||||
sq 35 128 | sq 35 128 | ||||
hy 24 120 | hy 24 120 | ||||
da 21 119 | |||||
da 22 122 | |||||
rw 15 132 | rw 15 132 | ||||
ml 13 154 | ml 13 154 | ||||
kn 15 154 | kn 15 154 | ||||
mr 12 152 | mr 12 152 | ||||
eu 6 126 | eu 6 126 | ||||
mn 15 115 | mn 15 115 | ||||
pa 13 153 | |||||
pa 14 154 | |||||
prs 8 111 | prs 8 111 | ||||
Data file Used by | Data file Used by | ||||
envelope/p_214 [5] vi | envelope/p_214 [5] vi | ||||
[214] zh | [214] zh | ||||
envelope/p_512 [6] vi | envelope/p_512 [6] vi | ||||
[+] pa | |||||
envelope/p_fall [2] vi | envelope/p_fall [2] vi | ||||
[7] vi | [7] vi | ||||
[4] zhy | [4] zhy | ||||
n/no [(o)] base | n/no [(o)] base | ||||
n/_nr [n.] base | n/_nr [n.] base | ||||
n/nr_ [n.] base | n/nr_ [n.] base | ||||
n/nr@ [(@)] base | |||||
n/nra [(a)] base | |||||
n/nre [(e)] base | |||||
n/nri [(i)] base | |||||
n/nro [(o)] base | |||||
n/nru [(u)] base | |||||
n^/n^u [(u)] base | n^/n^u [(u)] base | ||||
n/nu [(u)] base | n/nu [(u)] base | ||||
r2/_r2 [r-] base | r2/_r2 [r-] base | ||||
[x] pt | [x] pt | ||||
r3/r_u [(u)] base | r3/r_u [(u)] base | ||||
r3/r_uvl [r"] base | r3/r_uvl [r"] base | ||||
[R2] da | |||||
[R4] da | |||||
r3/r_uvl.wav [r"] base | r3/r_uvl.wav [r"] base | ||||
[R] fr | [R] fr | ||||
[r] fr | [r] fr | ||||
[r/2] fr | [r/2] fr | ||||
[R2] da | |||||
[R4] da | |||||
r3/rx [*] base | r3/rx [*] base | ||||
[r/] base | [r/] base | ||||
[r/] af | [r/] af | ||||
r3/@tap2 [**] base | r3/@tap2 [**] base | ||||
r3/@tap_rfx [r.] base | r3/@tap_rfx [r.] base | ||||
r/a_ [r] da | r/a_ [r] da | ||||
r/aa [R6] da | |||||
r/r [r] base | r/r [r] base | ||||
[r-] base | [r-] base | ||||
[r] en_sc | [r] en_sc | ||||
[r] de | [r] de | ||||
[R5] da | |||||
r/_r [r] base | r/_r [r] base | ||||
[r] en_sc | [r] en_sc | ||||
[r.] bn | [r.] bn | ||||
[x] sr | [x] sr | ||||
ufric/xx [X] base | ufric/xx [X] base | ||||
[Q"] base | [Q"] base | ||||
[R] da | |||||
ustop/c [c] base | ustop/c [c] base | ||||
ustop/k [k] base | ustop/k [k] base | ||||
[k] en | [k] en | ||||
[o~] bn | [o~] bn | ||||
vnasal/o_n2 [o~] af | vnasal/o_n2 [o~] af | ||||
[O~] fr | [O~] fr | ||||
vnasal/oo_n [O~] en | |||||
vnasal/oo_n2 [O~] hi | |||||
vnasal/oo_n2 [O~] en | |||||
[O~] hi | |||||
[o] zh | [o] zh | ||||
[O~] bn | [O~] bn | ||||
vnasal/oo_n3 [O~] pl | vnasal/oo_n3 [O~] pl | ||||
voc/Q_less [Q] nl | voc/Q_less [Q] nl | ||||
[x2] pt | [x2] pt | ||||
voc/Q_ulv [Q"] base | voc/Q_ulv [Q"] base | ||||
[R] da | |||||
voc/v [v] base | voc/v [v] base | ||||
[v] fi | [v] fi | ||||
[v] fr | [v] fr | ||||
[aI@] en_sc | [aI@] en_sc | ||||
vwl_en/aU@ [aU@] en | vwl_en/aU@ [aU@] en | ||||
[aU@] en_n | [aU@] en_n | ||||
[aU@] en_us | |||||
[aU@] en_sc | [aU@] en_sc | ||||
[aU@] en_wm | [aU@] en_wm | ||||
vwl_en/@L [@L] en | vwl_en/@L [@L] en | ||||
vwl_en_us/ai@ [aI@] en_us | vwl_en_us/ai@ [aI@] en_us | ||||
vwl_en_us/ar [A:] en_us | vwl_en_us/ar [A:] en_us | ||||
[A@] en_us | [A@] en_us | ||||
vwl_en_us/aU@ [aU@] en_us | |||||
vwl_en_us/ee [E] en_us | vwl_en_us/ee [E] en_us | ||||
vwl_en_us/er [e@] en_us | vwl_en_us/er [e@] en_us | ||||
vwl_en_us/ir [i@3] en_us | vwl_en_us/ir [i@3] en_us |
lengthmod 7 | lengthmod 7 | ||||
endphoneme | endphoneme | ||||
phoneme R2 // uvular trill [r"] | |||||
vcd uvl frc | |||||
formants r3/r_uvl+r3/r_uvl.wav%75 | |||||
before _ r3/r_uvl+r3/r_uvl.wav%50 | |||||
lengthmod 6 | |||||
phoneme R6 // | |||||
liquid | |||||
formants r/aa | |||||
lengthmod 7 | |||||
endphoneme | endphoneme | ||||
phoneme R // voiced velar fricative [Q"] | |||||
phoneme R4 // uvular trill [r"] without WAV | |||||
vcd uvl frc | vcd uvl frc | ||||
formants voc/Q_ulv+ufric/xx%80 | |||||
before _ voc/Q_ulv+ufric/xx%60 | |||||
formants r3/r_uvl+r3/r_uvl.wav%1 | |||||
before _ r3/r_uvl+r3/r_uvl.wav%1 | |||||
lengthmod 6 | lengthmod 6 | ||||
endphoneme | endphoneme | ||||
phoneme R5 // English r | |||||
liquid starttype #r endtype #r | |||||
rhotic | |||||
length 100 | |||||
lengthmod 7 | |||||
beforenotvowel r/ | |||||
formants r/r | |||||
endphoneme | |||||
phoneme o@ | phoneme o@ | ||||
vowel starttype (o) endtype (@) | vowel starttype (o) endtype (@) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/oo_en | formants vowel/oo_en | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme O~ | phoneme O~ | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 260 | |||||
formants vnasal/oo_n | |||||
length 240 | |||||
formants vnasal/oo_n2 | |||||
endphoneme | endphoneme | ||||
phoneme u: | phoneme u: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 180 | |||||
length 190 | |||||
formants vdiph2/uw | formants vdiph2/uw | ||||
endphoneme | endphoneme | ||||
phoneme e@ | phoneme e@ | ||||
vowel starttype (e) endtype (@) | vowel starttype (e) endtype (@) | ||||
length 270 | |||||
length 280 | |||||
formants vwl_en_us/er | formants vwl_en_us/er | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme i@3 | phoneme i@3 | ||||
vowel starttype (i) endtype (@) | vowel starttype (i) endtype (@) | ||||
length 250 | |||||
length 280 | |||||
formants vwl_en_us/ir | formants vwl_en_us/ir | ||||
appendph r | appendph r | ||||
endphoneme | endphoneme | ||||
phoneme U@ | phoneme U@ | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 240 | |||||
length 250 | |||||
formants vwl_en_us/ur | formants vwl_en_us/ur | ||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
phoneme aU@ | phoneme aU@ | ||||
vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
length 270 | |||||
formants vwl_en/aU@ | |||||
length 300 | |||||
formants vwl_en_us/aU@ | |||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=50 | vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=50 | ||||
vowelout f1=2 f2=1700 -300 300 f3=-100 80 | vowelout f1=2 f2=1700 -300 300 f3=-100 80 | ||||
formants d/xdz+ustop/ts%140 | formants d/xdz+ustop/ts%140 | ||||
before _ voc/z_+ustop/ts_%70 | |||||
before _ voc/z_+ustop/ts_%60 | |||||
after _ NULL | after _ NULL | ||||
after @ d/xd | after @ d/xd | ||||
lengthmod 5 | lengthmod 5 |
phoneme a: | phoneme a: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 270 | |||||
length 300 | |||||
formants vowel/a_5 | formants vowel/a_5 | ||||
endphoneme | endphoneme | ||||
phoneme i: | phoneme i: | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 270 | |||||
length 300 | |||||
formants vowel/i | formants vowel/i | ||||
endphoneme | endphoneme | ||||
after r- r2/r2@ | after r- r2/r2@ | ||||
after m m/m@ | after m m/m@ | ||||
after n n/n@ | after n n/n@ | ||||
after n. n/nr@ | |||||
after N nn/nn@ | after N nn/nn@ | ||||
after n^ n^/n^@ | after n^ n^/n^@ | ||||
before l/ DFT-60+l/L1_@L | before l/ DFT-60+l/L1_@L | ||||
after r- r2/r2a | after r- r2/r2a | ||||
after m m/ma | after m m/ma | ||||
after n n/na | after n n/na | ||||
after n. n/nra | |||||
after N nn/nna | after N nn/nna | ||||
after n^ n^/n^a | after n^ n^/n^a | ||||
before l/ DFT-40+l/L1_aL | before l/ DFT-40+l/L1_aL | ||||
after r- r2/r2e | after r- r2/r2e | ||||
after m m/me | after m m/me | ||||
after n n/ne | after n n/ne | ||||
after n. n/nre | |||||
after N nn/nne | after N nn/nne | ||||
after n^ n^/n^e | after n^ n^/n^e | ||||
before l/ DFT-30+l/L1_eL | before l/ DFT-30+l/L1_eL | ||||
after r- r2/r2i | after r- r2/r2i | ||||
after m m/mi | after m m/mi | ||||
after n n/ni | after n n/ni | ||||
after n. n/nri | |||||
after N nn/nni | after N nn/nni | ||||
after n^ n^/n^i | after n^ n^/n^i | ||||
before l/ DFT-30+l/L1_iL | before l/ DFT-30+l/L1_iL | ||||
after r- r2/r2o | after r- r2/r2o | ||||
after m m/mo | after m m/mo | ||||
after n n/no | after n n/no | ||||
after n. n/nro | |||||
after N nn/nno | after N nn/nno | ||||
after n^ n^/n^o | after n^ n^/n^o | ||||
before l/ DFT-40+l/L1_oL | before l/ DFT-40+l/L1_oL | ||||
after r- r2/r2u | after r- r2/r2u | ||||
after m m/mu | after m m/mu | ||||
after n n/nu | after n n/nu | ||||
after n. n/nru | |||||
after N nn/nnu | after N nn/nnu | ||||
after n^ n^/n^u | after n^ n^/n^u | ||||
before l/ DFT-40+l/L1_uL | before l/ DFT-40+l/L1_uL | ||||
phoneme n. | phoneme n. | ||||
vcd rfx nasal | vcd rfx nasal | ||||
starttype n endtype n | |||||
vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2 | vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2 | ||||
vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2 | vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2 | ||||
length 100 | length 100 |
#define PATHSEP '\\' | #define PATHSEP '\\' | ||||
#define USE_PORTAUDIO | #define USE_PORTAUDIO | ||||
//#define USE_NANOSLEEP | //#define USE_NANOSLEEP | ||||
#define NO_VARIADIC_MACROS | |||||
#define __cdecl | #define __cdecl | ||||
#define ESPEAK_API | #define ESPEAK_API | ||||
#define PATH_ESPEAK_DATA "C:\\Program files\\espeak\\espeak-data" | #define PATH_ESPEAK_DATA "C:\\Program files\\espeak\\espeak-data" |
#define PATHSEP '\\' | #define PATHSEP '\\' | ||||
#define USE_PORTAUDIO | #define USE_PORTAUDIO | ||||
//#define USE_NANOSLEEP | //#define USE_NANOSLEEP | ||||
#define NO_VARIADIC_MACROS | |||||
#define __cdecl | #define __cdecl | ||||
#define ESPEAK_API | #define ESPEAK_API | ||||
#define PATH_ESPEAK_DATA "C:\\Program files\\espeak\\espeak-data" | #define PATH_ESPEAK_DATA "C:\\Program files\\espeak\\espeak-data" |
#define PATHSEP '\\' | #define PATHSEP '\\' | ||||
#define USE_PORTAUDIO | #define USE_PORTAUDIO | ||||
#define NO_VARIADIC_MACROS | |||||
#define ESPEAK_API | #define ESPEAK_API | ||||
//#define INCLUDE_KLATT | //#define INCLUDE_KLATT | ||||
#define __WIN32__ | #define __WIN32__ | ||||
#define NEED_WCSTOF | #define NEED_WCSTOF | ||||
#define NEED_GETOPT | #define NEED_GETOPT | ||||
#define NO_VARIADIC_MACROS | |||||
#define USE_MBROLA_LIB | #define USE_MBROLA_LIB | ||||
#define ESPEAK_API | #define ESPEAK_API | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
dict_line[length++] = 80 + multiple_words + multiple_numeric_hyphen; // if numeric, count a hyphen as an extra word | |||||
dict_line[length++] = 80 + multiple_words; | |||||
ix = multiple_string_end - multiple_string; | ix = multiple_string_end - multiple_string; | ||||
if(multiple_numeric_hyphen) | if(multiple_numeric_hyphen) | ||||
{ | { | ||||
// the first part is numeric, so keep the hyphen to match on | |||||
dict_line[length++] = '-'; | |||||
dict_line[length++] = ' '; | dict_line[length++] = ' '; | ||||
} | } | ||||
memcpy(&dict_line[length],multiple_string,ix); | memcpy(&dict_line[length],multiple_string,ix); |
#else | #else | ||||
#ifdef PLATFORM_WINDOWS | |||||
#ifdef NO_VARIADIC_MACROS | |||||
#define SHOW(format) // VC6 doesn't allow "..." | #define SHOW(format) // VC6 doesn't allow "..." | ||||
#else | #else | ||||
#define SHOW(format,...) | #define SHOW(format,...) |
void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress) | |||||
void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress) | |||||
{//========================================================================================================= | {//========================================================================================================= | ||||
/* Guess stress pattern of word. This is language specific | /* Guess stress pattern of word. This is language specific | ||||
max_output = output + (N_WORD_PHONEMES-3); /* check for overrun */ | max_output = output + (N_WORD_PHONEMES-3); /* check for overrun */ | ||||
// any stress position marked in the xx_list dictionary ? | // any stress position marked in the xx_list dictionary ? | ||||
stressed_syllable = dictionary_flags & 0x7; | |||||
if(dictionary_flags & 0x8) | |||||
stressed_syllable = dictionary_flags[0] & 0x7; | |||||
if(dictionary_flags[0] & 0x8) | |||||
{ | { | ||||
// this indicates a word without a primary stress | // this indicates a word without a primary stress | ||||
stressed_syllable = dictionary_flags & 0x3; | |||||
stressed_syllable = dictionary_flags[0] & 0x3; | |||||
unstressed_word = 1; | unstressed_word = 1; | ||||
} | } | ||||
{ | { | ||||
// option: don't stress monosyllables except at end-of-clause | // option: don't stress monosyllables except at end-of-clause | ||||
vowel_stress[1] = 1; | vowel_stress[1] = 1; | ||||
dictionary_flags |= FLAG_STRESS_END2; | |||||
dictionary_flags[0] |= FLAG_STRESS_END2; | |||||
} | } | ||||
// heavy or light syllables | // heavy or light syllables | ||||
} | } | ||||
break; | break; | ||||
case 7: // LANG=tr, the last syllable for any vowel markes explicitly as unstressed | |||||
case 7: // LANG=tr, the last syllable for any vowel marked explicitly as unstressed | |||||
if(stressed_syllable == 0) | if(stressed_syllable == 0) | ||||
{ | { | ||||
stressed_syllable = vowel_count - 1; | stressed_syllable = vowel_count - 1; | ||||
#endif | #endif | ||||
// is it a bracket ? | // is it a bracket ? | ||||
if(letter == 0xe000+'(') | |||||
{ | |||||
if(pre_pause < tr->langopts.param2[LOPT_BRACKET_PAUSE]) | |||||
pre_pause = tr->langopts.param2[LOPT_BRACKET_PAUSE]; // a bracket, aleady spoken by AnnouncePunctuation() | |||||
} | |||||
if(IsBracket(letter)) | if(IsBracket(letter)) | ||||
{ | { | ||||
if(pre_pause < 4) | |||||
pre_pause = 4; | |||||
if(pre_pause < tr->langopts.param[LOPT_BRACKET_PAUSE]) | |||||
pre_pause = tr->langopts.param[LOPT_BRACKET_PAUSE]; | |||||
} | } | ||||
// no match, try removing the accent and re-translating the word | // no match, try removing the accent and re-translating the word | ||||
continue; | continue; | ||||
} | } | ||||
} | } | ||||
if(dictionary_flags & FLAG_ALT2_TRANS) | |||||
{ | |||||
// language specific | |||||
if((tr->translator_name == L('h','u')) && !(tr->prev_dict_flags & FLAG_ALT_TRANS)) | |||||
continue; | |||||
} | |||||
if(flags != NULL) | if(flags != NULL) | ||||
{ | { | ||||
// set the skip words flag | // set the skip words flag | ||||
flags[0] |= FLAG_SKIPWORDS; | flags[0] |= FLAG_SKIPWORDS; | ||||
dictionary_skipwords = length; | dictionary_skipwords = length; | ||||
return(1); | |||||
return(flags[0]); | |||||
} | } | ||||
} | } | ||||
return(0); | return(0); | ||||
} | } | ||||
return(1); | |||||
return(flags[0]); | |||||
} | } | ||||
ph_out[0] = 0; | ph_out[0] = 0; |
#include <stdio.h> | #include <stdio.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
#ifndef NEED_GETOPT | |||||
#include <getopt.h> | #include <getopt.h> | ||||
#endif | |||||
#include <time.h> | #include <time.h> | ||||
#include <sys/stat.h> | #include <sys/stat.h> | ||||
} | } | ||||
#ifdef NEED_GETOPT | |||||
struct option { | |||||
char *name; | |||||
int has_arg; | |||||
int *flag; | |||||
int val; | |||||
}; | |||||
int optind; | |||||
static int optional_argument; | |||||
static const char *arg_opts = "abfgklpsvw"; // which options have arguments | |||||
static char *opt_string=""; | |||||
#define no_argument 0 | |||||
#define required_argument 1 | |||||
#define optional_argument 2 | |||||
#endif | |||||
int main (int argc, char **argv) | int main (int argc, char **argv) | ||||
//============================== | //============================== | ||||
int option_index = 0; | int option_index = 0; | ||||
int c; | int c; | ||||
int ix; | int ix; | ||||
char *optarg2; | |||||
int value; | int value; | ||||
int flag_stdin = 0; | int flag_stdin = 0; | ||||
int flag_compile = 0; | int flag_compile = 0; | ||||
filename[0] = 0; | filename[0] = 0; | ||||
option_punctlist[0] = 0; | option_punctlist[0] = 0; | ||||
#ifdef NEED_GETOPT | |||||
optind = 1; | |||||
opt_string = ""; | |||||
while(optind < argc) | |||||
{ | |||||
int len; | |||||
char *p; | |||||
if((c = *opt_string) == 0) | |||||
{ | |||||
opt_string = argv[optind]; | |||||
if(opt_string[0] != '-') | |||||
break; | |||||
optind++; | |||||
opt_string++; | |||||
c = *opt_string; | |||||
} | |||||
opt_string++; | |||||
p = optarg2 = opt_string; | |||||
if(c == '-') | |||||
{ | |||||
opt_string=""; | |||||
for(ix=0; ;ix++) | |||||
{ | |||||
if(long_options[ix].name == 0) | |||||
break; | |||||
len = strlen(long_options[ix].name); | |||||
if(memcmp(long_options[ix].name,p,len)==0) | |||||
{ | |||||
c = long_options[ix].val; | |||||
optarg2 = NULL; | |||||
if((long_options[ix].has_arg != 0) && (p[len]=='=')) | |||||
{ | |||||
optarg2 = &p[len+1]; | |||||
} | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
else | |||||
if(strchr(arg_opts,c) != NULL) | |||||
{ | |||||
opt_string=""; | |||||
if(optarg2[0]==0) | |||||
{ | |||||
// the option's value is in the next argument | |||||
optarg2 = argv[optind++]; | |||||
} | |||||
} | |||||
#else | |||||
while(true) | while(true) | ||||
{ | { | ||||
c = getopt_long (argc, argv, "a:b:f:g:hk:l:mp:qs:v:w:xXz", | c = getopt_long (argc, argv, "a:b:f:g:hk:l:mp:qs:v:w:xXz", | ||||
/* Detect the end of the options. */ | /* Detect the end of the options. */ | ||||
if (c == -1) | if (c == -1) | ||||
break; | break; | ||||
optarg2 = optarg; | |||||
#endif | |||||
switch (c) | switch (c) | ||||
{ | { | ||||
case 'b': | case 'b': | ||||
// input character encoding, 8bit, 16bit, UTF8 | // input character encoding, 8bit, 16bit, UTF8 | ||||
if((sscanf(optarg,"%d",&value) == 1) && (value <= 4)) | |||||
if((sscanf(optarg2,"%d",&value) == 1) && (value <= 4)) | |||||
synth_flags |= value; | synth_flags |= value; | ||||
else | else | ||||
synth_flags |= espeakCHARS_8BIT; | synth_flags |= espeakCHARS_8BIT; | ||||
break; | break; | ||||
case 'k': | case 'k': | ||||
option_capitals = atoi(optarg); | |||||
option_capitals = atoi(optarg2); | |||||
break; | break; | ||||
case 'x': | case 'x': | ||||
break; | break; | ||||
case 'p': | case 'p': | ||||
pitch = atoi(optarg); | |||||
pitch = atoi(optarg2); | |||||
break; | break; | ||||
case 'q': | case 'q': | ||||
break; | break; | ||||
case 'f': | case 'f': | ||||
strncpy0(filename,optarg,sizeof(filename)); | |||||
strncpy0(filename,optarg2,sizeof(filename)); | |||||
break; | break; | ||||
case 'l': | case 'l': | ||||
option_linelength = atoi(optarg); | |||||
option_linelength = atoi(optarg2); | |||||
break; | break; | ||||
case 'a': | case 'a': | ||||
volume = atoi(optarg); | |||||
volume = atoi(optarg2); | |||||
break; | break; | ||||
case 's': | case 's': | ||||
speed = atoi(optarg); | |||||
speed = atoi(optarg2); | |||||
break; | break; | ||||
case 'g': | case 'g': | ||||
wordgap = atoi(optarg); | |||||
wordgap = atoi(optarg2); | |||||
break; | break; | ||||
case 'v': | case 'v': | ||||
strncpy0(voicename,optarg,sizeof(voicename)); | |||||
strncpy0(voicename,optarg2,sizeof(voicename)); | |||||
break; | break; | ||||
case 'w': | case 'w': | ||||
option_waveout = 1; | option_waveout = 1; | ||||
strncpy0(wavefile,optarg,sizeof(filename)); | |||||
strncpy0(wavefile,optarg2,sizeof(filename)); | |||||
break; | break; | ||||
case 'z': // remove pause from the end of a sentence | case 'z': // remove pause from the end of a sentence | ||||
case 0x101: // --compile-debug | case 0x101: // --compile-debug | ||||
case 0x102: // --compile | case 0x102: // --compile | ||||
strncpy0(voicename,optarg,sizeof(voicename)); | |||||
strncpy0(voicename,optarg2,sizeof(voicename)); | |||||
flag_compile = c; | flag_compile = c; | ||||
quiet = 1; | quiet = 1; | ||||
break; | break; | ||||
case 0x103: // --punct | case 0x103: // --punct | ||||
option_punctuation = 1; | option_punctuation = 1; | ||||
if(optarg != NULL) | |||||
if(optarg2 != NULL) | |||||
{ | { | ||||
ix = 0; | ix = 0; | ||||
while((ix < N_PUNCTLIST) && ((option_punctlist[ix] = optarg[ix]) != 0)) ix++; | |||||
while((ix < N_PUNCTLIST) && ((option_punctlist[ix] = optarg2[ix]) != 0)) ix++; | |||||
option_punctlist[N_PUNCTLIST-1] = 0; | option_punctlist[N_PUNCTLIST-1] = 0; | ||||
option_punctuation = 2; | option_punctuation = 2; | ||||
} | } | ||||
case 0x104: // --voices | case 0x104: // --voices | ||||
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,data_path,0); | espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,data_path,0); | ||||
DisplayVoices(stdout,optarg); | |||||
DisplayVoices(stdout,optarg2); | |||||
exit(0); | exit(0); | ||||
case 0x106: // -- split | case 0x106: // -- split | ||||
if(optarg == NULL) | |||||
if(optarg2 == NULL) | |||||
samples_split = 30; // default 30 minutes | samples_split = 30; // default 30 minutes | ||||
else | else | ||||
samples_split = atoi(optarg); | |||||
samples_split = atoi(optarg2); | |||||
break; | break; | ||||
case 0x107: // --path | case 0x107: // --path | ||||
data_path = optarg; | |||||
data_path = optarg2; | |||||
break; | break; | ||||
case 0x108: // --phonout | case 0x108: // --phonout | ||||
if((f_phonemes_out = fopen(optarg,"w")) == NULL) | |||||
if((f_phonemes_out = fopen(optarg2,"w")) == NULL) | |||||
{ | { | ||||
fprintf(stderr,"Can't write to: %s\n",optarg); | |||||
fprintf(stderr,"Can't write to: %s\n",optarg2); | |||||
} | } | ||||
break; | break; | ||||
} | } | ||||
#ifdef deleted | |||||
void MyFrame::OnAbout(wxCommandEvent& event) | |||||
{//========================================= | |||||
int result; | |||||
char buf[300]; | |||||
wxString url_docs; | |||||
switch(event.GetId()) | |||||
{ | |||||
case MENU_ABOUT: | |||||
sprintf(buf,about_string,espeak_Info(NULL)); | |||||
(void)wxMessageBox(wxString(buf,wxConvLocal), _T("About eSpeak Editor")); | |||||
break; | |||||
case MENU_DOCS: | |||||
sprintf(buf,"%s/docs/docindex.html",path_home); | |||||
url_docs = wxString(buf,wxConvLocal); | |||||
result = wxLaunchDefaultBrowser(url_docs); | |||||
if(result == 0) | |||||
wxLogStatus(_T("Failed to launch browser")); | |||||
break; | |||||
} | |||||
} | |||||
#endif | |||||
class HtmlWindow: public wxHtmlWindow | class HtmlWindow: public wxHtmlWindow | ||||
{ | { |
}; | }; | ||||
static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = { | static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = { | ||||
{PITCHfall, 30, 5, PITCHfall, 32, 9, NULL, 12, 7, 0}, // 0 statement | |||||
{PITCHfall, 29, 4, PITCHfall, 32, 9, NULL, 12, 6, 0}, // 0 statement | |||||
{PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma | {PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma | ||||
{PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question | {PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question | ||||
// {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation | // {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation |
#define M_MIDDLE_DOT M_DOT_ABOVE // duplicate of M_DOT_ABOVE | #define M_MIDDLE_DOT M_DOT_ABOVE // duplicate of M_DOT_ABOVE | ||||
#define M_IMPLOSIVE M_HOOK | #define M_IMPLOSIVE M_HOOK | ||||
static int n_digit_lookup; | |||||
static char *digit_lookup; | |||||
typedef struct { | typedef struct { | ||||
const char *name; | const char *name; | ||||
int flags; | int flags; | ||||
} // end of CheckDotOrdinal | } // end of CheckDotOrdinal | ||||
int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) | int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) | ||||
{//========================================================================= | {//========================================================================= | ||||
int c; | int c; | ||||
int found; | int found; | ||||
int ix; | int ix; | ||||
int units; | int units; | ||||
int tens; | |||||
int used_and=0; | int used_and=0; | ||||
int found_ordinal = 0; | int found_ordinal = 0; | ||||
int next_phtype; | int next_phtype; | ||||
char ph_digits[50]; | char ph_digits[50]; | ||||
char ph_and[12]; | char ph_and[12]; | ||||
// is there a special pronunciation for this 2-digit number | |||||
units = value % 10; | |||||
tens = value / 10; | |||||
found = 0; | found = 0; | ||||
ph_ordinal[0] = 0; | ph_ordinal[0] = 0; | ||||
if(control & 8) | |||||
if((control & 2) && (n_digit_lookup == 2)) | |||||
{ | { | ||||
sprintf(string,"_%df",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
// pronunciation of the final 2 digits has already been found | |||||
strcpy(ph_out, digit_lookup); | |||||
} | } | ||||
else | else | ||||
if(control & 1) | |||||
{ | |||||
strcpy(ph_ordinal, ph_ordinal2); | |||||
if(control & 4) | |||||
{ | |||||
sprintf(string,"_%dox",value); // LANG=hu, special word for 1. 2. when there are no higher digits | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
if(found == 0) | |||||
{ | |||||
sprintf(string,"_%do",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
found_ordinal = found; | |||||
} | |||||
if(found == 0) | |||||
{ | { | ||||
if((value == 1) && (control & 2)) | |||||
{ | |||||
if(Lookup(tr, "_1a", ph_out) != 0) // LANG=de, "eins" | |||||
return(0); | |||||
} | |||||
sprintf(string,"_%d",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
// no, speak as tens+units | |||||
if((control & 0x10) && (value < 10)) | |||||
{ | |||||
// speak leading zero | |||||
Lookup(tr, "_0", ph_tens); | |||||
} | |||||
else | |||||
{ | |||||
if(found) | |||||
{ | |||||
ph_tens[0] = 0; | |||||
} | |||||
else | |||||
if(digit_lookup[0] == 0) | |||||
{ | { | ||||
units = (value % 10); | |||||
if((control & 1) && ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) | |||||
// is there a special pronunciation for this 2-digit number | |||||
if(control & 8) | |||||
{ | { | ||||
sprintf(string,"_%dXo",value / 10); | |||||
if(Lookup(tr, string, ph_tens) != 0) | |||||
sprintf(string,"_%df",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
else | |||||
if(control & 1) | |||||
{ | |||||
strcpy(ph_ordinal, ph_ordinal2); | |||||
if(control & 4) | |||||
{ | { | ||||
found_ordinal = 1; | |||||
sprintf(string,"_%dox",value); // LANG=hu, special word for 1. 2. when there are no higher digits | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | } | ||||
if(found == 0) | |||||
{ | |||||
sprintf(string,"_%do",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
found_ordinal = found; | |||||
} | } | ||||
if(found_ordinal == 0) | |||||
if(found == 0) | |||||
{ | { | ||||
sprintf(string,"_%dX",value / 10); | |||||
Lookup(tr, string, ph_tens); | |||||
if((value == 1) && (control & 2)) | |||||
{ | |||||
if(Lookup(tr, "_1a", ph_out) != 0) // LANG=de, "eins" | |||||
return(0); | |||||
} | |||||
sprintf(string,"_%d",value); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | } | ||||
if((ph_tens[0] == 0) && (tr->langopts.numbers & NUM_VIGESIMAL)) | |||||
} | |||||
// no, speak as tens+units | |||||
if((control & 0x10) && (value < 10)) | |||||
{ | |||||
// speak leading zero | |||||
Lookup(tr, "_0", ph_tens); | |||||
} | |||||
else | |||||
{ | |||||
if(found) | |||||
{ | { | ||||
// tens not found, (for example) 73 is 60+13 | |||||
units = (value % 20); | |||||
sprintf(string,"_%dX",(value / 10) & 0xfe); | |||||
Lookup(tr, string, ph_tens); | |||||
ph_tens[0] = 0; | |||||
} | } | ||||
ph_digits[0] = 0; | |||||
if(units > 0) | |||||
{ | |||||
found = 0; | |||||
if(control & 8) | |||||
{ | |||||
// is there a variant form of this number? | |||||
sprintf(string,"_%df",units); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
if((control & 1) && ((tr->langopts.numbers & NUM_SWAP_TENS) == 0)) | |||||
else | |||||
{ | |||||
if((control & 1) && ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) | |||||
{ | { | ||||
// ordinal | |||||
sprintf(string,"_%do",units); | |||||
if((found = Lookup(tr, string, ph_digits)) != 0) | |||||
sprintf(string,"_%dXo", tens); | |||||
if(Lookup(tr, string, ph_tens) != 0) | |||||
{ | { | ||||
found_ordinal = 1; | found_ordinal = 1; | ||||
} | } | ||||
} | } | ||||
if(found == 0) | |||||
if(found_ordinal == 0) | |||||
{ | { | ||||
sprintf(string,"_%d",units); | |||||
Lookup(tr, string, ph_digits); | |||||
sprintf(string,"_%dX", tens); | |||||
Lookup(tr, string, ph_tens); | |||||
} | |||||
if((ph_tens[0] == 0) && (tr->langopts.numbers & NUM_VIGESIMAL)) | |||||
{ | |||||
// tens not found, (for example) 73 is 60+13 | |||||
units = (value % 20); | |||||
sprintf(string,"_%dX", tens & 0xfe); | |||||
Lookup(tr, string, ph_tens); | |||||
} | |||||
ph_digits[0] = 0; | |||||
if(units > 0) | |||||
{ | |||||
found = 0; | |||||
if((control & 2) && (digit_lookup[0] != 0)) | |||||
{ | |||||
// we have an entry for this digit (possibly together with the next word) | |||||
strcpy(ph_digits, digit_lookup); | |||||
found_ordinal = 1; | |||||
ph_ordinal[0] = 0; | |||||
} | |||||
else | |||||
{ | |||||
if(control & 8) | |||||
{ | |||||
// is there a variant form of this number? | |||||
sprintf(string,"_%df",units); | |||||
found = Lookup(tr, string, ph_digits); | |||||
} | |||||
if((control & 1) && ((tr->langopts.numbers & NUM_SWAP_TENS) == 0)) | |||||
{ | |||||
// ordinal | |||||
sprintf(string,"_%do",units); | |||||
if((found = Lookup(tr, string, ph_digits)) != 0) | |||||
{ | |||||
found_ordinal = 1; | |||||
} | |||||
} | |||||
if(found == 0) | |||||
{ | |||||
sprintf(string,"_%d",units); | |||||
Lookup(tr, string, ph_digits); | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
if((control & 1) && (found_ordinal == 0) && (ph_ordinal[0] == 0)) | |||||
{ | |||||
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) | |||||
Lookup(tr, "_ord20", ph_ordinal); | |||||
if(ph_ordinal[0] == 0) | |||||
Lookup(tr, "_ord", ph_ordinal); | |||||
} | |||||
if((tr->langopts.numbers & (NUM_SWAP_TENS | NUM_AND_UNITS)) && (ph_tens[0] != 0) && (ph_digits[0] != 0)) | |||||
{ | |||||
Lookup(tr, "_0and", ph_and); | |||||
if(tr->langopts.numbers & NUM_SWAP_TENS) | |||||
sprintf(ph_out,"%s%s%s%s",ph_digits, ph_and, ph_tens, ph_ordinal); | |||||
if((control & 1) && (found_ordinal == 0) && (ph_ordinal[0] == 0)) | |||||
{ | |||||
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) | |||||
Lookup(tr, "_ord20", ph_ordinal); | |||||
if(ph_ordinal[0] == 0) | |||||
Lookup(tr, "_ord", ph_ordinal); | |||||
} | |||||
if((tr->langopts.numbers & (NUM_SWAP_TENS | NUM_AND_UNITS)) && (ph_tens[0] != 0) && (ph_digits[0] != 0)) | |||||
{ | |||||
Lookup(tr, "_0and", ph_and); | |||||
if(tr->langopts.numbers & NUM_SWAP_TENS) | |||||
sprintf(ph_out,"%s%s%s%s",ph_digits, ph_and, ph_tens, ph_ordinal); | |||||
else | |||||
sprintf(ph_out,"%s%s%s%s",ph_tens, ph_and, ph_digits, ph_ordinal); | |||||
used_and = 1; | |||||
} | |||||
else | else | ||||
sprintf(ph_out,"%s%s%s%s",ph_tens, ph_and, ph_digits, ph_ordinal); | |||||
used_and = 1; | |||||
} | |||||
else | |||||
{ | |||||
if(tr->langopts.numbers & NUM_SINGLE_VOWEL) | |||||
{ | { | ||||
// remove vowel from the end of tens if units starts with a vowel (LANG=Italian) | |||||
if(((ix = strlen(ph_tens)-1) >= 0) && (ph_digits[0] != 0)) | |||||
if(tr->langopts.numbers & NUM_SINGLE_VOWEL) | |||||
{ | { | ||||
if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) | |||||
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; | |||||
if((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL)) | |||||
ph_tens[ix] = 0; | |||||
// remove vowel from the end of tens if units starts with a vowel (LANG=Italian) | |||||
if(((ix = strlen(ph_tens)-1) >= 0) && (ph_digits[0] != 0)) | |||||
{ | |||||
if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) | |||||
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; | |||||
if((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL)) | |||||
ph_tens[ix] = 0; | |||||
} | |||||
} | } | ||||
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal); | |||||
} | } | ||||
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal); | |||||
} | } | ||||
if(tr->langopts.numbers & NUM_SINGLE_STRESS) | if(tr->langopts.numbers & NUM_SINGLE_STRESS) | ||||
char ph_append[50]; | char ph_append[50]; | ||||
char ph_buf[200]; | char ph_buf[200]; | ||||
char ph_buf2[50]; | char ph_buf2[50]; | ||||
char ph_zeros[50]; | |||||
char suffix[20]; | char suffix[20]; | ||||
char buf_digit_lookup[50]; | |||||
static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | ||||
*flags = 0; | *flags = 0; | ||||
digit_lookup = buf_digit_lookup; | |||||
for(ix=0; isdigit(word[ix]); ix++) ; | for(ix=0; isdigit(word[ix]); ix++) ; | ||||
n_digits = ix; | n_digits = ix; | ||||
value = this_value = atoi(word); | value = this_value = atoi(word); | ||||
ph_ordinal2[0] = 0; | ph_ordinal2[0] = 0; | ||||
ph_zeros[0] = 0; | |||||
ordinal = CheckDotOrdinal(tr, &word[ix], wtab, 1); | ordinal = CheckDotOrdinal(tr, &word[ix], wtab, 1); | ||||
ix++; | ix++; | ||||
hyphen = 0; | hyphen = 0; | ||||
p = suffix; | p = suffix; | ||||
if(word[ix] == '-') | |||||
if(wtab[0].flags & FLAG_HYPHEN_AFTER) | |||||
{ | { | ||||
*p++ = '-'; | *p++ = '-'; | ||||
hyphen = 1; | hyphen = 1; | ||||
ix += 2; | |||||
ix++; | |||||
} | } | ||||
while((word[ix] != 0) && (word[ix] != ' ') && (ix < (sizeof(suffix)-1))) | while((word[ix] != 0) && (word[ix] != ' ') && (ix < (sizeof(suffix)-1))) | ||||
{ | { | ||||
// this is an ordinal suffix | // this is an ordinal suffix | ||||
ordinal = 2; | ordinal = 2; | ||||
flags[0] |= FLAG_SKIPWORDS; | flags[0] |= FLAG_SKIPWORDS; | ||||
dictionary_skipwords = 1 + hyphen; | |||||
dictionary_skipwords = 1; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
return(0); // number string with leading zero, speak as individual digits | |||||
if(n_digits > 3) | |||||
{ | |||||
flags[0] &= ~FLAG_SKIPWORDS; | |||||
return(0); // long number string with leading zero, speak as individual digits | |||||
} | |||||
// speak leading zeros | |||||
for(ix=0; (word[ix] == '0') && (ix < (n_digits-1)); ix++) | |||||
{ | |||||
Lookup(tr, "_0", &ph_zeros[strlen(ph_zeros)]); | |||||
} | |||||
} | } | ||||
} | } | ||||
Lookup(tr, "_.", ph_append); | Lookup(tr, "_.", ph_append); | ||||
} | } | ||||
n_digit_lookup = 0; | |||||
buf_digit_lookup[0] = 0; | |||||
if(thousandplex == 0) | |||||
{ | |||||
char *p2; | |||||
// look for combinations of the number with the next word | |||||
p = word; | |||||
while(isdigit(p[1])) p++; // just use the last digit | |||||
if(isdigit(p[-1])) | |||||
{ | |||||
p2 = p - 1; | |||||
if(LookupDictList(tr, &p2, buf_digit_lookup, flags, FLAG_SUFX, wtab)) // lookup 2 digits | |||||
n_digit_lookup = 2; | |||||
} | |||||
if((buf_digit_lookup[0] == 0) && (*p != '0')) | |||||
{ | |||||
// not found, lookup only the last digit | |||||
if(LookupDictList(tr, &p, buf_digit_lookup, flags, FLAG_SUFX, wtab)) // don't match '0', or entries with $only | |||||
n_digit_lookup = 1; | |||||
} | |||||
} | |||||
LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal); | LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal); | ||||
if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) | if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) | ||||
sprintf(ph_out,"%s%s%s",ph_append,ph_buf2,ph_buf); // say "thousands" before its number | |||||
sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_append,ph_buf2,ph_buf); // say "thousands" before its number | |||||
else | else | ||||
sprintf(ph_out,"%s%s%s",ph_buf2,ph_buf,ph_append); | |||||
sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_buf2,ph_buf,ph_append); | |||||
while(decimal_point) | while(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)) | |||||
if(!iswalpha(next_char) && !(wtab[0].flags & FLAG_HYPHEN_AFTER)) | |||||
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. | ||||
} | } | ||||
if(((pl = &ph_list2[k])->sourceix != 0) && (k > ix)) | if(((pl = &ph_list2[k])->sourceix != 0) && (k > ix)) | ||||
break; | break; | ||||
pl->stress &= 0xf; | |||||
pl->stresslevel &= 0xf; | |||||
if(phoneme_tab[pl->phcode]->type == phVOWEL) | if(phoneme_tab[pl->phcode]->type == phVOWEL) | ||||
{ | { | ||||
n_syllables++; | n_syllables++; | ||||
if(pl->stress > max_stress) | |||||
if(pl->stresslevel > max_stress) | |||||
{ | { | ||||
syllable_stressed = n_syllables; | syllable_stressed = n_syllables; | ||||
max_stress = pl->stress; | |||||
max_stress = pl->stresslevel; | |||||
max_stress_posn = k; | max_stress_posn = k; | ||||
} | } | ||||
} | } | ||||
flags |= 8; | flags |= 8; | ||||
ch.flags = flags | word_end; | ch.flags = flags | word_end; | ||||
ch.stress = plist2->stress; | |||||
ch.stress = plist2->stresslevel; | |||||
ch.stress_highest = max_stress; | ch.stress_highest = max_stress; | ||||
ch.n_vowels = n_syllables; | ch.n_vowels = n_syllables; | ||||
ch.vowel_this = syllable; | ch.vowel_this = syllable; | ||||
if((replace_flags & 1) && (word_end == 0)) | if((replace_flags & 1) && (word_end == 0)) | ||||
continue; // this replacement only occurs at the end of a word | continue; // this replacement only occurs at the end of a word | ||||
if((replace_flags & 2) && ((plist2->stress & 0x7) > 3)) | |||||
if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3)) | |||||
continue; // this replacement doesn't occur in stressed syllables | continue; // this replacement doesn't occur in stressed syllables | ||||
// substitute the replacement phoneme | // substitute the replacement phoneme | ||||
plist2->phcode = replace_phonemes[k].new_ph; | plist2->phcode = replace_phonemes[k].new_ph; | ||||
if((plist2->stress > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) | |||||
plist2->stress = 0; // the replacement must be unstressed | |||||
if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) | |||||
plist2->stresslevel = 0; // the replacement must be unstressed | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
for(j = n_ph_list2-3; j>=0; j--) | for(j = n_ph_list2-3; j>=0; j--) | ||||
{ | { | ||||
// start with the last phoneme (before the terminating pauses) and move forwards | // start with the last phoneme (before the terminating pauses) and move forwards | ||||
if((plist2[j].stress & 0x7f) > max_stress) | |||||
max_stress = plist2[j].stress & 0x7f; | |||||
if((plist2[j].stresslevel & 0x7f) > max_stress) | |||||
max_stress = plist2[j].stresslevel & 0x7f; | |||||
if(plist2[j].sourceix != 0) | if(plist2[j].sourceix != 0) | ||||
break; | break; | ||||
} | } | ||||
{ | { | ||||
if(plist2[j].synthflags & SFLAG_PROMOTE_STRESS) // dictionary flags indicated that this stress can be promoted | if(plist2[j].synthflags & SFLAG_PROMOTE_STRESS) // dictionary flags indicated that this stress can be promoted | ||||
{ | { | ||||
plist2[j].stress = 4; // promote to stressed | |||||
plist2[j].stresslevel = 4; // promote to stressed | |||||
break; | break; | ||||
} | } | ||||
if(plist2[j].stress >= 4) | |||||
if(plist2[j].stresslevel >= 4) | |||||
{ | { | ||||
// found a stressed syllable, so stop looking | // found a stressed syllable, so stop looking | ||||
break; | break; | ||||
if(plist2->phcode == phonSWITCH) | if(plist2->phcode == phonSWITCH) | ||||
{ | { | ||||
// change phoneme table | // change phoneme table | ||||
SelectPhonemeTable(plist2->tone_number); | |||||
SelectPhonemeTable(plist2->tone_ph); | |||||
switched_language ^= SFLAG_SWITCHED_LANG; | switched_language ^= SFLAG_SWITCHED_LANG; | ||||
} | } | ||||
next = phoneme_tab[(plist2+1)->phcode]; // the phoneme after this one | next = phoneme_tab[(plist2+1)->phcode]; // the phoneme after this one | ||||
if(ph_list3[k].sourceix) | if(ph_list3[k].sourceix) | ||||
break; // start of the next word | break; // start of the next word | ||||
if(ph_list3[k].stress > word_stress) | |||||
word_stress = ph_list3[k].stress; | |||||
if(ph_list3[k].stresslevel > word_stress) | |||||
word_stress = ph_list3[k].stresslevel; | |||||
} | } | ||||
} | } | ||||
if(ph->type == phVOWEL) | if(ph->type == phVOWEL) | ||||
{ | { | ||||
// check for consecutive unstressed syllables | // check for consecutive unstressed syllables | ||||
if(plist2->stress == 0) | |||||
if(plist2->stresslevel == 0) | |||||
{ | { | ||||
// an unstressed vowel | // an unstressed vowel | ||||
unstress_count++; | unstress_count++; | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
plist2->stress = 1; // change stress to 'diminished' | |||||
plist2->stresslevel = 1; // change stress to 'diminished' | |||||
} | } | ||||
} | } | ||||
} | } | ||||
{ | { | ||||
plist2->synthflags |= SFLAG_SYLLABLE; | plist2->synthflags |= SFLAG_SYLLABLE; | ||||
if(ph2->type != phVOWEL) | if(ph2->type != phVOWEL) | ||||
plist2->stress = 0; // change from non-vowel to vowel, make sure it's unstressed | |||||
plist2->stresslevel = 0; // change from non-vowel to vowel, make sure it's unstressed | |||||
} | } | ||||
else | else | ||||
plist2->synthflags &= ~SFLAG_SYLLABLE; | plist2->synthflags &= ~SFLAG_SYLLABLE; | ||||
{ | { | ||||
if((ph->mnemonic == 't') && (plist2->sourceix == 0) && ((prev->type == phVOWEL) || (prev->mnemonic == 'n'))) | if((ph->mnemonic == 't') && (plist2->sourceix == 0) && ((prev->type == phVOWEL) || (prev->mnemonic == 'n'))) | ||||
{ | { | ||||
if(((plist2+1)->sourceix == 0) && ((plist2+1)->stress < 3) && (next->type == phVOWEL)) | |||||
if(((plist2+1)->sourceix == 0) && ((plist2+1)->stresslevel < 3) && (next->type == phVOWEL)) | |||||
{ | { | ||||
ph = phoneme_tab[phonT_REDUCED]; | ph = phoneme_tab[phonT_REDUCED]; | ||||
} | } | ||||
if(ph->type == phVOWEL) | if(ph->type == phVOWEL) | ||||
{ | { | ||||
stress_level = plist2->stress; | |||||
stress_level = plist2->stresslevel; | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
// consonant, get stress from the following vowel | // consonant, get stress from the following vowel | ||||
if(next->type == phVOWEL) | if(next->type == phVOWEL) | ||||
stress_level = (plist2+1)->stress; | |||||
stress_level = (plist2+1)->stresslevel; | |||||
else | else | ||||
break; | break; | ||||
} | } | ||||
insert_ph = phonPAUSE_VSHORT; | insert_ph = phonPAUSE_VSHORT; | ||||
} | } | ||||
if(((plist2+1)->stress >= 4) && (tr->langopts.vowel_pause & 0x100)) | |||||
if(((plist2+1)->stresslevel >= 4) && (tr->langopts.vowel_pause & 0x100)) | |||||
{ | { | ||||
// pause before a words which starts with a stressed vowel | // pause before a words which starts with a stressed vowel | ||||
insert_ph = phonPAUSE_SHORT; | insert_ph = phonPAUSE_SHORT; | ||||
phlist[ix].type = ph->type; | phlist[ix].type = ph->type; | ||||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module | phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module | ||||
phlist[ix].synthflags = plist2->synthflags | switched_language; | phlist[ix].synthflags = plist2->synthflags | switched_language; | ||||
phlist[ix].stresslevel = plist2->stress & 0xf; | |||||
phlist[ix].tone_ph = plist2->tone_number; | |||||
phlist[ix].stresslevel = plist2->stresslevel & 0xf; | |||||
phlist[ix].tone_ph = plist2->tone_ph; | |||||
phlist[ix].sourceix = 0; | phlist[ix].sourceix = 0; | ||||
if(plist2->sourceix != 0) | if(plist2->sourceix != 0) |
static int sayas_mode; | static int sayas_mode; | ||||
static int ssml_ignore_l_angle = 0; | static int ssml_ignore_l_angle = 0; | ||||
static const char *punct_stop = ".:!?"; // pitch fall if followed by space | |||||
static const char *punct_close = ")]}>;'\""; // always pitch fall unless followed by alnum | |||||
// alter tone for announce punctuation or capitals | // alter tone for announce punctuation or capitals | ||||
//static const char *tone_punct_on = "\0016T"; // add reverberation, lower pitch | //static const char *tone_punct_on = "\0016T"; // add reverberation, lower pitch | ||||
//static const char *tone_punct_off = "\001T\001P"; | //static const char *tone_punct_off = "\001T\001P"; | ||||
CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, | CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, | ||||
CLAUSE_SEMICOLON, // en-dash | CLAUSE_SEMICOLON, // en-dash | ||||
CLAUSE_SEMICOLON, // em-dash | CLAUSE_SEMICOLON, // em-dash | ||||
CLAUSE_SEMICOLON, // elipsis | |||||
CLAUSE_SEMICOLON + PUNCT_SAY_NAME, // elipsis | |||||
CLAUSE_QUESTION, // Greek question mark | CLAUSE_QUESTION, // Greek question mark | ||||
CLAUSE_SEMICOLON, // Greek semicolon | CLAUSE_SEMICOLON, // Greek semicolon | ||||
if(LookupDictList(tr,&string1,phonemes,flags,0,NULL)) | if(LookupDictList(tr,&string1,phonemes,flags,0,NULL)) | ||||
{ | { | ||||
SetWordStress(tr, phonemes, flags[0], -1, 0); | |||||
SetWordStress(tr, phonemes, flags, -1, 0); | |||||
DecodePhonemes(phonemes,phonemes2); | DecodePhonemes(phonemes,phonemes2); | ||||
sprintf(text_out,"[[%s]]",phonemes2); | sprintf(text_out,"[[%s]]",phonemes2); | ||||
option_phoneme_input |= 2; | option_phoneme_input |= 2; | ||||
} | } | ||||
static const char *LookupCharName(Translator *tr, int c) | |||||
{//===================================================== | |||||
static const char *LookupCharName(Translator *tr, int c, int only) | |||||
{//=============================================================== | |||||
// Find the phoneme string (in ascii) to speak the name of character c | // Find the phoneme string (in ascii) to speak the name of character c | ||||
// Used for punctuation characters and symbols | // Used for punctuation characters and symbols | ||||
ix = utf8_out(c,&single_letter[2]); | ix = utf8_out(c,&single_letter[2]); | ||||
single_letter[2+ix]=0; | single_letter[2+ix]=0; | ||||
string = &single_letter[1]; | |||||
if(LookupDictList(tr, &string, phonemes, flags, 0, NULL) == 0) | |||||
if(only) | |||||
{ | { | ||||
// try _* then * | |||||
string = &single_letter[2]; | string = &single_letter[2]; | ||||
LookupDictList(tr, &string, phonemes, flags, 0, NULL); | |||||
} | |||||
else | |||||
{ | |||||
string = &single_letter[1]; | |||||
if(LookupDictList(tr, &string, phonemes, flags, 0, NULL) == 0) | if(LookupDictList(tr, &string, phonemes, flags, 0, NULL) == 0) | ||||
{ | { | ||||
// now try the rules | |||||
single_letter[1] = ' '; | |||||
TranslateRules(tr, &single_letter[2], phonemes, sizeof(phonemes), NULL,0,NULL); | |||||
// try _* then * | |||||
string = &single_letter[2]; | |||||
if(LookupDictList(tr, &string, phonemes, flags, 0, NULL) == 0) | |||||
{ | |||||
// now try the rules | |||||
single_letter[1] = ' '; | |||||
TranslateRules(tr, &single_letter[2], phonemes, sizeof(phonemes), NULL,0,NULL); | |||||
} | |||||
} | } | ||||
} | } | ||||
if((phonemes[0] == 0) && (tr->translator_name != L('e','n'))) | |||||
if((only==0) && (phonemes[0] == 0) && (tr->translator_name != L('e','n'))) | |||||
{ | { | ||||
// not found, try English | // not found, try English | ||||
SetTranslator2("en"); | SetTranslator2("en"); | ||||
{ | { | ||||
if(lang_name) | if(lang_name) | ||||
{ | { | ||||
SetWordStress(translator2, phonemes, flags[0], -1, 0); | |||||
SetWordStress(translator2, phonemes, flags, -1, 0); | |||||
DecodePhonemes(phonemes,phonemes2); | DecodePhonemes(phonemes,phonemes2); | ||||
sprintf(buf,"[[_^_%s %s _^_%s]]","en",phonemes2,WordToString2(tr->translator_name)); | sprintf(buf,"[[_^_%s %s _^_%s]]","en",phonemes2,WordToString2(tr->translator_name)); | ||||
SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table | SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
SetWordStress(tr, phonemes, flags[0], -1, 0); | |||||
SetWordStress(tr, phonemes, flags, -1, 0); | |||||
DecodePhonemes(phonemes,phonemes2); | DecodePhonemes(phonemes,phonemes2); | ||||
sprintf(buf,"[[%s]] ",phonemes2); | sprintf(buf,"[[%s]] ",phonemes2); | ||||
} | } | ||||
option_phoneme_input |= 2; | option_phoneme_input |= 2; | ||||
} | } | ||||
else | else | ||||
if(only == 0) | |||||
{ | { | ||||
strcpy(buf,"[[(X1)(X1)(X1)]]"); | strcpy(buf,"[[(X1)(X1)(X1)]]"); | ||||
option_phoneme_input |= 2; | option_phoneme_input |= 2; | ||||
const char *punctname; | const char *punctname; | ||||
int found = 0; | int found = 0; | ||||
int soundicon; | int soundicon; | ||||
int attributes; | |||||
int short_pause; | |||||
int c2; | int c2; | ||||
int len; | int len; | ||||
int bufix1; | int bufix1; | ||||
found = 1; | found = 1; | ||||
} | } | ||||
else | else | ||||
if((punctname = LookupCharName(tr, c1)) != NULL) | |||||
if((punctname = LookupCharName(tr, c1, 0)) != NULL) | |||||
{ | { | ||||
found = 1; | found = 1; | ||||
if((*bufix==0) || (end_clause==0)) | |||||
if((*bufix==0) || (end_clause ==0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) | |||||
{ | { | ||||
punct_count=1; | punct_count=1; | ||||
while(c2 == c1) | while(c2 == c1) | ||||
if(c1 == '-') | if(c1 == '-') | ||||
return(CLAUSE_NONE); // no pause | return(CLAUSE_NONE); // no pause | ||||
if(bufix1 > 0) | |||||
return(CLAUSE_SHORTCOMMA); | |||||
if((strchr_w(punct_close,c1) != NULL) && !iswalnum(c2)) | |||||
return(CLAUSE_SHORTFALL+4); | |||||
if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) | |||||
return(punct_attributes[lookupwchar(punct_chars,c1)]); | |||||
attributes = punct_attributes[lookupwchar(punct_chars,c1)]; | |||||
short_pause = CLAUSE_SHORTFALL; | |||||
if((attributes & CLAUSE_BITS_INTONATION) == 0x1000) | |||||
short_pause = CLAUSE_SHORTCOMMA; | |||||
if((bufix1 > 0) && !(tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) | |||||
{ | |||||
if((attributes & ~0x8000) == CLAUSE_SEMICOLON) | |||||
return(CLAUSE_SHORTFALL); | |||||
return(short_pause); | |||||
} | |||||
if(attributes & CLAUSE_BIT_SENTENCE) | |||||
return(attributes); | |||||
return(CLAUSE_SHORTCOMMA); | |||||
return(short_pause); | |||||
} // end of AnnouncePunctuation | } // end of AnnouncePunctuation | ||||
#define SSML_SPEAK 1 | #define SSML_SPEAK 1 | ||||
int c2; // next character | int c2; // next character | ||||
int cprev=' '; // previous character | int cprev=' '; // previous character | ||||
int cprev2=' '; | int cprev2=' '; | ||||
int c_next; | |||||
int parag; | int parag; | ||||
int ix = 0; | int ix = 0; | ||||
int j; | int j; | ||||
int found; | int found; | ||||
int any_alnum = 0; | int any_alnum = 0; | ||||
int self_closing; | int self_closing; | ||||
int punct_data; | |||||
int punct_data = 0; | |||||
int is_end_clause; | int is_end_clause; | ||||
int announced_punctuation; | int announced_punctuation; | ||||
int stressed_word = 0; | int stressed_word = 0; | ||||
{ | { | ||||
is_end_clause = 0; | is_end_clause = 0; | ||||
if((c1 == '.') && (c2 == '.')) | |||||
{ | |||||
while((c_next = GetC()) == '.') | |||||
{ | |||||
// 3 or more dots, replace by elipsis | |||||
c1 = 0x2026; | |||||
c2 = ' '; | |||||
} | |||||
UngetC(c_next); | |||||
} | |||||
punct_data = 0; | |||||
if((punct = lookupwchar(punct_chars,c1)) != 0) | if((punct = lookupwchar(punct_chars,c1)) != 0) | ||||
{ | { | ||||
punct_data = punct_attributes[punct]; | punct_data = punct_attributes[punct]; | ||||
} | } | ||||
} | } | ||||
if(is_end_clause) | |||||
if((punct_data & PUNCT_SAY_NAME) && (announced_punctuation == 0)) | |||||
{ | { | ||||
int c_next; | |||||
if((c1 == '.') && (cprev == '.')) | |||||
// used for elipsis (and 3 dots) if a pronunciation for elipsis is given in *_list | |||||
char *p2; | |||||
p2 = &buf[ix]; | |||||
sprintf(p2,"%s",LookupCharName(tr, c1, 1)); | |||||
if(p2[0] != 0) | |||||
{ | { | ||||
c1 = 0x2026; | |||||
punct = 9; // elipsis | |||||
ix += strlen(p2); | |||||
announced_punctuation = c1; | |||||
punct_data = punct_data & ~CLAUSE_BITS_INTONATION; // change intonation type to 0 (full-stop) | |||||
} | } | ||||
} | |||||
if(is_end_clause) | |||||
{ | |||||
nl_count = 0; | nl_count = 0; | ||||
c_next = c2; | c_next = c2; | ||||
} | } | ||||
} | } | ||||
if((nl_count==0) && (c1 == '.')) | |||||
if(nl_count==0) | |||||
{ | { | ||||
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && | |||||
(iswdigit(cprev) || (IsRomanU(cprev) && (IsRomanU(cprev2) || iswspace(cprev2))))) // lang=hu | |||||
if(c1 == '.') | |||||
{ | { | ||||
// dot after a number indicates an ordinal number | |||||
if(!iswdigit(cprev) || iswlower(c_next) || (c_next == '<')) | |||||
is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | |||||
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && | |||||
(iswdigit(cprev) || (IsRomanU(cprev) && (IsRomanU(cprev2) || iswspace(cprev2))))) // lang=hu | |||||
{ | |||||
// dot after a number indicates an ordinal number | |||||
if(!iswdigit(cprev) || iswlower(c_next) || (c_next == '<')) | |||||
is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | |||||
} | |||||
else | |||||
if(iswlower(c_next)) | |||||
{ | |||||
// next word has no capital letter, this dot is probably from an abbreviation | |||||
c1 = ' '; | |||||
is_end_clause = 0; | |||||
} | |||||
if(any_alnum==0) | |||||
{ | |||||
// no letters or digits yet, so probably not a sentence terminator | |||||
// Here, dot is followed by space or bracket | |||||
c1 = ' '; | |||||
is_end_clause = 0; | |||||
} | |||||
} | } | ||||
else | else | ||||
if(iswlower(c_next)) | |||||
{ | |||||
// next word has no capital letter, this dot is probably from an abbreviation | |||||
c1 = ' '; | |||||
is_end_clause = 0; | |||||
} | |||||
if(any_alnum==0) | |||||
{ | { | ||||
c1 = ' '; // no letters or digits yet, so probably not a sentence terminator | |||||
is_end_clause = 0; | |||||
if(any_alnum==0) | |||||
{ | |||||
// no letters or digits yet, so probably not a sentence terminator | |||||
is_end_clause = 0; | |||||
} | |||||
} | } | ||||
} | } | ||||
buf[ix] = ' '; | buf[ix] = ' '; | ||||
buf[ix+1] = 0; | buf[ix+1] = 0; | ||||
punct_data = punct_attributes[punct]; | |||||
if(nl_count > 1) | if(nl_count > 1) | ||||
{ | { | ||||
if((punct_data == CLAUSE_QUESTION) || (punct_data == CLAUSE_EXCLAMATION)) | if((punct_data == CLAUSE_QUESTION) || (punct_data == CLAUSE_EXCLAMATION)) | ||||
if(c1 == announced_punctuation) | if(c1 == announced_punctuation) | ||||
{ | { | ||||
// const unsigned short keep_punctuation[] = { | |||||
// '\'', '-', 0x92, 0xb4, 0x2019, 0x2032, 0 }; | |||||
// This character has already been announced, so delete it so that it isn't spoken a second time. | // This character has already been announced, so delete it so that it isn't spoken a second time. | ||||
// Unless it's a hyphen or apostrophe (which is used by TranslateClause() ) | // Unless it's a hyphen or apostrophe (which is used by TranslateClause() ) | ||||
if(!IsBracket(c1)) | |||||
if(IsBracket(c1)) | |||||
{ | |||||
c1 = 0xe000 + '('; // Unicode private useage area. So TranslateRules() knows the bracket name has been spoken | |||||
} | |||||
else | |||||
if(c1 != '-') | |||||
{ | { | ||||
c1 = ' '; | c1 = ' '; | ||||
} | } |
#define ARCH_BIG | #define ARCH_BIG | ||||
#endif | #endif | ||||
#ifdef __QNX__ | |||||
#define NEED_GETOPT | |||||
#define NO_VARIADIC_MACROS | |||||
#endif | |||||
#define PLATFORM_POSIX | #define PLATFORM_POSIX | ||||
#define PATHSEP '/' | #define PATHSEP '/' | ||||
// USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile | // USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.41.18 19.Oct.09"; | |||||
const char *version_string = "1.41.32 09.Nov.09"; | |||||
const int version_phdata = 0x014118; | const int version_phdata = 0x014118; | ||||
int option_device_number = -1; | int option_device_number = -1; |
else | else | ||||
{ | { | ||||
DoSpect(p->ph,prev->ph,phoneme_tab[phonPAUSE],2,p,0); | DoSpect(p->ph,prev->ph,phoneme_tab[phonPAUSE],2,p,0); | ||||
if((p->newword == 0) && (next2->newword == 0)) | |||||
{ | |||||
if((next->type == phVFRICATIVE) && (p->ph->mnemonic !='d')) | |||||
DoPause(20,0); | |||||
if((next->type == phFRICATIVE) || (next->type == phNASAL)) | |||||
DoPause(12,0); | |||||
} | |||||
} | } | ||||
break; | break; | ||||
tr->langopts.param[LOPT_SONORANT_MIN] = 95; | tr->langopts.param[LOPT_SONORANT_MIN] = 95; | ||||
tr->langopts.param[LOPT_MAXAMP_EOC] = 19; | tr->langopts.param[LOPT_MAXAMP_EOC] = 19; | ||||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 's'; // don't count this character at start of word | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 's'; // don't count this character at start of word | ||||
tr->langopts.param[LOPT_BRACKET_PAUSE] = 4; // pause at bracket | |||||
tr->langopts.param2[LOPT_BRACKET_PAUSE] = 2; // pauses when announcing bracket names | |||||
tr->langopts.max_initial_consonants = 3; | tr->langopts.max_initial_consonants = 3; | ||||
tr->langopts.replace_chars = NULL; | tr->langopts.replace_chars = NULL; | ||||
tr->langopts.ascii_language = ""; // Non-Latin alphabet languages, use this language to speak Latin words, default is English | tr->langopts.ascii_language = ""; // Non-Latin alphabet languages, use this language to speak Latin words, default is English | ||||
tr->langopts.vowel_pause = 0x20; | tr->langopts.vowel_pause = 0x20; | ||||
tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
tr->langopts.stress_flags = 0x8036; | |||||
tr->langopts.stress_flags = 0x8036 | STRS_HYPEN_UNSTRESS; | |||||
tr->langopts.unstressed_wd1 = 2; | tr->langopts.unstressed_wd1 = 2; | ||||
// tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; // don't propagate over word boundaries | |||||
tr->langopts.param[LOPT_IT_DOUBLING] = 1; | tr->langopts.param[LOPT_IT_DOUBLING] = 1; | ||||
tr->langopts.param[LOPT_ANNOUNCE_PUNCT] = 2; // don't break clause before announcing . ? ! | |||||
// tr->langopts.param[LOPT_COMBINE_WORDS] = 9; // combine some prepositions with the following word | // tr->langopts.param[LOPT_COMBINE_WORDS] = 9; // combine some prepositions with the following word | ||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_5 | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS | NUM_ORDINAL_DOT | NUM_OMIT_1_HUNDRED; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_5 | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS | NUM_ORDINAL_DOT | NUM_OMIT_1_HUNDRED; |
static int prev_clause_pause=0; | static int prev_clause_pause=0; | ||||
static int max_clause_pause = 0; | static int max_clause_pause = 0; | ||||
static int any_stressed_words; | |||||
int pre_pause; | int pre_pause; | ||||
{ | { | ||||
char *p; | char *p; | ||||
// German, keep a secondary stress on the stem | // German, keep a secondary stress on the stem | ||||
SetWordStress(tr, phonemes, dictionary_flags[0], 3, 0); | |||||
SetWordStress(tr, phonemes, dictionary_flags, 3, 0); | |||||
// reduce all but the first primary stress | // reduce all but the first primary stress | ||||
ix=0; | ix=0; | ||||
} | } | ||||
strcpy(word_phonemes,prefix_phonemes); | strcpy(word_phonemes,prefix_phonemes); | ||||
strcat(word_phonemes,phonemes); | strcat(word_phonemes,phonemes); | ||||
SetWordStress(tr, word_phonemes, dictionary_flags[0], -1, 0); | |||||
SetWordStress(tr, word_phonemes, dictionary_flags, -1, 0); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
// stress position affects the whole word, including prefix | // stress position affects the whole word, including prefix | ||||
strcpy(word_phonemes,prefix_phonemes); | strcpy(word_phonemes,prefix_phonemes); | ||||
strcat(word_phonemes,phonemes); | strcat(word_phonemes,phonemes); | ||||
SetWordStress(tr, word_phonemes, dictionary_flags[0], -1, tr->prev_last_stress); | |||||
SetWordStress(tr, word_phonemes, dictionary_flags, -1, tr->prev_last_stress); | |||||
} | } | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
if(prefix_phonemes[0] == 0) | if(prefix_phonemes[0] == 0) | ||||
SetWordStress(tr, phonemes, dictionary_flags[0], -1, tr->prev_last_stress); | |||||
SetWordStress(tr, phonemes, dictionary_flags, -1, tr->prev_last_stress); | |||||
else | else | ||||
SetWordStress(tr, phonemes, dictionary_flags[0], -1, 0); | |||||
SetWordStress(tr, phonemes, dictionary_flags, -1, 0); | |||||
strcpy(word_phonemes,prefix_phonemes); | strcpy(word_phonemes,prefix_phonemes); | ||||
strcat(word_phonemes,phonemes); | strcat(word_phonemes,phonemes); | ||||
} | } | ||||
dictionary_flags[0] &= ~FLAG_PAUSE1; | dictionary_flags[0] &= ~FLAG_PAUSE1; | ||||
} | } | ||||
if((wflags & FLAG_HYPHEN) && (tr->langopts.stress_flags & STRS_HYPEN_UNSTRESS)) | |||||
{ | |||||
ChangeWordStress(tr,word_phonemes,3); | |||||
} | |||||
else | |||||
if(wflags & FLAG_EMPHASIZED2) | if(wflags & FLAG_EMPHASIZED2) | ||||
{ | { | ||||
// A word is indicated in the source text as stressed | // A word is indicated in the source text as stressed | ||||
if(dictionary_flags[0] & (FLAG_STRESS_END | FLAG_STRESS_END2)) | if(dictionary_flags[0] & (FLAG_STRESS_END | FLAG_STRESS_END2)) | ||||
ChangeWordStress(tr,word_phonemes,4); | ChangeWordStress(tr,word_phonemes,4); | ||||
else | else | ||||
if(dictionary_flags[0] & FLAG_UNSTRESS_END) | |||||
if((dictionary_flags[0] & FLAG_UNSTRESS_END) && (any_stressed_words)) | |||||
ChangeWordStress(tr,word_phonemes,3); | ChangeWordStress(tr,word_phonemes,3); | ||||
} | } | ||||
tr->expect_past--; | tr->expect_past--; | ||||
} | } | ||||
if((word_length == 1) && iswalpha(first_char) && (first_char != 'i')) | |||||
if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha(first_char) && (first_char != 'i')) | |||||
{ | { | ||||
// English Specific !!!! | // English Specific !!!! | ||||
// any single letter before a dot is an abbreviation, except 'I' | // any single letter before a dot is an abbreviation, except 'I' | ||||
static void SetPlist2(PHONEME_LIST2 *p, unsigned char phcode) | static void SetPlist2(PHONEME_LIST2 *p, unsigned char phcode) | ||||
{//========================================================== | {//========================================================== | ||||
p->phcode = phcode; | p->phcode = phcode; | ||||
p->stress = 0; | |||||
p->tone_number = 0; | |||||
p->stresslevel = 0; | |||||
p->tone_ph = 0; | |||||
p->synthflags = embedded_flag; | p->synthflags = embedded_flag; | ||||
p->sourceix = 0; | p->sourceix = 0; | ||||
embedded_flag = 0; | embedded_flag = 0; | ||||
{ | { | ||||
// this word uses a different phoneme table | // this word uses a different phoneme table | ||||
SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); | SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); | ||||
ph_list2[n_ph_list2++].tone_number = switch_phonemes; // temporary phoneme table number | |||||
ph_list2[n_ph_list2++].tone_ph = switch_phonemes; // temporary phoneme table number | |||||
} | } | ||||
// remove initial pause from a word if it follows a hyphen | // remove initial pause from a word if it follows a hyphen | ||||
ph_list2[n_ph_list2].phcode = ph_code; | ph_list2[n_ph_list2].phcode = ph_code; | ||||
ph_list2[n_ph_list2].sourceix = 0; | ph_list2[n_ph_list2].sourceix = 0; | ||||
ph_list2[n_ph_list2].synthflags = embedded_flag; | ph_list2[n_ph_list2].synthflags = embedded_flag; | ||||
ph_list2[n_ph_list2++].tone_number = *p++; | |||||
ph_list2[n_ph_list2++].tone_ph = *p++; | |||||
} | } | ||||
else | else | ||||
if(ph->type == phSTRESS) | if(ph->type == phSTRESS) | ||||
// for tone languages, the tone number for a syllable follows the vowel | // for tone languages, the tone number for a syllable follows the vowel | ||||
if(prev_vowel >= 0) | if(prev_vowel >= 0) | ||||
{ | { | ||||
ph_list2[prev_vowel].tone_number = ph_code; | |||||
ph_list2[prev_vowel].tone_ph = ph_code; | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
// mark the previous phoneme as a syllabic consonant | // mark the previous phoneme as a syllabic consonant | ||||
prev_vowel = n_ph_list2-1; | prev_vowel = n_ph_list2-1; | ||||
ph_list2[prev_vowel].synthflags |= SFLAG_SYLLABLE; | ph_list2[prev_vowel].synthflags |= SFLAG_SYLLABLE; | ||||
ph_list2[prev_vowel].stress = next_stress; | |||||
ph_list2[prev_vowel].stresslevel = next_stress; | |||||
} | } | ||||
else | else | ||||
if(ph_code == phonLENGTHEN) | if(ph_code == phonLENGTHEN) | ||||
else | else | ||||
{ | { | ||||
ph_list2[n_ph_list2].phcode = ph_code; | ph_list2[n_ph_list2].phcode = ph_code; | ||||
ph_list2[n_ph_list2].tone_number = 0; | |||||
ph_list2[n_ph_list2].tone_ph = 0; | |||||
ph_list2[n_ph_list2].synthflags = embedded_flag | found_dict_flag; | ph_list2[n_ph_list2].synthflags = embedded_flag | found_dict_flag; | ||||
embedded_flag = 0; | embedded_flag = 0; | ||||
ph_list2[n_ph_list2].sourceix = srcix; | ph_list2[n_ph_list2].sourceix = srcix; | ||||
stress = next_stress; | stress = next_stress; | ||||
next_stress = 0; | next_stress = 0; | ||||
if(stress >= 4) | |||||
{ | |||||
any_stressed_words = 1; | |||||
} | |||||
if((prev_vowel >= 0) && (n_ph_list2-1) != prev_vowel) | if((prev_vowel >= 0) && (n_ph_list2-1) != prev_vowel) | ||||
ph_list2[n_ph_list2-1].stress = stress; // set stress for previous consonant | |||||
ph_list2[n_ph_list2-1].stresslevel = stress; // set stress for previous consonant | |||||
ph_list2[n_ph_list2].synthflags |= SFLAG_SYLLABLE; | ph_list2[n_ph_list2].synthflags |= SFLAG_SYLLABLE; | ||||
prev_vowel = n_ph_list2; | prev_vowel = n_ph_list2; | ||||
} | } | ||||
if(next_tone != 0) | if(next_tone != 0) | ||||
{ | { | ||||
ph_list2[n_ph_list2].tone_number = next_tone; | |||||
ph_list2[n_ph_list2].tone_ph = next_tone; | |||||
next_tone=0; | next_tone=0; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
ph_list2[n_ph_list2].stress = stress; | |||||
ph_list2[n_ph_list2].stresslevel = stress; | |||||
n_ph_list2++; | n_ph_list2++; | ||||
first_phoneme = 0; | first_phoneme = 0; | ||||
} | } | ||||
// this word uses a different phoneme table, now switch back | // this word uses a different phoneme table, now switch back | ||||
SelectPhonemeTable(voice->phoneme_tab_ix); | SelectPhonemeTable(voice->phoneme_tab_ix); | ||||
SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); | SetPlist2(&ph_list2[n_ph_list2],phonSWITCH); | ||||
ph_list2[n_ph_list2++].tone_number = voice->phoneme_tab_ix; // original phoneme table number | |||||
ph_list2[n_ph_list2++].tone_ph = voice->phoneme_tab_ix; // original phoneme table number | |||||
} | } | ||||
embedded_read = 0; | embedded_read = 0; | ||||
option_phoneme_input &= ~2; // clear bit 1 (temporary indication) | option_phoneme_input &= ~2; // clear bit 1 (temporary indication) | ||||
pre_pause = 0; | pre_pause = 0; | ||||
any_stressed_words = 0; | |||||
if((clause_start_char = count_characters) < 0) | if((clause_start_char = count_characters) < 0) | ||||
clause_start_char = 0; | clause_start_char = 0; | ||||
else | else | ||||
if(c=='-') | if(c=='-') | ||||
{ | { | ||||
if(IsAlpha(prev_in) && IsAlpha(next_in)) | |||||
if((IsAlpha(prev_in) || iswdigit(prev_in)) && IsAlpha(next_in)) | |||||
{ | { | ||||
// '-' between two letters is a hyphen, treat as a space | // '-' between two letters is a hyphen, treat as a space | ||||
word_flags |= FLAG_HYPHEN; | word_flags |= FLAG_HYPHEN; | ||||
} | } | ||||
word = pw; | word = pw; | ||||
// include the next few characters, in case there are an ordinal indicator | |||||
// include the next few characters, in case there are an ordinal indicator or other suffix | |||||
pn[0] = ' '; | pn[0] = ' '; | ||||
memcpy(pn+1, pw, 8); | |||||
pn[8] = 0; | |||||
memcpy(pn+1, pw, 16); | |||||
pn[16] = 0; | |||||
for(pw = &number_buf[1]; pw < pn;) | for(pw = &number_buf[1]; pw < pn;) | ||||
{ | { | ||||
// 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, &words[ix], words[ix].pre_pause,0 ); | ||||
while(*pw++ != ' '); | while(*pw++ != ' '); | ||||
words[ix].pre_pause = 0; | words[ix].pre_pause = 0; | ||||
words[ix].flags = 0; | |||||
} | } | ||||
} | } | ||||
else | else | ||||
if(dict_flags & FLAG_SKIPWORDS) | if(dict_flags & FLAG_SKIPWORDS) | ||||
{ | { | ||||
ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||||
ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||||
} | } | ||||
} | } | ||||
PHONEME_LIST2 *p2; | PHONEME_LIST2 *p2; | ||||
p2 = &ph_list2[n_ph_list2 + ix]; | p2 = &ph_list2[n_ph_list2 + ix]; | ||||
p2->phcode = phonPAUSE; | p2->phcode = phonPAUSE; | ||||
p2->stress = 0; | |||||
p2->stresslevel = 0; | |||||
p2->sourceix = source_index; | p2->sourceix = source_index; | ||||
p2->synthflags = 0; | p2->synthflags = 0; | ||||
} | } |
#define FLAG_VERB_EXT 0x100 /* extend the 'verb follows' */ | #define FLAG_VERB_EXT 0x100 /* extend the 'verb follows' */ | ||||
#define FLAG_CAPITAL 0x200 /* pronunciation if initial letter is upper case */ | #define FLAG_CAPITAL 0x200 /* pronunciation if initial letter is upper case */ | ||||
#define FLAG_ALLCAPS 0x400 // only if the word is all capitals | #define FLAG_ALLCAPS 0x400 // only if the word is all capitals | ||||
#define BITNUM_FLAG_ALLCAPS 0x2a | |||||
#define FLAG_ACCENT 0x800 // character name is base-character name + accent name | #define FLAG_ACCENT 0x800 // character name is base-character name + accent name | ||||
#define FLAG_HYPHENATED 0x1000 // multiple-words, but needs hyphen between parts 1 and 2 | #define FLAG_HYPHENATED 0x1000 // multiple-words, but needs hyphen between parts 1 and 2 | ||||
#define BITNUM_FLAG_ALLCAPS 0x2a | |||||
#define BITNUM_FLAG_HYPHENATED 0x2c | #define BITNUM_FLAG_HYPHENATED 0x2c | ||||
// Punctuation types returned by ReadClause() | // Punctuation types returned by ReadClause() | ||||
// bits 0-7 pause x 10mS, bits 12-14 intonation type, | // bits 0-7 pause x 10mS, bits 12-14 intonation type, | ||||
// bit 15- don't need space after the punctuation | |||||
// bit 19=sentence, bit 18=clause, bits 17=voice change | // bit 19=sentence, bit 18=clause, bits 17=voice change | ||||
// bit 16 used to distinguish otherwise identical types | // bit 16 used to distinguish otherwise identical types | ||||
// bit 20= punctuation character can be inside a word (Armenian) | // bit 20= punctuation character can be inside a word (Armenian) | ||||
// bit 21= speak the name of the punctuation character | |||||
#define CLAUSE_BIT_SENTENCE 0x80000 | #define CLAUSE_BIT_SENTENCE 0x80000 | ||||
#define CLAUSE_BIT_CLAUSE 0x40000 | |||||
#define CLAUSE_BIT_VOICE 0x20000 | #define CLAUSE_BIT_VOICE 0x20000 | ||||
#define CLAUSE_BITS_INTONATION 0x7000 | |||||
#define PUNCT_IN_WORD 0x100000 | #define PUNCT_IN_WORD 0x100000 | ||||
#define PUNCT_SAY_NAME 0x200000 | |||||
#define CLAUSE_NONE 0 + 0x04000 | #define CLAUSE_NONE 0 + 0x04000 | ||||
#define CLAUSE_PARAGRAPH 70 + 0x80000 | #define CLAUSE_PARAGRAPH 70 + 0x80000 | ||||
#define CLAUSE_EOF 35 + 0x90000 | |||||
#define CLAUSE_EOF 40 + 0x90000 | |||||
#define CLAUSE_VOICE 0 + 0x24000 | #define CLAUSE_VOICE 0 + 0x24000 | ||||
#define CLAUSE_PERIOD 35 + 0x80000 | |||||
#define CLAUSE_PERIOD 40 + 0x80000 | |||||
#define CLAUSE_COMMA 20 + 0x41000 | #define CLAUSE_COMMA 20 + 0x41000 | ||||
#define CLAUSE_SHORTCOMMA 4 + 0x41000 | #define CLAUSE_SHORTCOMMA 4 + 0x41000 | ||||
#define CLAUSE_SHORTFALL 4 + 0x40000 | #define CLAUSE_SHORTFALL 4 + 0x40000 | ||||
#define CLAUSE_QUESTION 35 + 0x82000 | |||||
#define CLAUSE_EXCLAMATION 40 + 0x83000 | |||||
#define CLAUSE_QUESTION 40 + 0x82000 | |||||
#define CLAUSE_EXCLAMATION 45 + 0x83000 | |||||
#define CLAUSE_COLON 30 + 0x40000 | #define CLAUSE_COLON 30 + 0x40000 | ||||
#ifdef PLATFORM_RISCOS | |||||
#define CLAUSE_SEMICOLON 30 + 0x40000 | |||||
#else | |||||
#define CLAUSE_SEMICOLON 30 + 0x41000 | #define CLAUSE_SEMICOLON 30 + 0x41000 | ||||
#endif | |||||
#define SAYAS_CHARS 0x12 | #define SAYAS_CHARS 0x12 | ||||
#define SAYAS_GLYPHS 0x13 | #define SAYAS_GLYPHS 0x13 | ||||
// a clause translated into phoneme codes (first stage) | // a clause translated into phoneme codes (first stage) | ||||
typedef struct { | typedef struct { | ||||
unsigned char phcode; | unsigned char phcode; | ||||
unsigned char stress; | |||||
unsigned char tone_number; | |||||
unsigned char stresslevel; | |||||
unsigned char tone_ph; | |||||
unsigned char synthflags; | unsigned char synthflags; | ||||
unsigned short sourceix; | unsigned short sourceix; | ||||
} PHONEME_LIST2; | } PHONEME_LIST2; | ||||
#define N_LOPTS 16 | |||||
#define N_LOPTS 18 | |||||
#define LOPT_DIERESES 1 | #define LOPT_DIERESES 1 | ||||
// 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables | // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables | ||||
// bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word | // bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word | ||||
// Call ApplySpecialAttributes() if $alt or $alt2 is set for a word | // Call ApplySpecialAttributes() if $alt or $alt2 is set for a word | ||||
#define LOPT_ALT 15 | #define LOPT_ALT 15 | ||||
// pause for bracket (default=4), pause when annoucing bracket names (default=2) | |||||
#define LOPT_BRACKET_PAUSE 16 | |||||
// bit 1, don't break clause before annoucning . ? ! | |||||
#define LOPT_ANNOUNCE_PUNCT 17 | |||||
// stress_rule | // stress_rule | ||||
#define STRESSPOSN_1L 0 // 1st syllable | #define STRESSPOSN_1L 0 // 1st syllable | ||||
int vowel_pause; | int vowel_pause; | ||||
int stress_rule; // 1=first syllable, 2=penultimate, 3=last | int stress_rule; // 1=first syllable, 2=penultimate, 3=last | ||||
#define STRS_HYPEN_UNSTRESS 0x100000 | |||||
// bit0=don't stress monosyllables, except at end of clause | // bit0=don't stress monosyllables, except at end of clause | ||||
// bit1=don't set diminished stress, | // bit1=don't set diminished stress, | ||||
// bit2=mark unstressed final syllables as diminished | // bit2=mark unstressed final syllables as diminished | ||||
// bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | ||||
// bit18= don't lengthen short vowels more than long vowels at end-of-clause | // bit18= don't lengthen short vowels more than long vowels at end-of-clause | ||||
// bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel | // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel | ||||
// bit20= hyphenated words, 2nd part is unstressed | |||||
int stress_flags; | int stress_flags; | ||||
int unstressed_wd1; // stress for $u word of 1 syllable | int unstressed_wd1; // stress for $u word of 1 syllable | ||||
int unstressed_wd2; // stress for $u word of >1 syllable | int unstressed_wd2; // stress for $u word of >1 syllable | ||||
int param[N_LOPTS]; | int param[N_LOPTS]; | ||||
int param2[N_LOPTS]; | |||||
unsigned char *length_mods; | unsigned char *length_mods; | ||||
unsigned char *length_mods0; | unsigned char *length_mods0; | ||||
int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | ||||
int Unpronouncable(Translator *tr, char *word); | int Unpronouncable(Translator *tr, char *word); | ||||
void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress); | |||||
void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress); | |||||
int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); | int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); | ||||
int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | ||||
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); | void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); |
typedef struct { | |||||
const char *mnem; | |||||
int data; | |||||
} keywtab_t; | |||||
static MNEM_TAB options_tab[] = { | |||||
{"reduce_t", LOPT_REDUCE_T}, | |||||
{"bracket", LOPT_BRACKET_PAUSE}, | |||||
{NULL, -1} }; | |||||
static keywtab_t keyword_tab[] = { | |||||
static MNEM_TAB keyword_tab[] = { | |||||
{"name", V_NAME}, | {"name", V_NAME}, | ||||
{"language", V_LANGUAGE}, | {"language", V_LANGUAGE}, | ||||
{"gender", V_GENDER}, | {"gender", V_GENDER}, | ||||
static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | ||||
// default is: pitch 82,118 | |||||
// voice->pitch_base = 0x49000; // default, 73 << 12; | |||||
// voice->pitch_range = 0x0f30; // default = 0x1000 | |||||
voice->pitch_base = 0x47000; | |||||
voice->pitch_range = 3996; | |||||
// default is: pitch 78,120 | |||||
voice->pitch_base = 0x45000; | |||||
voice->pitch_range = 4536; | |||||
// default is: pitch 80,117 | |||||
// voice->pitch_base = 0x47000; | |||||
// voice->pitch_range = 3996; | |||||
voice->formant_factor = 256; | voice->formant_factor = 256; | ||||
// bit 4 1 = vname = full path | // bit 4 1 = vname = full path | ||||
FILE *f_voice = NULL; | FILE *f_voice = NULL; | ||||
keywtab_t *k; | |||||
char *p; | char *p; | ||||
int key; | int key; | ||||
int ix; | int ix; | ||||
int n; | int n; | ||||
int value; | int value; | ||||
int value2; | |||||
int error = 0; | int error = 0; | ||||
int langix = 0; | int langix = 0; | ||||
int tone_only = control & 2; | int tone_only = control & 2; | ||||
char translator_name[40]; | char translator_name[40]; | ||||
char new_dictionary[40]; | char new_dictionary[40]; | ||||
char phonemes_name[40]; | char phonemes_name[40]; | ||||
char option_name[40]; | |||||
const char *language_type; | const char *language_type; | ||||
char buf[200]; | char buf[200]; | ||||
char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
if(buf[0] == 0) continue; | if(buf[0] == 0) continue; | ||||
key = 0; | |||||
for(k=keyword_tab; k->mnem != NULL; k++) | |||||
{ | |||||
if(strcmp(buf,k->mnem)==0) | |||||
{ | |||||
key = k->data; | |||||
break; | |||||
} | |||||
} | |||||
key = LookupMnem(keyword_tab, buf); | |||||
switch(key) | switch(key) | ||||
{ | { | ||||
break; | break; | ||||
case V_OPTION: | case V_OPTION: | ||||
if(sscanf(p,"%d %d",&ix,&value) == 2) | |||||
value2 = 0; | |||||
if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) | |||||
{ | |||||
langopts->param[ix] = value; | |||||
langopts->param2[ix] = value2; | |||||
} | |||||
else | |||||
{ | { | ||||
if((ix >= 0) && (ix < N_LOPTS)) | |||||
langopts->param[ix] = value; | |||||
fprintf(stderr,"Bad voice option: %s %s\n",buf,p); | |||||
} | } | ||||
break; | break; | ||||