Conflicts: dictsource/dict_phonemes phsource/compile_report phsource/ph_sinhala phsource/ph_urdu platforms/windows/make_espeak.iss platforms/windows/make_espeakedit.issmaster
| // Arabic letters | // Arabic letters | ||||
| ء h'amza | ء h'amza | ||||
| آ 'Elifm,adda# | |||||
| أ 'Elifh,amza | |||||
| ا 'Elif | |||||
| ب bE? | |||||
| آ al'if_mamd'uda# | |||||
| أ h'amza_taht_al'if | |||||
| ؤ h'amza_?la_waw | |||||
| إ al'if_taht_h'amza | |||||
| ئ h'amza_?la_jE? | |||||
| ا al'if | |||||
| ب ba | |||||
| ة t'E?maR2b'uta# | ة t'E?maR2b'uta# | ||||
| ت tE? | |||||
| ت ta | |||||
| ث TE? | ث TE? | ||||
| ج ZIm | |||||
| ج dZi:m | |||||
| ح hE? | ح hE? | ||||
| خ xE? | خ xE? | ||||
| د dEl/1 | |||||
| ذ DEl/1 | |||||
| د dal/1 | |||||
| ذ Dal/1 | |||||
| ر R2A:? | ر R2A:? | ||||
| ز zEjn | ز zEjn | ||||
| س si:n | س si:n | ||||
| ش Si:n | ش Si:n | ||||
| ص sO:d@- | |||||
| ض dO:d@- | |||||
| ص sa:d@- | |||||
| ض da:d@- | |||||
| ط thA:? | ط thA:? | ||||
| ظ DA:? | ظ DA:? | ||||
| ع ?ajn | |||||
| غ Q"ajn | |||||
| ف fE? | |||||
| ق qO:f | |||||
| ك kEf | |||||
| ل lEm | |||||
| ع '?Ein | |||||
| غ 'Q"Ein | |||||
| ف fa | |||||
| ق qa:f | |||||
| ك kaf | |||||
| ل lam | |||||
| م mi:m | م mi:m | ||||
| ن nu|:n | ن nu|:n | ||||
| ه hE? | |||||
| و wO:w | |||||
| ه ha | |||||
| و waw | |||||
| ى al'if_maks'ura | |||||
| ي jE? | ي jE? | ||||
| // Farsi | |||||
| پ pa | |||||
| چ tSa | |||||
| ژ Za | |||||
| گ ga:f | |||||
| ی f'A@si||j'e | |||||
| ک k'a:f | |||||
| // Urdu | |||||
| ٹ te | |||||
| ڈ de | |||||
| ڑ z.e | |||||
| ے barij'e | |||||
| ھ h'@ | |||||
| َ a | َ a | ||||
| ِ i | ِ i | ||||
| alas a#l'as | alas a#l'as | ||||
| albeit O:lb'i:It | albeit O:lb'i:It | ||||
| alfalfa alf'alf@ | alfalfa alf'alf@ | ||||
| algebra aldZI2br@ | |||||
| alias eIli@s | alias eIli@s | ||||
| alibi al@baI | alibi al@baI | ||||
| alibis al@baIz | alibis al@baIz | ||||
| (tear apart) t,e@||a#pA@t | (tear apart) t,e@||a#pA@t | ||||
| (tear off) t'e@||'0f | (tear off) t'e@||'0f | ||||
| teargas ti@3gas | teargas ti@3gas | ||||
| techy tEki | |||||
| teddybear t'EdIb,e@ | teddybear t'EdIb,e@ | ||||
| telemetry t@lEm@tri | telemetry t@lEm@tri | ||||
| telepathy t@lEp@Ti | telepathy t@lEp@Ti | ||||
| ?5 Luxembourg lVks@mbVRg | ?5 Luxembourg lVks@mbVRg | ||||
| Madagascar mad@g'ask3 | Madagascar mad@g'ask3 | ||||
| Madras m@draas | Madras m@draas | ||||
| Madrid m@drId | |||||
| Madrid m@drId | |||||
| Malawi $alt3 | Malawi $alt3 | ||||
| Malayalam maleI'A:l@m | |||||
| Maldives mO:ld'i:v | Maldives mO:ld'i:v | ||||
| Mali mA:li | Mali mA:li | ||||
| Mandalay $3 | Mandalay $3 | ||||
| Wyoming waI'oUmIN | Wyoming waI'oUmIN | ||||
| Xhosa kO:s@ | Xhosa kO:s@ | ||||
| Yemen $alt2 | Yemen $alt2 | ||||
| Yosemite joUs'Em@ti | |||||
| zaire zaI'i@3 | zaire zaI'i@3 | ||||
| zimbabwe zI2mbA:bwi | zimbabwe zI2mbA:bwi | ||||
| zimbabwean zI2mbA:bwI@n | zimbabwean zI2mbA:bwI@n |
| a) ch (il k | a) ch (il k | ||||
| bra) ch k | bra) ch k | ||||
| te) ch (K k | te) ch (K k | ||||
| _te) ch k | |||||
| ch (isC k | ch (isC k | ||||
| ch (ic_ k | ch (ic_ k | ||||
| @@Car) ch (_ k | @@Car) ch (_ k | ||||
| &n) iel (_ j@L | &n) iel (_ j@L | ||||
| &r) iel (_ =i:@L | &r) iel (_ =i:@L | ||||
| ie (n i@ | ie (n i@ | ||||
| &) ie (n_ =i@n | |||||
| d) iene (_ 'aIi:n | d) iene (_ 'aIi:n | ||||
| ie (ntal I'E | ie (ntal I'E | ||||
| g) ie (n i: | g) ie (n i: |
| eles $u+ $verbf | eles $u+ $verbf | ||||
| elas $u+ $verbf | elas $u+ $verbf | ||||
| me $u // reflexive | |||||
| me $u $verbf | |||||
| me $u $verbf // reflexive | |||||
| te $u $verbf | te $u $verbf | ||||
| nos $u $nounf | nos $u $nounf | ||||
| la $u | la $u | ||||
| ?2 nesta $u+ $nounf | ?2 nesta $u+ $nounf | ||||
| ?2 neste $u+ $nounf n'estSi //in this | ?2 neste $u+ $nounf n'estSi //in this | ||||
| ?2 esse $u+ $nounf 'esi // that | ?2 esse $u+ $nounf 'esi // that | ||||
| essa 'Es& $u+ | |||||
| essa 'Es& $u+ $noun | |||||
| desse $u+ $nounf | desse $u+ $nounf | ||||
| desta $nounf | desta $nounf | ||||
| nesse n'esy $u+ $nounf | nesse n'esy $u+ $nounf | ||||
| duns $u $nounf | duns $u $nounf | ||||
| dumas $u $nounf | dumas $u $nounf | ||||
| em $u // in,on,at | |||||
| em $u $noun // in,on,at | |||||
| no nu $u $nounf | no nu $u $nounf | ||||
| na $u $nounf | na $u $nounf | ||||
| num $u $nounf | num $u $nounf | ||||
| // conjunctions | // conjunctions | ||||
| ?1 e i $u // and | ?1 e i $u // and | ||||
| ?2 e i $u // and | ?2 e i $u // and | ||||
| se $u // if | |||||
| se $u+ $verbf // if | |||||
| ?2 mas $u // but | ?2 mas $u // but | ||||
| estava $u | estava $u | ||||
| estávamos $u | estávamos $u | ||||
| astavam $u | |||||
| estavam $u | |||||
| estive $u | estive $u | ||||
| ?2 esteve estevy $u2 | ?2 esteve estevy $u2 | ||||
| // some common adjectives and adverbs | // some common adjectives and adverbs | ||||
| alguns $u // some | |||||
| algumas $u // some | |||||
| não n,&U~ $strend // not | |||||
| alguns $u $noun // some | |||||
| algumas $u $noun // some | |||||
| não n,&U~ $verbf $strend // not | |||||
| nunca $u+ $verbf | |||||
| sempre $u+ $verbf | |||||
| qualquer $u $nounf | |||||
| quaisquer $u $nounf | |||||
| jamais $u+ $verbf | |||||
| // MAIN WORD DICTIONARY | // MAIN WORD DICTIONARY | ||||
| aeroportos $alt | aeroportos $alt | ||||
| albatrozes $alt | albatrozes $alt | ||||
| alcateia $alt | alcateia $alt | ||||
| alcova $alt2 | |||||
| alferes $alt | alferes $alt | ||||
| algozes $alt | algozes $alt | ||||
| alicerce $alt | |||||
| almoço $alt $verb | almoço $alt $verb | ||||
| ameba $alt | ameba $alt | ||||
| amores $alt2 | amores $alt2 | ||||
| besta $alt2 | besta $alt2 | ||||
| bilhete $alt2 | bilhete $alt2 | ||||
| boca $alt2 | boca $alt2 | ||||
| boceta $alt2 | |||||
| bochecha $alt2 | bochecha $alt2 | ||||
| bojo $alt2 | bojo $alt2 | ||||
| boleia $alt | boleia $alt | ||||
| borra $alt2 $noun | borra $alt2 $noun | ||||
| bosque $alt | bosque $alt | ||||
| boto $alt2 $noun | boto $alt2 $noun | ||||
| boxe $alt | |||||
| brejo $alt | brejo $alt | ||||
| bromelha $alt | bromelha $alt | ||||
| cabelo $alt2 | cabelo $alt2 | ||||
| cadete $alt2 | cadete $alt2 | ||||
| camelha $alt | camelha $alt | ||||
| camelo $alt2 | camelo $alt2 | ||||
| caminhonete $alt | |||||
| camiseta $alt2 | camiseta $alt2 | ||||
| cantora $alt2 | cantora $alt2 | ||||
| capacete $alt2 | capacete $alt2 | ||||
| faceta $alt2 | faceta $alt2 | ||||
| fantoche $alt | fantoche $alt | ||||
| farofa $alt | farofa $alt | ||||
| farolete $alt2 | |||||
| febre $alt | febre $alt | ||||
| fera $alt | fera $alt | ||||
| feitora $alt2 | feitora $alt2 | ||||
| ferozes $alt | ferozes $alt | ||||
| fezes $alt | fezes $alt | ||||
| filete $alt2 | |||||
| ?1 fixe fiSy | ?1 fixe fiSy | ||||
| foda $alt2 $verb | foda $alt2 $verb | ||||
| fogos $alt | fogos $alt | ||||
| galera $alt | galera $alt | ||||
| galileia $alt | galileia $alt | ||||
| gameta $alt2 | gameta $alt2 | ||||
| garçonete $alt2 | |||||
| geleia $alt | geleia $alt | ||||
| gelo $alt2 | gelo $alt2 | ||||
| gelo $alt $verb | gelo $alt $verb | ||||
| joguete $alt2 | joguete $alt2 | ||||
| lagosta $alt2 | lagosta $alt2 | ||||
| lambreta $alt2 | lambreta $alt2 | ||||
| lanchonete $alt | |||||
| lebre $alt | lebre $alt | ||||
| lembrete $alt2 | lembrete $alt2 | ||||
| lepra $alt | lepra $alt | ||||
| macete $alt2 | macete $alt2 | ||||
| maior $alt | maior $alt | ||||
| maleta $alt2 | maleta $alt2 | ||||
| marionete $alt | |||||
| marreta $alt2 | marreta $alt2 | ||||
| megera $alt | megera $alt | ||||
| melhor $alt | melhor $alt | ||||
| modelo $alt2 | modelo $alt2 | ||||
| modelo $alt $verb | modelo $alt $verb | ||||
| moeda $alt | moeda $alt | ||||
| moem $alt | |||||
| mofo $alt $verb | mofo $alt $verb | ||||
| molho $alt2 $noun | molho $alt2 $noun | ||||
| monera $alt | monera $alt | ||||
| naquela $nounf | naquela $nounf | ||||
| naquele $alt2 $nounf | naquele $alt2 $nounf | ||||
| nervo $alt2 | nervo $alt2 | ||||
| nojo $alt2 | |||||
| novelo $alt2 | novelo $alt2 | ||||
| novos $alt | novos $alt | ||||
| obstetra $alt | obstetra $alt | ||||
| odisseia $alt | odisseia $alt | ||||
| onu $1 | onu $1 | ||||
| olho $alt2 $noun | |||||
| olho $alt2 $noun | |||||
| olhos $alt | |||||
| onomatopeia $alt | onomatopeia $alt | ||||
| opereta $alt2 | opereta $alt2 | ||||
| ordens $alt | ordens $alt | ||||
| pantera $alt | pantera $alt | ||||
| parede $alt2 | parede $alt2 | ||||
| pastora $alt2 | pastora $alt2 | ||||
| patinete $alt | |||||
| pedra $alt | pedra $alt | ||||
| pela $alt $verb | pela $alt $verb | ||||
| pelego $alt2 | |||||
| pela $alt $verb | |||||
| pelo $alt2 | pelo $alt2 | ||||
| pelo $alt $verb | pelo $alt $verb | ||||
| peso $alt $verb | peso $alt $verb | ||||
| remorso $alt | remorso $alt | ||||
| renovo $alt $verb | renovo $alt $verb | ||||
| retorno $alt $verb | retorno $alt $verb | ||||
| reuva $alt | |||||
| reuva x'EUv& | |||||
| rigores $alt2 | rigores $alt2 | ||||
| rixa x'iS& | rixa x'iS& | ||||
| rocha $alt | rocha $alt | ||||
| rock $alt | rock $alt | ||||
| roem $alt | |||||
| rola $alt2 $noun | rola $alt2 $noun | ||||
| rolo $alt2 $noun | rolo $alt2 $noun | ||||
| rota $alt2 | rota $alt2 | ||||
| tapete $alt2 | tapete $alt2 | ||||
| temores $alt2 | temores $alt2 | ||||
| tempero $alt2 $noun | tempero $alt2 $noun | ||||
| tenores $alt2 | |||||
| terrores $alt2 | terrores $alt2 | ||||
| teta $alt2 | teta $alt2 | ||||
| tetra $alt | tetra $alt | ||||
| vozes $alt | vozes $alt | ||||
| xarope $alt | xarope $alt | ||||
| zelo $alt2 $noun | zelo $alt2 $noun | ||||
| zero $alt | |||||
| zorra $alt2 | zorra $alt2 | ||||
| ?1 download d'a,wnl'oud | ?1 download d'a,wnl'oud | ||||
| ?2 download daUNl'owd | ?2 download daUNl'owd | ||||
| ?3 download dau~Nl'owd | ?3 download dau~Nl'owd | ||||
| drive dR'aivy | |||||
| driver dR'aiver | |||||
| drivers dR'aiveRs | |||||
| ?1 end 'end | ?1 end 'end | ||||
| ?2 esc 'Esk | ?2 esc 'Esk | ||||
| ?3 esc 'EskI | ?3 esc 'EskI | ||||
| ?1 ovo 'ovu | ?1 ovo 'ovu | ||||
| ?1 pause p'au:z | ?1 pause p'au:z | ||||
| page p'eIdZ | page p'eIdZ | ||||
| pizza p'its& | |||||
| python p'aIT&~N | python p'aIT&~N | ||||
| ?1 readme r'i:dmi: | ?1 readme r'i:dmi: | ||||
| ?1 sapi s,ap'i | ?1 sapi s,ap'i | ||||
| ?1 space sp'eIsy | ?1 space sp'eIsy | ||||
| ?1 sporting sp'Ort,ing | ?1 sporting sp'Ort,ing | ||||
| tab t'aby | tab t'aby | ||||
| tablet t'ablet | |||||
| ?1 telemóvel t,El,Em'OvEl | ?1 telemóvel t,El,Em'OvEl | ||||
| ?1 telemóveis t,El,Em'OveIs# | ?1 telemóveis t,El,Em'OveIs# | ||||
| ?1 up &p | ?1 up &p | ||||
| ?2 microsoft m'aIkRows'Oft | ?2 microsoft m'aIkRows'Oft | ||||
| ?1 movie m'uvi | ?1 movie m'uvi | ||||
| ?1 nero n'Eru | ?1 nero n'Eru | ||||
| ?1 office 'Of,is | |||||
| /1 office 'Of,is | |||||
| ?2 office 'Ofsy | |||||
| openoffice 'opeIN|'Ofis | openoffice 'opeIN|'Ofis | ||||
| ?1 outlook 'autl'uk | ?1 outlook 'autl'uk | ||||
| ?2 Outlook ,aUtl'uk | ?2 Outlook ,aUtl'uk |
| ?1 a (lK ,A // Algarve, Almerinda, etc... | ?1 a (lK ,A // Algarve, Almerinda, etc... | ||||
| ?2 al (K aU | ?2 al (K aU | ||||
| a (lh+ a | a (lh+ a | ||||
| a (m &~ | a (m &~ | ||||
| a (mAr_ & | a (mAr_ & | ||||
| a (mA@ & | a (mA@ & | ||||
| e (xA_ E | e (xA_ E | ||||
| e (xAm_ E | e (xAm_ E | ||||
| ?2 _n) e (t E | ?2 _n) e (t E | ||||
| em (C eIm | em (C eIm | ||||
| en (K eIN | en (K eIN | ||||
| enh en^ | enh en^ | ||||
| _perd) e (L05_ e | _perd) e (L05_ e | ||||
| _quis) e (L05_ E | _quis) e (L05_ E | ||||
| _soub) e (L05_ E | _soub) e (L05_ E | ||||
| _talh) e (L05_ E | |||||
| _trem) e (L05_ e | _trem) e (L05_ e | ||||
| diss) e (L06_ E // contra- | diss) e (L06_ E // contra- | ||||
| fend) e (L06_ e // de- o- | fend) e (L06_ e // de- o- | ||||
| _hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
| _gr) e (gL03_ e | _gr) e (gL03_ e | ||||
| _gal) e (gL03_ e | _gal) e (gL03_ e | ||||
| _pel) e (gL03_ e | |||||
| _n) e (grL03_ e | _n) e (grL03_ e | ||||
| _ch) e (guL02_ e | _ch) e (guL02_ e | ||||
| estr) ei (L04_ EI | estr) ei (L04_ EI | ||||
| _reit) e (rL03_ E | _reit) e (rL03_ E | ||||
| _sinc) e (rL03_ E | _sinc) e (rL03_ E | ||||
| _g) e (rL04_ E | _g) e (rL04_ E | ||||
| _z) e (rL04_ E | |||||
| qu) e (rL04_ E // re- | qu) e (rL04_ E // re- | ||||
| _op) e (rL04_ E | _op) e (rL04_ E | ||||
| gen) e (rL04_ E // de- re- | gen) e (rL04_ E // de- re- | ||||
| _alt) e (rL04_ E | _alt) e (rL04_ E | ||||
| _enc) e (rL04_ E | |||||
| _sug) e (rL04_ E | _sug) e (rL04_ E | ||||
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _tol) e (rL04_ E | _tol) e (rL04_ E | ||||
| _recup) e (rL04_ E | _recup) e (rL04_ E | ||||
| _refrig) e (rL04_ E | _refrig) e (rL04_ E | ||||
| _v) e (rbL03_ E | _v) e (rbL03_ E | ||||
| _alic) e (rcL02_ E | |||||
| _p) e (rdL02_ E | _p) e (rdL02_ E | ||||
| _l) e (rdL03_ E | _l) e (rdL03_ E | ||||
| _h) e (rdL04_ E | _h) e (rdL04_ E | ||||
| _bez) e (rrL03_ e | _bez) e (rrL03_ e | ||||
| _inv) e (rtL03_ e | _inv) e (rtL03_ e | ||||
| _f) e (rvL03_ e | _f) e (rvL03_ e | ||||
| _alic) e (rçL03_ E | |||||
| _p) e (sL01_ E | |||||
| _l) e (sL03_ E | |||||
| _refr) e (scL01_ E | _refr) e (scL01_ E | ||||
| _d) e (scL02_ E | _d) e (scL02_ E | ||||
| _cr) e (scL02_ E | _cr) e (scL02_ E | ||||
| _atr) e (vL03_ e | _atr) e (vL03_ e | ||||
| _r) e (zL04_ E | _r) e (zL04_ E | ||||
| _pr) e (zL04_ E | _pr) e (zL04_ E | ||||
| _rev) e (zL04_ E | |||||
| _despr) e (zL04_ E | _despr) e (zL04_ E | ||||
| _embel) e (zL04_ E | _embel) e (zL04_ E | ||||
| _menospr) e (zL04_ E | _menospr) e (zL04_ E | ||||
| _) l (_ 'Ele | _) l (_ 'Ele | ||||
| l l | l l | ||||
| l) l | l) l | ||||
| lh l^ | |||||
| lh lj | |||||
| A) lh lj | A) lh lj | ||||
| ?1 A) lh l^ | |||||
| A) lh l^ | |||||
| ?4 A) lh l^ | ?4 A) lh l^ | ||||
| o (lA_ O | o (lA_ O | ||||
| o (lAm_ O | o (lAm_ O | ||||
| o (lhe_ O | |||||
| o (lhem_ O | |||||
| o (ltA_ O | o (ltA_ O | ||||
| o (ltAm_ O | o (ltAm_ O | ||||
| ?1 o (l_ 'O | ?1 o (l_ 'O | ||||
| ?2 ol (_ Ow | ?2 ol (_ Ow | ||||
| o (lh o | |||||
| ?2 _) o (lhA_ O | |||||
| ?2 _) o (lhAm_ O | |||||
| om (_ oN | om (_ oN | ||||
| o (ma_ o | o (ma_ o | ||||
| //sort | //sort | ||||
| _f) o (L05_ o | _f) o (L05_ o | ||||
| _pormen) o (L05_ O | |||||
| _f) o (L07_ o | _f) o (L07_ o | ||||
| _s) o (bL02_ O | _s) o (bL02_ O | ||||
| _af) o (bL04_ O | _af) o (bL04_ O | ||||
| _t) o (lL03_ o | _t) o (lL03_ o | ||||
| _f) o (lgL04_ O | _f) o (lgL04_ O | ||||
| _emp) o (lgL04_ O | _emp) o (lgL04_ O | ||||
| c) o (lhL02_ O // es- en- re- | |||||
| _t) o (lhL02_ O | |||||
| _m) o (lhL04_ O | |||||
| _) o (lhL04_ O | |||||
| m) o (lhL04_ O | |||||
| ent) o (pL02_ O | ent) o (pL02_ O | ||||
| _c) o (pL03_ O | _c) o (pL03_ O | ||||
| _ens) o (pL04_ O | _ens) o (pL04_ O | ||||
| u (iu w | u (iu w | ||||
| u (iCK u | u (iCK u | ||||
| uy uI | uy uI | ||||
| ul (K uw | |||||
| u (lh+ u | |||||
| um (_ u~N | um (_ u~N | ||||
| um (C u~m | um (C u~m |
| _11 Od;'innVttsVt; | _11 Od;'innVttsVt; | ||||
| _12 dv;In'AttsVt; | _12 dv;In'AttsVt; | ||||
| _13 tR;In'AttsVt; | _13 tR;In'AttsVt; | ||||
| _14 ts;It'y@-*nVttsVt; | |||||
| _14 tS;It'y@-*nVttsVt; | |||||
| _15 p;Itn'AttsVt; | _15 p;Itn'AttsVt; | ||||
| _16 SE#stn'AttsVt; | _16 SE#stn'AttsVt; | ||||
| _17 s;Imn'AttsVt; | _17 s;Imn'AttsVt; | ||||
| _0C st'o | _0C st'o | ||||
| _2C dv;'es;t;I | _2C dv;'es;t;I | ||||
| _3C tr;'ista | _3C tr;'ista | ||||
| _4C ts;It'yr;E2sta | |||||
| _4C tS;It'yr;E2sta | |||||
| _5C p;,It;s'ot | _5C p;,It;s'ot | ||||
| _6C S,E#s;t;s'ot | _6C S,E#s;t;s'ot | ||||
| _7C s;,Ims'ot | _7C s;,Ims'ot |
| phonemetable am base | phonemetable am base | ||||
| include ph_amhari | include ph_amhari | ||||
| phonemetable si hi | |||||
| include ph_sinhala | |||||
| //************************************************************************************** | //************************************************************************************** | ||||
| // The following lines are experimental, for future additions. | // The following lines are experimental, for future additions. | ||||
| // These langauges are not in a usable state. | // These langauges are not in a usable state. | ||||
| // These lines can be deleted. | // These lines can be deleted. | ||||
| phonemetable rw base2 | |||||
| include ph_kinyarwanda | |||||
| phonemetable si hi | |||||
| include ph_sinhala | |||||
| phonemetable sl sk | |||||
| include ph_slovenian | |||||
| //phonemetable rw base2 | |||||
| //include ph_kinyarwanda | |||||
| //phonemetable mr hi | //phonemetable mr hi | ||||
| //include ph_marathi | //include ph_marathi | ||||
| //phonemetable prs base | //phonemetable prs base | ||||
| //include ph_dari | //include ph_dari | ||||
| phonemetable sl sk | |||||
| include ph_slovenian | |||||
| //phonemetable gd base | //phonemetable gd base | ||||
| //include ph_s_gaelic | //include ph_s_gaelic | ||||
| //phonemetable tn base | //phonemetable tn base | ||||
| //include ph_setswana | //include ph_setswana | ||||
| //phonemetable mt base | //phonemetable mt base | ||||
| //include ph_maltese | //include ph_maltese | ||||
| # Toolflags: | # Toolflags: | ||||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -zM | |||||
| C++flags = -c -depend !Depend -IC: -throwback -zM | |||||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41 | |||||
| C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41 | |||||
| Linkflags = -rmf -c++ -o $@ | Linkflags = -rmf -c++ -o $@ | ||||
| ObjAsmflags = -throwback -NoCache -depend !Depend | ObjAsmflags = -throwback -NoCache -depend !Depend | ||||
| CMHGflags = | CMHGflags = | ||||
| objasm $(objasmflags) -from @.s.assemb -to @.o.assemb | objasm $(objasmflags) -from @.s.assemb -to @.o.assemb | ||||
| # Dynamic dependencies: | # Dynamic dependencies: | ||||
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
| #include <ctype.h> | #include <ctype.h> | ||||
| #include <locale.h> | #include <locale.h> | ||||
| #include "kernel.h" | #include "kernel.h" | ||||
| #include <math.h> | |||||
| #include "speech.h" | #include "speech.h" | ||||
| #include "speak_lib.h" | #include "speak_lib.h" | ||||
| voice_variant_names[n_voice_variant_files++] = p; | voice_variant_names[n_voice_variant_files++] = p; | ||||
| } | } | ||||
| else | else | ||||
| if(strcmp(p, "default") != 0) | |||||
| { | { | ||||
| if(n_voice_files >= (N_VOICE_NAMES-1)) | if(n_voice_files >= (N_VOICE_NAMES-1)) | ||||
| continue; | continue; | ||||
| void ReadVoiceNames() | void ReadVoiceNames() | ||||
| {//=================== | {//=================== | ||||
| char directory[sizeof(path_home)+10]; | |||||
| char directory[sizeof(path_home)+20]; | |||||
| n_voice_files = 0; | n_voice_files = 0; | ||||
| n_voice_variant_files = 0; | n_voice_variant_files = 0; | ||||
| sprintf(directory,"%s.voices.default", path_home); | |||||
| if(GetFileLength(directory) > 0) | |||||
| { | |||||
| // put the 'default' voice at the start of the list | |||||
| voice_names[n_voice_files++] = "default"; | |||||
| } | |||||
| sprintf(directory,"%s.voices",path_home); | sprintf(directory,"%s.voices",path_home); | ||||
| ReadVoiceNames2(directory); | ReadVoiceNames2(directory); | ||||
| int initialise(void) | int initialise(void) | ||||
| {//================= | {//================= | ||||
| sprintf(path_home,"%s.espeak-data","<eSpeak$Dir>"); | |||||
| char buf[N_PATH_HOME]; | |||||
| _kernel_swi_regs regs; | |||||
| _kernel_oserror *error; | |||||
| buf[0] = 0; | |||||
| regs.r[0] = (int)"eSpeak$Dir"; | |||||
| regs.r[1] = (int)buf; | |||||
| regs.r[2] = sizeof(buf); | |||||
| regs.r[3] = 0; | |||||
| regs.r[4] = 0; | |||||
| regs.r[5] = 0; | |||||
| error = _kernel_swi(0x20023,®s,®s); // OS_ReadVarVal | |||||
| buf[regs.r[2]] = 0; | |||||
| sprintf(path_home,"%s.espeak-data",buf); | |||||
| if(GetFileLength(path_home) != -2) | if(GetFileLength(path_home) != -2) | ||||
| { | { | ||||
| // not found, try the 10 character version of the directory name | // not found, try the 10 character version of the directory name | ||||
| sprintf(path_home,"%s.espeak-dat","<eSpeak$Dir>"); | |||||
| sprintf(path_home,"%s.espeak-dat",buf); | |||||
| } | } | ||||
| if(GetFileLength(path_home) != -2) | if(GetFileLength(path_home) != -2) | ||||
| { | { | ||||
| } | } | ||||
| WavegenInit(22050,0); | WavegenInit(22050,0); | ||||
| LoadPhData(); | |||||
| LoadPhData(NULL); | |||||
| SetVoiceStack(NULL, ""); | SetVoiceStack(NULL, ""); | ||||
| SynthesizeInit(); | SynthesizeInit(); | ||||
| return(0); | return(0); | ||||
| static_length = 0; | static_length = 0; | ||||
| else | else | ||||
| { | { | ||||
| strcat(&static_buf[static_length]," : "); | |||||
| strcat(&static_buf[static_length]," \n "); | |||||
| static_length+=3; | static_length+=3; | ||||
| } | } | ||||
| void jsd_swi_functions(int *r) | void jsd_swi_functions(int *r) | ||||
| /****************************/ | /****************************/ | ||||
| { | { | ||||
| int use_ipa; | |||||
| espeak_VOICE voice_select; | espeak_VOICE voice_select; | ||||
| switch(r[0]) | switch(r[0]) | ||||
| { | { | ||||
| case 0: /* major version */ | case 0: /* major version */ | ||||
| r[0] = 4; | r[0] = 4; | ||||
| r[1] = 331; | |||||
| r[1] = 347; | |||||
| break; | break; | ||||
| case 1: /* register user */ | case 1: /* register user */ | ||||
| break; | break; | ||||
| case 3: | case 3: | ||||
| // r[0] = (int)speech_to_phonemes((char *)r[1]); | |||||
| // translate into phonemes | |||||
| use_ipa = 0; | |||||
| if((r[2] >= 1) && (use_ipa <= 3)) | |||||
| use_ipa = r[2]; | |||||
| TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); | |||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||||
| r[0] = (int)translator->phon_out; | |||||
| break; | break; | ||||
| case 4: | case 4: | ||||
| /*********************************************************/ | /*********************************************************/ | ||||
| { | { | ||||
| int value; | int value; | ||||
| int value2; | |||||
| int q_length; | int q_length; | ||||
| value = r[0]; | value = r[0]; | ||||
| case 0: // ready ? | case 0: // ready ? | ||||
| // returns the index into the source text of the currently speaking word | // returns the index into the source text of the currently speaking word | ||||
| if(current_source_index > 0) | |||||
| r[1] = current_source_index-1; | |||||
| else | |||||
| r[1] = current_source_index; /* source index */ | |||||
| if(current_source_index > 0) | |||||
| r[1] = current_source_index-1; | |||||
| else | |||||
| r[1] = current_source_index; /* source index */ | |||||
| r[2] = 0; /* source tag */ | r[2] = 0; /* source tag */ | ||||
| r[3] = 0; /* for future expansion */ | r[3] = 0; /* for future expansion */ | ||||
| r[4] = 0; | r[4] = 0; | ||||
| r[5] = 0; | r[5] = 0; | ||||
| if(wcmdq_head == wcmdq_tail) | |||||
| if(WcmdqUsed() < 5) | |||||
| { | { | ||||
| r[0] = -1; /* ready, or nearly */ | r[0] = -1; /* ready, or nearly */ | ||||
| } | } | ||||
| else | else | ||||
| { | |||||
| r[0] = 0; | r[0] = 0; | ||||
| } | |||||
| break; | break; | ||||
| case 1: /* restore old sound channel. DO NOTHING */ | case 1: /* restore old sound channel. DO NOTHING */ | ||||
| break; | break; | ||||
| case 7: /* pitch */ | case 7: /* pitch */ | ||||
| // not implemented | |||||
| value = (value * 50)/128; | |||||
| SetParameter(espeakPITCH, value, 0); | |||||
| break; | break; | ||||
| case 8: /* speed */ | |||||
| SetParameter(espeakRATE,value,0); | |||||
| case 8: // speed, convert to range 80 to 400, mid-value=180 | |||||
| if(value < 128) | |||||
| value2 = 80 + (value*100)/128; // linear range for 0-127 -> 80-179 | |||||
| else | |||||
| value2 = 80 + pow((float)value/128.0, 1.75)*100; | |||||
| SetParameter(espeakRATE,value2,0); | |||||
| break; | break; | ||||
| case 9: /* word_gap */ | case 9: /* word_gap */ | ||||
| if(value >= 128) | |||||
| value = value - 128; | |||||
| if(value > 1) | |||||
| value = (value-1) * 5; | |||||
| SetParameter(espeakWORDGAP,value,0); | SetParameter(espeakWORDGAP,value,0); | ||||
| break; | break; | ||||
| case 10: /* pitch_range */ | case 10: /* pitch_range */ | ||||
| // not implemented | |||||
| value = (value * 50)/128; | |||||
| SetParameter(espeakRANGE, value, 0); | |||||
| break; | break; | ||||
| case 12: /* reset */ | case 12: /* reset */ | ||||
| break; | break; | ||||
| case 13: /* volume */ | case 13: /* volume */ | ||||
| SetParameter(espeakVOLUME,value,0); | |||||
| // convert to range 6-255 to 10-400, mid-value=100 | |||||
| if(value < 6) | |||||
| value2 = value + 4; | |||||
| else | |||||
| if(value < 128) | |||||
| { | |||||
| value2 = pow((float)(value+40)/168.0, 1.75)*100; | |||||
| } | |||||
| else | |||||
| value2 = pow((float)value/128.0, 2.0)*100; | |||||
| SetParameter(espeakVOLUME,value2,0); | |||||
| WavegenSetVoice(voice); | |||||
| break; | |||||
| case 14: // set voice by name | |||||
| SetVoiceByName((char *)r[0]); | |||||
| WavegenSetVoice(voice); | WavegenSetVoice(voice); | ||||
| break; | break; | ||||
| } | } | ||||
| return(value); | return(value); | ||||
| } | } | ||||
| void PrintVersion() | |||||
| {//================ | |||||
| char buf[120]; | |||||
| printf("\nspeak text-to-speech: %s Data at: %s\n", version_string, path_home); | |||||
| } | |||||
| void command_line(char *arg_string, int wait) | void command_line(char *arg_string, int wait) | ||||
| {//========================================== | {//========================================== | ||||
| char command[80]; | char command[80]; | ||||
| char *p; | char *p; | ||||
| int ix; | int ix; | ||||
| int quiet; | |||||
| voicename[0] = 0; | voicename[0] = 0; | ||||
| wavefile[0] = 0; | wavefile[0] = 0; | ||||
| option_linelength = 0; | option_linelength = 0; | ||||
| option_phonemes = 0; | option_phonemes = 0; | ||||
| option_waveout = 0; | option_waveout = 0; | ||||
| option_quiet = 0; | |||||
| quiet = 0; | |||||
| option_multibyte = 0; // auto | option_multibyte = 0; // auto | ||||
| option_capitals = 0; | option_capitals = 0; | ||||
| option_punctuation = 0; | option_punctuation = 0; | ||||
| break; | break; | ||||
| case 'h': | case 'h': | ||||
| printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); | |||||
| PrintVersion(); | |||||
| printf("\n%s",help_text); | |||||
| return; | return; | ||||
| case 'k': | case 'k': | ||||
| break; | break; | ||||
| case 'q': | case 'q': | ||||
| option_quiet = 1; | |||||
| quiet = 1; | |||||
| break; | break; | ||||
| case 'f': | case 'f': | ||||
| else | else | ||||
| if(strcmp(command,"help")==0) | if(strcmp(command,"help")==0) | ||||
| { | { | ||||
| printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); | |||||
| PrintVersion(); | |||||
| printf("\n%s",help_text); | |||||
| return; | return; | ||||
| } | } | ||||
| else | else | ||||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | SetParameter(espeakPUNCTUATION,option_punctuation,0); | ||||
| } | } | ||||
| else | else | ||||
| if(memcmp(command,"version",7)==0) | |||||
| { | |||||
| PrintVersion(); | |||||
| return; | |||||
| } | |||||
| else | |||||
| if(memcmp(command,"ipa",3)==0) | |||||
| { | |||||
| option_phonemes = 3; | |||||
| } | |||||
| else | |||||
| { | { | ||||
| printf("Command not recognised\n"); | printf("Command not recognised\n"); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| if((option_phonemes > 1) && !option_waveout) | |||||
| quiet = 1; // can't call sprintf() during callback | |||||
| SetVoiceByName(voicename); | SetVoiceByName(voicename); | ||||
| if((filename[0]==0) && (p[0]=='\r')) | if((filename[0]==0) && (p[0]=='\r')) | ||||
| { | { | ||||
| // nothing to speak | // nothing to speak | ||||
| if(option_quiet) | |||||
| if(quiet) | |||||
| { | { | ||||
| SpeakNextClause(NULL,NULL,2); // stop speaking | SpeakNextClause(NULL,NULL,2); // stop speaking | ||||
| more_text = 0; | more_text = 0; | ||||
| } | } | ||||
| } | } | ||||
| if(option_waveout || option_quiet) | |||||
| if(option_waveout || quiet) | |||||
| { | { | ||||
| // write speech to a WAV file | // write speech to a WAV file | ||||
| if(option_quiet) | |||||
| if(quiet) | |||||
| { | { | ||||
| OpenWaveFile(NULL,samplerate); | OpenWaveFile(NULL,samplerate); | ||||
| option_waveout = 2; | option_waveout = 2; |
| [Setup] | [Setup] | ||||
| AppName=eSpeak | AppName=eSpeak | ||||
| AppVerName=eSpeak version 1.47.01 | |||||
| AppVerName=eSpeak version 1.47.04 | |||||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | ||||
| WindowVisible=yes | WindowVisible=yes | ||||
| $0e: Result := 'hu'; | $0e: Result := 'hu'; | ||||
| $0f: Result := 'is'; | $0f: Result := 'is'; | ||||
| $10: Result := 'it'; | $10: Result := 'it'; | ||||
| //$12: Result := 'ko'; | |||||
| $12: Result := 'ko'; | |||||
| $13: Result := 'nl'; | $13: Result := 'nl'; | ||||
| $14: Result := 'no'; | $14: Result := 'no'; | ||||
| $15: Result := 'pl'; | $15: Result := 'pl'; | ||||
| $1c: Result := 'sq'; | $1c: Result := 'sq'; | ||||
| $1d: Result := 'sv'; | $1d: Result := 'sv'; | ||||
| $1f: Result := 'tr'; | $1f: Result := 'tr'; | ||||
| //$20: Result := 'ur'; | |||||
| $20: Result := 'ur'; | |||||
| $21: Result := 'id'; | $21: Result := 'id'; | ||||
| $25: Result := 'et'; | $25: Result := 'et'; | ||||
| $26: Result := 'lv'; | $26: Result := 'lv'; | ||||
| $39: Result := 'hi'; | $39: Result := 'hi'; | ||||
| //$3a: Result := 'mt'; | //$3a: Result := 'mt'; | ||||
| $3c: Result := 'ga'; | $3c: Result := 'ga'; | ||||
| $3e: Result := 'ms'; | |||||
| //$3f: Result := 'kk'; | //$3f: Result := 'kk'; | ||||
| $41: Result := 'sw'; | $41: Result := 'sw'; | ||||
| //$44: Result := 'tt'; | //$44: Result := 'tt'; | ||||
| 'mk': value := $42f; | 'mk': value := $42f; | ||||
| 'ml': value := $44c; | 'ml': value := $44c; | ||||
| 'mn': value := $450; | 'mn': value := $450; | ||||
| 'ms': value := $43e; | |||||
| 'mt': value := $43a; | 'mt': value := $43a; | ||||
| 'my': value := $455; | 'my': value := $455; | ||||
| 'ne': value := $461; | 'ne': value := $461; |
| [Setup] | [Setup] | ||||
| AppName=eSpeakEdit | AppName=eSpeakEdit | ||||
| AppVerName=eSpeakEdit version 1.47.01 | |||||
| AppVerName=eSpeakEdit version 1.47.04 | |||||
| DefaultDirName={pf}\eSpeak | DefaultDirName={pf}\eSpeak | ||||
| DefaultGroupName=eSpeak | DefaultGroupName=eSpeak | ||||
| OutputBaseFilename=setup_espeakedit | OutputBaseFilename=setup_espeakedit |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.47.03f 31.Mar.13"; | |||||
| const char *version_string = "1.47.04 02.Apr.13"; | |||||
| const int version_phdata = 0x014701; | const int version_phdata = 0x014701; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| { | { | ||||
| SetCyrillicLetters(tr); | SetCyrillicLetters(tr); | ||||
| SetLetterVowel(tr,0x2a); | SetLetterVowel(tr,0x2a); | ||||
| tr->charset_a0 = charsets[5]; // ISO-8859-5 | |||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word | ||||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v) | tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v) | ||||
| tr->langopts.param[LOPT_REDUCE] = 2; | tr->langopts.param[LOPT_REDUCE] = 2; |
| prev_clause_pause = clause_pause; | prev_clause_pause = clause_pause; | ||||
| *tone_out = tone; | |||||
| if(tone_out != NULL) | |||||
| *tone_out = tone; | |||||
| new_sentence = 0; | new_sentence = 0; | ||||
| if(terminator & CLAUSE_BIT_SENTENCE) | if(terminator & CLAUSE_BIT_SENTENCE) |