Changes to: pt, tt, ko. Phoneme definitions: added NOT operator, eg: IF NOT nextPh(isVowel) THEN git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@290 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -256,7 +256,7 @@ | |||
| e) chen (_ C@n | |||
| ü) chen (_ C@n | |||
| chs ks (_ | |||
| chs ks | |||
| chance SA~s@ | |||
| chara (kt k%ara | |||
| _) ch (ic S | |||
| @@ -78,7 +78,7 @@ S s2 t t2 tS ts v w | |||
| z Z | |||
| Dictionary de_dict 2012-06-27 | |||
| Dictionary de_dict 2012-09-13 | |||
| 3 @ @- a A A: aI aU | |||
| A~ E E2 E: e: EI i I | |||
| @@ -102,7 +102,7 @@ p Q r R s s; t T | |||
| ts v x z | |||
| Dictionary en_dict 2012-09-08 | |||
| Dictionary en_dict 2012-09-14 | |||
| 0 3 3: @ @- @2 @5 @L | |||
| a a# A: A@ aa aI aI3 aI@ | |||
| @@ -376,7 +376,7 @@ S s; S; t t; tS ts tS; | |||
| ts; v w x z Z Z; | |||
| Dictionary pt_dict 2012-09-11 | |||
| Dictionary pt_dict 2012-09-14 | |||
| & &/ &U~ &~ @ @- a A | |||
| aI aU e E eI EI eU EU | |||
| @@ -508,11 +508,11 @@ i i. i[ iA iE io iou N- | |||
| o o- ong ou u u@ ua uai | |||
| uei uo y y& y@ yE yi yu | |||
| ; C f h j k kh l | |||
| l# m n N p ph Q q | |||
| Q" Q^ r R R2 R3 s s. | |||
| S; t th ts ts. ts. tS; tS; | |||
| tsh v w x X z. | |||
| ; C f h j J^ k kh | |||
| l l# m n N p ph Q | |||
| q Q" Q^ r R R2 R3 s | |||
| s. S; t th ts ts. ts. tS; | |||
| tS; tsh v w x X z. | |||
| Dictionary zhy_dict 2009-01-19 | |||
| @@ -814,10 +814,10 @@ tS ts tS; v x z Z z; | |||
| Z; | |||
| Dictionary tt_dict 2012-09-11 | |||
| Dictionary tt_dict 2012-09-14 | |||
| a A A2 e e2 i I o | |||
| u u2 V W y | |||
| & a A e e2 e: i I | |||
| o u u2 V W y | |||
| : ? b d f g h j | |||
| k l m n N p q r | |||
| @@ -825,10 +825,11 @@ R s S S; t w x z | |||
| Z Z; | |||
| Dictionary ko_dict 2012-06-14 | |||
| Dictionary ko_dict 2012-09-14 | |||
| @ a e E i o u u- | |||
| * - ; b d dZ; g h | |||
| j k k- kh l m n p | |||
| p- ph s t t- tS tS; w | |||
| j k k- kh l m n N | |||
| p p- ph q r s t t- | |||
| tS tS; w | |||
| @@ -3054,6 +3054,7 @@ Katie keIti | |||
| Keighli keIli | |||
| Keanu kI'A:nu: | |||
| Kieran ki@r@n | |||
| Kris krIs | |||
| Laurence l0r@ns | |||
| Lawrence l0r@ns | |||
| Leann li:'an | |||
| @@ -1,4 +1,4 @@ | |||
| // translation rules for Spanish | |||
| // translation rules for Spanish | |||
| // This file is UTF-8 encoded | |||
| // Conditional rules | |||
| @@ -128,8 +128,9 @@ ll (_ l | |||
| .group m | |||
| m m | |||
| @) m (_ =m | |||
| _) mn (em n | |||
| _) mb (A mb | |||
| _) mb (A mb | |||
| .group n | |||
| @@ -1,5 +1,6 @@ | |||
| $textmode | |||
| // Number forms: | |||
| _0 ᅧᆼ | |||
| _1 ᅵᆯ | |||
| _2 ᅵ | |||
| @@ -23,6 +24,46 @@ _0C 백 | |||
| _0M1 천 | |||
| _1M1 천 | |||
| $phonememode | |||
| _0M2 m'an // 10^4 | |||
| _1M2 m'an | |||
| _0M3 tSh-@n||m'an // 10^7 | |||
| _1M3 tSh-@n||m'an | |||
| _0M4 '@q // 10^8 | |||
| _1M4 '@q | |||
| _0M5 tSh-@n||'@q // 10^11 | |||
| _1M5 tSh-@n||'@q | |||
| _0M6 tS;'o // 10^12 | |||
| _1M6 tS;'o | |||
| _0M7 tSh-@n||tS;'o | |||
| _1M7 tSh-@n||tS;'o | |||
| _0M8 gj'@nN | |||
| _1M8 gj'@nN | |||
| $textmode | |||
| // Character names: | |||
| ㄱ ㄱㅣㅇㅕㄱ | |||
| ㄲ ㅆㅏㅇㄱㅣㅇㅕㄱ | |||
| ㄴ ㄴㅣㅇㅡㄴ | |||
| ㄷ ㄷㅣㄱㅡㄷ | |||
| ㄸ ㅆㅏㅇㄷㅣㄱㅡㄷ | |||
| ㄹ ㄹㅣㅇㅡㄹ | |||
| ㅁ ㅁㅣㅇㅡㅁ | |||
| ㅂ ㅂㅣㅇㅡㅂ | |||
| ㅃ ㅆㅏㅇㅂㅣㅇㅡㅂ | |||
| ㅅ ㅅㅣㅇㅗㅅ | |||
| ㅆ ㅆㅏㅇㅅㅣㅇㅗㅅ | |||
| ㅇ ㅇㅣㅇㅡㅇ | |||
| ㅈ ㅈㅣㅇㅡㅈ | |||
| ㅉ ㅆㅏㅇㅈㅣㅇㅡㅈ | |||
| ㅊ ㅊㅣㅇㅡㅊ | |||
| ㅋ ㅋㅣㅇㅡㅋ | |||
| ㅌ ㅌㅣㅇㅡㅌ | |||
| ㅍ ㅍㅣㅇㅡㅍ | |||
| ㅎ ㅎㅣㅇㅡㅎ | |||
| // Misc: | |||
| // 사ᅵ시ᅩᆺ | |||
| 고랫재 고랟째 | |||
| 귓밥 귇빱 | |||
| @@ -19,20 +19,20 @@ | |||
| // Order: ㄱㄲㅋ ㄷㄸㅌ ㅂㅃㅍ ㅅㅆㅈㅉㅊ ㄴㅁ ㄹ ㅎ | |||
| .group ᄀ // ㄱ | |||
| ᄀ g | |||
| _) ᄀ k | |||
| ᄀ q | |||
| _) ᄀ g | |||
| L01) ᄀ k- | |||
| L03) ᄀ kh | |||
| .group ᄁ // ㄲ | |||
| ᄁ k- | |||
| ᄁ q- | |||
| .group ᄏ // ㅋ | |||
| ᄏ kh | |||
| .group ᄃ // ㄷ | |||
| ᄃ d | |||
| _) ᄃ t | |||
| _) ᄃ d | |||
| L01) ᄃ t- | |||
| L03) ᄃ th | |||
| @@ -55,7 +55,7 @@ | |||
| ᄑ ph | |||
| .group ᄉ // ㅅ | |||
| ᄉ s | |||
| ᄉ |s | |||
| L01) ᄉ s- | |||
| .group ᄊ // ㅆ | |||
| @@ -68,16 +68,16 @@ | |||
| L03) ᄌ tSh; | |||
| .group ᄍ // ㅉ | |||
| ᄍ tS;- // TODO: phoneme | |||
| ᄍ 'tS;- // TODO: phoneme | |||
| .group ᄎ // ㅊ | |||
| ᄎ tSh; // TODO: phoneme | |||
| ᄎ tSh- // TODO: phoneme | |||
| .group ᄂ // ㄴ | |||
| ᄂ n | |||
| ᄂ ;n | |||
| .group ᄆ // ㅁ | |||
| ᄆ m | |||
| ᄆ ;m | |||
| .group ᄅ // ㄹ | |||
| ᄅ * // TODO: alveolar flap [ɾ] | |||
| @@ -87,7 +87,7 @@ | |||
| ᄒ h // TODO: [ɦ] | |||
| _) ᄒ h | |||
| // Medials | |||
| // Medials or vowels | |||
| .group ᅡ // ㅏ | |||
| ᅡ a | |||
| @@ -157,7 +157,7 @@ | |||
| // Order: ㄱㄳㄲㅋ ㄷㅌ ㅂㅍ ㅅㅆㅈㅊ ㄴㅁ ㅇㅎ ㄹ | |||
| .group ᆨ // ㄱ | |||
| ᆨ k // TODO: final stops | |||
| ᆨ q // It is actually q, as using k adds unnecessary sound. | |||
| ᆨᄒ kh | |||
| .group ᆪ // ㄳ | |||
| @@ -175,14 +175,14 @@ | |||
| ᆿ (A kh | |||
| .group ᆮ // ㄷ | |||
| ᆮ t | |||
| ᆮ d- // Actually a soft D. | |||
| ᆮᄂ nn | |||
| ᆮᄆ mm | |||
| ᆮᄒ th | |||
| ᆮ (L02 dZ; | |||
| .group ᇀ // ㅌ | |||
| ᇀ t | |||
| ᇀ t- | |||
| ᇀᄂ nn | |||
| ᇀᄆ mm | |||
| ᇀ (A th | |||
| @@ -202,14 +202,14 @@ | |||
| ᇁ (A ph | |||
| .group ᆺ // ㅅ | |||
| ᆺ t | |||
| ᆺ t- | |||
| ᆺᄂ nn | |||
| ᆺᄆ mm | |||
| ᆺ (A s | |||
| ᆺᄒ s- | |||
| .group ᆻ // ㅆ | |||
| ᆻ t | |||
| ᆻ t- | |||
| ᆻᄂ nn | |||
| ᆻᄆ mm | |||
| ᆻ (A s- | |||
| @@ -241,14 +241,14 @@ | |||
| ᆷ m | |||
| .group ᆼ // ㅇ | |||
| ᆼ ng | |||
| ᆼ nN | |||
| .group ᇂ // ㅎ | |||
| ᇂ t | |||
| ᇂ t- | |||
| ᇂ (A | |||
| .group ᆯ // ㄹ | |||
| ᆯ l | |||
| ᆯ rr | |||
| ᆯᄅ l | |||
| ᆯ (A * | |||
| @@ -644,6 +644,7 @@ governo gov'ernU $noun | |||
| // $alt changes stressed [e] or [o] phoneme to open [E] or [O] | |||
| // $alt2 changes stressed [E] or [O] phoneme to close [e] or [o] | |||
| aborto $alt $verb | |||
| acerto $alt2 $noun | |||
| adereço $alt2 | |||
| adore $alt | |||
| @@ -659,10 +660,12 @@ ameba $alt | |||
| amores $alt2 | |||
| anoiteça $alt2 | |||
| anoiteço $alt2 | |||
| apego $alt2 | |||
| apreço $alt2 | |||
| aperto $alt2 $noun | |||
| apoio $alt $verb | |||
| aprendeste $alt2 | |||
| arremesso $alt2 $noun | |||
| assembleia $alt | |||
| atrozes $alt | |||
| austera $alt | |||
| @@ -676,11 +679,13 @@ boleia $alt | |||
| bolo $alt2 | |||
| borboleta $alt2 | |||
| bordo $alt | |||
| bromelha $alt | |||
| cabeça $alt2 | |||
| cacete $alt2 | |||
| cachorra $alt2 | |||
| camiseta $alt2 | |||
| cantora $alt2 | |||
| caractere $alt | |||
| casebre $alt | |||
| catorze $alt2 | |||
| cefaleia $alt | |||
| @@ -714,9 +719,12 @@ crede $alt2 | |||
| cresce $alt | |||
| crescem $alt | |||
| der $alt | |||
| desapego $alt2 $noun | |||
| desce $alt | |||
| descem $alt | |||
| descordo $alt | |||
| descova $alt2 | |||
| desespero $alt2 $noun | |||
| desfecho $alt2 | |||
| desprezo $alt $verb | |||
| deva $alt2 | |||
| @@ -727,8 +735,11 @@ discordo $alt | |||
| dobro $alt2 $noun | |||
| doce $alt2 | |||
| droga $alt | |||
| emprego $alt2 $noun | |||
| endereço $alt2 | |||
| enumerem $alt | |||
| enredo $alt $verb | |||
| enterro $alt2 $noun | |||
| enxerto $alt2 $noun | |||
| epopeia $alt | |||
| eritreia $alt | |||
| @@ -740,7 +751,7 @@ esforços $alt | |||
| esperma $alt | |||
| espeto $alt2 $noun | |||
| espiroqueta $alt2 | |||
| enterro $alt2 $noun | |||
| esqueleto $alt2 | |||
| estiverdes $alt | |||
| estiveres $alt | |||
| estrofe $alt | |||
| @@ -750,6 +761,7 @@ expeça $alt2 | |||
| expeço $alt2 | |||
| farofa $alt | |||
| febre $alt | |||
| fera $alt | |||
| fere $alt | |||
| ferem $alt | |||
| fezes $alt | |||
| @@ -758,6 +770,7 @@ Fizeram $alt | |||
| fizerem $alt | |||
| fizerdes $alt | |||
| fizeres $alt | |||
| folga $alt | |||
| fogos $alt | |||
| fores $alt2 | |||
| forro $alt $verb | |||
| @@ -765,6 +778,7 @@ fosse $alt2 | |||
| fossem $alt2 | |||
| foste $alt2 | |||
| frevo $alt2 | |||
| galera $alt | |||
| gameta $alt2 | |||
| geleia $alt | |||
| gelo $alt $verb | |||
| @@ -850,10 +864,12 @@ povos $alt | |||
| poxa p'oS& | |||
| preta $alt2 | |||
| preto $alt2 | |||
| primavera $alt | |||
| profere $alt | |||
| proferem $alt | |||
| puder $alt | |||
| puserdes $alt | |||
| recomeço $alt2 $noun | |||
| recordo $alt | |||
| recorto $alt | |||
| rede $alt2 | |||
| @@ -874,11 +890,14 @@ sincero $alt | |||
| sobe $alt | |||
| sobem $alt | |||
| soco $alt2 | |||
| soco $alt $verb | |||
| sofrem $alt | |||
| sofre $alt | |||
| sofreste $alt2 | |||
| sogra $alt | |||
| sopre $alt | |||
| soprem $alt | |||
| sopro $alt $verb | |||
| sorvete $alt2 | |||
| sossego $alt2 $noun | |||
| souber $alt | |||
| @@ -889,6 +908,7 @@ sugere $alt | |||
| sugerem $alt | |||
| suor swOr | |||
| tapete $alt2 | |||
| tempero $alt $verb | |||
| teta $alt2 | |||
| tiver $alt | |||
| tiveres $alt | |||
| @@ -16,7 +16,7 @@ | |||
| // endings | |||
| .L01 a am o | |||
| .L02 a am e em o | |||
| .L02 a am e em o ue uem | |||
| .L03 a am | |||
| .group a | |||
| @@ -367,6 +367,13 @@ _compar) e (çL01_ e | |||
| _desapar) e (çL01_ e | |||
| _esclar) e (çL01_ e | |||
| _reapar) e (çL01_ e | |||
| _sol) e (trL01_ E | |||
| _acont) e (çL03_ e | |||
| _envaid) e (çL01_ e | |||
| _ofer) e (çL01_ e | |||
| _enriqu) e (çL01_ e | |||
| _descr) e (vL01_ e | |||
| _enfraqu) e (çL01_ e | |||
| //endsort | |||
| .group é | |||
| @@ -653,11 +660,14 @@ _reapar) e (çL01_ e | |||
| ?1 f) o (rmulá u // eg: formulário, formulários. | |||
| ?1 v) o (lt O | |||
| //sort | |||
| _m) o (lhL02_ O | |||
| _ref) o (gL02_ O | |||
| c) o (rrL03_ o // escorra, incorra, corra, recorra | |||
| _m) o (rrL03_ o | |||
| _ap) oi (L03_ OI | |||
| p) ostos (_ Ost=Us# // dispostos etc. | |||
| //endsort | |||
| .group ô | |||
| ô ''o | |||
| @@ -36,8 +36,8 @@ | |||
| щ SS;A | |||
| ъ kAlVnl,Vqbilges'e | |||
| ы V: | |||
| ь neS;kal,ekbilges'e | |||
| э e: | |||
| ь neS;k&l,ekbilges'e | |||
| э e|: | |||
| ю ju | |||
| я jA | |||
| @@ -69,7 +69,7 @@ _4X kVr'Vk | |||
| _5X ill'e | |||
| _6X Altm'VS | |||
| _7X Z;itm'eS | |||
| _8X siks'an | |||
| _8X siks'&n | |||
| _9X tuks'An | |||
| _0C j'Wz | |||
| _0M1 m'eN | |||
| @@ -80,4 +80,4 @@ _1M3 milli'Ard | |||
| _0M4 billi'on | |||
| _1M4 billi'on | |||
| _dpt bWt,en | |||
| _dpt _bWt,en | |||
| @@ -6,7 +6,8 @@ | |||
| а A | |||
| .group ә | |||
| ә a | |||
| ә & | |||
| әе e: // 'әнкәен' | |||
| .group б | |||
| б b | |||
| @@ -15,13 +16,13 @@ | |||
| в w // [v] in Russian words | |||
| .group г | |||
| г g // may be [Q] or [r"] ?? | |||
| г g // changes to [Q] or [Q"] | |||
| .group д | |||
| д d | |||
| .group е | |||
| _) е je2 // may be [je] [jV] | |||
| _) е je2 // changes to [je] or [jV] | |||
| е e | |||
| .group ё | |||
| @@ -38,6 +39,7 @@ | |||
| .group и | |||
| и i | |||
| A) и j | |||
| .group й | |||
| й j | |||
| @@ -54,7 +56,7 @@ | |||
| .group н | |||
| н n | |||
| н (к N | |||
| // н (к N | |||
| н (г N | |||
| н (х N | |||
| @@ -81,9 +83,11 @@ | |||
| .group у | |||
| у u // or w | |||
| A) у w | |||
| .group ү | |||
| ү y // or w | |||
| A) ү w | |||
| .group ф | |||
| ф f | |||
| @@ -120,10 +124,10 @@ | |||
| э e | |||
| .group ю | |||
| ю ju2 // or jy | |||
| ю ju2 // changes to ju or jy | |||
| .group я | |||
| я jA2 // or ja | |||
| я ja // changes to jA or j& | |||
| .group | |||
| $ dolAR | |||
| @@ -1,88 +1,88 @@ | |||
| 83 phoneme tables | |||
| new total | |||
| base 107 107 | |||
| consonants 10 116 | |||
| base2 26 123 | |||
| en 53 153 | |||
| en-n 33 153 | |||
| en-us 41 154 | |||
| en-sc 40 155 | |||
| en-rp 34 153 | |||
| en-wm 31 153 | |||
| en-wi 30 153 | |||
| af 39 136 | |||
| cy 29 132 | |||
| de 41 139 | |||
| eo 13 114 | |||
| jbo 2 114 | |||
| nci 3 123 | |||
| fi 41 133 | |||
| et 40 133 | |||
| fr 64 144 | |||
| fr-ca 11 144 | |||
| hi 57 148 | |||
| ta 23 152 | |||
| kn 17 148 | |||
| ml 21 151 | |||
| hu 25 122 | |||
| lt 44 137 | |||
| lv 29 125 | |||
| nl 35 128 | |||
| pl 22 120 | |||
| sk 28 135 | |||
| cs 7 135 | |||
| hr 25 140 | |||
| mk 3 141 | |||
| sr 14 142 | |||
| ru 49 137 | |||
| bg 14 123 | |||
| it 19 127 | |||
| la 21 124 | |||
| es 15 123 | |||
| es-la 1 123 | |||
| ca 11 125 | |||
| pt 29 138 | |||
| pt-pt 20 138 | |||
| ro 36 146 | |||
| el 10 123 | |||
| grc 12 127 | |||
| sv 22 127 | |||
| no 28 132 | |||
| is 42 139 | |||
| vi 41 139 | |||
| zhy 41 136 | |||
| zh 64 153 | |||
| sw 9 108 | |||
| tr 19 126 | |||
| ku 18 127 | |||
| id 15 125 | |||
| sq 33 126 | |||
| hy 23 117 | |||
| da 27 120 | |||
| ka 19 112 | |||
| rw 15 130 | |||
| ne 18 156 | |||
| pa 15 150 | |||
| prs 8 111 | |||
| sl 10 135 | |||
| gd 6 107 | |||
| nso 12 111 | |||
| ht 11 144 | |||
| az 10 127 | |||
| ak 8 109 | |||
| am 15 112 | |||
| wo 18 118 | |||
| dv 14 148 | |||
| te 16 148 | |||
| si 24 154 | |||
| tn 27 119 | |||
| mt 32 127 | |||
| bo 10 152 | |||
| kk 20 117 | |||
| fa 9 110 | |||
| ga 21 125 | |||
| tt 18 116 | |||
| ko 15 114 | |||
| base 109 109 | |||
| consonants 10 118 | |||
| base2 26 125 | |||
| en 53 155 | |||
| en-n 33 155 | |||
| en-us 41 156 | |||
| en-sc 40 157 | |||
| en-rp 34 155 | |||
| en-wm 31 155 | |||
| en-wi 30 155 | |||
| af 39 138 | |||
| cy 29 134 | |||
| de 41 141 | |||
| eo 13 116 | |||
| jbo 2 116 | |||
| nci 3 125 | |||
| fi 41 135 | |||
| et 40 135 | |||
| fr 64 146 | |||
| fr-ca 11 146 | |||
| hi 57 150 | |||
| ta 23 154 | |||
| kn 17 150 | |||
| ml 21 153 | |||
| hu 25 124 | |||
| lt 44 139 | |||
| lv 29 127 | |||
| nl 35 130 | |||
| pl 22 122 | |||
| sk 28 137 | |||
| cs 7 137 | |||
| hr 25 142 | |||
| mk 3 143 | |||
| sr 14 144 | |||
| ru 49 139 | |||
| bg 14 124 | |||
| it 19 129 | |||
| la 21 126 | |||
| es 15 125 | |||
| es-la 1 125 | |||
| ca 11 127 | |||
| pt 29 140 | |||
| pt-pt 20 140 | |||
| ro 36 148 | |||
| el 10 125 | |||
| grc 12 129 | |||
| sv 22 129 | |||
| no 28 134 | |||
| is 42 141 | |||
| vi 41 141 | |||
| zhy 41 138 | |||
| zh 64 155 | |||
| sw 9 110 | |||
| tr 19 128 | |||
| ku 18 129 | |||
| id 15 127 | |||
| sq 33 127 | |||
| hy 23 119 | |||
| da 27 122 | |||
| ka 19 114 | |||
| rw 15 132 | |||
| ne 18 158 | |||
| pa 15 152 | |||
| prs 8 113 | |||
| sl 10 137 | |||
| gd 6 109 | |||
| nso 12 113 | |||
| ht 11 146 | |||
| az 10 129 | |||
| ak 8 111 | |||
| am 15 114 | |||
| wo 18 120 | |||
| dv 14 150 | |||
| te 16 150 | |||
| si 24 156 | |||
| tn 27 121 | |||
| mt 32 129 | |||
| bo 10 154 | |||
| kk 20 118 | |||
| fa 9 112 | |||
| ga 21 127 | |||
| tt 23 120 | |||
| ko 15 116 | |||
| Data file Used by | |||
| b/b [b] base | |||
| @@ -417,7 +417,7 @@ l/l_ [l] base | |||
| [l/] fr | |||
| l/l_@ [l/3] base | |||
| [l/] fr | |||
| l/l@ [hæu] base | |||
| l/l@ [h1ø] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -451,7 +451,7 @@ l/L2_oL [l/2] base | |||
| l/L2_uL [l/2] base | |||
| l/l_3 [l/] de | |||
| l/l_4 [ll] sq | |||
| l/la [hæu] base | |||
| l/la [h1ø] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -459,7 +459,7 @@ l/la [h | |||
| [K] tn | |||
| l/l_a [l/3] base | |||
| [l/] fr | |||
| l/le [hæu] base | |||
| l/le [h1ø] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -471,7 +471,7 @@ l/L_eL_af [&] af | |||
| [&:] af | |||
| l/l_front [L] sq | |||
| l/l_front_ [l/4] sq | |||
| l/li [hæu] base | |||
| l/li [h1ø] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -481,11 +481,11 @@ l/li [h | |||
| l/l_i [l/3] base | |||
| [l/] fr | |||
| [i] sq | |||
| ll/ll [L] bg | |||
| ll/_ll [L] bg | |||
| ll/ll [L] base | |||
| ll/_ll [L] base | |||
| l/l_long [l] base | |||
| [l] fr | |||
| l/lo [hæu] base | |||
| l/lo [h1ø] base | |||
| [l#] base | |||
| [l/2] fr | |||
| [K] nso | |||
| @@ -496,7 +496,7 @@ l^/l_rfx [l.] base | |||
| [l;] lt | |||
| [l] ru | |||
| [l^] ru | |||
| l/lu [hæu] base | |||
| l/lu [h1ø] base | |||
| [l#] base | |||
| [l] fr | |||
| [l/2] fr | |||
| @@ -505,7 +505,7 @@ l/lu [h | |||
| l/l_u [l/3] base | |||
| [l/] fr | |||
| l/l_vi [l] vi | |||
| ll/xll [L] bg | |||
| ll/xll [L] base | |||
| l/l_y [l/] fr | |||
| l/tl [l] base | |||
| [l] fr | |||
| @@ -1493,7 +1493,7 @@ vowel/@_2 [@] vi | |||
| [@] sq | |||
| [V] sq | |||
| [@/] sq | |||
| vowel/&_2 [a] tt | |||
| [V] tt | |||
| vowel/@_3 [@#] en | |||
| [@] en-sc | |||
| [I] en-sc | |||
| @@ -1655,7 +1655,6 @@ vowel/aa [a:] et | |||
| [aa] zhy | |||
| [a] hy | |||
| [a] az | |||
| [A] tt | |||
| vowel/aa# [O] en-us | |||
| [0] en-wi | |||
| [a2] fi | |||
| @@ -1682,6 +1681,7 @@ vowel/aa_8 [0] en-us | |||
| [A1] et | |||
| [A] nl | |||
| [a:] is | |||
| [A] tt | |||
| [a] ko | |||
| vowel/aa_9 [a] fi | |||
| [a] et | |||
| @@ -1749,6 +1749,7 @@ vowel/e_3 [i] en-n | |||
| vowel/e_5 [i] en-sc | |||
| vowel/e_6 [e] ht | |||
| [e] ak | |||
| [e:] tt | |||
| vowel/e_7 [e:] et | |||
| vowel/e_8 [E:] de | |||
| [e] fr | |||
| @@ -1756,6 +1757,7 @@ vowel/e_8 [E:] de | |||
| vowel/ee [E] en-n | |||
| [E] sv | |||
| [e] ka | |||
| [&] tt | |||
| vowel/e_e [E] en-sc | |||
| [E:] is | |||
| vowel/ee# [E#] pl | |||
| @@ -2083,7 +2085,6 @@ vowel/o-_2 [V] en-n | |||
| vowel/o_3 [oU] en-sc | |||
| [o] kk | |||
| vowel/o-_3 [U] en-rp | |||
| [V] tt | |||
| vowel/o-_4 [o] ro | |||
| [o] am | |||
| vowel/o_5 [O] da | |||
| @@ -72,20 +72,7 @@ phoneme l | |||
| endphoneme | |||
| phoneme L // velar L | |||
| liquid | |||
| lengthmod 7 | |||
| IF nextPh(isNotVowel) THEN | |||
| ChangePhoneme(l/2) // use 'dark' [l] after a vowel | |||
| ENDIF | |||
| VowelEnding(ll/xll, -40) | |||
| IF prevPh(isPause) THEN | |||
| FMT(ll/_ll) | |||
| ENDIF | |||
| FMT(ll/ll) | |||
| import_phoneme base/L | |||
| endphoneme | |||
| @@ -51,8 +51,7 @@ phoneme l // use dark [l/2] before not-vowel | |||
| liquid | |||
| lengthmod 7 | |||
| IF nextPhW(isVowel) THEN | |||
| ELSE | |||
| IF NOT nextPhW(isVowel) THEN | |||
| IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN | |||
| ChangePhoneme(l/2) | |||
| ELSE | |||
| @@ -110,8 +109,7 @@ phoneme z/2 // used for 's suffix | |||
| InsertPhoneme(I2) | |||
| ENDIF | |||
| IF prevPh(isVoiced) THEN | |||
| ELSE | |||
| IF NOT prevPh(isVoiced) THEN | |||
| ChangePhoneme(s) | |||
| ENDIF | |||
| ChangePhoneme(z) | |||
| @@ -1,6 +1,6 @@ | |||
| // use 'flag1' for front vowels | |||
| // use 'flag1' for front vowels, 'flag2' for back vowels | |||
| phoneme i | |||
| vowel flag1 starttype #i endtype #i | |||
| @@ -15,93 +15,105 @@ phoneme y | |||
| endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| vowel flag2 starttype #u endtype #u | |||
| length 180 | |||
| FMT(vowel/u) | |||
| endphoneme | |||
| phoneme u2 // letter 'ю' | |||
| vowel starttype #u endtype #u | |||
| length 180 | |||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||
| ChangePhoneme(y) | |||
| ELSE | |||
| ChangePhoneme(u) | |||
| ENDIF | |||
| endphoneme | |||
| phoneme e | |||
| vowel flag1 starttype #@ endtype #@ | |||
| length 100 | |||
| length 110 | |||
| FMT(vowel/ii#) | |||
| endphoneme | |||
| phoneme e2 // 'e' at start of word | |||
| vowel starttype #@ endtype #@ | |||
| length 100 | |||
| IF nextVowel(isFlag1) THEN | |||
| ChangePhoneme(e) | |||
| ENDIF | |||
| ChangePhoneme(V) | |||
| endphoneme | |||
| phoneme W | |||
| vowel flag1 starttype #@ endtype #@ | |||
| length 100 | |||
| length 110 | |||
| FMT(vowel/oe) | |||
| endphoneme | |||
| phoneme o | |||
| vowel starttype #o endtype #o | |||
| length 100 | |||
| vowel flag2 starttype #o endtype #o | |||
| length 110 | |||
| FMT(vowel/o_mid) | |||
| endphoneme | |||
| phoneme V | |||
| vowel starttype #@ endtype #@ | |||
| length 100 | |||
| FMT(vowel/o-_3) | |||
| vowel flag2 starttype #@ endtype #@ | |||
| length 110 | |||
| ipa ɯ | |||
| FMT(vowel/@_2) | |||
| endphoneme | |||
| phoneme a | |||
| vowel flag1 starttype #a endtype #a | |||
| phoneme & | |||
| vowel flag1 starttype #e endtype #e | |||
| length 180 | |||
| FMT(vowel/&_2) | |||
| FMT(vowel/ee) | |||
| endphoneme | |||
| phoneme A | |||
| vowel starttype #a endtype #a | |||
| vowel flag2 starttype #a endtype #a | |||
| length 180 | |||
| IF thisPh(isFirstVowel) THEN | |||
| ChangePhoneme(0) | |||
| ENDIF | |||
| IF prevVowel(0) THEN | |||
| ChangePhoneme(0) | |||
| IF NOT nextPhW(w) AND NOT thisPh(isTranslationGiven) THEN | |||
| IF thisPh(isFirstVowel) THEN | |||
| ChangePhoneme(0) | |||
| ENDIF | |||
| IF prevVowel(0) AND thisPh(isSecondVowel) THEN | |||
| ChangePhoneme(0) | |||
| ENDIF | |||
| ENDIF | |||
| FMT(vowel/aa) | |||
| FMT(vowel/aa_8) | |||
| endphoneme | |||
| phoneme 0 | |||
| vowel flag2 starttype #o endtype #o | |||
| length 180 | |||
| FMT(vowel/0_3) | |||
| endphoneme | |||
| phoneme e: | |||
| vowel flag1 starttype #e endtype #e | |||
| length 240 | |||
| FMT(vowel/e_6) | |||
| endphoneme | |||
| phoneme I | |||
| vowel flag1 starttype #i endtype #i | |||
| length 110 | |||
| FMT(vowel/ii) | |||
| endphoneme | |||
| phoneme A2 // letter 'я' | |||
| phoneme a // letter 'я' | |||
| vowel starttype #a endtype #a | |||
| length 180 | |||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||
| ChangePhoneme(a) | |||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN // front vowels | |||
| ChangePhoneme(&) | |||
| ENDIF | |||
| ChangePhoneme(A) | |||
| endphoneme | |||
| phoneme 0 | |||
| vowel starttype #o endtype #o | |||
| phoneme u2 // letter 'ю' | |||
| vowel starttype #u endtype #u | |||
| length 180 | |||
| FMT(vowel/0_3) | |||
| IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN | |||
| ChangePhoneme(y) | |||
| ELSE | |||
| ChangePhoneme(u) | |||
| ENDIF | |||
| endphoneme | |||
| phoneme I | |||
| vowel flag1 starttype #i endtype #i | |||
| phoneme e2 // 'e' at start of word | |||
| vowel starttype #@ endtype #@ | |||
| length 100 | |||
| FMT(vowel/ii) | |||
| IF nextVowel(isFlag2) THEN | |||
| ChangePhoneme(V) | |||
| ELSE | |||
| ChangePhoneme(e) | |||
| ENDIF | |||
| endphoneme | |||
| @@ -113,10 +125,39 @@ phoneme r | |||
| endphoneme | |||
| phoneme t | |||
| import_phoneme base/t[ | |||
| import_phoneme base2/t | |||
| endphoneme | |||
| phoneme d | |||
| import_phoneme base/d[ | |||
| endphoneme | |||
| phoneme k | |||
| vls vel stop | |||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN // back vowels | |||
| ChangePhoneme(q) | |||
| ENDIF | |||
| CALL base/k | |||
| endphoneme | |||
| phoneme G | |||
| import_phoneme base/Q" | |||
| endphoneme | |||
| phoneme g | |||
| vcd vel frc | |||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN | |||
| ChangePhoneme(G) | |||
| ELSE | |||
| ChangePhoneme(Q) | |||
| ENDIF | |||
| endphoneme | |||
| phoneme l | |||
| liquid | |||
| IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN | |||
| ChangePhoneme(L) | |||
| ENDIF | |||
| CALL base/l | |||
| endphoneme | |||
| @@ -576,6 +576,29 @@ phoneme l. | |||
| endphoneme | |||
| phoneme L/ | |||
| import_phoneme base/l/2 | |||
| endphoneme | |||
| phoneme L // velar L | |||
| liquid | |||
| lengthmod 7 | |||
| IF nextPh(isNotVowel) THEN | |||
| ChangePhoneme(L/) // use 'dark' [l] after a vowel | |||
| ENDIF | |||
| VowelEnding(ll/xll, -40) | |||
| IF prevPh(isPause) THEN | |||
| FMT(ll/_ll) | |||
| ENDIF | |||
| FMT(ll/ll) | |||
| endphoneme | |||
| phoneme w | |||
| liquid | |||
| @@ -71,6 +71,7 @@ typedef struct { | |||
| #define k_AND 1 | |||
| #define k_OR 2 | |||
| #define k_THEN 3 | |||
| #define k_NOT 4 | |||
| #define kTHISSTRESS 0x800 | |||
| @@ -90,6 +91,7 @@ static keywtab_t k_conditions[] = { | |||
| {"AND", 0, k_AND}, | |||
| {"OR", 0, k_OR}, | |||
| {"THEN", 0, k_THEN}, | |||
| {"NOT", 0, k_NOT}, | |||
| {"prevPh", tWHICH_PHONEME, 0}, | |||
| {"prevPhW", tWHICH_PHONEME, 5}, | |||
| {"thisPh", tWHICH_PHONEME, 1}, | |||
| @@ -2257,10 +2259,11 @@ int CompileIf(int elif) | |||
| int key; | |||
| int finish = 0; | |||
| int word = 0; | |||
| int word2 = 0; | |||
| int word2; | |||
| int data; | |||
| int bitmap; | |||
| int brackets; | |||
| int not_flag; | |||
| USHORT *prog_last_if = NULL; | |||
| then_count = 2; | |||
| @@ -2268,6 +2271,8 @@ int CompileIf(int elif) | |||
| while(!finish) | |||
| { | |||
| not_flag = 0; | |||
| word2 = 0; | |||
| if(prog_out >= prog_out_max) | |||
| { | |||
| error("Phoneme program too large", NULL); | |||
| @@ -2277,6 +2282,13 @@ int CompileIf(int elif) | |||
| if((key = NextItem(tCONDITION)) < 0) | |||
| error("Expected a condition, not '%s'",item_string); | |||
| if((item_type == 0) && (key == k_NOT)) | |||
| { | |||
| not_flag = 1; | |||
| if((key = NextItem(tCONDITION)) < 0) | |||
| error("Expected a condition, not '%s'",item_string); | |||
| } | |||
| if(item_type == tWHICH_PHONEME) | |||
| { | |||
| // prevPh(), thisPh(), nextPh(), next2Ph() etc | |||
| @@ -2331,7 +2343,9 @@ int CompileIf(int elif) | |||
| *prog_out++ = word | i_CONDITION; | |||
| if(word2 != 0) | |||
| *prog_out++ = word2; | |||
| *prog_out++ = word2; | |||
| if(not_flag) | |||
| *prog_out++ = i_NOT; | |||
| // expect AND, OR, THEN | |||
| switch(NextItem(tCONDITION)) | |||
| @@ -521,7 +521,7 @@ sprintf(outptr,"* "); | |||
| unsigned short ipa1[96] = { | |||
| 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | |||
| 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | |||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x4c,0x271,0x14b,0x254, | |||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254, | |||
| 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | |||
| 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | |||
| 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.46.24 11.Sep.12"; | |||
| const char *version_string = "1.46.25 14.Sep.12"; | |||
| const int version_phdata = 0x014624; | |||
| int option_device_number = -1; | |||
| @@ -929,6 +929,7 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ | |||
| int instn2; | |||
| int or_flag; | |||
| bool truth; | |||
| bool truth2; | |||
| int data; | |||
| int end_flag; | |||
| int ix; | |||
| @@ -1044,14 +1045,20 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ | |||
| while((instn & 0xe000) == 0x2000) | |||
| { | |||
| // process a sequence of conditions, using boolean accumulator | |||
| truth2 = InterpretCondition(tr, control, plist, prog, worddata); | |||
| prog += NumInstnWords(prog); | |||
| if(*prog == i_NOT) | |||
| { | |||
| truth2 = truth2 ^ 1; | |||
| prog++; | |||
| } | |||
| if(or_flag) | |||
| truth = (truth || InterpretCondition(tr, control, plist, prog, worddata)); | |||
| truth = truth || truth2; | |||
| else | |||
| truth = (truth && InterpretCondition(tr, control, plist, prog, worddata)); | |||
| truth = truth && truth2; | |||
| or_flag = instn & 0x1000; | |||
| prog += NumInstnWords(prog); | |||
| instn = *prog; | |||
| // instn = *(++prog); | |||
| } | |||
| if(truth == false) | |||
| @@ -273,6 +273,7 @@ typedef struct { | |||
| #define i_RETURN 0x0001 | |||
| #define i_CONTINUE 0x0002 | |||
| #define i_NOT 0x0003 | |||
| // Group 0 instrcutions with 8 bit operand. These values go into bits 8-15 of the instruction | |||
| #define i_CHANGE_PHONEME 0x01 | |||
| @@ -957,6 +957,8 @@ SetLengthMods(tr,3); // all equal | |||
| tr->langopts.stress_rule = 8; // ?? 1st syllable if it is heavy, else 2nd syllable | |||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||
| tr->langopts.numbers = NUM_OMIT_1_HUNDRED; | |||
| tr->langopts.break_numbers = 0x9999998; | |||
| tr->langopts.max_digits = 20; | |||
| } | |||
| break; | |||
| @@ -3206,7 +3206,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| break; | |||
| *pn++ = c; | |||
| if((--nx > 0) && (tr->langopts.break_numbers & (1 << nx))) | |||
| nx--; | |||
| if((nx > 0) && (tr->langopts.break_numbers & (1 << nx))) | |||
| { | |||
| memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers | |||