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
@@ -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
|
||||
|
||||
@@ -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_
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
|
||||
.group л
|
||||
_) л (_ El^
|
||||
л (_ l^
|
||||
// л (_ l^ // rule removed
|
||||
л (Y l^
|
||||
л l
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -46,4 +46,6 @@
|
||||
0 n^ NULL 0 N
|
||||
0 j NULL 0 y
|
||||
0 S NULL 0 sh
|
||||
0 s. NULL 0 sh
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1174,7 +1174,6 @@ include ph_swedish
|
||||
phonemetable no base
|
||||
include ph_norwegian
|
||||
|
||||
|
||||
phonemetable vi base
|
||||
include ph_vi
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 28 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 21 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@@ -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
|
||||
|
||||
@@ -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},
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 != '\''))
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||