Browse Source

[1.47.12]

Change program code for espeak/libespeak to C, remove C++ features.

Language changes: af, ga, grc, hu, nl, sw, ta


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@364 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 11 years ago
parent
commit
10bd23b3b4

+ 79
- 2
dictsource/af_list View File

bangladesj baNglad'ES bangladesj baNglad'ES
barcelona bars@l'o@na barcelona bars@l'o@na
barkly _^_EN barkly _^_EN
batavië bat'A:vi@
bellevue b&lvju: bellevue b&lvju:
bermuda $2 bermuda $2
bethlehem bEt_liEm bethlehem bEt_liEm
djakarta dZak'arta djakarta dZak'arta
doebaai $2 doebaai $2
duitswes dYytsv'Es duitswes dYytsv'Es
eastgate _^_EN
eastgate _^_EN
efese e@f@s@ efese e@f@s@
ermelo &rm@lo@ ermelo &rm@lo@
florida flOrida florida flOrida
richardsbaai ritS@dsb'AI richardsbaai ritS@dsb'AI
riviersonderend r@fi:rsOn@r_'Ent riviersonderend r@fi:rsOn@r_'Ent
robertson _^_EN robertson _^_EN
saldanha sald'ana
salvador salvadO:r salvador salvadO:r
santiago santi;'A:gu santiago santi;'A:gu
secunda s@kunda secunda s@kunda
abdullah abd'ula abdullah abd'ula
Abiméleg abin'e@lEx2 Abiméleg abin'e@lEx2
abraham A:bram abraham A:bram
achilles ak'il@s
ackerman ak@rman ackerman ak@rman
adam adam adam adam
adonis ad'o@n@s
adriaan A:drijan adriaan A:drijan
adrie A:dri adrie A:dri
agnes _^_EN agnes _^_EN
lucas lukas lucas lukas
lukas lukas lukas lukas
lulu lulu lulu lulu
lydia lIdia
mabalêl mabal'&l mabalêl mabal'&l
mabel _^_EN mabel _^_EN
macgill m@gjil macgill m@gjil
ogden _^_EN ogden _^_EN
olga Olga olga Olga
ontong OntON ontong OntON
pamela _^_EN
patrick _^_EN patrick _^_EN
petoors p@to@rs petoors p@to@rs
phillips fIl@ps phillips fIl@ps
(nie waar nie) n,i||v,A:r||n'i (nie waar nie) n,i||v,A:r||n'i
(sy aan sy) s,eI||an||s'eI (sy aan sy) s,eI||an||s'eI


// Latin terms
ab _^_LA
actio _^_LA
ad _^_LA
alterius _^_LA
amico _^_LA
amicus _^_LA
beneficium _^_LA
bona _^_LA
bono _^_LA
contestatio _^_LA
cum _^_LA
curiae _^_LA
(de facto) _^_LA
(de jure) _^_LA
delicti _^_LA
delicto _^_LA
deo _^_LA
directus _^_LA
divisionis _^_LA
dolus _^_LA
domicilium _^_LA
eventualis _^_LA
exclusio _^_LA
executandi _^_LA
excussionis _^_LA
extremis _^_LA
facto _^_LA
factum _^_LA
fide _^_LA
fides _^_LA
forma _^_LA
grata _^_LA
habitatio _^_LA
inclusio _^_LA
(in debiti) _^_LA
(in absentia) _^_LA
(in extremis) _^_LA
initio _^_LA
inter _^_LA
ipsa _^_LA
jus _^_LA
laude _^_LA
litis _^_LA
loquitur _^_LA
luna _^_LA
mercatrix _^_LA
mutandi _^_LA
mutatis _^_LA
nisi _^_LA
pauperis _^_LA
persona _^_LA
publica _^_LA
restitutio _^_LA
sine _^_LA
unius _^_LA
usufruct _^_LA
usufructus _^_LA
usus _^_LA
vivendi _^_LA
vivos _^_LA


// main word list // main word list




babelaas bab@lA:s babelaas bab@lA:s
barrikade $3 barrikade $3
bedewete be@d@ve@t@
beide beId@ beide beId@
bekaf b&kaf bekaf b&kaf
belangriker b@laNr@k,Ir belangriker b@laNr@k,Ir
beta be@ta $only beta be@ta $only
betlehemster bEtli:Emst&r betlehemster bEtli:Emst&r
bewe be@v@ bewe be@v@
bewebeen be@v@be@n
bewend be@v@nt bewend be@v@nt
bewering b@ve@rIN bewering b@ve@rIN
biopsie bi'Opsi biopsie bi'Opsi
dadelik dA:d@lIk dadelik dA:d@lIk
dagorde dax2_Ord@ dagorde dax2_Ord@
dagster dax2st&r dagster dax2st&r
dagure dax2_yr@
daisy deIzi daisy deIzi
darem dar@m darem dar@m
dawidster dA:v@tst&r dawidster dA:v@tst&r
//gesamentlik x2@sA:m@ntl@k //gesamentlik x2@sA:m@ntl@k
gentleman _^_EN gentleman _^_EN
germolene dZI:m@l'i:n germolene dZI:m@l'i:n
geseling x2e@s@l@N
gevallene x2@fal@n@ gevallene x2@fal@n@
gewellys x2e@v@lleIs gewellys x2e@v@lleIs
gladiator x2ladi'A:tOr gladiator x2ladi'A:tOr
gomorra x2@mOra gomorra x2@mOra
graffiti graf'iti graffiti graf'iti
gratis x2r'A:t@s gratis x2r'A:t@s
groepeer $2
grondys x2rO:nt_eIs grondys x2rO:nt_eIs


hallo h'Il,@U hallo h'Il,@U
kulture $2 kulture $2
kunsmatige kWnsm'A:t@x2@ kunsmatige kWnsm'A:t@x2@
kwansuis $2 kwansuis $2
kweekwal kwe@kval


lasagne las'anj@ lasagne las'anj@
legaat l@x2A:t legaat l@x2A:t
macho matS@U macho matS@U
madame mad'A:m madame mad'A:m
madamoiselle _^_FR madamoiselle _^_FR
manalleen man_ale@n
maskering mask'e@r@N $only maskering mask'e@r@N $only
massaal $2 massaal $2
massale $2 massale $2
negeer n@x2e@r negeer n@x2e@r
negering n@x2e@r@N negering n@x2e@r@N
negester ne@x2@st&r negester ne@x2@st&r
nekaar n&k_A:r
nekare n&k_A:r@
netjies nE:icis netjies nE:icis
netjiese nEicis@ netjiese nEicis@
netsowel nEtso@v&l netsowel nEtso@v&l
verreweg f&r@v&x2 verreweg f&r@v&x2
verse f&:rs@ verse f&:rs@
vers f&:rs vers f&:rs
versene f&rs@n@
versindaba f&:rs_@ndA:ba versindaba f&:rs_@ndA:ba
verste f&rst@ verste f&rst@
verte f&rt@ verte f&rt@
volswanger $1 volswanger $1
volte $1 volte $1
voluit fOl_Yyt voluit fOl_Yyt
voorbene fo@rbe@n@
voorgee fo@rx2e@ voorgee fo@rx2e@
voorkeer $1 voorkeer $1
voorkom $2 $only voorkom $2 $only
weergalm $2 weergalm $2
weerklink $2 weerklink $2
weervoorspelling $1 weervoorspelling $1
wegeb v&x2_Eb
weggewens v&x2@v'E:ns weggewens v&x2@v'E:ns
welaf v&l_af welaf v&l_af
weleer v&l_'e@r weleer v&l_'e@r

+ 21
- 6
dictsource/af_rules View File

//maintainer: Willem van der Walt
//maintainer: Willem van der Walt
// email: [email protected] // email: [email protected]
// tel: +27 12 8413996 // tel: +27 12 8413996
// Meraka Institute, CSIR // Meraka Institute, CSIR
karoo) d d // but Karoodorp/Karoodoring/Karoodistrik, etc. karoo) d d // but Karoodorp/Karoodoring/Karoodistrik, etc.
du (pliC du // duplikaat/dupliseer du (pliC du // duplikaat/dupliseer
duvet d%uveI: // duvet/-s/duvetoortreksel, etc. duvet d%uveI: // duvet/-s/duvetoortreksel, etc.
@) d (yster t_ // fix d sound, pause: bind-/brand-/vuurherd-/smeedyster...


.group de .group de
de (flasi d%e@ // fix e sound: deflasie(beleid)/deflasionêr/deflasionisties de (flasi d%e@ // fix e sound: deflasie(beleid)/deflasionêr/deflasionisties
blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese
_eend) e (CA @ // fix e sound: eendedam/-dans/-kuil/-pastei... _eend) e (CA @ // fix e sound: eendedam/-dans/-kuil/-pastei...
_eend) e (lig e@ // but: eendelig/-e/-heid _eend) e (lig e@ // but: eendelig/-e/-heid
@C) elys @leIs // fix e sound: beskuldigde-/debiteure-/dividende-/geskenkelys
_meid) e (C @ // fix e sound: meidekamer/-naaier/-praatjies _meid) e (C @ // fix e sound: meidekamer/-naaier/-praatjies
pous) e (C @ // fix e sound: pousebrood/-klok/-tyd, etc. pous) e (C @ // fix e sound: pousebrood/-klok/-tyd, etc.
_siel) e (@ @ // fix e sound: sielesmart/-troos/-wroeging... _siel) e (@ @ // fix e sound: sielesmart/-troos/-wroeging...
nl) eer e@r // restore default stress: kernleerplan and compounds nl) eer e@r // restore default stress: kernleerplan and compounds
rl) eer e@r // move default stress: agterleer/burgerleer/kelderleer/solderleer rl) eer e@r // move default stress: agterleer/burgerleer/kelderleer/solderleer
sl) eer e@r // words containing sleer take default stress: seemsleer/volstruisleer sl) eer e@r // words containing sleer take default stress: seemsleer/volstruisleer
ep) eer e@r // default stress: (harde-/wilde-)peer and compounds
Cep) eer e@r // default stress: (harde-/wilde-)peer and compounds, but (ge)groepeer
Cs) eer e@r // words containing seer (meaning pain) take default stress Cs) eer e@r // words containing seer (meaning pain) take default stress
ks) eer 'e@r // annekseer/indekseer/lakseer/takseer and their compounds ks) eer 'e@r // annekseer/indekseer/lakseer/takseer and their compounds
ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc.
gas (ig x2A:s // long a and no pause: gasig/-e/-heid gas (ig x2A:s // long a and no pause: gasig/-e/-heid
gauteng x2%aUtEN //Gauteng and compounds gauteng x2%aUtEN //Gauteng and compounds
_) gh g _) gh g
gh (_ k
gh (_ x2 // Tulbagh and similar
@) gheid x2eIt // traagheid/leegheid/droogheid/stugheid @) gheid x2eIt // traagheid/leegheid/droogheid/stugheid
ghi (ta g%i // move default stress: ghitaar and compounds/ghitare ghi (ta g%i // move default stress: ghitaar and compounds/ghitare
ght _^_EN ght _^_EN
ge x2@ ge x2@
C) ge (_ g@ C) ge (_ g@
_) gebede x2@be@d@ // fix stress and vowel sounds: gebedeboek/-e/-tafel/-s _) gebede x2@be@d@ // fix stress and vowel sounds: gebedeboek/-e/-tafel/-s
gegesel x2@x2e@s@l // fix middle e sound
K) gele (_ x2e@l@ // fix stress and e sound: (eier)gele K) gele (_ x2e@l@ // fix stress and e sound: (eier)gele
_) geler x2e@l@r // stress and 1st e sound: geler/gelerig _) geler x2e@l@r // stress and 1st e sound: geler/gelerig
gemel (d x2@m&l // fix e sound: bo-/bowe-/laas-/meergemeld/-e gemel (d x2@m&l // fix e sound: bo-/bowe-/laas-/meergemeld/-e
_) ig (lo ig // fix i and g sounds: iglo(e) _) ig (lo ig // fix i and g sounds: iglo(e)
@) ika (_ =%ik%a // logika/dinamika @) ika (_ =%ik%a // logika/dinamika
&) ike (_S3 @k@ &) ike (_S3 @k@
&C) ikes (_ @k@s // fix penultimate e sound: (on)belangrikes
C) iking @k@N C) iking @k@N
imbe (s @mb@ // fix stress: imbesiel/-e imbe (s @mb@ // fix stress: imbesiel/-e
_) immer (@P5 'Im@r_ // immerafhanklik/immeringesteld, etc. _) immer (@P5 'Im@r_ // immerafhanklik/immeringesteld, etc.
w) it (A It // fix i sound: eiwitafskeiding/witagtig/kwiteer/grondserwituut w) it (A It // fix i sound: eiwitafskeiding/witagtig/kwiteer/grondserwituut
itali (a %it%al%i // move default stress: Italianer/-s and compounds itali (a %it%al%i // move default stress: Italianer/-s and compounds
item itEm // fix e sound in item and compounds item itEm // fix e sound in item and compounds
@) iteit it'eIt // stress on iteit endings
iteit it'eIt // stress on iteit endings: universiteit/outoriteit
@C) itis (_ 'it@s // stress: many diseases ending in -itis @C) itis (_ 'it@s // stress: many diseases ending in -itis
C) iveer if'e@r // always takes stress C) iveer if'e@r // always takes stress
C) iver (A if'e@r // always takes stress: aktiverende/motivering C) iver (A if'e@r // always takes stress: aktiverende/motivering
.group ka .group ka
@A) kaa (t k'A: // advokaatstoga/fabrikaat/sertifikaatjie/triplikaat and many similar @A) kaa (t k'A: // advokaatstoga/fabrikaat/sertifikaatjie/triplikaat and many similar
@) kate (_ k'A:t@ // plurals of some of the above @) kate (_ k'A:t@ // plurals of some of the above
advo) kate (C 'kA:t@ // fix e sound and stress: advokatekamer/s/-latyn
kabare (t k%ab%arE // fix stress and 1st a sound: kabaret/-te and compounds kabare (t k%ab%arE // fix stress and 1st a sound: kabaret/-te and compounds
kabel kA:b@l //stress and e sound kabel kA:b@l //stress and e sound
kabeljou kab@lj'@U //kabeljou and compounds kabeljou kab@lj'@U //kabeljou and compounds
manier m@ni:r //manier and compounds manier m@ni:r //manier and compounds
manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer
mani (ku m%an%i // fix stress and a sound: manikuur and compounds mani (ku m%an%i // fix stress and a sound: manikuur and compounds
manilla (C m%anIl%a // fix stress and a sounds: manillakoevert/-papier, etc.
manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie
manji (fie m%anj@ // fix stress and i sound: manjifiek/-e manji (fie m%anj@ // fix stress and i sound: manjifiek/-e
man (moe m%an // move default stress: manmoedig/-e/-heid man (moe m%an // move default stress: manmoedig/-e/-heid
ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds
ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees
e) n (goeC n // split ng: lakengoed/-goeters and similar e) n (goeC n // split ng: lakengoed/-goeters and similar
n (_g N
ng (ent Nx2 // kontingent/tangent and derivatives ng (ent Nx2 // kontingent/tangent and derivatives
CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste
@) nges (_ N@s // banges/langes/dinges @) nges (_ N@s // banges/langes/dinges
@) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc. @) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc.
@) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc. @) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc.
_) outo (@P4 @Utu // fix stress and o sound: outomaat/-mate/-maties/outomobiel, etc. _) outo (@P4 @Utu // fix stress and o sound: outomaat/-mate/-maties/outomobiel, etc.
outo (psie %@UtO // fix stress and O sound: outopsie/-s and compounds
out (okra %@Ut // to handle outokraat and derivatives out (okra %@Ut // to handle outokraat and derivatives
oux 'u //in surnames like tredoux, leroux etc. oux 'u //in surnames like tredoux, leroux etc.
_) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig _) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig
pale (stA p%al@ // fix stress and a sound: Palestina/Palestyn and derivatives pale (stA p%al@ // fix stress and a sound: Palestina/Palestyn and derivatives
pale (t p%alE // fix stress and a sound: palet/-te and compounds pale (t p%alE // fix stress and a sound: palet/-te and compounds
palin (dro p%al@n // fix stress and a sound: palindroom/-drome/-dromies palin (dro p%al@n // fix stress and a sound: palindroom/-drome/-dromies
palissade p%al%isA:d@ // fix a and i sounds and stress: palissade and compounds
_) palja (K palj''a // fix stress on -jas: (ge)paljas/paljasse/paljasagtig/-e _) palja (K palj''a // fix stress on -jas: (ge)paljas/paljasse/paljasagtig/-e
pal (miet p%al // move default stress: palmiet and compounds pal (miet p%al // move default stress: palmiet and compounds
panado p@nA:d@U: // fix stress and vowel sounds: panado/-'s panado p@nA:d@U: // fix stress and vowel sounds: panado/-'s
per (so p@r // persoon/persone per (so p@r // persoon/persone
pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds
perso (neel p%&rs%u // personeel and compounds perso (neel p%&rs%u // personeel and compounds
perspex pIrspEks // prevent English translation of compounds: perspexvenster/-ruit
pervers p@rf&rs // pervers/perversie pervers p@rf&rs // pervers/perversie
pervert p@rf&rt // fix stress and e sounds: pervert/-e and compounds pervert p@rf&rt // fix stress and e sounds: pervert/-e and compounds
runder) pes pEs // fix e sound: runderpes and compounds runder) pes pEs // fix e sound: runderpes and compounds
@@@) s (_S1 s // to correctly handle plural s @@@) s (_S1 s // to correctly handle plural s
i) s (_ s // exceptions to rule: @@@) s (_S1 s i) s (_ s // exceptions to rule: @@@) s (_S1 s
sahara sah'A:ra // fix stress and a sound: Sahara/-woestyn and similar compounds sahara sah'A:ra // fix stress and a sound: Sahara/-woestyn and similar compounds
saldanha s%aldan%a // Saldanha(baai)
sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres
o) s (_ s // exceptions to rule: @@@) s (_S1 s o) s (_ s // exceptions to rule: @@@) s (_S1 s
u) s (_ s // exceptions to rule: @@@) s (_S1 s u) s (_ s // exceptions to rule: @@@) s (_S1 s
slag (off slax2_ // short a sound, insert pause: misdaadslagoffer and similar compounds slag (off slax2_ // short a sound, insert pause: misdaadslagoffer and similar compounds
sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds
sla (we slA: // fix stress and a sound: slawearbeid/-er, etc. sla (we slA: // fix stress and a sound: slawearbeid/-er, etc.
slawe (k slA:v@ // fix e sound: slawe(ketting/-kind(ers)/-kos
slop (emmer slOp_ // fix o sound and insert pause: slopemmer/-s slop (emmer slOp_ // fix o sound and insert pause: slopemmer/-s
@) sering s'e@r@N // analisering/kategorisering @) sering s'e@r@N // analisering/kategorisering
@) ses (_ s@s // fix 2 slb. words ending in ses @) ses (_ s@s // fix 2 slb. words ending in ses
spesi (a sp%ES%i // spesiaal/spesiale/spesialis spesi (a sp%ES%i // spesiaal/spesiale/spesialis
spesialis (A spESialis spesialis (A spESialis
spesialis spESal'Is spesialis spESal'Is
spesialis (een spESal'Is_ // fix stress, paus: spesialiseenheid/-eenhede
spesi (f sp%Es%I // spesifiek/spesifiseer spesi (f sp%Es%I // spesifiek/spesifiseer
spine (t sp%inE // move default stress: spinet/-te and compounds spine (t sp%inE // move default stress: spinet/-te and compounds
_) sub (a sWb_ // subagent/subartikel/subatomies, etc. _) sub (a sWb_ // subagent/subartikel/subatomies, etc.
struktu (rerAn str%Wkt%y // fix stress: (her)strukturering(skoste)/strukturerende, etc. struktu (rerAn str%Wkt%y // fix stress: (her)strukturering(skoste)/strukturerende, etc.
studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc. studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc.
stu (de st%y // fix stress and e sound: bestuderend/bestudering stu (de st%y // fix stress and e sound: bestuderend/bestudering
_) stuurdere (KK st%yrd@rE // fix stress and e sound: bestuurderes/-se/-sie
styfge (@P6 st'eIfx2@ // fix e sound: styfgewen/-de styfge (@P6 st'eIfx2@ // fix e sound: styfgewen/-de




verf (@ f&rf // verfkwas/-voorraad/-emmer and similar verf (@ f&rf // verfkwas/-voorraad/-emmer and similar
_) verf (lou f@rf // verflou/-ing _) verf (lou f@rf // verflou/-ing
_) verf (o f@rf // verfoei(lik)/verfomfaai/verfoes, etc.; see rule: verf _) verf (o f@rf // verfoei(lik)/verfomfaai/verfoes, etc.; see rule: verf
verf (raai f@rf // fix e sound and stress: verfraai(ing)
verf (rom f@rf // verfrommel/-de/-ing; see rule: verf verf (rom f@rf // verfrommel/-de/-ing; see rule: verf
verf f&rf verf f&rf
_) vergesog f'&:r;x2@sOx2 _) vergesog f'&:r;x2@sOx2
nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal
Cod) w v // fix w sound: godwelgevallig/godweet/godwees Cod) w v // fix w sound: godwelgevallig/godweet/godwees
k) w w k) w w
werk) week ve@k // fix last w sound: (vyf-/sesdag)werkweek
k) w (erC v // fix w sound: wrakwerf/-werwe k) w (erC v // fix w sound: wrakwerf/-werwe
volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc. volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc.
k) w (And v // fix w sound: buikwand/rukwinde k) w (And v // fix w sound: buikwand/rukwinde
yd) w v // fix w sound: sluittydwerk/(wa)wydwakker yd) w v // fix w sound: sluittydwerk/(wa)wydwakker
C) w (eerder v // fix w sound: insek-/muskiet-/reuk-/sweetweerder and similar C) w (eerder v // fix w sound: insek-/muskiet-/reuk-/sweetweerder and similar
s) w (eerder w // but: eed-/geesbe-/saamsweerder and similar s) w (eerder w // but: eed-/geesbe-/saamsweerder and similar
luk) wens ve~ns // fix w sound: gelukwens(brief...)/gelukwensing, etc.
w (ese_ v //words ending in wese w (ese_ v //words ending in wese
wed (ren vEt // fix e and d sounds: (perde)wedren and other compounds wed (ren vEt // fix e and d sounds: (perde)wedren and other compounds
@C) w (eë v // fix w sound: duikweë/staatsweë/uitweë, etc. @C) w (eë v // fix w sound: duikweë/staatsweë/uitweë, etc.
welbehaaglik v%&lb@hA:x2l@k // move default stress: welbehaaglik/-e/-er/-ste welbehaaglik v%&lb@hA:x2l@k // move default stress: welbehaaglik/-e/-er/-ste
_) wel (edel v%&l_ // fix e sound and stress, insert pause: weledel/-e _) wel (edel v%&l_ // fix e sound and stress, insert pause: weledel/-e
welf (_ v&lf // fix e sound: omwelf/oorwelf welf (_ v&lf // fix e sound: omwelf/oorwelf
_) wel (op v&l_ // fix e sound, pause: welopgevoede/-opgeleide, etc.
wel (skape v%&l // move default stress: welskape/-nheid wel (skape v%&l // move default stress: welskape/-nheid
wel (spreken v%&l // move default stress: welsprekend/-e wel (spreken v%&l // move default stress: welsprekend/-e
@) wendig v'End@x2 // inwendig/noodwendig/uitwendig @) wendig v'End@x2 // inwendig/noodwendig/uitwendig
&) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene &) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene
fees) wens ve~ns // fix w and e sounds: kersfeeswens/-e fees) wens ve~ns // fix w and e sounds: kersfeeswens/-e
luk) wens ve~ns // fix w sound: gelukwens(brief...)/gelukwensing, etc.
A) wer (AA v@r // fix e sound: beyweraar/keweruitroeiing/nyweraar/oewereienaar A) wer (AA v@r // fix e sound: beyweraar/keweruitroeiing/nyweraar/oewereienaar
ge) were ve@r@ // fix e sound in compounds ending in gewere ge) were ve@r@ // fix e sound in compounds ending in gewere
werk (stelli v%&rk // fix stress: bewerkstellig and derivatives werk (stelli v%&rk // fix stress: bewerkstellig and derivatives

+ 2
- 2
dictsource/de_list View File

Neuseeland $2 Neuseeland $2
Rwanda rU'andA: Rwanda rU'andA:
Sri sr,i: Sri sr,i:
Tom tOm
Tim tIm
Tom tOm $only
Tim tIm $only



+ 1
- 1
dictsource/de_rules View File

_) deme de:mE _) deme de:mE
demo (g de:mo: demo (g de:mo:
demo (k de:mo: demo (k de:mo:
design _^_EN
design (_ d%IzaIn
dge (_ _^_EN dge (_ _^_EN
_) dia d,i:a _) dia d,i:a
_) diver d%i:vEr _) diver d%i:vEr

+ 40
- 12
dictsource/dict_phonemes View File

Phonemes which are used in the *_rules and *_list files Phonemes which are used in the *_rules and *_list files




Dictionary af_dict 2011-11-22
Dictionary af_dict 2013-09-22


& &: 3: @ @- @L @U a & &: 3: @ @- @L @U a
A: aI AI aU A~ E e: e@ A: aI AI aU A~ E e: e@
v w x z Z v w x z Z




Dictionary de_dict 2013-04-27
Dictionary de_dict 2013-09-22


3 @ @- a A A: aI aU 3 @ @- a A A: aI aU
A~ E E2 E: e: EI i I A~ E E2 E: e: EI i I
ts v x z ts v x z




Dictionary en_dict 2013-06-11
Dictionary en_dict 2013-09-08


0 0# 3 3: @ @- @2 @5 0 0# 3 3: @ @- @2 @5
@L a a# A: A@ aa aI aI3 @L a a# A: A@ aa aI aI3
tS v z Z z2 z3 tS v z Z z2 z3




Dictionary ga_dict 2013-05-18
Dictionary ga_dict 2013-09-21


0 0# @ a a# A: aI aI# 0 0# @ a a# A: aI aI#
aU aU# e E E# e: eI i aU aU# e E E# e: eI i
Z Z




Dictionary grc_dict 2008-03-03
Dictionary grc_dict 2013-07-25


a aI aU e E EI eU EU a aI aU e E EI eU EU
i o O oI OI OU u y i o O oI OI OU u y
t# t. t.# v w x z t# t. t.# v w x z




Dictionary hu_dict 2013-06-10
Dictionary hu_dict 2013-09-21


a A a: e E e: i i: a A a: e E e: i i:
o o: u u: Y y y: Y: o o: u u: Y y y: Y:
t.# v w x z t.# v w x z




Dictionary nl_dict 2013-06-11
Dictionary nl_dict 2013-09-23


8 @ @- a A a: A~ e 8 @ @- a A a: A~ e
E e# E2 e: EI eU i I E e# E2 e: EI eU i I
x z Z x z Z




Dictionary sl_dict 2013-06-10
Dictionary sl_dict 2013-07-02


@ @- a e E E# i o @ @- a e E E# i o
O o+ u y O o+ u y
S s. S; sx t v w z S s. S; sx t v w z




Dictionary sw_dict 2013-06-04
Dictionary sw_dict 2013-06-22


@- a a/ e i m- n- N-
o u
@- a e i m- n- N- o
u


* : b d D f g h * : b d D f g h
j J k l m n N n^ j J k l m n N n^
v w x z v w x z




Dictionary ta_dict 2013-05-18
Dictionary ta_dict 2013-09-23


a a: aI aU e E e: i a a: aI aU e E e: i
I i: o o: u U u2 u: I i: o o: u U u2 u:
b c d f g h j k b c d f g h j k
l m n N p r s t l m n N p r s t
tS v w z tS v w z


Dictionary as_dict 2013-09-21

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

: b b# d d# d. d.# dZ
f g g# h H j J J#
k k# l m n N n. p
r r. s S t t# t. t.#
tS tS# v w ~


Dictionary gu_dict 2013-09-17

@ @- @2 @3 a a: aI aU
a~ e E e: E: e~ E~ i
I i: i~ l- o O o: O:
O~ o~ u U u: u~ V

* - : ; b b# c c#
d d# d. d.# f g g# h
H j J J# k k# l l.
m n N n. n^ p p# Q
q r r. s S s. t t#
t. t.# v w x z

+ 44
- 7
dictsource/en_list View File

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


// $alt1 use strong ending (-an, -ance, -ative, -table, -inal, -ier)
// $alt1 use strong ending (-an, -ance, -ative, -table, -inal, -ier -ored)
// $alt2 use weak ending (ard, ate, ery, ess, ile, men, on) // $alt2 use weak ending (ard, ate, ery, ess, ile, men, on)
// $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#]
// $alt4 separate 'h', not 'th' // $alt4 separate 'h', not 'th'
ֹ o ֹ o
ֻ u ֻ u
ּ d'agES ּ d'agES
U+5c1 SInd0t_
U+5c2 sInd0t_




// phonetic modifiers // phonetic modifiers
// ABBREVIATIONS // ABBREVIATIONS
//************** //**************


aaa $abbrev $allcaps
abc $abbrev abc $abbrev
ac $abbrev ac $abbrev
adf $abbrev adf $abbrev
adze adz adze adz
aegis i:dZIs aegis i:dZIs
aerate e@r'eIt aerate e@r'eIt
aerogel e@roUdZEl
aether i:T@ aether i:T@
afar a#fA@ afar a#fA@
affirmation af3m'eIS@n affirmation af3m'eIS@n
appal a#pO:l appal a#pO:l
apparatus ap@r'eIt@s apparatus ap@r'eIt@s
?3 apparatus ap@r'at@s ?3 apparatus ap@r'at@s
appellate a#pEl@t
apprentice a#prEnt2Is apprentice a#prEnt2Is
approximate a#pr0ksIm@t $only approximate a#pr0ksIm@t $only
approximate a#pr0ksImeIt $verb approximate a#pr0ksImeIt $verb
arch A@tS arch A@tS
arches A@tSI#z arches A@tSI#z
archimedes A@kIm'i:di:z archimedes A@kIm'i:di:z
archiso A@tS'aIsoU
archway $1 archway $1
arena a#ri:n@ arena a#ri:n@
argon A@g0n argon A@g0n
blockade bl0k'eId blockade bl0k'eId
blouse blaUz blouse blaUz
bluest blu:@st bluest blu:@st
bluish blu:IS
blurry bl3:rI blurry bl3:rI
?5 blurry blVRrI ?5 blurry blVRrI
boing bOIN boing bOIN
chorizo tSOr'i:zoU chorizo tSOr'i:zoU
christmas krIsm@s christmas krIsm@s
chromosome kroUm@soUm chromosome kroUm@soUm
chrysalis krIs@lIs
ciao tSaU ciao tSaU
cigar sI2gA@ cigar sI2gA@
cigarette sIg@'rEt cigarette sIg@'rEt
cleanser klEnz3 cleanser klEnz3
?!3 clerk klA@k ?!3 clerk klA@k
cliche kli:SeI cliche kli:SeI
?3 cliche kli:S'eI
cliched kli:S'eId
?3 cliche kli:S'eI
clientele $2 clientele $2
clitoris klIt3rI#s clitoris klIt3rI#s
close kloUs $only close kloUs $only
constitute $1 constitute $1
construct $1 $onlys construct $1 $onlys
construct $verb construct $verb
consummate $1
contemplative $2 contemplative $2
content $1 $onlys content $1 $onlys
content $verb $past content $verb $past
convolute k0nv@l'u:t convolute k0nv@l'u:t
coop ku:p coop ku:p
cooper ku:p3 cooper ku:p3
coordinate koU'O:dI2neIt $verb
coordinate koU'O@dI2neIt $verb
copier k0pi@3 copier k0pi@3
copilot koUpaIl@t copilot koUpaIl@t
coral k0r@L coral k0r@L
decolletage deIk0lt'A:Z decolletage deIk0lt'A:Z
decor deIkO@ decor deIkO@
?3 decor deIk'O@ ?3 decor deIk'O@
decorative dEkr@tIv
decorative dEk@r@tIv
decoy di:kOI decoy di:kOI
decry dI2kraI decry dI2kraI
defect di:fEkt defect di:fEkt
diaper daIp3 diaper daIp3
diaphanous daI'af@n@s diaphanous daI'af@n@s
diaspora daI'asp@r@ diaspora daI'asp@r@
dieback daIbak
diehard daIhA@d diehard daIhA@d
dielectric daI@l'EktrIk dielectric daI@l'EktrIk
diesel di:z@L diesel di:z@L
evit EvI2t // inevitable evit EvI2t // inevitable
exalt Egz'0lt exalt Egz'0lt
execute EksI2kju:t // not $2 execute EksI2kju:t // not $2
executable $3
exile $1 exile $1
exodus Eks@d@s exodus Eks@d@s
expedite Eksp@daIt // expedited expedite Eksp@daIt // expedited
idly aIdlI idly aIdlI
ignoramus Igno@r'eIm@s ignoramus Igno@r'eIm@s
illiterate $alt2 illiterate $alt2
imagery ImIdZri
imagine I2madZI2n imagine I2madZI2n
impedance Imp'i:d@ns impedance Imp'i:d@ns
imperative Imp'Er@tIv imperative Imp'Er@tIv
iron aI3n iron aI3n
irony aIr@nI irony aIr@nI
isosceles aIs'0s@li:z isosceles aIs'0s@li:z
?3 issuance ISu:@ns


ja jA: ja jA:
jagged dZagI#d jagged dZagI#d
kowtow kaUt2aU kowtow kaUt2aU


la ,la $only la ,la $only
la $abbrev $allcaps
(la vie) la||v'i: (la vie) la||v'i:
laboratory la#b'0r@trI laboratory la#b'0r@trI
?3 laboratory labr@tO:ri ?3 laboratory labr@tO:ri
lunchroom lVntS||ru:m lunchroom lVntS||ru:m
luxury lVkS3ri luxury lVkS3ri
lychee li:tSi: lychee li:tSi:
lyin laIIn


macabre m@kA:br@ macabre m@kA:br@
macadamia mak@d'eImi@ macadamia mak@d'eImi@
phoenix fi:nIks phoenix fi:nIks
photographer f@t'0gr@f@ photographer f@t'0gr@f@
photography f@t'0gr@fi photography f@t'0gr@fi
photolysis foUt'0l@sIs
piano pI'anoU piano pI'anoU
pecan pI#kA:n pecan pI#kA:n
piecemeal p'i:sm,i:l piecemeal p'i:sm,i:l
reindeer reIndi@3 reindeer reIndi@3
rekey r,i:k'i: rekey r,i:k'i:
relative rEl@tIv relative rEl@tIv
relay ri:leI
relic rElIk relic rElIk
relish rElI2S relish rElI2S
rely rI2laI rely rI2laI
sealion si:laI@n sealion si:laI@n
seance seI0ns seance seI0ns
secant si:k@nt secant si:k@nt
seconded sEk'0ndI#d
seconded s@k0ndI#d
secondment s@k0ndm@nt
secrecy si:kr@si secrecy si:kr@si
secret si:kr@t secret si:kr@t
secrete sI2kri:t
secretion sI2kri:S@n
secretive si:kr@tIv secretive si:kr@tIv
secretary sEkr@trI secretary sEkr@trI
sedan sI2dan sedan sI2dan
segue sEgweI segue sEgweI
separate sEp@-r@t separate sEp@-r@t
separate sEp3reIt $verb separate sEp3reIt $verb
semaphored $alt1
semen si:m@n semen si:m@n
?3 semi sEmaI ?3 semi sEmaI
semibreve $1 semibreve $1
sewn soUn sewn soUn
sex sEks // sexism sex sEks // sexism
several sEvr@L several sEvr@L
severest s@vi@r@st
shallow SaloU shallow SaloU
shampoo $2 shampoo $2
shepherd SEp@d shepherd SEp@d
sincerest sIns'i@r@st sincerest sIns'i@r@st
sinew sInju: sinew sInju:
sinus saIn@s sinus saIn@s
siphon $alt2
sir s,3: $only sir s,3: $only
?5 sir s,VR $only ?5 sir s,VR $only
site saIt // for sited site saIt // for sited
sorbet sO@beI sorbet sO@beI
soyabean sOI@bi:n soyabean sOI@bi:n
spaghetti spa#gEti spaghetti spa#gEti
spasm spas@m
specific sp@sIfIk specific sp@sIfIk
specimen spEsI2m@n specimen spEsI2m@n
spraycan spreIkan spraycan spreIkan
troubadour tru:b@do@ troubadour tru:b@do@
truely tru:lI $verbf truely tru:lI $verbf
truest tru:@st truest tru:@st
tryin traIIn
tryst trIst tryst trIst
tudor tju:d3 tudor tju:d3
turntable $alt1 turntable $alt1
unaware Vn@w'e@ unaware Vn@w'e@
uncle VNk@L uncle VNk@L
undeny VndIn'aI undeny VndIn'aI
undercarriage $1
underground $1 $noun underground $1 $noun
underling $1 underling $1
underlings Vnd3lINz underlings Vnd3lINz
violin $2 violin $2
viral vaI3r@L viral vaI3r@L
virginal $alt1 virginal $alt1
(vis à vis) vi:za#v'i:
(vis a vis) vi:za#v'i:
visa vi:z@ visa vi:z@
vitalis vaIt'alI#s
vitamin vIt@mI#n vitamin vIt@mI#n
?3 vitamin vaIt@mI#n ?3 vitamin vaIt@mI#n
vitriol vItri:@l vitriol vItri:@l
Albuquerque alb@k3:ki Albuquerque alb@k3:ki
Algiers $2 Algiers $2
Altura O:lt'U@r@ Altura O:lt'U@r@
?3 Amazon ama#z0n
Amman a#m'A:n Amman a#m'A:n
Andes andi:z Andes andi:z
Angeles andZ@li:s Angeles andZ@li:s
Buenos bweIn0s Buenos bweIn0s
Burundi bUr'Undi Burundi bUr'Undi
Brazil $alt3 Brazil $alt3
Brunei bru:n'aI
Cadiz $alt3 Cadiz $alt3
Cairo kaIroU Cairo kaIroU
Calcutta $2 Calcutta $2
Nevada nI2vA:d@ Nevada nI2vA:d@
?3 Nevada nI2vad@ ?3 Nevada nI2vad@
Newfoundland nju:f@ndla#nd Newfoundland nju:f@ndla#nd
Nineveh nInIv@
Noumea nu:m'eI@ Noumea nu:m'eI@
Oahu oU'A:hu: Oahu oU'A:hu:
Oklahoma oUkla#h'oUm@ Oklahoma oUkla#h'oUm@
Peru p@ru: Peru p@ru:
Philippine fIlI2pi:n Philippine fIlI2pi:n
Philipine fIlI2pi:n // misspell Philipine fIlI2pi:n // misspell
Phnom pn0m
Polish poUlIS $capital $only Polish poUlIS $capital $only
Portugal po@tS@g@L Portugal po@tS@g@L
Portuguese po@tS@g'i:z Portuguese po@tS@g'i:z
Utah ju:t2A: Utah ju:t2A:
?3 Utah ju:t2O ?3 Utah ju:t2O
Utrecht ju:trECt Utrecht ju:trECt
Valencia $alt3
Vancouver $2 Vancouver $2
Vegas veIg@s Vegas veIg@s
Vermont $2 Vermont $2
Angelika $2 Angelika $2
Anita $alt3 Anita $alt3
Annamaria an@ma#r'i:@ Annamaria an@ma#r'i:@
Anthony ant@ni
?!3 Anthony ant@ni
Anton ant0n Anton ant0n
Aoife i:f@ Aoife i:f@
Aoiffe i:f@ Aoiffe i:f@
Connie k0ni Connie k0ni
Connor k0n3 Connor k0n3
Conrad $1 Conrad $1
Corinne k@ri:n
Crichton kraIt@n Crichton kraIt@n
Curtis k3:tI#s Curtis k3:tI#s
?5 Curtis kVRtI#s ?5 Curtis kVRtI#s
Cyrus saIr@s
Dana deIn@ Dana deIn@
Daphne dafni Daphne dafni
Darryl dar@L Darryl dar@L
Michelle mI2SEl Michelle mI2SEl
Miguel mi:Q'El Miguel mi:Q'El
Mildred mIldrI2d Mildred mIldrI2d
Mimi mi:mi
Mindy mIndi Mindy mIndi
Minerva mI2n3:v@ Minerva mI2n3:v@
Mirabel mIr@bEl Mirabel mIr@bEl
Ferguson f3:g@s@n Ferguson f3:g@s@n
Fleming flEmIN Fleming flEmIN
Folger foUldZ3 Folger foUldZ3
Gallagher gal@g3
Genghis dZENgIs Genghis dZENgIs
Gibson gIbs@n Gibson gIbs@n
Guinness gInIs Guinness gInIs

+ 30
- 7
dictsource/en_rules View File

b) al (d+ O:l b) al (d+ O:l
b) al (k O:l b) al (k O:l
f) al (k 0l f) al (k 0l
alkali ak@laI
alkali alk@laI
b) all (K O:l b) all (K O:l
&b) all (er_ O:l &b) all (er_ O:l
_c) al (e al _c) al (e al
_) as (trolog a#s _) as (trolog a#s
_) as (trono a#s _) as (trono a#s
&) as (ty_ a#s &) as (ty_ a#s
ass (ym as
_) as (ym eIs
purch) as (e Is purch) as (e Is
ph) ase (_ eIz ph) ase (_ eIz
r) ase (_ eIz r) ase (_ eIz
be (see bI2 be (see bI2
be (sie bI2 be (sie bI2
_) be (sto bI2 _) be (sto bI2
_) bestse (ll bEsts'E
_) beta b,i:t@ _) beta b,i:t@
?3 _) beta b,eIt@ ?3 _) beta b,eIt@
_) be (th bE _) be (th bE
_ta) ch k _ta) ch k
ta) ch tS ta) ch tS
sta) ch S sta) ch S
e) ch (o k
_e) ch (o k
bron) ch k bron) ch k
ch (ute S ch (ute S
ch (ure S ch (ure S
_) co (con k,oU _) co (con k,oU
_) co (eCP2 k,oU _) co (eCP2 k,oU
_) coe (l si: _) coe (l si:
_) co (g k0
_) cogno k0gn@
co (hab k%oU co (hab k%oU
co (llab k@ co (llab k@
co (llap k@ co (llap k@
_) deni (a dI2naI _) deni (a dI2naI
deni (tri d%i:naI deni (tri d%i:naI
_) de (no dI2 _) de (no dI2
_) de (nu dI2
_) de (o d%i: _) de (o d%i:
_) de (p@ dI2 _) de (p@ dI2
de (per d%i: de (per d%i:
de (reg d%i: de (reg d%i:
de (rel dE de (rel dE
de (riC dI2 de (riC dI2
_) de (rAX dE
de (rog dI2 de (rog dI2
de (rACatio dE de (rACatio dE
_) des (@ dI2s _) des (@ dI2s
&) ency (_ @ns%i &) ency (_ @ns%i
ency (cli %EnsI ency (cli %EnsI
k) en (d_ En k) en (d_ En
t) en (d_ En
en (dA_ 'En en (dA_ 'En
_) en (d En _) en (d En
_) en (da %En _) en (da %En
eg) en (d @n eg) en (d @n
en (dea %En en (dea %En
en (der En
cal) en (der @n
en (dous En en (dous En
_) endo EndoU _) endo EndoU
@) en (do_ 'En @) en (do_ 'En
en (ter En en (ter En
en (tert ,En en (tert ,En
enthra (l %EnTrO: enthra (l %EnTrO:
en (tia_+ 'En
&) entice %EntaIs &) entice %EntaIs
_) en (ti %En _) en (ti %En
_c) enti EntI _c) enti EntI
mb) er (_ 3 mb) er (_ 3
lin) er (_S1 3 lin) er (_S1 3
lin) ers (_S2 3z lin) ers (_S2 3z
nc) er (_S1 3
er 3: er 3:
er (A 3:r er (A 3:r
_) er (A I2r _) er (A I2r
_) es (pl Es _) es (pl Es
_) es (tab I2s _) es (tab I2s
es (tate I2s es (tate I2s
@) esc (enC 'Es
@) esc (ent_ 'Es
@) esc (ence_ 'Es
pr) es (ent Ez pr) es (ent Ez
es (iA i:z es (iA i:z
es (ian_ 'i:z es (ian_ 'i:z
&) ia (_N =i|@ &) ia (_N =i|@
&) ia (_ =i@ &) ia (_ =i@
@@) ia (_ =i@ @@) ia (_ =i@
@) iae (_ =Ii:
@) ian (cy I|@n @) ian (cy I|@n
l) iais I|eIz l) iais I|eIz
p) ia (no Ia p) ia (no Ia
_) in (flo In _) in (flo In
_) in (flu In _) in (flu In
_) in (fo_ In _) in (fo_ In
_) info (t ,InfoU
_) infra (P5 ,Infr@ _) infra (P5 ,Infr@
_) infra (c %Infra _) infra (c %Infra
in (ga_ 'IN in (ga_ 'IN
_sp) it (e aIt _sp) it (e aIt
cr) it (e_ It cr) it (e_ It
wr) ite aIt wr) ite aIt
it (ee_ aIt
_s) it (e aIt _s) it (e aIt
_t) it (an aIt _t) it (an aIt
x) ite (_ aIt x) ite (_ aIt
br) oa (d O: br) oa (d O:
oar o@ oar o@
oar (_ o@ oar (_ o@
_h) o 0
cr) o (at oU cr) o (at oU
X) o (ba oU X) o (ba oU
t) o (bacc @ t) o (bacc @
or (ig 0r or (ig 0r
or (ix 'O@r or (ix 'O@r
&) ored (_ 3d &) ored (_ 3d
h) ored (_S1 d
&) ored (_$w_alt1S1 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
hyp) ost 0st hyp) ost 0st
osure 'oUZ3 osure 'oUZ3
X) os (y oUz X) os (y oUz
@) os (y_ @s


.group ou .group ou
ou aU ou aU
rrhea r'i@ rrhea r'i@
rrhoea r'i@ rrhoea r'i@
_) ru (bL01 ru: _) ru (bL01 ru:
_) rule (@ ru:l
_) run (a rVn _) run (a rVn
_) run (o rVn _) run (o rVn
&ant) ry (_S2 r%I &ant) ry (_S2 r%I
A) sh (A_ =S A) sh (A_ =S
&) ship (_S4 SIp &) ship (_S4 SIp
&) ships (_S5 SIps &) ships (_S5 SIps
&) shipe (_ SIp
&) shire (_S5 S3 &) shire (_S5 S3
//?3 &) shire (_S5 Si@ //?3 &) shire (_S5 Si@
sia (_ =zi@ sia (_ =zi@
u) sin (_ z@n u) sin (_ z@n
A) s (itiv z A) s (itiv z
_) size (C@ saIz _) size (C@ saIz
s (mK z
a) s (m z a) s (m z
o) s (m z o) s (m z
L07) s (mAn_ z L07) s (mAn_ z
&s) tian (_ tS@n &s) tian (_ tS@n
_) tian tjan _) tian tjan
&) tial S@L &) tial S@L
&s) tial tj@L
s) tial tj@L
&) ti (ali SI &) ti (ali SI
s) ti (ali tI
i) tia (liL06 S@ i) tia (liL06 S@
&) tien S@n &) tien S@n
&) tience S@ns &) tience S@ns
_) un (A_ ju:n _) un (A_ ju:n
_) unn %Vnn _) unn %Vnn
@) un (al 'ju:n @) un (al 'ju:n
un (A_ 'u:n
une (_ ju:n une (_ ju:n
?3 d) une (_ u:n ?3 d) une (_ u:n
j) un (A u:n j) un (A u:n
_) uni ju:nI _) uni ju:nI
_) un (ide ,Vn _) un (ide ,Vn
_) un (inP2 ,Vn _) un (inP2 ,Vn
_) un (il ,ju:n
_) uni (l ,ju:nI
_) un (io ju:n _) un (io ju:n
_) un (iq %ju:n _) un (iq %ju:n
unit (e ju:n'aIt unit (e ju:n'aIt
_) vehem vi@m _) vehem vi@m
_) vibra (t v%aIbreI _) vibra (t v%aIbreI
?3 _) vibra (t v'aIbreI ?3 _) vibra (t v'aIbreI
video vIdI2oU
vivi (@ vIvI vivi (@ vIvI
viv (_ vaIv viv (_ vaIv


ä E ä E
ë E ë E
ï i: ï i:
ó (n '0
ö 3: ö 3:
ör 3: ör 3:
ü u: ü u:

+ 35
- 7
dictsource/ga_list View File

// Irish Gaeilge dictionary // Irish Gaeilge dictionary
// written by Ronan McGuirk // written by Ronan McGuirk
// 2013 // 2013
// version 2.7
// version 2.8.2
// Please send comments and suggestions to [email protected] // Please send comments and suggestions to [email protected]


// This file is UTF8 encoded // This file is UTF8 encoded


// letters // letters
// letter names, as they are spoken as a single character in text
// letter namesd, as they are spoken as a single character in text
// precede by _ to distinguish from pronunciation as a language word // precede by _ to distinguish from pronunciation as a language word


_a eI _a eI


//delete //delete


// old script
ċur x'Ur
ḃ b,i:b'u:ltS@


ċ s,i:b'u:ltS@
ḋ d,i:b'u:ltS@
ḟ ,Efb'u:ltS@
ġ dZ,i:b'u:ltS@
ṁ ,Emb'ultS@
ṗ p,i:b'u:ltS@
ṫ t,i:b'u:ltS@




// words // words
a @ a @
ab @b
abhaile @w'0l;E abhaile @w'0l;E
ach 0x $u ach 0x $u
ag Eg $verbf $u ag Eg $verbf $u
aige @g'E aige @g'E
air Er air Er
acu 0k'U acu 0k'U
ar Er $u
ar Er
arsa @rs@ arsa @rs@
agaibh 0g@Iv agaibh 0g@Iv
agus 0g@s
agus 0g@s $u
aisfhilleadh ,aS'Il;@ aisfhilleadh ,aS'Il;@
amach @m'0x amach @m'0x
amárach @m'A:r@x amárach @m'A:r@x
amuigh @mu1'I amuigh @mu1'I
amháin @w'A:in amháin @w'A:in
hamháin h@w'A:in

am aUm am aUm
anaithnid '0nah@nIdZ anaithnid '0nah@nIdZ
anonn @naUn anonn @naUn
atá @t['A: $u atá @t['A: $u
baill bu1'i:l baill bu1'i:l
bhaill vu1'i:l bhaill vu1'i:l
beadh b;'@X
bheadh v;'@X
beidh bEg beidh bEg
bhfuil w'Il bhfuil w'Il
bheas v'e:@s bheas v'e:@s
faigh faIg faigh faIg
feadh fag feadh fag
fear f'ar fear f'ar
féin h'e:n
gcathair g0h@r gcathair g0h@r
gan g0n $u gan g0n $u
gheall jaUl gheall jaUl
ina In@ $u ina In@ $u
ins Ins $u ins Ins $u
inniu Inj'u:v inniu Inj'u:v
irish _^_EN
iontach 'i:nt[@x
hiontach h'i:nt[@x
irish _^_EN
is 'Is $u is 'Is $u
(is ea) IS'a (is ea) IS'a
isteach IstS'0x isteach IstS'0x
mhama w'0m@ mhama w'0m@
maith m'0 maith m'0
mhaith w'0 mhaith w'0
mhaithe w'0h;E

mbeadh m;O#X mbeadh m;O#X
mo mO# $u mo mO# $u
mura mUr@ $u mura mUr@ $u
ná nA: $u ná nA: $u
nigh ni: nigh ni:
níorbh ni:rv
níorbh ni:@r@vv $u
nó nu: $u nó nu: $u
nollag n@l@g nollag n@l@g
nolaig nO#lig nolaig nO#lig
(s é) S'e: (s é) S'e:
(s í) S'i: (s í) S'i:
san s@n san s@n
seo S@_
san s'an $capital
seo SU_ $u
(sinn féin) S'In||f'e:n

tabhair t'u:@r tabhair t'u:@r
(tiocfaidh ár lá) tSO#ki:|'A:r|l'A: (tiocfaidh ár lá) tSO#ki:|'A:r|l'A:

+ 81
- 17
dictsource/ga_rules View File


// translation rules for Irish Gaeilge
f// translation rules for Irish Gaeilge
// This file is UTF-8 encoded // This file is UTF-8 encoded
// written by Ronan McGuirk 2013 // written by Ronan McGuirk 2013
// Version 2.7
// Version 2.8.3
// Please send comments and suggestions to [email protected] // Please send comments and suggestions to [email protected]




.L12 á é ó eo ua // when followed by i .L12 á é ó eo ua // when followed by i
.L13 oc omb .L13 oc omb
.L14 río dún gnío // followed with mh .L14 río dún gnío // followed with mh
.L15 c ch f bhf m d dh g gc gh mh // aoi following
.L15 c ch f bhf fh m d dh g gc gh mh // aoi following
.L16 b c bh ch gr ghr t th // for inn word ending .L16 b c bh ch gr ghr t th // for inn word ending
.L17 l le li niste nn .L17 l le li niste nn
.L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar .L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar
.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann
.L23 ea eo i .L23 ea eo i
.L24 b mb bh g gh p ph bp m mh .L24 b mb bh g gh p ph bp m mh
.replace
ḃ bh
ċ ch
ḋ dh
ḟ fh
ġ gh
ṁ mh
ṗ ph
ṫ th




ċ ch


.group a .group a
a 0# a 0#
_) ath 0h _) ath 0h
a (rraige a a (rraige a
ai (m_ @ ai (m_ @
aí i:
aí 'i:
aí (_ %i:
aoi @i: aoi @i:
_) aoi i: _) aoi i:
ath) aoi (r 'i:@ ath) aoi (r 'i:@
r) aoi (nín 'e:@ r) aoi (nín 'e:@
aoicht (_ 'i:@xt[ aoicht (_ 'i:@xt[
d) aoine (_ @i:n;%i:
C) ao (C @e:@ C) ao (C @e:@
_L24) ao (C w'e:@ _L24) ao (C w'e:@
C) ao (th_ @e: C) ao (th_ @e:
arraing arIng arraing arIng
_) ath (@@P3 ,0_ _) ath (@@P3 ,0_
_) athr '0hr _) athr '0hr
_) ard (@P3 A:rd[


.group á .group á
á A: á A:
_L04) ai (L18_++ u1'I//words like bain _L04) ai (L18_++ u1'I//words like bain
c) ai (t_ u1'I c) ai (t_ u1'I
s) ai (bh E s) ai (bh E
sh) ai (bh E
aighre aIr@ aighre aIr@
X) aigh 'aI X) aigh 'aI
aigh aI# L04) aill (_ wi:l
aigh aI#
_L04) aill (_ wi:l
aing (_ Ing aing (_ Ing
ailleach '0l;@x ailleach '0l;@x
ai (llimh++ '0 // words like Gaillimh ai (llimh++ '0 // words like Gaillimh
_) beann (@ ba#n _) beann (@ ba#n
_) bheann (@ va#n _) bheann (@ va#n
_) bun (C@P3 b,Un _) bun (C@P3 b,Un
?1 _m_) bun (C@P3 ,Un
_) bpríomh (@P7 bR,i:v



.group c .group c
c k c k
_) chabhr x'aUr _) chabhr x'aUr
_) ceann (C@P5 k;,aUn _) ceann (C@P5 k;,aUn
_) cheann (C@P6 C;,aUn _) cheann (C@P6 C;,aUn
_) comh (@@P4 k,o:
_) chomh (@@P5 x,o:
comhar k'o:@r
chomhar x'o:@r
comhair k'o:@r
chomhair x'o:@r


.group d .group d
d d[ // broad d d[ // broad
L01) d dZ // slender L01) d dZ // slender
d (L22 dZ // slender d (L22 dZ // slender
d (L01 d; // slender d (L01 d; // slender
d (CL01 dZ
i) d (i dZ i) d (i dZ
?1 _n_) d (@ ?1 _n_) d (@
dh Q // broad dh Q // broad
_) d (_'fh d _) d (_'fh d


d'fh (L01 d d'fh (L01 d

dhaoine Q@i:n;%i:
i) dh (_ g i) dh (_ g
a) dh (_ X a) dh (_ X
o) dh (_ X o) dh (_ X
dheartháir gr@h'A:r dheartháir gr@h'A:r
deirfiúr d;r@f'u:r deirfiúr d;r@f'u:r
dheirfiúr g;r@f'u:r dheirfiúr g;r@f'u:r
domhan d[aU@n
_) do (Ch@@P2 d[,U_ _) do (Ch@@P2 d[,U_
_) dí (C@@P2 d,i: _) dí (C@@P2 d,i:
dícheall d;'i:Ca#l dícheall d;'i:Ca#l
d) eo (ch O# d) eo (ch O#
dh) eo (ch O# dh) eo (ch O#
_) eo (ch O# _) eo (ch O#
_h) eo (ch O#
s) eo (_ @ s) eo (_ @




ea (ltaine aU ea (ltaine aU
g) ea (ll aU g) ea (ll aU
l) eamh (n aU l) eamh (n aU
dr) ea (m aU
Kdr) ea (m aU
X) ea (ch 0 X) ea (ch 0
_L04) ea (g @ _L04) ea (g @
_L04) ea (dh_ @ _L04) ea (dh_ @
L04) eaga (_ @g@ L04) eaga (_ @g@
eaghl aIl eaghl aIl
eabhra aUr@ // words like Feabhra eabhra aUr@ // words like Feabhra
eabhs aUs
eanbhean 'an@v,an eanbhean 'an@v,an
eadhb aIb eadhb aIb


fh (L22 ; // slender fh (L22 ; // slender
@) f (L06_ h @) f (L06_ h
fios fIs fios fIs
faoi fw'i:
fhios Is fhios Is
_) fo (C@@P2 f,U _) fo (C@@P2 f,U
_) fogh f'aU _) fogh f'aU
_) foc (@++ fOk _) foc (@++ fOk
?1 _bh_) f (@ ?1 _bh_) f (@
?1 _bh_) f (L22 ; ?1 _bh_) f (L22 ;
_) fíor (@P4 f,i:r




.group g .group g
g g // broad g g // broad
g (L01 g; // slender g (L01 g; // slender
?1 _n_) g (@ ?1 _n_) g (@
_) gh Q"
gh Q"
_) gh (L01 Q"j _) gh (L01 Q"j
_) gc g // urú broad _) gc g // urú broad
_) gc (L01 g; // urú slender _) gc (L01 g; // urú slender
gh (n X@ gh (n X@
gheobh j'o: gheobh j'o:
gabh gaU gabh gaU
_) gearr (C@P5 g;,aR
_) ghearr (C@P6 Q"j,aR
ghabh Q"aU
_) gearr (C@@P5 g;,aR
_) ghearr (C@@P6 Q"j,aR
_) gnáth (@@P5 g@n,A:
_) ghnáth (@P6 X@n,A:


.group h .group h
h h // silent h h // silent
iu U iu U
ia (tha i: ia (tha i:
io O# io O#
iond O#n@d[
ioml O#m@l
io (dá I io (dá I
_) io (nadh u:// words like ionadh _) io (nadh u:// words like ionadh
s) io (mb I s) io (mb I
iú u: iú u:
m) i (d_ i: // verb ending m) i (d_ i: // verb ending
_) in (@@P2 ,In_ _) in (@@P2 ,In_
_) inn In
_) in (tinn 'In
_) ionad (C@@P5 ,Ona#d[ _) ionad (C@@P5 ,Ona#d[


.group í .group í
í (_ i: í (_ i:
ín (_ i:n ín (_ i:n
ío i:@ ío i:@
íle (_ 'i:lE




.group l .group l
ll (L23 l; ll (L23 l;
l (g l@ l (g l@
l (b l@ l (b l@
L01) l (b l;@
ll (b l ll (b l
_) lorg (@@P4 l,Or@g _) lorg (@@P4 l,Or@g
_) lán (@@P3 l,A:n _) lán (@@P3 l,A:n
_) mh (n v@ _) mh (n v@
léir) mheas vas léir) mheas vas
r) m @m // words like gorm r) m @m // words like gorm
r) m (L20 @m;
_) mear (@@P4 m,ar _) mear (@@P4 m,ar
_) mí (C@@P2 m,i:


.group n .group n
n n // broad n n // broad
?1 _) n (_L01 n; ?1 _) n (_L01 n;
_) nd n // urú _) nd n // urú
_) nd (L01 n; // urú slender _) nd (L01 n; // urú slender
_) ng N
_) ng (L01 N;
ng N
ng (L01 N;
?1 _) n (_d n // urú ?1 _) n (_d n // urú
?1 _) n (_dL01 n; // urú slender ?1 _) n (_dL01 n; // urú slender
?1 _) n (_g N ?1 _) n (_g N
_C) omh o: _C) omh o:
_CC) omh o: _CC) omh o:
omha o:@ omha o:@

omhai o:@ omhai o:@
o (ll_ aU o (ll_ aU
C) o (nn_ aU C) o (nn_ aU
r) o (nn_ O# r) o (nn_ O#
C) ogh aU C) ogh aU
omhan (_ aU@n
omhain (_ aUIn omhain (_ aUIn
odha aU odha aU
opaic @pIk opaic @pIk
C) odh (_ o: C) odh (_ o:
odl (a O#l odl (a O#l
oí i: oí i:

o (rd_ o:
o (ird_ o:
_) oll (@@P3 ,Ol


.group ó .group ó
ó 'o: ó 'o:
oi (mis @ oi (mis @
ois (++ O#S ois (++ O#S
n) ois (_++ IS n) ois (_++ IS
oill w'i:l
oill (+ w'i:l
_) oi (leá 'I _) oi (leá 'I
oidh aI oidh aI
oir (_ 'ERR oir (_ 'ERR
l) oic (_ Ek
_sc) oi (r O _sc) oi (r O
oigh (ea aI oigh (ea aI
oighn aIXn oighn aIXn

oinse (_ @i:nS@
oi (nte @i:


.group p .group p
p p // broad p p // broad
p (L22 p; // slender p (L22 p; // slender
ph (L20 f; // slender ph (L20 f; // slender
?1 _b_) p (@ ?1 _b_) p (@
_) príomh (@P6 pR,i:v
_) phríomh (@P7 fR,i:v





.group r .group r
r r // broad r r // broad
L01) r R // slender L01) r R // slender
_) r (L01 R
r (L01 R
L12i) r (e_ Z L12i) r (e_ Z
L12i) r (t_ Z L12i) r (t_ Z
rr R rr R
s (lL01 S s (lL01 S
_') s (_ s // 's in poems etc _') s (_ s // 's in poems etc
_) sain (@P4 s,an _) sain (@P4 s,an
_) sean (@@P4 S,an



.group t .group t
t t[ // broad t t[ // broad
ao) th (_ ao) th (_
thne (_ h@nE thne (_ h@nE
A) th (_ // silent th at word end A) th (_ // silent th at word end
c) th (e_ ih // guta cúnta
K) th (as_ @h // guta cúnta




.group u .group u
u U# u U#
ua u@ ua u@
ua (_ u:@
uai u@ uai u@
uai (g ui uai (g ui
uai (d ui uai (d ui
g) ui (gh_ @i: g) ui (gh_ @i:
gh) ui (gh_ @i: gh) ui (gh_ @i:
uí i: uí i:
uíomh 'i:@vv

uachai 'ux@ uachai 'ux@
_) uimhir (C@P6 ,IvIR _) uimhir (C@P6 ,IvIR
uibhne (_ @'i:n;E
uibhneach (_ @'i:n@x




.group ú .group ú
úi u: úi u:
úinn (_ u:IN úinn (_ u:IN
úibh (_ u:Iv úibh (_ u:Iv
úi (g u:i







+ 4
- 4
dictsource/grc_list View File

?1 _0lang _^_EN // speak numbers in English ?1 _0lang _^_EN // speak numbers in English


// articles // articles
hο $u // ὁ
ɦο $u // ὁ
τὼ $u // τώ τὼ $u // τώ
οhι $u // οἱ
hη $u // ἡ
οɦι $u // οἱ
ɦη $u // ἡ
τὰ $u // τά τὰ $u // τά
αhι $u // αἱ
αɦι $u // αἱ
τὸ $u // τό τὸ $u // τό


τοὺ $u // τοῦ τοὺ $u // τοῦ

+ 69
- 66
dictsource/grc_rules View File

// Preliminary character substitution: // Preliminary character substitution:
// Convert tonos, oxia and perispomeni to varia // Convert tonos, oxia and perispomeni to varia
// Remove psili (soft breathing) // Remove psili (soft breathing)
// Convert dasia accent to a separate prefix character ("h")
// Convert dasia accent to a separate prefix character ("ɦ") NOTE: using U+0266 because it's above eSpeak's Latin character limit of 0x250.
// Remove iota subscripts // Remove iota subscripts
// Replace Latin characters by same-shape Greek characters // Replace Latin characters by same-shape Greek characters


ᾷ ᾲ ᾷ ᾲ


ἀ α ἀ α
hα
ɦα
ἂ ὰ ἂ ὰ
h
ɦ
ἄ ὰ ἄ ὰ
h
ɦ
ἆ ὰ ἆ ὰ
h
ɦ


ᾀ ᾳ ᾀ ᾳ
h
ɦ
ᾂ ᾲ ᾂ ᾲ
h
ɦ
ᾄ ᾲ ᾄ ᾲ
h
ɦ
ᾆ ᾲ ᾆ ᾲ
h
ɦ


// epsilon // epsilon
έ ὲ έ ὲ
έ ὲ έ ὲ
ἐ ε ἐ ε
hε
ɦε
ἒ ὲ ἒ ὲ
h
ɦ
ἔ ὲ ἔ ὲ
h
ɦ


// eta // eta
ή ὴ ή ὴ
ῇ ῂ ῇ ῂ


ἠ η ἠ η
hη
ɦη
ἢ ὴ ἢ ὴ
h
ɦ
ἤ ὴ ἤ ὴ
h
ɦ
ἦ ὴ ἦ ὴ
h
ɦ


ᾐ ῃ ᾐ ῃ
h
ɦ
ᾒ ῂ ᾒ ῂ
h
ɦ
ᾔ ῂ ᾔ ῂ
h
ɦ
ᾖ ῂ ᾖ ῂ
h
ɦ


//iota //iota
ί ὶ ί ὶ
ῖ ὶ ῖ ὶ


ἰ ι ἰ ι
hι
ɦι
ἲ ὶ ἲ ὶ
h
ɦ
ἴ ὶ ἴ ὶ
h
ɦ
ἶ ὶ ἶ ὶ
h
ɦ


ΐ ῒ ΐ ῒ
ῗ ῒ ῗ ῒ
ό ὸ ό ὸ
ό ὸ ό ὸ
ὀ ο ὀ ο
hο
ɦο
ὂ ὸ ὂ ὸ
h
ɦ
ὄ ὸ ὄ ὸ
h
ɦ


// upsilon // upsilon
ύ ὺ ύ ὺ
ῦ ὺ ῦ ὺ


ὐ υ ὐ υ
hυ
ɦυ
ὒ ὺ ὒ ὺ
h
ɦ
ὔ ὺ ὔ ὺ
h
ɦ
ὖ ὺ ὖ ὺ
h
ɦ


ΰ ῢ ΰ ῢ
ῧ ῢ ῧ ῢ
ῷ ῲ ῷ ῲ


ὠ ω ὠ ω
hω
ɦω
ὢ ὼ ὢ ὼ
h
ɦ
ὤ ὼ ὤ ὼ
h
ɦ
ὦ ὼ ὦ ὼ
h
ɦ


ᾠ ῳ ᾠ ῳ
h
ɦ
ᾢ ῲ ᾢ ῲ
h
ɦ
ᾤ ῲ ᾤ ῲ
h
ɦ
ᾦ ῲ ᾦ ῲ
h
ɦ


// rho // rho
ῤ ρ ῤ ρ
hρ
ɦρ




.group α .group α
αὶ 'aI αὶ 'aI
αυ aU αυ aU
αὺ 'aU αὺ 'aU
αhι haI
αhὶ 'haI
αhυ haU
αhὺ 'haU
αɦι haI
αɦὶ 'haI
αɦυ haU
αɦὺ 'haU


.group β .group β
β b β b
εὶ 'e: εὶ 'e:
ευ eU ευ eU
εὺ 'eU εὺ 'eU
εhι he:
εhὶ 'he:
εhυ heU
εhὺ 'heU
εɦι he:
εɦὶ 'he:
εɦυ heU
εɦὺ 'heU


.group ζ .group ζ
ζ z ζ z
ηὶ 'EI: ηὶ 'EI:
ηυ EU: ηυ EU:
ηὺ 'EU: ηὺ 'EU:
ηhι hEI:
ηhὶ 'hEI:
ηhυ hEU:
ηhὺ 'hEU:
ηɦι hEI:
ηɦὶ 'hEI:
ηɦυ hEU:
ηɦὺ 'hEU:


.group θ .group θ
θ T θ T
οὶ 'oI οὶ 'oI
ου u: ου u:
οὺ 'u: οὺ 'u:
οhι hoI
οhὶ 'hoI
οhυ hu:
οhὺ 'hu:
οɦι hoI
οɦὶ 'hoI
οɦυ hu:
οɦὺ 'hu:


.group π .group π
π p π p
υ y υ y
υι yI υι yI
υὶ 'yI υὶ 'yI
υhι hyI
υhὶ 'hyI
υɦι hyI
υɦὶ 'hyI


.group ϋ .group ϋ
ϋ y ϋ y
ϋι yI ϋι yI
ϋὶ 'yI ϋὶ 'yI
ϋhι hyI
ϋhὶ 'hyI
ϋɦι hyI
ϋɦὶ 'hyI


.group φ .group φ
φ f φ f
ωὶ 'OI: ωὶ 'OI:
ωυ OU: ωυ OU:
ωὺ 'OU: ωὺ 'OU:
ωhι hOI:
ωhὶ 'hOI:
ωhυ hOU:
ωhὺ 'hOU:
ωɦι hOI:
ωɦὶ 'hOI:
ωɦυ hOU:
ωɦὺ 'hOU:






.group h // dasia (rough breathing)
h h
.group ɦ // dasia (rough breathing)
ɦ h




// Latin letters to equivalent Greek sounds (plus 'q = η' 'w = ω' // Latin letters to equivalent Greek sounds (plus 'q = η' 'w = ω'
g g g g
gg Ng gg Ng


.group h
h h

.group i .group i
i i i i



+ 2
- 2
dictsource/hu_list View File

_#9 tAb _#9 tAb
_#32 s'o:kYz _#32 s'o:kYz
_cap n'AJ_| _cap n'AJ_|
_?? kAR2AktEr // unknown characters (change this)
_?? kAR2AktER2 // unknown characters (change this)




// Abbreviations // Abbreviations
árban $unstressend árban $unstressend
(boltok ajánlatai) boltok_'||Aja:nlAtAi $unstressend (boltok ajánlatai) boltok_'||Aja:nlAtAi $unstressend
valaki $unstressend valaki $unstressend
(kellene biztosítani) kEl:Ene_||bistosi:tAni $unstressend
(kellene biztosítani) kEl:EnE_||bistoSi:tAni $unstressend
(már lehetséges) ma:R2_||lEhEtS:e:gES $unstressend (már lehetséges) ma:R2_||lEhEtS:e:gES $unstressend
(is támogatja) iS_||ta:mogAc:A $unstressend (is támogatja) iS_||ta:mogAc:A $unstressend
(lehet használni) lEhEt_||hAsna:lni $unstressend (lehet használni) lEhEt_||hAsna:lni $unstressend

+ 612
- 131
dictsource/hu_rules View File

licen) ccs ts|tS licen) ccs ts|tS
nyol) c (csat ts nyol) c (csat ts
pokró) c (sá ts pokró) c (sá ts
barká) cs (zen tS
kalapá) cs (zon tS
_kapol) cs tS
lán) c (sor ts
barká) cs (zen tS
kalapá) cs (zon tS
_kapol) cs tS
lán) c (sor ts
daró) c (cs ts
oroszlán) cs (or tS
harmin) c (sor ts
he) cc (sajt ts
ccsz ts|s
ifjon) c (csap ts
kapo) cs (zár tS
ketre) c (cs ts
ketre) c (so ts
kul) cs (zen tS
lán) c (seb ts
lidér) c (cs ts
mala) c (cs ts
matra) c (sor ts
nyol) c (sark ts
nyol) c (sej ts
nyol) c (sug ts
párdu) c (cs ts
kar) c (sor ts
szendvi) cs (zab tS
tán) cs (i tS
tanon) c (cs ts
titán) cs tS
torná) c (sor ts
ujjper) c (cs ts
ccsz ts|s
_ér) c (saru ts


.group ch .group ch
anar) ch (i h anar) ch (i h
almana) ch h almana) ch h
kronoszti) ch (on h kronoszti) ch (on h
arca) ch (on h arca) ch (on h
sza) ch (arid h
szto) ch (aszti h
sza) ch (arid h
szto) ch (aszti h
a) ch (aem h
a) ch (át h
a) ch (illes h
ti) ch (on h
arca) ch (on h
ba) ch h
blaskovi) ch tS
?1 chip tSip
?1 damjani) ch tS
eu) ch (arisz h
eunu) ch h
fa) ch h
fis) ch (er
forgá) ch tS
grassalkovi) ch tS
ri) ch (ter C
jurisi) chcs tS:
jurisi) ch tS
keglevi) ch tS
s) ch (illing
le) ch (ner h
mala) ch (it h
metterni) ch C
pé) ch (y tS
pejacsevi) ch tS
kra) ch h
tri) ch (in h
e) ch (ó h


.group d .group d
d d d d
své) d (zseb d své) d (zseb d
csalá) d (szer d csalá) d (szer d
szaba) d (sajt d szaba) d (sajt d
szomszé) d (jog d
elő) d (szerv d
árká) d (szerű d
csalá) d (sztor d
harminca) d (sze d
hol) d (szond d
kó) d (szöve d
lipi) d (szint d
máso) d (szava d
_ná) d (szeg d
nyárá) d (szere d
rú) d (szerű d
tize) d (szed d
_va) d (szerb d
va) d (tyúk d
bőrön) d (sze d
stran) d (szett d
szomszé) d (jog d
elő) d (szerv d
árká) d (szerű d
csalá) d (sztor d
harminca) d (sze d
hol) d (szond d
kó) d (szöve d
lipi) d (szint d
máso) d (szava d
_ná) d (szeg d
nyárá) d (szere d
rú) d (szerű d
tize) d (szed d
_va) d (szerb d
va) d (tyúk d
bőrön) d (sze d
stran) d (szett d
pa) d (szomszé d
akkor) d (játsz d
harma) d (szándék d
rekor) d (szer d
rekor) d (szezo d
va) d (szállí d
cső) d (szerű d
hol) d (szputnyik d


.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
000_-) el (_ REl // double R for 1000-el 000_-) el (_ REl // double R for 1000-el
000000_-) el (_ El // ... but not 1000000-el 000000_-) el (_ El // ... but not 1000000-el
_) ehhez EhEz _) ehhez EhEz
egyezség EJ:ESSe:g
egyezségg EJ:ESSe:g:
egyezség EJ:ESSe:g
egyezségg EJ:ESSe:g:


.group é .group é
é e: é e:
fo) g (gyűrű g fo) g (gyűrű g
fo) g (gyö g fo) g (gyö g
kuplun) g (gyár g kuplun) g (gyár g
bélye) g (gyűjt g
bélye) g (gy g
jo) g (gyakor g jo) g (gyakor g
dö) g (gyapjú g dö) g (gyapjú g
fo) g (gyalu g fo) g (gyalu g
é) gh (ajla kh é) gh (ajla kh
pro) g (gyak g pro) g (gyak g
arcüre) g (gyulladás g arcüre) g (gyulladás g
bete) g (gyógyász g
szöve) g (gyűjt g szöve) g (gyűjt g
ta) g (gyűl g ta) g (gyűl g
gu) gg (ol g gu) gg (ol g
baromsá) g (gy g baromsá) g (gy g
tehetsé) g (gy g tehetsé) g (gy g
bete) g (gy g bete) g (gy g
egysé) g (gy g
átla) g (gy g
szőnye) g (gyár g
hűsé) g (gy g
_ma) g (gyűjt g
népessé) g (gy g
öröksé) g (gy g
_sze) g (gyár g
szö) g (gyors g
tisztsé) g (gy g
szúnyo) g (gy g
szala) g (gyakor g
szala) g (gyűjt g
egysé) g (gy g
átla) g (gy g
szőnye) g (gy g
hűsé) g (gy g
_ma) g (gyűjt g
népessé) g (gy g
öröksé) g (gy g
_sze) g (gyár g
szö) g (gyors g
tisztsé) g (gy g
szúnyo) g (gy g
szala) g (gyakor g
szala) g (gyűjt g
azonossá) g (gy g
barlan) g (gy g
betegsé) g (gy g
bizottsá) g (gy g
boldogsá) g (gy g
bumerán) g (gy g
szövetsé) g (gy g
cé) g (gyil g
cé) g (gyűr g
cukisá) g (gy g
me) ggy (önte J:
dö) g (gyár g
dömpin) g (gy g
dramatur) g (gy g
egyvele) g (gy g
ellensé) g (gy g
érdekessé) g (gy g
fére) g (gy g
feszültsé) g (gy g
gyalo) g (gy g
sere) g (gy g
hangszala) g (gy g
haran) g (gy g
híressé) g (gy g
hólya) g (gy g
horo) g (gy g
hülyesé) g (gy g
in) g (gyár g
jé) g (gyűr g
jo) g (gyűjt g
jo) g (gyüm g
közönsé) g (gy g
lé) g (gyár g
ma) g (gyár g
vé) g (gyant g
mássá) g (gy g
me) ggy (asz J:
me) ggy (ill J:
me) ggy (ültet J:
szala) g (gyár g
anya) g (gy g
nemzetsé) g (gy g
ördö) g (gy g
részle) g (gy g
réte) g (gy g
ru) g (gyant g
sebessé) g (gy g
szlen) g (gy g
ta) g (gyül g
tisztasá) g (gy g
újsá) g (gy g
végta) g (gy g
ele) ggy (el J:


.group gy .group gy
gy J gy J
száze) gy (edik J: száze) gy (edik J:
védje) gy (straté J védje) gy (straté J
na) gy (sor J na) gy (sor J
e) gy (esít J:
ve) gy (érték J
e) gy (esít J:
ve) gy (érték J


.group h .group h
h h h h
sz) í (verő i: sz) í (verő i:
sz) í (vevő i: sz) í (vevő i:
expressz) í (v i: expressz) í (v i:
recessz) í (ve i:
v) í (zener i:
recessz) í (ve i:
v) í (zener i:


.group j .group j
j j j j
k (-k k: //for example marok-körző word need cut one k letter and need spokening k: phoneme only k (-k k: //for example marok-körző word need cut one k letter and need spokening k: phoneme only
k-) k //silent with second k phoneme k-) k //silent with second k phoneme
_játé) kk (liens k: //exceptiof for kk (L01 rule _játé) kk (liens k: //exceptiof for kk (L01 rule
községg kYS:e:g:
községg kYS:e:g:




.group l .group l
lly (-L01 j //if have consonants after - character, need spokening one j letter with first part lly (-L01 j //if have consonants after - character, need spokening one j letter with first part
ll (-L01 l ll (-L01 l
bagate) ll (iz l bagate) ll (iz l
fü) l (lyuk l
levé) l (lyuk l
nyé) l (lyuk l


.group m .group m
m m m m


n'Em _!'Ellt,e:,ES n'Em _!'Ellt,e:,ES
porcelá) n (ny n porcelá) n (ny n
részvé) ny (jegy n^
agyo) n (játsz n
kölcsö) n (nyak n
dohá) ny (jöv n^
elektro) n (ny n
magá) n (nyar n
igé) ny (jog n^
szé) n (nyom n
verse) ny (játsz n^
ár) ny (játé n^
részvé) ny (jegy n^
agyo) n (játsz n
kölcsö) n (nyak n
dohá) ny (jöv n^
elektro) n (ny n
magá) n (nyar n
igé) ny (jog n^
szé) n (nyom n
verse) ny (játsz n^
ár) ny (játé n^
arzé) n ((ny n
bá) n (nyíre n
benzi) n (ny n
nny (elv n|n^
kö) nny (elv n^:

elektro) n (ny n
szé) n (nyom n
haszo) n (ny n
ingatla) n (nyil n
io) n (ny n
karbo) n (ny n
kazá) n (ny n
kokai) n (ny n
kölcsö) n (ny n
kupo) n (ny n
vászo) n (ny n
marato) n (ny n
mediá) n (ny n
telefo) n (ny n
morfi) n (ny n
mikro) n (ny n
neutro) n (ny n
oxigé) n (ny n
_ö) n (nyug n
panteo) n (ny n
sablo) n (ny n
skanze) n (ny n
szentivá) n (ny n
szé) n (nyom n
ta) n (nyomd n
vagyo) n (ny n
külö) n (jára n
szí) n (jeles n


.group o .group o
o o o o
_ki) s (szín S _ki) s (szín S
kérdé) s S kérdé) s S
végzé) s S végzé) s S
blue) s (zen S
fúvó) s (zené S
települé) s (zón S
adá) s (zár S
blue) s (zen S
fúvó) s (zené S
települé) s (zón S
_adá) s (zár S
basszu) s (zen S
blue) s (zon S
egyene) s (zár S
fázi) s (zár S
konfliktu) s (zón S
kortár) s (zen S
kóru) s (zen S
mikulá) s (zacs S
mulató) s (zen S
orvo) s (zseb S
ő) s (száj S
ő) s (szám S
ő) s (szava S
ő) s (szent S
ő) s (szó S
rugó) s (zárj S
szeku) s (zen S
töré) s (zón S
verbunko) s (zen S


.group ss .group ss
ssz ss2 ssz ss2
közlekedé) ssz Ss közlekedé) ssz Ss
laká) ssz Ss laká) ssz Ss
légzé) ssz Ss légzé) ssz Ss
_le) ssz (ab Ss
le) ssz (ab Ss
meglepeté) ssz Ss meglepeté) ssz Ss
nyila) ssz Ss nyila) ssz Ss
pszichológu) ssz Ss pszichológu) ssz Ss
zsarolá) ssz (er S|s zsarolá) ssz (er S|s
dőlé) ssz (ab S|s dőlé) ssz (ab S|s
települé) ssz (isz Ss települé) ssz (isz Ss
vallá) ssz Ss
folyá) ssz (er Ss
_katyva) ssz s:
mitugrá) ssz (al s:
basszu) ssz Ss
buká) ssz Ss
erőlködé) ssz Ss
szarva) ssz Ss
ricinu) ssz Ss
települé) ssz Ss
utalá) ssz Ss
erősíté) ssz Ss
fázi) ssz Ss
fejleszté) ssz Ss
fúvó) ssz Ss
autó) ssz Ss
nyomá) ssz Ss
hatá) ssz Ss
effektu) ssz Ss
pulzu) ssz Ss
jelenté) ssz Ss
váltá) ssz Ss
mondá) ssz Ss
fázá) ssz Ss
ve) ssz (ők s:
_ő) ssz (láv Ss
periódu) ssz Ss
pólu) ssz Ss
rová) ssz Ss
utasítá) ssz Ss
tudá) ssz Ss
turizmu) ssz Ss
hajó) ssz (leng Ss
vezeté) ssz Ss
_vonó) ssz (iv Ss
ülé) ssz Ss
motoro) ssz Ss
vallá) ssz Ss
folyá) ssz (er Ss
_katyva) ssz s:
mitugrá) ssz (al s:
basszu) ssz Ss
buká) ssz Ss
erőlködé) ssz Ss
szarva) ssz Ss
ricinu) ssz Ss
települé) ssz Ss
utalá) ssz Ss
erősíté) ssz Ss
fázi) ssz Ss
fejleszté) ssz Ss
fúvó) ssz Ss
autó) ssz Ss
nyomá) ssz Ss
hatá) ssz Ss
effektu) ssz Ss
pulzu) ssz Ss
jelenté) ssz Ss
váltá) ssz Ss
mondá) ssz Ss
fázá) ssz Ss
ve) ssz (ők s:
_ő) ssz (láv Ss
periódu) ssz Ss
pólu) ssz Ss
rová) ssz Ss
utasítá) ssz Ss
tudá) ssz Ss
turizmu) ssz Ss
hajó) ssz (leng Ss
vezeté) ssz Ss
_vonó) ssz (iv Ss
ülé) ssz Ss
motoro) ssz Ss
adá) ssz Ss
adó) ssz Ss
aktivitá) ssz Ss
akusztiku) ssz Ss
arco) ssz Ss
alkotá) ssz Ss
állomá) ssz Ss
típu) ssz Ss
analízi) ssz Ss
anyó) ssz Ss
áramlá) ssz Ss
emelkedé) ssz Ss
árré) ssz Ss
árveré) ssz Ss
áttöré) ssz Ss
autizmu) ssz Ss
autoritá) ssz Ss
metszé) ssz Ss
mutatkozá) ssz Ss
blue) ssz (al s:
blue) ssz Ss
bombázá) ssz Ss
bukfencezé) ssz Ss
bunyó) ssz Ss
büfögé) ssz Ss
carie) ssz Ss
ciklu) ssz Ss
cipru) ssz Ss
ciripelé) ssz Ss
citru) ssz Ss
csevegé) ssz Ss
csicsergé) ssz Ss
diakónu) ssz Ss
díjszabá) ssz Ss
dinamiku) ssz Ss
dobolá) ssz Ss
dózi) ssz Ss
dzsidá) ssz Ss
egymá) ssz Ss
elbeszélé) ssz Ss
elektroniku) ssz Ss
ellátá) ssz Ss
eltolá) ssz Ss
emigrán) ssz Ss
éneke) ssz Ss
epilógu) ssz Ss
építé) ssz (ab Ss
erőforrá) ssz Ss
erszénye) ssz Ss
érvelé) ssz Ss
esé) ssz Ss
észlelé) ssz Ss
evező) ssz Ss
evolven) ssz Ss
fagyá) ssz Ss
fá) ssz (er Ss
dísze) ssz Ss
fejlődé) ssz Ss
fékezé) ssz Ss
lángolá) ssz Ss
feltevé) ssz Ss
felvoná) ssz Ss
féti) ssz Ss
foga) ssz Ss
fordítá) ssz Ss
fotó) ssz Ss
földmíve) ssz Ss
földműve) ssz Ss
rengé) ssz Ss
főzé) ssz Ss
fuvaro) ssz Ss
hú) ssz (er Ss
gerjeszté) ssz Ss
gesztu) ssz Ss
szűré) ssz Ss
gulyá) ssz Ss
gyártá) ssz Ss
gyülekezé) ssz Ss
gyűlé) ssz Ss
hajtá) ssz Ss
hangzá) ssz Ss
hányado) ssz Ss
háztartá) ssz Ss
hente) ssz Ss
hitelesíté) ssz Ss
hivatá) ssz Ss
horga) ssz Ss
horkolá) ssz Ss
hú) ssz (ál Ss
hú) ssz (ekt Ss
hú) ssz (eml Ss
hú) ssz (int Ss
hú) ssz (örny Ss
hú) ssz (üksé Ss
hűté) ssz Ss
identitá) ssz Ss
igazgatá) ssz Ss
inciden) ssz Ss
indítá) ssz Ss
intriku) ssz Ss
írá) ssz Ss
játéko) ssz Ss
jelölé) ssz Ss
jézu) ssz Ss
júdá) ssz Ss
kaka) ssz Ss
kántálá) ssz Ss
kapacitá) ssz Ss
kapitalizmu) ssz Ss
karbantartá) ssz Ss
kárpito) ssz Ss
ver) ssz (er Ss
kerékpáro) ssz Ss
döfé) ssz Ss
ké) ssz (án Ss
ké) ssz (ár Ss
ké) ssz (er Ss
kette) ssz Ss
kézműve) ssz Ss
kidolgozá) ssz Ss
kifejezé) ssz Ss
ki) ssz (eke Ss
ro) ssz (abb s:
konfliktu) ssz Ss
konstan) ssz Ss
kontinen) ssz Ss
kóro) ssz (en Ss
kortár) ssz Ss
kóru) ssz Ss
_ko) ssz (er Ss
köle) ssz Ss
könyve) ssz (é s:
könyvtáro) ssz Ss
körö) ssz (e Ss
kőrö) ssz (eg Ss
kreativitá) ssz Ss
krízi) ssz Ss
kubiko) ssz Ss
kulturáli) ssz Ss
kurzu) ssz Ss
kutatá) ssz Ss
labirintu) ssz Ss
lakato) ssz Ss
lángo) ssz Ss
ömlé) ssz Ss
lebegé) ssz Ss
leképezé) ssz Ss
nyúlá) ssz Ss
rohaná) ssz Ss
levelezé) ssz Ss
fo) ssz (ín Ss
libbené) ssz Ss
likviditá) ssz Ss
lobbaná) ssz Ss
lövé) ssz (ám Ss
lövöldözé) ssz Ss
maga) ssz (int Ss
magatartá) ssz Ss
mágu) ssz Ss
érzé) ssz Ss
jegyzé) ssz (er Ss
lepé) ssz (er Ss
művelé) ssz Ss
megoldá) ssz Ss
rendelé) ssz Ss
megtorlá) ssz Ss
méhka) ssz (er Ss
mellka) ssz Ss
mentő) ssz Ss
mérgezé) ssz Ss
mestersége) ssz Ss
meteorológu) ssz Ss
mósu) ssz (er Ss
mután) ssz Ss
működé) ssz Ss
náda) ssz Ss
négye) ssz Ss
nyaralá) ssz Ss
nyögé) ssz Ss
oktatá) ssz Ss
olvasá) ssz Ss
órá) ssz Ss
orgazmu) ssz Ss
gyilko) ssz Ss
orvo) ssz Ss
ölelé) ssz Ss
ellenőrzé) ssz Ss
önkénte) ssz Ss
öntözé) ssz Ss
összeomlá) ssz Ss
ötvö) ssz Ss
pálo) ssz (en Ss
lámpá) ssz Ss
pazarlá) ssz Ss
pedagógu) ssz Ss
pesti) ssz Ss
pirami) ssz Ss
postá) ssz Ss
pörsené) ssz Ss
pré) ssz (ak Ss
prímá) ssz Ss
prioritá) ssz Ss
próbálkozá) ssz Ss
ré) ssz (ele Ss
részesedé) ssz Ss
reziden) ssz Ss
rítu) ssz Ss
robbaná) ssz Ss
robbantá) ssz Ss
röfögé) ssz Ss
rögtönzé) ssz Ss
rugó) ssz Ss
sakkozá) ssz Ss
sa) ssz (ikl Ss
sa) ssz (imb Ss
sa) ssz (obr Ss
sa) ssz (obor Ss
sercegé) ssz Ss
_sor) ssz (ab Ss
sörha) ssz Ss
száza) ssz Ss
szedé) ssz Ss
széle) ssz Ss
játszá) ssz Ss
szintetiku) ssz Ss
dobbaná) ssz Ss
szociáli) ssz Ss
szolgáltatá) ssz Ss
szövé) ssz Ss
taktu) ssz Ss
tanulá) ssz Ss
tapsolá) ssz Ss
társulá) ssz Ss
teknő) ssz Ss
telje) ssz Ss
teremté) ssz Ss
terhe) ssz Ss
termé) ssz Ss
tervezé) ssz Ss
tetoválá) ssz Ss
textu) ssz Ss
tizede) ssz Ss
tölté) ssz Ss
töré) ssz Ss
trombitálá) ssz Ss
trónu) ssz Ss
tűré) ssz Ss
tüsszögé) ssz Ss
unikorni) ssz Ss
uta) ssz Ss
uzsorá) ssz Ss
űrhajó) ssz Ss
ütközé) ssz Ss
vágá) ssz Ss
ütő) ssz Ss
választá) ssz Ss
vállalkozá) ssz Ss
varrá) ssz Ss
esztergályo) ssz Ss
verbunko) ssz Ss
versengé) ssz Ss
villámlá) ssz Ss
vívá) ssz Ss
bizto) ssz Ss
vonaglá) ssz Ss
voná) ssz Ss
zaklatá) ssz Ss
zászló) ssz Ss
zöldsége) ssz Ss
emlő) ssz (erű Ss
kapá) ssz (őlő Ss
kuva) ssz (al s:
szertartá) ssz (erű Ss
csipogá) ssz Ss


.group sz .group sz
sz s sz s
ré) sz (árás Sz ré) sz (árás Sz
_te) szts (or st|S _te) szts (or st|S
serté) szs (ir S|Z serté) szs (ir S|Z
tava) sz (áról s
te) sztsz (ezon st|s
balla) szts (úly st|S
kere) sztsz (ala st|s
para) szts (alá st|S
para) szts (ere st|S
para) szts (orb st|S
tava) sz (áról s
te) sztsz (ezon st|s
balla) szts (úly st|S
kere) sztsz (ala st|s
para) szts (alá st|S
para) szts (ere st|S
para) szts (orb st|S
csömö) sz (öl s
enyve) szs (in S|Z
li) sztsz (emek st|s


.group t .group t
t t t t
álla) t (cirk t álla) t (cirk t
szen) t (szob t szen) t (szob t
koncer) t (jeg t koncer) t (jeg t
tesz) t (cikl t
tesz) t (járm t
tesz) t (játék t
interne) t (jog t
á) tsz (orzás t|s
bará) t (szeren t
bi) t (széles t
spor) t (sér t
sej) t (szinte t
cson) t (sová t
direk) t (szorza t
ese) t (szétvá t
gondola) t (szond t
karsz) t (járat t
klariné) t (sz t
látsza) t (jóin t
metsze) t (sor t
mosza) t (sejt t
sej) t (sűrű t
vilaje) t (szék t
tesz) t (cikl t
tesz) t (járm t
tesz) t (játék t
interne) t (jog t
á) tsz (orzás t|s
bará) t (szeren t
bi) t (széles t
spor) t (sér t
sej) t (szinte t
cson) t (sová t
direk) t (szorza t
ese) t (szétvá t
gondola) t (szond t
karsz) t (járat t
klariné) t (sz t
látsza) t (jóin t
metsze) t (sor t
mosza) t (sejt t
sej) t (sűrű t
vilaje) t (szék t
csopor) t (sorsol t
saj) t (salát t
kama) t (jövedel t
tisztele) t (jeggy t
épüle) t (szobrá t
eszkor) t (szolgál t
foszfá) t (jövedel t
gráni) t (szob t


.group tj .group tj
C) tj c C) tj c
ké) tj (átszm tj ké) tj (átszm tj
szavaza) tj (og tj szavaza) tj (og tj
szavaza) tj (eg tj szavaza) tj (eg tj
vona) tj (eggy tj
vona) tj (eggy tj
billentyűze) tj (áté tj


.group ts .group ts
ts (_S2 tS //general rule with word end of ts letters ts (_S2 tS //general rule with word end of ts letters
bennszülö) tt (jelmez t bennszülö) tt (jelmez t
krike) tt (ját t krike) tt (ját t
szé) tt (rancsír t: szé) tt (rancsír t:
elláto) tt (jog t
felnő) tt (játszó t


.group ty .group ty
mindszen) ty t|i mindszen) ty t|i
_ré) zs (ó zS _ré) zs (ó zS
ő) zs (uta 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 tsyR2i C _) zürich tsyR2i C
tí) zsz (er s: tí) zsz (er s:
_tí) z (shill z _tí) z (shill z
topá) z z topá) z z
dör) zsz (ör Z|z dör) zsz (ör Z|z
raj) z (sa z
tí) z (seb z
raj) z (sa z
tí) z (seb z
egészségkö) z (pont s egészségkö) z (pont s
leme) z (slá z
raj) z (sor z
ri) zs (zab Z
leme) z (slá z
raj) z (sor z
ri) zs (zab Z
vá) z (sér z
ví) z z
leme) z z
eszkö) z z
gá) z (zsám z
gá) z (seb z
gá) z (ster z
gá) z (súr z
gá) z (sűr z
gá) z (süt z
gá) z (sát z
halma) z z
gá) z (síp z
masszá) zs (zuh Z
ő) z (salát z
ő) z (sírá z
raj) z (skic z
raj) z (st z
ré) z (zsan z
tí) z (sch z
ví) z (zsák z
ví) z (zsong z


.group .group
$ dolla:R2 $ dolla:R2

+ 30
- 2
dictsource/nl_list View File

het h@t $only het h@t $only
een @n $only een @n $only
ən @-n // char.replacement for 'n ən @-n // char.replacement for 'n
ət t // char.replacement for 't
ət @t // char.replacement for 't
een e:n $atend een e:n $atend
(de een) d@||e:n (de een) d@||e:n
(het een) h@t||e:n (het een) h@t||e:n
trokken $alt trokken $alt
zeten $alt zeten $alt


// -emen is not a stressed ending
boezemen $alt
ademen $alt
bliksemen $alt
wasemen $alt


// words where -er is not a stressed verb ending // words where -er is not a stressed verb ending



diller $alt // bediller diller $alt // bediller
schepper $alt // opschepper schepper $alt // opschepper
steller $alt // aansteller steller $alt // aansteller
wakker $alt wakker $alt
wapper $alt wapper $alt
water $alt water $alt
wedijver $alt
wedijver v#Ed'EIv@r $alt
weelder $alt weelder $alt
wegwijzer $alt wegwijzer $alt
weiger $alt weiger $alt
alles Al@s alles Al@s
amino $1 amino $1
amnestie $3 amnestie $3
antenne $2 $alt2
april a:pr'Il april a:pr'Il
armand _^_FR armand _^_FR
augustus VUQ'8st8s augustus VUQ'8st8s
damascering damA;s'e:rIN damascering damA;s'e:rIN
december $2 december $2
desillusie dEsIlyzi desillusie dEsIlyzi
desondanks dEsOnd'ANks
detail de:t'Aj detail de:t'Aj
dieet $2 dieet $2
diesel diz@l diesel diz@l
enorm $2 enorm $2
enquête A~k'Et@ $alt2 enquête A~k'Et@ $alt2
erosie e:r'o:zi erosie e:r'o:zi
evangelie e:vANQ'e:li
eucharistie $4 eucharistie $4
explosie $2 explosie $2
extern Ekst'Ern
februari fe:bry'a:ri februari fe:bry'a:ri
fiche fiS@ fiche fiS@
franchise frA'Si:z@ franchise frA'Si:z@
gouache Qu'AS gouache Qu'AS
gefrituurd $3 gefrituurd $3
hysterie hIstI:r'i hysterie hIstI:r'i
ideaal ide:j'a:l
ideale ide:j'a:l@
immens Im'Ens
impregnering Impr,EQn'e:IN impregnering Impr,EQn'e:IN
inductie $2 inductie $2
informatieve InfOrma:t'iv@ informatieve InfOrma:t'iv@
ingrediënt $4 ingrediënt $4
ingenieur Inzj@nj'Y:r ingenieur Inzj@nj'Y:r
informatie $3 informatie $3
intern Int'Ern
invasie $2 invasie $2
januari $3 januari $3
jury Zyri jury Zyri
kadaster $2 kadaster $2
kleinzerig klEInz'e:r@Q kleinzerig klEInz'e:r@Q
kredietwaardig $3
leesregel le:sre:Q@l leesregel le:sre:Q@l
levendig le:v@nd@Q levendig le:v@nd@Q
lunch l8nS lunch l8nS
mysterie mIst'I:ri mysterie mIst'I:ri
nabij nab'EI nabij nab'EI
new nyU new nyU
noordelijk no:rd@l@k
november $2 november $2
oceaan o:se:j'a:n
oceanen o:se:j'a:n@n
oktober $2 oktober $2
oliesel o:lis@l oliesel o:lis@l
omver o:mv'Er omver o:mv'Er
//ongelukkig $3 //ongelukkig $3
ongerieflijk $3 ongerieflijk $3
//ongrondwettig $3 //ongrondwettig $3
oostelijk o:st@l@k
partijvoorzitters $2 partijvoorzitters $2
periferie pI:rifI:r'i periferie pI:rifI:r'i
perron $2 perron $2
pistache pist'AS pistache pist'AS
premie $1
privilege privil'e:Z@ $alt2 privilege privil'e:Z@ $alt2
proces $2 proces $2
projectielen $3 projectielen $3
spektakel $2 spektakel $2
sportief $2 sportief $2
sportieve $2 sportieve $2
stream stri:m
tegennatuur $4 tegennatuur $4
tralie $1 tralie $1
travestie $3 travestie $3
vergezicht vErQ@zIxt vergezicht vErQ@zIxt
verre vEr@ verre vEr@
verrekijker vEr@kEIk@r verrekijker vEr@kEIk@r
versa vErs'a:
verste vErst@ verste vErst@
verte vErt@ verte vErt@
volledig $2 volledig $2
wanschapen $2 wanschapen $2
wantrouwend $2 wantrouwend $2
weliswaar v#ElIsw'a:r weliswaar v#ElIsw'a:r
werelden v#I:r@ld@n
werktuigelijk $2 werktuigelijk $2
westelijk v#Est@l@k
zeeën ze:@n
ziekenhuisbevalling zi:k@nhWysb@vAlIN ziekenhuisbevalling zi:k@nhWysb@vAlIN
zuiden zWyd@n
zuidelijk zWyd@l@k






alexandrië $3 alexandrië $3
Benin be:n'in Benin be:n'in
canada kAna:da: canada kAna:da:
Genua Qe:nyv#a:
Kinshasa kInS'a:sa: Kinshasa kInS'a:sa:
Nairobi nAjr'o:bi Nairobi nAjr'o:bi
Napel $alt Napel $alt

+ 42
- 5
dictsource/nl_rules View File

_) adres (@P5 a:dr'Es _) adres (@P5 a:dr'Es
_) af (C@P2 'Af _) af (C@P2 'Af
_) affich %AfiS _) affich %AfiS
_) af (rika a:f
age (_ 'a:Z@ age (_ 'a:Z@
ages (_S1 s ages (_S1 s
age (_$w_alt a:Q@ age (_$w_alt a:Q@
@) ant (e_ 'Ant @) ant (e_ 'Ant
@) ant (en_ 'Ant @) ant (en_ 'Ant
@) ant (er_ 'Ant @) ant (er_ 'Ant
ao (_ 'VU // cacao
@) ares (_ a:r'Es @) ares (_ a:r'Es
aris (_ 'a:rIs aris (_ 'a:rIs
arissen (_ 'a:rIs@n arissen (_ 'a:rIs@n
el) e (_+S1qd @ el) e (_+S1qd @
er) e (_+S1qd @ er) e (_+S1qd @
ig) e (_+S1qdm @ ig) e (_+S1qdm @
lijk) e (_S1m @


ea (_ 'e:a: ea (_ 'e:a:
eau 'o: //words with French origin eau 'o: //words with French origin
@) ee (_ 'e: @) ee (_ 'e:
@) ee (X_ 'e: @) ee (X_ 'e:
@) ee (r_ 'I @) ee (r_ 'I
h) ee (r_ I:
@) ee (rt_ 'I @) ee (rt_ 'I
@) ee (rd_ 'I @) ee (rd_ 'I
@) ee (rde_ 'I @) ee (rde_ 'I


@) elen (_ 'e:l@n @) elen (_ 'e:l@n
@) el (en_$p_alt2 @L @) el (en_$p_alt2 @L
@) elds (_ @lts
&) elijks @l@ks &) elijks @l@ks
&) em (_ @m &) em (_ @m
&) emen (_$w_alt @m@n
waarn) em e:m
&) e (ment @ &) e (ment @
eden (_ e:d@n // ?? eden (_ e:d@n // ??
&) en (_S2qd @n &) en (_S2qd @n
KAC) en (_S2e @n // flag 'e' means double the previous vowel KAC) en (_S2e @n // flag 'e' means double the previous vowel
KAj) en (_S2 @n KAj) en (_S2 @n
KAx) en (_S2 @n
and) en (_S2 @n and) en (_S2 @n
ie) en (_S2 @n
el) en (_+S2qd @n el) en (_+S2qd @n
er) en (_+S2qd @n er) en (_+S2qd @n


@) er (ingen_ 'I:r @) er (ingen_ 'I:r
&) er (_$p_alt =@r &) er (_$p_alt =@r
&) er (e_$p_alt =@r &) er (e_$p_alt =@r
&) er (en_$p_alt =@r
&) er (en_$p_alt =@r // where 'eren' is not a verb ending
&) er (t_$p_alt =@r &) er (t_$p_alt =@r
&) er (d_$p_alt =@r &) er (d_$p_alt =@r
&) er (de_$p_alt =@r &) er (de_$p_alt =@r
_) er (@P2 Er _) er (@P2 Er
&) er (_ @r &) er (_ @r
&) ere (_ @r@ &) ere (_ @r@
&) er (en_$p_alt @r // where 'eren' is not a verb ending
eren (_ 'I:r@n eren (_ 'I:r@n
erend (_ 'I:r@nd erend (_ 'I:r@nd
@) eres (_S4qd @r'Es @) eres (_S4qd @r'Es
gg Q gg Q
s) g x s) g x
_) gast (@ Q'Ast
_) gasten (@P6 Q'Ast@n
g (é Z g (é Z
g (ee_ Z g (ee_ Z
_lo) g (eer Z _lo) g (eer Z
gener (aal Q,e:n@r gener (aal Q,e:n@r
_) gelijk Q@lEIk _) gelijk Q@lEIk
_) gemeente (@P8 Q@m'e:nt@ _) gemeente (@P8 Q@m'e:nt@
genre ZA~r@
_) ge (lC QE _) ge (lC QE
_) ge (rC QE _) ge (rC QE
_) ge (lenL02 Qe: _) ge (lenL02 Qe:
h h h h
C) h (K C) h (K


C) hand (_S4 h'Ant
_) handicap hEndikEp _) handicap hEndikEp
_) her (@P3 hEr _) her (@P3 hEr
_) her (der hEr
_) her (ds hEr
_) her (en hI:r _) her (en hI:r
_) herfst (@P6 h'Erfst
_) herinn h%ErIn // herinneren _) herinn h%ErIn // herinneren
_) hersen h'Ers@n _) hersen h'Ers@n
&) heid (_S4 hEIt &) heid (_S4 hEIt
CAss) ie (_ =i CAss) ie (_ =i
@) ig (_S2dq =@Q @) ig (_S2dq =@Q
@) ige (_S1m @ @) ige (_S1m @
_) ige (_ @Q@ // when a prefix is removed, eg "herfstige"
@) igen (_ =@Q@n @) igen (_ =@Q@n
@) iger (_ =@Q@r @) iger (_ =@Q@r
@) igere (_ =@Q@r@ @) igere (_ =@Q@r@
&) iko (_ =iko: &) iko (_ =iko:
fam) i (lie 'i fam) i (lie 'i
_) in (C@P2 'In _) in (C@P2 'In
_) ing (eC_ IN // bewerkingen
_) in (do In _) in (do In
_) in (forma In _) in (forma In
ine (_ 'in@ ine (_ 'in@
ines (_ 'in@s ines (_ 'in@s
_) informatie (@P10 InfOrm'a:tsi _) informatie (@P10 InfOrm'a:tsi
_) inn (@P2 'I // ?? inneren
_) inn (er 'In // ?? inneren
_) inn (ig In
_) inter Int@r _) inter Int@r
io (nage iO io (nage iO
io (de_ i'o: io (de_ i'o:
@) isme (_ 'Ism@ @) isme (_ 'Ism@
@) ist (_ 'Ist @) ist (_ 'Ist
@) isten (_ 'Ist@n @) isten (_ 'Ist@n
Ar) ia (_ =ia:
Ar) ium (_ =i8m


.group j .group j
j j j j
_) jaar (@P4 j'a:r _) jaar (@P4 j'a:r
jaar (lijk ja:r jaar (lijk ja:r
jou (rna Zu jou (rna Zu
kokkerel kOk@r'El kokkerel kOk@r'El
_) koning k'o:nIN // in compounds _) koning k'o:nIN // in compounds
_) koningin ko:nIQ'In _) koningin ko:nIQ'In
_) krediet (@P7 kr@d'it




.group l .group l
l l l l
l) l l) l
&) lijk (_S4 l@k &) lijk (_S4 l@k
&) lijke (_S5 l@k@
&) lijken (_S6 l@k@n &) lijken (_S6 l@k@n
&) lijker (_S6 l@k@r &) lijker (_S6 l@k@r
&) lijkere (_S7 l@k@r@ &) lijkere (_S7 l@k@r@


&) laan (_S4 la:n &) laan (_S4 la:n
_) lange (@P5 laN@ _) lange (@P5 laN@
_) land (@P4 l'And
_) land (e l'And
_) lente (@P5 l'Ent@
_) liefdes (@P7 l'ifd@s _) liefdes (@P7 l'ifd@s
detai) ll detai) ll
@) loog (_ lo:x @) loog (_ lo:x
_) mee (rC mI: _) mee (rC mI:
menu (_ m@ny menu (_ m@ny
_) mi (cro mi _) mi (cro mi
_) milieu mIlj'Y:
_) mi (s@ m%I _) mi (s@ m%I
_) mis (anC miz _) mis (anC miz
_) mis (commP3 m'Is _) mis (commP3 m'Is
_) op (enen+ 'o:p _) op (enen+ 'o:p
_) openings (P8 'o:p@nINs _) openings (P8 'o:p@nINs
_) op (era 'o:p _) op (era 'o:p
_) opper Op@r
_) op (tion Op _) op (tion Op
os (_ Os os (_ Os
ou (che_ u ou (che_ u
sch sx sch sx
sch (_ s sch (_ s
sch (e_ s sch (e_ s
sch (er_ s
_) sch (n S _) sch (n S
_) sh S _) sh S
sh (K S sh (K S
_) trans (@P5 tr,Ans _) trans (@P5 tr,Ans


.group te .group te
_) tege (lijk t@Q@
_) tegen (P5 t'e:Q@n _) tegen (P5 t'e:Q@n
_) terug (P5 t@r'8x _) terug (P5 t@r'8x
_) te (gelijkP2 t@ _) te (gelijkP2 t@
v v v v
s) v f s) v f


_) vakantie (@P8 va:k'Antsi
_) van (@P3 v%An _) van (@P3 v%An
_) vanzelf (@P7 vAnz,Elf _) vanzelf (@P7 vAnz,Elf
_) vang vAN _) vang vAN
_) weg (@P3 v#'EQ _) weg (@P3 v#'EQ
_) weg (en v#e:Q _) weg (en v#e:Q
_) weg (e_ v#e:Q // bewegelijk _) weg (e_ v#e:Q // bewegelijk
_) weg (ing v#e:Q // bewegingen
_) wereld (@P6 v#'I:r@lt
_) werk (@P4 v#'Erk _) werk (@P4 v#'Erk
_) werk (el v#'Erk _) werk (el v#'Erk
_) werk (ing v#'Erk
_) west (@P4 v#Est _) west (@P4 v#Est
_) wets (@P4 v#'Ets
_) winter (@P6 v#'Int@r
_) woon (@P4 v#'o:n _) woon (@P4 v#'o:n
_) wr (@ vr _) wr (@ vr


z (z z (z
s) z s) z


_) zee (@P3 z'e:
_) zeeuw zeU
zele (_S4 ze:l@ // common suffix for cities. zele (_S4 ze:l@ // common suffix for cities.
@) zelf (_S4 s'Elf @) zelf (_S4 s'Elf
_) zoge (@P4 z,o:Q@ _) zoge (@P4 z,o:Q@
_) zomer (@P5 z'o:m@r
_) zuid (@P4 zWyt _) zuid (@P4 zWyt





+ 1
- 1
dictsource/sl_list View File

@ 'a:fna @ 'a:fna
# l'e:stvitsa # l'e:stvitsa
$ d'o:laR $ d'o:laR
% Otst'o:tOw
% Otst'o:tkOw
& 'i:n & 'i:n
* zv'e:ditsa * zv'e:ditsa
+ plu:s + plu:s

+ 10
- 5
dictsource/sw_list View File

z zedi z zedi






// numbers // numbers
_0 sif'uRi _0 sif'uRi
_1 m'oJa _1 m'oJa
kwavyo $pause // by means of which kwavyo $pause // by means of which
kwaye $pause // by means of which kwaye $pause // by means of which


kwa $u $brk // with
kwa $u // with
mwenye $u $brk // with mwenye $u $brk // with
wenye $u $brk // with wenye $u $brk // with
yenye $u $brk // with yenye $u $brk // with
chenye $u $brk // with chenye $u $brk // with
vyenye $u $brk // with vyenye $u $brk // with
zenye $u $brk // with zenye $u $brk // with
malipo $unstressend





// conjunctions // conjunctions
ingawa $pause // although ingawa $pause // although
iwapo $pause // when iwapo $pause // when
japo $pause japo $pause
(juu ya) J,u:ja/ $pause // as for
(juu ya) J,u:ja $pause // as for
kama $u+ $pause // if,like kama $u+ $pause // if,like
kisha $pause // moreover kisha $pause // moreover
kusudi $pause // in order to kusudi $pause // in order to
kuwa $u $pause // that kuwa $u $pause // that
(kwa kuwa) kwa||k,uwa/ $pause // becuse
(kwa kuwa) kwa||k,uwa $pause // becuse
kwamba $u $pause // that kwamba $u $pause // that
lakini $pause // however lakini $pause // however
walakini $pause // however walakini $pause // however
yaani $pause // i.e. yaani $pause // i.e.




// exceptions

mantiki ma_|nt'iki $u1+
zanzibar $3






+ 16
- 15
dictsource/sw_rules View File



.group a .group a
a a a a
aa a:

.group b .group b
b b b b




.group e .group e
e e e e
ee e:

.group f .group f
f f f f




.group i .group i
i i i i
ii i:

.group j .group j
j J j J
j (w J


.group k .group k
k k k k
K) k (@@ _|k
kh x kh x


.group l .group l
l l l l



.group m .group m
m m m m
_) m m- _) m m-
K) m (@@ _|m K) m (@@ _|m
K) m (C m- K) m (C m-
K) m (b@@ _|m K) m (b@@ _|m
K) m (v@@ _|m
K) m (v@ _|m
K) m (w@@ _|m K) m (w@@ _|m


.group n .group n
n (A n n (A n
n (@@ n n (@@ n
ny n^ ny n^
n (ch n^
n (ch n-
n (j n^ n (j n^
ng' N
ng (' N
n (k N n (k N
_) n (k N- _) n (k N-
_) n (k@@ N- _) n (k@@ N-
n (g N n (g N
K) n (g N-
_) n (g@@ N-


.group o .group o
o o o o
oo o:


.group p .group p
p p p p


.group u .group u
u u u u
uu u:


.group v .group v
v v v v


.group w .group w
w w w w
j) w %u
ny) w %u
j) w %u
ny) w %u


.group x .group x
x ks x ks

+ 5
- 2
dictsource/ta_list View File

_: mukka:l||pul.l.i // முக்கால் புள்ளி _: mukka:l||pul.l.i // முக்கால் புள்ளி
_( id.V||piRaI // இட பிறை _( id.V||piRaI // இட பிறை
_) vVlV||piRaI // வல பிறை _) vVlV||piRaI // வல பிறை
_[ id.V||sadUrVm // இட சதுரம்
_] vVlV||sadUrVm // வல சதுரம்
_[ id.VppVgVrVm // இடப்பகரம்
_] vVlVppVgVrVm // வலப்பகரம்.
_{ id.V||gVn.Vm // இட கணம் _{ id.V||gVn.Vm // இட கணம்
_} vVlV||gVn.Vm // வல கணம் _} vVlV||gVn.Vm // வல கணம்
< kuRaIvU // குறைவு < kuRaIvU // குறைவு
புசு $alt புசு $alt
புஸு $alt புஸு $alt
பாதிக்காம $alt பாதிக்காம $alt
பனியா $alt
பாம் $alt




// initial த as [d] // initial த as [d]
தாயம் $alt தாயம் $alt
திமு $alt திமு $alt
தாவா $alt தாவா $alt
துருவா $alt




// initial ட // initial ட

+ 125
- 10
dictsource/ta_rules View File

.L30 மெடல பிஷ ஃபிஷ .L30 மெடல பிஷ ஃபிஷ


// endings after போர்ட (board) // endings after போர்ட (board)
.L31 ் ிங் ின ை ுக்க ில ும
.L31 ்_ ிங் ின ை ுக்க ில ும




// consonants // consonants
க் (_க k க் (_க k


//sort //sort



_) க (ஃபார gV
_) க (ங்கபாடி gV _) க (ங்கபாடி gV
_) க (ங்கர gV _) க (ங்கர gV
_) க (ங்கா gV _) க (ங்கா gV
_) க (தியை gV _) க (தியை gV
_) க (ந்தக gV _) க (ந்தக gV
_) க (ந்தகிரி kV _) க (ந்தகிரி kV
_) க (ந்தக்கோட்ட kV
_) க (ந்தர்வ gV _) க (ந்தர்வ gV
_) கனக (ச்சித gVnVkV _) கனக (ச்சித gVnVkV
_) க (னக்க gV _) க (னக்க gV
_) க (னத் gV _) க (னத் gV
_) க (னபாடி gV _) க (னபாடி gV
_) க (னப்ப gV
_) க (னம gV _) க (னம gV
_) க (னரக gV _) க (னரக gV
_) கப (ார gVf
_) கப் (L04ா gVp _) கப் (L04ா gVp
_) கப்ச (ிப் gVptS _) கப்ச (ிப் gVptS
_) க (ப்புன gV _) க (ப்புன gV
_) க (ாந்தத் g _) க (ாந்தத் g
_) க (ாந்தப் g _) க (ாந்தப் g
_) க (ாந்தமா g _) க (ாந்தமா g
_) க (ாந்தர்வ g
_) க (ாந்தார g _) க (ாந்தார g
_) க (ாந்தி g _) க (ாந்தி g
_) க (ானங் g _) க (ானங் g
க (ாரன k க (ாரன k
_) க (ார்டன g _) க (ார்டன g
_) க (ார்டியன g _) க (ார்டியன g
_) க (ால்ஃப் g
_) கால்ப் ga:lf
_) க (ிஃப்ட g _) க (ிஃப்ட g
_) கிட (ார git. _) கிட (ார git.
_) க (ிடுகிடு g _) க (ிடுகிடு g
_) கி (றித்த k _) கி (றித்த k
_) கி (றிஸ்டல k _) கி (றிஸ்டல k
_) கி (றிஸ்த k _) கி (றிஸ்த k
_) கி (லேசியர g
_) க (ில்மா g _) க (ில்மா g
_) கி (ளப்_ k _) கி (ளப்_ k
_) கிளப்ப (ில kl.Vbb _) கிளப்ப (ில kl.Vbb
_) கி (ளாL04ு k _) கி (ளாL04ு k
_) கி (ளாL04ை k _) கி (ளாL04ை k
_) கி (ளாமர g _) கி (ளாமர g
_) கிளார்க் kl.a:rk
_) கி (ளாஸ்_ g _) கி (ளாஸ்_ g
_) கி (ளாஸ்_மேட k _) கி (ளாஸ்_மேட k
_) கிளாஸ்க (ோ gl.a:sg _) கிளாஸ்க (ோ gl.a:sg
_) க (ுஜால g _) க (ுஜால g
_) க (ுடியாத்த g _) க (ுடியாத்த g
_) க (ுடுகுடு g _) க (ுடுகுடு g
_) க (ுணக் g
_) க (ுணங் g _) க (ுணங் g
_) க (ுணசாலி g
_) குணச (ித்திர gun.VtS _) குணச (ித்திர gun.VtS
_) க (ுணசீல g _) க (ுணசீல g
_) க (ுணசேகர g _) க (ுணசேகர g
_) க (ுருகுல g _) க (ுருகுல g
_) க (ுருக்கள g _) க (ுருக்கள g
_) க (ுருக்குல g _) க (ுருக்குல g
_) க (ுருக்ஷேத்திர g
_) க (ுருசாமி g _) க (ுருசாமி g
_) குருச (ேத்திர gurUs.
_) க (ுருஜி g _) க (ுருஜி g
_) க (ுருதேவ g _) க (ுருதேவ g
_) க (ுருத்வார g
_) க (ுருநா g _) க (ுருநா g
_) க (ுருபகவான g _) க (ுருபகவான g
_) குருப (த்தினி gurupV _) குருப (த்தினி gurupV
_) குருப (ீட gurup _) குருப (ீட gurup
_) குருப (ூ gurup _) குருப (ூ gurup
_) க (ுருபூஜை g _) க (ுருபூஜை g
_) க (ுருபோத g
_) குருப்பி (ரசாத gurupp _) குருப்பி (ரசாத gurupp
_) க (ுருப்பெயர g _) க (ுருப்பெயர g
_) க (ுருப்யோ g
_) க (ுருமார g _) க (ுருமார g
_) க (ுருமூர்த்தி g _) க (ுருமூர்த்தி g
_) க (ுருரா g _) க (ுருரா g
_) க (ுருவடி g _) க (ுருவடி g
_) க (ுருவம்ச g _) க (ுருவம்ச g
_) க (ுருவம்மா g
_) க (ுருவருள g _) க (ுருவருள g
_) க (ுருவா g _) க (ுருவா g
_) க (ுருவாய g _) க (ுருவாய g
_) க (ுருவை g _) க (ுருவை g
_) க (ுருவோ g _) க (ுருவோ g
_) க (ுருவோட g _) க (ுருவோட g
_) க (ுருஷேத்திர g
_) கு (ரூப் g _) கு (ரூப் g
_) க (ுலாப g _) க (ுலாப g
_) க (ுலாம g _) க (ுலாம g
_) க (ெட்டிக்கனும k _) க (ெட்டிக்கனும k
_) க (ெட்டிக்கி k _) க (ெட்டிக்கி k
_) க (ெட்டிரு k _) க (ெட்டிரு k
_) க (ெட்டில k
_) க (ெத் g _) க (ெத் g
_) க (ெரில்லா g _) க (ெரில்லா g
_) கெள (தம gaU _) கெள (தம gaU
_) க (ேமை g _) க (ேமை g
_) க (ேம்ஸ g _) க (ேம்ஸ g
_) கேரண்ட ge:rVn.t.V# _) கேரண்ட ge:rVn.t.V#
_) கேலக (்சி ge:lVk
_) க (ேலக்ஸி g
_) க (ேலரி g _) க (ேலரி g
_) க (ேலி g _) க (ேலி g
_) க (ேஸ்_L26 g _) க (ேஸ்_L26 g
_) க் (ரீன g _) க் (ரீன g
_) க் (ரூப g _) க் (ரூப g
_) க் (ரௌண்ட g _) க் (ரௌண்ட g
_) க் (லேசியர g
_) க் (ளாமர g _) க் (ளாமர g
_) க் (ளாஸ்_ g _) க் (ளாஸ்_ g
_) க்வ (A kw _) க்வ (A kw
_தர்ம) க (ர்த kV _தர்ம) க (ர்த kV
_குல்) க (ர்னி kV _குல்) க (ர்னி kV
விஸ்வ) க (ர்மா kV விஸ்வ) க (ர்மா kV
உரை) க (ற் kV
_மைல்) க (ற் kV
_விண்) க (ற் kV _விண்) க (ற் kV
_லோ) க (ல kV _லோ) க (ல kV
_மெடி) க (ல kV _மெடி) க (ல kV
_சூரிய) க (லா kV _சூரிய) க (லா kV
_யூ) க (லிப்டஸ kV _யூ) க (லிப்டஸ kV
_ஜீவ) க (லை kV _ஜீவ) க (லை kV
உரை) க (ல் kV
_மைல்) க (ல் kV
_காய) கல்ப kVlpV# _காய) கல்ப kVlpV#
பஞ்ச) க (ல்யாண kV பஞ்ச) க (ல்யாண kV
_ரண) க (ள kV _ரண) க (ள kV
_கண்) க (ாணா k _கண்) க (ாணா k
_கர்ம) க (ாண்ட g _கர்ம) க (ாண்ட g
உத்திரா) க (ாண்ட k உத்திரா) க (ாண்ட k
அ) காத (மி ka:d.V
_ராம) க (ாதை k _ராம) க (ாதை k
இராம) க (ாதை k இராம) க (ாதை k
_ஸ்ரீ) காந்த ka:ntV# _ஸ்ரீ) காந்த ka:ntV#
_கை) க (ுலு k _கை) க (ுலு k
_) குல்க (ந்த gulkV _) குல்க (ந்த gulkV
_மெரு) க (ூட்ட g _மெரு) க (ூட்ட g
_லா) க (ூர H
_தயை) க (ூர k _தயை) க (ூர k
_தயவு) க (ூர k _தயவு) க (ூர k
அருள்) க (ூர k அருள்) க (ூர k
_நினைவு) க (ூர k _நினைவு) க (ூர k
_மு) க (ூர்த H
_குறை) க (ூற k _குறை) க (ூற k
அறை) க (ூவ k அறை) க (ூவ k
_மார்) கெட் ket. _மார்) கெட் ket.
அயோ) க்க (ிய gg அயோ) க்க (ிய gg
ஆரோ) க்க (ிய gg ஆரோ) க்க (ிய gg
வைரா) க்க (ிய gg வைரா) க்க (ிய gg
_மூல) க்கி (ர gg
அநு) க்கி (ர gg அநு) க்கி (ர gg
அனு) க்கி (ர gg அனு) க்கி (ர gg
_கர்ப்ப) க்கி (ர gg _கர்ப்ப) க்கி (ர gg
என்சை) க்லோப (ீடியா klo:p என்சை) க்லோப (ீடியா klo:p
_சு) க் (ள k _சு) க் (ள k
_ஷு) க் (ள k _ஷு) க் (ள k
_து) க்ளக் kl.Vk
க் (ஸ k க் (ஸ k
_எ) க் (ஸாம g _எ) க் (ஸாம g
_மெ) க்ஸிக (ோ ksik _மெ) க்ஸிக (ோ ksik
ஞ்) ச dZV ஞ்) ச dZV
ஞ்) ச (B dZ ஞ்) ச (B dZ
ச் (_N tS ச் (_N tS
ச்_) ச tSV // previous word ends in ச்
ச்_) ச (B tS
ச் (_ச tS
ச்_) ச (++ :V# // previous word ends in ச்
_) சாம்ப (ியன tSa:mp _) சாம்ப (ியன tSa:mp


//sort //sort
_) ச (த்ரபதி tSV _) ச (த்ரபதி tSV
_) ச (த்ரு tSV _) ச (த்ரு tSV
ச (ந்தர tSV ச (ந்தர tSV
_வ) ச (ந்தர sV
_) ச (ந்தர்ப sV _) ச (ந்தர்ப sV
அ) ச (ந்தர்ப sV அ) ச (ந்தர்ப sV
ச (ந்திர tSV ச (ந்திர tSV
_) ச (ப்பி tSV _) ச (ப்பி tSV
_) ச (ப்பு tSV _) ச (ப்பு tSV
_) ச (ப்பெ tSV _) ச (ப்பெ tSV
_) ச (ம்பல்பூர tSV
_) சம்ப (ாரன tSVmp _) சம்ப (ாரன tSVmp
_நா) ச (ர zV _நா) ச (ர zV
_ரே) ச (ர zV _ரே) ச (ர zV
விப) ச (ார tS விப) ச (ார tS
_கிரL06) ச (ார tS _கிரL06) ச (ார tS
_குணா) ச (ார tS _குணா) ச (ார tS
_பிரிவுப) ச (ார tS
_விருந்துப) ச (ார tS
ராஜோப) ச (ார tS ராஜோப) ச (ார tS
ஆ) ச (ார_ tS ஆ) ச (ார_ tS
ஆ) ச (ாரங்கள tS ஆ) ச (ாரங்கள tS
_வி) ச (ாரங்கள tS _வி) ச (ாரங்கள tS
ஆ) ச (ாரத் tS ஆ) ச (ாரத் tS
_வி) ச (ாரத்த tS _வி) ச (ாரத்த tS
ஆ) ச (ாரப்பட tS
ஆ) ச (ாரம tS ஆ) ச (ாரம tS
_வி) ச (ாரம tS _வி) ச (ாரம tS
_சிவா) ச (ாரி tS _சிவா) ச (ாரி tS
_சுகா) ச (ாரி tS
_ரங்கா) ச (ாரி tS _ரங்கா) ச (ாரி tS
_வரதா) ச (ாரி tS _வரதா) ச (ாரி tS
_வேதா) ச (ாரி tS _வேதா) ச (ாரி tS
_) ச (ார்ஜை tS _) ச (ார்ஜை tS
_மொ) ச (ார்ட z _மொ) ச (ார்ட z
_) ச (ார்மினார tS _) ச (ார்மினார tS
ஆ) ச (ார்ய tS
_) ச (ார்லஸ tS _) ச (ார்லஸ tS
_) ச (ார்லி tS _) ச (ார்லி tS
_) ச (ாலக்குடி tS _) ச (ாலக்குடி tS
_மலே) ச (ிய s. _மலே) ச (ிய s.
இந்தோனே) ச (ிய s. இந்தோனே) ச (ிய s.
_) ச (ியர்ஸ tS _) ச (ியர்ஸ tS
_) சி (யாம s.
_பக்தி_) சிரத் (தை srVd _பக்தி_) சிரத் (தை srVd
_) சிரத்த (ைL27 srVdd _) சிரத்த (ைL27 srVdd
சி (ரம s சி (ரம s
_கபாலீ) சு (வ s _கபாலீ) சு (வ s
_ஜலகண்டே) சு (வ s _ஜலகண்டே) சு (வ s
அர்த்தனாரீ) சு (வ s அர்த்தனாரீ) சு (வ s
_) சு (வமேத s
_சனீ) சு (வர s _சனீ) சு (வர s
ராஜே) சு (வர s ராஜே) சு (வர s
_மங்களே) சு (வர s _மங்களே) சு (வர s
_) ச (ேஞ்ச tS _) ச (ேஞ்ச tS
_) ச (ேட்டன tS _) ச (ேட்டன tS
_) ச (ேட்டர்ஜி tS _) ச (ேட்டர்ஜி tS
_குரு) ச (ேத்திர s.
_) ச (ேனல tS _) ச (ேனல tS
_) ச (ேரி tS _) ச (ேரி tS
_தல) ச (ேரி tS _தல) ச (ேரி tS
_) சௌப (ாத்தி tSaUp _) சௌப (ாத்தி tSaUp
_) ச (ௌபே tS _) ச (ௌபே tS
_) ச (ௌஹான tS _) ச (ௌஹான tS
_ந) ச் (னு tS
_கா) ச்மூச tSmu:tSV# _கா) ச்மூச tSmu:tSV#
//endsort //endsort


ஜ (B dZ ஜ (B dZ
//sort //sort
_கெ) ஜ (ட் zV _கெ) ஜ (ட் zV
_ட) ஜ (ன zV
_டின்) ஜ (ர tSV _டின்) ஜ (ர tSV
_) ஜ (ர்தாரி zV _) ஜ (ர்தாரி zV
_க) ஜ (லா zV _க) ஜ (லா zV
_) ஜ (ாக்கீர z _) ஜ (ாக்கீர z
_ரம்) ஜ (ான z _ரம்) ஜ (ான z
_நி) ஜ (ாம z _நி) ஜ (ாம z
_) ஜ (ாம்பிய z
_ப) ஜ (ார z _ப) ஜ (ார z
அ) ஜ (ாருதீன z அ) ஜ (ாருதீன z
_நா) ஜ (ி z _நா) ஜ (ி z
_) ஜிப்(_ zip _) ஜிப்(_ zip
_) ஜ (ிப்ப z _) ஜ (ிப்ப z
_) ஜ (ிப்பா dZ _) ஜ (ிப்பா dZ
_) ஜ (ிம்பாப்வே z
_) ஜ (ியா_ z _) ஜ (ியா_ z
_) ஜ (ியாவ z _) ஜ (ியாவ z
_) ஜ (ீனத் z _) ஜ (ீனத் z
_) ஜ (ுல்ஃபி z _) ஜ (ுல்ஃபி z
_) ஜ (ுல்பி z _) ஜ (ுல்பி z
_) ஜு (வால dZ _) ஜு (வால dZ
_) ஜ (ூலு z
_) ஜ (ெனித் z _) ஜ (ெனித் z
_) ஜ (ெராக்ஸ z _) ஜ (ெராக்ஸ z
//endsort //endsort


//sort //sort
_டே) ட t.V# _டே) ட t.V#
_மால்) ட t.V#
_பேண்) ட t.V# _பேண்) ட t.V#
_வால்) ட t.V# _வால்) ட t.V#
_கமெண்) ட t.V# _கமெண்) ட t.V#
_) டோர்னமெண்ட t.o:rnVmen.t.V# _) டோர்னமெண்ட t.o:rnVmen.t.V#
_) ட (ோலிவுட் t. _) ட (ோலிவுட் t.
_லே) ட் t. _லே) ட் t.
_ஹி) ட் t.
@மெண்) ட் t. // -ment @மெண்) ட் t. // -ment
_பேண்) ட் t. _பேண்) ட் t.
_ஹெல்மெ) ட் t. _ஹெல்மெ) ட் t.
_பாலிவு) ட்ட d.d.V# _பாலிவு) ட்ட d.d.V#
_மாலிவு) ட்ட d.d.V# _மாலிவு) ட்ட d.d.V#
_ஹாலிவு) ட்ட d.d.V# _ஹாலிவு) ட்ட d.d.V#
_ரெ) ட்ட (ிகள d.d.
_ரெ) ட்ட (ிய d.d. _ரெ) ட்ட (ிய d.d.
_ஷெ) ட்ட (ில d.d.
இ) ட்ட (ிலி d.d. இ) ட்ட (ிலி d.d.
_ஜி) ட்ட (ு d.d. _ஜி) ட்ட (ு d.d.
_ஷெ) ட்ட (ு d.d.
_ஷெ) ட்ட (ை d.d.
அப்பாயிண்) ட்மெண்ட t.men.t.V# அப்பாயிண்) ட்மெண்ட t.men.t.V#
_) ட் (யூசன t. _) ட் (யூசன t.
_) ட் (யூன t. _) ட் (யூன t.
எண்) ட் (ரி t. எண்) ட் (ரி t.
_) ட்ரிக (ர t.riggV _) ட்ரிக (ர t.riggV
_) ட்ரிக் t.rik _) ட்ரிக் t.rik
_ஹா) ட்ரிக் t.rik
_) ட்ரிக்க (ர t.riggV _) ட்ரிக்க (ர t.riggV
_) ட் (ரிங்_ t. _) ட் (ரிங்_ t.
_நியூ) ட் (ரின t. _நியூ) ட் (ரின t.
_) த (கன dV _) த (கன dV
_) த (கி dV _) த (கி dV
_) த (க்க்ஷிண dV _) த (க்க்ஷிண dV
_) த (க்ஷக dV
_) த (க்ஷசீல dV
_) த (க்ஷன dV _) த (க்ஷன dV
_) த (க்ஷிண dV _) த (க்ஷிண dV
_) த (க்ஷிணா dV _) த (க்ஷிணா dV
_) தத்த (ியா dVdd _) தத்த (ியா dVdd
_) த (னகோடி dV _) த (னகோடி dV
_) த (னசேகரன dV _) த (னசேகரன dV
_) த (னத்த dV
_) த (னன்ஜெயன dV _) த (னன்ஜெயன dV
_) த (னபால dV _) த (னபால dV
_) த (னராச dV _) த (னராச dV
_) த (னலக்ஷ்மி dV _) த (னலக்ஷ்மி dV
_) த (னலட்சுமி dV _) த (னலட்சுமி dV
_) த (னவந்த dV _) த (னவந்த dV
_) த (னாதிகார dV
_) த (னுச dV _) த (னுச dV
_) த (னுர dV
_) த (னுஷ dV _) த (னுஷ dV
_) த (ன்மந்திரி dV _) த (ன்மந்திரி dV
_) த (ன்ய dV _) த (ன்ய dV
_முல்) த (ான t _முல்) த (ான t
_சாந்) த (ானு tV# _சாந்) த (ானு tV#
_சி) த (ார t _சி) த (ார t
_நயன்) த (ாரா t
_சரி) த (ாவ t _சரி) த (ாவ t
_ஹரி) த (ாஸ்_ d _ஹரி) த (ாஸ்_ d
_சும) த (ி t _சும) த (ி t
_) ப (ட்டக்ஸ bV _) ப (ட்டக்ஸ bV
_) ப (ட்டன bV _) ப (ட்டன bV
_) ப (ட்டன_ pV _) ப (ட்டன_ pV
_) ப (ட்டனப்பாக்க pV
_) ப (ட்டாசாரி bV _) ப (ட்டாசாரி bV
_) ப (தில bV _) ப (தில bV
_) பத்த (ிரகாளி bVdd _) பத்த (ிரகாளி bVdd
_) பத்த (ிரபாகு bVdd
_) பத்திரப் (_ bVttirVp _) பத்திரப் (_ bVttirVp
_) பத்திரப் (_பதி pVttirVp _) பத்திரப் (_பதி pVttirVp
_) ப (த்திரப்பட bV _) ப (த்திரப்பட bV
_) பத்த (ிரி_ bVdd _) பத்த (ிரி_ bVdd
_) பத்த (ிரிக்கு bVdd _) பத்த (ிரிக்கு bVdd
_) பத்த (ிரிய bVdd _) பத்த (ிரிய bVdd
_) ப (த்ரபாகு bV
_) ப (த்ரி bV _) ப (த்ரி bV
_) பத் (ரிக்க pVt _) பத் (ரிக்க pVt
_சொந்த_) ப (ந்த bV _சொந்த_) ப (ந்த bV
_) ப (னாரச bV _) ப (னாரச bV
_) ப (னாரஸ bV _) ப (னாரஸ bV
_) ப (னியன bV _) ப (னியன bV
_) ப (னியாக்கள bV
_) ப (னியாவ bV
_) ப (ன்சல bV _) ப (ன்சல bV
_) ப (ன்னாரி bV _) ப (ன்னாரி bV
_டீயும்_) ப (ன்னும்_ bV _டீயும்_) ப (ன்னும்_ bV
_) ப (லத்தின bV _) ப (லத்தின bV
_) ப (லத்தினா bV _) ப (லத்தினா bV
_) ப (லத்தினுட bV _) ப (லத்தினுட bV
_) ப (லத்திற்க bV
_) ப (லத்தில bV _) ப (லத்தில bV
_) ப (லத்துக் bV _) ப (லத்துக் bV
_) ப (லத்துச் bV _) ப (லத்துச் bV
_) ப (லப்பத்த bV _) ப (லப்பத்த bV
_) ப (லப்பம bV _) ப (லப்பம bV
_) ப (லப்பரீட்சை bV _) ப (லப்பரீட்சை bV
_) பலப்பி (ரயோ bVlVpp
_) ப (லமணைத்த bV _) ப (லமணைத்த bV
_) ப (லமற்ற bV _) ப (லமற்ற bV
_) ப (லமாகC் bV _) ப (லமாகC் bV
_) ப (ாசு b _) ப (ாசு b
_) பாசுப (த pa:sUpV _) பாசுப (த pa:sUpV
_) ப (ாசுர p _) ப (ாசுர p
_) பாட (னி ba:t.V
_டெட்_) ப (ாடி b _டெட்_) ப (ாடி b
_) ப (ாடி_பில்டர b _) ப (ாடி_பில்டர b
_) ப (ாடி_பில்டிங் b _) ப (ாடி_பில்டிங் b
_) ப (ாட்டிலுடன b _) ப (ாட்டிலுடன b
_) ப (ாட்டிலை b _) ப (ாட்டிலை b
_) ப (ாட்டில்கள b _) ப (ாட்டில்கள b
_) பாட்மிண்ட (ன ba:d.min.t.V
_) ப (ாணங் b _) ப (ாணங் b
_) ப (ாணமு b _) ப (ாணமு b
_) ப (ாணர b _) ப (ாணர b
_) ப (ாதிப்படையுமெ b _) ப (ாதிப்படையுமெ b
_) ப (ாதிப்படைவ b _) ப (ாதிப்படைவ b
_) ப (ாதிப்பதா b _) ப (ாதிப்பதா b
_) ப (ாதிப்பதுண்ட b
_) ப (ாதிப்பதும b
_) ப (ாதிப்பதை b _) ப (ாதிப்பதை b
_) ப (ாதிப்பவை b _) ப (ாதிப்பவை b
_) ப (ாதிப்பாகி b _) ப (ாதிப்பாகி b
_) ப (ாதிப்புண்ட b _) ப (ாதிப்புண்ட b
_) ப (ாதிப்பும b _) ப (ாதிப்பும b
_) ப (ாதிப்புள்ள b _) ப (ாதிப்புள்ள b
_) ப (ாதிப்பென b
_) ப (ாதிப்பேர p _) ப (ாதிப்பேர p
_) ப (ாதிப்பை b _) ப (ாதிப்பை b
_) ப (ாதிப்போ b
_) பாத (ிமா fa:t _) பாத (ிமா fa:t
_) ப (ாதுஷா b _) ப (ாதுஷா b
_) ப (ாத்திமா f _) ப (ாத்திமா f
_) பாத்த (ியதை ba:dd _) பாத்த (ியதை ba:dd
_) பாத்த (ியப் ba:dd
_) பாத்த (ியம்_ ba:dd _) பாத்த (ியம்_ ba:dd
_) ப (ாத்யதை b _) ப (ாத்யதை b
_) ப (ாத்ரூம b _) ப (ாத்ரூம b
_டைம்_) ப (ாம b _டைம்_) ப (ாம b
_) ப (ாமாவ b _) ப (ாமாவ b
_) ப (ாமினி b _) ப (ாமினி b
_) ப (ாமிரு b
_) ப (ாமிலி f _) ப (ாமிலி f
_) ப (ாமில்ல b
_) ப (ாமை b
_) ப (ாம்கள b
_) ப (ாம்பே b _) ப (ாம்பே b
_ஆடு_) ப (ாம்பே p _ஆடு_) ப (ாம்பே p
_விளையாடு_) ப (ாம்பே p _விளையாடு_) ப (ாம்பே p
_) ப (ாலாம்பாள b _) ப (ாலாம்பாள b
_) ப (ாலாம்பிக b _) ப (ாலாம்பிக b
_) ப (ாலாவ b _) ப (ாலாவ b
_) ப (ாலாவி_ p
_) ப (ாலாவிய p
_) ப (ாலித்_தீவ b
_) ப (ாலின் p _) ப (ாலின் p
_) ப (ாலியத்த b _) ப (ாலியத்த b
_) ப (ாலிவுட் b _) ப (ாலிவுட் b
முகத்திலிருந்து_) ப (ாவ b முகத்திலிருந்து_) ப (ாவ b
_) ப (ாவனா b _) ப (ாவனா b
_) ப (ாவனை b _) ப (ாவனை b
_) ப (ாவமும்_நானே b
_) ப (ாவிக்கப்பட b _) ப (ாவிக்கப்பட b
_) ப (ாவிக்கல b _) ப (ாவிக்கல b
_) ப (ாவிக்கவில்ல b _) ப (ாவிக்கவில்ல b
_) பி (ரதேஷ p _) பி (ரதேஷ p
_) பி (ரதோஷ p _) பி (ரதோஷ p
_) பி (ரத்தியேக p _) பி (ரத்தியேக p
_) பிரத் (யக்ஷ prVt
_) பிரத் (யட்ச prVt
_) பிரத் (யேக prVt _) பிரத் (யேக prVt
_) பி (ரனாப p _) பி (ரனாப p
_) பி (ரப p _) பி (ரப p
_) பிராஞ்ச bra:n^tS _) பிராஞ்ச bra:n^tS
_) பி (ராடாக f _) பி (ராடாக f
_) பி (ராட்_ f _) பி (ராட்_ f
_) பி (ராட்டஸ்ட p
_) பி (ராட்டிஸ்லாவ b _) பி (ராட்டிஸ்லாவ b
_) பி (ராட்வே b _) பி (ராட்வே b
_) பி (ராண_ p _) பி (ராண_ p
_) பிரித (ிவ prit _) பிரித (ிவ prit
_) ப (ிரித்தானி b _) ப (ிரித்தானி b
_) பி (ரித்தானி b _) பி (ரித்தானி b
_) பி (ரின்L04ிபல p
_) பிரின்சிப (ால prinsip _) பிரின்சிப (ால prinsip
_) பி (ரிமிய p _) பி (ரிமிய p
_) பி (ரியங்கள p _) பி (ரியங்கள p
_) பி (ரே p _) பி (ரே p
_) பி (ரேக்க b _) பி (ரேக்க b
_) பிரேச (ில bre:z _) பிரேச (ில bre:z
_) பி (ரேயில b
_) பி (ரைல b _) பி (ரைல b
_) பிரைவேட praIve:t.V# _) பிரைவேட praIve:t.V#
_) பி (ரோகிதர p _) பி (ரோகிதர p
_) ப (ில்லி b _) ப (ில்லி b
_) ப (ில்லு b _) ப (ில்லு b
_) ப (ில்லை b _) ப (ில்லை b
_) பி (ளவர f
_) பி (ளவுஸ b _) பி (ளவுஸ b
_) பி (ளஸ p _) பி (ளஸ p
_) பி (ளஸ்_ p _) பி (ளஸ்_ p
_) பிளாக் bla:k _) பிளாக் bla:k
_) பி (ளாட்பார p _) பி (ளாட்பார p
_) பிளாப் fl.a:p _) பிளாப் fl.a:p
_) பி (ளாஸ்க் f // flask
_) பி (ளாஷ f
_) பி (ளாஸ்க f // flask
_) பி (ளீஸ p _) பி (ளீஸ p
_) பிள (ைட் fl. _) பிள (ைட் fl.
_) பி (ளௌஸ b _) பி (ளௌஸ b
_) புத்த (ம்_புதிய puttV _) புத்த (ம்_புதிய puttV
_) புத்த (ம்_புது puttV _) புத்த (ம்_புது puttV
_) புத்த (ரிசி puttV _) புத்த (ரிசி puttV
_) புத்த (ள puttV
_) புத்த (ழக puttV _) புத்த (ழக puttV
_) ப (ுத்திக் b _) ப (ுத்திக் b
_) ப (ுத்திசாலி b _) ப (ுத்திசாலி b
_) பு (ருனாய b _) பு (ருனாய b
_) புரூப pru:fV# _) புரூப pru:fV#
_) புரொப (சர profV _) புரொப (சர profV
_) புரொப (ஸர profV
_) புரொபொ (சர profV _) புரொபொ (சர profV
_) பு (ரோகித p _) பு (ரோகித p
_) ப (ுரோக்கர b _) ப (ுரோக்கர b
_) பு (ரௌச b _) பு (ரௌச b
_) ப (ுல்_L15 f _) ப (ுல்_L15 f
_) புல்க (ா fulk _) புல்க (ா fulk
_) புல்க (ான pulg
_) ப (ுல்டோசர b _) ப (ுல்டோசர b
_) ப (ுல்லட் b _) ப (ுல்லட் b
_) ப (ுல்லா_ f _) ப (ுல்லா_ f
_) ப (ேகத் b _) ப (ேகத் b
_) ப (ேகம b _) ப (ேகம b
_) ப (ேக்கரி b _) ப (ேக்கரி b
_) ப (ேக்கிங்_சோடா b
_) ப (ேக்டர f _) ப (ேக்டர f
_) ப (ேங்க் b _) ப (ேங்க் b
_) ப (ேச்சலர b _) ப (ேச்சலர b
_) ப (ொம்மனாட்டி p _) ப (ொம்மனாட்டி p
_) ப (ொம்மல b _) ப (ொம்மல b
_) ப (ொம்மை b _) ப (ொம்மை b
_) ப (ொலிவிய b
_) ப (ோஃபர்ஸ b _) ப (ோஃபர்ஸ b
_) ப (ோஃபோர் b _) ப (ோஃபோர் b
_) ப (ோக_L13 b _) ப (ோக_L13 b
_) ப்ரோட (ான pro:t _) ப்ரோட (ான pro:t
_) ப் (ரௌச b _) ப் (ரௌச b
_) ப் (ரௌன b _) ப் (ரௌன b
_) ப் (ளவர f
_) ப் (ளவுஸ b _) ப் (ளவுஸ b
_) ப்ளாப் fl.a:p _) ப்ளாப் fl.a:p
_) ப் (ளாஷ f
_) ப் (ளாஸ்க f
_) ப் (ளூஸ b _) ப் (ளூஸ b
_) ப் (ளோரிடா f _) ப் (ளோரிடா f
_) ப் (ளௌஸ b _) ப் (ளௌஸ b
நடை) ப pV# நடை) ப pV#
_கேம்) ப pV# _கேம்) ப pV#
_பிரதீ) ப pV# _பிரதீ) ப pV#
அஷ்ர) ப fV#
ஒலிம்) ப pV# ஒலிம்) ப pV#
சங்கல்) ப pV# சங்கல்) ப pV#
_சொல்) ப pV# _சொல்) ப pV#
_நிலை) ப pV# _நிலை) ப pV#
_பயன்) ப pV# _பயன்) ப pV#
_விகல்) ப pV# _விகல்) ப pV#
_ஸ்டம்) ப pV#
அடால்) ப fV# அடால்) ப fV#
அஷ்ரா) ப fV# அஷ்ரா) ப fV#
_ஒL10ி) ப pV# _ஒL10ி) ப pV#
_செயல்) ப pV# _செயல்) ப pV#
_முஷார) ப fV#
_ருடால்) ப fV# _ருடால்) ப fV#
_ஸ்டாம்) ப pV#
_ஷரீ) ப (+ fV# _ஷரீ) ப (+ fV#
_ஷெரீ) ப (+ fV# _ஷெரீ) ப (+ fV#
_ஸ்தா) ப (+ bV# _ஸ்தா) ப (+ bV#
தென்) ப (குதி pV தென்) ப (குதி pV
அக்கம்) ப (க்க bV அக்கம்) ப (க்க bV
ப (க்கK pV ப (க்கK pV
_தா) ப (க்கணல bV
பரம) ப (க்த bV பரம) ப (க்த bV
ராம) ப (க்த bV ராம) ப (க்த bV
_தா) ப (ங்கள bV _தா) ப (ங்கள bV
_பக்கப்) ப (ல bV _பக்கப்) ப (ல bV
ஆன்ம) ப (ல bV ஆன்ம) ப (ல bV
படைப்) ப (ல bV படைப்) ப (ல bV
_பிரின்L04ி) ப (ல p
_முனிசி) ப (ல pV _முனிசி) ப (ல pV
ஆயுதப்) ப (ல bV ஆயுதப்) ப (ல bV
_சம) ப (லங்கள bV _சம) ப (லங்கள bV
த) ப (ஸ bV த) ப (ஸ bV
_வா) ப (ஸ pV _வா) ப (ஸ pV
ஆக்டோ) ப (ஸ pV ஆக்டோ) ப (ஸ pV
_ப்ரொ) ப (ஸர fV
_தீ) ப (ா p _தீ) ப (ா p
_கலி) ப (ா f _கலி) ப (ா f
_கலீ) ப (ா f _கலீ) ப (ா f
_) பாபவிமோசன pa:bVvimo:tSV _) பாபவிமோசன pa:bVvimo:tSV
_சாயி) பாப (ா ba:b _சாயி) பாப (ா ba:b
_சாய்) பாப (ா ba:b _சாய்) பாப (ா ba:b
அலி) பாப (ா ba:b
அலை) ப (ாய p அலை) ப (ாய p
அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V# அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V#
அல்) ப (ாயு p அல்) ப (ாயு p
எதிர்) ப (ார p எதிர்) ப (ார p
_பிளாட்) ப (ார f _பிளாட்) ப (ார f
_யுக) ப (ாரதி b _யுக) ப (ாரதி b
_டி) பார்ட்மெண்ட pa:rt.men.t.V#
இன்) ப (ார்ம f இன்) ப (ார்ம f
_யூனி) ப (ார்ம f _யூனி) ப (ார்ம f
அ) பார்மெண்ட pa:rment.V# அ) பார்மெண்ட pa:rment.V#
_மா) ப (ியா f _மா) ப (ியா f
_கன்) பி (யுச f _கன்) பி (யுச f
_பெர்) பி (யூம f _பெர்) பி (யூம f
_கடற்) பி (ர p
_வரப்) பி (ரL04ாத p _வரப்) பி (ரL04ாத p
_ஞான) பிரக (ா prVk _ஞான) பிரக (ா prVk
_ஞானப்) பிரக (ா prVk _ஞானப்) பிரக (ா prVk
_சொற்) பி (ரயோக p _சொற்) பி (ரயோக p
L03ந்தப்) பி (ரளய p L03ந்தப்) பி (ரளய p
_சொற்) பி (ரவாக p _சொற்) பி (ரவாக p
உட்) பி (ரவேச p
எக்ஸ்) பிர (ஸ pre எக்ஸ்) பிர (ஸ pre
ஆ) பி (ரஹாம b ஆ) பி (ரஹாம b
பயப்) பி (ராந்தி b பயப்) பி (ராந்தி b
ஆண்) ப (ிள்ளை p ஆண்) ப (ிள்ளை p
பெண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p
அச்சா) ப (ீ f அச்சா) ப (ீ f
_தபாலா) ப (ீ f
_ர) பீக் fi:k _ர) பீக் fi:k
உப) ப (ீட p உப) ப (ீட p
விக்கி) ப (ீடியா p விக்கி) ப (ீடியா p
_மர) ப (ுரிமை b _மர) ப (ுரிமை b
இன்) ப (ுற b இன்) ப (ுற b
_துன்) ப (ுற b _துன்) ப (ுற b
_நம்) ப (ுற b
ப (ுறK p ப (ுறK p
_பா) ப (ுலர p _பா) ப (ுலர p
_) பு (ளோரன்ஸ f _) பு (ளோரன்ஸ f
_வட) ப (ெண்ணை p _வட) ப (ெண்ணை p
_தென்) ப (ெண்ணை p _தென்) ப (ெண்ணை p
_கம்) ப (ெனி p _கம்) ப (ெனி p
_மறு) ப (ெயர p
இடம்) ப (ெயர p இடம்) ப (ெயர p
_புலம்) ப (ெயர p _புலம்) ப (ெயர p
மொழி) ப (ெயர் p மொழி) ப (ெயர் p
_ச) ப்த (மிய ptV _ச) ப்த (மிய ptV
_ச) ப் (தரிஷி p _ச) ப் (தரிஷி p
_ச) ப் (தஸ்வர p _ச) ப் (தஸ்வர p
_லு) ப் (தான f
_ஹி) ப்னாட (ிச pna:t. _ஹி) ப்னாட (ிச pna:t.
கர்) ப்ப bbV# கர்) ப்ப bbV#
_நவா) ப்ப bbV# _நவா) ப்ப bbV#
_நகர்) ப்ப ppV#
_ராமசு) ப்ப bbV# _ராமசு) ப்ப bbV#
L03) ப்ப (ங்களா bbV L03) ப்ப (ங்களா bbV
L03) ப்ப (தில bbV L03) ப்ப (தில bbV
_வெளி) ப்பி (ரகார pp _வெளி) ப்பி (ரகார pp
அதிக) ப்பி (ரசங்க pp அதிக) ப்பி (ரசங்க pp
L03) ப்பிரச (ார pprVtS L03) ப்பிரச (ார pprVtS
_மலை) ப்பி (ரதேச pp
_வன) ப்பி (ரதேச pp _வன) ப்பி (ரதேச pp
_காட்டு) ப்பி (ரதேச pp _காட்டு) ப்பி (ரதேச pp
_நில) ப்பி (ரபு pp _நில) ப்பி (ரபு pp
_யூ) ப்ரட (ீஸ frVt. _யூ) ப்ரட (ீஸ frVt.
_சு) ப் (ரியா p _சு) ப் (ரியா p
_ஸ்ரீ) ப் (ரியா p _ஸ்ரீ) ப் (ரியா p
அ) ப் (ரீதி f
_சு) ப் (ரீம p _சு) ப் (ரீம p
_) ப் (ரீயா f _) ப் (ரீயா f
_கம்) ப் (ரெஸ p _கம்) ப் (ரெஸ p
இம்) ப் (ரெஸ p இம்) ப் (ரெஸ p
_) ப் (லெட்சர f _) ப் (லெட்சர f
_மா) ப் (ள p _மா) ப் (ள p
_ம) ப் (ளர f
ஏரோ) ப் (ளேன p ஏரோ) ப் (ளேன p
_) ப் (ளோரன்ஸ f _) ப் (ளோரன்ஸ f
ப் (ஸ p ப் (ஸ p
வ (B v வ (B v
_) வி (யா v _) வி (யா v
வி (யூக v வி (யூக v
இண்டர்) வி (யூ v




.group ஶ .group ஶ
இ (ரவைகள இ (ரவைகள
இ (ரவையை இ (ரவையை
இ (ராக இ (ராக
இ (ராக்_ i
இ (ராக்_கால
இ (ராக்கிட i
இ (ராக்கின i
இ (ராக்கில i
இ (ராக்கு i
இ (ராக்கை i
இ (ராச இ (ராச
இ (ராஜ இ (ராஜ
இராஞ்ச ra:n^tSV# இராஞ்ச ra:n^tSV#
இ (லவங்க இ (லவங்க
இ (லவங்காய i இ (லவங்காய i
இ (லாகவ இ (லாகவ
இலாக (ூர la:H
இ (லாப இ (லாப
இ (லாவண்ய இ (லாவண்ய
இலேக்க (ிய le:gg இலேக்க (ிய le:gg

+ 52
- 5
phsource/compile_report View File



89 phoneme tables
91 phoneme tables
new total new total
base 109 109 base 109 109
consonants 11 119 consonants 11 119
vi-sgn 18 151 vi-sgn 18 151
zhy 41 138 zhy 41 138
zh 64 155 zh 64 155
sw 9 110
sw 19 109
tr 20 129 tr 20 129
ku 18 129 ku 18 129
id 16 128 id 16 128
dv 14 149 dv 14 149
te 18 149 te 18 149
si 24 155 si 24 155
gu 1 149
as 12 152
tn 27 121 tn 27 121
mt 32 129 mt 32 129
bo 10 153 bo 10 153
dzh/dzh2 [dZ] hr dzh/dzh2 [dZ] hr
[dZ;] hr [dZ;] hr
dzh/dz_pzd [J] base dzh/dz_pzd [J] base
[J] sw
[J] tr [J] tr
[J] ku [J] ku
dzh/dz_pzd_ [J] base dzh/dz_pzd_ [J] base
[g] ru [g] ru
[g;] bg [g;] bg
[g] es [g] es
[g] sw
g/g_ [g] base g/g_ [g] base
[g-] en [g-] en
[g] cy [g] cy
[g] ru [g] ru
[g;] bg [g;] bg
[g] es [g] es
[g] sw
g/xgr [g] fr g/xgr [g] fr
h/h_ [h] base h/h_ [h] base
[h] fi [h] fi
[b] fr [b] fr
klatt/bh [B] base klatt/bh [B] base
klatt/dz_pzd [J] base klatt/dz_pzd [J] base
[J] sw
[J] tr [J] tr
klatt/dz_pzd_ [J] base klatt/dz_pzd_ [J] base
klatt/m [m] base klatt/m [m] base
[n] fr [n] fr
klatt/n^ [n^] base klatt/n^ [n^] base
[n#] ru [n#] ru
[n^] sw
klatt/n^@ [n^] base klatt/n^@ [n^] base
[n#] ru [n#] ru
[n^] sw
klatt/nn [N] base klatt/nn [N] base
[N] sw
klatt/nn_ [N] base klatt/nn_ [N] base
klatt/nr [n.] base klatt/nr [n.] base
klatt/n-syl [n-] base klatt/n-syl [n-] base
n^/n^_ [n^] base n^/n^_ [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n^/n^@ [n^] base n^/n^@ [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n^/n^#_ [n^#] is n^/n^#_ [n^#] is
n/_n [n] base n/_n [n] base
[n] fr [n] fr
n^/n^a [n^] base n^/n^a [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n/na [n] base n/na [n] base
[n] fr [n] fr
[n#] is [n#] is
n^/n^e [n^] base n^/n^e [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n/ne [n] base n/ne [n] base
[n] fr [n] fr
[n#] is [n#] is
n^/n^i [n^] base n^/n^i [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n/ni [n] base n/ni [n] base
[n] fr [n] fr
[n#] is [n#] is
nn/_nn [N] base nn/_nn [N] base
[N] zh [N] zh
nn/nn_ [N] base nn/nn_ [N] base
[N] sw
nn/nn@ [N] base nn/nn@ [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
nn/nn#_ [N#] is nn/nn#_ [N#] is
nn/nn2_ [N] zh nn/nn2_ [N] zh
[N-] zh [N-] zh
nn/nna [N] base nn/nna [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
nn/nne [N] base nn/nne [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
nn/nni [N] base nn/nni [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
nn/nnj [N] base nn/nnj [N] base
nn/nno [N] base nn/nno [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
nn/nn-syl [N-] base nn/nn-syl [N-] base
nn/nnu [N] base nn/nnu [N] base
[N#] is [N#] is
[N] zh [N] zh
[N] sw
n^/n^o [n^] base n^/n^o [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n/no [n] base n/no [n] base
[n] fr [n] fr
[n#] is [n#] is
n^/n^u [n^] base n^/n^u [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n^] sw
n/nu [n] base n/nu [n] base
[n] fr [n] fr
[n#] is [n#] is
[z] fr [z] fr
[s] es [s] es
[z;] ro [z;] ro
[s] sw
[z] sq [z] sq
ufric/s! [s] base ufric/s! [s] base
[s] fr [s] fr
[S] fr [S] fr
ufric/sh3 [S] hr ufric/sh3 [S] hr
[Z] hr [Z] hr
[S] sw
ufric/sh_pzd [S;] base ufric/sh_pzd [S;] base
[Z;] base [Z;] base
[S;] ro [S;] ro
ufric/s_pzd [s;] base ufric/s_pzd [s;] base
[z;] base [z;] base
[s;] ro [s;] ro
[z] sw
ufric/s_pzd_ [s;] base ufric/s_pzd_ [s;] base
[z;] base [z;] base
ufric/sx_sv [sx] sv ufric/sx_sv [sx] sv
ufric/th [T] base ufric/th [T] base
ufric/th_ [T] base ufric/th_ [T] base
[T] sw
ufric/tl# [tl#] is ufric/tl# [tl#] is
[tl#] kl [tl#] kl
ufric/tlh [K] nso ufric/tlh [K] nso
[k] fr [k] fr
[k] lv [k] lv
[k] el [k] el
[k] sw
[k] sq [k] sq
[k] sl [k] sl
ustop/k_asp [k#] consonants ustop/k_asp [k#] consonants
ustop/p [p] base ustop/p [p] base
[p2] fr [p2] fr
[p] zhy [p] zhy
[p] sw
[p] da [p] da
ustop/p_ [p] base ustop/p_ [p] base
[ph] consonants [ph] consonants
[t] sl [t] sl
ustop/t_dnt2 [t] base2 ustop/t_dnt2 [t] base2
[d] kn [d] kn
ustop/t_hard [t] sw
ustop/t_hi [t[] base ustop/t_hi [t[] base
[t] et [t] et
[t^] et [t^] et
[z;] base [z;] base
voc/z_pzd_ [Z;] base voc/z_pzd_ [Z;] base
[z;] base [z;] base
[z] sw
vowel/@ [@] base vowel/@ [@] base
[@] en [@] en
[@] en-rp [@] en-rp
[O] grc [O] grc
vowel/0_2 [0] en-n vowel/0_2 [0] en-n
[O] pt-pt [O] pt-pt
[o] sw
[O] sl [O] sl
[o] nso [o] nso
[o] tn [o] tn
[@/] sq [@/] sq
[V] tt [V] tt
vowel/&_2 [&] bn vowel/&_2 [&] bn
[&] as
vowel/@_3 [@#] en vowel/@_3 [@#] en
[@] en-sc [@] en-sc
[I] en-sc [I] en-sc
[&] hr [&] hr
[a] sv [a] sv
[a] is [a] is
[a/] sw
[a] tr [a] tr
[a] ka [a] ka
[a] nso [a] nso
[a] sq [a] sq
[a] ka [a] ka
[a:] si [a:] si
[a] as
vowel/a#_3 [a#] en vowel/a#_3 [a#] en
[a#] en-n [a#] en-n
[a#] en-us [a#] en-us
[e] dv [e] dv
[e:] dv [e:] dv
[e:] te [e:] te
[e] as
[E] kl [E] kl
vowel/e# [I] en-sc vowel/e# [I] en-sc
[e] et [e] et
[i] dv [i] dv
[i] te [i] te
[i] si [i] si
[i] as
vowel/i#_6 [i.] zh vowel/i#_6 [i.] zh
vowel/i_7 [i:] et vowel/i_7 [i:] et
[i] pl [i] pl
[o:] wo [o:] wo
[o] te [o] te
[o:] te [o:] te
[o] as
[o] bo [o] bo
[o] kl [o] kl
vowel/o_2 [o:] cy vowel/o_2 [o:] cy
vowel/o_3 [oU] en-sc vowel/o_3 [oU] en-sc
[o] kk [o] kk
vowel/o-_3 [U] en-rp vowel/o-_3 [U] en-rp
vowel/o_4 [o] sw
vowel/o-_4 [o] ro vowel/o-_4 [o] ro
[o] am [o] am
vowel/o_5 [o] vi-sgn vowel/o_5 [o] vi-sgn
[O] pl [O] pl
[O] is [O] is
[O] sq [O] sq
[O] as
vowel/oo_en [O] en vowel/oo_en [O] en
[O:] en [O:] en
[O@] en [O@] en
[u] prs [u] prs
[u] ak [u] ak
[u:] wo [u:] wo
[u] as
[u] bo [u] bo
[u] tt [u] tt
vowel/u# [u:] en-sc vowel/u# [u:] en-sc
[y] ml [y] ml
[y] vi-sgn [y] vi-sgn
vowel/u_5 [U1] et vowel/u_5 [U1] et
[u] sw
[u] nso [u] nso
[u] tn [u] tn
vowel/u#_5 [y] vi vowel/u#_5 [y] vi
[u:] fr [u:] fr
[u:] la [u:] la
[u] es [u] es
[u] sw
[u] fa [u] fa
[u] ht [u] ht
[u] kl [u] kl
w/w@ [w] base w/w@ [w] base
[w] fr [w] fr
[w/] fr [w/] fr
[w] sw
w/w2 [w2] base2 w/w2 [w2] base2
[w] pl [w] pl
[w] sw
[w] sq [w] sq
w/wa [w] base w/wa [w] base
[w] sw
w/we [w] base w/we [w] base
[w] fr [w] fr
[w/] fr [w/] fr
[w] sw
w/wi [w] base w/wi [w] base
[w] fr [w] fr
[w/] fr [w/] fr
[i] vi [i] vi
[w] sw
w/wi2 [i:] en w/wi2 [i:] en
[i:] en-n [i:] en-n
[i:] en-sc [i:] en-sc
w/wo [w] base w/wo [w] base
[w] fr [w] fr
[w/] fr [w/] fr
[w] sw
w/wu [w] base w/wu [w] base
[w] fr [w] fr
[w/] fr [w/] fr
[w] sw
w/xw [w] base w/xw [w] base
[w/] fr [w/] fr
[w] sw
x/b [b] base x/b [b] base
[b] fr [b] fr
[b;] ro [b;] ro
[dZ;] lt [dZ;] lt
[dZ;] mk [dZ;] mk
[dZ;] ru [dZ;] ru
[J] sw
x/dz_pzd [dZ;] base x/dz_pzd [dZ;] base
[dZ;] mk [dZ;] mk
[dZ;] ko [dZ;] ko
[g;] bg [g;] bg
[g] es [g] es
[g] is [g] is
[g] sw
x/g2_ [g-] en x/g2_ [g-] en
x/g3 [g] ru x/g3 [g] ru

BIN
phsource/m/mu View File


+ 1
- 1
phsource/ph_irish View File

// Irish Phonemes // Irish Phonemes
//Please contact [email protected] //Please contact [email protected]
// Version 2.7 2013
// Version 2.8 2013


// short vowels // short vowels



+ 203
- 15
phsource/ph_swahili View File



phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 165
length 200
FMT(vowel/i) FMT(vowel/i)
endphoneme endphoneme




phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 180
length 210
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


phoneme a/
vowel starttype #@ endtype #@
length 180
FMT(vowel/a#_2)
endphoneme


phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 180
ChangeIfUnstressed(a/)
length 210
FMT(vowel/a_5) FMT(vowel/a_5)
endphoneme endphoneme




phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 180
FMT(vowel/0_2)
length 210
FMT(vowel/o_4)
endphoneme endphoneme


phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 170
FMT(vowel/u_5)
length 200
FMT(vowel/u_bck2)
endphoneme endphoneme




import_phoneme base2/d import_phoneme base2/d
endphoneme endphoneme


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

IF KlattSynth THEN
Vowelin f1=0 f2=1390 -300 300 f3=0 0
Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
ENDIF

FMT(voc/z_pzd_) addWav(ufric/s_pzd, 75)
endphoneme

phoneme t
vls alv stop
voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20

WAV(ustop/t_hard, 70)
endphoneme

phoneme T
vls dnt frc
voicingswitch D
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20


WAV(ufric/th_,50)
endphoneme

phoneme S
vls pla frc sibilant
voicingswitch Z
lengthmod 3
Vowelin f1=0 f2=2100 100 300 f3=-100 80
Vowelout f1=0 f2=2100 100 300 f3=-100 80

WAV(ufric/sh3)
endphoneme


phoneme s
vls alv frc sibilant
voicingswitch z
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20


WAV(ufric/s_,60)
endphoneme

phoneme p
vls blb stop
voicingswitch b
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22


WAV(ustop/p)
endphoneme





phoneme n^
vcd pal nasal palatal
ipa ɲ
Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
lengthmod 4

IF KlattSynth THEN
VowelStart(klatt/n^@)
FMT(klatt/n^)
ENDIF

NextVowelStarts
VowelStart(n^/n^@)
VowelStart(n^/n^a)
VowelStart(n^/n^e)
VowelStart(n^/n^i)
VowelStart(n^/n^o)
VowelStart(n^/n^u)
EndSwitch


FMT(n^/n^_)
endphoneme

phoneme N
vcd vel nasal
Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
lengthmod 8 // longer than 'n'

IF KlattSynth THEN
Vowelin f1=0 f2=2100 50 300 f3=0 80
FMT(klatt/nn)
ENDIF

NextVowelStarts
VowelStart(nn/nn@)
VowelStart(nn/nna)
VowelStart(nn/nne)
VowelStart(nn/nni)
VowelStart(nn/nno)
VowelStart(nn/nnu)
EndSwitch

FMT(nn/nn_,50)

endphoneme



phoneme w
liquid
lengthmod 7

NextVowelStarts
VowelStart(w/w@)
VowelStart(w/wa)
VowelStart(w/we)
VowelStart(w/wi)
VowelStart(w/wo)
VowelStart(w/wu)
EndSwitch

VowelEnding(w/xw, -30)

FMT(w/w2)
endphoneme


phoneme k
vls vel stop
voicingswitch g
lengthmod 2
Vowelin f1=0 f2=2300 200 300 f3=-200 80
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20

IF KlattSynth THEN
Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
ENDIF

WAV(ustop/k_,50)
endphoneme


phoneme J
vcd pal afr sibilant palatal
voicingswitch c
lengthmod 5
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1



IF KlattSynth THEN
FMT(klatt/dz_pzd) addWav(x/dzh_, 45)
ENDIF

IF nextPh(isNotVowel) THEN
FMT(dzh/dz_pzd) addWav(x/dzh_, 45)
ELSE
FMT(dzh/dz_pzd) addWav(x/dzh_, 45)
ENDIF
endphoneme

phoneme g
vcd vel stop
voicingswitch k
lengthmod 5
Vowelin f1=2 f2=2300 200 300 f3=-300 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk

IF PreVoicing THEN
FMT(g/xg)
ENDIF


FMT(g/g) addWav(x/g2, 50)
endphoneme

+ 9
- 0
phsource/phonemes View File

phonemetable si hi phonemetable si hi
include ph_sinhala include ph_sinhala


phonemetable gu hi
include ph_gujarati

phonemetable as bn
include ph_assamese




phonemetable tn base phonemetable tn base
include ph_setswana include ph_setswana



+ 11
- 0
src/compiledata.cpp View File

} }
spectseq->Load(stream); spectseq->Load(stream);


if(spectseq->frames == NULL)
{
error("Bad vowel file, no frames: '%s'",path);
return(0);
}

// do we need additional klatt data ? // do we need additional klatt data ?
for(frame=0; frame < spectseq->numframes; frame++) for(frame=0; frame < spectseq->numframes; frame++)
{ {
"# ------- ---------\n"); "# ------- ---------\n");




fprintf(f_errors, "Source data path = '%s'\n", path_source);
strncpy0(fname,path_phfile.mb_str(wxConvLocal),sizeof(fname));
fprintf(f_errors, "Master phonemes file = '%s'\n", fname);
fprintf(f_errors, "Output to '%s/'\n\n", path_home);

sprintf(fname,"%s/%s",path_home,"phondata"); sprintf(fname,"%s/%s",path_home,"phondata");
f_phdata = fopen_log(f_errors,fname,"wb"); f_phdata = fopen_log(f_errors,fname,"wb");



+ 8
- 7
src/compiledict.cpp View File

} }




static void copy_rule_string(char *string, int &state)
{//===================================================
static void copy_rule_string(char *string, int *state_out)
{//=======================================================
// state 0: conditional, 1=pre, 2=match, 3=post, 4=phonemes // state 0: conditional, 1=pre, 2=match, 3=post, 4=phonemes
static char *outbuf[5] = {rule_cond, rule_pre, rule_match, rule_post, rule_phonemes}; static char *outbuf[5] = {rule_cond, rule_pre, rule_match, rule_post, rule_phonemes};
static int next_state[5] = {2,2,4,4,4}; static int next_state[5] = {2,2,4,4,4};
int value; int value;
int literal; int literal;
int hexdigit_input = 0; int hexdigit_input = 0;
int state = *state_out;
MNEM_TAB *mr; MNEM_TAB *mr;


if(string[0] == 0) return; if(string[0] == 0) return;
if(c == 0) break; if(c == 0) break;
} }


state = next_state[state];
*state_out = next_state[state];
} // end of copy_rule_string } // end of copy_rule_string




case ')': // end of prefix section case ')': // end of prefix section
*p = 0; *p = 0;
state = 1; state = 1;
copy_rule_string(buf,state);
copy_rule_string(buf,&state);
p = buf; p = buf;
break; break;


case '(': // start of suffix section case '(': // start of suffix section
*p = 0; *p = 0;
state = 2; state = 2;
copy_rule_string(buf,state);
copy_rule_string(buf,&state);
state = 3; state = 3;
p = buf; p = buf;
if(input[ix+1] == ' ') if(input[ix+1] == ' ')
case '\r': case '\r':
case 0: // end of line case 0: // end of line
*p = 0; *p = 0;
copy_rule_string(buf,state);
copy_rule_string(buf,&state);
finish=1; finish=1;
break; break;


case '\t': // end of section section case '\t': // end of section section
case ' ': case ' ':
*p = 0; *p = 0;
copy_rule_string(buf,state);
copy_rule_string(buf,&state);
p = buf; p = buf;
break; break;



+ 25
- 14
src/dictionary.cpp View File

0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
}; };


#define N_PHON_OUT 500
#define N_PHON_OUT 500 // realloc increment
static char *phon_out_buf = NULL; static char *phon_out_buf = NULL;
static int phon_out_size = 0; static int phon_out_size = 0;








static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *vowel_stress, int &vowel_count, int &stressed_syllable, int control)
static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *vowel_stress, int *vowel_count, int *stressed_syllable, int control)
{//================================================================================================================================================= {//=================================================================================================================================================
// control = 1, set stress to 1 for forced unstressed vowels // control = 1, set stress to 1 for forced unstressed vowels
unsigned char phcode; unsigned char phcode;
{ {
/* primary stress on preceeding vowel */ /* primary stress on preceeding vowel */
j = count - 1; j = count - 1;
while((j > 0) && (stressed_syllable == 0) && (vowel_stress[j] < 4))
while((j > 0) && (*stressed_syllable == 0) && (vowel_stress[j] < 4))
{ {
if((vowel_stress[j] != 0) && (vowel_stress[j] != 1)) if((vowel_stress[j] != 0) && (vowel_stress[j] != 1))
{ {
} }
else else
{ {
if((ph->std_length < 4) || (stressed_syllable == 0))
if((ph->std_length < 4) || (*stressed_syllable == 0))
{ {
stress = ph->std_length; stress = ph->std_length;


*ph_out = 0; *ph_out = 0;


/* has the position of the primary stress been specified by $1, $2, etc? */ /* has the position of the primary stress been specified by $1, $2, etc? */
if(stressed_syllable > 0)
if(*stressed_syllable > 0)
{ {
if(stressed_syllable >= count)
stressed_syllable = count-1; // the final syllable
if(*stressed_syllable >= count)
*stressed_syllable = count-1; // the final syllable


vowel_stress[stressed_syllable] = 4;
vowel_stress[*stressed_syllable] = 4;
max_stress = 4; max_stress = 4;
primary_posn = stressed_syllable;
primary_posn = *stressed_syllable;
} }


if(max_stress == 5) if(max_stress == 5)
max_stress = 4; max_stress = 4;
} }


stressed_syllable = primary_posn;
vowel_count = count;
*stressed_syllable = primary_posn;
*vowel_count = count;
return(max_stress); return(max_stress);
} // end of GetVowelStress } // end of GetVowelStress


signed char vowel_stress[N_WORD_PHONEMES/2]; signed char vowel_stress[N_WORD_PHONEMES/2];


strcpy((char *)phonetic,word); strcpy((char *)phonetic,word);
max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 0);
max_stress = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 0);


if(new_stress >= 4) if(new_stress >= 4)
{ {
unstressed_word = 1; unstressed_word = 1;
} }


max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1);
max_stress = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 1);
if((max_stress < 0) && dictionary_flags) if((max_stress < 0) && dictionary_flags)
{ {
max_stress = 0; max_stress = 0;
vowel_stress[stressed_syllable] = 4; vowel_stress[stressed_syllable] = 4;
max_stress = 4; max_stress = 4;
break; break;

case 13: // LANG=ml, 1st unless 1st vowel is short and 2nd is long
if(stressed_syllable == 0)
{
stressed_syllable = 1;
if((vowel_length[1] == 0) && (vowel_count > 2) && (vowel_length[2] > 0))
stressed_syllable = 2;
vowel_stress[stressed_syllable] = 4;
max_stress = 4;
}
break;
} }


/* now guess the complete stress pattern */ /* now guess the complete stress pattern */
if(tr->transpose_min > 0) if(tr->transpose_min > 0)
{ {
strncpy0(word_buf,word, N_WORD_BYTES); strncpy0(word_buf,word, N_WORD_BYTES);
wlen = TransposeAlphabet(tr, word_buf);
wlen = TransposeAlphabet(tr, word_buf); // bit 6 indicates compressed characters
word = word_buf; word = word_buf;
} }
else else

+ 1
- 0
src/espeak.cpp View File

"--split=\"<minutes>\"\n" "--split=\"<minutes>\"\n"
"\t Starts a new WAV file every <minutes>. Used with -w\n" "\t Starts a new WAV file every <minutes>. Used with -w\n"
"--stdout Write speech output to stdout\n" "--stdout Write speech output to stdout\n"
"--version Shows version number and date, and location of espeak-data\n"
"--voices=<language>\n" "--voices=<language>\n"
"\t List the available voices for the specified language.\n" "\t List the available voices for the specified language.\n"
"\t If <language> is omitted, then list all voices.\n"; "\t If <language> is omitted, then list all voices.\n";

+ 58
- 58
src/event.cpp View File

//<decls and function prototypes //<decls and function prototypes




// my_mutex: protects my_thread_is_talking,
// my_mutex: protects my_thread_is_talking,
static pthread_mutex_t my_mutex; static pthread_mutex_t my_mutex;
static sem_t my_sem_start_is_required; static sem_t my_sem_start_is_required;
static sem_t my_sem_stop_is_required; static sem_t my_sem_stop_is_required;


enum {MIN_TIMEOUT_IN_MS=10, enum {MIN_TIMEOUT_IN_MS=10,
ACTIVITY_TIMEOUT=50, // in ms, check that the stream is active ACTIVITY_TIMEOUT=50, // in ms, check that the stream is active
MAX_ACTIVITY_CHECK=6
MAX_ACTIVITY_CHECK=6
}; };




assert(-1 != sem_init(&my_sem_stop_is_required, 0, 0)); assert(-1 != sem_init(&my_sem_stop_is_required, 0, 0));
assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0)); assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0));


pthread_attr_t a_attrib;
pthread_attr_t a_attrib;
if (pthread_attr_init (& a_attrib) if (pthread_attr_init (& a_attrib)
|| pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE) || pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE)
|| pthread_create( &my_thread,
& a_attrib,
polling_thread,
|| pthread_create( &my_thread,
& a_attrib,
polling_thread,
(void*)NULL)) (void*)NULL))
{ {
assert(0); assert(0);
"MARK", "MARK",
"PLAY", "PLAY",
"END", "END",
"MSG_TERMINATED"
"MSG_TERMINATED"
}; };


SHOW("event_display > event=0x%x\n",event); SHOW("event_display > event=0x%x\n",event);
static espeak_EVENT* event_copy (espeak_EVENT* event) static espeak_EVENT* event_copy (espeak_EVENT* event)
{ {
ENTER("event_copy"); ENTER("event_copy");
if (event==NULL) if (event==NULL)
{ {
return NULL; return NULL;
} }
espeak_EVENT* a_event=(espeak_EVENT*)malloc(sizeof(espeak_EVENT)); espeak_EVENT* a_event=(espeak_EVENT*)malloc(sizeof(espeak_EVENT));
if (a_event) if (a_event)
{ {
memcpy(a_event, event, sizeof(espeak_EVENT)); memcpy(a_event, event, sizeof(espeak_EVENT));
switch(event->type) switch(event->type)
{ {
case espeakEVENT_MARK: case espeakEVENT_MARK:
a_event->id.name = strdup(event->id.name); a_event->id.name = strdup(event->id.name);
} }
break; break;
default: default:
break; break;
} }
} }
event_display(a_event); event_display(a_event);
return a_event; return a_event;
} }


return EE_INTERNAL_ERROR; return EE_INTERNAL_ERROR;
} }


int a_status = pthread_mutex_lock(&my_mutex);
int a_status = pthread_mutex_lock(&my_mutex);
espeak_ERROR a_error = EE_OK; espeak_ERROR a_error = EE_OK;


if (!a_status) if (!a_status)
// //
// if (!a_status && !my_event_is_running && (a_error == EE_OK)) // if (!a_status && !my_event_is_running && (a_error == EE_OK))
// { // {
// // quit when command is actually started
// // quit when command is actually started
// // (for possible forthcoming 'end of command' checks) // // (for possible forthcoming 'end of command' checks)
SHOW_TIME("event_declare > post my_sem_start_is_required\n"); SHOW_TIME("event_declare > post my_sem_start_is_required\n");
sem_post(&my_sem_start_is_required); sem_post(&my_sem_start_is_required);


add_time_in_ms( &ts, time_in_ms); add_time_in_ms( &ts, time_in_ms);


SHOW("polling_thread > sleep_until_timeout_or_stop_request > start sem_timedwait from %d.%09lu to %d.%09lu \n",
SHOW("polling_thread > sleep_until_timeout_or_stop_request > start sem_timedwait from %d.%09lu to %d.%09lu \n",
to.tv_sec, to.tv_nsec, to.tv_sec, to.tv_nsec,
ts.tv_sec, ts.tv_nsec); ts.tv_sec, ts.tv_nsec);


while ((err = sem_timedwait(&my_sem_stop_is_required, &ts)) == -1
while ((err = sem_timedwait(&my_sem_stop_is_required, &ts)) == -1
&& errno == EINTR) && errno == EINTR)
{ {
continue; // Restart when interrupted by handler continue; // Restart when interrupted by handler
} }


assert (gettimeofday(&tv, NULL) != -1); assert (gettimeofday(&tv, NULL) != -1);
SHOW("polling_thread > sleep_until_timeout_or_stop_request > stop sem_timedwait %d.%09lu \n",
SHOW("polling_thread > sleep_until_timeout_or_stop_request > stop sem_timedwait %d.%09lu \n",
tv.tv_sec, tv.tv_usec*1000); tv.tv_sec, tv.tv_usec*1000);


if (err == 0) if (err == 0)
//> //>
//<get_remaining_time //<get_remaining_time
// Asked for the time interval required for reaching the sample. // Asked for the time interval required for reaching the sample.
// If the stream is opened but the audio samples are not played,
// If the stream is opened but the audio samples are not played,
// a timeout is started. // a timeout is started.


static int get_remaining_time(uint32_t sample, uint32_t* time_in_ms, int* stop_is_required) static int get_remaining_time(uint32_t sample, uint32_t* time_in_ms, int* stop_is_required)


// stream opened but not active // stream opened but not active
// //
// Several possible states:
// * the stream is opened but not yet started:
// Several possible states:
// * the stream is opened but not yet started:
// //
// wait for the start of stream // wait for the start of stream
// //
// * some samples have already been played,
// * some samples have already been played,
// ** the end of stream is reached // ** the end of stream is reached
// ** or there is an underrun // ** or there is an underrun
//
//
// wait for the close of stream // wait for the close of stream


*stop_is_required = sleep_until_timeout_or_stop_request( ACTIVITY_TIMEOUT);
*stop_is_required = sleep_until_timeout_or_stop_request( ACTIVITY_TIMEOUT);
} }


return err; return err;
SHOW_TIME("polling_thread > unlocked\n"); SHOW_TIME("polling_thread > unlocked\n");


a_stop_is_required=0; a_stop_is_required=0;
a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required);
if ((a_status==0) && a_stop_is_required)
a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); // NOTE: may set a_stop_is_required to -1
if ((a_status==0) && (a_stop_is_required > 0))
{ {
SHOW("polling_thread > stop required (%d)\n", __LINE__); SHOW("polling_thread > stop required (%d)\n", __LINE__);
while(0 == sem_trywait(&my_sem_stop_is_required)) while(0 == sem_trywait(&my_sem_stop_is_required))
} }


// In this loop, my_event_is_running = 1 // In this loop, my_event_is_running = 1
while (head && !a_stop_is_required)
while (head && (a_stop_is_required <= 0))
{ {
SHOW_TIME("polling_thread > check head\n"); SHOW_TIME("polling_thread > check head\n");
while(0 == sem_trywait(&my_sem_start_is_required)) while(0 == sem_trywait(&my_sem_start_is_required))
{ {
}; };
espeak_EVENT* event = (espeak_EVENT*)(head->data); espeak_EVENT* event = (espeak_EVENT*)(head->data);
assert(event); assert(event);
uint32_t time_in_ms = 0; uint32_t time_in_ms = 0;
int err = get_remaining_time((uint32_t)event->sample,
&time_in_ms,
int err = get_remaining_time((uint32_t)event->sample,
&time_in_ms,
&a_stop_is_required); &a_stop_is_required);
if (a_stop_is_required)
if (a_stop_is_required > 0)
{ {
break; break;
} }
else if (err != 0) else if (err != 0)
{
{
// No available time: the event is deleted. // No available time: the event is deleted.
SHOW("polling_thread > %s\n","audio device down"); SHOW("polling_thread > %s\n","audio device down");
a_status = pthread_mutex_lock(&my_mutex); a_status = pthread_mutex_lock(&my_mutex);
if (my_callback) if (my_callback)
{ {
event_notify(event); event_notify(event);
// the user_data (and the type) are cleaned to be sure
// the user_data (and the type) are cleaned to be sure
// that MSG_TERMINATED is called twice (at delete time too). // that MSG_TERMINATED is called twice (at delete time too).
event->type=espeakEVENT_LIST_TERMINATED; event->type=espeakEVENT_LIST_TERMINATED;
event->user_data=NULL; event->user_data=NULL;
} }
a_status = pthread_mutex_lock(&my_mutex); a_status = pthread_mutex_lock(&my_mutex);
SHOW_TIME("polling_thread > locked\n"); SHOW_TIME("polling_thread > locked\n");
event_delete( (espeak_EVENT*)pop()); event_delete( (espeak_EVENT*)pop());
a_status = pthread_mutex_unlock(&my_mutex); a_status = pthread_mutex_unlock(&my_mutex);
SHOW_TIME("polling_thread > unlocked\n"); SHOW_TIME("polling_thread > unlocked\n");
a_stop_is_required=0; a_stop_is_required=0;
a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required);
if ((a_status==0) && a_stop_is_required)
if ((a_status==0) && (a_stop_is_required > 0))
{ {
SHOW("polling_thread > stop required (%d)\n", __LINE__); SHOW("polling_thread > stop required (%d)\n", __LINE__);
while(0 == sem_trywait(&my_sem_stop_is_required)) while(0 == sem_trywait(&my_sem_stop_is_required))
a_stop_is_required = sleep_until_timeout_or_stop_request(time_in_ms); a_stop_is_required = sleep_until_timeout_or_stop_request(time_in_ms);
} }
} }
a_status = pthread_mutex_lock(&my_mutex); a_status = pthread_mutex_lock(&my_mutex);
SHOW_TIME("polling_thread > locked\n"); SHOW_TIME("polling_thread > locked\n");
SHOW_TIME("polling_thread > my_event_is_running = 0\n"); SHOW_TIME("polling_thread > my_event_is_running = 0\n");
my_event_is_running = 0; my_event_is_running = 0;
if(!a_stop_is_required)
if(a_stop_is_required <= 0)
{ {
a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required);
if ((a_status==0) && a_stop_is_required)
if ((a_status==0) && (a_stop_is_required > 0))
{ {
SHOW("polling_thread > stop required (%d)\n", __LINE__); SHOW("polling_thread > stop required (%d)\n", __LINE__);
while(0 == sem_trywait(&my_sem_stop_is_required)) while(0 == sem_trywait(&my_sem_stop_is_required))
a_status = pthread_mutex_unlock(&my_mutex); a_status = pthread_mutex_unlock(&my_mutex);
SHOW_TIME("polling_thread > unlocked\n"); SHOW_TIME("polling_thread > unlocked\n");


if (a_stop_is_required)
{
if (a_stop_is_required > 0)
{
SHOW("polling_thread > %s\n","stop required!"); SHOW("polling_thread > %s\n","stop required!");
// no mutex required since the stop command is synchronous // no mutex required since the stop command is synchronous
// and waiting for my_sem_stop_is_acknowledged // and waiting for my_sem_stop_is_acknowledged
SHOW("event > push > %s\n", "EE_BUFFER_FULL"); SHOW("event > push > %s\n", "EE_BUFFER_FULL");
return EE_BUFFER_FULL; return EE_BUFFER_FULL;
} }
node *n = (node *)malloc(sizeof(node)); node *n = (node *)malloc(sizeof(node));
if (n == NULL) if (n == NULL)
{ {
return EE_INTERNAL_ERROR; return EE_INTERNAL_ERROR;
} }
if (head == NULL) if (head == NULL)
{ {
head = n; head = n;
tail->next = n; tail->next = n;
tail = n; tail = n;
} }
tail->next = NULL; tail->next = NULL;
tail->data = the_data; tail->data = the_data;
node_counter++; node_counter++;
SHOW("event > push > counter=%d (uid=%d)\n",node_counter,((espeak_EVENT*)the_data)->unique_identifier); SHOW("event > push > counter=%d (uid=%d)\n",node_counter,((espeak_EVENT*)the_data)->unique_identifier);
return EE_OK; return EE_OK;
} }


{ {
ENTER("event > pop"); ENTER("event > pop");
void* the_data = NULL; void* the_data = NULL;
assert((!head && !tail) || (head && tail)); assert((!head && !tail) || (head && tail));
if (head != NULL) if (head != NULL)
{ {
node* n = head; node* n = head;
node_counter--; node_counter--;
SHOW("event > pop > event=0x%x (counter=%d, uid=%d)\n",the_data, node_counter,((espeak_EVENT*)the_data)->unique_identifier); SHOW("event > pop > event=0x%x (counter=%d, uid=%d)\n",the_data, node_counter,((espeak_EVENT*)the_data)->unique_identifier);
} }
if(head == NULL) if(head == NULL)
{ {
tail = NULL; tail = NULL;
} }
return the_data; return the_data;
} }


static void init() static void init()
{ {
ENTER("event > init"); ENTER("event > init");
while (event_delete( (espeak_EVENT*)pop() )) while (event_delete( (espeak_EVENT*)pop() ))
{} {}
node_counter = 0; node_counter = 0;
} }


void event_terminate() void event_terminate()
{ {
ENTER("event_terminate"); ENTER("event_terminate");
if (my_thread) if (my_thread)
{ {
pthread_cancel(my_thread); pthread_cancel(my_thread);

+ 31
- 31
src/fifo.cpp View File

//> //>
//<decls and function prototypes //<decls and function prototypes


// my_mutex: protects my_thread_is_talking,
// my_mutex: protects my_thread_is_talking,
// my_stop_is_required, and the command fifo // my_stop_is_required, and the command fifo
static pthread_mutex_t my_mutex; static pthread_mutex_t my_mutex;
static int my_command_is_running = 0; static int my_command_is_running = 0;
// + fifo // + fifo
// //


// my_thread: reads commands from the fifo, and runs them.
// my_thread: reads commands from the fifo, and runs them.
static pthread_t my_thread; static pthread_t my_thread;
static sem_t my_sem_start_is_required; static sem_t my_sem_start_is_required;
static sem_t my_sem_stop_is_acknowledged; static sem_t my_sem_stop_is_acknowledged;
assert(-1 != sem_init(&my_sem_start_is_required, 0, 0)); assert(-1 != sem_init(&my_sem_start_is_required, 0, 0));
assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0)); assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0));


pthread_attr_t a_attrib;
pthread_attr_t a_attrib;
if (pthread_attr_init (& a_attrib) if (pthread_attr_init (& a_attrib)
|| pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE) || pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE)
|| pthread_create( &my_thread,
& a_attrib,
say_thread,
|| pthread_create( &my_thread,
& a_attrib,
say_thread,
(void*)NULL)) (void*)NULL))
{ {
assert(0); assert(0);
espeak_ERROR fifo_add_command (t_espeak_command* the_command) espeak_ERROR fifo_add_command (t_espeak_command* the_command)
{ {
ENTER("fifo_add_command"); ENTER("fifo_add_command");
int a_status = pthread_mutex_lock(&my_mutex);
int a_status = pthread_mutex_lock(&my_mutex);
espeak_ERROR a_error = EE_OK; espeak_ERROR a_error = EE_OK;


if (!a_status) if (!a_status)


if (!a_status && !my_command_is_running && (a_error == EE_OK)) if (!a_status && !my_command_is_running && (a_error == EE_OK))
{ {
// quit when command is actually started
// quit when command is actually started
// (for possible forthcoming 'end of command' checks) // (for possible forthcoming 'end of command' checks)
SHOW_TIME("fifo_add_command > post my_sem_start_is_required\n"); SHOW_TIME("fifo_add_command > post my_sem_start_is_required\n");
sem_post(&my_sem_start_is_required); sem_post(&my_sem_start_is_required);
int val=1; int val=1;
while (val)
while (val > 0)
{ {
usleep(50000); // TBD: event? usleep(50000); // TBD: event?
sem_getvalue(&my_sem_start_is_required, &val); sem_getvalue(&my_sem_start_is_required, &val);
espeak_ERROR fifo_add_commands (t_espeak_command* command1, t_espeak_command* command2) espeak_ERROR fifo_add_commands (t_espeak_command* command1, t_espeak_command* command2)
{ {
ENTER("fifo_add_command"); ENTER("fifo_add_command");
int a_status = pthread_mutex_lock(&my_mutex);
int a_status = pthread_mutex_lock(&my_mutex);
espeak_ERROR a_error = EE_OK; espeak_ERROR a_error = EE_OK;


if (!a_status) if (!a_status)


if (!a_status && !my_command_is_running && (a_error == EE_OK)) if (!a_status && !my_command_is_running && (a_error == EE_OK))
{ {
// quit when one command is actually started
// quit when one command is actually started
// (for possible forthcoming 'end of command' checks) // (for possible forthcoming 'end of command' checks)
SHOW_TIME("fifo_add_command > post my_sem_start_is_required\n"); SHOW_TIME("fifo_add_command > post my_sem_start_is_required\n");
sem_post(&my_sem_start_is_required); sem_post(&my_sem_start_is_required);
int val=1; int val=1;
while (val)
while (val > 0)
{ {
usleep(50000); // TBD: event? usleep(50000); // TBD: event?
sem_getvalue(&my_sem_start_is_required, &val); sem_getvalue(&my_sem_start_is_required, &val);
int a_start_is_required=0; int a_start_is_required=0;


// Wait for the start request (my_sem_start_is_required). // Wait for the start request (my_sem_start_is_required).
// Besides this, if the audio stream is still busy,
// check from time to time its end.
// The end of the stream is confirmed by several checks
// Besides this, if the audio stream is still busy,
// check from time to time its end.
// The end of the stream is confirmed by several checks
// for filtering underflow. // for filtering underflow.
// //
int i=0; int i=0;


add_time_in_ms( &ts, INACTIVITY_TIMEOUT); add_time_in_ms( &ts, INACTIVITY_TIMEOUT);


SHOW("fifo > sleep_until_start_request_or_inactivity > start sem_timedwait (start_is_required) from %d.%09lu to %d.%09lu \n",
SHOW("fifo > sleep_until_start_request_or_inactivity > start sem_timedwait (start_is_required) from %d.%09lu to %d.%09lu \n",
to.tv_sec, to.tv_nsec, to.tv_sec, to.tv_nsec,
ts.tv_sec, ts.tv_nsec); ts.tv_sec, ts.tv_nsec);


while ((err = sem_timedwait(&my_sem_start_is_required, &ts)) == -1
while ((err = sem_timedwait(&my_sem_start_is_required, &ts)) == -1
&& errno == EINTR) && errno == EINTR)
{ {
continue; continue;
} }


assert (gettimeofday(&tv, NULL) != -1); assert (gettimeofday(&tv, NULL) != -1);
SHOW("fifo > sleep_until_start_request_or_inactivity > stop sem_timedwait (start_is_required, err=%d) %d.%09lu \n", err,
SHOW("fifo > sleep_until_start_request_or_inactivity > stop sem_timedwait (start_is_required, err=%d) %d.%09lu \n", err,
tv.tv_sec, tv.tv_usec*1000); tv.tv_sec, tv.tv_usec*1000);


if (err==0) if (err==0)
{ {
SHOW_TIME("fifo > close_stream > ENTER\n"); SHOW_TIME("fifo > close_stream > ENTER\n");


// Warning: a wave_close can be already required by
// an external command (espeak_Cancel + fifo_stop), if so:
// Warning: a wave_close can be already required by
// an external command (espeak_Cancel + fifo_stop), if so:
// my_stop_is_required = 1; // my_stop_is_required = 1;


int a_status = pthread_mutex_lock(&my_mutex); int a_status = pthread_mutex_lock(&my_mutex);


a_stop_is_required = my_stop_is_required; a_stop_is_required = my_stop_is_required;
a_status = pthread_mutex_unlock(&my_mutex); a_status = pthread_mutex_unlock(&my_mutex);
if (a_stop_is_required) if (a_stop_is_required)
{ {
// acknowledge the stop request // acknowledge the stop request
}; };


if (my_stop_is_required) if (my_stop_is_required)
{
{
SHOW_TIME("say_thread > my_command_is_running = 0\n"); SHOW_TIME("say_thread > my_command_is_running = 0\n");
my_command_is_running = 0; my_command_is_running = 0;
} }
} }


if (my_stop_is_required) if (my_stop_is_required)
{
{
// no mutex required since the stop command is synchronous // no mutex required since the stop command is synchronous
// and waiting for my_sem_stop_is_acknowledged // and waiting for my_sem_stop_is_acknowledged
init(1); init(1);
while(0==sem_trywait(&my_sem_start_is_required)) while(0==sem_trywait(&my_sem_start_is_required))
{ {
}; };
// acknowledge the stop request // acknowledge the stop request
SHOW_TIME("say_thread > post my_sem_stop_is_acknowledged\n"); SHOW_TIME("say_thread > post my_sem_stop_is_acknowledged\n");
int a_status = sem_post(&my_sem_stop_is_acknowledged); int a_status = sem_post(&my_sem_stop_is_acknowledged);
assert( a_status != -1); assert( a_status != -1);
} }
// and wait for the next start // and wait for the next start
SHOW_TIME("say_thread > wait for my_sem_start_is_required\n");
SHOW_TIME("say_thread > wait for my_sem_start_is_required\n");
} }
return NULL; return NULL;
} }


{ {
return EE_INTERNAL_ERROR; return EE_INTERNAL_ERROR;
} }
if (head == NULL) if (head == NULL)
{ {
head = n; head = n;
tail->next = n; tail->next = n;
tail = n; tail = n;
} }
tail->next = NULL; tail->next = NULL;
tail->data = the_command; tail->data = the_command;


} }


display_espeak_command(the_command); display_espeak_command(the_command);
return the_command; return the_command;
} }



+ 16
- 16
src/intonation.cpp View File

number_body = 0; number_body = 0;
number_tail = 0; /* number between tonic syllable and next primary */ number_tail = 0; /* number between tonic syllable and next primary */
last_primary = -1; last_primary = -1;
for(ix=start; ix<end; ix++) for(ix=start; ix<end; ix++)
{ {
stress = syllable_tab[ix].stress; /* marked stress level */ stress = syllable_tab[ix].stress; /* marked stress level */
n_steps = count_increments(syl_ix+1, head_final, 4); n_steps = count_increments(syl_ix+1, head_final, 4);
pitch = tune->onset << 8; pitch = tune->onset << 8;
used_onset = 1; used_onset = 1;
}
}


if(n_steps > tune->head_max_steps) if(n_steps > tune->head_max_steps)
n_steps = tune->head_max_steps; n_steps = tune->head_max_steps;
n_primary--; n_primary--;
if((tn->backwards) && (n_primary < 2)) if((tn->backwards) && (n_primary < 2))
{ {
pitch = tn->backwards[n_primary] << 8;
pitch = tn->backwards[n_primary] << 8;
} }
} }




if(n_increments <= 0) if(n_increments <= 0)
return; return;
if(n_increments > 1) if(n_increments > 1)
{ {
increment = increment / n_increments; increment = increment / n_increments;


if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE) if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE)
{ {
tone_posn = tone_posn2; // put tone on the penultimate stressed word
tone_posn = tone_posn2; // put tone on the penultimate stressed word
} }
ix = SetHeadIntonation(tune, ix, tone_posn, 0); ix = SetHeadIntonation(tune, ix, tone_posn, 0);




/* tonic syllable */ /* tonic syllable */
/******************/ /******************/
// if(tn->flags & T_EMPH) // if(tn->flags & T_EMPH)
// { // {
// syllable_tab[ix].flags |= SYL_EMPHASIS; // syllable_tab[ix].flags |= SYL_EMPHASIS;


/* tail, after the tonic syllable */ /* tail, after the tonic syllable */
/**********************************/ /**********************************/
SetPitchGradient(ix, end, tune->tail_start, tune->tail_end); SetPitchGradient(ix, end, tune->tail_start, tune->tail_end);


return(tone_pitch_env); return(tone_pitch_env);


if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE) if(option_tone_flags & OPTION_EMPHASIZE_PENULTIMATE)
{ {
tone_posn = tone_posn2; // put tone on the penultimate stressed word
tone_posn = tone_posn2; // put tone on the penultimate stressed word
} }
ix = calc_pitch_segment(ix,tone_posn, th, tn, PRIMARY, continuing); ix = calc_pitch_segment(ix,tone_posn, th, tn, PRIMARY, continuing);
// ix = SetBodyIntonation(&tunes[0], ix, tone_posn, 0); // ix = SetBodyIntonation(&tunes[0], ix, tone_posn, 0);


/* tonic syllable */ /* tonic syllable */
/******************/ /******************/
if(tn->flags & T_EMPH) if(tn->flags & T_EMPH)
{ {
syllable_tab[ix].flags |= SYL_EMPHASIS; syllable_tab[ix].flags |= SYL_EMPHASIS;


/* tail, after the tonic syllable */ /* tail, after the tonic syllable */
/**********************************/ /**********************************/
SetPitchGradient(ix, end, tn->tail_start, tn->tail_end); SetPitchGradient(ix, end, tn->tail_start, tn->tail_end);


return(tone_pitch_env); return(tone_pitch_env);
if(tph->mnemonic == 0x343132) // [214] if(tph->mnemonic == 0x343132) // [214]
prev_p->tone_ph = PhonemeCode2('3','5'); prev_p->tone_ph = PhonemeCode2('3','5');
else else
prev_p->tone_ph = PhonemeCode2('2','1');
prev_p->tone_ph = PhonemeCode2('2','1');
} }
if((prev_tph->mnemonic == 0x3135) && (tph->mnemonic == 0x3135)) // [51] + [51] if((prev_tph->mnemonic == 0x3135) && (tph->mnemonic == 0x3135)) // [51] + [51]
{ {
} }
else else
{ {
group_tone = tr->punct_to_tone[option][clause_type];
group_tone = tr->punct_to_tone[option][clause_type];
group_tone_emph = tr->punct_to_tone[option][5]; // emphatic form of statement group_tone_emph = tr->punct_to_tone[option][5]; // emphatic form of statement
group_tone_comma = tr->punct_to_tone[option][1]; // emphatic form of statement group_tone_comma = tr->punct_to_tone[option][1]; // emphatic form of statement
} }
calc_pitches(option, st_start, st_ix, group_tone); calc_pitches(option, st_start, st_ix, group_tone);
} }


// unpack pitch data // unpack pitch data
st_ix=0; st_ix=0;
for(ix=ph_start; ix < ph_end; ix++) for(ix=ph_start; ix < ph_end; ix++)
{ {
p = &phoneme_list[ix]; p = &phoneme_list[ix];
p->stresslevel = syllable_tab[st_ix].stress; p->stresslevel = syllable_tab[st_ix].stress;
if(p->synthflags & SFLAG_SYLLABLE) if(p->synthflags & SFLAG_SYLLABLE)
{ {
syl = &syllable_tab[st_ix]; syl = &syllable_tab[st_ix];
{ {
p->stresslevel |= 8; // emphasized p->stresslevel |= 8; // emphasized
} }
st_ix++; st_ix++;
} }
} }


} // end of CalcPitches } // end of CalcPitches



+ 37
- 34
src/numbers.cpp View File

// speak in the language for this alphabet (or English) // speak in the language for this alphabet (or English)
ph_buf[2] = SetTranslator2(WordToString2(language)); ph_buf[2] = SetTranslator2(WordToString2(language));


if(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af))
if(translator2 != NULL)
{ {
// Special case for Korean letters.
// break a syllable hangul into 2 or 3 individual jamo
if(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af))
{
// Special case for Korean letters.
// break a syllable hangul into 2 or 3 individual jamo


hangul_buf[0] = ' ';
p3 = &hangul_buf[1];
if((initial = (code/28)/21) != 11)
hangul_buf[0] = ' ';
p3 = &hangul_buf[1];
if((initial = (code/28)/21) != 11)
{
p3 += utf8_out(initial + 0x1100, p3);
}
utf8_out(((code/28) % 21) + 0x1161, p3); // medial
utf8_out((code % 28) + 0x11a7, &p3[3]); // final
p3[6] = ' ';
p3[7] = 0;
ph_buf[3] = 0;
TranslateRules(translator2, &hangul_buf[1], &ph_buf[3], sizeof(ph_buf)-3, NULL, 0, NULL);
SetWordStress(translator2, &ph_buf[3], NULL, -1, 0);
}
else
{ {
p3 += utf8_out(initial + 0x1100, p3);
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
} }
utf8_out(((code/28) % 21) + 0x1161, p3); // medial
utf8_out((code % 28) + 0x11a7, &p3[3]); // final
p3[6] = ' ';
p3[7] = 0;
ph_buf[3] = 0;
TranslateRules(translator2, &hangul_buf[1], &ph_buf[3], sizeof(ph_buf)-3, NULL, 0, NULL);
SetWordStress(translator2, &ph_buf[3], NULL, -1, 0);
}
else
{
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
}


if(ph_buf[3] == phonSWITCH)
{
// another level of language change
ph_buf[2] = SetTranslator2(&ph_buf[4]);
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
}
if(ph_buf[3] == phonSWITCH)
{
// another level of language change
ph_buf[2] = SetTranslator2(&ph_buf[4]);
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
}


SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table
SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table


if(ph_buf[3] != 0)
{
ph_buf[0] = phonPAUSE;
ph_buf[1] = phonSWITCH;
len = strlen(&ph_buf[3]) + 3;
ph_buf[len] = phonSWITCH; // switch back
ph_buf[len+1] = tr->phoneme_tab_ix;
ph_buf[len+2] = 0;
if(ph_buf[3] != 0)
{
ph_buf[0] = phonPAUSE;
ph_buf[1] = phonSWITCH;
len = strlen(&ph_buf[3]) + 3;
ph_buf[len] = phonSWITCH; // switch back
ph_buf[len+1] = tr->phoneme_tab_ix;
ph_buf[len+2] = 0;
}
} }
} }
} }

+ 30
- 26
src/readclause.cpp View File







static void ProcessParamStack(char *outbuf, int &outix)
static void ProcessParamStack(char *outbuf, int *outix)
{//==================================================== {//====================================================
// Set the speech parameters from the parameter stack // Set the speech parameters from the parameter stack
int param; int param;
} }


speech_parameters[param] = new_parameters[param]; speech_parameters[param] = new_parameters[param];
strcpy(&outbuf[outix],buf);
outix += strlen(buf);
strcpy(&outbuf[*outix],buf);
*outix += strlen(buf);
} }
} }
} // end of ProcessParamStack } // end of ProcessParamStack
} // end of PushParamStack } // end of PushParamStack




static void PopParamStack(int tag_type, char *outbuf, int &outix)
static void PopParamStack(int tag_type, char *outbuf, int *outix)
{//============================================================== {//==============================================================
// unwind the stack up to and including the previous tag of this type // unwind the stack up to and including the previous tag of this type
int ix; int ix;


if((tail[0]=='s') && (tail[1]=='t')) if((tail[0]=='s') && (tail[1]=='t'))
{ {
#ifdef PLATFORM_RISCOS
*value_out = 100;
#else
double x; double x;
// convert from semitones to a frequency percentage // convert from semitones to a frequency percentage
x = pow(double(2.0),double((value*sign)/12)) * 100;
x = pow((double)2.0,(double)((value*sign)/12)) * 100;
*value_out = (int)x; *value_out = (int)x;
#endif
return(2); // percentage return(2); // percentage
} }


} // end of SetProsodyParemeter } // end of SetProsodyParemeter




static int ReplaceKeyName(char *outbuf, int index, int &outix)
static int ReplaceKeyName(char *outbuf, int index, int *outix)
{//=========================================================== {//===========================================================
// Replace some key-names by single characters, so they can be pronounced in different languages // Replace some key-names by single characters, so they can be pronounced in different languages
static MNEM_TAB keynames[] = { static MNEM_TAB keynames[] = {
if((letter = LookupMnem(keynames, p)) != 0) if((letter = LookupMnem(keynames, p)) != 0)
{ {
ix = utf8_out(letter, p); ix = utf8_out(letter, p);
outix = index + ix;
*outix = index + ix;
return(letter); return(letter);
} }
return(0); return(0);
} }




static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outbuf, int self_closing)
static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outbuf, int self_closing)
{//================================================================================================== {//==================================================================================================
// xml_buf is the tag and attributes with a zero terminator in place of the original '>' // xml_buf is the tag and attributes with a zero terminator in place of the original '>'
// returns a clause terminator value. // returns a clause terminator value.
// closing tag // closing tag
if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != HTML_NOSPACE) if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != HTML_NOSPACE)
{ {
outbuf[outix++] = ' ';
outbuf[(*outix)++] = ' ';
} }
tag_type += SSML_CLOSE; tag_type += SSML_CLOSE;
} }
if((tag_type = LookupMnem(ssmltags,tag_name)) != HTML_NOSPACE) if((tag_type = LookupMnem(ssmltags,tag_name)) != HTML_NOSPACE)
{ {
// separate SSML tags from the previous word (but not HMTL tags such as <b> <font> which can occur inside a word) // separate SSML tags from the previous word (but not HMTL tags such as <b> <font> which can occur inside a word)
outbuf[outix++] = ' ';
outbuf[(*outix)++] = ' ';
} }


if(self_closing && ignore_if_self_closing[tag_type]) if(self_closing && ignore_if_self_closing[tag_type])
} }


sprintf(buf,"%c%dY",CTRL_EMBEDDED,value); sprintf(buf,"%c%dY",CTRL_EMBEDDED,value);
strcpy(&outbuf[outix],buf);
outix += strlen(buf);
strcpy(&outbuf[*outix],buf);
*outix += strlen(buf);


sayas_start = outix;
sayas_start = *outix;
sayas_mode = value; // punctuation doesn't end clause during SAY-AS sayas_mode = value; // punctuation doesn't end clause during SAY-AS
break; break;


case SSML_SAYAS + SSML_CLOSE: case SSML_SAYAS + SSML_CLOSE:
if(sayas_mode == SAYAS_KEY) if(sayas_mode == SAYAS_KEY)
{ {
outbuf[outix] = 0;
outbuf[*outix] = 0;
ReplaceKeyName(outbuf, sayas_start, outix); ReplaceKeyName(outbuf, sayas_start, outix);
} }


outbuf[outix++] = CTRL_EMBEDDED;
outbuf[outix++] = 'Y';
outbuf[(*outix)++] = CTRL_EMBEDDED;
outbuf[(*outix)++] = 'Y';
sayas_mode = 0; sayas_mode = 0;
break; break;


{ {
// use the alias rather than the text // use the alias rather than the text
ignore_text = 1; ignore_text = 1;
outix += attrcopy_utf8(&outbuf[outix],attr1,n_outbuf-outix);
*outix += attrcopy_utf8(&outbuf[*outix],attr1,n_outbuf-*outix);
} }
break; break;


if((index = AddNameData(buf,0)) >= 0) if((index = AddNameData(buf,0)) >= 0)
{ {
sprintf(buf,"%c%dM",CTRL_EMBEDDED,index); sprintf(buf,"%c%dM",CTRL_EMBEDDED,index);
strcpy(&outbuf[outix],buf);
outix += strlen(buf);
strcpy(&outbuf[*outix],buf);
*outix += strlen(buf);
} }
} }
break; break;
if(index >= 0) if(index >= 0)
{ {
sprintf(buf,"%c%dI",CTRL_EMBEDDED,index); sprintf(buf,"%c%dI",CTRL_EMBEDDED,index);
strcpy(&outbuf[outix],buf);
outix += strlen(buf);
strcpy(&outbuf[*outix],buf);
*outix += strlen(buf);
sp->parameter[espeakSILENCE] = 1; sp->parameter[espeakSILENCE] = 1;
} }
} }
if(uri_callback(1,uri,xmlbase) == 0) if(uri_callback(1,uri,xmlbase) == 0)
{ {
sprintf(buf,"%c%dU",CTRL_EMBEDDED,index); sprintf(buf,"%c%dU",CTRL_EMBEDDED,index);
strcpy(&outbuf[outix],buf);
outix += strlen(buf);
strcpy(&outbuf[*outix],buf);
*outix += strlen(buf);
sp->parameter[espeakSILENCE] = 1; sp->parameter[espeakSILENCE] = 1;
} }
} }
if(value < 3) if(value < 3)
{ {
// adjust prepause on the following word // adjust prepause on the following word
sprintf(&outbuf[outix],"%c%dB",CTRL_EMBEDDED,value);
outix += 3;
sprintf(&outbuf[*outix],"%c%dB",CTRL_EMBEDDED,value);
*outix += 3;
terminator = 0; terminator = 0;
} }
value = break_value[value]; value = break_value[value];
self_closing = 1; self_closing = 1;
} }


terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing);
terminator = ProcessSsmlTag(xml_buf,buf,&ix,n_buf,self_closing);


if(terminator != 0) if(terminator != 0)
{ {

+ 1
- 0
src/speak.cpp View File

"--split=\"<minutes>\"\n" "--split=\"<minutes>\"\n"
"\t Starts a new WAV file every <minutes>. Used with -w\n" "\t Starts a new WAV file every <minutes>. Used with -w\n"
"--stdout Write speech output to stdout\n" "--stdout Write speech output to stdout\n"
"--version Shows version number and date, and location of espeak-data\n"
"--voices=<language>\n" "--voices=<language>\n"
"\t List the available voices for the specified language.\n" "\t List the available voices for the specified language.\n"
"\t If <language> is omitted, then list all voices.\n"; "\t If <language> is omitted, then list all voices.\n";

+ 3
- 2
src/speak_lib.cpp View File

#ifdef PLATFORM_RISCOS #ifdef PLATFORM_RISCOS
setlocale(LC_CTYPE,"ISO8859-1"); setlocale(LC_CTYPE,"ISO8859-1");
#else #else
if(setlocale(LC_CTYPE,"en_US.UTF-8") == NULL)
if(setlocale(LC_CTYPE,"C.UTF-8") == NULL)
{ {
if(setlocale(LC_CTYPE,"UTF-8") == NULL) if(setlocale(LC_CTYPE,"UTF-8") == NULL)
setlocale(LC_CTYPE,"");
if(setlocale(LC_CTYPE,"en_US.UTF-8") == NULL)
setlocale(LC_CTYPE,"");
} }
#endif #endif



+ 6
- 3
src/speak_lib.h View File

espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then
this pause is suppressed. this pause is suppressed.


unique_identifier: message identifier; helpful for identifying later
data supplied to the callback.
unique_identifier: This must be either NULL, or point to an integer variable to
which eSpeak writes a message identifier number.
eSpeak includes this number in espeak_EVENT messages which are the result of
this call of espeak_Synth().


user_data: pointer which will be passed to the callback function.
user_data: a pointer (or NULL) which will be passed to the callback function in
espeak_EVENT messages.


Return: EE_OK: operation achieved Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered; EE_BUFFER_FULL: the command can not be buffered;

+ 16
- 2
src/spectdisplay.cpp View File

break; break;


case '[': // width-- case '[': // width--
pk->pkright -= 1;
pk->pkright -= 10;
if(pk->pkright < 0) if(pk->pkright < 0)
pk->pkright = 0; pk->pkright = 0;
display = 1; display = 1;
break; break;


case ']': // width++ case ']': // width++
pk->pkright += 1;
pk->pkright += 10;
display = 1;
field = 4;
break;

case '{': // width--
pk->pkright -= 2;
if(pk->pkright < 0)
pk->pkright = 0;
display = 1;
field = 4;
break;

case '}': // width++
pk->pkright += 2;
display = 1; display = 1;
field = 4; field = 4;
break; break;

+ 1
- 1
src/speech.h View File

//#define USE_PORTAUDIO //#define USE_PORTAUDIO
//#define USE_PULSEAUDIO //#define USE_PULSEAUDIO
#define USE_NANOSLEEP #define USE_NANOSLEEP
#define __cdecl
#define __cdecl
//#define ESPEAK_API extern "C" //#define ESPEAK_API extern "C"


#ifdef LIBRARY #ifdef LIBRARY

+ 3
- 3
src/synthdata.cpp View File

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


const char *version_string = "1.47.11d 11.Jun.13";
const char *version_string = "1.47.12 23.Sep.13";
const int version_phdata = 0x014709; const int version_phdata = 0x014709;


int option_device_number = -1; int option_device_number = -1;
int vowel_transition0; int vowel_transition0;
int vowel_transition1; int vowel_transition1;


int FormantTransition2(frameref_t *seq, int &n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which);
int FormantTransition2(frameref_t *seq, int *n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which);






// do we need to modify a frame for blending with a consonant? // do we need to modify a frame for blending with a consonant?
if((this_ph->type == phVOWEL) && (fmt_params->fmt2_addr == 0) && (fmt_params->use_vowelin)) if((this_ph->type == phVOWEL) && (fmt_params->fmt2_addr == 0) && (fmt_params->use_vowelin))
{ {
seq_len_adjust += FormantTransition2(frames,nf,fmt_params->transition0,fmt_params->transition1,NULL,which);
seq_len_adjust += FormantTransition2(frames,&nf,fmt_params->transition0,fmt_params->transition1,NULL,which);
} }


length1 = 0; length1 = 0;

+ 10
- 10
src/synthesize.cpp View File

q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE2; q[0] = WCMD_WAVE2;
q[1] = length | (wav_length << 16); // length in samples q[1] = length | (wav_length << 16); // length in samples
q[2] = long64(&wavefile_data[index]);
q[2] = (long64)(&wavefile_data[index]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();
return(length); return(length);
q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = x; // length in samples q[1] = x; // length in samples
q[2] = long64(&wavefile_data[index]);
q[2] = (long64)(&wavefile_data[index]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();


q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = len4*2; // length in samples q[1] = len4*2; // length in samples
q[2] = long64(&wavefile_data[index+x]);
q[2] = (long64)(&wavefile_data[index+x]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();


q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = length; // length in samples q[1] = length; // length in samples
q[2] = long64(&wavefile_data[index+x]);
q[2] = (long64)(&wavefile_data[index+x]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();
} }
} }




int FormantTransition2(frameref_t *seq, int &n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which)
int FormantTransition2(frameref_t *seq, int *n_frames, unsigned int data1, unsigned int data2, PHONEME_TAB *other_ph, int which)
{//============================================================================================================================== {//==============================================================================================================================
int ix; int ix;
int formant; int formant;


frame_t *fr = NULL; frame_t *fr = NULL;


if(n_frames < 2)
if(*n_frames < 2)
return(0); return(0);


len = (data1 & 0x3f) * 2; len = (data1 & 0x3f) * 2;


if(flags & 8) if(flags & 8)
{ {
fr = CopyFrame(seq[n_frames-1].frame,0);
seq[n_frames-1].frame = fr;
fr = CopyFrame(seq[*n_frames-1].frame,0);
seq[*n_frames-1].frame = fr;
rms = RMS_GLOTTAL1; rms = RMS_GLOTTAL1;


// degree of glottal-stop effect depends on closeness of vowel (indicated by f1 freq) // degree of glottal-stop effect depends on closeness of vowel (indicated by f1 freq)
} }
else else
{ {
fr = DuplicateLastFrame(seq,n_frames++,len);
fr = DuplicateLastFrame(seq,(*n_frames)++,len);
if(len > 36) if(len > 36)
seq_len_adjust += (len - 36); seq_len_adjust += (len - 36);




if((vcolour > 0) && (vcolour <= N_VCOLOUR)) if((vcolour > 0) && (vcolour <= N_VCOLOUR))
{ {
for(ix=0; ix<n_frames; ix++)
for(ix=0; ix < *n_frames; ix++)
{ {
fr = CopyFrame(seq[ix].frame,0); fr = CopyFrame(seq[ix].frame,0);
seq[ix].frame = fr; seq[ix].frame = fr;

+ 16
- 4
src/tr_languages.cpp View File

#define L_qa 0x716100 #define L_qa 0x716100
#define L_grc 0x677263 // grc Ancient Greek #define L_grc 0x677263 // grc Ancient Greek
#define L_jbo 0x6a626f // jbo Lojban #define L_jbo 0x6a626f // jbo Lojban
#define L_mni 0x6d6e69 // mni Manipuri
#define L_pap 0x706170 // pap Papiamento] #define L_pap 0x706170 // pap Papiamento]
#define L_qvi 0x717669 // qvi Kichwa #define L_qvi 0x717669 // qvi Kichwa
#define L_shs 0x736873 // shs Shuswap / Secwepemctsin #define L_shs 0x736873 // shs Shuswap / Secwepemctsin
{"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS},
{"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b','n'), AL_WORDS}, {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b','n'), AL_WORDS},
{"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS}, {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS},
{"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0},
{"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, L('g','u'), AL_WORDS},
{"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, {"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0},
{"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), AL_WORDS}, {"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), AL_WORDS},
{"_te", OFFSET_TELUGU, 0xc00, 0xc7f, L('t','e'), 0}, {"_te", OFFSET_TELUGU, 0xc00, 0xc7f, L('t','e'), 0},
Translator *tr; Translator *tr;


static const short stress_lengths_equal[8] = {230, 230, 230, 230, 0, 0, 230, 230}; static const short stress_lengths_equal[8] = {230, 230, 230, 230, 0, 0, 230, 230};
static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 };
static const unsigned char stress_amps_equal[8] = {19,19, 19,19, 19,19, 19,19 };


static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240};
static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 };
break; break;


case L('b','n'): // Bengali case L('b','n'): // Bengali
case L('a','s'): // Assamese
case L_mni: // Manipuri (temporary placement - it's not indo-european)
{ {
static const short stress_lengths_bn[8] = {180, 180, 210, 210, 0, 0, 230, 240}; static const short stress_lengths_bn[8] = {180, 180, 210, 210, 0, 0, 230, 240};
static const unsigned char stress_amps_bn[8] = {18,18, 18,18, 20,20, 22,22 }; static const unsigned char stress_amps_bn[8] = {18,18, 18,18, 20,20, 22,22 };


case L('h','i'): // Hindi case L('h','i'): // Hindi
case L('n','e'): // Nepali case L('n','e'): // Nepali
case L('o','r'): // Oriya
case L('p','a'): // Punjabi case L('p','a'): // Punjabi
case L('g','u'): // Gujarati case L('g','u'): // Gujarati
{ {
tr->langopts.max_digits = 22; tr->langopts.max_digits = 22;
tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS; tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS;
} }
else
if(name2 == L('o','r'))
{
tr->letter_bits_offset = OFFSET_ORIYA;
}
SetIndicLetters(tr); SetIndicLetters(tr);
} }
break; break;
break; break;


case L('t','a'): // Tamil case L('t','a'): // Tamil
case L('m','l'): // Malayalam
case L('k','n'): // Kannada case L('k','n'): // Kannada
case L('m','l'): // Malayalam
case L('m','r'): // Marathi case L('m','r'): // Marathi
case L('t','e'): // Telugu case L('t','e'): // Telugu
{ {
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable


tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // use 'diminished' for unstressed final syllable
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; // use 'diminished' for unstressed final syllable
tr->langopts.spelling_stress = 1; tr->langopts.spelling_stress = 1;
tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000


else else
if(name2 == L('m','l')) if(name2 == L('m','l'))
{ {
static const short stress_lengths_ml[8] = {180, 160, 240, 240, 0, 0, 260, 260};
SetupTranslator(tr,stress_lengths_ml, stress_amps_equal);
tr->letter_bits_offset = OFFSET_MALAYALAM; tr->letter_bits_offset = OFFSET_MALAYALAM;
tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED; tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED;
tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY; tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY;
tr->langopts.stress_rule = 13; // 1st syllable, unless 1st vowel is short and 2nd is long
} }
else else
if(name2 == L('k','n')) if(name2 == L('k','n'))

+ 34
- 17
src/translate.cpp View File

return(0); return(0);
if((c >= 0x2500) && (c < 0x25a0)) if((c >= 0x2500) && (c < 0x25a0))
return(1); // box drawing characters return(1); // box drawing characters
if((c >= 0xfff9) && (c <= 0xffff))
return(1); // unicode specials
// if(wcschr(chars_space,c)) // if(wcschr(chars_space,c))
// return(1); // return(1);
return(iswspace(c)); return(iswspace(c));
int wflags; int wflags;
int wmark; int wmark;
int was_unpronouncable = 0; int was_unpronouncable = 0;
int loopcount;
WORD_TAB wtab_null[8]; WORD_TAB wtab_null[8];


// translate these to get pronunciations of plural 's' suffix (different forms depending on // translate these to get pronunciations of plural 's' suffix (different forms depending on


found = 0; found = 0;
confirm_prefix = 1; confirm_prefix = 1;
for (int loopcount = 0; (loopcount < 50) && (end_type & SUFX_P); loopcount++)
for (loopcount = 0; (loopcount < 50) && (end_type & SUFX_P); loopcount++)
{ {
// Found a standard prefix, remove it and retranslate // Found a standard prefix, remove it and retranslate
// loopcount guards against an endless loop // loopcount guards against an endless loop
translator2 = SelectTranslator(new_language); translator2 = SelectTranslator(new_language);
strcpy(translator2_language,new_language); strcpy(translator2_language,new_language);


if(LoadDictionary(translator2, new_language, 0) != 0)
if(LoadDictionary(translator2, translator2->dictionary_name, 0) != 0)
{ {
SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table SelectPhonemeTable(voice->phoneme_tab_ix); // revert to original phoneme table
new_phoneme_tab = -1; new_phoneme_tab = -1;
pre_pause = 1; pre_pause = 1;
} }


plist2 = &ph_list2[n_ph_list2];
stress = 0; stress = 0;
next_stress = 1; next_stress = 1;
srcix = 0; srcix = 0;
tr->prev_dict_flags[0] = 0; tr->prev_dict_flags[0] = 0;
tr->prev_dict_flags[1] = 0; tr->prev_dict_flags[1] = 0;
} }
plist2 = &ph_list2[n_ph_list2];


if((option_capitals==1) && (word_flags & FLAG_FIRST_UPPER)) if((option_capitals==1) && (word_flags & FLAG_FIRST_UPPER))
{ {






static int EmbeddedCommand(unsigned int &source_index)
{//===================================================
static int EmbeddedCommand(unsigned int *source_index_out)
{//=======================================================
// An embedded command to change the pitch, volume, etc. // An embedded command to change the pitch, volume, etc.
// returns number of commands added to embedded_list // returns number of commands added to embedded_list


unsigned char c; unsigned char c;
char *p; char *p;
int cmd; int cmd;
int source_index = *source_index_out;


c = source[source_index]; c = source[source_index];
if(c == '+') if(c == '+')
} }


embedded_list[embedded_ix++] = cmd + sign + (value << 8); embedded_list[embedded_ix++] = cmd + sign + (value << 8);
*source_index_out = source_index;
return(1); return(1);
} // end of EmbeddedCommand } // end of EmbeddedCommand


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


letter_count++;

if(tr->letter_bits_offset > 0)
if(c != ' ')
{ {
if(((c < 0x250) && (prev_out >= tr->letter_bits_offset)) ||
((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250)))
letter_count++;

if(tr->letter_bits_offset > 0)
{ {
// Don't mix native and Latin characters in the same word
// Break into separate words
c = ' ';
space_inserted = 1;
word_flags |= FLAG_HYPHEN_AFTER;
next_word_flags |= FLAG_HYPHEN;
if(((c < 0x250) && (prev_out >= tr->letter_bits_offset)) ||
((c >= tr->letter_bits_offset) && (letter_count > 1) && (prev_out < 0x250)))
{
// Don't mix native and Latin characters in the same word
// Break into separate words
if(IsAlpha(prev_out))
{
c = ' ';
space_inserted = 1;
word_flags |= FLAG_HYPHEN_AFTER;
next_word_flags |= FLAG_HYPHEN;
}
}
} }
} }


{ {
int next2_in; int next2_in;
utf8_in(&next2_in,&source[source_index + next_in_nbytes]); utf8_in(&next2_in,&source[source_index + next_in_nbytes]);

if((tr->translator_name == L('n','l')) && (letter_count==2) && (c == 'j') && (prev_in == 'I'))
{
// Dutch words may capitalise initial IJ, don't split
}
else
if(IsAlpha(next2_in)) if(IsAlpha(next2_in))
{ {
// changing from upper to lower case, start new word at the last uppercase, if 3 or more letters // changing from upper to lower case, start new word at the last uppercase, if 3 or more letters

+ 11
- 9
src/voices.cpp View File



#define N_VOICE_VARIANTS 12 #define N_VOICE_VARIANTS 12
const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0}; const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0};
const char variants_male[N_VOICE_VARIANTS] = {1,2,3,4,5,6,7,0};
const char variants_male[N_VOICE_VARIANTS] = {1,2,3,4,5,6,0};
const char variants_female[N_VOICE_VARIANTS] = {11,12,13,14,0}; const char variants_female[N_VOICE_VARIANTS] = {11,12,13,14,0};
const char *variant_lists[3] = {variants_either, variants_male, variants_female}; const char *variant_lists[3] = {variants_either, variants_male, variants_female};


height2 = tone_pts[pt+1]; height2 = tone_pts[pt+1];
if((freq2 - freq1) > 0) if((freq2 - freq1) > 0)
{ {
rate = double(height2-height1)/(freq2-freq1);
rate = (double)(height2-height1)/(freq2-freq1);


for(ix=freq1; ix<freq2; ix++) for(ix=freq1; ix<freq2; ix++)
{ {
y = height1 + int(rate * (ix-freq1));
y = height1 + (int)(rate * (ix-freq1));
if(y > 255) if(y > 255)
y = 255; y = 255;
voice->tone_adjust[ix] = y; voice->tone_adjust[ix] = y;
return; return;


if(freq >= 0) if(freq >= 0)
voice->freq[formant] = int(freq * 2.56001);
voice->freq[formant] = (int)(freq * 2.56001);
if(height >= 0) if(height >= 0)
voice->height[formant] = int(height * 2.56001);
voice->height[formant] = (int)(height * 2.56001);
if(width >= 0) if(width >= 0)
voice->width[formant] = int(width * 2.56001);
voice->width[formant] = (int)(width * 2.56001);
voice->freqadd[formant] = freqadd; voice->freqadd[formant] = freqadd;
} }


n = sscanf(p,"%d %d",&pitch1,&pitch2); n = sscanf(p,"%d %d",&pitch1,&pitch2);
voice->pitch_base = (pitch1 - 9) << 12; voice->pitch_base = (pitch1 - 9) << 12;
voice->pitch_range = (pitch2 - pitch1) * 108; voice->pitch_range = (pitch2 - pitch1) * 108;
factor = double(pitch1 - 82)/82;
factor = (double)(pitch1 - 82)/82;
voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch
} }
break; break;
if((ix = SelectPhonemeTableName(phonemes_name)) < 0) if((ix = SelectPhonemeTableName(phonemes_name)) < 0)
{ {
fprintf(stderr,"Unknown phoneme table: '%s'\n",phonemes_name); fprintf(stderr,"Unknown phoneme table: '%s'\n",phonemes_name);
ix = 0;
} }
voice->phoneme_tab_ix = ix; voice->phoneme_tab_ix = ix;
new_translator->phoneme_tab_ix = ix; new_translator->phoneme_tab_ix = ix;
vp = voices[ix]; vp = voices[ix];
// is the main voice the required gender? // is the main voice the required gender?
skip=0; skip=0;

if((gender != 0) && (vp->gender != gender)) if((gender != 0) && (vp->gender != gender))
{ {
skip=1; skip=1;
{ {
skip=1; skip=1;
} }

if(skip==0) if(skip==0)
{ {
voices2[ix2++] = vp; voices2[ix2++] = vp;


void FreeVoiceList() void FreeVoiceList()
{//================= {//=================
for(int ix=0; ix<n_voices_list; ix++)
int ix;
for(ix=0; ix<n_voices_list; ix++)
{ {
if(voices_list[ix] != NULL) if(voices_list[ix] != NULL)
{ {

+ 14
- 14
src/wavegen.cpp View File

for(ix=0; ix <= wvoice->n_harmonic_peaks; ix++) for(ix=0; ix <= wvoice->n_harmonic_peaks; ix++)
{ {
peaks[ix].freq1 += peaks[ix].freq_inc; peaks[ix].freq1 += peaks[ix].freq_inc;
peaks[ix].freq = int(peaks[ix].freq1);
peaks[ix].freq = (int)peaks[ix].freq1;
peaks[ix].height1 += peaks[ix].height_inc; peaks[ix].height1 += peaks[ix].height_inc;
if((peaks[ix].height = int(peaks[ix].height1)) < 0)
if((peaks[ix].height = (int)peaks[ix].height1) < 0)
peaks[ix].height = 0; peaks[ix].height = 0;
peaks[ix].left1 += peaks[ix].left_inc; peaks[ix].left1 += peaks[ix].left_inc;
peaks[ix].left = int(peaks[ix].left1);
peaks[ix].left = (int)peaks[ix].left1;
if(ix < 3) if(ix < 3)
{ {
peaks[ix].right1 += peaks[ix].right_inc; peaks[ix].right1 += peaks[ix].right_inc;
peaks[ix].right = int(peaks[ix].right1);
peaks[ix].right = (int)peaks[ix].right1;
} }
else else
{ {
if(ix < 7) if(ix < 7)
{ {
peaks[ix].freq1 += peaks[ix].freq_inc; peaks[ix].freq1 += peaks[ix].freq_inc;
peaks[ix].freq = int(peaks[ix].freq1);
peaks[ix].freq = (int)peaks[ix].freq1;
} }
peaks[ix].height1 += peaks[ix].height_inc; peaks[ix].height1 += peaks[ix].height_inc;
if((peaks[ix].height = int(peaks[ix].height1)) < 0)
if((peaks[ix].height = (int)peaks[ix].height1) < 0)
peaks[ix].height = 0; peaks[ix].height = 0;
} }


if((amp = wvoice->breath[ix]) != 0) if((amp = wvoice->breath[ix]) != 0)
{ {
amp *= (peaks[ix].height >> 14); amp *= (peaks[ix].height >> 14);
value += int(resonator(&rbreath[ix],noise) * amp);
value += (int)resonator(&rbreath[ix],noise) * amp;
} }
} }
#endif #endif
for(pk=wvoice->n_harmonic_peaks+1; pk<N_PEAKS; pk++) for(pk=wvoice->n_harmonic_peaks+1; pk<N_PEAKS; pk++)
{ {
// find the nearest harmonic for HF peaks where we don't use shape // find the nearest harmonic for HF peaks where we don't use shape
peak_harmonic[pk] = peaks[pk].freq / (wdata.pitch*16);
peak_harmonic[pk] = ((peaks[pk].freq / (wdata.pitch*8)) + 1) / 2;
} }


// adjust amplitude to compensate for fewer harmonics at higher pitch // adjust amplitude to compensate for fewer harmonics at higher pitch


for(h=1; h<=h_switch_sign; h++) for(h=1; h<=h_switch_sign; h++)
{ {
total += (int(sin_tab[theta >> 5]) * harmspect[h]);
total += ((int)sin_tab[theta >> 5] * harmspect[h]);
theta += waveph; theta += waveph;
} }
while(h<=maxh) while(h<=maxh)
{ {
total -= (int(sin_tab[theta >> 5]) * harmspect[h]);
total -= ((int)sin_tab[theta >> 5] * harmspect[h]);
theta += waveph; theta += waveph;
h++; h++;
} }
if(ix < 7) if(ix < 7)
{ {
peaks[ix].freq1 = (fr1->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8; peaks[ix].freq1 = (fr1->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8;
peaks[ix].freq = int(peaks[ix].freq1);
peaks[ix].freq = (int)peaks[ix].freq1;
next = (fr2->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8; next = (fr2->ffreq[ix] * v->freq[ix] + v->freqadd[ix]*256) << 8;
peaks[ix].freq_inc = ((next - peaks[ix].freq1) * (STEPSIZE/4)) / length4; // lower headroom for fixed point math peaks[ix].freq_inc = ((next - peaks[ix].freq1) * (STEPSIZE/4)) / length4; // lower headroom for fixed point math
} }


peaks[ix].height1 = (fr1->fheight[ix] * v->height[ix]) << 6; peaks[ix].height1 = (fr1->fheight[ix] * v->height[ix]) << 6;
peaks[ix].height = int(peaks[ix].height1);
peaks[ix].height = (int)peaks[ix].height1;
next = (fr2->fheight[ix] * v->height[ix]) << 6; next = (fr2->fheight[ix] * v->height[ix]) << 6;
peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2; peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2;


if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks)) if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks))
{ {
peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10; peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10;
peaks[ix].left = int(peaks[ix].left1);
peaks[ix].left = (int)peaks[ix].left1;
next = (fr2->fwidth[ix] * v->width[ix]) << 10; next = (fr2->fwidth[ix] * v->width[ix]) << 10;
peaks[ix].left_inc = ((next - peaks[ix].left1) * STEPSIZE) / length2; peaks[ix].left_inc = ((next - peaks[ix].left1) * STEPSIZE) / length2;


if(ix < 3) if(ix < 3)
{ {
peaks[ix].right1 = (fr1->fright[ix] * v->width[ix]) << 10; peaks[ix].right1 = (fr1->fright[ix] * v->width[ix]) << 10;
peaks[ix].right = int(peaks[ix].right1);
peaks[ix].right = (int)peaks[ix].right1;
next = (fr2->fright[ix] * v->width[ix]) << 10; next = (fr2->fright[ix] * v->width[ix]) << 10;
peaks[ix].right_inc = ((next - peaks[ix].right1) * STEPSIZE) / length2; peaks[ix].right_inc = ((next - peaks[ix].right1) * STEPSIZE) / length2;
} }

Loading…
Cancel
Save