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 | |||