| @@ -620,6 +620,7 @@ ablaut ablaUt | |||
| aborigine ab@r'IdZ@ni | |||
| abracadabra abr@k@d'abr@ | |||
| absence abs@ns | |||
| absent $1 | |||
| absent abs'Ent $verb | |||
| absentia abs'Ent2i:@ | |||
| absinthe absInT | |||
| @@ -902,6 +903,7 @@ bias baI@s | |||
| biased baI@st | |||
| bible baIb@L | |||
| bidet bi:deI | |||
| bigot bIg@t // -ed | |||
| bijou bi:Zu: | |||
| bikini bIk'i:ni | |||
| binman bInman | |||
| @@ -1606,6 +1608,7 @@ gourmet gU@meI | |||
| graduate gradju:@t | |||
| graduate gradju:eIt $verb | |||
| graffiti $alt3 | |||
| grandson gr'andsVn | |||
| gredient gri:di@nt // ingredient | |||
| grenade gr@neId | |||
| griffon grIf@n | |||
| @@ -4082,6 +4082,7 @@ | |||
| m) otor oUt3 | |||
| n) o (tor oU | |||
| otro (py '0tr@ | |||
| &) o (try @ | |||
| c) otyle 0tIl'i: | |||
| m) o (x @ | |||
| o (x++ 0 | |||
| @@ -4192,7 +4193,6 @@ | |||
| ?3 ag) on (_ 0n | |||
| rg) on (_ @n | |||
| &s) on (_ @n | |||
| ds) on (_ Vn | |||
| &t) on (_ @n | |||
| &tr) on (_ 0n | |||
| fl) on (_ 0n | |||
| @@ -4209,7 +4209,9 @@ | |||
| pers) on @n | |||
| pers) on (i '0n | |||
| postp) on 'oUn | |||
| _sp) on 0n | |||
| on (ald 0n | |||
| &) on (age_ @n | |||
| d) on (at %oUn | |||
| on (an_ oUn | |||
| _) on (io Vn | |||
| @@ -4585,7 +4587,7 @@ | |||
| ?3 h) ov (er Vv | |||
| l) ov Vv | |||
| l) ov (e Vv | |||
| _l) ove Vv | |||
| _l) ove (@ Vv | |||
| cl) ov (e oUv | |||
| _sl) ov (enA oUv | |||
| pl) ov oUv | |||
| @@ -244,6 +244,7 @@ | |||
| @) ent (st_ 'Ent | |||
| @) ent (ste_ 'Ent | |||
| ag) ent 'Ent | |||
| X) es (_ Es | |||
| @j) es (_S1 s | |||
| @z) es (_S1 s | |||
| @) es (_S2qd 'Es // double the previous vowel | |||
| @@ -323,6 +324,7 @@ | |||
| _) ge (@P2 Q@ | |||
| ge (bied Q@ | |||
| _) gee Qe: | |||
| _) gei QEI | |||
| gener (aal Q,e:n@r | |||
| _) gelijk Q@lEIk | |||
| _) ge (rC QE | |||
| @@ -628,8 +630,10 @@ _) inn (@P2 'I // ?? inneren | |||
| sj S | |||
| @) sje (_ sj@ | |||
| @) s (_S1 s | |||
| a) s (_ s | |||
| @) s (_$w_alt =s | |||
| _) samen(@P5 s'a:m@n | |||
| sc (oop sk | |||
| sc (opi sk | |||
| &) sel (_ =s@l | |||
| @@ -757,12 +757,10 @@ der $alt | |||
| derdes $alt | |||
| desapego $alt2 $noun | |||
| descabelo $alt | |||
| desce $alt | |||
| descem $alt | |||
| descordo $alt | |||
| desespero $alt2 $noun | |||
| desfecho $alt2 | |||
| desprezo $alt $verb | |||
| desprezo $alt2 $noun | |||
| deveras $alt | |||
| dez $alt | |||
| diarreia $alt | |||
| @@ -781,10 +779,17 @@ encosto $alt $verb | |||
| endereço $alt2 | |||
| endereço $alt $verb | |||
| enforco $alt | |||
| enforque $alt | |||
| enforquem $alt | |||
| engordo $alt | |||
| enumerem $alt | |||
| ensopa $alt | |||
| ensopam $alt | |||
| ensope $alt | |||
| ensopem $alt | |||
| ensopo $alt | |||
| enredo $alt $verb | |||
| enterro $alt2 $noun | |||
| enumerem $alt | |||
| envelope $alt | |||
| envolto $alt2 | |||
| enxerto $alt2 $noun | |||
| @@ -818,8 +823,6 @@ estorvo $alt $verb | |||
| etiqueta $alt2 | |||
| europa $alt | |||
| exagero $alt $verb | |||
| expeça $alt2 | |||
| expeço $alt2 | |||
| explore $alt | |||
| faceta $alt2 | |||
| farelo $alt | |||
| @@ -833,14 +836,15 @@ fezes $alt | |||
| fizerdes $alt | |||
| fizermos $alt | |||
| foda $alt2 $verb | |||
| folheto $alt2 | |||
| folga $alt | |||
| fogos $alt | |||
| foguete $alt2 | |||
| foice $alt2 | |||
| forca $alt2 | |||
| força $alt2 $noun | |||
| forço $alt | |||
| forças $alt2 | |||
| forço $alt | |||
| fordes $alt2 | |||
| fores $alt2 | |||
| forro $alt $verb | |||
| @@ -882,10 +886,9 @@ joguem $alt | |||
| joguete $alt2 | |||
| lambreta $alt2 | |||
| lebre $alt | |||
| lerda $alt | |||
| lerdo $alt | |||
| líderes $alt2 | |||
| lopes $alt | |||
| maior $alt | |||
| maleta $alt2 | |||
| mantiverdes $alt | |||
| mantiveres $alt | |||
| @@ -894,6 +897,8 @@ marcelo $alt | |||
| marmelo $alt | |||
| marreta $alt2 | |||
| martelo $alt | |||
| melhor $alt | |||
| menor $alt | |||
| merda $alt | |||
| megera $alt | |||
| melo $alt | |||
| @@ -917,8 +922,7 @@ morda $alt2 | |||
| moreia $alt | |||
| mortos $alt | |||
| motora $alt2 | |||
| ?2 mulher mulj'Er | |||
| ?4 mulher mul^'Er | |||
| mulher $alt | |||
| mui mwi | |||
| muito mw'iNtU // -s is included as a suffix | |||
| muita mw'iNt& | |||
| @@ -931,8 +935,6 @@ naquele $alt2 $nounf | |||
| nervo $alt2 | |||
| novos $alt | |||
| obstetra $alt | |||
| obsoleta $alt2 | |||
| obsoleto $alt2 | |||
| obtivera $alt | |||
| obtivermos $alt | |||
| odisseia $alt | |||
| @@ -948,6 +950,7 @@ pachorra $alt2 | |||
| paexa paeSa | |||
| palacete $alt2 | |||
| palheta $alt2 | |||
| panfleto $alt2 | |||
| pangeia $alt | |||
| pantera $alt | |||
| paralelo $alt | |||
| @@ -956,15 +959,12 @@ pastora $alt2 | |||
| pedra $alt | |||
| pelego $alt2 | |||
| pelo $alt $verb | |||
| perde $alt | |||
| perdem $alt | |||
| pesa $alt | |||
| pesam $alt | |||
| pesque $alt | |||
| pesquem $alt | |||
| peso $alt $verb | |||
| piloto $alt2 $noun | |||
| pintora $alt2 | |||
| pior $alt | |||
| pirueta $alt2 | |||
| plateia $alt | |||
| plebeia $alt | |||
| @@ -976,8 +976,7 @@ portos $alt | |||
| pose $alt2 | |||
| povos $alt | |||
| poxa p'oS& | |||
| preta $alt2 | |||
| preto $alt2 | |||
| preço $alt2 | |||
| primavera $alt | |||
| provo $alt | |||
| puder $alt | |||
| @@ -985,6 +984,7 @@ puderdes $alt | |||
| pudermos $alt | |||
| puserdes $alt | |||
| quarteto $alt2 | |||
| queda $alt | |||
| quinteto $alt2 | |||
| quiserdes $alt | |||
| quisermos $alt | |||
| @@ -1018,8 +1018,6 @@ rosno $alt | |||
| rumores $alt2 | |||
| saleta $alt2 | |||
| sarjeta $alt | |||
| severa $alt | |||
| severo $alt | |||
| seborreia $alt | |||
| seca $alt2 $noun | |||
| secas $alt2 | |||
| @@ -1030,11 +1028,9 @@ selvagem seUv'aZeIN | |||
| sexteto $alt2 | |||
| ?1 senhora $alt2 | |||
| senhores $alt2 | |||
| sincera $alt | |||
| sincero $alt | |||
| sinopse $alt | |||
| sobe $alt | |||
| sobem $alt | |||
| sobem $alt | |||
| soco $alt2 | |||
| soco $alt $verb | |||
| sofrem $alt | |||
| @@ -1042,7 +1038,7 @@ sofre $alt | |||
| sofreste $alt2 | |||
| sogra $alt | |||
| sopre $alt | |||
| soprem $alt | |||
| soprem $alt | |||
| sopro $alt $verb | |||
| soro $alt2 | |||
| sorvete $alt2 | |||
| @@ -1052,8 +1048,6 @@ soubermos $alt | |||
| suborno $alt $verb | |||
| sufoco $alt2 $noun | |||
| sufocos $alt2 | |||
| sugere $alt | |||
| sugerem $alt | |||
| suporto $alt | |||
| suor swOr | |||
| tapete $alt2 | |||
| @@ -1098,8 +1092,6 @@ zero $alt | |||
| zorra $alt2 | |||
| // foreign words | |||
| ?1 alt 'alt | |||
| ?2 agosto &g'ostU | |||
| @@ -1144,7 +1136,6 @@ zorra $alt2 | |||
| ?1 install ,inst'al | |||
| ?2 internet iNtern'Et | |||
| ?2 Intranet iNtRan'Et | |||
| ?2 inveja iNv'EZ& | |||
| ?1 kernel k'Ern,El | |||
| ?2 kernel k'Ern@l | |||
| ?1 line l'ain | |||
| @@ -1153,16 +1144,6 @@ zorra $alt2 | |||
| ?1 lock l'Ok | |||
| mail m'eIl | |||
| mails m'eIls | |||
| ?1 maior m,&j'Or- | |||
| ?2 maior maI'Or | |||
| ?2 maiores maI'O*is | |||
| ?1 menor myn'Or- | |||
| ?2 menor men'Or | |||
| ?2 menores men'O*is | |||
| ?2 melhor melj'Or | |||
| ?2 melhores melj'O*is | |||
| ?4 melhor mel^'Or | |||
| ?4 melhores mel^'O*is | |||
| ?2 mouse m'aUzi | |||
| ?1 menu menu | |||
| ?1 next n'Ekst | |||
| @@ -1173,11 +1154,7 @@ zorra $alt2 | |||
| ?1 ovo 'ovu | |||
| ?1 pause p'au:z | |||
| page p'eIdZ | |||
| ?2 pior pi'Or | |||
| ?2 piores pi'O*is | |||
| preço $alt2 | |||
| python p'aIT&~N | |||
| queda $alt | |||
| ?1 readme r'i:dmi: | |||
| ?1 sapi s,ap'i | |||
| ?1 scanner sk'En&r | |||
| @@ -304,7 +304,7 @@ | |||
| ?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas. | |||
| ?1 e (la_ 'E // eg: cadela, janela, vela, etc... | |||
| ?1 C) e (cC ,E // eg: seleccionar, efectuar, etc... | |||
| ?1 C) ecç 'Es // eg: selecção, etc... | |||
| ?1 C) ecç 'Es // eg: selecção, etc... | |||
| ?1 C) e (ã i // leão, panteão, etc. | |||
| ?1 C) e (a i // oceano, etc. | |||
| ?1 C) e (o 'i // eg: geologia, etc... | |||
| @@ -345,69 +345,69 @@ | |||
| sf) e (ra_ E // esfera, biosfera | |||
| //sort | |||
| _com) e (L05_ e | |||
| fiz) e (L05_ E | |||
| tiv) e (L05_ E // es- | |||
| _com) e (L05_ e | |||
| _coub) e (L05_ E | |||
| _exag) e (L05_ E | |||
| _houv) e (L05_ E | |||
| _perd) e (L05_ e | |||
| _soub) e (L05_ E | |||
| tiv) e (L05_ E // es- | |||
| _rend) e (L06_ e | |||
| _vend) e (L06_ e | |||
| _atend) e (L06_ e | |||
| _compreend) e (L06_ e | |||
| _entend) e (L06_ e | |||
| _estend) e (L06_ e | |||
| _rend) e (L06_ e | |||
| _vend) e (L06_ e | |||
| respond) e (L06_ e // cor- | |||
| bat) e (L07_ e // re- com- | |||
| ced) e (L07_ e // pro- con- su- | |||
| met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
| viv) e (L07_ e // re- | |||
| _beb) e (L07_ e | |||
| _com) e (L07_ e | |||
| _tem) e (L07_ e | |||
| colh) e (L07_ e // & es- | |||
| corr) e (L07_ e // per- con- in- so- dis- | |||
| torc) e (L07_ e // con- | |||
| venc) e (L07_ e // con- | |||
| vert) e (L07_ e // in- re- con- | |||
| _eleg) e (L07_ e | |||
| _ergu) e (L07_ e | |||
| _mord) e (L07_ e | |||
| _morr) e (L07_ e | |||
| _perd) e (L07_ e | |||
| _sofr) e (L07_ e | |||
| merec) e (L07_ e // des- | |||
| padec) e (L07_ e // com- | |||
| parec) e (L07_ e // a- rea- com- desa- | |||
| _aborrec) e (L07_ e | |||
| _rejuvenec) e (L07_ e | |||
| _adoec) e (L07_ e | |||
| _adormec) e (L07_ e | |||
| _amanhec) e (L07_ e | |||
| _anoitec) e (L07_ e | |||
| _arrepend) e (L07_ e | |||
| _beb) e (L07_ e | |||
| _com) e (L07_ e | |||
| _defend) e (L07_ e | |||
| _depend) e (L07_ e | |||
| _eleg) e (L07_ e | |||
| _enlouquec) e (L07_ e | |||
| _entristec) e (L07_ e | |||
| _envaidec) e (L07_ e | |||
| _envelhec) e (L07_ e | |||
| _ergu) e (L07_ e | |||
| _esclarec) e (L07_ e | |||
| _escond) e (L07_ e | |||
| _escurec) e (L07_ e | |||
| _esquec) e (L07_ e | |||
| _interromp) e (L07_ e | |||
| _mord) e (L07_ e | |||
| _morr) e (L07_ e | |||
| _obedec) e (L07_ e | |||
| _perd) e (L07_ e | |||
| _sofr) e (L07_ e | |||
| _tem) e (L07_ e | |||
| _perec) e (L07_ e | |||
| _rejuvenec) e (L07_ e | |||
| aprend) e (L07_ e // re- | |||
| bat) e (L07_ e // re- com- | |||
| ced) e (L07_ e // pro- con- su- | |||
| colh) e (L07_ e // & es- | |||
| conhec) e (L07_ e // & re- des- | |||
| corr) e (L07_ e // per- con- in- so- dis- | |||
| entend) e (L07_ e | |||
| merec) e (L07_ e // des- | |||
| met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
| padec) e (L07_ e // com- | |||
| parec) e (L07_ e // a- rea- com- desa- | |||
| preend) e (L07_ e // sur- com- | |||
| _perec) e (L07_ e | |||
| respond) e (L07_ e // cor- | |||
| torc) e (L07_ e // con- | |||
| venc) e (L07_ e // con- | |||
| vert) e (L07_ e // in- re- con- | |||
| viv) e (L07_ e // re- | |||
| qu) e (brL04_ E | |||
| _hosp) e (dL03_ E | |||
| _d) e (vL03_ e | |||
| _gr) e (gL03_ e | |||
| _n) e (grL03_ e | |||
| _estr) ei (L03_ EI | |||
| @@ -416,57 +416,67 @@ respond) e (L07_ e // cor- | |||
| _s) e (quL02_ E | |||
| _p) e (quL02_ E | |||
| l) e (que_ E | |||
| _sug) e (rL02_ E | |||
| _imp) e (rL03_ E | |||
| _sev) e (rL03_ E | |||
| _reit) e (rL03_ E | |||
| _sinc) e (rL03_ E | |||
| _g) e (rL04_ E | |||
| _op) e (rL04_ E | |||
| _qu) e (rL04_ E | |||
| _alt) e (rL04_ E | |||
| _sup) e (rL04_ E | |||
| _tol) e (rL04_ E | |||
| _ven) e (rL04_ E | |||
| _coop) e (rL04_ E | |||
| _temp) e (rL04_ E | |||
| _ven) e (rL04_ E | |||
| _v) e (rbL03_ E | |||
| _p) e (rdL02_ E | |||
| _l) e (rdL03_ E | |||
| _h) e (rdL04_ E | |||
| _) e (rguL02_ E | |||
| _alb) e (rguL02_ E | |||
| _enx) e (rguL02_ E | |||
| _bez) e (rrL03_ e | |||
| _rejuven) e (çL03_ e | |||
| _inv) e (rtL03_ e | |||
| _f) e (rvL03_ e | |||
| _p) e (sL01_ E | |||
| _d) e (scL02_ E | |||
| _p) e (scL03_ E | |||
| _m) e (sclL04 E | |||
| _l) e (ssL02_ e | |||
| _esp) e (ssL03_ e | |||
| _m) e (tL03_ e | |||
| _com) e (tL03_ e | |||
| _rem) e (tL03_ e | |||
| prom) e (tL03_ e // com- | |||
| _derr) e (tL03_ e | |||
| _rem) e (tL03_ e | |||
| _obsol) e (tL03_ e | |||
| _pr) e (tL03_ e | |||
| _sol) e (trL03_ E | |||
| _pen) e (trL04_ E | |||
| _atr) e (vL03_ e | |||
| scr) e (vL03_ e // e- in- pre- ree- de- | |||
| _pr) e (zL04_ E | |||
| _d) e (vL03_ e | |||
| _atr) e (vL03_ e | |||
| _embel) e (zL04_ E | |||
| pr) e (zL04_ E / des- menos- | |||
| _acont) e (çL01_ e | |||
| _arref) e (çL01_ e | |||
| par) e (çL03_ e // a- re- com- rea- desa- | |||
| _ado) e (çL03_ e | |||
| _aqu) e (çL03_ e | |||
| _car) e (çL03_ e | |||
| _estrem) e (çL03_ e | |||
| _mer) e (çL03_ e | |||
| _pad) e (çL03_ e // com- | |||
| _per) e (çL03_ e | |||
| par) e (çL03_ e // a- re- com- rea- desa- | |||
| _rejuven) e (çL03_ e | |||
| conh) e (çL03_ e // re- | |||
| _esqu) e (çL03_ e | |||
| _forn) e (çL03_ e | |||
| _obed) e (çL03_ e | |||
| _ofer) e (çL03_ e | |||
| abast) e (çL03_ e // re- | |||
| _aborr) e (çL03_ e | |||
| _fortal) e (çL03_ e | |||
| _ado) e (çL03_ e | |||
| _amanh) e (çL03_ e | |||
| _anoit) e (çL03_ e | |||
| _enfraqu) e (çL03_ e | |||
| @@ -476,8 +486,8 @@ _entrist) e (çL03_ e | |||
| _envaid) e (çL03_ e | |||
| _envelh) e (çL03_ e | |||
| _esclar) e (çL03_ e | |||
| _forn) e (çL03_ e | |||
| conh) e (çL03_ e // re- | |||
| _estrem) e (çL03_ e | |||
| _fortal) e (çL03_ e | |||
| //endsort | |||
| @@ -787,6 +797,8 @@ _desenv) o (lvL02_ O | |||
| _m) o (rrL01_ o | |||
| _c) o (spL02_ O | |||
| p) ostos (_ Ost=Us# // dispostos etc. | |||
| _s) o (bL02_ O | |||
| _s) o (prL02_ O | |||
| //endsort | |||
| .group ô | |||
| @@ -379,6 +379,7 @@ tamil தமிழ் $text | |||
| பாதிக்கக் $alt | |||
| புசு $alt | |||
| புஸு $alt | |||
| பாதிக்காம $alt | |||
| // initial த as [d] | |||
| @@ -398,7 +399,6 @@ tamil தமிழ் $text | |||
| தைவதம் $alt | |||
| தாட்சண்யம் $alt | |||
| தனம் $alt | |||
| திக்கற்ற $alt | |||
| தானு $alt | |||
| திட $alt | |||
| தோ $alt | |||
| @@ -446,6 +446,8 @@ tamil தமிழ் $text | |||
| தம்ம $alt | |||
| தாயம் $alt | |||
| திமு $alt | |||
| தாவா $alt | |||
| // initial ட | |||
| டார்ச் t.a:rtS | |||
| @@ -1,6 +1,6 @@ | |||
| /*************************************************************************** | |||
| * Copyright (C) 2009 to 2012 by Jonathan Duddington * | |||
| * Copyright (C) 2009 to 2013 by Jonathan Duddington * | |||
| * email: [email protected] * | |||
| * * | |||
| * This program is free software; you can redistribute it and/or modify * | |||
| @@ -168,6 +168,7 @@ | |||
| _) க (ங்கூலி gV | |||
| _) க (ங்கை gV | |||
| _) க (ங்கோத gV | |||
| _) கஜ (க்ஸ்தான kVzV | |||
| _) க (ஞ்சா gV | |||
| _) க (டகட gV | |||
| _) க (டத்தில gV | |||
| @@ -224,6 +225,7 @@ | |||
| _) க (லீர gV | |||
| _) க (லீல gV | |||
| _) க (லீஷிய gV | |||
| _) கல்த (ா gVlt | |||
| _) க (ளுக் gV | |||
| _) க (வண gV | |||
| _) க (வன gV | |||
| @@ -329,6 +331,7 @@ | |||
| _) கி (ளாL04ி k | |||
| _) கி (ளாL04ு k | |||
| _) கி (ளாL04ை k | |||
| _) கி (ளாமர g | |||
| _) கி (ளாஸ்_ g | |||
| _) கி (ளாஸ்_மேட k | |||
| _) கிளிக் (_L29 kl.ik | |||
| @@ -351,6 +354,7 @@ | |||
| _) க (ுகநாத g | |||
| _) க (ுகன g | |||
| _) க (ுகராஜ g | |||
| _) க (ுகா g | |||
| _) க (ுகை g | |||
| _மன்மதக்) க (ுகை g | |||
| _) க (ுஜராத g | |||
| @@ -378,10 +382,13 @@ _மன்மதக்) க (ுகை g | |||
| _) க (ுண்டத் k | |||
| _) க (ுண்டம k | |||
| _) க (ுண்டல k | |||
| _) க (ுண்டாக்கள k | |||
| _) குண்டாந்த (டி gun.d.a:ntV | |||
| _) க (ுண்டானில k | |||
| _) க (ுண்டானை k | |||
| _) க (ுண்டான் k | |||
| _) க (ுண்டாவி k | |||
| _) க (ுண்டாவை k | |||
| _) க (ுண்டி k | |||
| _) க (ுண்டின g | |||
| _) குண்ட (ூர gun.t.V# | |||
| @@ -390,9 +397,11 @@ _மன்மதக்) க (ுகை g | |||
| _) க (ுதித் g | |||
| _) க (ுதிப் g | |||
| _) க (ுதிப்பகுதி k | |||
| _) க (ுதியாட்ட g | |||
| _) க (ுபீர g | |||
| _) க (ுபுகுபு g | |||
| _) க (ுபுக் g | |||
| _) க (ுபேர g | |||
| _) குப் (த gup | |||
| _) க (ுப்புன g | |||
| _) க (ுப்பென்ற g | |||
| @@ -425,10 +434,12 @@ _மன்மதக்) க (ுகை g | |||
| _) க (ுருமூர்த்தி g | |||
| _) க (ுருரா g | |||
| _) க (ுருவடி g | |||
| _) க (ுருவருள g | |||
| _) க (ுருவா g | |||
| _) க (ுருவாய g | |||
| _) க (ுருவிட g | |||
| _) க (ுருவின g | |||
| _) க (ுருவிற்க g | |||
| _) க (ுருவு g | |||
| _) க (ுருவுடை g | |||
| _) க (ுருவை g | |||
| @@ -520,6 +531,7 @@ _மன்மதக்) க (ுகை g | |||
| _) க (ோர_முடிய k | |||
| _) க (ோர_வேண்ட k | |||
| _) க (ோரக g | |||
| _) க (ோரக்கூட k | |||
| _) க (ோரத்_தாண்ட g | |||
| _) க (ோரத்தால g | |||
| _) க (ோரத்தை g | |||
| @@ -553,6 +565,7 @@ _மன்மதக்) க (ுகை g | |||
| _) க் (ரீன g | |||
| _) க் (ரூப g | |||
| _) க் (ரௌண்ட g | |||
| _) க் (ளாமர g | |||
| _) க் (ளாஸ்_ g | |||
| _) க்வ (A kw | |||
| _) க் (வாலியர g | |||
| @@ -704,6 +717,8 @@ _தொன்ம) க (ால k | |||
| தென்) க (ிழ k | |||
| _பா) க (ிஸ்தான k | |||
| அப) க (ீர்த்தி k | |||
| க (ீழே_ k | |||
| க (ீழ்_ k | |||
| _பல்) க (ு k | |||
| மலைக்) க (ுகை g | |||
| _பால்) க (ுட k | |||
| @@ -767,6 +782,7 @@ _நினைவு) க (ூர k | |||
| ம) க (ேசுவர H // need to restrict to _ம) and _வீரம) ?? | |||
| சீர்) க (ேட k | |||
| _லொ) கேட ke:t.V# | |||
| _நசி) க (ேத k | |||
| ம) க (ேந்திர H | |||
| _ரா) க (ேஷ k | |||
| _மு) க (ேஷ k | |||
| @@ -842,6 +858,7 @@ _கர்ப்ப) க்கி (ர gg | |||
| _வி) க்க (ிரக gg | |||
| சத்தியா) க்கி (ரக gg | |||
| L03) க்கி (ரஹ gg // a,i | |||
| _சத்தியா) க்கி (ரஹ gg | |||
| கு) க்கி (ராம gg | |||
| அ) க்கி (ராம gg | |||
| இ) க்கி (ராம gg | |||
| @@ -925,9 +942,12 @@ _துப்பாக்கி) க்க (ுண்ட gg | |||
| //sort | |||
| _ராஞ்) ச tSV# | |||
| எபிL09ே) ச zV# | |||
| ராகவா) ச )(ாரி tS | |||
| _ப) சக் tSVk | |||
| _) ச (க்கரவர்த்தி tSV | |||
| _) ச (க்கிலி tSV | |||
| _க) ச (க்ஸ்தான zV | |||
| சங்க (ர s.VNkV | |||
| _) ச (ட்டL08ஸ்கர tSV | |||
| _) ச (ட்டினி tSV | |||
| @@ -960,6 +980,7 @@ _விமோ) ச (ன tSV | |||
| _நீலலோ) ச (னி tSV | |||
| _மீனலோ) ச (னி tSV | |||
| _) ச (ப்பL11் tSV | |||
| _) ச (ப்பலா tSV | |||
| _) ச (ப்பா tSV | |||
| _) ச (ப்பி tSV | |||
| _) ச (ப்பு tSV | |||
| @@ -970,6 +991,7 @@ _மீனலோ) ச (னி tSV | |||
| _பங்) ச (ர tSV | |||
| _பன்) ச (ர tSV | |||
| _) சரசு (வதி sVrVs | |||
| _ந) சரத் zVrVt | |||
| _ந) ச (ருதீன zV | |||
| _) சர்ச (ி tSVrtS | |||
| _) ச (ர்ச்சில tSV | |||
| @@ -984,6 +1006,7 @@ _L04்விட்) ச (ர்லாந்த zV | |||
| மருதா) ச (ல tSV | |||
| வேதா) ச (ல tSV | |||
| _சேஷா) ச (ல tSV | |||
| _ஹிமா) ச (ல tSV | |||
| _தணிகா) ச (ல tSV | |||
| அருணா) ச (ல tSV | |||
| வெங்கடா) ச (ல tSV | |||
| @@ -1025,7 +1048,18 @@ _தணிகா) ச (ல tSV | |||
| ஆ) ச (ாரங்கள tS | |||
| ஆ) ச (ாரத் tS | |||
| ஆ) ச (ாரம tS | |||
| _ரங்கா) ச (ாரி tS | |||
| _வரதா) ச (ாரி tS | |||
| _வேதா) ச (ாரி tS | |||
| _கிருஷ்ணமா) ச (ாரி tS | |||
| _தேசிகா) ச (ாரி tS | |||
| _பட்டா) ச (ாரி tS | |||
| அனந்தா) ச (ாரி tS | |||
| அன்னமா) ச (ாரி tS | |||
| ஆ) ச (ாரிய_ tS | |||
| ஆ) ச (ாரியார tS | |||
| அ) ச (ாருதீன z | |||
| _) ச (ாருமதி tS | |||
| _) சாருலத (ா tSa:rUlVt | |||
| _) ச (ாருவ tS | |||
| _ஹ) ச (ாரே z | |||
| @@ -1086,6 +1120,7 @@ _தணிகா) ச (ல tSV | |||
| _) சிம்பன்ச (ி tSimpVnz | |||
| _மலே) ச (ிய s. | |||
| இந்தோனே) ச (ிய s. | |||
| _) ச (ியர்ஸ tS | |||
| _பக்தி_) சிரத் (தை srVd | |||
| _) சிரத்த (ைL27 srVdd | |||
| சி (ரம s | |||
| @@ -1203,10 +1238,12 @@ _மங்களே) சு (வர s | |||
| _) ச (ேரி tS | |||
| _தல) ச (ேரி tS | |||
| _) ச (ேர்கள tS | |||
| _) ச (ேர்மன tS | |||
| _) ச (ேர்மேன tS | |||
| _) ச (ேலஞ் tS | |||
| _) ச (ேஷ்டை tS | |||
| _) ச (ேஸ்_ tS | |||
| _) சைத (ன்ய tSaItV | |||
| _) ச (ைத்திய tS | |||
| _) ச (ைனா tS | |||
| _) ச (ைனா_நேவால s | |||
| @@ -1214,12 +1251,14 @@ _மங்களே) சு (வர s | |||
| _) ச (ைனீஸ tS | |||
| _) ச (ோட்டா tS | |||
| ஓ) ச (ோன z | |||
| அரி) ச (ோன z | |||
| _) ச (ோன்ன tS | |||
| _) ச (ோவு tS | |||
| _) ச (ோவெ tS | |||
| _) ச (ௌக்கிதார tS | |||
| _) ச (ௌதரி tS | |||
| _) ச (ௌதிரி tS | |||
| _) ச (ௌத்தாலா tS | |||
| _) சௌப (ாத்தி tSaUp | |||
| _) ச (ௌபே tS | |||
| _) ச (ௌஹான tS | |||
| @@ -1246,11 +1285,16 @@ _மங்களே) சு (வர s | |||
| _ப) ஜ (ார z | |||
| அ) ஜ (ாருதீன z | |||
| _நா) ஜ (ி z | |||
| _) ஜிப்(_ zip | |||
| _) ஜ (ிப்ப z | |||
| _) ஜ (ியா z | |||
| _) ஜ (ீனத் z | |||
| _) ஜ (ீப்ரா z | |||
| _) ஜ (ீரோ z | |||
| _) ஜ (ுல்ஃபி z | |||
| _) ஜ (ுல்பி z | |||
| _) ஜு (வால dZ | |||
| _) ஜ (ெனித் z | |||
| _) ஜ (ெராக்ஸ z | |||
| //endsort | |||
| @@ -1401,9 +1445,11 @@ _செண்) டிமெண்ட t.imen.t.V# | |||
| _) டி (ரங் t. | |||
| _) டி (ரங்கு t. | |||
| _) டி (ரபிள t. | |||
| _) டி (ரம d. | |||
| _) டிரம்பெட் t.rVmpet. | |||
| _) டிர (ஸ d.re | |||
| _) டிர (ஸ்ட t.rV | |||
| _) டி (ரா_ d. | |||
| _) டிராஃபிக் t.ra:fik | |||
| _) டி (ராகுலா d. | |||
| _) டிராக் t.ra:k | |||
| @@ -1427,12 +1473,15 @@ _செண்) டிமெண்ட t.imen.t.V# | |||
| _) டி (ராயிங் d. | |||
| கொலஸ்) டி (ரால _|t. | |||
| _) டி (ராலி t. | |||
| _) டி (ராவ d. | |||
| _) டி (ராவல t. | |||
| _) டி (ராவெல t. | |||
| _) டிரிக (ர t.riggV | |||
| _) டிரிக் t.rik | |||
| _) டிரிக்க (ர t.riggV | |||
| _) டி (ரிங்_ t. | |||
| _) டி (ரிங்க் d. | |||
| _) டி (ரிங்ஸ d. | |||
| _) டிரினிட (ி t.rinit. | |||
| _) டிரிப் t.rip | |||
| _) டி (ரிம் t. | |||
| @@ -1518,6 +1567,7 @@ _லான்_) ட (ென்னிஸ t. | |||
| _) டைப (ாய்ட t.aIf | |||
| _) டைப் t.aIp | |||
| _) ட (ைம்_ t. | |||
| _) ட (ைல்ஸ t. | |||
| _) டொக் t.ok | |||
| _) ட (ோக்கன t. | |||
| _) ட (ோக்கியோ t. | |||
| @@ -1527,6 +1577,7 @@ _லான்_) ட (ென்னிஸ t. | |||
| _) டோரண்ட (ோ t.o:rVn.t. | |||
| _ப்ரி) ட (ோரிய t. | |||
| _) டோர்னமெண்ட t.o:rnVmen.t.V# | |||
| _) ட (ோலிவுட் t. | |||
| _லே) ட் t. | |||
| @மெண்) ட் t. // -ment | |||
| _பேண்) ட் t. | |||
| @@ -1535,6 +1586,11 @@ _ஹெல்மெ) ட் t. | |||
| ல) ட்சு (மண ks. | |||
| ல) ட்சு (மி ks. | |||
| _ல) ட்ட d.d.V# | |||
| _கோலிவு) ட்ட d.d.V# | |||
| _டோலிவு) ட்ட d.d.V# | |||
| _பாலிவு) ட்ட d.d.V# | |||
| _மாலிவு) ட்ட d.d.V# | |||
| _ஹாலிவு) ட்ட d.d.V# | |||
| _ரெ) ட்ட (ிய d.d. | |||
| இ) ட்ட (ிலி d.d. | |||
| அப்பாயிண்) ட்மெண்ட t.men.t.V# | |||
| @@ -1577,6 +1633,7 @@ _ஹெல்மெ) ட் t. | |||
| _) ட்ரிக (ர t.riggV | |||
| _) ட்ரிக் t.rik | |||
| _) ட்ரிக்க (ர t.riggV | |||
| _) ட் (ரிங்_ t. | |||
| _நியூ) ட் (ரின t. | |||
| _) ட்ரினிட (ி t.rinit. | |||
| _) ட் (ரிம் t. | |||
| @@ -1642,6 +1699,8 @@ _நடுரோ) ட் (ல t. | |||
| ஸ்) த (B t | |||
| ப்) த tV | |||
| ப்) த (B t | |||
| ட்) த tV | |||
| ட்) த (B t | |||
| த் (_த t | |||
| // exceptions, த as [d] | |||
| @@ -1654,6 +1713,7 @@ _நடுரோ) ட் (ல t. | |||
| _) த (கன dV | |||
| _) த (கி dV | |||
| _) த (க்க்ஷிண dV | |||
| _) த (க்ஷன dV | |||
| _) த (க்ஷிண dV | |||
| _) த (க்ஷிணா dV | |||
| _) த (சகண்ட dV | |||
| @@ -1686,6 +1746,7 @@ _நடுரோ) ட் (ல t. | |||
| _) த (ட்சன dV | |||
| _) த (ட்சிண dV | |||
| _) த (ண்டக் dV | |||
| _) த (ண்டச்செலவ dV | |||
| _) த (ண்டச்சோற dV | |||
| _) த (ண்டத் dV | |||
| _) த (ண்டன dV | |||
| @@ -1714,6 +1775,7 @@ _நடுரோ) ட் (ல t. | |||
| _) த (னுச dV | |||
| _) த (னுஷ dV | |||
| _) த (ன்மந்திரி dV | |||
| _) த (ன்ய dV | |||
| _) த (ன்ராஜ dV | |||
| _) த (ன்வந்தரி dV | |||
| _) தபதப dVbVdVbV# | |||
| @@ -1723,6 +1785,8 @@ _நடுரோ) ட் (ல t. | |||
| _) த (ம்பதி dV | |||
| _) த (ம்பிடி dV | |||
| _) த (ம்மடிL11் dV | |||
| _) த (ம்மத் dV | |||
| _) த (ம்மம dV | |||
| _) த (யவ dV | |||
| _) த (யாணந்த dV | |||
| _) த (யான dV | |||
| @@ -1762,13 +1826,16 @@ _நடுரோ) ட் (ல t. | |||
| _) த (ர்ப்பை dV | |||
| _) த (ர்ம dV | |||
| _) த (லித் dV | |||
| _) தலீத் dVli:t | |||
| _அகாலி_) த (ள dV | |||
| _) த (ளவாய dV | |||
| _) த (வக்கால dV | |||
| _) த (வக்கோல dV | |||
| _) த (வத்த dV | |||
| _) த (வப் dV | |||
| _) த (வம dV | |||
| _) தவுலதாப (ாத dVvUlVda:b | |||
| _) த (வே dV | |||
| _) த (ாக்கா d | |||
| _) த (ாக்காத t | |||
| _) த (ாக்காம t | |||
| @@ -1804,12 +1871,14 @@ _அகாலி_) த (ள dV | |||
| _) த (ாராள d | |||
| _) த (ாராவி d | |||
| _) த (ாவணி d | |||
| _) த (ாவா d | |||
| _) த (ாவாக்க d | |||
| _) த (ாவாவ d | |||
| _) த (ாவேய d | |||
| _) த (ாஸ d | |||
| _) த (ிகம்பர d | |||
| _) த (ிகில d | |||
| _) த (ிகுதிகு d | |||
| _) த (ிக்கற்ற d | |||
| _) த (ிக்கித்த d | |||
| _) த (ிக்கில d | |||
| _) த (ிக்கு d | |||
| @@ -1853,7 +1922,7 @@ _அகாலி_) த (ள dV | |||
| _) த (ிம்ம d | |||
| _) தி (யாக t | |||
| _) தி (யான d | |||
| _) தி (யேட்டர t | |||
| _) த (ியோபந்த d | |||
| _) த (ிரவ d | |||
| _) த (ிரவிய d | |||
| _) தி (ராட்சை d | |||
| @@ -1881,7 +1950,10 @@ _அகாலி_) த (ள dV | |||
| _) த (ிவால d | |||
| _) த (ிவ்ய d | |||
| _) த (ிவ்விய d | |||
| _) தீக்ஷணி (ய di:ks.Vn | |||
| _) த (ீக்ஷண்ய d | |||
| _) த (ீக்ஷிதர d | |||
| _) தீட்சணி (ய di:d.tSVn. | |||
| _) த (ீட்சண்ய d | |||
| _) த (ீட்சித d | |||
| _) த (ீட்சை d | |||
| @@ -1894,6 +1966,7 @@ _அகாலி_) த (ள dV | |||
| _) த (ீரச் d | |||
| _) த (ீரத்துட d | |||
| _) த (ீரன d | |||
| _) த (ீரமிக d | |||
| _) த (ீரமில்ல d | |||
| _) த (ீரமுட d | |||
| _) த (ீரம்மிக d | |||
| @@ -1909,6 +1982,7 @@ _) தீர்க்க (_சுமங்கலி di:rggV | |||
| _) தீர்க்க (முள்ள di:rggV# | |||
| _) தீர்க்க (ம்_ di:rggV | |||
| _) தீர்க்க (ாயு di:rggV# | |||
| _) த (ீர்க்காலோசனை d | |||
| _) த (ீவாளி d | |||
| _) து(ரோக d | |||
| _) த (ுக்க d | |||
| @@ -1923,12 +1997,13 @@ _) தீர்க்க (_சுமங்கலி di:rggV | |||
| _) த (ுன்மதி d | |||
| _) த (ுன்மார்க்க d | |||
| _) த (ுபாய d | |||
| _) த (ுபாஷி d | |||
| _) த (ுபாஷ d | |||
| _) த (ுப்பட்டா d | |||
| _) த (ுமளி d | |||
| _) த (ுரதிருஷ்ட d | |||
| _) த (ுரதிர்ஷ்ட d | |||
| _) த (ுரதிஷ்ட d | |||
| _) துராக்க (ிர dra:gg | |||
| _) த (ுராசை d | |||
| _) த (ுரியோதனன d | |||
| _) த (ுரியோதனா d | |||
| @@ -2041,6 +2116,7 @@ _வசந்) த tV# | |||
| _கௌ) த (மி tV | |||
| _புல்) த (ரை tV | |||
| _மண்) த (ரை tV | |||
| _சகுந்) த (லா tV | |||
| _சாந்) த (லிங்க tV# | |||
| _கீ) த (ா t | |||
| _சீ) த (ா t | |||
| @@ -2051,6 +2127,7 @@ _வசந்) த tV# | |||
| அனி) த (ா t | |||
| சுஜா) த (ா t | |||
| லலி) த (ா t | |||
| _சமந்) த (ா t | |||
| _சுனி) த (ா t | |||
| _மம்) த (ா t | |||
| _ஹரி) த (ா t | |||
| @@ -2163,9 +2240,13 @@ L03வ்வு) த்த (ியோக dd | |||
| _சுப) த்த (ிர dd | |||
| _ரு) த்த (ிர dd | |||
| _ரௌ) த்த (ிர dd | |||
| _சூ) த்த (ிரச் dd | |||
| _சூ) த்த (ிரச்சி dd | |||
| _சூ) த்த (ிரத் dd | |||
| _சூ) த்த (ிரன dd | |||
| _சூ) த்த (ிரப் dd | |||
| _சூ) த்த (ிரரி dd | |||
| _சூ) த்த (ிரரே dd | |||
| _சூ) த்த (ிரர் dd | |||
| ஆதி) த்தி (ராவிட dd | |||
| _சேஷா) த்த (ிரி dd | |||
| @@ -2199,6 +2280,7 @@ _மொழி) த்து (வே dd | |||
| _வில்_வி) த்த (ை dd | |||
| _வில்வி) த்த (ை dd | |||
| _வி) த்த (ைகள dd | |||
| _வி) த்த (ைக்க dd | |||
| _வி) த்த (ைக்காக dd | |||
| _வி) த்த (ைக்கு dd | |||
| வி) த்த (ையாக dd | |||
| @@ -2296,6 +2378,7 @@ _சி) த்ரலேக (ா trVle:k | |||
| _) ப (கீர bV | |||
| _) ப (குள bV | |||
| _) ப (க்கிங்L06ாம bV | |||
| _) ப (க்கீர fV | |||
| _) ப (க்கெட் bV | |||
| _) ப (க்கென்ற bV | |||
| _) பக் (த bVk | |||
| @@ -2305,6 +2388,7 @@ _சி) த்ரலேக (ா trVle:k | |||
| _) ப (ங்கம bV | |||
| _) பங்க (ர bVNkV | |||
| _) ப (ங்களா bV | |||
| _) ப (ங்களூர bV | |||
| _) ப (ங்கார bV | |||
| _) ப (ங்க் bV | |||
| _) ப (சவகல்யாண bV | |||
| @@ -2394,6 +2478,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
| _) ப (ராக்_ஒபாமா bV | |||
| _) ப (ரிதா_ fV | |||
| _) ப (ரிதாவ fV | |||
| _) ப (ரீத fV | |||
| _) பரூக் fVrU:k | |||
| _) ப (ரோட bV | |||
| _) ப (ர்ஃபி bV | |||
| @@ -2454,6 +2539,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
| _) ப (லராம bV | |||
| _) ப (லவந்த bV | |||
| _) ப (லவான bV | |||
| _) ப (லவானவ pV | |||
| _) ப (லவீன bV | |||
| _) ப (லஹீன bV | |||
| _) பலாத்க (ார bVla:dk | |||
| @@ -2511,6 +2597,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
| _) பாங்க (ாக் ba:Nk | |||
| _) ப (ாங்கில b | |||
| _) ப (ாங்க் b | |||
| _) ப (ாசிL04 f | |||
| _) ப (ாசில f | |||
| _) ப (ாசு b | |||
| _) பாசுப (த pa:sUpV | |||
| @@ -2544,9 +2631,10 @@ _டெட்_) ப (ாடி b | |||
| _) ப (ாதிக்கப்பட b | |||
| _) ப (ாதிக்கப்பட b | |||
| _) ப (ாதிக்கலாம b | |||
| _) ப (ாதிக்கவ b | |||
| _) ப (ாதிக்கவா b | |||
| _) ப (ாதிக்கவில் b | |||
| _) ப (ாதிக்காத b | |||
| _) ப (ாதிக்காமல b | |||
| _) ப (ாதிக்கால p | |||
| _) ப (ாதிக்கின்ற b | |||
| _) ப (ாதிக்கிற b | |||
| @@ -2561,6 +2649,7 @@ _டெட்_) ப (ாடி b | |||
| _) ப (ாதிக்கும்_மேற் p | |||
| _) ப (ாதிக்கும்_மேற்பட்ட_ p | |||
| _) ப (ாதிக்கும்_மேல p | |||
| _) ப (ாதிச்ச b | |||
| _) ப (ாதித்த b | |||
| _) ப (ாதிப்படை b | |||
| _) ப (ாதிப்படைகி b | |||
| @@ -2603,6 +2692,7 @@ _டெட்_) ப (ாடி b | |||
| _) பாப (ாவ ba:b | |||
| _) ப (ாபிலோன b | |||
| _) ப (ாபுவ b | |||
| _டைம்_) ப (ாம b | |||
| _) ப (ாமாவ b | |||
| _) ப (ாமினி b | |||
| _) ப (ாம்பே b | |||
| @@ -2616,6 +2706,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) ப (ாரதி b | |||
| _) ப (ாரத்த b | |||
| _) ப (ாரம b | |||
| _) ப (ாரமை p | |||
| _) ப (ாரம்பரிய p | |||
| _) ப (ாரம்மா p | |||
| _) ப (ாரவி b | |||
| @@ -2661,6 +2752,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) ப (ாலுவ b | |||
| _) ப (ாலே_L25 b | |||
| _) ப (ாலை p | |||
| _) ப (ாலையா b | |||
| _) ப (ால் p | |||
| _) ப (ால்_தாக்கரே b | |||
| _) பால்க (னி ba:lkV | |||
| @@ -2726,6 +2818,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) ப (ினிஷ f | |||
| _) ப (ின்_லேடன b | |||
| _) ப (ின்னங்கள b | |||
| _) ப (ின்னத்த b | |||
| _) ப (ின்னத்தால b | |||
| _) ப (ின்னத்தை b | |||
| _) ப (ின்னம b | |||
| @@ -2791,6 +2884,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரமுகர p | |||
| _) பி (ரமை b | |||
| _) பி (ரமோஷன p | |||
| _) பி (ரமோஸ b | |||
| _) ப (ிரம்ம b | |||
| _) பி (ரம்ம b | |||
| _) பி (ரம்மன b | |||
| @@ -2805,6 +2899,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரளய p | |||
| _) பி (ரவகி p | |||
| _) பி (ரவாக p | |||
| _) பி (ரவாள p | |||
| _) பி (ரவீண p | |||
| _) பி (ரவீன p | |||
| _) பி (ரவுச b | |||
| @@ -2812,6 +2907,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரவேசி p | |||
| _) பி (ரஷ் b | |||
| _) பி (ரஷ்ட p | |||
| _) பி (ரஸ p | |||
| _) பி (ரஸல்ஸ b | |||
| _) பி (ரஸாத p | |||
| _) பி (ரஸ்தா p | |||
| @@ -2845,6 +2941,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரான்ச f | |||
| _) பி (ரான்தி_ b | |||
| _) பி (ரான்ஸ f | |||
| _) பி (ராபல்ய p | |||
| _) பி (ராப் p | |||
| _) பி (ராமண b | |||
| _) பி (ராமணன b | |||
| @@ -2852,6 +2949,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ராமிக் b | |||
| _) பி (ராமின்_ b | |||
| _) பி (ராமிஸ p | |||
| _) பி (ராம்மண b | |||
| _) பி (ராய்லர b | |||
| _) பி (ரார்தன p | |||
| _) பி (ரார்தி p | |||
| @@ -2864,6 +2962,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ராவுக்கு b | |||
| _) பி (ராவை b | |||
| _) பி (ரிகேட b | |||
| _) பி (ரிஜேஷ b | |||
| _) பி (ரிட b | |||
| _) பிரிட (ோரிய prit. | |||
| _) பி (ரிட்டோரிய p | |||
| @@ -2887,6 +2986,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரியாவின p | |||
| _) பி (ரியாவு p | |||
| _) பி (ரியாவை p | |||
| _) பி (ரில்லிய b | |||
| _) பி (ரிஸ்டன b | |||
| _) பி (ரிஸ்டல b | |||
| _) பிரிஸ்ப (ேன brisb | |||
| @@ -2914,6 +3014,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பி (ரோகிதர p | |||
| _) பி (ரௌச b | |||
| _) பி (ரௌன b | |||
| _) ப (ிர்லா b | |||
| _) ப (ிலாஸ்பூர b | |||
| _) பிலிடெல்ப (ிய filidelf | |||
| _) பிலிம filmV# | |||
| @@ -2966,6 +3067,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) ப (ீடித்த p | |||
| _) ப (ீடிப்புகை b | |||
| _) ப (ீடிய b | |||
| _) ப (ீடியாட் p | |||
| _) ப (ீட்டில்ஸ b | |||
| _) பீட்ரூட் bi:t.ru:t. | |||
| _) பீத (ோவன bi:t | |||
| @@ -2979,6 +3081,7 @@ _விளையாடு_) ப (ாம்பே p | |||
| _) பீ (ராமண b | |||
| _) ப (ீராமணர b | |||
| _) ப (ீரிட p | |||
| _) ப (ீரியட p | |||
| _) ப (ீரோ b | |||
| _) ப (ீர்_முகமத p | |||
| _) ப (ீர்_முஹமத p | |||
| @@ -3083,6 +3186,8 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ெங்களூர b | |||
| _) ப (ெங்கால b | |||
| _) பெசண்ட besVn.t.V# | |||
| _) பெச (வாடா bezV | |||
| _) பெஜ (வாடா bezV | |||
| _) பெஞ்ச ben^tSV# | |||
| _) ப (ெஞ்சமின b | |||
| _) பெஞ்ச (மின ben^dZV | |||
| @@ -3104,6 +3209,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ெப்ரவரி f | |||
| _) ப (ெயில f | |||
| _) பெரோஸ fero:zV# | |||
| _) ப (ெர்க்கிலி b | |||
| _) பெர்ட் (ரண்ட bert. | |||
| _) ப (ெர்த் b | |||
| _) ப (ெர்னாட்ஷா b | |||
| @@ -3152,6 +3258,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ைகுக்கு b | |||
| _) ப (ைக்கின b | |||
| _) ப (ைக்கிற்க b | |||
| _) ப (ைக்கில b | |||
| _) ப (ைக்குகள b | |||
| _) ப (ைக்கும b | |||
| _) ப (ைசன b | |||
| @@ -3171,6 +3278,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ொம்மனாட்டி p | |||
| _) ப (ொம்மல b | |||
| _) ப (ொம்மை b | |||
| _) ப (ோஃபர்ஸ b | |||
| _) ப (ோஃபோர் b | |||
| _) ப (ோக_L13 b | |||
| _) ப (ோகங்க b | |||
| @@ -3188,6 +3296,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ோகிய b | |||
| _) ப (ோக்கஸ f | |||
| _) ப (ோங்கா b | |||
| _) ப (ோங்கானும p | |||
| _) ப (ோங்கு b | |||
| _) ப (ோஜ b | |||
| _) ப (ோடோ b | |||
| @@ -3195,6 +3304,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ோட்டோக்க f | |||
| _) போட்டோக்ராப (ர fo:t.t.o:gra:fV | |||
| _) ப (ோட்டோதான f | |||
| _) ப (ோணி b | |||
| _) ப (ோண்டா b | |||
| _) ப (ோண்டி b | |||
| _) ப (ோதகன b | |||
| @@ -3223,6 +3333,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
| _) ப (ோன்கூட f | |||
| _) ப (ோன்லகூட f | |||
| _) ப (ோன்ஸ்லே b | |||
| _) போப (ர்ஸ bo:fV | |||
| _) போப (ால bo:p | |||
| _) போப (ோர் bo:f | |||
| _) ப (ோரடி b | |||
| @@ -3365,6 +3476,7 @@ _விரகதா) ப (+ bV# | |||
| _மீள்) ப (தி pV | |||
| சீதா) பதி pVti | |||
| சேது) பதி pVti | |||
| _விடு) ப (தி pV | |||
| தரணி) பதி pVti | |||
| திரௌ) ப (தி pV | |||
| பிரஜா) பத (ி pVt | |||
| @@ -3389,6 +3501,7 @@ _ராஷ்டிர) ப (தி pV | |||
| _க) ப (த் bV | |||
| அரா) பத் fVt | |||
| அல்) ப (த் pV | |||
| _கிலா) பத் fVt | |||
| _தா) ப (த்த bV | |||
| வீர) ப (த்தினி pV | |||
| _ரிஷி) ப (த்தினி pV | |||
| @@ -3419,6 +3532,7 @@ _சொந்த) ப (ந்த bV | |||
| _ஊடு) ப (யிர pV | |||
| _நடை) ப (யிற்சி pV | |||
| கா) ப (ர bV | |||
| _ஜெனி) ப (ர fV | |||
| நாகா) ப (ரண bV | |||
| _ஒலி) ப (ரப் pV | |||
| _ஒளி) ப (ரப் pV | |||
| @@ -3429,6 +3543,7 @@ _சொந்த) ப (ந்த bV | |||
| _கார்) ப (ரேஷன pV | |||
| _பம்) ப (ர்_ pV | |||
| _கன்) ப (ர்ம fV | |||
| இன்) ப (ர்ம fV | |||
| கரம்) ப (ற் pV | |||
| _தீ) ப (ற்ற pV | |||
| ஆள்) ப (ற்ற pV | |||
| @@ -3463,6 +3578,7 @@ _முனிசி) ப (ல pV | |||
| _ஷில்) ப (ா p | |||
| _முஸ்த) ப (ா f | |||
| _ஹனி) ப (ா f | |||
| _ஹனீ) ப (ா f | |||
| _போதும்) ப (ா p | |||
| _போலாம்) ப (ா p | |||
| _வேண்டாம்) ப (ா p | |||
| @@ -3506,8 +3622,10 @@ _வெளிப்) ப (ாக b | |||
| ஒரு) ப (ாத p | |||
| _படு) ப (ாத p | |||
| _மறு) ப (ாத p | |||
| பரீதா) ப (ாத b | |||
| ஆமதா) ப (ாத b | |||
| அL06மதா) ப (ாத b | |||
| அலாகா) ப (ாத b | |||
| இஸ்லாமா) ப (ாத b | |||
| ஒளரங்கா) ப (ாத b | |||
| ஔரங்கா) ப (ாத b | |||
| @@ -3554,6 +3672,7 @@ _ப்ரின்சி) ப (ால p | |||
| முக) ப (ாவ b | |||
| அட) ப (ாவ p | |||
| வீண்) ப (ாவ p | |||
| _படு) ப (ாவ p | |||
| அடி) ப (ாவி p | |||
| _நவ) ப (ாஷ p | |||
| _தமிழ்ப்) ப (ாஷ _b | |||
| @@ -3605,6 +3724,7 @@ _கன்னா) ப (ின்னா p | |||
| @) ப (ின்னால்_ p | |||
| _) ப (ிப்ரவரி f | |||
| _லெஸ்) ப (ியன b | |||
| _மா) ப (ியா f | |||
| _கன்) பி (யுச f | |||
| _பெர்) பி (யூம f | |||
| _வரப்) பி (ரL04ாத p | |||
| @@ -3625,6 +3745,7 @@ _ஞானப்) பிரக (ா prVk | |||
| வீண்) பி (ரமை b | |||
| துஷ்) பி (ரயோக p | |||
| L03ந்தப்) பி (ரளய p | |||
| _சொற்) பி (ரவாக p | |||
| எக்ஸ்) பிர (ஸ pre | |||
| ஆ) பி (ரஹாம b | |||
| பயப்) பி (ராந்தி b | |||
| @@ -3654,6 +3775,7 @@ L03ந்தப்) பி (ராய p | |||
| ஆண்) ப (ிள்ளை p | |||
| பெண்) ப (ிள்ளை p | |||
| அச்சா) ப (ீ f | |||
| _ர) பீக் fi:k | |||
| உப) ப (ீட p | |||
| விக்கி) ப (ீடியா p | |||
| இம்) ப (ீரியல p | |||
| @@ -3661,6 +3783,7 @@ L03ந்தப்) பி (ராய p | |||
| _அன்) ப (ுட b | |||
| _மார்) ப (ுட b | |||
| ராஜ) ப (ுதன p | |||
| _மின்) ப (ுத்தக p | |||
| _) புத்தம்ப (ுத puttVmp | |||
| ராஜ) ப (ுத்திர p | |||
| வாயு) ப (ுத்திர p | |||
| @@ -3679,6 +3802,7 @@ L03ந்தப்) பி (ராய p | |||
| _பா) ப (ுலர p | |||
| _) பு (ளோரன்ஸ f | |||
| மண்) ப (ுழு p | |||
| _ஷாம்) ப (ூ p | |||
| ப (ூச்சி p | |||
| ம்) ப (ூச்சி b | |||
| உறுதி) ப (ூண்ட p | |||
| @@ -3708,6 +3832,7 @@ _கோலாலம்) ப (ூர p | |||
| _கை) ப (ேசி p | |||
| _செல்) ப (ேசி p | |||
| அலை) ப (ேசி p | |||
| _திரை) ப (ேசி p | |||
| தொலை) ப (ேசி p | |||
| _மறு) ப (ேச்ச p | |||
| ஒரு) ப (ேச்ச p | |||
| @@ -3732,6 +3857,7 @@ _கோலாலம்) ப (ூர p | |||
| _ வெடி) ப (ொரு p | |||
| _பழம்) ப (ொருள p | |||
| _தொல்) ப (ொருள p | |||
| _தேடு) ப (ொறி p | |||
| வீண்) ப (ொழுத p | |||
| ப (ொழுதிலா_+ p | |||
| ப (ொழுதிலும்_+ p | |||
| @@ -3743,6 +3869,7 @@ _ வெடி) ப (ொரு p | |||
| ப (ொழுதே_+ p | |||
| ப (ொழுதோ_+ p | |||
| _விலை) ப (ோ p | |||
| _பிர) ப (ோL04 p | |||
| _ஏக) ப (ோக b | |||
| ராஜ) ப (ோக b | |||
| ப (ோக_ p | |||
| @@ -3780,6 +3907,7 @@ _விலை) ப (ோ p | |||
| ப (ோன_ p | |||
| ப (ோனது_ p | |||
| ப (ோனா p | |||
| அல்) ப (ோன்சா f | |||
| ப (ோன்ற+ p // ?? end-of-word + suffix ?? | |||
| அல்) ப (ோன்ஸ f | |||
| ப (ோயிரு p | |||
| @@ -3802,7 +3930,9 @@ _விலை) ப (ோ p | |||
| _டே) ப (் p | |||
| _போ) ப் p | |||
| _லாக) ப் p | |||
| ஆசி) ப் f | |||
| _டெஸ்க்டா) ப் p | |||
| ஆ) ப் (கன f | |||
| ஆ) ப் (கான f | |||
| _பா) ப்க (ார்ன pk | |||
| _ர) ப்ச (ர ptSV | |||
| @@ -3810,6 +3940,11 @@ _டெஸ்க்டா) ப் p | |||
| _லி) ப் (ட f | |||
| _மைக்ரோசா) ப் (ட f | |||
| _சா) ப்ட் (வேர ft | |||
| _ச) ப் (த_ p | |||
| _ச) ப்த (மி_ ptV | |||
| _ச) ப்த (மிய ptV | |||
| _ச) ப் (தரிஷி p | |||
| _ச) ப் (தஸ்வர p | |||
| _ஹி) ப்னாட (ிச pna:t. | |||
| கர்) ப்ப bbV# | |||
| _நவா) ப்ப bbV# | |||
| @@ -3822,6 +3957,7 @@ _மைக்ரோசா) ப் (ட f | |||
| _ர) ப்ப (ர bbV | |||
| ஆ) ப்ப (ரிக்க fV | |||
| தென்னா) ப்ப (ரிக்க fV | |||
| _துர்) ப்ப (ல bbV | |||
| உ) ப்ப (லா bbV | |||
| உ) ப்ப (லாக bbV | |||
| உ) ப்ப (லான bbV | |||
| @@ -3837,6 +3973,8 @@ _மைக்ரோசா) ப் (ட f | |||
| _ஜ) ப்ப (ார bb | |||
| _துர்) ப்ப (ாஷ bb | |||
| அ) ப்ப (ாஸ bb | |||
| அ) ப்ப (ாஸாமி pp | |||
| அ) ப்ப (ாஸ்வாமி pp | |||
| உ) ப்ப (ி_ bb | |||
| _ட) ப்ப (ிங் bb | |||
| உ) ப்ப (ின_ bb | |||
| @@ -3848,6 +3986,8 @@ _யாதவ) ப்பி (ரகாச pp | |||
| L03) ப்பி (ரகார pp | |||
| _வெளி) ப்பி (ரகார pp | |||
| அதிக) ப்பி (ரசங்க pp | |||
| _வன) ப்பி (ரதேச pp | |||
| _காட்டு) ப்பி (ரதேச pp | |||
| _நில) ப்பி (ரபு pp | |||
| _சத்திய) ப்பி (ரமா pp | |||
| மன) ப்பி (ரமை bb | |||
| @@ -3861,10 +4001,12 @@ _சத்திய) ப்பி (ரமா pp | |||
| _மன) ப்பி (ரவாக pp | |||
| _ரத்த) ப்பி (ரவாக pp | |||
| இசை) ப்பி (ரவாக pp | |||
| உரை) ப்பி (ரவாக pp | |||
| இரத்த) ப்பி (ரவாக pp | |||
| _ஒL10ி) ப்பி (ரவாக pp | |||
| தேச) ப்பி (ரஷ்ட pp | |||
| _ஜாதி) ப்பி (ரஷ்ட pp | |||
| _வான) ப்பி (ரஸ்த pp | |||
| ஆ) ப்பி (ரிக்க f | |||
| தென்னா) ப்பி (ரிக்க fV | |||
| _கஜ) ப்ப (ிருஷ்ட bb | |||
| @@ -4028,6 +4170,8 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
| _உ) ஸ்பெக் zbek | |||
| _நவா) ஸ zV# | |||
| பெர்னாண்ட) ஸ zV# | |||
| _ம) ஸ்த (ூர zd | |||
| அரி) ஸ (ோன z | |||
| .group ஹ | |||
| ஹ HV | |||
| @@ -1,4 +1,4 @@ | |||
| // This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) | |||
| // This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) | |||
| // This file is UTF8 encoded | |||
| // Letter Names, Numbers and exceptional pronounciation of Urdu | |||
| @@ -162,11 +162,28 @@ _0M5 'khaRab | |||
| _dpt _ISaRI'Ia_ | |||
| // Exception of phonemes | |||
| // pronouns | |||
| یہ jE $u | |||
| کہ kE $u | |||
| وہ wo: $u | |||
| پ $u | |||
| تم tUm $u | |||
| ہم Ham $u | |||
| اس Is $u | |||
| ان In $u | |||
| // unstressed prepositions | |||
| کا $u | |||
| کی $u | |||
| کے $u | |||
| سے $u | |||
| اور OR $u $brk | |||
| // unstressed verbs | |||
| ہے $u | |||
| ہیں $u | |||
| // Pronunciation exceptions | |||
| پاکستان p'a:k'i:st'a:n | |||
| @@ -1,4 +1,4 @@ | |||
| | |||
| // This ur_rules file is written by Him Prasad Gautam (Kathmandu, Nepal). | |||
| // This file is UTF8 encoded | |||
| // phoneme rules for Urdu | |||
| @@ -70,12 +70,14 @@ _) ای i: | |||
| وٗ u: | |||
| و (L01 v | |||
| _) و vV | |||
| وع (_ u: | |||
| .group ی | |||
| ی e: | |||
| ی (L01 j | |||
| ی (_ i: | |||
| _) ی jV | |||
| یع(_ i: | |||
| .group ے // yeh barree | |||
| @@ -244,8 +246,12 @@ _) ای i: | |||
| .group ء | |||
| ء | |||
| .group ہ | |||
| .group ہ | |||
| ہ H | |||
| _) ہ Ha | |||
| _) ہ (L01 H | |||
| _) ہ (ند HI | |||
| ہ (_ a | |||
| @@ -4,9 +4,6 @@ language en-gb 2 | |||
| language en 2 | |||
| gender male | |||
| replace 03 I i | |||
| replace 03 I2 i | |||
| //pitch 80 118 | |||
| tunes s1 c1 q1 e1 | |||
| @@ -162,7 +162,7 @@ endphoneme | |||
| phoneme @L | |||
| vowel starttype #@ endtype l | |||
| ipa əl | |||
| ipa ə|l | |||
| unstressed | |||
| length 160 | |||
| CALL vowelstart_l | |||
| @@ -168,7 +168,9 @@ phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in Ameri | |||
| vowel starttype #a endtype #@ | |||
| length 250 | |||
| ipa aː | |||
| AppendPhoneme(r) | |||
| IF NOT nextPhW(r) THEN | |||
| AppendPhoneme(r) | |||
| ENDIF | |||
| FMT(vowelr/aa_r) | |||
| endphoneme | |||
| @@ -211,7 +213,9 @@ phoneme O@ | |||
| vowel starttype #o endtype #@ | |||
| length 230 | |||
| ipa ɔ | |||
| AppendPhoneme(r) | |||
| IF NOT nextPhW(r) THEN | |||
| AppendPhoneme(r) | |||
| ENDIF | |||
| FMT(vowelr/oo_r) | |||
| endphoneme | |||
| @@ -219,7 +223,9 @@ phoneme o@ | |||
| vowel starttype #o endtype #@ | |||
| length 230 | |||
| ipa o | |||
| AppendPhoneme(r) | |||
| IF NOT nextPhW(r) THEN | |||
| AppendPhoneme(r) | |||
| ENDIF | |||
| FMT(vowelr/oo_r) | |||
| endphoneme | |||
| @@ -305,7 +311,9 @@ phoneme e@ | |||
| vowel starttype #e endtype #@ | |||
| length 220 | |||
| ipa e | |||
| AppendPhoneme(r) | |||
| IF NOT nextPhW(r) THEN | |||
| AppendPhoneme(r) | |||
| ENDIF | |||
| FMT(vdiph2/e@) | |||
| endphoneme | |||
| @@ -314,7 +322,9 @@ phoneme i@3 | |||
| vowel starttype #i endtype #@ | |||
| ipa ɪ | |||
| length 240 | |||
| AppendPhoneme(r) | |||
| IF NOT nextPhW(r) THEN | |||
| AppendPhoneme(r) | |||
| ENDIF | |||
| FMT(vowelr/i_r) | |||
| endphoneme | |||
| @@ -380,11 +390,11 @@ phoneme r | |||
| liquid rhotic | |||
| lengthmod 7 | |||
| trill | |||
| IF nextPh(isNotVowel) THEN | |||
| ChangePhoneme(r/) | |||
| ENDIF | |||
| CALL base/r | |||
| ipa r | |||
| endphoneme | |||
| @@ -151,7 +151,7 @@ endphoneme | |||
| phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | |||
| vowel starttype #a endtype #a | |||
| ipa ɑːɹ | |||
| ipa ɑː|ɹ | |||
| IF nextPh(r-) THEN | |||
| ipa ɑː | |||
| ENDIF | |||
| @@ -192,7 +192,7 @@ endphoneme | |||
| phoneme O@ | |||
| vowel starttype #o endtype #@ | |||
| length 250 | |||
| ipa ɔːɹ | |||
| ipa ɔː|ɹ | |||
| IF nextPhW(r) THEN | |||
| ipa ɔː | |||
| ENDIF | |||
| @@ -204,7 +204,7 @@ endphoneme | |||
| phoneme o@ | |||
| vowel starttype #o endtype #@ | |||
| length 250 | |||
| ipa oːɹ | |||
| ipa oː|ɹ | |||
| IF nextPhW(r) THEN | |||
| ipa oː | |||
| ENDIF | |||
| @@ -269,7 +269,7 @@ endphoneme | |||
| phoneme e@ | |||
| vowel starttype #e endtype #@ | |||
| length 280 | |||
| ipa ɛɹ | |||
| ipa ɛ|ɹ | |||
| IF nextPhW(r) THEN | |||
| ipa ɛ | |||
| ENDIF | |||
| @@ -288,7 +288,7 @@ endphoneme | |||
| phoneme i@3 | |||
| vowel starttype #i endtype #@ | |||
| length 280 | |||
| ipa ɪɹ | |||
| ipa ɪ|ɹ | |||
| IF nextPhW(r) THEN | |||
| ipa ɪ | |||
| ENDIF | |||
| @@ -300,7 +300,7 @@ endphoneme | |||
| phoneme U@ | |||
| vowel starttype #@ endtype #@ | |||
| length 250 | |||
| ipa ʊɹ | |||
| ipa ʊ|ɹ | |||
| IF nextPhW(r-) THEN | |||
| ipa ʊ | |||
| ENDIF | |||
| @@ -44,6 +44,7 @@ | |||
| extern void FindPhonemesUsed(void); | |||
| extern void DisplayErrorFile(const char *fname); | |||
| extern int utf8_in(int *c, const char *buf); | |||
| extern int utf8_out(unsigned int c, char *buf); | |||
| extern void DrawEnvelopes(); | |||
| extern void ReadPhondataManifest(); | |||
| @@ -157,6 +158,7 @@ static keywtab_t k_properties[] = { | |||
| enum { | |||
| kPHONEMESTART = 1, | |||
| kUTF8_BOM, | |||
| kPROCEDURE, | |||
| kENDPHONEME, | |||
| kENDPROCEDURE, | |||
| @@ -210,6 +212,8 @@ enum { | |||
| kTUNE_SPLIT, | |||
| }; | |||
| static const char utf8_bom[] = {0xef,0xbb,0xbf,0}; | |||
| static keywtab_t k_intonation[] = { | |||
| {"tune", 0, kTUNE}, | |||
| {"endtune", 0, kENDTUNE}, | |||
| @@ -250,6 +254,7 @@ static keywtab_t keywords[] = { | |||
| {"phonemenumber",tSTATEMENT, kPHONEMENUMBER}, | |||
| {"phonemetable",tSTATEMENT, kPHONEMETABLE}, | |||
| {"include", tSTATEMENT, kINCLUDE}, | |||
| {utf8_bom, tSTATEMENT, kUTF8_BOM}, | |||
| {"phoneme", tSTATEMENT, kPHONEMESTART}, | |||
| {"procedure", tSTATEMENT, kPROCEDURE}, | |||
| @@ -2720,11 +2725,14 @@ int CompilePhoneme(int compile_phoneme) | |||
| int keyword; | |||
| int value; | |||
| int phcode = 0; | |||
| int flags; | |||
| int ix; | |||
| unsigned int c; | |||
| int start; | |||
| int count; | |||
| int c; | |||
| char *p; | |||
| char number_buf[12]; | |||
| char ipa_buf[N_ITEM_STRING]; | |||
| char ipa_buf[N_ITEM_STRING+1]; | |||
| PHONEME_TAB phoneme_out2; | |||
| PHONEME_PROG_LOG phoneme_prog_log; | |||
| @@ -2852,32 +2860,58 @@ int CompilePhoneme(int compile_phoneme) | |||
| strcpy(item_string," "); | |||
| // copy the string, recognize characters in the form U+9999 | |||
| p = item_string; | |||
| ix = 0; | |||
| while((c = *p++) != 0) | |||
| flags = 0; | |||
| count = 0; | |||
| ix = 1; | |||
| for(p=item_string; *p != 0;) | |||
| { | |||
| p += utf8_in(&c, p); | |||
| if((c == '|') && (count > 0)) | |||
| { | |||
| // '|' means don't allow a tie or joiner before this letter | |||
| flags |= (1 << (count -1)); | |||
| } | |||
| else | |||
| if((c=='U') && (p[0]=='+')) | |||
| { | |||
| int j; | |||
| // U+9999 | |||
| memcpy(number_buf,&p[1],4); // U+ should be followed by 4 hex digits | |||
| p++; | |||
| memcpy(number_buf,p,4); // U+ should be followed by 4 hex digits | |||
| number_buf[4] = 0; | |||
| c = 0; | |||
| c = '#'; | |||
| sscanf(number_buf,"%x",&c); | |||
| p += 5; | |||
| // move past the 4 hexdecimal digits | |||
| for(j=0; j<4; j++) | |||
| { | |||
| if(!isalnum(*p)) | |||
| break; | |||
| p++; | |||
| } | |||
| ix += utf8_out(c, &ipa_buf[ix]); | |||
| count++; | |||
| } | |||
| else | |||
| { | |||
| ipa_buf[ix++] = c; | |||
| ix += utf8_out(c, &ipa_buf[ix]); | |||
| count++; | |||
| } | |||
| } | |||
| ipa_buf[0] = flags; | |||
| ipa_buf[ix] = 0; | |||
| value = strlen(ipa_buf); // number of UTF-8 bytes | |||
| start = 1; | |||
| if(flags != 0) | |||
| start = 0; // only include the flags byte if bits are set | |||
| value = strlen(&ipa_buf[start]); // number of UTF-8 bytes | |||
| *prog_out++ = (i_IPA_NAME << 8) + value; | |||
| for(ix=0; ix < value; ix += 2) | |||
| { | |||
| *prog_out++ = (ipa_buf[ix] << 8) + (ipa_buf[ix+1] & 0xff); | |||
| *prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); | |||
| } | |||
| break; | |||
| } | |||
| @@ -3400,6 +3434,9 @@ static void CompilePhonemeFiles() | |||
| switch(item) | |||
| { | |||
| case kUTF8_BOM: | |||
| break; // ignore bytes 0xef 0xbb 0xbf | |||
| case kINCLUDE: | |||
| NextItem(tSTRING); | |||
| sprintf(buf,"%s%s",path_source,item_string); | |||
| @@ -524,15 +524,14 @@ unsigned short ipa1[96] = { | |||
| }; | |||
| char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa) | |||
| {//===================================================================================== | |||
| char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags) | |||
| {//=================================================================================================== | |||
| int c; | |||
| int mnem; | |||
| int len; | |||
| int first; | |||
| int ix = 0; | |||
| char *p; | |||
| unsigned int ipa_control=0; // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme | |||
| PHONEME_DATA phdata; | |||
| if(ph->code == phonEND_WORD) | |||
| @@ -564,20 +563,28 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int | |||
| InterpretPhoneme(NULL, 0, plist, &phdata, NULL); | |||
| } | |||
| len = strlen(phdata.ipa_string); | |||
| p = phdata.ipa_string; | |||
| if(*p == 0x20) | |||
| { | |||
| // indicates no name for this phoneme | |||
| *phon_out = 0; | |||
| return(phon_out); | |||
| } | |||
| if((*p != 0) && ((*p & 0xff) < 0x20)) | |||
| { | |||
| // name starts with a flags byte | |||
| if(flags != NULL) | |||
| *flags = *p; | |||
| p++; | |||
| } | |||
| len = strlen(p); | |||
| if(len > 0) | |||
| { | |||
| if((ipa_control = phdata.ipa_string[0]) > 0x20) | |||
| { | |||
| strcpy(&phon_out[ix], phdata.ipa_string); | |||
| ix += len; | |||
| } | |||
| if(ipa_control >= 0x20) | |||
| { | |||
| phon_out = &phon_out[ix]; | |||
| *phon_out = 0; | |||
| return(phon_out); // 0x20 = ignore phoneme | |||
| } | |||
| strcpy(phon_out, p); | |||
| phon_out += len; | |||
| *phon_out = 0; | |||
| return(phon_out); | |||
| } | |||
| } | |||
| @@ -630,12 +637,17 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||
| unsigned int max_len; | |||
| int phon_out_ix=0; | |||
| int stress; | |||
| unsigned int c; | |||
| int c; | |||
| char *p; | |||
| char *buf; | |||
| int count; | |||
| int flags; | |||
| char phon_buf[30]; | |||
| char phon_buf2[30]; | |||
| PHONEME_LIST *plist; | |||
| static const char *stress_chars = "==,,''"; | |||
| static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | |||
| if(phon_out != NULL) | |||
| { | |||
| @@ -672,22 +684,38 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||
| } | |||
| } | |||
| buf = WritePhMnemonic(buf, plist->ph, plist, use_ipa); | |||
| flags = 0; | |||
| WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||
| count = 0; | |||
| for(p=phon_buf2; *p != 0;) | |||
| { | |||
| p += utf8_in(&c, p); | |||
| if(use_ipa > 1) | |||
| { | |||
| // look for non-inital alphabetic character, but not diacritic, superscript etc. | |||
| if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) | |||
| { | |||
| buf += utf8_out(char_tie[use_ipa-2], buf); | |||
| } | |||
| } | |||
| buf += utf8_out(c, buf); | |||
| count++; | |||
| } | |||
| if(plist->ph->code != phonSWITCH) | |||
| { | |||
| if(plist->synthflags & SFLAG_LENGTHEN) | |||
| { | |||
| buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa); | |||
| buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL); | |||
| } | |||
| if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL)) | |||
| { | |||
| // syllablic consonant | |||
| buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa); | |||
| buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL); | |||
| } | |||
| if(plist->tone_ph > 0) | |||
| { | |||
| buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa); | |||
| buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL); | |||
| } | |||
| } | |||
| @@ -67,6 +67,7 @@ static const char *help_text = | |||
| "\t Compile pronunciation rules and dictionary from the current\n" | |||
| "\t directory. <voice name> specifies the language\n" | |||
| "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||
| "--path=\"<path>\"\n" | |||
| "\t Specifies the directory containing the espeak-data directory\n" | |||
| "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
| @@ -362,7 +363,7 @@ int main (int argc, char **argv) | |||
| {"path", required_argument, 0, 0x107}, | |||
| {"phonout", required_argument, 0, 0x108}, | |||
| {"pho", no_argument, 0, 0x109}, | |||
| {"ipa", no_argument, 0, 0x10a}, | |||
| {"ipa", optional_argument, 0, 0x10a}, | |||
| {"version", no_argument, 0, 0x10b}, | |||
| {0, 0, 0, 0} | |||
| }; | |||
| @@ -604,6 +605,17 @@ int main (int argc, char **argv) | |||
| case 0x10a: // --ipa | |||
| option_phonemes = 3; | |||
| if(optarg2 != NULL) | |||
| { | |||
| value = -1; | |||
| sscanf(optarg2,"%d",&value); | |||
| if((value<0) || (value>2)) | |||
| { | |||
| fprintf(stderr,"Bad value for -ipa=\n"); | |||
| value = 0; | |||
| } | |||
| option_phonemes += value; | |||
| } | |||
| break; | |||
| case 0x10b: // -version | |||
| @@ -653,8 +653,9 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
| alphabet = AlphabetFromChar(letter); | |||
| if(alphabet != current_alphabet) | |||
| { | |||
| // speak the name of the alphabet | |||
| current_alphabet = alphabet; | |||
| if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME)) | |||
| if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME) && (alphabet->offset != translator->letter_bits_offset)) | |||
| { | |||
| phontab_1 = tr->phoneme_tab_ix; | |||
| ph_buf2[0] = 0; | |||
| @@ -101,6 +101,7 @@ static const char *help_text = | |||
| "\t Compile pronunciation rules and dictionary from the current\n" | |||
| "\t directory. <voice name> specifies the language\n" | |||
| "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||
| "--path=\"<path>\"\n" | |||
| "\t Specifies the directory containing the espeak-data directory\n" | |||
| "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
| @@ -485,7 +486,7 @@ int main (int argc, char **argv) | |||
| {"path", required_argument, 0, 0x107}, | |||
| {"phonout", required_argument, 0, 0x108}, | |||
| {"pho", no_argument, 0, 0x109}, | |||
| {"ipa", no_argument, 0, 0x10a}, | |||
| {"ipa", optional_argument, 0, 0x10a}, | |||
| {"version", no_argument, 0, 0x10b}, | |||
| {0, 0, 0, 0} | |||
| }; | |||
| @@ -723,6 +724,17 @@ int main (int argc, char **argv) | |||
| case 0x10a: // --ipa | |||
| option_phonemes = 3; | |||
| if(optarg2 != NULL) | |||
| { | |||
| value = -1; | |||
| sscanf(optarg2,"%d",&value); | |||
| if((value<0) || (value>2)) | |||
| { | |||
| fprintf(stderr,"Bad value for -ipa=\n"); | |||
| value = 0; | |||
| } | |||
| option_phonemes += value; | |||
| } | |||
| break; | |||
| case 0x10b: // --version | |||
| @@ -82,12 +82,12 @@ void WVoiceChanged(voice_t *wvoice) | |||
| static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
| {//====================================================================== | |||
| ENTER("dispatch_audio"); | |||
| int a_wave_can_be_played = fifo_is_command_enabled(); | |||
| #ifdef DEBUG_ENABLED | |||
| SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", | |||
| (event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, | |||
| SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", | |||
| (event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, | |||
| (event) ? event->sample : 0, | |||
| a_wave_can_be_played); | |||
| #endif | |||
| @@ -134,8 +134,8 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
| while(a_wave_can_be_played) { | |||
| // TBD: some event are filtered here but some insight might be given | |||
| // TBD: in synthesise.cpp for avoiding to create WORDs with size=0. | |||
| // TBD: For example sentence "or ALT)." returns three words | |||
| // "or", "ALT" and "". | |||
| // TBD: For example sentence "or ALT)." returns three words | |||
| // "or", "ALT" and "". | |||
| // TBD: the last one has its size=0. | |||
| if (event && (event->type == espeakEVENT_WORD) && (event->length==0)) | |||
| { | |||
| @@ -171,7 +171,7 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
| } | |||
| SHOW_TIME("LEAVE dispatch_audio\n"); | |||
| return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error | |||
| } | |||
| @@ -183,12 +183,12 @@ static int create_events(short* outbuf, int length, espeak_EVENT* event, uint32_ | |||
| int i=0; | |||
| // The audio data are written to the output device. | |||
| // The list of events in event_list (index: event_list_ix) is read: | |||
| // The list of events in event_list (index: event_list_ix) is read: | |||
| // Each event is declared to the "event" object which stores them internally. | |||
| // The event object is responsible of calling the external callback | |||
| // as soon as the relevant audio sample is played. | |||
| do | |||
| do | |||
| { // for each event | |||
| espeak_EVENT* event; | |||
| if (event_list_ix == 0) | |||
| @@ -231,7 +231,7 @@ int sync_espeak_terminated_msg( uint32_t unique_identifier, void* user_data) | |||
| if (my_mode==AUDIO_OUTPUT_PLAYBACK) | |||
| { | |||
| while(1) | |||
| while(1) | |||
| { | |||
| espeak_ERROR a_error = event_declare(event_list); | |||
| if (a_error != EE_BUFFER_FULL) | |||
| @@ -290,14 +290,14 @@ static void select_output(espeak_AUDIO_OUTPUT output_type) | |||
| int GetFileLength(const char *filename) | |||
| {//==================================== | |||
| struct stat statbuf; | |||
| if(stat(filename,&statbuf) != 0) | |||
| return(0); | |||
| if((statbuf.st_mode & S_IFMT) == S_IFDIR) | |||
| // if(S_ISDIR(statbuf.st_mode)) | |||
| return(-2); // a directory | |||
| return(statbuf.st_size); | |||
| } // end of GetFileLength | |||
| @@ -337,7 +337,7 @@ static void init_path(const char *path) | |||
| { | |||
| sprintf(path_home,"%s/espeak-data",env); | |||
| if(GetFileLength(path_home) == -2) | |||
| return; // an espeak-data directory exists | |||
| return; // an espeak-data directory exists | |||
| } | |||
| buf[0] = 0; | |||
| @@ -362,7 +362,7 @@ static void init_path(const char *path) | |||
| { | |||
| snprintf(path_home,sizeof(path_home),"%s/espeak-data",env); | |||
| if(GetFileLength(path_home) == -2) | |||
| return; // an espeak-data directory exists | |||
| return; // an espeak-data directory exists | |||
| } | |||
| snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | |||
| @@ -561,21 +561,21 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un | |||
| ENTER("MarkerEvent"); | |||
| espeak_EVENT *ep; | |||
| double time; | |||
| if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | |||
| return; | |||
| ep = &event_list[event_list_ix++]; | |||
| ep->type = (espeak_EVENT_TYPE)type; | |||
| ep->unique_identifier = my_unique_identifier; | |||
| ep->user_data = my_user_data; | |||
| ep->text_position = char_position & 0xffffff; | |||
| ep->length = char_position >> 24; | |||
| time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||
| ep->audio_position = int(time); | |||
| ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | |||
| #ifdef DEBUG_ENABLED | |||
| SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); | |||
| SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", | |||
| @@ -605,22 +605,22 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un | |||
| espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, | |||
| unsigned int position, espeak_POSITION_TYPE position_type, | |||
| espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, | |||
| unsigned int position, espeak_POSITION_TYPE position_type, | |||
| unsigned int end_position, unsigned int flags, void* user_data) | |||
| {//=========================================================================== | |||
| #ifdef DEBUG_ENABLED | |||
| ENTER("sync_espeak_Synth"); | |||
| SHOW("sync_espeak_Synth > position=%d, position_type=%d, end_position=%d, flags=%d, user_data=0x%x, text=%s\n", position, position_type, end_position, flags, user_data, text); | |||
| #endif | |||
| espeak_ERROR aStatus; | |||
| InitText(flags); | |||
| my_unique_identifier = unique_identifier; | |||
| my_user_data = user_data; | |||
| for (int i=0; i < N_SPEECH_PARAM; i++) | |||
| saved_parameters[i] = param_stack[0].parameter[i]; | |||
| @@ -629,26 +629,26 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, | |||
| case POS_CHARACTER: | |||
| skip_characters = position; | |||
| break; | |||
| case POS_WORD: | |||
| skip_words = position; | |||
| break; | |||
| case POS_SENTENCE: | |||
| skip_sentences = position; | |||
| break; | |||
| } | |||
| if(skip_characters || skip_words || skip_sentences) | |||
| skipping_text = 1; | |||
| end_character_position = end_position; | |||
| aStatus = Synthesize(unique_identifier, text, flags); | |||
| #ifdef USE_ASYNC | |||
| wave_flush(my_audio); | |||
| #endif | |||
| SHOW_TIME("LEAVE sync_espeak_Synth"); | |||
| return aStatus; | |||
| } // end of sync_espeak_Synth | |||
| @@ -656,29 +656,29 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, | |||
| espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, | |||
| const char *index_mark, unsigned int end_position, | |||
| espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, | |||
| const char *index_mark, unsigned int end_position, | |||
| unsigned int flags, void* user_data) | |||
| {//========================================================================= | |||
| espeak_ERROR aStatus; | |||
| InitText(flags); | |||
| my_unique_identifier = unique_identifier; | |||
| my_user_data = user_data; | |||
| if(index_mark != NULL) | |||
| { | |||
| strncpy0(skip_marker, index_mark, sizeof(skip_marker)); | |||
| skipping_text = 1; | |||
| } | |||
| end_character_position = end_position; | |||
| aStatus = Synthesize(unique_identifier, text, flags | espeakSSML); | |||
| SHOW_TIME("LEAVE sync_espeak_Synth_Mark"); | |||
| return (aStatus); | |||
| } // end of sync_espeak_Synth_Mark | |||
| @@ -710,7 +710,7 @@ void sync_espeak_Char(wchar_t character) | |||
| char buf[80]; | |||
| my_unique_identifier = 0; | |||
| my_user_data = NULL; | |||
| sprintf(buf,"<say-as interpret-as=\"tts:char\">&#%d;</say-as>",character); | |||
| Synthesize(0, buf,espeakSSML); | |||
| } | |||
| @@ -722,7 +722,7 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist) | |||
| // Set the list of punctuation which are spoken for "some". | |||
| my_unique_identifier = 0; | |||
| my_user_data = NULL; | |||
| wcsncpy(option_punctlist, punctlist, N_PUNCTLIST); | |||
| option_punctlist[N_PUNCTLIST-1] = 0; | |||
| } // end of sync_espeak_SetPunctuationList | |||
| @@ -771,7 +771,7 @@ ENTER("espeak_Initialize"); | |||
| setlocale(LC_CTYPE,""); | |||
| } | |||
| #endif | |||
| init_path(path); | |||
| initialise(options); | |||
| select_output(output_type); | |||
| @@ -788,30 +788,30 @@ ENTER("espeak_Initialize"); | |||
| outbuf = (unsigned char*)realloc(outbuf,outbuf_size); | |||
| if((out_start = outbuf) == NULL) | |||
| return(EE_INTERNAL_ERROR); | |||
| // allocate space for event list. Allow 200 events per second. | |||
| // Add a constant to allow for very small buf_length | |||
| n_event_list = (buf_length*200)/1000 + 20; | |||
| if((event_list = (espeak_EVENT *)realloc(event_list,sizeof(espeak_EVENT) * n_event_list)) == NULL) | |||
| return(EE_INTERNAL_ERROR); | |||
| option_phonemes = 0; | |||
| option_mbrola_phonemes = 0; | |||
| option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA)); | |||
| VoiceReset(0); | |||
| // SetVoiceByName("default"); | |||
| for(param=0; param<N_SPEECH_PARAM; param++) | |||
| param_stack[0].parameter[param] = saved_parameters[param] = param_defaults[param]; | |||
| SetParameter(espeakRATE,175,0); | |||
| SetParameter(espeakVOLUME,100,0); | |||
| SetParameter(espeakCAPITALS,option_capitals,0); | |||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||
| SetParameter(espeakWORDGAP,0,0); | |||
| // DoVoiceChange(voice); | |||
| #ifdef USE_ASYNC | |||
| fifo_init(); | |||
| #endif | |||
| @@ -821,10 +821,10 @@ ENTER("espeak_Initialize"); | |||
| ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
| unsigned int position, | |||
| ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
| unsigned int position, | |||
| espeak_POSITION_TYPE position_type, | |||
| unsigned int end_position, unsigned int flags, | |||
| unsigned int end_position, unsigned int flags, | |||
| unsigned int* unique_identifier, void* user_data) | |||
| {//===================================================================================== | |||
| #ifdef DEBUG_ENABLED | |||
| @@ -885,10 +885,10 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
| ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
| const char *index_mark, | |||
| unsigned int end_position, | |||
| unsigned int flags, | |||
| ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
| const char *index_mark, | |||
| unsigned int end_position, | |||
| unsigned int flags, | |||
| unsigned int* unique_identifier, | |||
| void* user_data) | |||
| {//========================================================================= | |||
| @@ -919,15 +919,15 @@ ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
| #ifdef USE_ASYNC | |||
| // Create the mark command | |||
| t_espeak_command* c1 = create_espeak_mark(text, size, index_mark, end_position, | |||
| t_espeak_command* c1 = create_espeak_mark(text, size, index_mark, end_position, | |||
| flags, user_data); | |||
| // Retrieve the unique identifier | |||
| *unique_identifier = c1->u.my_mark.unique_identifier; | |||
| // Create the "terminated msg" command (same uid) | |||
| t_espeak_command* c2 = create_espeak_terminated_msg(*unique_identifier, user_data); | |||
| // Try to add these 2 commands (single transaction) | |||
| if (c1 && c2) | |||
| { | |||
| @@ -1152,15 +1152,15 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) | |||
| value=0 No phoneme output (default) | |||
| value=1 Output the translated phoneme symbols for the text | |||
| value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) | |||
| value=3 as (1), but produces IPA phoneme names rather than ascii | |||
| value=3 as (1), but produces IPA phoneme names rather than ascii | |||
| bit 4: produce mbrola pho data | |||
| */ | |||
| option_phonemes = value & 3; | |||
| option_phonemes = value & 7; | |||
| option_mbrola_phonemes = value & 16; | |||
| f_trans = stream; | |||
| if(stream == NULL) | |||
| f_trans = stderr; | |||
| } // end of espeak_SetPhonemes | |||
| @@ -1269,4 +1269,4 @@ ESPEAK_API const char *espeak_Info(const char **ptr) | |||
| #pragma GCC visibility pop | |||
| @@ -1,5 +1,5 @@ | |||
| /*************************************************************************** | |||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
| * email: [email protected] * | |||
| * * | |||
| * This program is free software; you can redistribute it and/or modify * | |||
| @@ -490,7 +490,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr | |||
| if(ph->code != phonEND_WORD) | |||
| { | |||
| char phoneme_name[16]; | |||
| WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA); | |||
| WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA, NULL); | |||
| DoPhonemeMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, phoneme_name); | |||
| } | |||
| @@ -35,8 +35,8 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.46.39 01.Mar.13"; | |||
| const int version_phdata = 0x014639; | |||
| const char *version_string = "1.46.41 03.Mar.13"; | |||
| const int version_phdata = 0x014640; | |||
| int option_device_number = -1; | |||
| FILE *f_logespeak = NULL; | |||
| @@ -1438,7 +1438,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
| } | |||
| else | |||
| { | |||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); | |||
| DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||
| done_phoneme_marker = 1; | |||
| } | |||
| @@ -1751,7 +1751,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
| if((option_phoneme_events) && (done_phoneme_marker == 0)) | |||
| { | |||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||
| WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); | |||
| DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||
| } | |||
| @@ -1937,8 +1937,8 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
| if((option_phonemes > 0) || (phoneme_callback != NULL)) | |||
| { | |||
| int use_ipa = 0; | |||
| if(option_phonemes == 3) | |||
| use_ipa = 1; | |||
| if(option_phonemes >= 3) | |||
| use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ | |||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||
| if(option_phonemes > 0) | |||
| @@ -1,5 +1,5 @@ | |||
| /*************************************************************************** | |||
| * Copyright (C) 2005 to 2011 by Jonathan Duddington * | |||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
| * email: [email protected] * | |||
| * * | |||
| * This program is free software; you can redistribute it and/or modify * | |||
| @@ -163,7 +163,7 @@ static void SetLetterBitsRange(Translator *tr, int group, int first, int last) | |||
| // ignore these characters | |||
| static const unsigned short chars_ignore_default[] = { | |||
| 0xad, 1, // soft hyphtn | |||
| 0xad, 1, // soft hyphen | |||
| 0x200c, 1, // zero width non-joiner | |||
| 0x200d, 1, // zero width joiner | |||
| 0, 0 }; | |||
| @@ -436,13 +436,16 @@ Translator *SelectTranslator(const char *name) | |||
| int name2 = 0; | |||
| Translator *tr; | |||
| static const short stress_lengths_equal[8] = {250, 250, 250, 250, 0, 0, 250, 250}; | |||
| static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; | |||
| static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; | |||
| static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; | |||
| static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; | |||
| static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | |||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
| static const short stress_lengths_ta[8] = {240, 240, 250, 250, 0, 0, 270, 270}; | |||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
| // convert name string into a word of up to 4 characters, for the switch() | |||
| @@ -836,8 +839,17 @@ Translator *SelectTranslator(const char *name) | |||
| { | |||
| tr->letter_bits_offset = OFFSET_GURMUKHI; | |||
| } | |||
| else | |||
| if(name2 == L('g','u')) | |||
| { | |||
| SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||
| tr->letter_bits_offset = OFFSET_GUJARATI; | |||
| tr->langopts.stress_rule = STRESSPOSN_2R; | |||
| } | |||
| else | |||
| if(name2 == L('n','e')) | |||
| { | |||
| SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||
| tr->langopts.break_numbers = 0x2aaaa8; | |||
| tr->langopts.max_digits = 22; | |||
| tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS; | |||
| @@ -3309,17 +3309,21 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| *pn++ = tr->langopts.thousands_sep; | |||
| } | |||
| *pn++ = ' '; | |||
| if(tr->langopts.break_numbers & (1 << (nx-1))) | |||
| { | |||
| // the next group only has 1 digits (i.e. NUM2_10000), make it three | |||
| *pn++ = '0'; | |||
| *pn++ = '0'; | |||
| } | |||
| if(tr->langopts.break_numbers & (1 << (nx-2))) | |||
| { | |||
| // the next group only has 2 digits (i.e. NUM2_10000), make it three | |||
| *pn++ = '0'; | |||
| } | |||
| if((words[ix].flags & FLAG_INDIVIDUAL_DIGITS) == 0) | |||
| { | |||
| if(tr->langopts.break_numbers & (1 << (nx-1))) | |||
| { | |||
| // the next group only has 1 digits, make it three | |||
| *pn++ = '0'; | |||
| *pn++ = '0'; | |||
| } | |||
| if(tr->langopts.break_numbers & (1 << (nx-2))) | |||
| { | |||
| // the next group only has 2 digits (eg. Indian languages), make it three | |||
| *pn++ = '0'; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| pw--; | |||
| @@ -721,7 +721,7 @@ int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix | |||
| void SetVoiceStack(espeak_VOICE *v, const char *variant_name); | |||
| void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata, WORD_PH_DATA *worddata); | |||
| void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); | |||
| char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa); | |||
| char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags); | |||
| extern FILE *f_trans; // for logging | |||
| extern FILE *f_logespeak; | |||