From 10bd23b3b455b4fa1d429ba461c2384cb9d92b15 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 23 Sep 2013 14:20:26 +0000 Subject: [PATCH] [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 --- dictsource/af_list | 81 ++++- dictsource/af_rules | 27 +- dictsource/de_list | 4 +- dictsource/de_rules | 2 +- dictsource/dict_phonemes | 52 ++- dictsource/en_list | 51 ++- dictsource/en_rules | 37 +- dictsource/ga_list | 42 ++- dictsource/ga_rules | 98 +++++- dictsource/grc_list | 8 +- dictsource/grc_rules | 135 +++---- dictsource/hu_list | 4 +- dictsource/hu_rules | 743 ++++++++++++++++++++++++++++++++------- dictsource/nl_list | 32 +- dictsource/nl_rules | 47 ++- dictsource/sl_list | 2 +- dictsource/sw_list | 15 +- dictsource/sw_rules | 31 +- dictsource/ta_list | 7 +- dictsource/ta_rules | 135 ++++++- phsource/compile_report | 57 ++- phsource/m/mu | Bin 1328 -> 1614 bytes phsource/ph_irish | 2 +- phsource/ph_swahili | 218 +++++++++++- phsource/phonemes | 9 + src/compiledata.cpp | 11 + src/compiledict.cpp | 15 +- src/dictionary.cpp | 39 +- src/espeak.cpp | 1 + src/event.cpp | 116 +++--- src/fifo.cpp | 62 ++-- src/intonation.cpp | 32 +- src/numbers.cpp | 73 ++-- src/readclause.cpp | 56 +-- src/speak.cpp | 1 + src/speak_lib.cpp | 5 +- src/speak_lib.h | 9 +- src/spectdisplay.cpp | 18 +- src/speech.h | 2 +- src/synthdata.cpp | 6 +- src/synthesize.cpp | 20 +- src/tr_languages.cpp | 20 +- src/translate.cpp | 51 ++- src/voices.cpp | 20 +- src/wavegen.cpp | 28 +- 45 files changed, 1847 insertions(+), 577 deletions(-) diff --git a/dictsource/af_list b/dictsource/af_list index e8469c67..7351f49d 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -227,6 +227,7 @@ bainskloof beInsklo@f bangladesj baNglad'ES barcelona bars@l'o@na barkly _^_EN +batavië bat'A:vi@ bellevue b&lvju: bermuda $2 bethlehem bEt_liEm @@ -260,7 +261,7 @@ denemarke de@n@mark@ djakarta dZak'arta doebaai $2 duitswes dYytsv'Es -eastgate _^_EN + eastgate _^_EN efese e@f@s@ ermelo &rm@lo@ florida flOrida @@ -344,7 +345,6 @@ rhône _^_FR richardsbaai ritS@dsb'AI riviersonderend r@fi:rsOn@r_'Ent robertson _^_EN -saldanha sald'ana salvador salvadO:r santiago santi;'A:gu secunda s@kunda @@ -387,8 +387,10 @@ zulu zulu // Kwazulu-Natal abdullah abd'ula Abiméleg abin'e@lEx2 abraham A:bram +achilles ak'il@s ackerman ak@rman adam adam +adonis ad'o@n@s adriaan A:drijan adrie A:dri agnes _^_EN @@ -628,6 +630,7 @@ lucretia lukr'i:Sja lucas lukas lukas lukas lulu lulu +lydia lIdia mabalêl mabal'&l mabel _^_EN macgill m@gjil @@ -693,6 +696,7 @@ oedipus o@dipWs ogden _^_EN olga Olga ontong OntON +pamela _^_EN patrick _^_EN petoors p@to@rs phillips fIl@ps @@ -984,6 +988,67 @@ dis $u (nie waar nie) n,i||v,A:r||n'i (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 @@ -1029,6 +1094,7 @@ aversie av'&rsi babelaas bab@lA:s barrikade $3 +bedewete be@d@ve@t@ beide beId@ bekaf b&kaf belangriker b@laNr@k,Ir @@ -1039,6 +1105,7 @@ bestes bEst@s beta be@ta $only betlehemster bEtli:Emst&r bewe be@v@ +bewebeen be@v@be@n bewend be@v@nt bewering b@ve@rIN biopsie bi'Opsi @@ -1076,6 +1143,7 @@ crèche krES dadelik dA:d@lIk dagorde dax2_Ord@ dagster dax2st&r +dagure dax2_yr@ daisy deIzi darem dar@m dawidster dA:v@tst&r @@ -1150,6 +1218,7 @@ genesis x2e@n@s@s //gesamentlik x2@sA:m@ntl@k gentleman _^_EN germolene dZI:m@l'i:n +geseling x2e@s@l@N gevallene x2@fal@n@ gewellys x2e@v@lleIs gladiator x2ladi'A:tOr @@ -1159,6 +1228,7 @@ gooi x2OI gomorra x2@mOra graffiti graf'iti gratis x2r'A:t@s +groepeer $2 grondys x2rO:nt_eIs hallo h'Il,@U @@ -1233,6 +1303,7 @@ kritiek krIt'ik kulture $2 kunsmatige kWnsm'A:t@x2@ kwansuis $2 +kweekwal kwe@kval lasagne las'anj@ legaat l@x2A:t @@ -1251,6 +1322,7 @@ macaroni makar'o@ni macho matS@U madame mad'A:m madamoiselle _^_FR +manalleen man_ale@n maskering mask'e@r@N $only massaal $2 massale $2 @@ -1287,6 +1359,8 @@ namate $2 negeer n@x2e@r negering n@x2e@r@N negester ne@x2@st&r +nekaar n&k_A:r +nekare n&k_A:r@ netjies nE:icis netjiese nEicis@ netsowel nEtso@v&l @@ -1493,6 +1567,7 @@ verregaande f&r@x2'A:nd@ verreweg f&r@v&x2 verse f&:rs@ vers f&:rs +versene f&rs@n@ versindaba f&:rs_@ndA:ba verste f&rst@ verte f&rt@ @@ -1506,6 +1581,7 @@ volspoed $1 volswanger $1 volte $1 voluit fOl_Yyt + voorbene fo@rbe@n@ voorgee fo@rx2e@ voorkeer $1 voorkom $2 $only @@ -1530,6 +1606,7 @@ watwou vatv@U weergalm $2 weerklink $2 weervoorspelling $1 +wegeb v&x2_Eb weggewens v&x2@v'E:ns welaf v&l_af weleer v&l_'e@r diff --git a/dictsource/af_rules b/dictsource/af_rules index 7864d4c0..eeaf3f8d 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -1,4 +1,4 @@ -//maintainer: Willem van der Walt +//maintainer: Willem van der Walt // email: wvdwalt@csir.co.za // tel: +27 12 8413996 // Meraka Institute, CSIR @@ -851,6 +851,7 @@ karoo) d d // but Karoodorp/Karoodoring/Karoodistrik, etc. du (pliC du // duplikaat/dupliseer duvet d%uveI: // duvet/-s/duvetoortreksel, etc. + @) d (yster t_ // fix d sound, pause: bind-/brand-/vuurherd-/smeedyster... .group de de (flasi d%e@ // fix e sound: deflasie(beleid)/deflasionêr/deflasionisties @@ -952,6 +953,7 @@ blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese _eend) e (CA @ // fix e sound: eendedam/-dans/-kuil/-pastei... _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 pous) e (C @ // fix e sound: pousebrood/-klok/-tyd, etc. _siel) e (@ @ // fix e sound: sielesmart/-troos/-wroeging... @@ -1425,7 +1427,7 @@ nl) eer e@r // restore default stress: kernleerplan and compounds rl) eer e@r // move default stress: agterleer/burgerleer/kelderleer/solderleer 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 ks) eer 'e@r // annekseer/indekseer/lakseer/takseer and their compounds ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. @@ -1641,7 +1643,7 @@ gas (ig x2A:s // long a and no pause: gasig/-e/-heid gauteng x2%aUtEN //Gauteng and compounds _) gh g - gh (_ k + gh (_ x2 // Tulbagh and similar @) gheid x2eIt // traagheid/leegheid/droogheid/stugheid ghi (ta g%i // move default stress: ghitaar and compounds/ghitare ght _^_EN @@ -1716,6 +1718,7 @@ ge x2@ C) ge (_ g@ _) 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 _) geler x2e@l@r // stress and 1st e sound: geler/gelerig gemel (d x2@m&l // fix e sound: bo-/bowe-/laas-/meergemeld/-e @@ -2012,6 +2015,7 @@ _) ig (lo ig // fix i and g sounds: iglo(e) @) ika (_ =%ik%a // logika/dinamika &) ike (_S3 @k@ + &C) ikes (_ @k@s // fix penultimate e sound: (on)belangrikes C) iking @k@N imbe (s @mb@ // fix stress: imbesiel/-e _) immer (@P5 'Im@r_ // immerafhanklik/immeringesteld, etc. @@ -2090,7 +2094,7 @@ w) it (A It // fix i sound: eiwitafskeiding/witagtig/kwiteer/grondserwituut itali (a %it%al%i // move default stress: Italianer/-s 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) iveer if'e@r // always takes stress C) iver (A if'e@r // always takes stress: aktiverende/motivering @@ -2341,6 +2345,7 @@ .group ka @A) kaa (t k'A: // advokaatstoga/fabrikaat/sertifikaatjie/triplikaat and many similar @) 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 kabel kA:b@l //stress and e sound kabeljou kab@lj'@U //kabeljou and compounds @@ -2733,6 +2738,7 @@ manier m@ni:r //manier and compounds manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer 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 manji (fie m%anj@ // fix stress and i sound: manjifiek/-e man (moe m%an // move default stress: manmoedig/-e/-heid @@ -2964,7 +2970,6 @@ ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees e) n (goeC n // split ng: lakengoed/-goeters and similar - n (_g N ng (ent Nx2 // kontingent/tangent and derivatives CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste @) nges (_ N@s // banges/langes/dinges @@ -3268,6 +3273,7 @@ @) 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. _) 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 oux 'u //in surnames like tredoux, leroux etc. _) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig @@ -3609,6 +3615,7 @@ 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 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 pal (miet p%al // move default stress: palmiet and compounds panado p@nA:d@U: // fix stress and vowel sounds: panado/-'s @@ -3721,6 +3728,7 @@ per (so p@r // persoon/persone pers (om p&rs_ // fix e sound, pause: persombudsman/-ne 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 pervert p@rf&rt // fix stress and e sounds: pervert/-e and compounds runder) pes pEs // fix e sound: runderpes and compounds @@ -3991,6 +3999,7 @@ @@@) s (_S1 s // to correctly handle plural s i) s (_ s // exceptions to rule: @@@) s (_S1 s 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 o) s (_ s // exceptions to rule: @@@) s (_S1 s u) s (_ s // exceptions to rule: @@@) s (_S1 s @@ -4115,6 +4124,7 @@ 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 (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 @) sering s'e@r@N // analisering/kategorisering @) ses (_ s@s // fix 2 slb. words ending in ses @@ -4211,6 +4221,7 @@ spesi (a sp%ES%i // spesiaal/spesiale/spesialis spesialis (A spESialis spesialis spESal'Is + spesialis (een spESal'Is_ // fix stress, paus: spesialiseenheid/-eenhede spesi (f sp%Es%I // spesifiek/spesifiseer spine (t sp%inE // move default stress: spinet/-te and compounds _) sub (a sWb_ // subagent/subartikel/subatomies, etc. @@ -4442,6 +4453,7 @@ struktu (rerAn str%Wkt%y // fix stress: (her)strukturering(skoste)/strukturerende, etc. studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc. 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 @@ -4988,6 +5000,7 @@ verf (@ f&rf // verfkwas/-voorraad/-emmer and similar _) verf (lou f@rf // verflou/-ing _) 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 f&rf _) vergesog f'&:r;x2@sOx2 @@ -5088,6 +5101,7 @@ nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal Cod) w v // fix w sound: godwelgevallig/godweet/godwees k) w w + werk) week ve@k // fix last w sound: (vyf-/sesdag)werkweek k) w (erC v // fix w sound: wrakwerf/-werwe volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc. k) w (And v // fix w sound: buikwand/rukwinde @@ -5133,7 +5147,6 @@ yd) w v // fix w sound: sluittydwerk/(wa)wydwakker C) w (eerder v // fix w sound: insek-/muskiet-/reuk-/sweetweerder 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 wed (ren vEt // fix e and d sounds: (perde)wedren and other compounds @C) w (eë v // fix w sound: duikweë/staatsweë/uitweë, etc. @@ -5246,11 +5259,13 @@ 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 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 (spreken v%&l // move default stress: welsprekend/-e @) wendig v'End@x2 // inwendig/noodwendig/uitwendig &) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene 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 ge) were ve@r@ // fix e sound in compounds ending in gewere werk (stelli v%&rk // fix stress: bewerkstellig and derivatives diff --git a/dictsource/de_list b/dictsource/de_list index 503937e2..247ce3b6 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -768,6 +768,6 @@ Neumexiko $2 Neuseeland $2 Rwanda rU'andA: Sri sr,i: -Tom tOm -Tim tIm +Tom tOm $only +Tim tIm $only diff --git a/dictsource/de_rules b/dictsource/de_rules index dbe9b8ed..9bd42c2b 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -315,7 +315,7 @@ _) deme de:mE demo (g de:mo: demo (k de:mo: - design _^_EN + design (_ d%IzaIn dge (_ _^_EN _) dia d,i:a _) diver d%i:vEr diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 86722dc8..867acb05 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -1,7 +1,7 @@ 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 A: aI AI aU A~ E e: e@ @@ -124,7 +124,7 @@ r R R3 s S t T tS v w x z Z -Dictionary de_dict 2013-04-27 +Dictionary de_dict 2013-09-22 3 @ @- a A A: aI aU A~ E E2 E: e: EI i I @@ -148,7 +148,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-06-11 +Dictionary en_dict 2013-09-08 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -236,7 +236,7 @@ p2 r r2 s S t t2 t3 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# aU aU# e E E# e: eI i @@ -250,7 +250,7 @@ t t[ tS v w x X z Z -Dictionary grc_dict 2008-03-03 +Dictionary grc_dict 2013-07-25 a aI aU e E EI eU EU i o O oI OI OU u y @@ -288,7 +288,7 @@ Q q r r. s S s. t 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: o o: u u: Y y y: Y: @@ -513,7 +513,7 @@ r r. s S s. t t# t. t.# v w x z -Dictionary nl_dict 2013-06-11 +Dictionary nl_dict 2013-09-23 8 @ @- a A a: A~ e E e# E2 e: EI eU i I @@ -643,7 +643,7 @@ s S t t; tS ts v w x z Z -Dictionary sl_dict 2013-06-10 +Dictionary sl_dict 2013-07-02 @ @- a e E E# i o O o+ u y @@ -679,10 +679,10 @@ k l m n N p R s 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 j J k l m n N n^ @@ -690,7 +690,7 @@ p Q R s S t T tS v w x z -Dictionary ta_dict 2013-05-18 +Dictionary ta_dict 2013-09-23 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -779,3 +779,31 @@ oi ong ou u ui yu b c d f g h j k l m n N p r s t tS v w z + + +Dictionary 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 diff --git a/dictsource/en_list b/dictsource/en_list index 39afce2d..d95786b6 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -16,7 +16,7 @@ // ?7 Scottish // ?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) // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] // $alt4 separate 'h', not 'th' @@ -422,6 +422,8 @@ _zh tS'aIni:z ֹ o ֻ u ּ d'agES +U+5c1 SInd0t_ +U+5c2 sInd0t_ // phonetic modifiers @@ -520,6 +522,7 @@ _90o n'aInti@ // ABBREVIATIONS //************** +aaa $abbrev $allcaps abc $abbrev ac $abbrev adf $abbrev @@ -717,6 +720,7 @@ adware 'adw,e@ adze adz aegis i:dZIs aerate e@r'eIt +aerogel e@roUdZEl aether i:T@ afar a#fA@ affirmation af3m'eIS@n @@ -835,6 +839,7 @@ apropos apr@p'oU appal a#pO:l apparatus ap@r'eIt@s ?3 apparatus ap@r'at@s +appellate a#pEl@t apprentice a#prEnt2Is approximate a#pr0ksIm@t $only approximate a#pr0ksImeIt $verb @@ -849,6 +854,7 @@ arcane $2 arch A@tS arches A@tSI#z archimedes A@kIm'i:di:z +archiso A@tS'aIsoU archway $1 arena a#ri:n@ argon A@g0n @@ -979,6 +985,7 @@ bleh blEh blockade bl0k'eId blouse blaUz bluest blu:@st +bluish blu:IS blurry bl3:rI ?5 blurry blVRrI boing bOIN @@ -1142,6 +1149,7 @@ cholesterol k@lEst@r0l chorizo tSOr'i:zoU christmas krIsm@s chromosome kroUm@soUm +chrysalis krIs@lIs ciao tSaU cigar sI2gA@ cigarette sIg@'rEt @@ -1159,7 +1167,8 @@ cleanse klEnz cleanser klEnz3 ?!3 clerk klA@k cliche kli:SeI -?3 cliche kli:S'eI +cliched kli:S'eId +?3 cliche kli:S'eI clientele $2 clitoris klIt3rI#s close kloUs $only @@ -1248,6 +1257,7 @@ consort $verb constitute $1 construct $1 $onlys construct $verb +consummate $1 contemplative $2 content $1 $onlys content $verb $past @@ -1272,7 +1282,7 @@ convict $2 $verb convolute k0nv@l'u:t coop ku:p cooper ku:p3 -coordinate koU'O:dI2neIt $verb +coordinate koU'O@dI2neIt $verb copier k0pi@3 copilot koUpaIl@t coral k0r@L @@ -1342,7 +1352,7 @@ declaration dEkl@'reIS@n decolletage deIk0lt'A:Z decor deIkO@ ?3 decor deIk'O@ -decorative dEkr@tIv +decorative dEk@r@tIv decoy di:kOI decry dI2kraI defect di:fEkt @@ -1395,6 +1405,7 @@ diameter daI'amI2t3 diaper daIp3 diaphanous daI'af@n@s diaspora daI'asp@r@ +dieback daIbak diehard daIhA@d dielectric daI@l'EktrIk diesel di:z@L @@ -1547,6 +1558,7 @@ evenings i:vnINz evit EvI2t // inevitable exalt Egz'0lt execute EksI2kju:t // not $2 +executable $3 exile $1 exodus Eks@d@s expedite Eksp@daIt // expedited @@ -1815,6 +1827,7 @@ iconbar aIk0nbA@ idly aIdlI ignoramus Igno@r'eIm@s illiterate $alt2 +imagery ImIdZri imagine I2madZI2n impedance Imp'i:d@ns imperative Imp'Er@tIv @@ -1894,6 +1907,7 @@ iris aIrIs iron aI3n irony aIr@nI isosceles aIs'0s@li:z +?3 issuance ISu:@ns ja jA: jagged dZagI#d @@ -1931,6 +1945,7 @@ kosher koUS3 kowtow kaUt2aU la ,la $only +la $abbrev $allcaps (la vie) la||v'i: laboratory la#b'0r@trI ?3 laboratory labr@tO:ri @@ -2022,6 +2037,7 @@ lunatic lu:n@tIk lunchroom lVntS||ru:m luxury lVkS3ri lychee li:tSi: +lyin laIIn macabre m@kA:br@ macadamia mak@d'eImi@ @@ -2376,6 +2392,7 @@ philistine fIlI2staIn phoenix fi:nIks photographer f@t'0gr@f@ photography f@t'0gr@fi +photolysis foUt'0l@sIs piano pI'anoU pecan pI#kA:n piecemeal p'i:sm,i:l @@ -2585,6 +2602,7 @@ reining reInIN reindeer reIndi@3 rekey r,i:k'i: relative rEl@tIv +relay ri:leI relic rElIk relish rElI2S rely rI2laI @@ -2706,9 +2724,12 @@ seabed si:bEd sealion si:laI@n seance seI0ns secant si:k@nt -seconded sEk'0ndI#d +seconded s@k0ndI#d +secondment s@k0ndm@nt secrecy si:kr@si secret si:kr@t +secrete sI2kri:t +secretion sI2kri:S@n secretive si:kr@tIv secretary sEkr@trI sedan sI2dan @@ -2717,6 +2738,7 @@ sega seIg@ segue sEgweI separate sEp@-r@t separate sEp3reIt $verb +semaphored $alt1 semen si:m@n ?3 semi sEmaI semibreve $1 @@ -2739,6 +2761,7 @@ severely sI2v'i@3lI $verbf sewn soUn sex sEks // sexism several sEvr@L +severest s@vi@r@st shallow SaloU shampoo $2 shepherd SEp@d @@ -2772,6 +2795,7 @@ singly sINglI $verbf sincerest sIns'i@r@st sinew sInju: sinus saIn@s +siphon $alt2 sir s,3: $only ?5 sir s,VR $only site saIt // for sited @@ -2806,7 +2830,6 @@ souvenir su:v@n'i@3 sorbet sO@beI soyabean sOI@bi:n spaghetti spa#gEti -spasm spas@m specific sp@sIfIk specimen spEsI2m@n spraycan spreIkan @@ -2980,6 +3003,7 @@ trophy troUfi troubadour tru:b@do@ truely tru:lI $verbf truest tru:@st +tryin traIIn tryst trIst tudor tju:d3 turntable $alt1 @@ -3003,6 +3027,7 @@ unable Vn'eIb@L unaware Vn@w'e@ uncle VNk@L undeny VndIn'aI +undercarriage $1 underground $1 $noun underling $1 underlings Vnd3lINz @@ -3082,7 +3107,10 @@ viola vaI'oUl@ violin $2 viral vaI3r@L virginal $alt1 +(vis à vis) vi:za#v'i: +(vis a vis) vi:za#v'i: visa vi:z@ +vitalis vaIt'alI#s vitamin vIt@mI#n ?3 vitamin vaIt@mI#n vitriol vItri:@l @@ -3231,6 +3259,7 @@ Alamo al@moU Albuquerque alb@k3:ki Algiers $2 Altura O:lt'U@r@ +?3 Amazon ama#z0n Amman a#m'A:n Andes andi:z Angeles andZ@li:s @@ -3273,6 +3302,7 @@ Budapest bu:d@p'Est Buenos bweIn0s Burundi bUr'Undi Brazil $alt3 +Brunei bru:n'aI Cadiz $alt3 Cairo kaIroU Calcutta $2 @@ -3426,6 +3456,7 @@ Nepal nEp'O:l Nevada nI2vA:d@ ?3 Nevada nI2vad@ Newfoundland nju:f@ndla#nd +Nineveh nInIv@ Noumea nu:m'eI@ Oahu oU'A:hu: Oklahoma oUkla#h'oUm@ @@ -3445,6 +3476,7 @@ Persia p3:Z@ Peru p@ru: Philippine fIlI2pi:n Philipine fIlI2pi:n // misspell +Phnom pn0m Polish poUlIS $capital $only Portugal po@tS@g@L Portuguese po@tS@g'i:z @@ -3508,6 +3540,7 @@ Ural ju:@r@L Utah ju:t2A: ?3 Utah ju:t2O Utrecht ju:trECt +Valencia $alt3 Vancouver $2 Vegas veIg@s Vermont $2 @@ -3563,7 +3596,7 @@ Angela andZ@l@ Angelika $2 Anita $alt3 Annamaria an@ma#r'i:@ -Anthony ant@ni +?!3 Anthony ant@ni Anton ant0n Aoife i:f@ Aoiffe i:f@ @@ -3616,9 +3649,11 @@ Connell k0n@l Connie k0ni Connor k0n3 Conrad $1 +Corinne k@ri:n Crichton kraIt@n Curtis k3:tI#s ?5 Curtis kVRtI#s +Cyrus saIr@s Dana deIn@ Daphne dafni Darryl dar@L @@ -3775,6 +3810,7 @@ Michele mI2SEl Michelle mI2SEl Miguel mi:Q'El Mildred mIldrI2d +Mimi mi:mi Mindy mIndi Minerva mI2n3:v@ Mirabel mIr@bEl @@ -3906,6 +3942,7 @@ Emory Em3ri Ferguson f3:g@s@n Fleming flEmIN Folger foUldZ3 +Gallagher gal@g3 Genghis dZENgIs Gibson gIbs@n Guinness gInIs diff --git a/dictsource/en_rules b/dictsource/en_rules index c3cdec4c..d470272e 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -600,7 +600,7 @@ b) al (d+ O:l b) al (k O:l f) al (k 0l - alkali ak@laI + alkali alk@laI b) all (K O:l &b) all (er_ O:l _c) al (e al @@ -1093,7 +1093,7 @@ _) as (trolog a#s _) as (trono a#s &) as (ty_ a#s - ass (ym as + _) as (ym eIs purch) as (e Is ph) ase (_ eIz r) ase (_ eIz @@ -1330,6 +1330,7 @@ be (see bI2 be (sie bI2 _) be (sto bI2 + _) bestse (ll bEsts'E _) beta b,i:t@ ?3 _) beta b,eIt@ _) be (th bE @@ -1514,7 +1515,7 @@ _ta) ch k ta) ch tS sta) ch S - e) ch (o k + _e) ch (o k bron) ch k ch (ute S ch (ure S @@ -1527,6 +1528,8 @@ _) co (con k,oU _) co (eCP2 k,oU _) coe (l si: + _) co (g k0 + _) cogno k0gn@ co (hab k%oU co (llab k@ co (llap k@ @@ -1744,6 +1747,7 @@ _) deni (a dI2naI deni (tri d%i:naI _) de (no dI2 + _) de (nu dI2 _) de (o d%i: _) de (p@ dI2 de (per d%i: @@ -1757,6 +1761,7 @@ de (reg d%i: de (rel dE de (riC dI2 + _) de (rAX dE de (rog dI2 de (rACatio dE _) des (@ dI2s @@ -2260,11 +2265,14 @@ &) ency (_ @ns%i ency (cli %EnsI k) en (d_ En + t) en (d_ En en (dA_ 'En _) en (d En _) en (da %En eg) en (d @n en (dea %En + en (der En + cal) en (der @n en (dous En _) endo EndoU @) en (do_ 'En @@ -2307,6 +2315,7 @@ en (ter En en (tert ,En enthra (l %EnTrO: + en (tia_+ 'En &) entice %EntaIs _) en (ti %En _c) enti EntI @@ -2407,6 +2416,7 @@ mb) er (_ 3 lin) er (_S1 3 lin) ers (_S2 3z + nc) er (_S1 3 er 3: er (A 3:r _) er (A I2r @@ -2560,7 +2570,8 @@ _) es (pl Es _) es (tab I2s es (tate I2s - @) esc (enC 'Es + @) esc (ent_ 'Es + @) esc (ence_ 'Es pr) es (ent Ez es (iA i:z es (ian_ 'i:z @@ -3024,6 +3035,7 @@ &) ia (_N =i|@ &) ia (_ =i@ @@) ia (_ =i@ + @) iae (_ =Ii: @) ian (cy I|@n l) iais I|eIz p) ia (no Ia @@ -3307,6 +3319,7 @@ _) in (flo In _) in (flu In _) in (fo_ In + _) info (t ,InfoU _) infra (P5 ,Infr@ _) infra (c %Infra in (ga_ 'IN @@ -3604,6 +3617,7 @@ _sp) it (e aIt cr) it (e_ It wr) ite aIt + it (ee_ aIt _s) it (e aIt _t) it (an aIt x) ite (_ aIt @@ -3994,6 +4008,7 @@ br) oa (d O: oar o@ oar (_ o@ + _h) o 0 cr) o (at oU X) o (ba oU t) o (bacc @ @@ -4443,7 +4458,7 @@ or (ig 0r or (ix 'O@r &) ored (_ 3d - h) ored (_S1 d + &) ored (_$w_alt1S1 d _f) ore (C O@ f) ore (clo %o@ f) ore (st 0rI @@ -4537,6 +4552,7 @@ hyp) ost 0st osure 'oUZ3 X) os (y oUz + @) os (y_ @s .group ou ou aU @@ -5005,6 +5021,7 @@ rrhea r'i@ rrhoea r'i@ _) ru (bL01 ru: + _) rule (@ ru:l _) run (a rVn _) run (o rVn &ant) ry (_S2 r%I @@ -5214,6 +5231,7 @@ A) sh (A_ =S &) ship (_S4 SIp &) ships (_S5 SIps + &) shipe (_ SIp &) shire (_S5 S3 //?3 &) shire (_S5 Si@ sia (_ =zi@ @@ -5238,6 +5256,7 @@ u) sin (_ z@n A) s (itiv z _) size (C@ saIz + s (mK z a) s (m z o) s (m z L07) s (mAn_ z @@ -5446,8 +5465,9 @@ &s) tian (_ tS@n _) tian tjan &) tial S@L - &s) tial tj@L + s) tial tj@L &) ti (ali SI + s) ti (ali tI i) tia (liL06 S@ &) tien S@n &) tience S@ns @@ -5691,6 +5711,7 @@ _) un (A_ ju:n _) unn %Vnn @) un (al 'ju:n + un (A_ 'u:n une (_ ju:n ?3 d) une (_ u:n j) un (A u:n @@ -5711,7 +5732,7 @@ _) uni ju:nI _) un (ide ,Vn _) un (inP2 ,Vn - _) un (il ,ju:n + _) uni (l ,ju:nI _) un (io ju:n _) un (iq %ju:n unit (e ju:n'aIt @@ -5803,6 +5824,7 @@ _) vehem vi@m _) vibra (t v%aIbreI ?3 _) vibra (t v'aIbreI + video vIdI2oU vivi (@ vIvI viv (_ vaIv @@ -6185,6 +6207,7 @@ ä E ë E ï i: + ó (n '0 ö 3: ör 3: ü u: diff --git a/dictsource/ga_list b/dictsource/ga_list index 1e5d314b..a81e5f90 100755 --- a/dictsource/ga_list +++ b/dictsource/ga_list @@ -1,13 +1,13 @@ // Irish Gaeilge dictionary // written by Ronan McGuirk // 2013 -// version 2.7 +// version 2.8.2 // Please send comments and suggestions to espeak.gaeilge@gmail.com // This file is UTF8 encoded // 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 _a eI @@ -135,9 +135,25 @@ _dpt pO#nk //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 a @ +ab @b abhaile @w'0l;E ach 0x $u ag Eg $verbf $u @@ -146,15 +162,17 @@ anam '0n@m aige @g'E air Er acu 0k'U -ar Er $u +ar Er arsa @rs@ agaibh 0g@Iv -agus 0g@s +agus 0g@s $u aisfhilleadh ,aS'Il;@ amach @m'0x amárach @m'A:r@x amuigh @mu1'I amháin @w'A:in +hamháin h@w'A:in + am aUm anaithnid '0nah@nIdZ anonn @naUn @@ -172,6 +190,8 @@ aschurtha '0sxUrh@ atá @t['A: $u baill bu1'i:l bhaill vu1'i:l +beadh b;'@X +bheadh v;'@X beidh bEg bhfuil w'Il bheas v'e:@s @@ -201,6 +221,7 @@ faic f@ak faigh faIg feadh fag fear f'ar +féin h'e:n gcathair g0h@r gan g0n $u gheall jaUl @@ -212,7 +233,9 @@ in In $u ina In@ $u ins Ins $u inniu Inj'u:v - irish _^_EN +iontach 'i:nt[@x +hiontach h'i:nt[@x + irish _^_EN is 'Is $u (is ea) IS'a isteach IstS'0x @@ -227,12 +250,14 @@ mhuigh vu1'i: mhama w'0m@ maith m'0 mhaith w'0 +mhaithe w'0h;E + mbeadh m;O#X mo mO# $u mura mUr@ $u ná nA: $u nigh ni: - níorbh ni:rv + níorbh ni:@r@vv $u nó nu: $u nollag n@l@g nolaig nO#lig @@ -247,7 +272,10 @@ rímhaith R'i:w0 (s é) S'e: (s í) S'i: san s@n - seo S@_ + san s'an $capital +seo SU_ $u +(sinn féin) S'In||f'e:n + tabhair t'u:@r (tiocfaidh ár lá) tSO#ki:|'A:r|l'A: diff --git a/dictsource/ga_rules b/dictsource/ga_rules index 1f19d38e..33bc1d48 100755 --- a/dictsource/ga_rules +++ b/dictsource/ga_rules @@ -1,8 +1,7 @@ - -// translation rules for Irish Gaeilge +f// translation rules for Irish Gaeilge // This file is UTF-8 encoded // written by Ronan McGuirk 2013 -// Version 2.7 +// Version 2.8.3 // Please send comments and suggestions to espeak.gaeilge@gmail.com @@ -23,7 +22,7 @@ .L12 á é ó eo ua // when followed by i .L13 oc omb .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 .L17 l le li niste nn .L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar @@ -33,6 +32,20 @@ .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann .L23 ea eo i .L24 b mb bh g gh p ph bp m mh +.replace + ḃ bh + ċ ch +ḋ dh +ḟ fh +ġ gh +ṁ mh +ṗ ph +ṫ th + + + + + ċ ch .group a a 0# @@ -68,12 +81,14 @@ _) ath 0h a (rraige a ai (m_ @ - aí i: + aí 'i: + aí (_ %i: aoi @i: _) aoi i: ath) aoi (r 'i:@ r) aoi (nín 'e:@ aoicht (_ 'i:@xt[ + d) aoine (_ @i:n;%i: C) ao (C @e:@ _L24) ao (C w'e:@ C) ao (th_ @e: @@ -86,6 +101,7 @@ arraing arIng _) ath (@@P3 ,0_ _) athr '0hr + _) ard (@P3 A:rd[ .group á á A: @@ -118,9 +134,11 @@ _L04) ai (L18_++ u1'I//words like bain c) ai (t_ u1'I s) ai (bh E + sh) ai (bh E aighre aIr@ X) aigh 'aI - aigh aI# L04) aill (_ wi:l + aigh aI# + _L04) aill (_ wi:l aing (_ Ing ailleach '0l;@x ai (llimh++ '0 // words like Gaillimh @@ -150,6 +168,9 @@ _) beann (@ ba#n _) bheann (@ va#n _) bun (C@P3 b,Un +?1 _m_) bun (C@P3 ,Un + _) bpríomh (@P7 bR,i:v + .group c c k @@ -164,12 +185,19 @@ _) chabhr x'aUr _) ceann (C@P5 k;,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 d d[ // broad L01) d dZ // slender d (L22 dZ // slender d (L01 d; // slender + d (CL01 dZ i) d (i dZ ?1 _n_) d (@ dh Q // broad @@ -186,6 +214,8 @@ _) d (_'fh d d'fh (L01 d + + dhaoine Q@i:n;%i: i) dh (_ g a) dh (_ X o) dh (_ X @@ -195,6 +225,7 @@ dheartháir gr@h'A:r deirfiúr d;r@f'u:r dheirfiúr g;r@f'u:r + domhan d[aU@n _) do (Ch@@P2 d[,U_ _) dí (C@@P2 d,i: dícheall d;'i:Ca#l @@ -220,6 +251,7 @@ d) eo (ch O# dh) eo (ch O# _) eo (ch O# + _h) eo (ch O# s) eo (_ @ @@ -242,7 +274,7 @@ ea (ltaine aU g) ea (ll aU l) eamh (n aU - dr) ea (m aU + Kdr) ea (m aU X) ea (ch 0 _L04) ea (g @ _L04) ea (dh_ @ @@ -250,6 +282,7 @@ L04) eaga (_ @g@ eaghl aIl eabhra aUr@ // words like Feabhra + eabhs aUs eanbhean 'an@v,an eadhb aIb @@ -262,6 +295,7 @@ fh (L22 ; // slender @) f (L06_ h fios fIs + faoi fw'i: fhios Is _) fo (C@@P2 f,U _) fogh f'aU @@ -269,13 +303,14 @@ _) foc (@++ fOk ?1 _bh_) f (@ ?1 _bh_) f (L22 ; + _) fíor (@P4 f,i:r .group g g g // broad g (L01 g; // slender ?1 _n_) g (@ - _) gh Q" + gh Q" _) gh (L01 Q"j _) gc g // urú broad _) gc (L01 g; // urú slender @@ -287,8 +322,11 @@ gh (n X@ gheobh j'o: 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 h h // silent @@ -301,6 +339,8 @@ iu U ia (tha i: io O# + iond O#n@d[ + ioml O#m@l io (dá I _) io (nadh u:// words like ionadh s) io (mb I @@ -315,6 +355,8 @@ iú u: m) i (d_ i: // verb ending _) in (@@P2 ,In_ + _) inn In + _) in (tinn 'In _) ionad (C@@P5 ,Ona#d[ .group í @@ -324,6 +366,7 @@ í (_ i: ín (_ i:n ío i:@ + íle (_ 'i:lE .group l @@ -334,6 +377,7 @@ ll (L23 l; l (g l@ l (b l@ + L01) l (b l;@ ll (b l _) lorg (@@P4 l,Or@g _) lán (@@P3 l,A:n @@ -352,7 +396,9 @@ _) mh (n v@ léir) mheas vas r) m @m // words like gorm + r) m (L20 @m; _) mear (@@P4 m,ar + _) mí (C@@P2 m,i: .group n n n // broad @@ -360,8 +406,8 @@ ?1 _) n (_L01 n; _) nd n // urú _) nd (L01 n; // urú slender - _) ng N - _) ng (L01 N; + ng N + ng (L01 N; ?1 _) n (_d n // urú ?1 _) n (_dL01 n; // urú slender ?1 _) n (_g N @@ -386,19 +432,22 @@ _C) omh o: _CC) omh o: omha o:@ + omhai o:@ o (ll_ aU C) o (nn_ aU r) o (nn_ O# C) ogh aU - omhan (_ aU@n + omhain (_ aUIn odha aU opaic @pIk C) odh (_ o: odl (a O#l oí i: - + o (rd_ o: + o (ird_ o: + _) oll (@@P3 ,Ol .group ó ó 'o: @@ -426,14 +475,16 @@ oi (mis @ ois (++ O#S n) ois (_++ IS - oill w'i:l + oill (+ w'i:l _) oi (leá 'I oidh aI oir (_ 'ERR + l) oic (_ Ek _sc) oi (r O oigh (ea aI oighn aIXn - + oinse (_ @i:nS@ + oi (nte @i: .group p p p // broad @@ -441,12 +492,15 @@ p (L22 p; // slender ph (L20 f; // slender ?1 _b_) p (@ + _) príomh (@P6 pR,i:v + _) phríomh (@P7 fR,i:v + .group r r r // broad L01) r R // slender - _) r (L01 R + r (L01 R L12i) r (e_ Z L12i) r (t_ Z rr R @@ -473,6 +527,8 @@ s (lL01 S _') s (_ s // 's in poems etc _) sain (@P4 s,an + _) sean (@@P4 S,an + .group t t t[ // broad @@ -496,11 +552,14 @@ ao) th (_ thne (_ h@nE A) th (_ // silent th at word end + c) th (e_ ih // guta cúnta + K) th (as_ @h // guta cúnta .group u u U# ua u@ + ua (_ u:@ uai u@ uai (g ui uai (d ui @@ -520,8 +579,12 @@ g) ui (gh_ @i: gh) ui (gh_ @i: uí i: + uíomh 'i:@vv + uachai 'ux@ _) uimhir (C@P6 ,IvIR + uibhne (_ @'i:n;E + uibhneach (_ @'i:n@x .group ú @@ -531,6 +594,7 @@ úi u: úinn (_ u:IN úibh (_ u:Iv + úi (g u:i diff --git a/dictsource/grc_list b/dictsource/grc_list index 38ecac38..3af2a11d 100644 --- a/dictsource/grc_list +++ b/dictsource/grc_list @@ -2,12 +2,12 @@ ?1 _0lang _^_EN // speak numbers in English // articles -hο $u // ὁ +ɦο $u // ὁ τὼ $u // τώ -οhι $u // οἱ -hη $u // ἡ +οɦι $u // οἱ +ɦη $u // ἡ τὰ $u // τά -αhι $u // αἱ +αɦι $u // αἱ τὸ $u // τό τοὺ $u // τοῦ diff --git a/dictsource/grc_rules b/dictsource/grc_rules index 3e7b3e26..b69cbe1f 100644 --- a/dictsource/grc_rules +++ b/dictsource/grc_rules @@ -3,7 +3,7 @@ // Preliminary character substitution: // Convert tonos, oxia and perispomeni to varia // 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 // Replace Latin characters by same-shape Greek characters @@ -61,32 +61,32 @@ w ω // (long o; not standard transliteration but may be easier to type ᾷ ᾲ ἀ α -ἁ hα +ἁ ɦα ἂ ὰ -ἃ hὰ +ἃ ɦὰ ἄ ὰ -ἅ hὰ +ἅ ɦὰ ἆ ὰ -ἇ hὰ +ἇ ɦὰ ᾀ ᾳ -ᾁ hᾳ +ᾁ ɦᾳ ᾂ ᾲ -ᾃ hᾲ +ᾃ ɦᾲ ᾄ ᾲ -ᾅ hᾲ +ᾅ ɦᾲ ᾆ ᾲ -ᾇ hᾲ +ᾇ ɦᾲ // epsilon έ ὲ έ ὲ ἐ ε -ἑ hε +ἑ ɦε ἒ ὲ -ἓ hὲ +ἓ ɦὲ ἔ ὲ -ἕ hὲ +ἕ ɦὲ // eta ή ὴ @@ -96,22 +96,22 @@ w ω // (long o; not standard transliteration but may be easier to type ῇ ῂ ἠ η -ἡ hη +ἡ ɦη ἢ ὴ -ἣ hὴ +ἣ ɦὴ ἤ ὴ -ἥ hὴ +ἥ ɦὴ ἦ ὴ -ἧ hὴ +ἧ ɦὴ ᾐ ῃ -ᾑ hῃ +ᾑ ɦῃ ᾒ ῂ -ᾓ hῂ +ᾓ ɦῂ ᾔ ῂ -ᾕ hῂ +ᾕ ɦῂ ᾖ ῂ -ᾗ hῂ +ᾗ ɦῂ //iota ί ὶ @@ -119,13 +119,13 @@ w ω // (long o; not standard transliteration but may be easier to type ῖ ὶ ἰ ι -ἱ hι +ἱ ɦι ἲ ὶ -ἳ hὶ +ἳ ɦὶ ἴ ὶ -ἵ hὶ +ἵ ɦὶ ἶ ὶ -ἷ hὶ +ἷ ɦὶ ΐ ῒ ῗ ῒ @@ -134,11 +134,11 @@ w ω // (long o; not standard transliteration but may be easier to type ό ὸ ό ὸ ὀ ο -ὁ hο +ὁ ɦο ὂ ὸ -ὃ hὸ +ὃ ɦὸ ὄ ὸ -ὅ hὸ +ὅ ɦὸ // upsilon ύ ὺ @@ -146,13 +146,13 @@ w ω // (long o; not standard transliteration but may be easier to type ῦ ὺ ὐ υ -ὑ hυ +ὑ ɦυ ὒ ὺ -ὓ hὺ +ὓ ɦὺ ὔ ὺ -ὕ hὺ +ὕ ɦὺ ὖ ὺ -ὗ hὺ +ὗ ɦὺ ΰ ῢ ῧ ῢ @@ -165,26 +165,26 @@ w ω // (long o; not standard transliteration but may be easier to type ῷ ῲ ὠ ω -ὡ hω +ὡ ɦω ὢ ὼ -ὣ hὼ +ὣ ɦὼ ὤ ὼ -ὥ hὼ +ὥ ɦὼ ὦ ὼ -ὧ hὼ +ὧ ɦὼ ᾠ ῳ -ᾡ hῳ +ᾡ ɦῳ ᾢ ῲ -ᾣ hῲ +ᾣ ɦῲ ᾤ ῲ -ᾥ hῲ +ᾥ ɦῲ ᾦ ῲ -ᾧ hῲ +ᾧ ɦῲ // rho ῤ ρ -ῥ hρ +ῥ ɦρ .group α @@ -193,10 +193,10 @@ w ω // (long o; not standard transliteration but may be easier to type αὶ 'aI αυ aU αὺ 'aU - αhι haI - αhὶ 'haI - αhυ haU - αhὺ 'haU + αɦι haI + αɦὶ 'haI + αɦυ haU + αɦὺ 'haU .group β β b @@ -216,10 +216,10 @@ w ω // (long o; not standard transliteration but may be easier to type εὶ 'e: ευ eU εὺ 'eU - εhι he: - εhὶ 'he: - εhυ heU - εhὺ 'heU + εɦι he: + εɦὶ 'he: + εɦυ heU + εɦὺ 'heU .group ζ ζ z @@ -231,10 +231,10 @@ w ω // (long o; not standard transliteration but may be easier to type ηὶ 'EI: ηυ EU: ηὺ 'EU: - ηhι hEI: - ηhὶ 'hEI: - ηhυ hEU: - ηhὺ 'hEU: + ηɦι hEI: + ηɦὶ 'hEI: + ηɦυ hEU: + ηɦὺ 'hEU: .group θ θ T @@ -274,10 +274,10 @@ w ω // (long o; not standard transliteration but may be easier to type οὶ 'oI ου u: οὺ 'u: - οhι hoI - οhὶ 'hoI - οhυ hu: - οhὺ 'hu: + οɦι hoI + οɦὶ 'hoI + οɦυ hu: + οɦὺ 'hu: .group π π p @@ -303,15 +303,15 @@ w ω // (long o; not standard transliteration but may be easier to type υ y υι yI υὶ 'yI - υhι hyI - υhὶ 'hyI + υɦι hyI + υɦὶ 'hyI .group ϋ ϋ y ϋι yI ϋὶ 'yI - ϋhι hyI - ϋhὶ 'hyI + ϋɦι hyI + ϋɦὶ 'hyI .group φ φ f @@ -331,15 +331,15 @@ w ω // (long o; not standard transliteration but may be easier to type ωὶ 'OI: ωυ 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 = ω' @@ -366,6 +366,9 @@ w ω // (long o; not standard transliteration but may be easier to type g g gg Ng +.group h + h h + .group i i i diff --git a/dictsource/hu_list b/dictsource/hu_list index 269dbdf2..7377f8ee 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -411,7 +411,7 @@ _tld tildE _#9 tAb _#32 s'o:kYz _cap n'AJ_| -_?? kAR2AktEr // unknown characters (change this) +_?? kAR2AktER2 // unknown characters (change this) // Abbreviations @@ -4255,7 +4255,7 @@ belőniük $unstressend árban $unstressend (boltok ajánlatai) boltok_'||Aja:nlAtAi $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 (is támogatja) iS_||ta:mogAc:A $unstressend (lehet használni) lEhEt_||hAsna:lni $unstressend diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 82cf4a52..9d30a444 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -175,10 +175,37 @@ udvaron) c (ser ts licen) ccs ts|tS nyol) c (csat 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 anar) ch (i h @@ -216,8 +243,36 @@ diszti) ch (on h almana) ch h kronoszti) 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 d d @@ -469,23 +524,31 @@ shetlan) d (szige d své) d (zseb d csalá) d (szer 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 fogó) dz (kod ts @@ -542,8 +605,8 @@ burkoló) dz z 000_-) el (_ REl // double R for 1000-el 000000_-) el (_ El // ... but not 1000000-el _) ehhez EhEz - egyezség EJ:ESSe:g - egyezségg EJ:ESSe:g: + egyezség EJ:ESSe:g + egyezségg EJ:ESSe:g: .group é é e: @@ -609,7 +672,7 @@ burkoló) dz z fo) g (gyűrű g fo) g (gyö g kuplun) g (gyár g - bélye) g (gyűjt g + bélye) g (gy g jo) g (gyakor g dö) g (gyapjú g fo) g (gyalu g @@ -625,7 +688,6 @@ ritkasá) g (gyűjt g é) gh (ajla kh pro) g (gyak g arcüre) g (gyulladás g - bete) g (gyógyász g szöve) g (gyűjt g ta) g (gyűl g gu) gg (ol g @@ -675,19 +737,72 @@ doppin) g (gy g baromsá) g (gy g tehetsé) 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 gy J @@ -813,8 +928,8 @@ _huszone) gy (e J: száze) gy (edik J: védje) gy (straté 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 h h @@ -870,8 +985,8 @@ progressz) í (ve i: sz) í (verő i: sz) í (vevő i: expressz) í (v i: -recessz) í (ve i: -v) í (zener i: +recessz) í (ve i: + v) í (zener i: .group j j j @@ -924,7 +1039,7 @@ v) í (zener i: 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 _játé) kk (liens k: //exceptiof for kk (L01 rule -községg kYS:e:g: + községg kYS:e:g: .group l @@ -976,6 +1091,9 @@ keresztü) l (j l lly (-L01 j //if have consonants after - character, need spokening one j letter with first part ll (-L01 l bagate) ll (iz l + fü) l (lyuk l + levé) l (lyuk l + nyé) l (lyuk l .group m m m @@ -1087,16 +1205,50 @@ teljesítmé) ny (j n^ n'Em _!'Ellt,e:,ES 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 o o @@ -1242,10 +1394,29 @@ feldolgozá) s S _ki) s (szín S kérdé) 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 ssz ss2 @@ -1765,7 +1936,7 @@ kattintá) ssz Ss közlekedé) ssz Ss laká) ssz Ss légzé) ssz Ss - _le) ssz (ab Ss + le) ssz (ab Ss meglepeté) ssz Ss nyila) ssz Ss pszichológu) ssz Ss @@ -1805,43 +1976,317 @@ születé) ssz (ám S|s zsarolá) ssz (er S|s dőlé) ssz (ab S|s 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 sz s @@ -1904,13 +2349,16 @@ ellenállá) sz (ón Sz ré) sz (árás Sz _te) szts (or st|S 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 t t @@ -2059,26 +2507,34 @@ szögle) t (szob t álla) t (cirk t szen) t (szob 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 C) tj c @@ -2169,7 +2625,8 @@ közérze) tj (aví tj ké) tj (átszm tj szavaza) tj (og tj szavaza) tj (eg tj -vona) tj (eggy tj + vona) tj (eggy tj +billentyűze) tj (áté tj .group ts ts (_S2 tS //general rule with word end of ts letters @@ -2409,6 +2866,8 @@ keresz) tt (űz t: bennszülö) tt (jelmez t krike) tt (ját t szé) tt (rancsír t: +elláto) tt (jog t + felnő) tt (játszó t .group ty mindszen) ty t|i @@ -2512,7 +2971,7 @@ lefeje) z (ték s _ré) zs (ó zS ő) zs (uta zS _vá) zs (or zS -szára) zs (ág SS + szára) zs (ág SS _nehé) zs (ely zS _) zürich tsyR2i C tí) zsz (er s: @@ -2656,12 +3115,34 @@ csatlako) z (tok s _tí) z (shill z topá) 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 -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 $ dolla:R2 diff --git a/dictsource/nl_list b/dictsource/nl_list index b260ea04..d08ea200 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -156,7 +156,7 @@ de d@ het h@t $only een @n $only ən @-n // char.replacement for 'n -ət t // char.replacement for 't +ət @t // char.replacement for 't een e:n $atend (de een) d@||e:n (het een) h@t||e:n @@ -399,9 +399,15 @@ zegen $alt trokken $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 + diller $alt // bediller schepper $alt // opschepper steller $alt // aansteller @@ -875,7 +881,7 @@ waaier $alt wakker $alt wapper $alt water $alt -wedijver $alt +wedijver v#Ed'EIv@r $alt weelder $alt wegwijzer $alt weiger $alt @@ -1622,6 +1628,7 @@ aldus Ald'8s alles Al@s amino $1 amnestie $3 +antenne $2 $alt2 april a:pr'Il armand _^_FR augustus VUQ'8st8s @@ -1665,6 +1672,7 @@ crèches krES@s damascering damA;s'e:rIN december $2 desillusie dEsIlyzi +desondanks dEsOnd'ANks detail de:t'Aj dieet $2 diesel diz@l @@ -1681,8 +1689,10 @@ embouchuur A~buS'yr // embouchure enorm $2 enquête A~k'Et@ $alt2 erosie e:r'o:zi +evangelie e:vANQ'e:li eucharistie $4 explosie $2 +extern Ekst'Ern februari fe:bry'a:ri fiche fiS@ franchise frA'Si:z@ @@ -1692,6 +1702,9 @@ gelig Qe:l@Q gouache Qu'AS gefrituurd $3 hysterie hIstI:r'i +ideaal ide:j'a:l +ideale ide:j'a:l@ +immens Im'Ens impregnering Impr,EQn'e:IN inductie $2 informatieve InfOrma:t'iv@ @@ -1702,11 +1715,13 @@ ingevolge $3 ingrediënt $4 ingenieur Inzj@nj'Y:r informatie $3 +intern Int'Ern invasie $2 januari $3 jury Zyri kadaster $2 kleinzerig klEInz'e:r@Q +kredietwaardig $3 leesregel le:sre:Q@l levendig le:v@nd@Q lunch l8nS @@ -1742,7 +1757,10 @@ miszit $1 mysterie mIst'I:ri nabij nab'EI new nyU +noordelijk no:rd@l@k november $2 +oceaan o:se:j'a:n +oceanen o:se:j'a:n@n oktober $2 oliesel o:lis@l omver o:mv'Er @@ -1753,10 +1771,12 @@ ongemakkelijk $3 //ongelukkig $3 ongerieflijk $3 //ongrondwettig $3 +oostelijk o:st@l@k partijvoorzitters $2 periferie pI:rifI:r'i perron $2 pistache pist'AS +premie $1 privilege privil'e:Z@ $alt2 proces $2 projectielen $3 @@ -1777,6 +1797,7 @@ sms'jes EsEm'Es_j@s spektakel $2 sportief $2 sportieve $2 +stream stri:m tegennatuur $4 tralie $1 travestie $3 @@ -1784,6 +1805,7 @@ verderop $3 vergezicht vErQ@zIxt verre vEr@ verrekijker vEr@kEIk@r +versa vErs'a: verste vErst@ verte vErt@ volledig $2 @@ -1796,8 +1818,13 @@ wanluidend $2 wanschapen $2 wantrouwend $2 weliswaar v#ElIsw'a:r +werelden v#I:r@ld@n werktuigelijk $2 +westelijk v#Est@l@k +zeeën ze:@n ziekenhuisbevalling zi:k@nhWysb@vAlIN +zuiden zWyd@n +zuidelijk zWyd@l@k @@ -1834,6 +1861,7 @@ google gu:g@l alexandrië $3 Benin be:n'in canada kAna:da: +Genua Qe:nyv#a: Kinshasa kInS'a:sa: Nairobi nAjr'o:bi Napel $alt diff --git a/dictsource/nl_rules b/dictsource/nl_rules index a46e8c01..8bba181d 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -40,6 +40,7 @@ _) adres (@P5 a:dr'Es _) af (C@P2 'Af _) affich %AfiS + _) af (rika a:f age (_ 'a:Z@ ages (_S1 s age (_$w_alt a:Q@ @@ -55,6 +56,7 @@ @) ant (e_ 'Ant @) ant (en_ 'Ant @) ant (er_ 'Ant + ao (_ 'VU // cacao @) ares (_ a:r'Es aris (_ 'a:rIs arissen (_ 'a:rIs@n @@ -211,6 +213,7 @@ el) e (_+S1qd @ er) e (_+S1qd @ ig) e (_+S1qdm @ + lijk) e (_S1m @ ea (_ 'e:a: eau 'o: //words with French origin @@ -218,6 +221,7 @@ @) ee (_ 'e: @) ee (X_ 'e: @) ee (r_ 'I + h) ee (r_ I: @) ee (rt_ 'I @) ee (rd_ 'I @) ee (rde_ 'I @@ -244,8 +248,12 @@ @) elen (_ 'e:l@n @) el (en_$p_alt2 @L + @) elds (_ @lts &) elijks @l@ks + &) em (_ @m + &) emen (_$w_alt @m@n + waarn) em e:m &) e (ment @ eden (_ e:d@n // ?? @@ -285,7 +293,9 @@ &) en (_S2qd @n KAC) en (_S2e @n // flag 'e' means double the previous vowel KAj) en (_S2 @n + KAx) en (_S2 @n and) en (_S2 @n + ie) en (_S2 @n el) en (_+S2qd @n er) en (_+S2qd @n @@ -313,7 +323,7 @@ @) er (ingen_ 'I:r &) er (_$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 (d_$p_alt =@r &) er (de_$p_alt =@r @@ -330,7 +340,6 @@ _) er (@P2 Er &) er (_ @r &) ere (_ @r@ - &) er (en_$p_alt @r // where 'eren' is not a verb ending eren (_ 'I:r@n erend (_ 'I:r@nd @) eres (_S4qd @r'Es @@ -388,6 +397,8 @@ gg Q s) g x + _) gast (@ Q'Ast + _) gasten (@P6 Q'Ast@n g (é Z g (ee_ Z _lo) g (eer Z @@ -412,6 +423,7 @@ gener (aal Q,e:n@r _) gelijk Q@lEIk _) gemeente (@P8 Q@m'e:nt@ + genre ZA~r@ _) ge (lC QE _) ge (rC QE _) ge (lenL02 Qe: @@ -430,9 +442,13 @@ h h C) h (K + C) hand (_S4 h'Ant _) handicap hEndikEp _) her (@P3 hEr + _) her (der hEr + _) her (ds hEr _) her (en hI:r + _) herfst (@P6 h'Erfst _) herinn h%ErIn // herinneren _) hersen h'Ers@n &) heid (_S4 hEIt @@ -487,6 +503,7 @@ CAss) ie (_ =i @) ig (_S2dq =@Q @) ige (_S1m @ + _) ige (_ @Q@ // when a prefix is removed, eg "herfstige" @) igen (_ =@Q@n @) iger (_ =@Q@r @) igere (_ =@Q@r@ @@ -501,12 +518,14 @@ &) iko (_ =iko: fam) i (lie 'i _) in (C@P2 'In + _) ing (eC_ IN // bewerkingen _) in (do In _) in (forma In ine (_ 'in@ ines (_ 'in@s _) informatie (@P10 InfOrm'a:tsi - _) inn (@P2 'I // ?? inneren + _) inn (er 'In // ?? inneren + _) inn (ig In _) inter Int@r io (nage iO io (de_ i'o: @@ -518,10 +537,12 @@ @) isme (_ 'Ism@ @) ist (_ 'Ist @) isten (_ 'Ist@n + Ar) ia (_ =ia: + Ar) ium (_ =i8m .group j j j - + _) jaar (@P4 j'a:r jaar (lijk ja:r jou (rna Zu @@ -539,13 +560,13 @@ kokkerel kOk@r'El _) koning k'o:nIN // in compounds _) koningin ko:nIQ'In + _) krediet (@P7 kr@d'it .group l l l l) l &) lijk (_S4 l@k - &) lijke (_S5 l@k@ &) lijken (_S6 l@k@n &) lijker (_S6 l@k@r &) lijkere (_S7 l@k@r@ @@ -557,6 +578,9 @@ &) laan (_S4 la:n _) lange (@P5 laN@ + _) land (@P4 l'And + _) land (e l'And + _) lente (@P5 l'Ent@ _) liefdes (@P7 l'ifd@s detai) ll @) loog (_ lo:x @@ -575,6 +599,7 @@ _) mee (rC mI: menu (_ m@ny _) mi (cro mi + _) milieu mIlj'Y: _) mi (s@ m%I _) mis (anC miz _) mis (commP3 m'Is @@ -659,6 +684,7 @@ _) op (enen+ 'o:p _) openings (P8 'o:p@nINs _) op (era 'o:p + _) opper Op@r _) op (tion Op os (_ Os ou (che_ u @@ -760,6 +786,7 @@ sch sx sch (_ s sch (e_ s + sch (er_ s _) sch (n S _) sh S sh (K S @@ -825,6 +852,7 @@ _) trans (@P5 tr,Ans .group te + _) tege (lijk t@Q@ _) tegen (P5 t'e:Q@n _) terug (P5 t@r'8x _) te (gelijkP2 t@ @@ -871,6 +899,7 @@ v v s) v f + _) vakantie (@P8 va:k'Antsi _) van (@P3 v%An _) vanzelf (@P7 vAnz,Elf _) vang vAN @@ -905,9 +934,14 @@ _) weg (@P3 v#'EQ _) weg (en v#e:Q _) weg (e_ v#e:Q // bewegelijk + _) weg (ing v#e:Q // bewegingen + _) wereld (@P6 v#'I:r@lt _) werk (@P4 v#'Erk _) werk (el v#'Erk + _) werk (ing v#'Erk _) west (@P4 v#Est + _) wets (@P4 v#'Ets + _) winter (@P6 v#'Int@r _) woon (@P4 v#'o:n _) wr (@ vr @@ -928,9 +962,12 @@ z (z s) z + _) zee (@P3 z'e: + _) zeeuw zeU zele (_S4 ze:l@ // common suffix for cities. @) zelf (_S4 s'Elf _) zoge (@P4 z,o:Q@ + _) zomer (@P5 z'o:m@r _) zuid (@P4 zWyt diff --git a/dictsource/sl_list b/dictsource/sl_list index 3599f878..4d4b5652 100755 --- a/dictsource/sl_list +++ b/dictsource/sl_list @@ -91,7 +91,7 @@ _cyr tsiR'i:litSni @ 'a:fna # l'e:stvitsa $ d'o:laR -% Otst'o:tOw +% Otst'o:tkOw & 'i:n * zv'e:ditsa + plu:s diff --git a/dictsource/sw_list b/dictsource/sw_list index e4fa5e79..922a96e1 100644 --- a/dictsource/sw_list +++ b/dictsource/sw_list @@ -25,8 +25,6 @@ y jai z zedi - - // numbers _0 sif'uRi _1 m'oJa @@ -150,7 +148,7 @@ kwao $pause // by means of which kwavyo $pause // by means of which kwaye $pause // by means of which -kwa $u $brk // with +kwa $u // with mwenye $u $brk // with wenye $u $brk // with yenye $u $brk // with @@ -158,6 +156,8 @@ yenye $u $brk // with chenye $u $brk // with vyenye $u $brk // with zenye $u $brk // with +malipo $unstressend + // conjunctions @@ -178,12 +178,12 @@ ijapokuwa $pause // although ingawa $pause // although iwapo $pause // when japo $pause -(juu ya) J,u:ja/ $pause // as for +(juu ya) J,u:ja $pause // as for kama $u+ $pause // if,like kisha $pause // moreover kusudi $pause // in order to kuwa $u $pause // that -(kwa kuwa) kwa||k,uwa/ $pause // becuse +(kwa kuwa) kwa||k,uwa $pause // becuse kwamba $u $pause // that lakini $pause // however walakini $pause // however @@ -195,5 +195,10 @@ wala $pause // either,neither yaani $pause // i.e. +// exceptions + +mantiki ma_|nt'iki $u1+ +zanzibar $3 + diff --git a/dictsource/sw_rules b/dictsource/sw_rules index 07b92274..4b23b52d 100644 --- a/dictsource/sw_rules +++ b/dictsource/sw_rules @@ -5,8 +5,7 @@ .group a a a - aa a: - + .group b b b @@ -20,8 +19,7 @@ .group e e e - ee e: - + .group f f f @@ -35,18 +33,20 @@ .group i i i - ii i: - + .group j j J + j (w J .group k k k + K) k (@@ _|k kh x .group l l l + .group m m m _) m m- @@ -54,7 +54,7 @@ K) m (@@ _|m K) m (C m- K) m (b@@ _|m - K) m (v@@ _|m + K) m (v@ _|m K) m (w@@ _|m .group n @@ -63,19 +63,19 @@ n (A n n (@@ n ny n^ - n (ch n^ + n (ch n- n (j n^ - ng' N + ng (' N n (k N _) n (k N- _) n (k@@ N- n (g N - K) n (g N- - _) n (g@@ N- + + .group o o o - oo o: + .group p p p @@ -99,15 +99,16 @@ .group u u u - uu u: + + .group v v v .group w w w - j) w %u - ny) w %u + j) w %u + ny) w %u .group x x ks diff --git a/dictsource/ta_list b/dictsource/ta_list index 21ae589e..14735ee7 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -85,8 +85,8 @@ _; a:raIb||pul.l.i // ஆரைப் புள்ளி _: mukka:l||pul.l.i // முக்கால் புள்ளி _( id.V||piRaI // இட பிறை _) vVlV||piRaI // வல பிறை -_[ id.V||sadUrVm // இட சதுரம் -_] vVlV||sadUrVm // வல சதுரம் +_[ id.VppVgVrVm // இடப்பகரம் +_] vVlVppVgVrVm // வலப்பகரம். _{ id.V||gVn.Vm // இட கணம் _} vVlV||gVn.Vm // வல கணம் < kuRaIvU // குறைவு @@ -385,6 +385,8 @@ tamil தமிழ் $text புசு $alt புஸு $alt பாதிக்காம $alt +பனியா $alt +பாம் $alt // initial த as [d] @@ -452,6 +454,7 @@ tamil தமிழ் $text தாயம் $alt திமு $alt தாவா $alt +துருவா $alt // initial ட diff --git a/dictsource/ta_rules b/dictsource/ta_rules index 8afdfb07..ca9c444c 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -128,7 +128,7 @@ .L30 மெடல பிஷ ஃபிஷ // endings after போர்ட (board) -.L31 ் ிங் ின ை ுக்க ில ும +.L31 ்_ ிங் ின ை ுக்க ில ும // consonants @@ -157,9 +157,7 @@ க் (_க k //sort - - - + _) க (ஃபார gV _) க (ங்கபாடி gV _) க (ங்கர gV _) க (ங்கா gV @@ -195,13 +193,16 @@ _) க (தியை gV _) க (ந்தக gV _) க (ந்தகிரி kV + _) க (ந்தக்கோட்ட kV _) க (ந்தர்வ gV _) கனக (ச்சித gVnVkV _) க (னக்க gV _) க (னத் gV _) க (னபாடி gV + _) க (னப்ப gV _) க (னம gV _) க (னரக gV + _) கப (ார gVf _) கப் (L04ா gVp _) கப்ச (ிப் gVptS _) க (ப்புன gV @@ -253,6 +254,7 @@ _) க (ாந்தத் g _) க (ாந்தப் g _) க (ாந்தமா g + _) க (ாந்தர்வ g _) க (ாந்தார g _) க (ாந்தி g _) க (ானங் g @@ -265,6 +267,8 @@ க (ாரன k _) க (ார்டன g _) க (ார்டியன g + _) க (ால்ஃப் g + _) கால்ப் ga:lf _) க (ிஃப்ட g _) கிட (ார git. _) க (ிடுகிடு g @@ -331,6 +335,7 @@ _) கி (றித்த k _) கி (றிஸ்டல k _) கி (றிஸ்த k + _) கி (லேசியர g _) க (ில்மா g _) கி (ளப்_ k _) கிளப்ப (ில kl.Vbb @@ -342,6 +347,7 @@ _) கி (ளாL04ு k _) கி (ளாL04ை k _) கி (ளாமர g + _) கிளார்க் kl.a:rk _) கி (ளாஸ்_ g _) கி (ளாஸ்_மேட k _) கிளாஸ்க (ோ gl.a:sg @@ -372,7 +378,9 @@ _மன்மதக்) க (ுகை g _) க (ுஜால g _) க (ுடியாத்த g _) க (ுடுகுடு g + _) க (ுணக் g _) க (ுணங் g + _) க (ுணசாலி g _) குணச (ித்திர gun.VtS _) க (ுணசீல g _) க (ுணசேகர g @@ -429,11 +437,10 @@ _மன்மதக்) க (ுகை g _) க (ுருகுல g _) க (ுருக்கள g _) க (ுருக்குல g - _) க (ுருக்ஷேத்திர g _) க (ுருசாமி g - _) குருச (ேத்திர gurUs. _) க (ுருஜி g _) க (ுருதேவ g + _) க (ுருத்வார g _) க (ுருநா g _) க (ுருபகவான g _) குருப (த்தினி gurupV @@ -442,13 +449,16 @@ _மன்மதக்) க (ுகை g _) குருப (ீட gurup _) குருப (ூ gurup _) க (ுருபூஜை g + _) க (ுருபோத g _) குருப்பி (ரசாத gurupp _) க (ுருப்பெயர g + _) க (ுருப்யோ g _) க (ுருமார g _) க (ுருமூர்த்தி g _) க (ுருரா g _) க (ுருவடி g _) க (ுருவம்ச g + _) க (ுருவம்மா g _) க (ுருவருள g _) க (ுருவா g _) க (ுருவாய g @@ -460,7 +470,6 @@ _மன்மதக்) க (ுகை g _) க (ுருவை g _) க (ுருவோ g _) க (ுருவோட g - _) க (ுருஷேத்திர g _) கு (ரூப் g _) க (ுலாப g _) க (ுலாம g @@ -486,6 +495,7 @@ _மன்மதக்) க (ுகை g _) க (ெட்டிக்கனும k _) க (ெட்டிக்கி k _) க (ெட்டிரு k + _) க (ெட்டில k _) க (ெத் g _) க (ெரில்லா g _) கெள (தம gaU @@ -504,6 +514,8 @@ _மன்மதக்) க (ுகை g _) க (ேமை g _) க (ேம்ஸ g _) கேரண்ட ge:rVn.t.V# + _) கேலக (்சி ge:lVk + _) க (ேலக்ஸி g _) க (ேலரி g _) க (ேலி g _) க (ேஸ்_L26 g @@ -584,6 +596,7 @@ _மன்மதக்) க (ுகை g _) க் (ரீன g _) க் (ரூப g _) க் (ரௌண்ட g + _) க் (லேசியர g _) க் (ளாமர g _) க் (ளாஸ்_ g _) க்வ (A kw @@ -630,6 +643,8 @@ _தலைக்) க (ன gV _தர்ம) க (ர்த kV _குல்) க (ர்னி kV விஸ்வ) க (ர்மா kV + உரை) க (ற் kV + _மைல்) க (ற் kV _விண்) க (ற் kV _லோ) க (ல kV _மெடி) க (ல kV @@ -644,6 +659,8 @@ _சித்திர) க (லா kV _சூரிய) க (லா kV _யூ) க (லிப்டஸ kV _ஜீவ) க (லை kV + உரை) க (ல் kV + _மைல்) க (ல் kV _காய) கல்ப kVlpV# பஞ்ச) க (ல்யாண kV _ரண) க (ள kV @@ -690,6 +707,7 @@ _ஹன்L04ி) க (ா k _கண்) க (ாணா k _கர்ம) க (ாண்ட g உத்திரா) க (ாண்ட k + அ) காத (மி ka:d.V _ராம) க (ாதை k இராம) க (ாதை k _ஸ்ரீ) காந்த ka:ntV# @@ -793,10 +811,12 @@ _மன்னர்) க (ுல k _கை) க (ுலு k _) குல்க (ந்த gulkV _மெரு) க (ூட்ட g + _லா) க (ூர H _தயை) க (ூர k _தயவு) க (ூர k அருள்) க (ூர k _நினைவு) க (ூர k + _மு) க (ூர்த H _குறை) க (ூற k அறை) க (ூவ k _மார்) கெட் ket. @@ -877,6 +897,7 @@ _தேவா) க்க (ினை gg அயோ) க்க (ிய gg ஆரோ) க்க (ிய gg வைரா) க்க (ிய gg + _மூல) க்கி (ர gg அநு) க்கி (ர gg அனு) க்கி (ர gg _கர்ப்ப) க்கி (ர gg @@ -940,6 +961,7 @@ _துப்பாக்கி) க்க (ுண்ட gg என்சை) க்லோப (ீடியா klo:p _சு) க் (ள k _ஷு) க் (ள k + _து) க்ளக் kl.Vk க் (ஸ k _எ) க் (ஸாம g _மெ) க்ஸிக (ோ ksik @@ -967,8 +989,8 @@ _துப்பாக்கி) க்க (ுண்ட gg ஞ்) ச dZV ஞ்) ச (B dZ ச் (_N tS - ச்_) ச tSV // previous word ends in ச் - ச்_) ச (B tS + ச் (_ச tS + ச்_) ச (++ :V# // previous word ends in ச் _) சாம்ப (ியன tSa:mp //sort @@ -998,6 +1020,7 @@ _துப்பாக்கி) க்க (ுண்ட gg _) ச (த்ரபதி tSV _) ச (த்ரு tSV ச (ந்தர tSV + _வ) ச (ந்தர sV _) ச (ந்தர்ப sV அ) ச (ந்தர்ப sV ச (ந்திர tSV @@ -1018,6 +1041,7 @@ _மீனலோ) ச (னி tSV _) ச (ப்பி tSV _) ச (ப்பு tSV _) ச (ப்பெ tSV + _) ச (ம்பல்பூர tSV _) சம்ப (ாரன tSVmp _நா) ச (ர zV _ரே) ச (ர zV @@ -1081,15 +1105,19 @@ _தணிகா) ச (ல tSV விப) ச (ார tS _கிரL06) ச (ார tS _குணா) ச (ார tS +_பிரிவுப) ச (ார tS +_விருந்துப) ச (ார tS ராஜோப) ச (ார tS ஆ) ச (ார_ tS ஆ) ச (ாரங்கள tS _வி) ச (ாரங்கள tS ஆ) ச (ாரத் tS _வி) ச (ாரத்த tS + ஆ) ச (ாரப்பட tS ஆ) ச (ாரம tS _வி) ச (ாரம tS _சிவா) ச (ாரி tS + _சுகா) ச (ாரி tS _ரங்கா) ச (ாரி tS _வரதா) ச (ாரி tS _வேதா) ச (ாரி tS @@ -1120,6 +1148,7 @@ _மத்வா) ச (ாரி tS _) ச (ார்ஜை tS _மொ) ச (ார்ட z _) ச (ார்மினார tS + ஆ) ச (ார்ய tS _) ச (ார்லஸ tS _) ச (ார்லி tS _) ச (ாலக்குடி tS @@ -1172,6 +1201,7 @@ _மத்வா) ச (ாரி tS _மலே) ச (ிய s. இந்தோனே) ச (ிய s. _) ச (ியர்ஸ tS + _) சி (யாம s. _பக்தி_) சிரத் (தை srVd _) சிரத்த (ைL27 srVdd சி (ரம s @@ -1220,6 +1250,7 @@ L28ரங்க) ச (ீப z _கபாலீ) சு (வ s _ஜலகண்டே) சு (வ s அர்த்தனாரீ) சு (வ s + _) சு (வமேத s _சனீ) சு (வர s ராஜே) சு (வர s _மங்களே) சு (வர s @@ -1289,6 +1320,7 @@ _வெனி) ச (ுவேல z _) ச (ேஞ்ச tS _) ச (ேட்டன tS _) ச (ேட்டர்ஜி tS + _குரு) ச (ேத்திர s. _) ச (ேனல tS _) ச (ேரி tS _தல) ச (ேரி tS @@ -1317,6 +1349,7 @@ _வெனி) ச (ுவேல z _) சௌப (ாத்தி tSaUp _) ச (ௌபே tS _) ச (ௌஹான tS + _ந) ச் (னு tS _கா) ச்மூச tSmu:tSV# //endsort @@ -1327,6 +1360,7 @@ _வெனி) ச (ுவேல z ஜ (B dZ //sort _கெ) ஜ (ட் zV + _ட) ஜ (ன zV _டின்) ஜ (ர tSV _) ஜ (ர்தாரி zV _க) ஜ (லா zV @@ -1337,12 +1371,14 @@ _வெனி) ச (ுவேல z _) ஜ (ாக்கீர z _ரம்) ஜ (ான z _நி) ஜ (ாம z + _) ஜ (ாம்பிய z _ப) ஜ (ார z அ) ஜ (ாருதீன z _நா) ஜ (ி z _) ஜிப்(_ zip _) ஜ (ிப்ப z _) ஜ (ிப்பா dZ + _) ஜ (ிம்பாப்வே z _) ஜ (ியா_ z _) ஜ (ியாவ z _) ஜ (ீனத் z @@ -1351,6 +1387,7 @@ _வெனி) ச (ுவேல z _) ஜ (ுல்ஃபி z _) ஜ (ுல்பி z _) ஜு (வால dZ + _) ஜ (ூலு z _) ஜ (ெனித் z _) ஜ (ெராக்ஸ z //endsort @@ -1380,6 +1417,7 @@ _வெனி) ச (ுவேல z //sort _டே) ட t.V# + _மால்) ட t.V# _பேண்) ட t.V# _வால்) ட t.V# _கமெண்) ட t.V# @@ -1641,6 +1679,7 @@ _லான்_) ட (ென்னிஸ t. _) டோர்னமெண்ட t.o:rnVmen.t.V# _) ட (ோலிவுட் t. _லே) ட் t. + _ஹி) ட் t. @மெண்) ட் t. // -ment _பேண்) ட் t. _ஹெல்மெ) ட் t. @@ -1653,9 +1692,13 @@ _டோலிவு) ட்ட 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. அப்பாயிண்) ட்மெண்ட t.men.t.V# _) ட் (யூசன t. _) ட் (யூன t. @@ -1696,6 +1739,7 @@ _ஹாலிவு) ட்ட d.d.V# எண்) ட் (ரி t. _) ட்ரிக (ர t.riggV _) ட்ரிக் t.rik + _ஹா) ட்ரிக் t.rik _) ட்ரிக்க (ர t.riggV _) ட் (ரிங்_ t. _நியூ) ட் (ரின t. @@ -1778,6 +1822,8 @@ _நடுரோ) ட் (ல t. _) த (கன dV _) த (கி dV _) த (க்க்ஷிண dV + _) த (க்ஷக dV + _) த (க்ஷசீல dV _) த (க்ஷன dV _) த (க்ஷிண dV _) த (க்ஷிணா dV @@ -1834,6 +1880,7 @@ _நடுரோ) ட் (ல t. _) தத்த (ியா dVdd _) த (னகோடி dV _) த (னசேகரன dV + _) த (னத்த dV _) த (னன்ஜெயன dV _) த (னபால dV _) த (னராச dV @@ -1841,7 +1888,9 @@ _நடுரோ) ட் (ல t. _) த (னலக்ஷ்மி dV _) த (னலட்சுமி dV _) த (னவந்த dV + _) த (னாதிகார dV _) த (னுச dV + _) த (னுர dV _) த (னுஷ dV _) த (ன்மந்திரி dV _) த (ன்ய dV @@ -2216,6 +2265,7 @@ _ஸ்வர்ணல) த (ா t _முல்) த (ான t _சாந்) த (ானு tV# _சி) த (ார t + _நயன்) த (ாரா t _சரி) த (ாவ t _ஹரி) த (ாஸ்_ d _சும) த (ி t @@ -2489,9 +2539,11 @@ _சி) த்ரலேக (ா trVle:k _) ப (ட்டக்ஸ bV _) ப (ட்டன bV _) ப (ட்டன_ pV + _) ப (ட்டனப்பாக்க pV _) ப (ட்டாசாரி bV _) ப (தில bV _) பத்த (ிரகாளி bVdd + _) பத்த (ிரபாகு bVdd _) பத்திரப் (_ bVttirVp _) பத்திரப் (_பதி pVttirVp _) ப (த்திரப்பட bV @@ -2499,6 +2551,7 @@ _சி) த்ரலேக (ா trVle:k _) பத்த (ிரி_ bVdd _) பத்த (ிரிக்கு bVdd _) பத்த (ிரிய bVdd + _) ப (த்ரபாகு bV _) ப (த்ரி bV _) பத் (ரிக்க pVt _சொந்த_) ப (ந்த bV @@ -2520,6 +2573,8 @@ _சொந்த_) ப (ந்த bV _) ப (னாரச bV _) ப (னாரஸ bV _) ப (னியன bV + _) ப (னியாக்கள bV + _) ப (னியாவ bV _) ப (ன்சல bV _) ப (ன்னாரி bV _டீயும்_) ப (ன்னும்_ bV @@ -2588,6 +2643,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (லத்தின bV _) ப (லத்தினா bV _) ப (லத்தினுட bV + _) ப (லத்திற்க bV _) ப (லத்தில bV _) ப (லத்துக் bV _) ப (லத்துச் bV @@ -2601,6 +2657,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (லப்பத்த bV _) ப (லப்பம bV _) ப (லப்பரீட்சை bV + _) பலப்பி (ரயோ bVlVpp _) ப (லமணைத்த bV _) ப (லமற்ற bV _) ப (லமாகC் bV @@ -2696,6 +2753,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (ாசு b _) பாசுப (த pa:sUpV _) ப (ாசுர p + _) பாட (னி ba:t.V _டெட்_) ப (ாடி b _) ப (ாடி_பில்டர b _) ப (ாடி_பில்டிங் b @@ -2711,6 +2769,7 @@ _டெட்_) ப (ாடி b _) ப (ாட்டிலுடன b _) ப (ாட்டிலை b _) ப (ாட்டில்கள b + _) பாட்மிண்ட (ன ba:d.min.t.V _) ப (ாணங் b _) ப (ாணமு b _) ப (ாணர b @@ -2750,6 +2809,8 @@ _டெட்_) ப (ாடி b _) ப (ாதிப்படையுமெ b _) ப (ாதிப்படைவ b _) ப (ாதிப்பதா b + _) ப (ாதிப்பதுண்ட b + _) ப (ாதிப்பதும b _) ப (ாதிப்பதை b _) ப (ாதிப்பவை b _) ப (ாதிப்பாகி b @@ -2765,12 +2826,15 @@ _டெட்_) ப (ாடி b _) ப (ாதிப்புண்ட b _) ப (ாதிப்பும b _) ப (ாதிப்புள்ள b + _) ப (ாதிப்பென b _) ப (ாதிப்பேர p _) ப (ாதிப்பை b + _) ப (ாதிப்போ b _) பாத (ிமா fa:t _) ப (ாதுஷா b _) ப (ாத்திமா f _) பாத்த (ியதை ba:dd + _) பாத்த (ியப் ba:dd _) பாத்த (ியம்_ ba:dd _) ப (ாத்யதை b _) ப (ாத்ரூம b @@ -2791,7 +2855,11 @@ _டெட்_) ப (ாடி b _டைம்_) ப (ாம b _) ப (ாமாவ b _) ப (ாமினி b + _) ப (ாமிரு b _) ப (ாமிலி f + _) ப (ாமில்ல b + _) ப (ாமை b + _) ப (ாம்கள b _) ப (ாம்பே b _ஆடு_) ப (ாம்பே p _விளையாடு_) ப (ாம்பே p @@ -2838,6 +2906,9 @@ _விளையாடு_) ப (ாம்பே p _) ப (ாலாம்பாள b _) ப (ாலாம்பிக b _) ப (ாலாவ b + _) ப (ாலாவி_ p + _) ப (ாலாவிய p + _) ப (ாலித்_தீவ b _) ப (ாலின் p _) ப (ாலியத்த b _) ப (ாலிவுட் b @@ -2868,6 +2939,7 @@ _விளையாடு_) ப (ாம்பே p முகத்திலிருந்து_) ப (ாவ b _) ப (ாவனா b _) ப (ாவனை b + _) ப (ாவமும்_நானே b _) ப (ாவிக்கப்பட b _) ப (ாவிக்கல b _) ப (ாவிக்கவில்ல b @@ -2975,6 +3047,8 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரதேஷ p _) பி (ரதோஷ p _) பி (ரத்தியேக p + _) பிரத் (யக்ஷ prVt + _) பிரத் (யட்ச prVt _) பிரத் (யேக prVt _) பி (ரனாப p _) பி (ரப p @@ -3029,6 +3103,7 @@ _விளையாடு_) ப (ாம்பே p _) பிராஞ்ச bra:n^tS _) பி (ராடாக f _) பி (ராட்_ f + _) பி (ராட்டஸ்ட p _) பி (ராட்டிஸ்லாவ b _) பி (ராட்வே b _) பி (ராண_ p @@ -3078,6 +3153,7 @@ _விளையாடு_) ப (ாம்பே p _) பிரித (ிவ prit _) ப (ிரித்தானி b _) பி (ரித்தானி b + _) பி (ரின்L04ிபல p _) பிரின்சிப (ால prinsip _) பி (ரிமிய p _) பி (ரியங்கள p @@ -3118,6 +3194,7 @@ _விளையாடு_) ப (ாம்பே p _) பி (ரே p _) பி (ரேக்க b _) பிரேச (ில bre:z + _) பி (ரேயில b _) பி (ரைல b _) பிரைவேட praIve:t.V# _) பி (ரோகிதர p @@ -3139,6 +3216,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ில்லி b _) ப (ில்லு b _) ப (ில்லை b + _) பி (ளவர f _) பி (ளவுஸ b _) பி (ளஸ p _) பி (ளஸ்_ p @@ -3146,7 +3224,8 @@ _விளையாடு_) ப (ாம்பே p _) பிளாக் bla:k _) பி (ளாட்பார p _) பிளாப் fl.a:p - _) பி (ளாஸ்க் f // flask + _) பி (ளாஷ f + _) பி (ளாஸ்க f // flask _) பி (ளீஸ p _) பிள (ைட் fl. _) பி (ளௌஸ b @@ -3222,6 +3301,7 @@ _பெனசீர்_) ப (ுட்டோ b _) புத்த (ம்_புதிய puttV _) புத்த (ம்_புது puttV _) புத்த (ரிசி puttV + _) புத்த (ள puttV _) புத்த (ழக puttV _) ப (ுத்திக் b _) ப (ுத்திசாலி b @@ -3234,6 +3314,7 @@ _பெனசீர்_) ப (ுட்டோ b _) பு (ருனாய b _) புரூப pru:fV# _) புரொப (சர profV + _) புரொப (ஸர profV _) புரொபொ (சர profV _) பு (ரோகித p _) ப (ுரோக்கர b @@ -3244,6 +3325,7 @@ _பெனசீர்_) ப (ுட்டோ b _) பு (ரௌச b _) ப (ுல்_L15 f _) புல்க (ா fulk + _) புல்க (ான pulg _) ப (ுல்டோசர b _) ப (ுல்லட் b _) ப (ுல்லா_ f @@ -3336,6 +3418,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ேகத் b _) ப (ேகம b _) ப (ேக்கரி b + _) ப (ேக்கிங்_சோடா b _) ப (ேக்டர f _) ப (ேங்க் b _) ப (ேச்சலர b @@ -3390,6 +3473,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ொம்மனாட்டி p _) ப (ொம்மல b _) ப (ொம்மை b + _) ப (ொலிவிய b _) ப (ோஃபர்ஸ b _) ப (ோஃபோர் b _) ப (ோக_L13 b @@ -3510,8 +3594,11 @@ _பெனசீர்_) ப (ுட்டோ b _) ப்ரோட (ான pro:t _) ப் (ரௌச b _) ப் (ரௌன b + _) ப் (ளவர f _) ப் (ளவுஸ b _) ப்ளாப் fl.a:p + _) ப் (ளாஷ f + _) ப் (ளாஸ்க f _) ப் (ளூஸ b _) ப் (ளோரிடா f _) ப் (ளௌஸ b @@ -3524,17 +3611,21 @@ _பெனசீர்_) ப (ுட்டோ b நடை) ப pV# _கேம்) ப pV# _பிரதீ) ப pV# + அஷ்ர) ப fV# ஒலிம்) ப pV# சங்கல்) ப pV# _சொல்) ப pV# _நிலை) ப pV# _பயன்) ப pV# _விகல்) ப pV# + _ஸ்டம்) ப pV# அடால்) ப fV# அஷ்ரா) ப fV# _ஒL10ி) ப pV# _செயல்) ப pV# +_முஷார) ப fV# _ருடால்) ப fV# +_ஸ்டாம்) ப pV# _ஷரீ) ப (+ fV# _ஷெரீ) ப (+ fV# _ஸ்தா) ப (+ bV# @@ -3561,6 +3652,7 @@ _விரகதா) ப (+ bV# தென்) ப (குதி pV அக்கம்) ப (க்க bV ப (க்கK pV + _தா) ப (க்கணல bV பரம) ப (க்த bV ராம) ப (க்த bV _தா) ப (ங்கள bV @@ -3676,6 +3768,7 @@ _ஜெனி) ப (ர fV _பக்கப்) ப (ல bV ஆன்ம) ப (ல bV படைப்) ப (ல bV +_பிரின்L04ி) ப (ல p _முனிசி) ப (ல pV ஆயுதப்) ப (ல bV _சம) ப (லங்கள bV @@ -3694,6 +3787,7 @@ _முனிசி) ப (ல pV த) ப (ஸ bV _வா) ப (ஸ pV ஆக்டோ) ப (ஸ pV + _ப்ரொ) ப (ஸர fV _தீ) ப (ா p _கலி) ப (ா f _கலீ) ப (ா f @@ -3766,6 +3860,7 @@ _வெளிப்) ப (ாக b _) பாபவிமோசன pa:bVvimo:tSV _சாயி) பாப (ா ba:b _சாய்) பாப (ா ba:b + அலி) பாப (ா ba:b அலை) ப (ாய p அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V# அல்) ப (ாயு p @@ -3774,6 +3869,7 @@ _வெளிப்) ப (ாக b எதிர்) ப (ார p _பிளாட்) ப (ார f _யுக) ப (ாரதி b +_டி) பார்ட்மெண்ட pa:rt.men.t.V# இன்) ப (ார்ம f _யூனி) ப (ார்ம f அ) பார்மெண்ட pa:rment.V# @@ -3859,6 +3955,7 @@ _கன்னா) ப (ின்னா p _மா) ப (ியா f _கன்) பி (யுச f _பெர்) பி (யூம f + _கடற்) பி (ர p _வரப்) பி (ரL04ாத p _ஞான) பிரக (ா prVk _ஞானப்) பிரக (ா prVk @@ -3880,6 +3977,7 @@ _ஞானப்) பிரக (ா prVk _சொற்) பி (ரயோக p L03ந்தப்) பி (ரளய p _சொற்) பி (ரவாக p + உட்) பி (ரவேச p எக்ஸ்) பிர (ஸ pre ஆ) பி (ரஹாம b பயப்) பி (ராந்தி b @@ -3915,6 +4013,7 @@ _ஷண்முக) பி (ரிய p ஆண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p அச்சா) ப (ீ f +_தபாலா) ப (ீ f _ர) பீக் fi:k உப) ப (ீட p விக்கி) ப (ீடியா p @@ -3940,6 +4039,7 @@ _ஷண்முக) பி (ரிய p _மர) ப (ுரிமை b இன்) ப (ுற b _துன்) ப (ுற b + _நம்) ப (ுற b ப (ுறK p _பா) ப (ுலர p _) பு (ளோரன்ஸ f @@ -3961,6 +4061,7 @@ _கோலாலம்) ப (ூர p _வட) ப (ெண்ணை p _தென்) ப (ெண்ணை p _கம்) ப (ெனி p + _மறு) ப (ெயர p இடம்) ப (ெயர p _புலம்) ப (ெயர p மொழி) ப (ெயர் p @@ -4088,9 +4189,11 @@ _மைக்ரோசா) ப் (ட f _ச) ப்த (மிய ptV _ச) ப் (தரிஷி p _ச) ப் (தஸ்வர p + _லு) ப் (தான f _ஹி) ப்னாட (ிச pna:t. கர்) ப்ப bbV# _நவா) ப்ப bbV# + _நகர்) ப்ப ppV# _ராமசு) ப்ப bbV# L03) ப்ப (ங்களா bbV L03) ப்ப (தில bbV @@ -4132,6 +4235,7 @@ _யாதவ) ப்பி (ரகாச pp _வெளி) ப்பி (ரகார pp அதிக) ப்பி (ரசங்க pp L03) ப்பிரச (ார pprVtS + _மலை) ப்பி (ரதேச pp _வன) ப்பி (ரதேச pp _காட்டு) ப்பி (ரதேச pp _நில) ப்பி (ரபு pp @@ -4174,12 +4278,14 @@ _சந்தேக) ப்ப (ுத்தி bb _யூ) ப்ரட (ீஸ frVt. _சு) ப் (ரியா p _ஸ்ரீ) ப் (ரியா p + அ) ப் (ரீதி f _சு) ப் (ரீம p _) ப் (ரீயா f _கம்) ப் (ரெஸ p இம்) ப் (ரெஸ p _) ப் (லெட்சர f _மா) ப் (ள p + _ம) ப் (ளர f ஏரோ) ப் (ளேன p _) ப் (ளோரன்ஸ f ப் (ஸ p @@ -4298,6 +4404,7 @@ _சந்தேக) ப்ப (ுத்தி bb வ (B v _) வி (யா v வி (யூக v +இண்டர்) வி (யூ v .group ஶ @@ -4369,6 +4476,13 @@ _சந்தேக) ப்ப (ுத்தி bb இ (ரவைகள இ (ரவையை இ (ராக + இ (ராக்_ i + இ (ராக்_கால + இ (ராக்கிட i + இ (ராக்கின i + இ (ராக்கில i + இ (ராக்கு i + இ (ராக்கை i இ (ராச இ (ராஜ இராஞ்ச ra:n^tSV# @@ -4407,6 +4521,7 @@ _சந்தேக) ப்ப (ுத்தி bb இ (லவங்க இ (லவங்காய i இ (லாகவ + இலாக (ூர la:H இ (லாப இ (லாவண்ய இலேக்க (ிய le:gg diff --git a/phsource/compile_report b/phsource/compile_report index 73cae512..a8ca1a0a 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,5 +1,5 @@ -89 phoneme tables +91 phoneme tables new total base 109 109 consonants 11 119 @@ -61,7 +61,7 @@ consonants 11 119 vi-sgn 18 151 zhy 41 138 zh 64 155 - sw 9 110 + sw 19 109 tr 20 129 ku 18 129 id 16 128 @@ -83,6 +83,8 @@ consonants 11 119 dv 14 149 te 18 149 si 24 155 + gu 1 149 + as 12 152 tn 27 121 mt 32 129 bo 10 153 @@ -223,6 +225,7 @@ dzh/dzh_ [dZ] base dzh/dzh2 [dZ] hr [dZ;] hr dzh/dz_pzd [J] base + [J] sw [J] tr [J] ku dzh/dz_pzd_ [J] base @@ -296,6 +299,7 @@ g/g [g] base [g] ru [g;] bg [g] es + [g] sw g/g_ [g] base [g-] en [g] cy @@ -312,6 +316,7 @@ g/xg [g] base [g] ru [g;] bg [g] es + [g] sw g/xgr [g] fr h/h_ [h] base [h] fi @@ -409,6 +414,7 @@ klatt/b [b] base [b] fr klatt/bh [B] base klatt/dz_pzd [J] base + [J] sw [J] tr klatt/dz_pzd_ [J] base klatt/m [m] base @@ -420,9 +426,12 @@ klatt/n [n] base [n] fr klatt/n^ [n^] base [n#] ru + [n^] sw klatt/n^@ [n^] base [n#] ru + [n^] sw klatt/nn [N] base + [N] sw klatt/nn_ [N] base klatt/nr [n.] base klatt/n-syl [n-] base @@ -589,9 +598,11 @@ n^/_n^ [n^] base n^/n^_ [n^] base [n;] lt [n#] ru + [n^] sw n^/n^@ [n^] base [n;] lt [n#] ru + [n^] sw n^/n^#_ [n^#] is n/_n [n] base [n] fr @@ -605,6 +616,7 @@ n/n#_ [n#] is n^/n^a [n^] base [n;] lt [n#] ru + [n^] sw n/na [n] base [n] fr [n#] is @@ -612,6 +624,7 @@ n/na [n] base n^/n^e [n^] base [n;] lt [n#] ru + [n^] sw n/ne [n] base [n] fr [n#] is @@ -619,6 +632,7 @@ n/ne [n] base n^/n^i [n^] base [n;] lt [n#] ru + [n^] sw n/ni [n] base [n] fr [n#] is @@ -632,32 +646,40 @@ n/n_long_ [n] fr nn/_nn [N] base [N] zh nn/nn_ [N] base + [N] sw nn/nn@ [N] base [N#] is [N] zh + [N] sw nn/nn#_ [N#] is nn/nn2_ [N] zh [N-] zh nn/nna [N] base [N#] is [N] zh + [N] sw nn/nne [N] base [N#] is [N] zh + [N] sw nn/nni [N] base [N#] is [N] zh + [N] sw nn/nnj [N] base nn/nno [N] base [N#] is [N] zh + [N] sw nn/nn-syl [N-] base nn/nnu [N] base [N#] is [N] zh + [N] sw n^/n^o [n^] base [n;] lt [n#] ru + [n^] sw n/no [n] base [n] fr [n#] is @@ -675,6 +697,7 @@ n/n-syl [n-] base n^/n^u [n^] base [n;] lt [n#] ru + [n^] sw n/nu [n] base [n] fr [n#] is @@ -823,6 +846,7 @@ ufric/s_ [s] base [z] fr [s] es [z;] ro + [s] sw [z] sq ufric/s! [s] base [s] fr @@ -836,6 +860,7 @@ ufric/sh_ [S] base [S] fr ufric/sh3 [S] hr [Z] hr + [S] sw ufric/sh_pzd [S;] base [Z;] base [S;] ro @@ -851,11 +876,13 @@ ufric/s_pal [s^] et ufric/s_pzd [s;] base [z;] base [s;] ro + [z] sw ufric/s_pzd_ [s;] base [z;] base ufric/sx_sv [sx] sv ufric/th [T] base ufric/th_ [T] base + [T] sw ufric/tl# [tl#] is [tl#] kl ufric/tlh [K] nso @@ -883,6 +910,7 @@ ustop/k_ [k] base [k] fr [k] lv [k] el + [k] sw [k] sq [k] sl ustop/k_asp [k#] consonants @@ -946,6 +974,7 @@ ustop/null [?] base ustop/p [p] base [p2] fr [p] zhy + [p] sw [p] da ustop/p_ [p] base [ph] consonants @@ -1021,6 +1050,7 @@ ustop/t_dnt [t] base [t] sl ustop/t_dnt2 [t] base2 [d] kn +ustop/t_hard [t] sw ustop/t_hi [t[] base [t] et [t^] et @@ -1556,6 +1586,7 @@ voc/z_pzd [Z;] base [z;] base voc/z_pzd_ [Z;] base [z;] base + [z] sw vowel/@ [@] base [@] en [@] en-rp @@ -1590,7 +1621,6 @@ vowel/0 [0] en [O] grc vowel/0_2 [0] en-n [O] pt-pt - [o] sw [O] sl [o] nso [o] tn @@ -1606,6 +1636,7 @@ vowel/@_2 [@:] vi [@/] sq [V] tt vowel/&_2 [&] bn + [&] as vowel/@_3 [@#] en [@] en-sc [I] en-sc @@ -1695,7 +1726,6 @@ vowel/a#_2 [A] nl [&] hr [a] sv [a] is - [a/] sw [a] tr [a] ka [a] nso @@ -1718,6 +1748,7 @@ vowel/a_3 [a] en-sc [a] sq [a] ka [a:] si + [a] as vowel/a#_3 [a#] en [a#] en-n [a#] en-us @@ -1856,6 +1887,7 @@ vowel/e [e] base [e] dv [e:] dv [e:] te + [e] as [E] kl vowel/e# [I] en-sc [e] et @@ -2074,6 +2106,7 @@ vowel/i_6 [i] bn [i] dv [i] te [i] si + [i] as vowel/i#_6 [i.] zh vowel/i_7 [i:] et [i] pl @@ -2212,6 +2245,7 @@ vowel/o [o] base2 [o:] wo [o] te [o:] te + [o] as [o] bo [o] kl vowel/o_2 [o:] cy @@ -2226,6 +2260,7 @@ vowel/o-_2 [V] en-n vowel/o_3 [oU] en-sc [o] kk vowel/o-_3 [U] en-rp +vowel/o_4 [o] sw vowel/o-_4 [o] ro [o] am vowel/o_5 [o] vi-sgn @@ -2327,6 +2362,7 @@ vowel/oo_5 [O] bn [O] pl [O] is [O] sq + [O] as vowel/oo_en [O] en [O:] en [O@] en @@ -2368,6 +2404,7 @@ vowel/u [u] base [u] prs [u] ak [u:] wo + [u] as [u] bo [u] tt vowel/u# [u:] en-sc @@ -2392,7 +2429,6 @@ vowel/u#_4 [U] en-sc [y] ml [y] vi-sgn vowel/u_5 [U1] et - [u] sw [u] nso [u] tn vowel/u#_5 [y] vi @@ -2449,6 +2485,7 @@ vowel/u_bck2 [u] et [u:] fr [u:] la [u] es + [u] sw [u] fa [u] ht [u] kl @@ -2724,17 +2761,22 @@ w/w_ [w] base w/w@ [w] base [w] fr [w/] fr + [w] sw w/w2 [w2] base2 [w] pl + [w] sw [w] sq w/wa [w] base + [w] sw w/we [w] base [w] fr [w/] fr + [w] sw w/wi [w] base [w] fr [w/] fr [i] vi + [w] sw w/wi2 [i:] en [i:] en-n [i:] en-sc @@ -2746,11 +2788,14 @@ w/wi2 [i:] en w/wo [w] base [w] fr [w/] fr + [w] sw w/wu [w] base [w] fr [w/] fr + [w] sw w/xw [w] base [w/] fr + [w] sw x/b [b] base [b] fr [b;] ro @@ -2798,6 +2843,7 @@ x/dzh_ [dZ] base [dZ;] lt [dZ;] mk [dZ;] ru + [J] sw x/dz_pzd [dZ;] base [dZ;] mk [dZ;] ko @@ -2814,5 +2860,6 @@ x/g2 [g] base [g;] bg [g] es [g] is + [g] sw x/g2_ [g-] en x/g3 [g] ru diff --git a/phsource/m/mu b/phsource/m/mu index 9d60e925a7d9788e516022382941f4706afe669b..fe3d91b460d799744e75ab158b05312fd7fba10b 100644 GIT binary patch literal 1614 zcmd6n%WD%+6vn@q%p~(jCNE7)6Kic^8=+cLLB)z4T7?$6s3r@m;3|lsB8Ur@!G&)0 zFL2{dSN;W2X5msnq3*MHUZuqnIyOnbYTwXKEC@PIlp|jy>)S|)4sH%1Gsz7 zK$rdK$2Z^j;oLW${#uB&ZH%6Hhn~Bu`Pw%3NdosZm|wA=UFBF3=oo=r(+8T|72fy5 zLSmo|G(!Uj<=gvyQhk5ld^`Ld(ID0)2?c*Z zsP`WdYG4b?I7%WVOp#KJafo>wisdyOV6fqHM62eI$rCN(Oj1u}1gk*dp_E4m)^K9h0&wIB3 zdq>+D@z4jr5+(M~M;%UA@9JY7GHZHGAM?~Rf zS=kfU|EAmX#+7FtQsc@@H84eqU#!1*!!F|yZsR#N@Dg{>!U9fWNo5Ns7>kS+PILV_ zR?$X>YiC&bvp7Nr6j|%=?WIJvuV>b{jo8v_J>v)rPfx_)~>Zbv=*&2V5@>fR05)cAP8QH zsEE{yc=S|y5Dy+iu!kr;cv0%zgNOVHJ$TZBe&1}S&7nv0cr)L5^JcUAnKv^#Gk&T# zJANSq;P!nJ*V)(peCv}RjD2gVIg+1HDQY&Ba(QR8e}< z&W9^TpywQzT3>dzb-TCBj3DPh9w>*(@@m-E5$Fz_#vr<}7cEG`hJ!dZ4p2VJyms=rBiN zYMXsT^&$2qU1qJVHllJzey^7!@(J**&#JF&wqu&*Bw4QQz;e?5KP)G0&9W0SIF25& z%c7M$bF?=40USgg9<50+Nt0{?*|@YMY1PvjXic;f$q92IX>QG@)mZ4+^f*~3Xfd^0 z(#xJmD{d)rCW&f#!dFa)ibYjx^9i*qzpe!weRIj~Q_{C|tjMuc@{hlpxasCXAJqJc z@wmR%SW&fj)f!D#s&%$$-$`iw#)&vuzi?NhS}%A%w`zB%x*S3Y*YFg#$gT|oti}Nx z!Z7CW5)auHa2Q>*4vb-*)C;WPF6?J^KhEM3CNRXvAXjyhq({P8wrNF9_yxp-fkWnw zs#=K$CMUpA`yxAIQ)Or#ceRPSk(S}Jvb2#u@9NG}X|1;_QPcRAj?FR}+y!MUXDUWX zQCl@$d!?%WZdLM{PF-xHS?gDh()=K_C-TwpgA)JT+ diff --git a/phsource/ph_irish b/phsource/ph_irish index 8cdc4602..ee7360b2 100755 --- a/phsource/ph_irish +++ b/phsource/ph_irish @@ -1,6 +1,6 @@ // Irish Phonemes //Please contact espeak.gaeilge@gmail.com -// Version 2.7 2013 +// Version 2.8 2013 // short vowels diff --git a/phsource/ph_swahili b/phsource/ph_swahili index fe3c7ac0..c87cb045 100644 --- a/phsource/ph_swahili +++ b/phsource/ph_swahili @@ -7,42 +7,34 @@ phoneme i vowel starttype #i endtype #i - length 165 + length 200 FMT(vowel/i) endphoneme phoneme e vowel starttype #e endtype #e - length 180 + length 210 FMT(vowel/e_mid2) endphoneme -phoneme a/ - vowel starttype #@ endtype #@ - length 180 - FMT(vowel/a#_2) -endphoneme - - phoneme a vowel starttype #a endtype #a - length 180 - ChangeIfUnstressed(a/) + length 210 FMT(vowel/a_5) endphoneme phoneme o vowel starttype #o endtype #o - length 180 - FMT(vowel/0_2) + length 210 + FMT(vowel/o_4) endphoneme phoneme u vowel starttype #u endtype #u - length 170 - FMT(vowel/u_5) + length 200 + FMT(vowel/u_bck2) endphoneme @@ -57,5 +49,201 @@ phoneme d // dental variant of /d/ import_phoneme base2/d 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 diff --git a/phsource/phonemes b/phsource/phonemes index 1d59c748..2e63bc09 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1928,6 +1928,15 @@ include ph_telugu phonemetable si hi include ph_sinhala +phonemetable gu hi +include ph_gujarati + +phonemetable as bn +include ph_assamese + + + + phonemetable tn base include ph_setswana diff --git a/src/compiledata.cpp b/src/compiledata.cpp index b633057a..662e5087 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -1639,6 +1639,12 @@ int LoadSpect(const char *path, int control) } spectseq->Load(stream); + if(spectseq->frames == NULL) + { + error("Bad vowel file, no frames: '%s'",path); + return(0); + } + // do we need additional klatt data ? for(frame=0; frame < spectseq->numframes; frame++) { @@ -3616,6 +3622,11 @@ make_envs(); "# ------- ---------\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"); f_phdata = fopen_log(f_errors,fname,"wb"); diff --git a/src/compiledict.cpp b/src/compiledict.cpp index 337e3aa6..bfec9aca 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -919,8 +919,8 @@ int isHexDigit(int c) } -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 static char *outbuf[5] = {rule_cond, rule_pre, rule_match, rule_post, rule_phonemes}; static int next_state[5] = {2,2,4,4,4}; @@ -934,6 +934,7 @@ static void copy_rule_string(char *string, int &state) int value; int literal; int hexdigit_input = 0; + int state = *state_out; MNEM_TAB *mr; if(string[0] == 0) return; @@ -1174,7 +1175,7 @@ static void copy_rule_string(char *string, int &state) if(c == 0) break; } - state = next_state[state]; + *state_out = next_state[state]; } // end of copy_rule_string @@ -1213,14 +1214,14 @@ static char *compile_rule(char *input) case ')': // end of prefix section *p = 0; state = 1; - copy_rule_string(buf,state); + copy_rule_string(buf,&state); p = buf; break; case '(': // start of suffix section *p = 0; state = 2; - copy_rule_string(buf,state); + copy_rule_string(buf,&state); state = 3; p = buf; if(input[ix+1] == ' ') @@ -1234,14 +1235,14 @@ static char *compile_rule(char *input) case '\r': case 0: // end of line *p = 0; - copy_rule_string(buf,state); + copy_rule_string(buf,&state); finish=1; break; case '\t': // end of section section case ' ': *p = 0; - copy_rule_string(buf,state); + copy_rule_string(buf,&state); p = buf; break; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 87ef77b0..940b9b44 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -526,7 +526,7 @@ unsigned short ipa1[96] = { 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 int phon_out_size = 0; @@ -965,7 +965,7 @@ int Unpronouncable(Translator *tr, char *word, int posn) -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 unsigned char phcode; @@ -992,7 +992,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * { /* primary stress on preceeding vowel */ 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)) { @@ -1018,7 +1018,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * } else { - if((ph->std_length < 4) || (stressed_syllable == 0)) + if((ph->std_length < 4) || (*stressed_syllable == 0)) { stress = ph->std_length; @@ -1058,14 +1058,14 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * *ph_out = 0; /* 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; - primary_posn = stressed_syllable; + primary_posn = *stressed_syllable; } if(max_stress == 5) @@ -1090,8 +1090,8 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char * max_stress = 4; } - stressed_syllable = primary_posn; - vowel_count = count; + *stressed_syllable = primary_posn; + *vowel_count = count; return(max_stress); } // end of GetVowelStress @@ -1113,7 +1113,7 @@ void ChangeWordStress(Translator *tr, char *word, int new_stress) signed char vowel_stress[N_WORD_PHONEMES/2]; 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) { @@ -1240,7 +1240,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, 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) { max_stress = 0; @@ -1542,6 +1542,17 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, vowel_stress[stressed_syllable] = 4; max_stress = 4; 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 */ @@ -3040,7 +3051,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if(tr->transpose_min > 0) { 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; } else diff --git a/src/espeak.cpp b/src/espeak.cpp index 2e769e0b..dbd83f22 100644 --- a/src/espeak.cpp +++ b/src/espeak.cpp @@ -80,6 +80,7 @@ static const char *help_text = "--split=\"\"\n" "\t Starts a new WAV file every . Used with -w\n" "--stdout Write speech output to stdout\n" +"--version Shows version number and date, and location of espeak-data\n" "--voices=\n" "\t List the available voices for the specified language.\n" "\t If is omitted, then list all voices.\n"; diff --git a/src/event.cpp b/src/event.cpp index fe2aa9b0..e143891d 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -41,7 +41,7 @@ // event=0x%x\n",event); @@ -147,17 +147,17 @@ ENTER("event_display"); static espeak_EVENT* event_copy (espeak_EVENT* event) { ENTER("event_copy"); - + if (event==NULL) { return NULL; } - + espeak_EVENT* a_event=(espeak_EVENT*)malloc(sizeof(espeak_EVENT)); if (a_event) { memcpy(a_event, event, sizeof(espeak_EVENT)); - + switch(event->type) { case espeakEVENT_MARK: @@ -167,14 +167,14 @@ static espeak_EVENT* event_copy (espeak_EVENT* event) a_event->id.name = strdup(event->id.name); } break; - + default: break; } } - + event_display(a_event); - + return a_event; } @@ -288,7 +288,7 @@ ENTER("event_declare"); 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; if (!a_status) @@ -310,7 +310,7 @@ ENTER("event_declare"); // // 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) SHOW_TIME("event_declare > post my_sem_start_is_required\n"); sem_post(&my_sem_start_is_required); @@ -400,18 +400,18 @@ ENTER("sleep_until_timeout_or_stop_request"); 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, 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) { continue; // Restart when interrupted by handler } 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); if (err == 0) @@ -425,7 +425,7 @@ ENTER("sleep_until_timeout_or_stop_request"); //> // unlocked\n"); 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__); while(0 == sem_trywait(&my_sem_stop_is_required)) @@ -514,27 +514,27 @@ ENTER("polling_thread"); } // 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"); while(0 == sem_trywait(&my_sem_start_is_required)) { }; - + espeak_EVENT* event = (espeak_EVENT*)(head->data); assert(event); - + 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); - if (a_stop_is_required) + if (a_stop_is_required > 0) { break; } else if (err != 0) - { + { // No available time: the event is deleted. SHOW("polling_thread > %s\n","audio device down"); a_status = pthread_mutex_lock(&my_mutex); @@ -548,22 +548,22 @@ ENTER("polling_thread"); if (my_callback) { 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). event->type=espeakEVENT_LIST_TERMINATED; event->user_data=NULL; } - + a_status = pthread_mutex_lock(&my_mutex); SHOW_TIME("polling_thread > locked\n"); event_delete( (espeak_EVENT*)pop()); a_status = pthread_mutex_unlock(&my_mutex); SHOW_TIME("polling_thread > unlocked\n"); - + 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) + + if ((a_status==0) && (a_stop_is_required > 0)) { SHOW("polling_thread > stop required (%d)\n", __LINE__); while(0 == sem_trywait(&my_sem_stop_is_required)) @@ -580,17 +580,17 @@ ENTER("polling_thread"); a_stop_is_required = sleep_until_timeout_or_stop_request(time_in_ms); } } - + a_status = pthread_mutex_lock(&my_mutex); SHOW_TIME("polling_thread > locked\n"); - + SHOW_TIME("polling_thread > my_event_is_running = 0\n"); 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); - 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__); while(0 == sem_trywait(&my_sem_stop_is_required)) @@ -606,8 +606,8 @@ ENTER("polling_thread"); a_status = pthread_mutex_unlock(&my_mutex); SHOW_TIME("polling_thread > unlocked\n"); - if (a_stop_is_required) - { + if (a_stop_is_required > 0) + { SHOW("polling_thread > %s\n","stop required!"); // no mutex required since the stop command is synchronous // and waiting for my_sem_stop_is_acknowledged @@ -643,13 +643,13 @@ static espeak_ERROR push(void* the_data) SHOW("event > push > %s\n", "EE_BUFFER_FULL"); return EE_BUFFER_FULL; } - + node *n = (node *)malloc(sizeof(node)); if (n == NULL) { return EE_INTERNAL_ERROR; } - + if (head == NULL) { head = n; @@ -660,13 +660,13 @@ static espeak_ERROR push(void* the_data) tail->next = n; tail = n; } - + tail->next = NULL; tail->data = the_data; - + node_counter++; SHOW("event > push > counter=%d (uid=%d)\n",node_counter,((espeak_EVENT*)the_data)->unique_identifier); - + return EE_OK; } @@ -674,9 +674,9 @@ static void* pop() { ENTER("event > pop"); void* the_data = NULL; - + assert((!head && !tail) || (head && tail)); - + if (head != NULL) { node* n = head; @@ -686,12 +686,12 @@ static void* pop() node_counter--; SHOW("event > pop > event=0x%x (counter=%d, uid=%d)\n",the_data, node_counter,((espeak_EVENT*)the_data)->unique_identifier); } - + if(head == NULL) { tail = NULL; } - + return the_data; } @@ -699,10 +699,10 @@ static void* pop() static void init() { ENTER("event > init"); - + while (event_delete( (espeak_EVENT*)pop() )) {} - + node_counter = 0; } @@ -711,7 +711,7 @@ static void init() void event_terminate() { ENTER("event_terminate"); - + if (my_thread) { pthread_cancel(my_thread); diff --git a/src/fifo.cpp b/src/fifo.cpp index bf9cc83f..445919d5 100644 --- a/src/fifo.cpp +++ b/src/fifo.cpp @@ -43,7 +43,7 @@ //> // post my_sem_start_is_required\n"); sem_post(&my_sem_start_is_required); int val=1; - while (val) + while (val > 0) { usleep(50000); // TBD: event? sem_getvalue(&my_sem_start_is_required, &val); @@ -148,8 +148,8 @@ espeak_ERROR fifo_add_command (t_espeak_command* the_command) espeak_ERROR fifo_add_commands (t_espeak_command* command1, t_espeak_command* command2) { 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; if (!a_status) @@ -172,12 +172,12 @@ espeak_ERROR fifo_add_commands (t_espeak_command* command1, t_espeak_command* co 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) SHOW_TIME("fifo_add_command > post my_sem_start_is_required\n"); sem_post(&my_sem_start_is_required); int val=1; - while (val) + while (val > 0) { usleep(50000); // TBD: event? sem_getvalue(&my_sem_start_is_required, &val); @@ -275,9 +275,9 @@ static int sleep_until_start_request_or_inactivity() int a_start_is_required=0; // 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. // int i=0; @@ -306,18 +306,18 @@ static int sleep_until_start_request_or_inactivity() 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, 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) { continue; } 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); if (err==0) @@ -336,8 +336,8 @@ static void close_stream() { 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; int a_status = pthread_mutex_lock(&my_mutex); @@ -359,7 +359,7 @@ static void close_stream() a_stop_is_required = my_stop_is_required; a_status = pthread_mutex_unlock(&my_mutex); - + if (a_stop_is_required) { // acknowledge the stop request @@ -438,7 +438,7 @@ static void* say_thread(void*) }; if (my_stop_is_required) - { + { SHOW_TIME("say_thread > my_command_is_running = 0\n"); my_command_is_running = 0; } @@ -454,7 +454,7 @@ static void* say_thread(void*) } if (my_stop_is_required) - { + { // no mutex required since the stop command is synchronous // and waiting for my_sem_stop_is_acknowledged init(1); @@ -464,16 +464,16 @@ static void* say_thread(void*) while(0==sem_trywait(&my_sem_start_is_required)) { }; - + // acknowledge the stop request SHOW_TIME("say_thread > post my_sem_stop_is_acknowledged\n"); int a_status = sem_post(&my_sem_stop_is_acknowledged); assert( a_status != -1); } // 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; } @@ -517,7 +517,7 @@ static espeak_ERROR push(t_espeak_command* the_command) { return EE_INTERNAL_ERROR; } - + if (head == NULL) { head = n; @@ -528,7 +528,7 @@ static espeak_ERROR push(t_espeak_command* the_command) tail->next = n; tail = n; } - + tail->next = NULL; tail->data = the_command; @@ -564,7 +564,7 @@ static t_espeak_command* pop() } display_espeak_command(the_command); - + return the_command; } diff --git a/src/intonation.cpp b/src/intonation.cpp index b6dfa71e..e4c68bc4 100644 --- a/src/intonation.cpp +++ b/src/intonation.cpp @@ -338,7 +338,7 @@ static void count_pitch_vowels(int start, int end, int clause_end) number_body = 0; number_tail = 0; /* number between tonic syllable and next primary */ last_primary = -1; - + for(ix=start; ixonset << 8; used_onset = 1; - } + } if(n_steps > tune->head_max_steps) n_steps = tune->head_max_steps; @@ -697,7 +697,7 @@ static int calc_pitch_segment(int ix, int end_ix, TONE_HEAD *th, TONE_NUCLEUS *t n_primary--; if((tn->backwards) && (n_primary < 2)) { - pitch = tn->backwards[n_primary] << 8; + pitch = tn->backwards[n_primary] << 8; } } @@ -745,7 +745,7 @@ static void SetPitchGradient(int start_ix, int end_ix, int start_pitch, int end_ if(n_increments <= 0) return; - + if(n_increments > 1) { increment = increment / n_increments; @@ -802,7 +802,7 @@ static int calc_pitches2(int start, int end, int tune_number) 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); @@ -811,7 +811,7 @@ static int calc_pitches2(int start, int end, int tune_number) /* tonic syllable */ /******************/ - + // if(tn->flags & T_EMPH) // { // syllable_tab[ix].flags |= SYL_EMPHASIS; @@ -836,7 +836,7 @@ static int calc_pitches2(int start, int end, int tune_number) /* tail, after the tonic syllable */ /**********************************/ - + SetPitchGradient(ix, end, tune->tail_start, tune->tail_end); return(tone_pitch_env); @@ -877,7 +877,7 @@ static int calc_pitches(int control, int start, int end, int tune_number) 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 = SetBodyIntonation(&tunes[0], ix, tone_posn, 0); @@ -887,7 +887,7 @@ static int calc_pitches(int control, int start, int end, int tune_number) /* tonic syllable */ /******************/ - + if(tn->flags & T_EMPH) { syllable_tab[ix].flags |= SYL_EMPHASIS; @@ -912,7 +912,7 @@ static int calc_pitches(int control, int start, int end, int tune_number) /* tail, after the tonic syllable */ /**********************************/ - + SetPitchGradient(ix, end, tn->tail_start, tn->tail_end); return(tone_pitch_env); @@ -1037,7 +1037,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone) if(tph->mnemonic == 0x343132) // [214] prev_p->tone_ph = PhonemeCode2('3','5'); 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] { @@ -1176,7 +1176,7 @@ void CalcPitches(Translator *tr, int clause_type) } 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_comma = tr->punct_to_tone[option][1]; // emphatic form of statement } @@ -1283,14 +1283,14 @@ void CalcPitches(Translator *tr, int clause_type) calc_pitches(option, st_start, st_ix, group_tone); } - + // unpack pitch data st_ix=0; for(ix=ph_start; ix < ph_end; ix++) { p = &phoneme_list[ix]; p->stresslevel = syllable_tab[st_ix].stress; - + if(p->synthflags & SFLAG_SYLLABLE) { syl = &syllable_tab[st_ix]; @@ -1327,11 +1327,11 @@ if(p->tone_ph) { p->stresslevel |= 8; // emphasized } - + st_ix++; } } } // end of CalcPitches - + diff --git a/src/numbers.cpp b/src/numbers.cpp index 4e21ae2b..aec0dcbf 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -847,47 +847,50 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) // speak in the language for this alphabet (or English) 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 - - hangul_buf[0] = ' '; - p3 = &hangul_buf[1]; - if((initial = (code/28)/21) != 11) + if(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af)) { - p3 += utf8_out(initial + 0x1100, p3); + // 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) + { + 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 + { + 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; + } } } } diff --git a/src/readclause.cpp b/src/readclause.cpp index 4305c0ab..c2d69272 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -1259,7 +1259,7 @@ static const char *VoiceFromStack() -static void ProcessParamStack(char *outbuf, int &outix) +static void ProcessParamStack(char *outbuf, int *outix) {//==================================================== // Set the speech parameters from the parameter stack int param; @@ -1308,8 +1308,8 @@ static void ProcessParamStack(char *outbuf, int &outix) } speech_parameters[param] = new_parameters[param]; - strcpy(&outbuf[outix],buf); - outix += strlen(buf); + strcpy(&outbuf[*outix],buf); + *outix += strlen(buf); } } } // end of ProcessParamStack @@ -1333,7 +1333,7 @@ static PARAM_STACK *PushParamStack(int tag_type) } // 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 int ix; @@ -1503,10 +1503,14 @@ static int attr_prosody_value(int param_type, const wchar_t *pw, int *value_out) if((tail[0]=='s') && (tail[1]=='t')) { +#ifdef PLATFORM_RISCOS + *value_out = 100; +#else double x; // 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; +#endif return(2); // percentage } @@ -1734,7 +1738,7 @@ static void SetProsodyParameter(int param_type, wchar_t *attr1, PARAM_STACK *sp) } // 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 static MNEM_TAB keynames[] = { @@ -1753,14 +1757,14 @@ static int ReplaceKeyName(char *outbuf, int index, int &outix) if((letter = LookupMnem(keynames, p)) != 0) { ix = utf8_out(letter, p); - outix = index + ix; + *outix = index + ix; return(letter); } 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 '>' // returns a clause terminator value. @@ -1845,7 +1849,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb // closing tag if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != HTML_NOSPACE) { - outbuf[outix++] = ' '; + outbuf[(*outix)++] = ' '; } tag_type += SSML_CLOSE; } @@ -1854,7 +1858,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if((tag_type = LookupMnem(ssmltags,tag_name)) != HTML_NOSPACE) { // separate SSML tags from the previous word (but not HMTL tags such as which can occur inside a word) - outbuf[outix++] = ' '; + outbuf[(*outix)++] = ' '; } if(self_closing && ignore_if_self_closing[tag_type]) @@ -1954,22 +1958,22 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb } 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 break; case SSML_SAYAS + SSML_CLOSE: if(sayas_mode == SAYAS_KEY) { - outbuf[outix] = 0; + outbuf[*outix] = 0; ReplaceKeyName(outbuf, sayas_start, outix); } - outbuf[outix++] = CTRL_EMBEDDED; - outbuf[outix++] = 'Y'; + outbuf[(*outix)++] = CTRL_EMBEDDED; + outbuf[(*outix)++] = 'Y'; sayas_mode = 0; break; @@ -1978,7 +1982,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb { // use the alias rather than the text ignore_text = 1; - outix += attrcopy_utf8(&outbuf[outix],attr1,n_outbuf-outix); + *outix += attrcopy_utf8(&outbuf[*outix],attr1,n_outbuf-*outix); } break; @@ -2008,8 +2012,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if((index = AddNameData(buf,0)) >= 0) { sprintf(buf,"%c%dM",CTRL_EMBEDDED,index); - strcpy(&outbuf[outix],buf); - outix += strlen(buf); + strcpy(&outbuf[*outix],buf); + *outix += strlen(buf); } } break; @@ -2036,8 +2040,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if(index >= 0) { 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; } } @@ -2049,8 +2053,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if(uri_callback(1,uri,xmlbase) == 0) { 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; } } @@ -2080,8 +2084,8 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if(value < 3) { // 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; } value = break_value[value]; @@ -2428,7 +2432,7 @@ f_input = f_in; // for GetC etc 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) { diff --git a/src/speak.cpp b/src/speak.cpp index be869a09..f7f41c0b 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -114,6 +114,7 @@ static const char *help_text = "--split=\"\"\n" "\t Starts a new WAV file every . Used with -w\n" "--stdout Write speech output to stdout\n" +"--version Shows version number and date, and location of espeak-data\n" "--voices=\n" "\t List the available voices for the specified language.\n" "\t If is omitted, then list all voices.\n"; diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index dfbbd687..8319d47c 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -765,10 +765,11 @@ ENTER("espeak_Initialize"); #ifdef PLATFORM_RISCOS setlocale(LC_CTYPE,"ISO8859-1"); #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) - setlocale(LC_CTYPE,""); + if(setlocale(LC_CTYPE,"en_US.UTF-8") == NULL) + setlocale(LC_CTYPE,""); } #endif diff --git a/src/speak_lib.h b/src/speak_lib.h index 65d153c1..8a0b0406 100644 --- a/src/speak_lib.h +++ b/src/speak_lib.h @@ -314,10 +314,13 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then 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 EE_BUFFER_FULL: the command can not be buffered; diff --git a/src/spectdisplay.cpp b/src/spectdisplay.cpp index 080ed3fd..efeb8978 100644 --- a/src/spectdisplay.cpp +++ b/src/spectdisplay.cpp @@ -675,7 +675,7 @@ void SpectDisplay::OnKey(wxKeyEvent& event) break; case '[': // width-- - pk->pkright -= 1; + pk->pkright -= 10; if(pk->pkright < 0) pk->pkright = 0; display = 1; @@ -683,7 +683,21 @@ void SpectDisplay::OnKey(wxKeyEvent& event) break; 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; field = 4; break; diff --git a/src/speech.h b/src/speech.h index 23fc7242..539678bc 100644 --- a/src/speech.h +++ b/src/speech.h @@ -43,7 +43,7 @@ //#define USE_PORTAUDIO //#define USE_PULSEAUDIO #define USE_NANOSLEEP -#define __cdecl +#define __cdecl //#define ESPEAK_API extern "C" #ifdef LIBRARY diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 81f654b0..1811bfab 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.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; int option_device_number = -1; @@ -67,7 +67,7 @@ int vowel_transition[4]; int vowel_transition0; 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); @@ -277,7 +277,7 @@ frameref_t *LookupSpect(PHONEME_TAB *this_ph, int which, FMT_PARAMS *fmt_params, // 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)) { - 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; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index a2444fc1..69db0ed5 100644 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -336,7 +336,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE2; 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); WcmdqInc(); return(length); @@ -357,7 +357,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; q[1] = x; // length in samples - q[2] = long64(&wavefile_data[index]); + q[2] = (long64)(&wavefile_data[index]); q[3] = wav_scale + (amp << 8); WcmdqInc(); @@ -372,7 +372,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; 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); WcmdqInc(); @@ -388,7 +388,7 @@ static int DoSample2(int index, int which, int std_length, int control, int leng q = wcmdq[wcmdq_tail]; q[0] = WCMD_WAVE; 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); WcmdqInc(); } @@ -613,7 +613,7 @@ static int VowelCloseness(frame_t *fr) } -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 formant; @@ -639,7 +639,7 @@ static short vcolouring[N_VCOLOUR][5] = { frame_t *fr = NULL; - if(n_frames < 2) + if(*n_frames < 2) return(0); len = (data1 & 0x3f) * 2; @@ -714,8 +714,8 @@ if(voice->klattv[0]) 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; // degree of glottal-stop effect depends on closeness of vowel (indicated by f1 freq) @@ -723,7 +723,7 @@ if(voice->klattv[0]) } else { - fr = DuplicateLastFrame(seq,n_frames++,len); + fr = DuplicateLastFrame(seq,(*n_frames)++,len); if(len > 36) seq_len_adjust += (len - 36); @@ -737,7 +737,7 @@ if(voice->klattv[0]) if((vcolour > 0) && (vcolour <= N_VCOLOUR)) { - for(ix=0; ixlangopts.max_digits = 22; tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS; } + else + if(name2 == L('o','r')) + { + tr->letter_bits_offset = OFFSET_ORIYA; + } SetIndicLetters(tr); } break; @@ -1455,8 +1464,8 @@ SetLengthMods(tr,3); // all equal break; case L('t','a'): // Tamil - case L('m','l'): // Malayalam case L('k','n'): // Kannada + case L('m','l'): // Malayalam case L('m','r'): // Marathi case L('t','e'): // Telugu { @@ -1464,7 +1473,7 @@ SetLengthMods(tr,3); // all equal 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_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.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 @@ -1483,9 +1492,12 @@ SetLengthMods(tr,3); // all equal else 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->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED; 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 if(name2 == L('k','n')) diff --git a/src/translate.cpp b/src/translate.cpp index b65d0ae9..8ae8c7e3 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -457,6 +457,8 @@ int IsSpace(unsigned int c) return(0); if((c >= 0x2500) && (c < 0x25a0)) return(1); // box drawing characters + if((c >= 0xfff9) && (c <= 0xffff)) + return(1); // unicode specials // if(wcschr(chars_space,c)) // return(1); return(iswspace(c)); @@ -859,6 +861,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt int wflags; int wmark; int was_unpronouncable = 0; + int loopcount; WORD_TAB wtab_null[8]; // translate these to get pronunciations of plural 's' suffix (different forms depending on @@ -1194,7 +1197,7 @@ if(end_type & SUFX_UNPRON) found = 0; 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 // loopcount guards against an endless loop @@ -1726,7 +1729,7 @@ int SetTranslator2(const char *new_language) translator2 = SelectTranslator(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 new_phoneme_tab = -1; @@ -2048,7 +2051,6 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa pre_pause = 1; } - plist2 = &ph_list2[n_ph_list2]; stress = 0; next_stress = 1; srcix = 0; @@ -2076,6 +2078,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa tr->prev_dict_flags[0] = 0; tr->prev_dict_flags[1] = 0; } + plist2 = &ph_list2[n_ph_list2]; if((option_capitals==1) && (word_flags & FLAG_FIRST_UPPER)) { @@ -2292,8 +2295,8 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa -static int EmbeddedCommand(unsigned int &source_index) -{//=================================================== +static int EmbeddedCommand(unsigned int *source_index_out) +{//======================================================= // An embedded command to change the pitch, volume, etc. // returns number of commands added to embedded_list @@ -2304,6 +2307,7 @@ static int EmbeddedCommand(unsigned int &source_index) unsigned char c; char *p; int cmd; + int source_index = *source_index_out; c = source[source_index]; if(c == '+') @@ -2351,6 +2355,7 @@ static int EmbeddedCommand(unsigned int &source_index) } embedded_list[embedded_ix++] = cmd + sign + (value << 8); + *source_index_out = source_index; return(1); } // end of EmbeddedCommand @@ -2758,7 +2763,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t } else { - embedded_count += EmbeddedCommand(source_index); + embedded_count += EmbeddedCommand(&source_index); prev_in_save = prev_in; // replace the embedded command by spaces memset(&source[srcix],' ',source_index-srcix); @@ -2928,19 +2933,25 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre } } - 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; + } + } } } @@ -2979,6 +2990,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre { int next2_in; 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)) { // changing from upper to lower case, start new word at the last uppercase, if 3 or more letters diff --git a/src/voices.cpp b/src/voices.cpp index 4e8470a1..55cb68a1 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -177,7 +177,7 @@ static MNEM_TAB keyword_tab[] = { #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_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 *variant_lists[3] = {variants_either, variants_male, variants_female}; @@ -248,11 +248,11 @@ static void SetToneAdjust(voice_t *voice, int *tone_pts) height2 = tone_pts[pt+1]; if((freq2 - freq1) > 0) { - rate = double(height2-height1)/(freq2-freq1); + rate = (double)(height2-height1)/(freq2-freq1); for(ix=freq1; ix 255) y = 255; voice->tone_adjust[ix] = y; @@ -488,11 +488,11 @@ static void VoiceFormant(char *p) return; if(freq >= 0) - voice->freq[formant] = int(freq * 2.56001); + voice->freq[formant] = (int)(freq * 2.56001); if(height >= 0) - voice->height[formant] = int(height * 2.56001); + voice->height[formant] = (int)(height * 2.56001); if(width >= 0) - voice->width[formant] = int(width * 2.56001); + voice->width[formant] = (int)(width * 2.56001); voice->freqadd[formant] = freqadd; } @@ -804,7 +804,7 @@ voice_t *LoadVoice(const char *vname, int control) n = sscanf(p,"%d %d",&pitch1,&pitch2); voice->pitch_base = (pitch1 - 9) << 12; 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 } break; @@ -1067,7 +1067,6 @@ voice_t *LoadVoice(const char *vname, int control) if((ix = SelectPhonemeTableName(phonemes_name)) < 0) { fprintf(stderr,"Unknown phoneme table: '%s'\n",phonemes_name); - ix = 0; } voice->phoneme_tab_ix = ix; new_translator->phoneme_tab_ix = ix; @@ -1586,6 +1585,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) vp = voices[ix]; // is the main voice the required gender? skip=0; + if((gender != 0) && (vp->gender != gender)) { skip=1; @@ -1594,6 +1594,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) { skip=1; } + if(skip==0) { voices2[ix2++] = vp; @@ -1868,7 +1869,8 @@ espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector) void FreeVoiceList() {//================= - for(int ix=0; ixn_harmonic_peaks; ix++) { 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; - if((peaks[ix].height = int(peaks[ix].height1)) < 0) + if((peaks[ix].height = (int)peaks[ix].height1) < 0) peaks[ix].height = 0; peaks[ix].left1 += peaks[ix].left_inc; - peaks[ix].left = int(peaks[ix].left1); + peaks[ix].left = (int)peaks[ix].left1; if(ix < 3) { peaks[ix].right1 += peaks[ix].right_inc; - peaks[ix].right = int(peaks[ix].right1); + peaks[ix].right = (int)peaks[ix].right1; } else { @@ -1038,10 +1038,10 @@ static void AdvanceParameters() if(ix < 7) { 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; - if((peaks[ix].height = int(peaks[ix].height1)) < 0) + if((peaks[ix].height = (int)peaks[ix].height1) < 0) peaks[ix].height = 0; } @@ -1157,7 +1157,7 @@ static int ApplyBreath(void) if((amp = wvoice->breath[ix]) != 0) { amp *= (peaks[ix].height >> 14); - value += int(resonator(&rbreath[ix],noise) * amp); + value += (int)resonator(&rbreath[ix],noise) * amp; } } #endif @@ -1255,7 +1255,7 @@ int Wavegen() for(pk=wvoice->n_harmonic_peaks+1; pk> 5]) * harmspect[h]); + total += ((int)sin_tab[theta >> 5] * harmspect[h]); theta += waveph; } while(h<=maxh) { - total -= (int(sin_tab[theta >> 5]) * harmspect[h]); + total -= ((int)sin_tab[theta >> 5] * harmspect[h]); theta += waveph; h++; } @@ -1807,27 +1807,27 @@ if(option_log_frames) if(ix < 7) { 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; 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].height = int(peaks[ix].height1); + peaks[ix].height = (int)peaks[ix].height1; next = (fr2->fheight[ix] * v->height[ix]) << 6; peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2; if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks)) { 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; peaks[ix].left_inc = ((next - peaks[ix].left1) * STEPSIZE) / length2; if(ix < 3) { 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; peaks[ix].right_inc = ((next - peaks[ix].right1) * STEPSIZE) / length2; }