Added languages: fa (Farsi), an (Aragon). Changes to languages: pt, si, ne. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@297 d46cf337-b52f-0410-862d-fd96e6ae7743master
| // Aragon translation rules | |||||
| // This file is UTF-8 encoded | |||||
| // letter names | |||||
| b be | |||||
| c Te | |||||
| d de | |||||
| f Efe | |||||
| g xe | |||||
| h atSe | |||||
| j xOta | |||||
| k ka | |||||
| l Ele | |||||
| m Eme | |||||
| n Ene | |||||
| ñ En^e | |||||
| p pe | |||||
| q ku | |||||
| r E*e | |||||
| s Ese | |||||
| t te | |||||
| u u | |||||
| v uBe | |||||
| w uBe||dOBle | |||||
| x Ekis | |||||
| y je | |||||
| z Teta | |||||
| // numbers | |||||
| _0 T'ero | |||||
| _1 'un | |||||
| _2 d'os | |||||
| _3 tr'es | |||||
| _4 kw'atro | |||||
| _5 T'inko | |||||
| _6 s'eIs | |||||
| _7 s'eIt# | |||||
| _8 gw'eIto | |||||
| _9 nw'eU | |||||
| _1X d,eT | |||||
| _10 dj'eT | |||||
| _11 'onTe | |||||
| _12 d'oTe | |||||
| _13 tr'eTe | |||||
| _14 kat'orTe | |||||
| _15 k'inTe | |||||
| _20 B'inte | |||||
| _2X B,int | |||||
| _3X tr'enta | |||||
| _4X kwar'anta | |||||
| _5X Tinkw'anta | |||||
| _6X siks'anta | |||||
| _7X set'anta | |||||
| _8X gwit'anta | |||||
| _9X noB'anta | |||||
| _0C Tj'Entos | |||||
| _1C Tj'En | |||||
| _2C doTj'Entos | |||||
| _3C tresTj'Entos | |||||
| _6C seITj'Entos | |||||
| _7C sjEteTj'Entos | |||||
| _8C gwitoTj'Entos | |||||
| _9C nowTj'Entos | |||||
| _0M1 m'il | |||||
| _0M2 mil^'ones | |||||
| _0and i | |||||
| _dpt kon | |||||
| // Aragon translation rules | |||||
| // This file is UTF-8 encoded | |||||
| .L01 l r y | |||||
| .L03 f h j s y z r // allow [B] [D] [Q] before these consonants | |||||
| .L04 b v f p // labials, nasals are [m] | |||||
| .L05 g k // velars, nasals are [N] | |||||
| .group a | |||||
| a a | |||||
| ai aI | |||||
| ai (X 'aI | |||||
| ay (K aI | |||||
| ay (X 'aI | |||||
| au aU | |||||
| au (X 'aU | |||||
| .group b | |||||
| b b | |||||
| _) b b // phoneme definition may change it to [B] | |||||
| _) b (A b | |||||
| b (A B | |||||
| b (cY B | |||||
| b (L03 B | |||||
| m) b b | |||||
| n) b b | |||||
| b (iA b | |||||
| b (uA b | |||||
| .group c | |||||
| c k | |||||
| c (Y T // ce ci | |||||
| cc kT | |||||
| ch tS | |||||
| .group d | |||||
| d d | |||||
| _) d d // phoneme definition may change it to [D] | |||||
| _) d (A d | |||||
| d (A D | |||||
| d (cY D | |||||
| d (L03 D | |||||
| m) d d | |||||
| n) d d | |||||
| l) d d | |||||
| r) d d | |||||
| n) d (_ = // silent, but stress on last vowel | |||||
| .group e | |||||
| e e | |||||
| ei eI | |||||
| ei (X 'eI | |||||
| ey (K eI | |||||
| ey (X 'eI | |||||
| eu eU | |||||
| eu (X 'eU | |||||
| i) e E | |||||
| u) e E | |||||
| y) e E | |||||
| .group f | |||||
| f f | |||||
| .group g | |||||
| g g | |||||
| _) g g // phoneme definition may change it to [Q] | |||||
| _) gh (A g // allow _gh in foreign words | |||||
| _) gn (A n | |||||
| _) g (A g | |||||
| g (A Q | |||||
| g (cY Q | |||||
| g (L03 Q | |||||
| m) g g | |||||
| n) g g | |||||
| g (Y+ x // ge gi | |||||
| gu (A gw | |||||
| gü gw | |||||
| gu (e g | |||||
| gu (i g | |||||
| .group h | |||||
| h // silent | |||||
| .group i | |||||
| i i | |||||
| i (A j | |||||
| A) ix S | |||||
| .group j | |||||
| j x | |||||
| .group k | |||||
| k k | |||||
| .group l | |||||
| l l | |||||
| ll l^ | |||||
| .group m | |||||
| m m | |||||
| .group n | |||||
| n n | |||||
| n (L04 m | |||||
| n (_L04 m | |||||
| ny n^ | |||||
| .group ñ | |||||
| ñ n^ | |||||
| .group o | |||||
| o o | |||||
| oi oI | |||||
| oi (X 'oI | |||||
| oy (K oI | |||||
| oy (X 'oI | |||||
| ou ow | |||||
| ou (X 'ow | |||||
| i) o O | |||||
| u) o O | |||||
| y) o O | |||||
| .group p | |||||
| p p | |||||
| .group q | |||||
| qu (A kw | |||||
| qü kw | |||||
| qu (e k | |||||
| qu (i k | |||||
| .group r | |||||
| r r | |||||
| _) r R | |||||
| rr RR2 | |||||
| @) r (- = // followed by hyphen. Silent, but stress on last vowel | |||||
| .group s | |||||
| s s | |||||
| .group t | |||||
| t t | |||||
| a) t (_ t# // becomes silent in a stressed syllable | |||||
| u) t (_ t# | |||||
| ei) t (_ t# | |||||
| n) t (_ = // silent, but stress on last vowel | |||||
| tz T | |||||
| .group u | |||||
| u u | |||||
| u (A w | |||||
| _) u (A gw | |||||
| .group v | |||||
| v B | |||||
| .group w | |||||
| w w | |||||
| .group x | |||||
| x ks | |||||
| _) x S | |||||
| .group y | |||||
| y j | |||||
| .group z | |||||
| z T | |||||
| .group | |||||
| á ''a | |||||
| é ''e | |||||
| í ''i | |||||
| ó ''o | |||||
| ú ''u | |||||
| ts v x z | ts v x z | ||||
| Dictionary en_dict 2013-01-15 | |||||
| Dictionary en_dict 2013-01-18 | |||||
| 0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
| a a# A: A@ aa aI aI3 aI@ | a a# A: A@ aa aI aI3 aI@ | ||||
| t. th th. v w x z | t. th th. v w x z | ||||
| Dictionary ta_dict 2013-01-15 | |||||
| Dictionary ta_dict 2013-01-18 | |||||
| a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
| I i: o o: u U u2 u: | I i: o o: u U u2 u: | ||||
| ts; v w x z Z Z; | ts; v w x z Z Z; | ||||
| Dictionary pt_dict 2012-11-24 | |||||
| Dictionary pt_dict 2013-01-17 | |||||
| & &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
| aI aU e E eI EI eU EU | aI aU e E eI EI eU EU | ||||
| v w x z | v w x z | ||||
| Dictionary sl_dict 2013-01-15 | |||||
| Dictionary sl_dict 2013-01-16 | |||||
| @ @- a a: e E e: i | @ @- a a: e E e: i | ||||
| i: o O o: u u: y | i: o O o: u u: y | ||||
| : b d dZ dz f g h | : b d dZ dz f g h | ||||
| j k l l^ m n N n^ | j k l l^ m n N n^ | ||||
| p R R^ s S t tS ts | p R R^ s S t tS ts | ||||
| v w x z Z | |||||
| v v# w x z Z | |||||
| Dictionary tr_dict 2011-09-16 | Dictionary tr_dict 2011-09-16 | ||||
| v w x z Z z. | v w x z Z z. | ||||
| Dictionary zh_dict 2010-09-13 | |||||
| Dictionary zh_dict 2013-01-04 | |||||
| @ @r a A ai Au E ei | @ @r a A ai Au E ei | ||||
| i i. i[ iA iE io iou N- | i i. i[ iA iE io iou N- | ||||
| t. th th. tS v w z | t. th th. tS v w z | ||||
| Dictionary ne_dict 2012-09-19 | |||||
| Dictionary ne_dict 2013-01-10 | |||||
| @ @/ @2 @3 a a: aI aU | @ @/ @2 @3 a a: aI aU | ||||
| a~ e E e: E: eI e~ E~ | a~ e E e: E: eI e~ E~ | ||||
| Z | Z | ||||
| Dictionary si_dict 2012-11-05 | |||||
| Dictionary si_dict 2013-01-18 | |||||
| & &: @ a a: aI aU e | & &: @ a a: aI aU e | ||||
| e: i i: o o: u u: | e: i i: o o: u u: | ||||
| j k k- kh l m n N | j k k- kh l m n N | ||||
| p p- ph q r R s t | p p- ph q r R s t | ||||
| t- tS tS; w | t- tS tS; w | ||||
| Dictionary fa_dict 2013-01-19 | |||||
| a A e i o u | |||||
| : ? b d dZ f g h | |||||
| j k l m n p q r | |||||
| R s S t tS v w x | |||||
| z Z | |||||
| Dictionary an_dict 2013-01-18 | |||||
| a aI aU e E eI eU i | |||||
| o O oI u | |||||
| * b B d D f g j | |||||
| k l l^ m n n^ p Q | |||||
| r R R2 s S t T t# | |||||
| tS w x |
| altogether ,O:lt@gED3 | altogether ,O:lt@gED3 | ||||
| always O:lweIz | always O:lweIz | ||||
| aluminium aljUm'Ini@m | aluminium aljUm'Ini@m | ||||
| alzheimer altsaIm3 | |||||
| amaryllis am@r'IlIs | amaryllis am@r'IlIs | ||||
| amass a#mas | amass a#mas | ||||
| ambassador a#mbas@d3 | ambassador a#mbas@d3 | ||||
| apneoa apni@ | apneoa apni@ | ||||
| apostle a#p0s@L | apostle a#p0s@L | ||||
| apron eIpr@n | apron eIpr@n | ||||
| apropos apr@p'oU | |||||
| appal a#pO:l | appal a#pO:l | ||||
| apparatus ap@r'eIt@s | apparatus ap@r'eIt@s | ||||
| ?3 apparatus ap@r'at@s | ?3 apparatus ap@r'at@s | ||||
| hercules h3:kjUli:z | hercules h3:kjUli:z | ||||
| heretical hI2rEtI2k@L | heretical hI2rEtI2k@L | ||||
| hereto hi@3'tu: | hereto hi@3'tu: | ||||
| heretofore hi@3t@fo@ | |||||
| hermaphrodite $2 | hermaphrodite $2 | ||||
| hermes h3:mi:z | hermes h3:mi:z | ||||
| herod hEr@d | herod hEr@d |
| app (eti ap | app (eti ap | ||||
| app (le ap | app (le ap | ||||
| app (lic ap | app (lic ap | ||||
| app (licab a#p | |||||
| applicab a#plIk@b | |||||
| app (reh ap | app (reh ap | ||||
| apres apreI | apres apreI | ||||
| _) apprec (L02 a#pri:S | _) apprec (L02 a#pri:S | ||||
| _c) re (mat rI2 | _c) re (mat rI2 | ||||
| rement rIm@nt | rement rIm@nt | ||||
| _) re (nC rE | _) re (nC rE | ||||
| re (nova rE | |||||
| _) reper (t rEp3 | _) reper (t rEp3 | ||||
| repe (tit rEp@ | repe (tit rEp@ | ||||
| repe (titiv rI2pE | repe (titiv rI2pE |
| ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | ||||
| // .group ( // Deliminator, not possible | |||||
| // .group ) // Deliminator, not possible | // .group ) // Deliminator, not possible | ||||
| // .group . // Deliminator, not possible | |||||
| // Special Symbols with special meanings | // Special Symbols with special meanings | ||||
| .group | .group | ||||
| । pur',n.@,w'ir'a:m // Fullstop of Devanagari | । pur',n.@,w'ir'a:m // Fullstop of Devanagari | ||||
| ॥ d'ob'b@2r@2,wir'a::mV // Double Fullstop - means Read sentence twice. | |||||
| ॱ b'i:n=d'u: // Decimal of devanagari (dot [.] is mostly used!). | |||||
| ॰ V,nsh@ // symbol for degree in Devanagari. | |||||
| ॥ d'i:rgh@,w'ir'a:m // Double Fullstop - means Read sentence twice. | |||||
| ॱ dVS@mal@w@2 // Decimal of devanagari (dot [.] is mostly used!). | |||||
| ॰ saNks.e:p@s'u:c@k@ | |||||
| $ dOlV | $ dOlV | ||||
| % prVtish'vt | % prVtish'vt | ||||
| // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | ||||
| ़ n'u'k't'a: // Name of symbol. | ़ n'u'k't'a: // Name of symbol. | ||||
| ॑ | |||||
| ॓ | |||||
| ॔ | |||||
| ॽ | |||||
| ॒ Vd'o:,r'ekh'a: // Name of symbol. | |||||
| ॑ Ud'Vtt,@ | |||||
| ॓ Ud:dh@r,@n.@a:r'Vmbh@ | |||||
| ॔ ,Ud:dh@r,@n.@'Vnt@ | |||||
| ॽ k,@n.th.@w'Ira:m | |||||
| ॒ a'n'ud'Vtt,@ | |||||
| // The Latin letter a-z are automatically translated into English. | // The Latin letter a-z are automatically translated into English. |
| aperto $alt2 $noun | aperto $alt2 $noun | ||||
| apoio $alt $verb | apoio $alt $verb | ||||
| aprendeste $alt2 | aprendeste $alt2 | ||||
| aprovo $alt | |||||
| arremesso $alt2 $noun | arremesso $alt2 $noun | ||||
| arroz $alt2 | |||||
| assembleia $alt | assembleia $alt | ||||
| atmosfera $alt | atmosfera $alt | ||||
| atrozes $alt | atrozes $alt | ||||
| careta $alt2 | careta $alt2 | ||||
| carreta $alt2 | carreta $alt2 | ||||
| casebre $alt | casebre $alt | ||||
| castelo $alt | |||||
| cateto $alt2 | cateto $alt2 | ||||
| catorze $alt2 | catorze $alt2 | ||||
| cefaleia $alt | cefaleia $alt | ||||
| chefe $alt | chefe $alt | ||||
| chinelo $alt | chinelo $alt | ||||
| choro $alt2 $noun | choro $alt2 $noun | ||||
| chupeta $alt2 | |||||
| coco $alt2 | coco $alt2 | ||||
| cofre $alt | cofre $alt | ||||
| colmeia $alt | colmeia $alt | ||||
| corpos $alt | corpos $alt | ||||
| correste $alt2 | correste $alt2 | ||||
| corto $alt | corto $alt | ||||
| corveta $alt2 | |||||
| corvos $alt | corvos $alt | ||||
| coto $alt2 | coto $alt2 | ||||
| couber $alt | couber $alt | ||||
| crescem $alt | crescem $alt | ||||
| der $alt | der $alt | ||||
| desapego $alt2 $noun | desapego $alt2 $noun | ||||
| descabelo $alt | |||||
| desce $alt | desce $alt | ||||
| descem $alt | descem $alt | ||||
| descordo $alt | descordo $alt | ||||
| enumerem $alt | enumerem $alt | ||||
| enredo $alt $verb | enredo $alt $verb | ||||
| enterro $alt2 $noun | enterro $alt2 $noun | ||||
| envelope $alt | |||||
| envolto $alt2 | envolto $alt2 | ||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| esperma $alt | esperma $alt | ||||
| espeto $alt2 $noun | espeto $alt2 $noun | ||||
| espiroqueta $alt2 | espiroqueta $alt2 | ||||
| espoleta $alt2 | |||||
| esposa $alt2 | |||||
| esqueleto $alt2 | esqueleto $alt2 | ||||
| estiverdes $alt | estiverdes $alt | ||||
| estiveres $alt | estiveres $alt | ||||
| estrela $alt2 | |||||
| estrofe $alt | estrofe $alt | ||||
| etiqueta $alt2 | etiqueta $alt2 | ||||
| europa $alt | europa $alt | ||||
| folga $alt | folga $alt | ||||
| fogos $alt | fogos $alt | ||||
| forca $alt2 | forca $alt2 | ||||
| forças $alt2 | |||||
| fores $alt2 | fores $alt2 | ||||
| forro $alt $verb | forro $alt $verb | ||||
| fosse $alt2 | fosse $alt2 | ||||
| martelo $alt | martelo $alt | ||||
| merda $alt | merda $alt | ||||
| megera $alt | megera $alt | ||||
| melo $alt | |||||
| mentora $alt2 | mentora $alt2 | ||||
| metro $alt | metro $alt | ||||
| mexa m'eS& | mexa m'eS& | ||||
| pesquem $alt | pesquem $alt | ||||
| peso $alt | peso $alt | ||||
| peso $alt2 $noun | peso $alt2 $noun | ||||
| piloto $alt2 | |||||
| pirueta $alt2 | pirueta $alt2 | ||||
| plateia $alt | plateia $alt | ||||
| plebeia $alt | plebeia $alt | ||||
| rede $alt2 | rede $alt2 | ||||
| reforços $alt | reforços $alt | ||||
| refresco $alt $verb | refresco $alt $verb | ||||
| reitora $alt2 | |||||
| remorso $alt | remorso $alt | ||||
| resolve $alt | resolve $alt | ||||
| resolvem $alt | resolvem $alt | ||||
| rogas $alt | rogas $alt | ||||
| saleta $alt2 | saleta $alt2 | ||||
| sarjeta $alt | sarjeta $alt | ||||
| severa $alt | |||||
| severo $alt | |||||
| seborreia $alt | seborreia $alt | ||||
| seco $alt2 $noun | seco $alt2 $noun | ||||
| selo $alt $verb | selo $alt $verb | ||||
| teta $alt2 | teta $alt2 | ||||
| tiver $alt | tiver $alt | ||||
| tiveres $alt | tiveres $alt | ||||
| tocha $alt | |||||
| toga $alt | toga $alt | ||||
| torres $alt2 | torres $alt2 | ||||
| tortos $alt | tortos $alt |
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _imp) e (rL03_ E | _imp) e (rL03_ E | ||||
| _temp) e (rL04_ E | _temp) e (rL04_ E | ||||
| _esp) e (ssL03_ e | |||||
| _l) e (ssL02_ e | |||||
| _perd) e (L05_ e | |||||
| _rend) e (L06_ e | |||||
| _atend) e (L06_ e | |||||
| _pen) e (trL04_ E | |||||
| //endsort | //endsort | ||||
| _exag) e (L05_ E | _exag) e (L05_ E | ||||
| _m) o (rrL01_ o | _m) o (rrL01_ o | ||||
| p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
| _esn) o (bL04_ O | _esn) o (bL04_ O | ||||
| _esc) o (lhL02_ O | |||||
| _rev) o (lvL02_ O | |||||
| _desenv) o (lvL02_ O | |||||
| _ ent) o (pL02_ O | |||||
| //endsort | //endsort | ||||
| .group ô | .group ô | ||||
| _xi) x (A S | _xi) x (A S | ||||
| ?1 i) x (a_ S | ?1 i) x (a_ S | ||||
| ?1 i) x (as_ S | ?1 i) x (as_ S | ||||
| _trou) x (ér s | |||||
| _pro) x (imi s | |||||
| .group y | .group y |
| // numbers | // numbers | ||||
| _0 n'itS | _0 n'itS | ||||
| _1 'ena | |||||
| _1 'Ena | |||||
| _2 dv#'a | _2 dv#'a | ||||
| _3 tR'i | _3 tR'i | ||||
| _4 St'iRi | _4 St'iRi | ||||
| _0M1 t'isotS | _0M1 t'isotS | ||||
| _1M1 t'isotS | _1M1 t'isotS | ||||
| _1M2 'enmilij'on | |||||
| _1M2 'Enmilij'on | |||||
| _2M2 dv#'amilij'ona | _2M2 dv#'amilij'ona | ||||
| _3M2 tR'ijemilij'oni | _3M2 tR'ijemilij'oni | ||||
| _4M2 St'iRijemilij'oni | _4M2 St'iRijemilij'oni | ||||
| _0M2 milij'onow | _0M2 milij'onow | ||||
| _1M3 'enamilij'aRda | |||||
| _1M3 'Enamilij'aRda | |||||
| _2M3 dv#'emilij'aRdi | _2M3 dv#'emilij'aRdi | ||||
| _3M3 tR'imilij'aRde | _3M3 tR'imilij'aRde | ||||
| _4M3 St'iRimilij'aRde | _4M3 St'iRimilij'aRde | ||||
| _0M3 milij'aRd | _0M3 milij'aRd | ||||
| _1M4 'enbilij'on | |||||
| _1M4 'Enbilij'on | |||||
| _2M4 dv#'abilij'ona | _2M4 dv#'abilij'ona | ||||
| _3M4 tR'ijebilij'oni | _3M4 tR'ijebilij'oni | ||||
| _4M4 St'iRijebilij'oni | _4M4 St'iRijebilij'oni |
| .group e | .group e | ||||
| e e | e e | ||||
| e (_ E // ?? | e (_ E // ?? | ||||
| _) e E | |||||
| .group f | .group f | ||||
| .group i | .group i | ||||
| i i | i i | ||||
| i (A j | i (A j | ||||
| i (r j | |||||
| .group j | .group j | ||||
| .group u | .group u | ||||
| u u | u u | ||||
| u (A w | u (A w | ||||
| u (r u | |||||
| A) u (K w | A) u (K w | ||||
| .L26 சிலிண்டர ஸ்டவ் கனெக் அடுப்ப | .L26 சிலிண்டர ஸ்டவ் கனெக் அடுப்ப | ||||
| // words after சிரத்தை | // words after சிரத்தை | ||||
| .L27 _உண்ட _ஏற்பட _இல்ல யிரு யாக யி | |||||
| .L27 _உண்ட _ஏற்பட _இல்ல யிரு யாக யி யுடன யை | |||||
| // [aU] at start of word | // [aU] at start of word | ||||
| .L28 ஔ ஒள // அவு | .L28 ஔ ஒள // அவு | ||||
| _மலே) ச (ிய s. | _மலே) ச (ிய s. | ||||
| இந்தோனே) ச (ிய s. | இந்தோனே) ச (ிய s. | ||||
| _பக்தி_) சிரத் (தை srVd | _பக்தி_) சிரத் (தை srVd | ||||
| _) சி (ரத்தைL27 s | |||||
| _) சிரத்த (ையுடன srVdd | |||||
| _) சிரத்த (ையை srVdd | |||||
| _) சிரத்த (ைL27 srVdd | |||||
| சி (ரம s | சி (ரம s | ||||
| _) சி (ரார்த்த s | _) சி (ரார்த்த s | ||||
| _) சிரிலங்க (ா srilVNk | _) சிரிலங்க (ா srilVNk | ||||
| _) ப (தில bV | _) ப (தில bV | ||||
| _) பத்த (ிரகாளி bVdd | _) பத்த (ிரகாளி bVdd | ||||
| _) பத்திரப் (_ bVttirVp | _) பத்திரப் (_ bVttirVp | ||||
| _) ப (த்திரப்_பதி bV | |||||
| _) பத்திரப் (_பதி pVttirVp | |||||
| _) ப (த்திரப்பட bV | _) ப (த்திரப்பட bV | ||||
| _) ப (த்திரமா bV | _) ப (த்திரமா bV | ||||
| _) பத்த (ிரி_ bVdd | _) பத்த (ிரி_ bVdd |
| 84 phoneme tables | |||||
| 85 phoneme tables | |||||
| new total | new total | ||||
| base 109 109 | base 109 109 | ||||
| consonants 10 118 | consonants 10 118 | ||||
| es 15 125 | es 15 125 | ||||
| es-la 1 125 | es-la 1 125 | ||||
| ca 11 127 | ca 11 127 | ||||
| an 4 125 | |||||
| pt 29 140 | pt 29 140 | ||||
| pt-pt 20 140 | pt-pt 20 140 | ||||
| ro 36 148 | ro 36 148 | ||||
| [l/] fr | [l/] fr | ||||
| l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l@ [hæt] base | |||||
| l/l@ [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
| l/l_3 [l/] de | l/l_3 [l/] de | ||||
| l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
| l/la [hæt] base | |||||
| l/la [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] tn | [K] tn | ||||
| l/l_a [l/3] base | l/l_a [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/le [hæt] base | |||||
| l/le [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [&:] af | [&:] af | ||||
| l/l_front [L] sq | l/l_front [L] sq | ||||
| l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
| l/li [hæt] base | |||||
| l/li [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| ll/_ll [L] base | ll/_ll [L] base | ||||
| l/l_long [l] base | l/l_long [l] base | ||||
| [l] fr | [l] fr | ||||
| l/lo [hæt] base | |||||
| l/lo [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] nso | [K] nso | ||||
| [l;] lt | [l;] lt | ||||
| [l] ru | [l] ru | ||||
| [l^] ru | [l^] ru | ||||
| l/lu [hæt] base | |||||
| l/lu [hÖv] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [e] lt | [e] lt | ||||
| [E] pl | [E] pl | ||||
| [E] la | [E] la | ||||
| [E] an | |||||
| [E] grc | [E] grc | ||||
| [E:] sv | [E:] sv | ||||
| [E:] no | [E:] no | ||||
| [O1] et | [O1] et | ||||
| [O:] hi | [O:] hi | ||||
| [O] it | [O] it | ||||
| [O] an | |||||
| [O] pa | [O] pa | ||||
| [O] ga | [O] ga | ||||
| vowel/oo_5 [O] pl | vowel/oo_5 [O] pl |
| // based on Spanish | |||||
| phoneme t# | |||||
| vls dnt stop | |||||
| IF NOT prevVowel(isStressed) THEN | |||||
| ChangePhoneme(t) | |||||
| ENDIF | |||||
| endphoneme | |||||
| phoneme E | |||||
| vowel starttype #e endtype #e | |||||
| length 170 | |||||
| FMT(vowel/ee_1) | |||||
| endphoneme | |||||
| phoneme O | |||||
| vowel starttype #o endtype #o | |||||
| length 170 | |||||
| FMT(vowel/oo_4) | |||||
| endphoneme | |||||
| // Long Vowels | |||||
| phoneme A | |||||
| vowel starttype #i endtype #i | |||||
| length 200 | |||||
| FMT(vowel/0_3) | |||||
| endphoneme | |||||
| phoneme i | |||||
| vowel starttype #i endtype #i | |||||
| length 200 | |||||
| FMT(vowel/i) | |||||
| endphoneme | |||||
| phoneme u | |||||
| vowel starttype #i endtype #i | |||||
| length 200 | |||||
| FMT(vowel/u_bck2) | |||||
| endphoneme | |||||
| // Short Vowels | |||||
| phoneme a | |||||
| vowel starttype #i endtype #i | |||||
| length 160 | |||||
| FMT(vowel/&) | |||||
| endphoneme | |||||
| phoneme e | |||||
| vowel starttype #i endtype #i | |||||
| length 160 | |||||
| FMT(vowel/e_mid2) | |||||
| endphoneme | |||||
| phoneme o | |||||
| vowel starttype #i endtype #i | |||||
| length 160 | |||||
| FMT(vowel/o_mid) | |||||
| endphoneme | |||||
| // Diphthongs | |||||
| phoneme eI | |||||
| vowel starttype #i endtype #i | |||||
| length 220 | |||||
| FMT(vdiph/eei_2) | |||||
| endphoneme | |||||
| phoneme oU | |||||
| vowel starttype #i endtype #i | |||||
| length 220 | |||||
| FMT(vdiph/ou_2) | |||||
| endphoneme | |||||
| phoneme @ // Schwa, can be stressed | |||||
| vowel starttype #@ endtype #@ | |||||
| length 140 | |||||
| FMT(vowel/@) | |||||
| endphoneme | |||||
| phoneme i | |||||
| vowel starttype #i endtype #i | |||||
| length 140 | |||||
| IfNextVowelAppend(;) | |||||
| FMT(vowel/ii_3) | |||||
| endphoneme | |||||
| phoneme u | |||||
| vowel starttype #u endtype #u | |||||
| length 140 | |||||
| FMT(vowel/u_2) | |||||
| endphoneme | |||||
| phoneme a | |||||
| vowel starttype #a endtype #a | |||||
| length 170 | |||||
| FMT(vowel/a) | |||||
| endphoneme | |||||
| phoneme e | |||||
| vowel starttype #e endtype #e | |||||
| length 160 | |||||
| FMT(vowel/e_2) | |||||
| endphoneme | |||||
| phoneme E | |||||
| vowel starttype #e endtype #e | |||||
| length 160 | |||||
| FMT(vowel/e_mid) | |||||
| endphoneme | |||||
| phoneme o | |||||
| vowel starttype #o endtype #o | |||||
| length 160 | |||||
| FMT(vowel/o_8) | |||||
| endphoneme | |||||
| phoneme O | |||||
| vowel starttype #o endtype #o | |||||
| length 170 | |||||
| FMT(vowel/0_2) | |||||
| endphoneme | |||||
| phoneme v | |||||
| import_phoneme base/v# | |||||
| endphoneme |
| phonemetable ca es | phonemetable ca es | ||||
| include ph_catalan | include ph_catalan | ||||
| phonemetable an es | |||||
| include ph_aragon | |||||
| phonemetable pt base2 | phonemetable pt base2 | ||||
| include ph_pt_brazil | include ph_pt_brazil | ||||
| [Setup] | [Setup] | ||||
| AppName=eSpeak | AppName=eSpeak | ||||
| AppVerName=eSpeak version 1.46.28 | |||||
| AppVerName=eSpeak version 1.46.31 | |||||
| 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 | ||||
| case lang1 of | case lang1 of | ||||
| 'af': value := $436; | 'af': value := $436; | ||||
| 'am': value := $45e; | 'am': value := $45e; | ||||
| 'an': value := $40a; // Aragon, use code for Spanish | |||||
| 'az': value := $42c; | 'az': value := $42c; | ||||
| 'bg': value := $402; | 'bg': value := $402; | ||||
| 'bs': value := $41a; // should be $141a but Jaws crashes on startup | 'bs': value := $41a; // should be $141a but Jaws crashes on startup | ||||
| 'es': value := $40a; | 'es': value := $40a; | ||||
| 'et': value := $425; | 'et': value := $425; | ||||
| 'eu': value := $42d; | 'eu': value := $42d; | ||||
| 'fa': value := $429; | |||||
| 'fi': value := $40b; | 'fi': value := $40b; | ||||
| 'fil': value := $464; | 'fil': value := $464; | ||||
| 'fr': value := $40c; | 'fr': value := $40c; | ||||
| 'ml': value := $44c; | 'ml': value := $44c; | ||||
| 'mn': value := $450; | 'mn': value := $450; | ||||
| 'mt': value := $43a; | 'mt': value := $43a; | ||||
| 'my': value := $455; | |||||
| 'ne': value := $461; | 'ne': value := $461; | ||||
| 'nl': value := $413; | 'nl': value := $413; | ||||
| 'no': value := $414; | 'no': value := $414; |
| int offset; | int offset; | ||||
| int min; | int min; | ||||
| int max; | int max; | ||||
| const char *map; | |||||
| char *p = text; | char *p = text; | ||||
| char *p2 = text; | char *p2 = text; | ||||
| int all_alpha=1; | int all_alpha=1; | ||||
| offset = tr->transpose_min - 1; | offset = tr->transpose_min - 1; | ||||
| min = tr->transpose_min; | min = tr->transpose_min; | ||||
| max = tr->transpose_max; | max = tr->transpose_max; | ||||
| map = tr->transpose_map; | |||||
| pairs_start = max - min + 2; | pairs_start = max - min + 2; | ||||
| do { | do { | ||||
| p += utf8_in(&c,p); | p += utf8_in(&c,p); | ||||
| if((c >= min) && (c <= max)) | |||||
| { | |||||
| *p2++ = c - offset; | |||||
| } | |||||
| else | |||||
| if(c != 0) | if(c != 0) | ||||
| { | { | ||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| if((c >= min) && (c <= max)) | |||||
| { | |||||
| if(map == NULL) | |||||
| { | |||||
| *p2++ = c - offset; | |||||
| } | |||||
| else | |||||
| { | |||||
| // get the code from the transpose map | |||||
| if(map[c - min] > 0) | |||||
| { | |||||
| *p2++ = map[c - min]; | |||||
| } | |||||
| else | |||||
| { | |||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| } | |||||
| } | |||||
| } | |||||
| else | |||||
| { | |||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| } | |||||
| } | } | ||||
| } while (c != 0); | } while (c != 0); | ||||
| *p2 = 0; | *p2 = 0; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.30 15.Jan.13"; | |||||
| const int version_phdata = 0x014624; | |||||
| const char *version_string = "1.46.31 19.Jan.13"; | |||||
| const int version_phdata = 0x014631; | |||||
| int option_device_number = -1; | int option_device_number = -1; | ||||
| FILE *f_logespeak = NULL; | FILE *f_logespeak = NULL; |
| static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words | static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words | ||||
| static const unsigned char default_tunes[6] = {0, 1, 2, 3, 0, 0}; | static const unsigned char default_tunes[6] = {0, 1, 2, 3, 0, 0}; | ||||
| // Translates character codes in the range transpose_min to transpose_max to | |||||
| // a number in the range 1 to 63. 0 indicates there is no translation. | |||||
| // Used up to 57 (max of 63) | |||||
| static const char transpose_map_latin[] = { | |||||
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // 0x60 | |||||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, // 0x70 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x80 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x90 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xa0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xb0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xc0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xd0 | |||||
| 27, 28, 29, 0, 0, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 0, // 0xe0 | |||||
| 0, 0, 0, 39, 0, 0, 40, 0, 41, 0, 42, 0, 43, 0, 0, 0, // 0xf0 | |||||
| 0, 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, 0, 0, 47, 0, 0, // 0x100 | |||||
| 0, 48, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, // 0x110 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x120 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x130 | |||||
| 0, 0, 50, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x140 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, // 0x150 | |||||
| 0, 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x160 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 56, 0, 57, 0, // 0x170 | |||||
| }; | |||||
| tr = (Translator *)Alloc(sizeof(Translator)); | tr = (Translator *)Alloc(sizeof(Translator)); | ||||
| if(tr == NULL) | if(tr == NULL) | ||||
| tr->data_dictrules = NULL; // language_1 translation rules file | tr->data_dictrules = NULL; // language_1 translation rules file | ||||
| tr->data_dictlist = NULL; // language_2 dictionary lookup file | tr->data_dictlist = NULL; // language_2 dictionary lookup file | ||||
| tr->transpose_min = 'a'; | |||||
| tr->transpose_max = 'z'; | |||||
| tr->transpose_min = 0x60; | |||||
| tr->transpose_max = 0x17f; | |||||
| tr->transpose_map = transpose_map_latin; | |||||
| tr->frequent_pairs = NULL; | tr->frequent_pairs = NULL; | ||||
| // only need lower case | // only need lower case | ||||
| tr->charset_a0 = charsets[18]; // KOI8-R | tr->charset_a0 = charsets[18]; // KOI8-R | ||||
| tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x22 | tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x22 | ||||
| tr->transpose_max = 0x451; | tr->transpose_max = 0x451; | ||||
| tr->transpose_map = NULL; | |||||
| tr->frequent_pairs = pairs_ru; | tr->frequent_pairs = pairs_ru; | ||||
| tr->letter_bits_offset = OFFSET_CYRILLIC; | tr->letter_bits_offset = OFFSET_CYRILLIC; | ||||
| break; | break; | ||||
| case L('e','s'): // Spanish | case L('e','s'): // Spanish | ||||
| case L('a','n'): // Aragonese | |||||
| case L('c','a'): // Catalan | case L('c','a'): // Catalan | ||||
| case L_pap: // Papiamento | case L_pap: // Papiamento | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | ||||
| } | } | ||||
| else | else | ||||
| if(name2 == L('a','n')) | |||||
| { | |||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; | |||||
| } | |||||
| else | |||||
| if(name2 == L_pap) | if(name2 == L_pap) | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | ||||
| case L('f','a'): // Farsi | case L('f','a'): // Farsi | ||||
| { | { | ||||
| // Convert characters in the range 0x620 to 0x6cc to the range 1 to 63. | |||||
| // 0 indicates no translation for this character | |||||
| static const char transpose_map_fa[] = { | |||||
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // 0x620 | |||||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, // 0x630 | |||||
| 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, // 0x640 | |||||
| 42, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x650 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x660 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, // 0x670 | |||||
| 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x680 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, // 0x690 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 49, // 0x6a0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x6b0 | |||||
| 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51 }; // 0x6c0 | |||||
| tr->transpose_min = 0x620; | |||||
| tr->transpose_max = 0x6cc; | |||||
| tr->transpose_map = transpose_map_fa; | |||||
| tr->letter_bits_offset = OFFSET_ARABIC; | tr->letter_bits_offset = OFFSET_ARABIC; | ||||
| tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND; | tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| tr->langopts.stress_flags = 0x20; | tr->langopts.stress_flags = 0x20; | ||||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; | tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word | ||||
| tr->letter_bits['r'] |= 0x80; // add 'r' to letter group 7, vowels for Unpronouncable test | |||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; | ||||
| tr->langopts.numbers2 = 0x100; // plural forms of millions etc | tr->langopts.numbers2 = 0x100; // plural forms of millions etc | ||||
| tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator | tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator | ||||
| // SetLetterVowel(tr,'r'); | |||||
| break; | break; | ||||
| case L('s','q'): // Albanian | case L('s','q'): // Albanian |
| int translator_name; | int translator_name; | ||||
| int transpose_max; | int transpose_max; | ||||
| int transpose_min; | int transpose_min; | ||||
| const char *transpose_map; | |||||
| char dictionary_name[40]; | char dictionary_name[40]; | ||||
| char phon_out[400]; | char phon_out[400]; |
| #define DEFAULT_LANGUAGE_PRIORITY 5 | #define DEFAULT_LANGUAGE_PRIORITY 5 | ||||
| #define N_VOICES_LIST 150 | |||||
| #define N_VOICES_LIST 200 | |||||
| static int n_voices_list = 0; | static int n_voices_list = 0; | ||||
| static espeak_VOICE *voices_list[N_VOICES_LIST]; | static espeak_VOICE *voices_list[N_VOICES_LIST]; | ||||
| static int len_path_voices; | static int len_path_voices; | ||||
| int ix; | int ix; | ||||
| int j; | int j; | ||||
| espeak_VOICE *v; | espeak_VOICE *v; | ||||
| static espeak_VOICE *voices[N_VOICES_LIST]; | |||||
| static espeak_VOICE **voices = NULL; | |||||
| char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
| // free previous voice list data | // free previous voice list data | ||||
| GetVoices(path_voices); | GetVoices(path_voices); | ||||
| voices_list[n_voices_list] = NULL; // voices list terminator | voices_list[n_voices_list] = NULL; // voices list terminator | ||||
| voices = (espeak_VOICE **)realloc(voices, sizeof(espeak_VOICE *)*(n_voices_list+1)); | |||||
| // sort the voices list | // sort the voices list | ||||
| qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), | qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), |