Lang=hr, transliterate Cyrillic characters to Latin using TranslateChar().

TranslateChar() can now substitute a character by two replacement characters.
Lang=cs, more difference between long and short vowels, less length differnence beteeen stressed and unstressed syllables.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@7 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2007-05-10 15:11:22 +00:00
parent 4a11084bd5
commit e24c5b339d
52 changed files with 448 additions and 198 deletions
+4 -1
View File
@@ -980,6 +980,7 @@ iconbar aIk0nbA@
imagine I2madZI2n
impedance I2mpi:d@ns
imperative I2mpEr@tIv
impi $1
imprecise I2mprIs'aIs
inappropriate ,Ina2proUpri@t
incense Ins'Ens $verb
@@ -1461,6 +1462,7 @@ rearm ri:'A@m
rebel rI2bEl $verb
recall ri:kO:l
recall $2 $verb
recalled rI2kO:ld
recess ri:sEs
recipe rEsIpi:
reciprocal rI2sIpr@k@L
@@ -1558,7 +1560,6 @@ saline seIlaIn
san ,san
sardine $2
satan seIt@n
satellite sat@laIt
saucepan sO:sp@n
saudi saUdI2
says sEz
@@ -1906,6 +1907,7 @@ Cheadle tSi:d@L
Cheshire tSES3
Chiswick tSIzIk
Dolgellau d0lg'EClaI
Dover doUv3
Dumfries dVmfr'i:s
Dyfed d'VvId
Edinburgh EdInb%Vr@
@@ -2436,6 +2438,7 @@ might ,maIt $verbf $strend2 $only
(might have to) ,maIth'avt@5 $verbf $atend
have %hav $pastf $only
haves havz
(have been) %hav%bIn $pastf
(have to) havtU $atend
has %ha2z $pastf $only
+6 -4
View File
@@ -967,6 +967,7 @@
_it_separ) ate (_ @t
par) ates (_ eIt|s
@) ated (++_ eItId
_s) atel (l at@
@) ati (_ 'A:tI
at (im_ 'eIt
@) ating (++_ eItIN
@@ -2603,6 +2604,7 @@
ise (_ aIz
iser (_ aIz3
@) ism (_$3de Iz@m
an) ism (_$3d Iz@m
@iB) ism (_$3d Iz@m
is (er+_ aIz
iz (er_ aIz
@@ -3682,6 +3684,7 @@
ch) or (d O@
l) or (d O@
_m) or O@
_m) orr 0r
_m) ore o@
nd) or (_ 3
nt) or (_ o@
@@ -5040,8 +5043,8 @@
'll (_$3 @L
.group 0xce
// $group (++ _^_EL
.group 0xce // Greek letters
// 0xce is the first byte of the utf-8 code for these characters
α 'alf@_
ά 'alf@_
@@ -5063,8 +5066,7 @@
ξ ks'aI_
ο oUm'aIkr0n_
.group 0xcf
// $group (++ _^_EL
.group 0xcf // Greek letters
π p'aI_
ρ r'oU_
+44
View File
@@ -123,6 +123,11 @@
ó o:
ú u:
ä _^_DE // use German voice
ö _^_DE
ü _^_DE
ß _^_DE
$ dol&r
. totSk&
@@ -143,3 +148,42 @@
= (==
=) = (=
==) = (_ _::
.group 0xce // Greek letters
α alf&_
ά alf&_||tonos
β b'et&_
γ g&m&_
δ delt&_
ε Epsilon
έ Epsilon||tonos
ζ zet&_
η et&_
ή et&_||tonos
θ txet&_
ι jot&_
ί jot&_||tonos
κ k&p&_
λ l&md&_
μ mi_
ν ni_
ξ k_si_
ο omi_k@-*on_
.group 0xcf // Greek letters
π pi_
ρ @-*o_
σ sigm&_
ς grtSko_||z&vrS@no_||sigm&_
τ t&U_
υ grtSki_||IpsIlon_
ύ grtSki||IpsIlon_||tonos
φ fi_
χ h_i
ψ pss'I
ω omeg&_
ώ omeg&_||tonos
ό omi_k@-*on_||tonos
+107 -40
View File
@@ -1,4 +1,4 @@
// This file in UTF8 encoded
// Options
@@ -93,32 +93,32 @@ _¿ ,iNtex,ogas,&U~,iNvertS'id&
_5 s'iNku
?1_6 s'eIS
?2_6 s'eIs
?1_7 s'Et
?1_7 s'Ety
?2_7 s'EtSi
_8 'oItu
?1_9 n'Ov
?1_9 n'Ovy
?2_9 n'Ovi
?1_10 d'ES
?2_10 d'Ez
?1_11 'oNz
?1_11 'oNzy
?2_11 'oNzi
?1_12 d'oz
?1_12 d'ozy
?2_12 d'ozi
?1_13 t:r'ez
?1_13 t:r'ezy
?2_13 t@-*'ezi
?1_14 k&t'Orz
?1_14 k&t'orzy
?2_14 kat'Orzi
?1_15 k'iNz
?1_15 k'iNzy
?2_15 k'iNzi
?1_16 dyz&s'eiS
?2_16 d,ezes'eIs
?1_17 dyz&s'Et
?1_17 dyz&s'Ety
?2_17 d,ezes'EtSi
?1_18 dyz'Oitu
?2_18 dez'oItu
?1_19 dyz&n'Ov
?1_19 dyz&n'Ovy
?2_19 dezen'Ovi
?1_2X v'iNt
?1_2X v'iNty
?2_2X v'iNtSi
?1_3X tr'iNt&
?2_3X t@-*'iNt&
@@ -130,7 +130,8 @@ _5X siNkw'eINt&
?1_7X syt'eINt&
?2_7X set'eINt&
_8X oIt'eINt&
_9X nov'eINt&
?1 _9X nuv'eINt&
?2 _9X nov'eINt&
_1C0 s'eIN
?1_0C s'eINtuS
?2_0C s'eINtuz
@@ -163,25 +164,42 @@ _0Z3 mil'Ezim& // 1000ths
// ABBREVIATIONS
//**************
aapp $abbrev
abadv $abbrev
abc $abbrev
a.c 'as'e
adsl $abbrev
ae $abbrev
aids $abbrev
apedv $abbrev
?1 apedv ,a,pe,,E,de've
avc $abbrev
bios b'i,OS
d.c d,es'e
cne $abbrev
cpu $abbrev
//?1 cpu ,se,pe'u
?1 cpuc ,se,pe,u'se
cpuc $abbrev
dpoc $abbrev
ecg $abbrev
edp $abbrev
?1 etc ,ets'Et:r&
?2 etc ,ets'Ete*&
?2 (http ://) ag,atete'pe_
hiv $abbrev
(http ://) ag,atete'pe_
icc $abbrev
IEEE $abbrev // Institute of Electrical and Electronics Engineers
iss $abbrev
jpeg Z,Ot&p'Eg
mpeg ,Emp'Eg
nba $abbrev
nvda $abbrev
oms $abbrev
omt $abbrev
osi $abbrev
?1 sa ,Esj'a
?1 sos ,Esj,O'Es
ue $abbrev
unts $abbrev
unts $abbrev
?1 usb ,u,Esy'be
?2 usb $abbrev
usb $abbrev
// articles
@@ -539,66 +557,114 @@ era 'Er&
abacaxi abakaSi
axé aSE
elixir eliSir
?1 fixe fiSe
?1 fixe f'iSy
lixo l'iSu
roxo x'oSu
// foreign words
?1 alt 'alt
?1 bacalhau b,&k&lj'aU
?1 caps k'aps
ctrl k'oNt:r,Ol
?1 delete dil'i:t
?1 design diz'aIn
?1 down d'aUn
?1 download d'aUnloUd
?1 back _^_EN
?1 blind _^_EN
?1 braille b:r'aily
?1 cancel _^_EN
?1 caps _^_EN
?1 ctrl k'oNt:r,Ol
?2 ctrl k'oNt:r,OU
?1 delete _^_EN
?1 design _^_EN
?1 down _^_EN
?1 download _^_EN
?1 end _^_EN
?1 escape Sk'eIpy
?1 eyes w'aIz
?1 eyes _^_EN
?1 gmail g,em'eIl
?1 google g'u:g&l
hardware h'ardwe@
?1 kernel k'ErnEl
?1 hardware _^_EN
?2hardware h'ardwe@
?1 home _^_EN
?1 hotmail _^_EN
?1 install _^_EN
?1 kernel k'Ern,El
?2 kernel k'ErnEU
?1 line l'aIn
?1 line _^_EN
layout l'eI,aUt
?1 lock _^_EN
?1 mail meIl
?1 mail _^_EN
?2 mail m'eja
?1 menu mEnU
?1 menu menu
?1 next _^_EN
ok Ok'eI
?1 pause p'au:z
?1 page p'eIdZ
?1 page _^_EN
?1 scanner _^_EN
?1 shift S'ift
?1 scroll _^_EN
site s'aIt
software s'Oftwe@
?1 up _^_EN
?1 upload _^_EN
?1 space _^_EN
?1 sporting sp'Ort,ing
?1 tab t'ab
?1 up _^_EN
?1 upload _^_EN
?1 window _^_EN
?1 yes j'Es
?1 yahoo _^_EN
?1 yes _^_EN
// common person names
alan 'al@n
louis _^_FR
// foreign product names
?1 access 'aksEs
debian d'Ebj&~N
?1 access _^_EN
?1 adobe &d'Oby
?1 debian _^_EN
?2 debian d'Ebj&~N
?1 excel _^_EN
?1 express _^_EN
espeak isp'i:k
espeakedit isp'i:k,Ed,it
firefox f'ai@foks
?1 hal hal
?1 fedora _^_EN
?1 firefox _^_EN
?2 firefox f'ai@foks
?1 front _^_EN
?1 hal _^_EN
?1 jaws dZ'au:z
?1 linux l,in'uks
?2 linux l'inuks
?1 live _^_EN
?1 maker _^_EN
?1 media _^_EN
?1 messenger _^_EN
?1 microsoft m,ik:r'os,Oft
?1 movie _^_EN
?1 nero n'E:ru
?1 office _^_EN
openoffice 'opeIN|'Ofis
?1 outlook _^_EN
?1 paint p'aint
?1 player _^_EN
?1 point _^_EN
?1 power _^_EN
?1 product _^_EN
?1 Publisher _^_EN
?1 reader _^_EN
?1 setup _^_EN
?1 scout _^_EN // Nero Scout
?1 skype _^_EN
slackware sl'akwe@
?1 smart _^_EN // nero StartSmart
speak spi:k
suse z'u:ts@
?1 start _^_EN // nero StartSmart
?1 time _^_EN // nero show time
ubuntu ub'untu
?1 unix ,u:n'iks
?2 unix j'u:niks
?1 windows _^_EN
?1 WinRAR _^_EN
@@ -650,3 +716,4 @@ vogel f'o:g@l
volkmann f'Olkman
+18 -18
View File
@@ -1,4 +1,4 @@
// translation rules Brazilian
// translation rules Brazilian
// This file is UTF-8 encoded
// Options
@@ -161,17 +161,17 @@
?1 C) ecç 'E's // eg: selecção, etc...
?1 C) e (ã i // leão, panteão, etc.
?1 C) e (a i // oceano, etc.
?1 _C) e (CACA y //definições.
?1 _C) e (CCACAr y // desligar.
?1 C) e (CCAC y // eg: deslocamento, etc...
?1 _C) e (CKAr y // fechar
?1 _C) e (CCACAr y // terminar.
?1 _C) e (CACC y // recicla, reciclagem, etc...
?1 _f) e (rrament y // ferramenta, ferramentas.
?1 _d) e (fini y //definições.
?1 _d) e (slig y // desligar.
?1 _d) e (sloc y // eg: deslocamento, etc...
?1 _f) e (ch y // fechar
?1 _t) e (rmin y // terminar.
?1 _r) e (cicl y // recicla, reciclagem, etc...
?1 _f) e (rramenta y // ferramenta, ferramentas.
?1 _p) e (squ y // pesquisar
?1 hip) e (r ,E // eg: hiper
?1 sup) e (r ,E // super
?1 int) e (rC 'E // Interno
?1 int) e (rr E // eg: Enterra
?1 int) e (rn ,E // Interno
?1 n) e (t ,E // eg: net
?1 e (l_ ,E // eg: possível, manuel, etc...
@@ -218,11 +218,11 @@
gu (Y g
?1 guen (C gw'eIN // aguenta, etc.
?1 n) gu (A gw // eg: língua, etc.
?1 gu (ém_ g // eg: alguém, ninguém, etc...
.group h
?1 _) h (_ &g'a
?2 _) h (_ ag'a
_) h (_ ag'a
h // silent
@@ -319,7 +319,7 @@
n n
n (n
nh n^
?1 A) nn n //drop “n” in European Portuguese (eg: connosco).
?1 A) nn n //drop “n” (eg: connosco).
.group o
@@ -341,11 +341,10 @@
?2 ol (K Ow
?2 olh olj
?1 om (_ 'om
?2 om (_ oN
om (_ oN
o (ma_ o
?1 om (C 'om
?2 om (C om
om (C om
on (K oN
o (na_ o
onh on^
@@ -409,7 +408,7 @@
?1 A) que (nA_ ke // pequeno, etc.
?1 C) quê (_ ke // porquê, etc.
?1 que (l ke // aquele, etc.
?1 que (r_ ke // qualquer, etc.
?1 que (r_ kE // qualquer, etc.
?1 qui ki // quinta, esquilo, etc.
?1 _) quind kuind // quindecágono, etc.
?1 tran) qui kui // tranquilo, etc.
@@ -606,3 +605,4 @@
+1 -1
View File
@@ -285,7 +285,7 @@
.group л
_) л (_ El^
л (_ l^
// л (_ l^ // rule removed
л (Y l^
л l
+85 -52
View File
@@ -8,53 +8,65 @@
a (vb A:
a (vd A:
a (va a
a (rt_ A:
a (rt_ A:
a (vg A:
a (r_ a
a (r_ a
b) a (r_ A:
bb) a (r_ a
p)a (d_ a
b) a (r_ A:
bb) a (r_ a
a (CC a
a (_ a
&) a (_ a2
a (re_ a
a (rn A:
a (rna a
l) a (rs A:
a (re_ a
a (rn A:
a (rna a
l) a (rs A:
k) a (ta ,a
m) a (j a
om) a (t A:
st) a (rt A:
gr) a (m a
a (x a
p) a (nel a
k) a (n a
j) a (n a
r) a (de a
eg) a (n a
er) a (d a
er) a (t a
d) a (n_ a
m) a (j a
om) a (t A:
_m) a (ter a
st) a (rt A:
gr) a (m a
a (x a
p) a (nel a
a (uto a
k) a (n a
n) a (d a
j) a (n a
r) a (de a
eg) a (n a
er) a (d a
er) a (t a
d) a (n_ a
st) a (t_ a
tot) a (l 'A:
v) a (ld A:
v) a (rd A:
sm) a (rt A:
r) a (t A:
s) a (maC a
ng) a (d a
m) a (n a
t) a (t A:
ent) a (r A:
a (t_ a
a (st a
s) a (s_ a
s) a (d_ a
er) a (t_ a
åg) a (n a
t) a (n_ a
el) a (d a
nn) a (n a
mell) a (n a
arbet arbe:t
v) a (ld A:
v) a (rd A:
sm) a (rt A:
r) a (t A:
s) a (maC a
ng) a (d a
m) a (n a
t) a (t A:
ent) a (r A:
a (t_ a
ast ast
s) a (s_ a
s) a (d_ a
er) a (t_ a
åg) a (n a
t) a (n_ a
el) a (d a
nn) a (n a
mell) a (n a
_sk) a (d A:
ansv) a (r A:
ll) a (de a
_v) a (nl A:
d) a (d_ a
tt) a (C_ a
dd) a (C_ a
arbet arbe:t
.group b
b b
@@ -78,7 +90,11 @@
.group d
d d
d (d
dagen dA:gEn
dagen dA:gEn
disken dIskEn
djup j'u-p
djur j'u-r
dum d8m
.group e
e e:
@@ -91,7 +107,9 @@
d) e (lv e:
d) e (ln e:
d) e (lt e:
d) e (bat E
s) e (kund E
ch) e (f E:
e (ta E
e (x E
&) e (_ E
@@ -113,6 +131,9 @@
nyh) e (t e:
r) e (sul E
r) e (sur E
r) e (dak E
v) e (ta e:
r) e (ta e:
pr) e (n E
_) e (tik E
r) e (ce E
@@ -140,6 +161,7 @@ espeak _^_EN
h h
h (h
hj j
hög hY:g
heading _^_EN
.group i
@@ -172,9 +194,9 @@ espeak _^_EN
_) k (ö S;
k (öp S;
karta kA:rta
kategori katEg,u:ri:
kalend kal'End
känsl SEnsl
kategori katEg,u:ri:
kalend kal'End
känsl S;Ensl
.group l
l l
@@ -185,12 +207,17 @@ espeak _^_EN
.group m
m m
m (m
menu _^_EN
människ m'EnIsx,
medlem m'e:dlEm
maga maga
menu _^_EN
människ m'EnIsx,
medlem m'e:dlEm
maga maga
meny mEn'y:
minimera mIni:m'e:ra2
maximera maksi:m'e:ra2
motor m'u:tOr
motorer m'Otu:rEr
model mOd'El
musik mu-s'i:k
.group n
n n
@@ -198,7 +225,8 @@ espeak _^_EN
ng N
n (k N
network _^_EN
normal nOrmA:l
normal nOrmA:l
natur n'at'u-r
.group o
o u:
@@ -229,11 +257,14 @@ espeak _^_EN
och 'Ok
k) o (ns O
pr) o (cent O
p) o (lis O
p) o (pu O
.group p
p p
p (p
paket pak'e:t
parentes par@nt,e:s
.group q
q k
@@ -295,6 +326,7 @@ espeak _^_EN
u (n 8
u (tl u-
r) u (m_ 8:
utmärk 'u-tm@rk
.group v
v v
@@ -322,7 +354,8 @@ espeak _^_EN
å o:
å (CC O
tr) å (d 'o:
v) å (rt 'o:
v) å (r 'o:
h) å (r 'o:
.group ä
ä E:
+2 -2
View File
@@ -20,7 +20,7 @@
pl 17 102
sk 22 117
cs 6 118
hr 15 121
hr 16 121
ru 36 119
it 28 111
es 7 111
@@ -460,7 +460,7 @@
1 vowel/oe_4 sv
2 vowel/o_mid hu ro
8 vowel/oo en_sc de eo es el sv no zh_yue
10 vowel/oo_1 en_n en_rp en_wm af fi sk vi
11 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi
3 vowel/oo_2 en_sc cy cs
1 vowel/oo_3 af
2 vowel/oo_4 hi pl
+2
View File
@@ -46,4 +46,6 @@
0 n^ NULL 0 N
0 j NULL 0 y
0 S NULL 0 sh
0 s. NULL 0 sh
+1
View File
@@ -19,6 +19,7 @@
0 S; NULL 0 C
0 sx NULL 0 S
0 S NULL 0 rs
0 s. NULL 0 rs
0 u- NULL 0 }:
0 Y: NULL 0 2:
0 y NULL 0 Y
+10 -3
View File
@@ -13,7 +13,7 @@ endphoneme
phoneme a
vowel starttype (a) endtype (a)
length 140
length 150
formants vowel/a
reduceto & 4
endphoneme
@@ -35,14 +35,14 @@ endphoneme
phoneme E
vowel starttype (e) endtype (e)
length 130
length 140
formants vowel/e_mid
endphoneme
phoneme e
vowel starttype (e) endtype (e)
length 130
length 140
formants vowel/e
endphoneme
@@ -64,6 +64,13 @@ phoneme I
endphoneme
phoneme o
vowel starttype (o) endtype (o)
length 140
formants vowel/oo_1
endphoneme
phoneme u
vowel starttype (u) endtype (u)
length 130
+2 -2
View File
@@ -1,6 +1,6 @@
phoneme e
vowel starttype (e) endtype (e)
length 130
length 120
formants vowel/e_mid
endphoneme
@@ -12,7 +12,7 @@ endphoneme
phoneme o
vowel starttype (o) endtype (o)
length 130
length 120
formants vowel/oo_2
endphoneme
+9 -9
View File
@@ -1,39 +1,39 @@
phoneme i
vowel starttype (i) endtype (i)
length 120
length 110
formants vowel/ii_3
linkout ;
endphoneme
phoneme i:
vowel starttype (i) endtype (i)
length 230
length 260
formants vowel/i_3
linkout ;
endphoneme
phoneme &
vowel starttype (e) endtype (e)
length 130
length 120
formants vowel/ee_6
endphoneme
phoneme e
vowel starttype (e) endtype (e)
length 130
length 120
formants vowel/e_mid2
endphoneme
phoneme e:
vowel starttype (e) endtype (e)
length 280
length 290
formants vowel/e_mid
endphoneme
phoneme a
vowel starttype (a) endtype (a)
length 140
length 120
formants vowel/a
endphoneme
@@ -45,19 +45,19 @@ endphoneme
phoneme o
vowel starttype (o) endtype (o)
length 130
length 120
formants vowel/oo_1
endphoneme
phoneme o:
vowel starttype (o) endtype (o)
length 280
length 290
formants vowel/oo_1
endphoneme
phoneme u
vowel starttype (u) endtype (u)
length 130
length 110
formants vowel/u_2
endphoneme
-1
View File
@@ -1174,7 +1174,6 @@ include ph_swedish
phonemetable no base
include ph_norwegian
phonemetable vi base
include ph_vi
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

+2 -2
View File
@@ -11,7 +11,7 @@ U 407 1500 2160 392 1500 2160
a 784 1180 2680 768 1220 2680
a2 760 1420 2600 736 1380 2540
aa 784 1180 2680 768 1220 2680
E 518 1882 2540 581 1810 2540
E 518 1920 2540 581 1810 2540
I 504 1700 2560 504 1700 2560
i 520 2000 2540 520 2000 2540
0 566 890 2641 566 890 2641
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ IR 544 1340 2460 616 1190 2450
VR 648 1180 2595 640 1140 2460
A~ 640 1120 2640 640 1120 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 480 839 2760 480 839 2780
W~ 694 1360 2624 694 1360 2624
y: 280 1720 2340 280 1720 2340
Y: 448 1520 2420 463 1520 2400
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+2 -2
View File
@@ -12,8 +12,8 @@ u 320 740 2400 320 740 2400
u1 344 800 2360 344 800 2360
U 368 800 2660 368 800 2660
y 280 1720 2340 280 1720 2340
ai 664 1040 2800 312 2240 2940
&i 744 1540 2500 355 2222 2720
ai 688 1064 2806 312 2300 2820
&i 744 1540 2500 328 2280 2720
oi 545 780 2780 310 2002 2300
ei 547 1855 2536 320 2300 2740
Yi 448 1520 2420 355 2222 2720
Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

+4 -4
View File
@@ -4,16 +4,16 @@ a 925 1342 2700 925 1342 2700
e 464 1980 2520 464 1980 2520
E 647 1778 2530 647 1778 2530
i 280 2280 2820 200 2398 2820
o 454 812 2559 432 824 2520
O 670 946 2620 630 902 2700
o 464 820 2559 440 820 2600
O 480 800 2700 480 800 2700
u 320 860 2360 320 860 2360
y 272 1820 2280 272 1800 2260
Y 448 1520 2420 463 1520 2400
W 525 1320 2200 525 1320 2200
w^i 280 1832 2436 200 2398 2820
A~ 640 1120 2640 640 1120 2640
A~ 600 1060 2640 600 1060 2640
E~ 694 1360 2624 694 1360 2624
O~ 512 880 2624 512 880 2620
O~ 381 700 2960 381 700 2960
W~ 694 1360 2624 694 1360 2624
I 280 2280 2820 200 2398 2820
U 320 860 2360 320 860 2360
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

+4 -4
View File
@@ -4,16 +4,16 @@ a 925 1342 2700 925 1342 2700
e 464 1980 2520 464 1980 2520
E 584 1820 2560 584 1820 2560
i 280 2280 2820 200 2398 2820
o 454 812 2559 432 824 2520
O 670 946 2620 630 902 2700
o 464 820 2559 440 820 2600
O 480 800 2700 480 800 2700
u 320 740 2400 320 740 2400
y 272 1820 2280 272 1800 2260
Y 448 1520 2420 463 1520 2400
W 525 1320 2200 525 1320 2200
w^i 280 1832 2436 200 2398 2820
A~ 640 1120 2640 640 1120 2640
A~ 600 1060 2640 600 1060 2640
E~ 672 1660 2624 672 1660 2624
O~ 512 880 2624 512 880 2620
O~ 381 700 2960 381 700 2960
W~ 694 1360 2624 694 1360 2624
I 384 2030 2610 384 2030 2610
U 368 880 2440 368 900 2440
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+1 -1
View File
@@ -26,5 +26,5 @@ U 368 880 2440 368 900 2440
u: 320 740 2400 320 740 2400
u2: 320 860 2360 320 860 2360
l- 352 1240 3020 352 1200 3020
aI 744 1540 2500 355 2222 2720
aI 744 1540 2500 328 2280 2720
aU 724 1130 2760 472 780 2500
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

+1
View File
@@ -24,3 +24,4 @@ ja 485 1672 2340 795 1122 2580
V# 659 1278 2583 659 1278 2583
Y 452 1709 2460 452 1709 2460
a 925 1320 2700 896 1340 2660
a# 658 1408 2460 658 1408 2460
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

+1 -1
View File
@@ -7,7 +7,7 @@ e 464 1980 2520 464 1980 2520
i 296 2220 2820 200 2398 2820
O 664 1000 2731 664 1020 2731
o 512 860 2648 512 860 2648
u 392 740 2760 392 720 2760
u 392 736 2760 392 736 2760
y 448 1520 2420 463 1520 2400
@: 686 1280 2595 686 1280 2595
aI 672 1460 2430 400 2000 2700
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

+47 -22
View File
@@ -876,6 +876,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
int final_ph;
int mnem;
int post_tonic;
int opt_length;
unsigned char vowel_stress[N_WORD_PHONEMES/2];
char syllable_type[N_WORD_PHONEMES/2];
@@ -1143,19 +1144,20 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
tonic = langopts.unstressed_wd2; /* more than one syllable, used secondary stress as the main stress */
}
max_stress = 0;
max_stress_posn = 0;
for(v=1; v<vowel_count; v++)
{
if(vowel_stress[v] >= max_stress)
{
max_stress = vowel_stress[v];
max_stress_posn = v;
}
}
if(tonic >= 0)
{
/* find position of highest stress, and replace it by 'tonic' */
max_stress = 0;
max_stress_posn = 0;
for(v=1; v<vowel_count; v++)
{
if(vowel_stress[v] >= max_stress)
{
max_stress = vowel_stress[v];
max_stress_posn = v;
}
}
/* don't disturb an explicitly set stress by 'unstress-at-end' flag */
if((tonic > max_stress) || (max_stress <= 4))
@@ -1303,20 +1305,36 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
break;
}
if(langopts.param[LOPT_IT_LENGTHEN] && (*p == phonLENGTHEN))
{
// remove lengthen indicator from non-stressed syllables
if(v_stress < 4)
p++;
else
if((langopts.param[LOPT_IT_LENGTHEN]==2) && (v != (vowel_count - 2)))
p++; // LANG=Italian, remove lengthen indicator from non-penultimate syllables
}
if(vowel_stress[v] > max_stress)
{
max_stress = vowel_stress[v];
}
if((*p == phonLENGTHEN) && ((opt_length = langopts.param[LOPT_IT_LENGTHEN]) != 0))
{
// remove lengthen indicator from non-stressed syllables
int shorten=0;
if(opt_length & 0x10)
{
// only allow lengthen indicator on the highest stress syllable in the word
if(v != max_stress_posn)
shorten = 1;
}
else
if(v_stress < 4)
{
// only allow lengthen indicator if stress >= 4.
shorten = 1;
}
if(((opt_length & 0xf)==2) && (v != (vowel_count - 2)))
shorten = 1; // LANG=Italian, remove lengthen indicator from non-penultimate syllables
if(shorten)
p++;
}
v++;
}
@@ -1553,6 +1571,7 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec
int letter_group;
int distance_right;
int distance_left;
int lg_pts;
MatchRecord match;
static MatchRecord best;
@@ -1682,7 +1701,10 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec
letter_group = *rule++ - 'A';
if(IsLetter(letter_w,letter_group))
{
match.points += (20-distance_right);
lg_pts = 20;
if(letter_group==2)
lg_pts = 19; // fewer points for C, general consonant
match.points += (lg_pts-distance_right);
post_ptr += letter_xbytes;
}
else
@@ -1830,7 +1852,10 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec
letter_group = *rule++ - 'A';
if(IsLetter(letter_w,letter_group))
{
match.points += (20-distance_left);
lg_pts = 20;
if(letter_group==2)
lg_pts = 19; // fewer points for C, general consonant
match.points += (lg_pts-distance_left);
pre_ptr -= letter_xbytes;
}
else
+3 -1
View File
@@ -267,7 +267,9 @@ static TONE_TABLE tone_table[N_TONE_TABLE] = {
{PITCHfrise, 38,10, PITCHfrise2, 36,10, // comma, or question
20, 25, 34, 20, drops_0, 3, 3, 15, 25, 0},
{PITCHdrop, 38, 1, PITCHdrop, 42,25, // exclamation
// {PITCHdrop, 38, 1, PITCHdrop, 42,25, // exclamation
// 20, 25, 34, 22, drops_0, 3, 3, 12, 8, 0},
{PITCHfall, 30, 5, PITCHfall, 30, 7, // statement
20, 25, 34, 22, drops_0, 3, 3, 12, 8, 0},
+1 -1
View File
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.24.04 08.May.07";
const char *version_string = "1.24.06 10.May.07";
const int version_phdata = 0x012201;
int option_device_number = -1;
+50 -10
View File
@@ -241,8 +241,8 @@ Translator *SelectTranslator(const char *name)
case L('h','i'):
{
static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f};
static wchar_t replace_chars_hi[11] = {0x966,0x967,0x968,0x969,0x96a,0x96b,0x96c,0x96d,0x96e,0x96f,0}; // digits 0-9
static wchar_t replacement_chars_hi[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0};
static const wchar_t replace_chars_hi[11] = {0x966,0x967,0x968,0x969,0x96a,0x96b,0x96c,0x96d,0x96e,0x96f,0}; // digits 0-9
static const unsigned int replacement_chars_hi[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0};
static int stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250};
static int stress_amps_hi[8] = {17,14, 20,20, 20,24, 24,22 };
@@ -269,8 +269,8 @@ Translator *SelectTranslator(const char *name)
{
static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 };
static int stress_lengths_hu[8] = {180,150, 200,180, 0,0, 230,270};
static wchar_t replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0};
static wchar_t replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute
static const wchar_t replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0};
static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute
tr = new Translator();
SetupTranslator(tr,stress_lengths_hu,stress_amps_hu);
@@ -290,6 +290,26 @@ Translator *SelectTranslator(const char *name)
}
break;
case L('i','s'): // Icelandic
{
static int stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 };
static int stress_lengths_is[8] = {180,140, 200,200, 0,0, 240,260};
static const wchar_t is_L08[] = {'c','f','h','k','p','s','t','x',0xfe,0}; // voiceless conants, including 'þ'
tr = new Translator();
SetupTranslator(tr,stress_lengths_is,stress_amps_is);
tr->langopts.stress_rule = 1;
tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels
SetLetterBits(tr,4,"kpst"); // Letter group F
SetLetterBits(tr,3,"jvr"); // Letter group H
tr->letter_groups[8] = is_L08;
SetLetterVowel(tr,'y');
tr->langopts.numbers = 0xe9;
tr->langopts.numbers2 = 0x2;
}
break;
case L('i','t'): // Italian
{
static int stress_lengths_it[8] = {150, 140, 180, 180, 0, 0, 270, 320};
@@ -378,8 +398,8 @@ Translator *SelectTranslator(const char *name)
{
static int stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260};
static int stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,22 };
static wchar_t replace_chars_ro[5] = {0x218,0x219,0x21a,0x21b,0};
static wchar_t replacement_chars_ro[5] = {0x15e,0x15f,0x162,0x163,0}; // replace s-comma, t-comma by s-cedilla, t-cedilla
static const wchar_t replace_chars_ro[5] = {0x218,0x219,0x21a,0x21b,0};
static const unsigned int replacement_chars_ro[5] = {0x15e,0x15f,0x162,0x163,0}; // replace s-comma, t-comma by s-cedilla, t-cedilla
tr = new Translator();
SetupTranslator(tr,stress_lengths_ro,stress_amps_ro);
@@ -403,9 +423,24 @@ Translator *SelectTranslator(const char *name)
case L('c','s'): // Czech
case L('h','r'): // Croatian
{
static const wchar_t replace_chars_hr[] =
{0x430,0x431,0x446,0x45b,0x447,0x434,0x452,0x45f,
0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x43b,
0x459,0x43c,0x43d,0x45a,0x43e,0x43f,0x440,0x441,
0x448,0x442,0x443,0x432,0x437,0x436,
0x453,0x455,0x45c,0}; // ѓ ѕ ќ
static const unsigned int replacement_chars_hr[] =
{'a','b','c',0x107,0x10d,'d',0x111,'d'+(0x17e<<16),
'e','f','g','h','i','j','k','l',
'l'+('j'<<16),'m','n','n'+('j'<<16),'o','p','r','s',
0x161,'t','u','v','z',0x17e,
0x111,'d'+('z'<<16),0x107,0};
static int stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 };
static int stress_lengths_sk[8] = {180,180, 200,180, 0,0, 220,230};
static char *sk_voiced = "bdgjlmnrvwzaeiouy";
// static int stress_lengths_sk[8] = {180,180, 200,200, 0,0, 210,220};
static int stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};
static char *sk_voiced = "bdgjlmnrvwzaeiouy";
tr = new Translator();
SetupTranslator(tr,stress_lengths_sk,stress_amps_sk);
@@ -420,7 +455,12 @@ Translator *SelectTranslator(const char *name)
tr->langopts.numbers = 0x1c0d + 0x84000;
if(name2 == L('h','r'))
{
tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards
tr->langopts.replace_chars = replace_chars_hr;
tr->langopts.replacement_chars = replacement_chars_hr;
}
if(name2 == L('c','s'))
tr->langopts.numbers2 = 0x8; // variant numbers before milliards
@@ -835,8 +875,8 @@ Translator_Afrikaans::Translator_Afrikaans() : Translator()
}
int Translator_Afrikaans::TranslateChar(char *ptr, int prev_in, int c, int next_in)
{//===============================================================================
int Translator_Afrikaans::TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert)
{//=============================================================================================
// look for 'n and replace by a special character (unicode: schwa)
if(!iswalpha(prev_in))
+1 -1
View File
@@ -51,7 +51,7 @@ class Translator_Afrikaans: public Translator
public:
Translator_Afrikaans();
private:
int TranslateChar(char *ptr, int prev_in, int c, int next_in);
int TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert);
}; // end of class Translator_Afrikaans
+30 -7
View File
@@ -393,7 +393,7 @@ Translator::Translator()
SetLetterBits(this,1,"bcdfgjklmnpqstvxz"); // B hard consonants, excluding h,r,w
SetLetterBits(this,2,"bcdfghjklmnpqrstvwxz"); // C all consonants
SetLetterBits(this,3,"hlmnr"); // H 'soft' consonants
SetLetterBits(this,4,"cfhkpqstx"); // F voiceless consonants
SetLetterBits(this,5,"bdgjlmnrvwyz"); // G voiced
SetLetterBits(this,6,"eiy"); // Letter group Y, front vowels
SetLetterBits(this,7,"aeiouy"); // vowels, including y
@@ -1470,18 +1470,28 @@ static int EmbeddedCommand(unsigned int &source_index)
int Translator::TranslateChar(char *ptr, int prev_in, int c, int next_in)
{//======================================================================
int Translator::TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert)
{//===================================================================================
// To allow language specific examination and replacement of characters
const wchar_t *p;
unsigned int new_c;
if(c == 0) return(0);
if(langopts.replace_chars != NULL)
{
// there is a list of character codes to be substituted with alternative codes
if((p = wcschr(langopts.replace_chars,c)) != NULL)
{
return(langopts.replacement_chars[p - langopts.replace_chars]);
new_c = langopts.replacement_chars[p - langopts.replace_chars];
if(new_c & 0xffe00000)
{
// there is a second character to be inserted
*insert = (new_c >> 16);
new_c &= 0xffff;
}
return(new_c);
}
}
return(c);
@@ -1500,6 +1510,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
int prev_out2;
int prev_in2=0;
int next_in;
int char_inserted=0;
int clause_pause;
int pre_pause=0;
int pre_pause_add=0;
@@ -1626,9 +1637,19 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
utf8_in(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1];
}
prev_source_index = source_index;
source_index += utf8_in(&cc,&source[source_index],0); // cc = source[source_index++];
c = cc;
if(char_inserted)
{
c = char_inserted;
char_inserted = 0;
}
else
{
source_index += utf8_in(&cc,&source[source_index],0); // cc = source[source_index++];
c = cc;
}
utf8_in(&next_in,&source[source_index],0);
if((c == CTRL_EMBEDDED) || (c == ctrl_embedded))
{
// start of embedded command in the text
@@ -1705,7 +1726,9 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)
c = '\'';
}
c = TranslateChar(&source[source_index],prev_in,c,next_in); // optional language specific function
c = TranslateChar(&source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function
if(char_inserted)
next_in = char_inserted;
if(!IsAlpha(c) && !iswspace(c) && (c != '\''))
{
+4 -3
View File
@@ -212,6 +212,7 @@ extern const int param_defaults[N_SPEECH_PARAM];
#define N_LOPTS 12
#define LOPT_DIERESES 1
// 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables
// bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word
#define LOPT_IT_LENGTHEN 2
// 1=german
#define LOPT_PREFIXES 3
@@ -295,8 +296,8 @@ typedef struct {
char tone_numbers;
char ideographs; // treat as separate words
int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2"
const wchar_t *replace_chars; // characters to be substitutes
const wchar_t *replacement_chars; // substitutes for replace_chars
const wchar_t *replace_chars; // characters to be substitutes
const unsigned int *replacement_chars; // substitutes for replace_chars
} LANGUAGE_OPTIONS;
@@ -392,7 +393,7 @@ protected:
virtual int Unpronouncable(char *word);
virtual void SetWordStress(char *output, unsigned int dictionary_flags, int tonic, int prev_stress);
virtual int RemoveEnding(char *word, int end_type, char *word_copy);
virtual int TranslateChar(char *ptr, int prev_in, int c, int next_in);
virtual int TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert);
virtual int TranslateNumber(char *word1, char *ph_out, unsigned int *flags, int wflags);
virtual int ChangePhonemes(PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch);
+1 -1
View File
@@ -48,7 +48,7 @@ MNEM_TAB genders [] = {
{NULL, 0 }};
//int tone_points[10] = {250,140, 1200,110, -1,0, -1,0, -1,0};
int tone_points[10] = {600,180, 1200,140, 2000,110, 3000,110, -1,0};
int tone_points[10] = {600,170, 1200,135, 2000,110, 3000,110, -1,0};
// limit the rate of change for each formant number
//static int formant_rate_22050[9] = {50, 104, 165, 230, 220, 220, 220, 220, 220}; // values for 22kHz sample rate