Browse Source

[1.46.31]

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

+ 74
- 0
dictsource/an_list View File

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



+ 206
- 0
dictsource/an_rules View File

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


+ 29
- 8
dictsource/dict_phonemes View File

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

+ 3
- 0
dictsource/en_list View File

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

+ 2
- 1
dictsource/en_rules View File

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

+ 5706
- 0
dictsource/fa_list
File diff suppressed because it is too large
View File


+ 5682
- 0
dictsource/fa_rules
File diff suppressed because it is too large
View File


+ 10
- 11
dictsource/ne_rules View File

९_) } 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.

+ 17
- 0
dictsource/pt_list View File

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

+ 12
- 2
dictsource/pt_rules View File

_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

+ 4
- 4
dictsource/sl_list View File



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

+ 1
- 2
dictsource/sl_rules View File

.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





+ 3
- 5
dictsource/ta_rules View File

.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

+ 10
- 7
phsource/compile_report View File

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

+ 24
- 0
phsource/ph_aragon View File


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


+ 63
- 0
phsource/ph_farsi View File


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


+ 62
- 0
phsource/ph_slovenian View File


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

+ 3
- 0
phsource/phonemes View File

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



+ 4
- 1
platforms/windows/make_espeak.iss View File

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

+ 27
- 7
src/dictionary.cpp View File

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;

+ 2
- 2
src/synthdata.cpp View File

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

+ 52
- 3
src/tr_languages.cpp View File

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

+ 1
- 0
src/translate.h View File

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

+ 3
- 2
src/voices.cpp View File





#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 *),

Loading…
Cancel
Save