Browse Source

[1.46.25]

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-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
cd145d0251

+ 1
- 1
dictsource/de_rules View File

e) chen (_ C@n e) chen (_ C@n
ü) chen (_ C@n ü) chen (_ C@n


chs ks (_
chs ks
chance SA~s@ chance SA~s@
chara (kt k%ara chara (kt k%ara
_) ch (ic S _) ch (ic S

+ 15
- 14
dictsource/dict_phonemes View File

z Z z Z




Dictionary de_dict 2012-06-27
Dictionary de_dict 2012-09-13


3 @ @- a A A: aI aU 3 @ @- a A A: aI aU
A~ E E2 E: e: EI i I A~ E E2 E: e: EI i I
ts v x z ts v x z




Dictionary en_dict 2012-09-08
Dictionary en_dict 2012-09-14


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@
ts; v w x z Z Z; ts; v w x z Z Z;




Dictionary pt_dict 2012-09-11
Dictionary pt_dict 2012-09-14


& &/ &U~ &~ @ @- a A & &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU aI aU e E eI EI eU EU
o o- ong ou u u@ ua uai o o- ong ou u u@ ua uai
uei uo y y& y@ yE yi yu 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 Dictionary zhy_dict 2009-01-19
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 : ? b d f g h j
k l m n N p q r k l m n N p q r
Z Z; Z Z;




Dictionary ko_dict 2012-06-14
Dictionary ko_dict 2012-09-14


@ a e E i o u u- @ a e E i o u u-


* - ; b d dZ; g h * - ; 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

+ 1
- 0
dictsource/en_list View File

Keighli keIli Keighli keIli
Keanu kI'A:nu: Keanu kI'A:nu:
Kieran ki@r@n Kieran ki@r@n
Kris krIs
Laurence l0r@ns Laurence l0r@ns
Lawrence l0r@ns Lawrence l0r@ns
Leann li:'an Leann li:'an

+ 3
- 2
dictsource/es_rules View File

// translation rules for Spanish
// translation rules for Spanish
// This file is UTF-8 encoded // This file is UTF-8 encoded


// Conditional rules // Conditional rules


.group m .group m
m m m m
@) m (_ =m
_) mn (em n _) mn (em n
_) mb (A mb
_) mb (A mb




.group n .group n

+ 41
- 0
dictsource/ko_list View File

$textmode $textmode


// Number forms:
_0 ᅧᆼ _0 ᅧᆼ
_1 ᅵᆯ _1 ᅵᆯ
_2 ᅵ _2 ᅵ
_0M1 천 _0M1 천
_1M1 천 _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:
// 사ᅵ시ᅩᆺ // 사ᅵ시ᅩᆺ
고랫재 고랟째 고랫재 고랟째
귓밥 귇빱 귓밥 귇빱

+ 18
- 18
dictsource/ko_rules View File

// Order: ㄱㄲㅋ ㄷㄸㅌ ㅂㅃㅍ ㅅㅆㅈㅉㅊ ㄴㅁ ㄹ ㅎ // Order: ㄱㄲㅋ ㄷㄸㅌ ㅂㅃㅍ ㅅㅆㅈㅉㅊ ㄴㅁ ㄹ ㅎ


.group ᄀ // ㄱ .group ᄀ // ㄱ
g
_) ᄀ k
q
_) ᄀ g
L01) ᄀ k- L01) ᄀ k-
L03) ᄀ kh L03) ᄀ kh


.group ᄁ // ㄲ .group ᄁ // ㄲ
k-
q-


.group ᄏ // ㅋ .group ᄏ // ㅋ
ᄏ kh ᄏ kh


.group ᄃ // ㄷ .group ᄃ // ㄷ
ᄃ d ᄃ d
_) ᄃ t
_) ᄃ d
L01) ᄃ t- L01) ᄃ t-
L03) ᄃ th L03) ᄃ th


ᄑ ph ᄑ ph


.group ᄉ // ㅅ .group ᄉ // ㅅ
ᄉ s
|s
L01) ᄉ s- L01) ᄉ s-


.group ᄊ // ㅆ .group ᄊ // ㅆ
L03) ᄌ tSh; L03) ᄌ tSh;


.group ᄍ // ㅉ .group ᄍ // ㅉ
ᄍ tS;- // TODO: phoneme
'tS;- // TODO: phoneme


.group ᄎ // ㅊ .group ᄎ // ㅊ
ᄎ tSh; // TODO: phoneme
ᄎ tSh- // TODO: phoneme


.group ᄂ // ㄴ .group ᄂ // ㄴ
ᄂ n
;n


.group ᄆ // ㅁ .group ᄆ // ㅁ
ᄆ m
;m


.group ᄅ // ㄹ .group ᄅ // ㄹ
ᄅ * // TODO: alveolar flap [ɾ] ᄅ * // TODO: alveolar flap [ɾ]
ᄒ h // TODO: [ɦ] ᄒ h // TODO: [ɦ]
_) ᄒ h _) ᄒ h


// Medials
// Medials or vowels


.group ᅡ // ㅏ .group ᅡ // ㅏ
ᅡ a ᅡ a
// Order: ㄱㄳㄲㅋ ㄷㅌ ㅂㅍ ㅅㅆㅈㅊ ㄴㅁ ㅇㅎ ㄹ // Order: ㄱㄳㄲㅋ ㄷㅌ ㅂㅍ ㅅㅆㅈㅊ ㄴㅁ ㅇㅎ ㄹ


.group ᆨ // ㄱ .group ᆨ // ㄱ
k // TODO: final stops
q // It is actually q, as using k adds unnecessary sound.
ᆨᄒ kh ᆨᄒ kh


.group ᆪ // ㄳ .group ᆪ // ㄳ
ᆿ (A kh ᆿ (A kh


.group ᆮ // ㄷ .group ᆮ // ㄷ
ᆮ t
d- // Actually a soft D.
ᆮᄂ nn ᆮᄂ nn
ᆮᄆ mm ᆮᄆ mm
ᆮᄒ th ᆮᄒ th
ᆮ (L02 dZ; ᆮ (L02 dZ;


.group ᇀ // ㅌ .group ᇀ // ㅌ
ᇀ t
ᇀ t-
ᇀᄂ nn ᇀᄂ nn
ᇀᄆ mm ᇀᄆ mm
ᇀ (A th ᇀ (A th
ᇁ (A ph ᇁ (A ph


.group ᆺ // ㅅ .group ᆺ // ㅅ
ᆺ t
ᆺ t-
ᆺᄂ nn ᆺᄂ nn
ᆺᄆ mm ᆺᄆ mm
ᆺ (A s ᆺ (A s
ᆺᄒ s- ᆺᄒ s-


.group ᆻ // ㅆ .group ᆻ // ㅆ
ᆻ t
ᆻ t-
ᆻᄂ nn ᆻᄂ nn
ᆻᄆ mm ᆻᄆ mm
ᆻ (A s- ᆻ (A s-
ᆷ m ᆷ m


.group ᆼ // ㅇ .group ᆼ // ㅇ
ᆼ ng
ᆼ nN


.group ᇂ // ㅎ .group ᇂ // ㅎ
ᇂ t
ᇂ t-
ᇂ (A ᇂ (A


.group ᆯ // ㄹ .group ᆯ // ㄹ
l
rr
ᆯᄅ l ᆯᄅ l
ᆯ (A * ᆯ (A *



+ 21
- 1
dictsource/pt_list View File

// $alt changes stressed [e] or [o] phoneme to open [E] or [O] // $alt changes stressed [e] or [o] phoneme to open [E] or [O]
// $alt2 changes stressed [E] or [O] phoneme to close [e] or [o] // $alt2 changes stressed [E] or [O] phoneme to close [e] or [o]


aborto $alt $verb
acerto $alt2 $noun acerto $alt2 $noun
adereço $alt2 adereço $alt2
adore $alt adore $alt
amores $alt2 amores $alt2
anoiteça $alt2 anoiteça $alt2
anoiteço $alt2 anoiteço $alt2
apego $alt2
apreço $alt2 apreço $alt2
aperto $alt2 $noun aperto $alt2 $noun
apoio $alt $verb apoio $alt $verb
aprendeste $alt2 aprendeste $alt2
arremesso $alt2 $noun
assembleia $alt assembleia $alt
atrozes $alt atrozes $alt
austera $alt austera $alt
bolo $alt2 bolo $alt2
borboleta $alt2 borboleta $alt2
bordo $alt bordo $alt
bromelha $alt
cabeça $alt2 cabeça $alt2
cacete $alt2 cacete $alt2
cachorra $alt2 cachorra $alt2
camiseta $alt2 camiseta $alt2
cantora $alt2 cantora $alt2
caractere $alt
casebre $alt casebre $alt
catorze $alt2 catorze $alt2
cefaleia $alt cefaleia $alt
cresce $alt cresce $alt
crescem $alt crescem $alt
der $alt der $alt
desapego $alt2 $noun
desce $alt desce $alt
descem $alt descem $alt
descordo $alt
descova $alt2 descova $alt2
desespero $alt2 $noun
desfecho $alt2 desfecho $alt2
desprezo $alt $verb desprezo $alt $verb
deva $alt2 deva $alt2
dobro $alt2 $noun dobro $alt2 $noun
doce $alt2 doce $alt2
droga $alt droga $alt
emprego $alt2 $noun
endereço $alt2 endereço $alt2
enumerem $alt enumerem $alt
enredo $alt $verb
enterro $alt2 $noun
enxerto $alt2 $noun enxerto $alt2 $noun
epopeia $alt epopeia $alt
eritreia $alt eritreia $alt
esperma $alt esperma $alt
espeto $alt2 $noun espeto $alt2 $noun
espiroqueta $alt2 espiroqueta $alt2
enterro $alt2 $noun
esqueleto $alt2
estiverdes $alt estiverdes $alt
estiveres $alt estiveres $alt
estrofe $alt estrofe $alt
expeço $alt2 expeço $alt2
farofa $alt farofa $alt
febre $alt febre $alt
fera $alt
fere $alt fere $alt
ferem $alt ferem $alt
fezes $alt fezes $alt
fizerem $alt fizerem $alt
fizerdes $alt fizerdes $alt
fizeres $alt fizeres $alt
folga $alt
fogos $alt fogos $alt
fores $alt2 fores $alt2
forro $alt $verb forro $alt $verb
fossem $alt2 fossem $alt2
foste $alt2 foste $alt2
frevo $alt2 frevo $alt2
galera $alt
gameta $alt2 gameta $alt2
geleia $alt geleia $alt
gelo $alt $verb gelo $alt $verb
poxa p'oS& poxa p'oS&
preta $alt2 preta $alt2
preto $alt2 preto $alt2
primavera $alt
profere $alt profere $alt
proferem $alt proferem $alt
puder $alt puder $alt
puserdes $alt puserdes $alt
recomeço $alt2 $noun
recordo $alt recordo $alt
recorto $alt recorto $alt
rede $alt2 rede $alt2
sobe $alt sobe $alt
sobem $alt sobem $alt
soco $alt2 soco $alt2
soco $alt $verb
sofrem $alt sofrem $alt
sofre $alt sofre $alt
sofreste $alt2 sofreste $alt2
sogra $alt
sopre $alt sopre $alt
soprem $alt soprem $alt
sopro $alt $verb
sorvete $alt2 sorvete $alt2
sossego $alt2 $noun sossego $alt2 $noun
souber $alt souber $alt
sugerem $alt sugerem $alt
suor swOr suor swOr
tapete $alt2 tapete $alt2
tempero $alt $verb
teta $alt2 teta $alt2
tiver $alt tiver $alt
tiveres $alt tiveres $alt

+ 11
- 1
dictsource/pt_rules View File



// endings // endings
.L01 a am o .L01 a am o
.L02 a am e em o
.L02 a am e em o ue uem
.L03 a am .L03 a am


.group a .group a
_desapar) e (çL01_ e _desapar) e (çL01_ e
_esclar) e (çL01_ e _esclar) e (çL01_ e
_reapar) 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 //endsort


.group é .group é
?1 f) o (rmulá u // eg: formulário, formulários. ?1 f) o (rmulá u // eg: formulário, formulários.
?1 v) o (lt O ?1 v) o (lt O


//sort
_m) o (lhL02_ O _m) o (lhL02_ O
_ref) o (gL02_ O
c) o (rrL03_ o // escorra, incorra, corra, recorra c) o (rrL03_ o // escorra, incorra, corra, recorra
_m) o (rrL03_ o _m) o (rrL03_ o
_ap) oi (L03_ OI _ap) oi (L03_ OI
p) ostos (_ Ost=Us# // dispostos etc. p) ostos (_ Ost=Us# // dispostos etc.
//endsort


.group ô .group ô
ô ''o ô ''o

+ 4
- 4
dictsource/tt_list View File

щ SS;A щ SS;A
ъ kAlVnl,Vqbilges'e ъ kAlVnl,Vqbilges'e
ы V: ы V:
ь neS;kal,ekbilges'e
э e:
ь neS;k&l,ekbilges'e
э e|:
ю ju ю ju
я jA я jA


_5X ill'e _5X ill'e
_6X Altm'VS _6X Altm'VS
_7X Z;itm'eS _7X Z;itm'eS
_8X siks'an
_8X siks'&n
_9X tuks'An _9X tuks'An
_0C j'Wz _0C j'Wz
_0M1 m'eN _0M1 m'eN
_0M4 billi'on _0M4 billi'on
_1M4 billi'on _1M4 billi'on


_dpt bWt,en
_dpt _bWt,en

+ 10
- 6
dictsource/tt_rules View File

а A а A


.group ә .group ә
ә a
ә &
әе e: // 'әнкәен'


.group б .group б
б b б b
в w // [v] in Russian words в w // [v] in Russian words


.group г .group г
г g // may be [Q] or [r"] ??
г g // changes to [Q] or [Q"]


.group д .group д
д d д d


.group е .group е
_) е je2 // may be [je] [jV]
_) е je2 // changes to [je] or [jV]
е e е e


.group ё .group ё


.group и .group и
и i и i
A) и j


.group й .group й
й j й j


.group н .group н
н n н n
н (к N
// н (к N
н (г N н (г N
н (х N н (х N




.group у .group у
у u // or w у u // or w
A) у w


.group ү .group ү
ү y // or w ү y // or w
A) ү w


.group ф .group ф
ф f ф f
э e э e


.group ю .group ю
ю ju2 // or jy
ю ju2 // changes to ju or jy


.group я .group я
я jA2 // or ja
я ja // changes to jA or j&


.group .group
$ dolAR $ dolAR

+ 96
- 95
phsource/compile_report View File

83 phoneme tables 83 phoneme tables
new total 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 Data file Used by
b/b [b] base b/b [b] base
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [hæu] base
l/l@ [h] 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æu] base
l/la [h] 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æu] base
l/le [h] 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æu] base
l/li [h] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
l/l_i [l/3] base l/l_i [l/3] base
[l/] fr [l/] fr
[i] sq [i] sq
ll/ll [L] bg
ll/_ll [L] bg
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æu] base
l/lo [h] 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æu] base
l/lu [h] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
l/l_u [l/3] base l/l_u [l/3] base
[l/] fr [l/] fr
l/l_vi [l] vi l/l_vi [l] vi
ll/xll [L] bg
ll/xll [L] base
l/l_y [l/] fr l/l_y [l/] fr
l/tl [l] base l/tl [l] base
[l] fr [l] fr
[@] sq [@] sq
[V] sq [V] sq
[@/] sq [@/] sq
vowel/&_2 [a] tt
[V] tt
vowel/@_3 [@#] en vowel/@_3 [@#] en
[@] en-sc [@] en-sc
[I] en-sc [I] en-sc
[aa] zhy [aa] zhy
[a] hy [a] hy
[a] az [a] az
[A] tt
vowel/aa# [O] en-us vowel/aa# [O] en-us
[0] en-wi [0] en-wi
[a2] fi [a2] fi
[A1] et [A1] et
[A] nl [A] nl
[a:] is [a:] is
[A] tt
[a] ko [a] ko
vowel/aa_9 [a] fi vowel/aa_9 [a] fi
[a] et [a] et
vowel/e_5 [i] en-sc vowel/e_5 [i] en-sc
vowel/e_6 [e] ht vowel/e_6 [e] ht
[e] ak [e] ak
[e:] tt
vowel/e_7 [e:] et vowel/e_7 [e:] et
vowel/e_8 [E:] de vowel/e_8 [E:] de
[e] fr [e] fr
vowel/ee [E] en-n vowel/ee [E] en-n
[E] sv [E] sv
[e] ka [e] ka
[&] tt
vowel/e_e [E] en-sc vowel/e_e [E] en-sc
[E:] is [E:] is
vowel/ee# [E#] pl vowel/ee# [E#] pl
vowel/o_3 [oU] en-sc vowel/o_3 [oU] en-sc
[o] kk [o] kk
vowel/o-_3 [U] en-rp vowel/o-_3 [U] en-rp
[V] tt
vowel/o-_4 [o] ro vowel/o-_4 [o] ro
[o] am [o] am
vowel/o_5 [O] da vowel/o_5 [O] da

+ 1
- 14
phsource/ph_bulgarian View File

endphoneme endphoneme


phoneme L // velar L 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 endphoneme





+ 2
- 4
phsource/ph_english View File

liquid liquid
lengthmod 7 lengthmod 7


IF nextPhW(isVowel) THEN
ELSE
IF NOT nextPhW(isVowel) THEN
IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN
ChangePhoneme(l/2) ChangePhoneme(l/2)
ELSE ELSE
InsertPhoneme(I2) InsertPhoneme(I2)
ENDIF ENDIF


IF prevPh(isVoiced) THEN
ELSE
IF NOT prevPh(isVoiced) THEN
ChangePhoneme(s) ChangePhoneme(s)
ENDIF ENDIF
ChangePhoneme(z) ChangePhoneme(z)

+ 88
- 47
phsource/ph_tatar View File





// use 'flag1' for front vowels
// use 'flag1' for front vowels, 'flag2' for back vowels


phoneme i phoneme i
vowel flag1 starttype #i endtype #i vowel flag1 starttype #i endtype #i
endphoneme endphoneme


phoneme u phoneme u
vowel starttype #u endtype #u
vowel flag2 starttype #u endtype #u
length 180 length 180
FMT(vowel/u) FMT(vowel/u)
endphoneme 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 phoneme e
vowel flag1 starttype #@ endtype #@ vowel flag1 starttype #@ endtype #@
length 100
length 110
FMT(vowel/ii#) FMT(vowel/ii#)
endphoneme 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 phoneme W
vowel flag1 starttype #@ endtype #@ vowel flag1 starttype #@ endtype #@
length 100
length 110
FMT(vowel/oe) FMT(vowel/oe)
endphoneme endphoneme


phoneme o phoneme o
vowel starttype #o endtype #o
length 100
vowel flag2 starttype #o endtype #o
length 110
FMT(vowel/o_mid) FMT(vowel/o_mid)
endphoneme endphoneme


phoneme V phoneme V
vowel starttype #@ endtype #@
length 100
FMT(vowel/o-_3)
vowel flag2 starttype #@ endtype #@
length 110
ipa ɯ
FMT(vowel/@_2)
endphoneme endphoneme




phoneme a
vowel flag1 starttype #a endtype #a
phoneme &
vowel flag1 starttype #e endtype #e
length 180 length 180
FMT(vowel/&_2)
FMT(vowel/ee)
endphoneme endphoneme


phoneme A phoneme A
vowel starttype #a endtype #a
vowel flag2 starttype #a endtype #a
length 180 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 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 endphoneme


phoneme A2 // letter 'я'
phoneme a // letter 'я'
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 180 length 180
IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN
ChangePhoneme(a)
IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN // front vowels
ChangePhoneme(&)
ENDIF ENDIF
ChangePhoneme(A) ChangePhoneme(A)
endphoneme endphoneme


phoneme 0
vowel starttype #o endtype #o
phoneme u2 // letter 'ю'
vowel starttype #u endtype #u
length 180 length 180
FMT(vowel/0_3)
IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN
ChangePhoneme(y)
ELSE
ChangePhoneme(u)
ENDIF
endphoneme endphoneme



phoneme I
vowel flag1 starttype #i endtype #i
phoneme e2 // 'e' at start of word
vowel starttype #@ endtype #@
length 100 length 100
FMT(vowel/ii)
IF nextVowel(isFlag2) THEN
ChangePhoneme(V)
ELSE
ChangePhoneme(e)
ENDIF
endphoneme endphoneme




endphoneme endphoneme


phoneme t phoneme t
import_phoneme base/t[
import_phoneme base2/t
endphoneme endphoneme


phoneme d phoneme d
import_phoneme base/d[ import_phoneme base/d[
endphoneme 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

+ 23
- 0
phsource/phonemes View File

endphoneme 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 phoneme w
liquid liquid

+ 16
- 2
src/compiledata.cpp View File

#define k_AND 1 #define k_AND 1
#define k_OR 2 #define k_OR 2
#define k_THEN 3 #define k_THEN 3
#define k_NOT 4


#define kTHISSTRESS 0x800 #define kTHISSTRESS 0x800


{"AND", 0, k_AND}, {"AND", 0, k_AND},
{"OR", 0, k_OR}, {"OR", 0, k_OR},
{"THEN", 0, k_THEN}, {"THEN", 0, k_THEN},
{"NOT", 0, k_NOT},
{"prevPh", tWHICH_PHONEME, 0}, {"prevPh", tWHICH_PHONEME, 0},
{"prevPhW", tWHICH_PHONEME, 5}, {"prevPhW", tWHICH_PHONEME, 5},
{"thisPh", tWHICH_PHONEME, 1}, {"thisPh", tWHICH_PHONEME, 1},
int key; int key;
int finish = 0; int finish = 0;
int word = 0; int word = 0;
int word2 = 0;
int word2;
int data; int data;
int bitmap; int bitmap;
int brackets; int brackets;
int not_flag;
USHORT *prog_last_if = NULL; USHORT *prog_last_if = NULL;


then_count = 2; then_count = 2;


while(!finish) while(!finish)
{ {
not_flag = 0;
word2 = 0;
if(prog_out >= prog_out_max) if(prog_out >= prog_out_max)
{ {
error("Phoneme program too large", NULL); error("Phoneme program too large", NULL);
if((key = NextItem(tCONDITION)) < 0) if((key = NextItem(tCONDITION)) < 0)
error("Expected a condition, not '%s'",item_string); 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) if(item_type == tWHICH_PHONEME)
{ {
// prevPh(), thisPh(), nextPh(), next2Ph() etc // prevPh(), thisPh(), nextPh(), next2Ph() etc
*prog_out++ = word | i_CONDITION; *prog_out++ = word | i_CONDITION;


if(word2 != 0) if(word2 != 0)
*prog_out++ = word2;
*prog_out++ = word2;
if(not_flag)
*prog_out++ = i_NOT;


// expect AND, OR, THEN // expect AND, OR, THEN
switch(NextItem(tCONDITION)) switch(NextItem(tCONDITION))

+ 1
- 1
src/dictionary.cpp View File

unsigned short ipa1[96] = { unsigned short ipa1[96] = {
0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, 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, 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, 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, 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 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f

+ 12
- 5
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.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; const int version_phdata = 0x014624;


int option_device_number = -1; int option_device_number = -1;
int instn2; int instn2;
int or_flag; int or_flag;
bool truth; bool truth;
bool truth2;
int data; int data;
int end_flag; int end_flag;
int ix; int ix;
while((instn & 0xe000) == 0x2000) while((instn & 0xe000) == 0x2000)
{ {
// process a sequence of conditions, using boolean accumulator // 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) if(or_flag)
truth = (truth || InterpretCondition(tr, control, plist, prog, worddata));
truth = truth || truth2;
else else
truth = (truth && InterpretCondition(tr, control, plist, prog, worddata));
truth = truth && truth2;
or_flag = instn & 0x1000; or_flag = instn & 0x1000;
prog += NumInstnWords(prog);
instn = *prog; instn = *prog;
// instn = *(++prog);
} }


if(truth == false) if(truth == false)

+ 1
- 0
src/synthesize.h View File



#define i_RETURN 0x0001 #define i_RETURN 0x0001
#define i_CONTINUE 0x0002 #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 // Group 0 instrcutions with 8 bit operand. These values go into bits 8-15 of the instruction
#define i_CHANGE_PHONEME 0x01 #define i_CHANGE_PHONEME 0x01

+ 2
- 0
src/tr_languages.cpp View File

tr->langopts.stress_rule = 8; // ?? 1st syllable if it is heavy, else 2nd syllable 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.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.numbers = NUM_OMIT_1_HUNDRED; tr->langopts.numbers = NUM_OMIT_1_HUNDRED;
tr->langopts.break_numbers = 0x9999998;
tr->langopts.max_digits = 20;
} }
break; break;



+ 2
- 1
src/translate.cpp View File

break; break;


*pn++ = c; *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 memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers



Loading…
Cancel
Save