mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-02 14:04:27 +00:00
Merge branch 'upstream' into development
Conflicts: dictsource/dict_phonemes phsource/compile_report phsource/ph_azerbaijani
This commit is contained in:
Executable
+110
@@ -0,0 +1,110 @@
|
||||
|
||||
// This file is UTF8 encoded
|
||||
// Spelling to phoneme rules for Azerbaijani
|
||||
|
||||
|
||||
// Numbers
|
||||
_0 s@f'@R
|
||||
_1 b'iR
|
||||
_2 ic'i
|
||||
_3 'ytS
|
||||
_4 d'WRd
|
||||
_5 b'eS
|
||||
_6 alt'@
|
||||
_7 jedd'i
|
||||
_8 s&Cc'iz
|
||||
_9 dogg'uz
|
||||
_1X 'on
|
||||
_2X ijiRm'i
|
||||
_3X ot'uz
|
||||
_4X g'@Rx
|
||||
_5X &ll'i
|
||||
_6X altm'@S
|
||||
_7X jetm'iS
|
||||
_8X s&Cs'&n
|
||||
_9X doxs'an
|
||||
_0C j'yz
|
||||
_0M1 m'in
|
||||
_0M2 milj'on
|
||||
_0M3 milj'aRd
|
||||
_dpt _t,am_| // ??
|
||||
|
||||
|
||||
// Function words
|
||||
// personal pronouns
|
||||
mən $u+
|
||||
sən $u+
|
||||
o $u+
|
||||
biz $u+
|
||||
siz $u+
|
||||
onlar $u+
|
||||
|
||||
// possessive pronouns
|
||||
mənim $u+
|
||||
sənin $u+
|
||||
onun $u+
|
||||
bizim $u+
|
||||
sizin $u+
|
||||
onların $u+
|
||||
|
||||
bu $u+
|
||||
|
||||
|
||||
// conjunctions
|
||||
və $u+
|
||||
isə $u+
|
||||
də $u+
|
||||
həm $u+
|
||||
ya $u+
|
||||
da $u+
|
||||
|
||||
// prepositions
|
||||
aid $u+ // about
|
||||
ilə $u+ // with, by, in
|
||||
dair $u+ // about
|
||||
|
||||
// postpositions
|
||||
ci $u
|
||||
cı $u
|
||||
cü $u
|
||||
de $u
|
||||
dir $u
|
||||
li $u
|
||||
in $u
|
||||
nə $u
|
||||
ya $u
|
||||
yə $u
|
||||
|
||||
// Character names
|
||||
b be
|
||||
c dZe
|
||||
ç tSe
|
||||
_ə &
|
||||
d de
|
||||
f fe
|
||||
g Je
|
||||
ğ Qe
|
||||
h he
|
||||
x xe
|
||||
j Ze
|
||||
k ka
|
||||
q ge
|
||||
l el
|
||||
m em
|
||||
n en
|
||||
_o o
|
||||
p pe
|
||||
r eR
|
||||
s se
|
||||
ş Se
|
||||
t te
|
||||
v ve
|
||||
w dubElv'E
|
||||
y je
|
||||
z ze
|
||||
|
||||
* ulduz $text
|
||||
% faiz $text
|
||||
|
||||
|
||||
|
||||
Executable
+137
@@ -0,0 +1,137 @@
|
||||
|
||||
// This file is UTF8 encoded
|
||||
// Spelling to phoneme rules for Azerbaijani
|
||||
|
||||
// Stress rule: Right-most vowel, but stop before the vowel which is
|
||||
// marked as unstressed [%].
|
||||
|
||||
.L02 ı a o u // back vowels
|
||||
.L03 i e ö ü
|
||||
|
||||
.group a
|
||||
a a
|
||||
ai (K aI
|
||||
-) a (_ a
|
||||
|
||||
.group b
|
||||
b b
|
||||
|
||||
.group c
|
||||
c dZ
|
||||
|
||||
.group ç
|
||||
ç tS
|
||||
|
||||
.group d
|
||||
d d
|
||||
|
||||
-) dan (_ d%an
|
||||
-) dən (_ d%&n
|
||||
-) dək (_ d%&k
|
||||
|
||||
.group e
|
||||
e e
|
||||
|
||||
.group ə
|
||||
ə &
|
||||
@) ə (_ %&
|
||||
-) ə (_ %&
|
||||
|
||||
.group f
|
||||
f f
|
||||
|
||||
.group g
|
||||
g J
|
||||
|
||||
.group ğ
|
||||
ğ Q
|
||||
A) ğ :
|
||||
a) ğa :
|
||||
o) ğo :
|
||||
u) ğu :
|
||||
ö) ğö :
|
||||
ü) ğü :
|
||||
i) ğ j
|
||||
e) ğ j
|
||||
|
||||
.group h
|
||||
h h
|
||||
|
||||
.group x
|
||||
x x
|
||||
|
||||
.group ı
|
||||
ı @
|
||||
|
||||
.group i
|
||||
i i
|
||||
|
||||
@) iya (_ =i;a
|
||||
|
||||
.group j
|
||||
j Z
|
||||
|
||||
.group k
|
||||
k c
|
||||
k (K C
|
||||
|
||||
.group q
|
||||
q g
|
||||
q (_ x
|
||||
|
||||
.group l
|
||||
l l
|
||||
l (L02 L
|
||||
L02) l (K L
|
||||
|
||||
.group m
|
||||
m m
|
||||
|
||||
.group n
|
||||
n n
|
||||
|
||||
.group o
|
||||
o o
|
||||
|
||||
.group ö
|
||||
ö W
|
||||
|
||||
.group p
|
||||
p p
|
||||
|
||||
.group r
|
||||
r R
|
||||
A) r (A *
|
||||
ğ) r (A *
|
||||
C) r (_ @-r
|
||||
|
||||
.group s
|
||||
s s
|
||||
|
||||
.group ş
|
||||
ş S
|
||||
|
||||
.group t
|
||||
t t
|
||||
L03) t (L03 ts
|
||||
|
||||
.group u
|
||||
u u
|
||||
|
||||
.group ü
|
||||
ü y
|
||||
|
||||
.group v
|
||||
v v
|
||||
|
||||
.group w
|
||||
w w
|
||||
|
||||
.group y
|
||||
y j
|
||||
|
||||
.group z
|
||||
z z
|
||||
|
||||
.group
|
||||
ä &
|
||||
+2
-2
@@ -9,7 +9,7 @@ _0 S'unjO
|
||||
_1 '&k
|
||||
_2 d'uj
|
||||
_3 t'in
|
||||
_4 tS'ar
|
||||
_4 tSh'ar
|
||||
_5 p'a~tS
|
||||
_6 tS#'Oj
|
||||
_7 S'at
|
||||
@@ -25,7 +25,7 @@ _10 d'OS
|
||||
_11 '&garo
|
||||
_12 b'arO
|
||||
_13 t'erO
|
||||
_14 tS'oddO
|
||||
_14 tSh'oddO
|
||||
_15 p'OnerO
|
||||
_16 S'olO
|
||||
_17 S'OterO
|
||||
|
||||
+2
-2
@@ -176,8 +176,8 @@
|
||||
|
||||
|
||||
.group ছ
|
||||
ছ tS#V
|
||||
ছ (B tS#
|
||||
ছ tShV
|
||||
ছ (B tSh
|
||||
|
||||
|
||||
.group জ
|
||||
|
||||
@@ -63,6 +63,8 @@ _#32 l'e:rts'aIC@n
|
||||
_?? zymb'o:l
|
||||
_?A b'u:xstA:b@
|
||||
_cap gr'o:s
|
||||
_sub 'Unt@R|3_!,IndEks||
|
||||
_sup 'o:b@R|3_!,IndEks||
|
||||
|
||||
|
||||
// accent names
|
||||
|
||||
@@ -106,6 +106,8 @@ _hok h'Uk
|
||||
|
||||
// character names
|
||||
_cap k,ap@-t@L
|
||||
_sub s,VbskrIpt||
|
||||
_sup s,u:p3skrIpt||
|
||||
_?A l,Et3
|
||||
_?? sImb@L
|
||||
_braille br'eIl
|
||||
@@ -2857,6 +2859,7 @@ temperature tEmprI2tS3
|
||||
?!3 temporary tEmpr@rI
|
||||
?3 template tEmpl@t
|
||||
therefore $1
|
||||
thereof De@r'0v
|
||||
thermos T3:m@s
|
||||
thermostable $alt1
|
||||
thesis Ti:sIs
|
||||
@@ -3454,6 +3457,7 @@ Ada eId@ $onlys
|
||||
Andrea $2
|
||||
Adrian eIdri@n
|
||||
Agatha aga#T@
|
||||
Angela andZ@l@
|
||||
Angelika $2
|
||||
Aggie agi
|
||||
Agnes agn@s
|
||||
@@ -3605,6 +3609,7 @@ Guinevere gwInI#vi@3
|
||||
Hadrian heIdri:@n
|
||||
Hamish heImIS
|
||||
Harriet hari@t
|
||||
Harvey hA@vi
|
||||
Heidi haIdi
|
||||
Hecate hEk@teI
|
||||
Hekate hEk@teI
|
||||
@@ -3662,6 +3667,7 @@ Louise lu:w'i:z
|
||||
Luigi lu:'i:dZi
|
||||
Luis lu:Is
|
||||
Lupe lu:peI
|
||||
Luther lu:T3
|
||||
Madeleine mad@lI2n
|
||||
Madeline mad@lI2n
|
||||
Maeve meIv
|
||||
@@ -3781,6 +3787,7 @@ Vanessa $alt3
|
||||
Wallace w0lI#s
|
||||
Wally w0li
|
||||
?3 William wIlj@m
|
||||
Yerevan jEr@v'an
|
||||
Yves i:v
|
||||
Yvonne $2
|
||||
Zoe zoUi
|
||||
|
||||
+15
-4
@@ -1,7 +1,9 @@
|
||||
// Irish Gaeilge dictionary
|
||||
// written by Ronan McGuirk
|
||||
// January 2013
|
||||
// version 2.5
|
||||
// 2013
|
||||
// version 2.6.1
|
||||
// Please send comments and suggestions to espeak.gaeilge@gmail.com
|
||||
|
||||
// This file is UTF8 encoded
|
||||
|
||||
// letters
|
||||
@@ -47,7 +49,7 @@ _cap m'o:r
|
||||
// accent names
|
||||
|
||||
// names of symbols
|
||||
ª_. pO#nk
|
||||
_. pO#nk
|
||||
_, k0m@
|
||||
_; semI
|
||||
_: ko:l0n
|
||||
@@ -152,22 +154,26 @@ amárach @m'A:r@x
|
||||
amuigh @mu1'I
|
||||
amháin @w'A:in
|
||||
am aUm
|
||||
an @n
|
||||
anaithnid '0nah@nIdZ
|
||||
anois @nIS
|
||||
anonn @naUn
|
||||
ann aUn
|
||||
anseo @nS'O
|
||||
anuas a#n'u@s
|
||||
aodh e:
|
||||
aodha e:
|
||||
aon e:@n
|
||||
(ar ais) Er'aS
|
||||
arís @r'i:S
|
||||
as 0s
|
||||
aschurtha '0sxUrh@
|
||||
|
||||
atá @t['A: $u
|
||||
baill bu1'i:l
|
||||
bhaill vu1'i:l
|
||||
beidh bEg
|
||||
bhfuil w'Il
|
||||
bheas v'e:@s
|
||||
bhuel w'El
|
||||
ceithre kEr@
|
||||
cathair k'0h@r
|
||||
@@ -176,6 +182,7 @@ clainne kl'InE
|
||||
chlainne xl'InE
|
||||
chun xUn $u
|
||||
crainn kri:n
|
||||
chrainn xri:n
|
||||
de dE $u+
|
||||
des dEs $u
|
||||
|
||||
@@ -184,6 +191,7 @@ di dI $u+
|
||||
do dO# $u
|
||||
domhnach d[aUn@x
|
||||
domhnaigh d[aUnig
|
||||
dúghorm d['u:Q"Or@m
|
||||
eile 'El@
|
||||
euro ju:ro:
|
||||
faic f@ak
|
||||
@@ -214,6 +222,7 @@ le lE $u
|
||||
(muigheo) mu1'i:||'o:
|
||||
mhuigh vu1'i:
|
||||
(mhaigh eo) vu1'i:||'o:
|
||||
mhama w'0m@
|
||||
maith m'0
|
||||
mhaith w'0
|
||||
mbeadh m;O#X
|
||||
@@ -230,8 +239,10 @@ orthu O#rhu
|
||||
os o:s
|
||||
rabh raU
|
||||
raibh rEv
|
||||
raidió r'adi:o:
|
||||
réamhrá r'e:@vr,a:
|
||||
réidh re:
|
||||
's s
|
||||
samhain saUIn
|
||||
san s@n
|
||||
seo S@_
|
||||
|
||||
+91
-44
@@ -1,8 +1,10 @@
|
||||
|
||||
// translation rules for Irish Gaeilge
|
||||
// This file is UTF-8 encoded
|
||||
// written by Ronan McGuirk January 2013
|
||||
// Version 2.5B
|
||||
// written by Ronan McGuirk 2013
|
||||
// Version 2.6.1
|
||||
// Please send comments and suggestions to espeak.gaeilge@gmail.com
|
||||
|
||||
|
||||
// Conditional rules
|
||||
// ?1 allow eclipsis as 2 separate words
|
||||
@@ -12,7 +14,7 @@
|
||||
.L03 b bh mb c ch f m mh dh // used for words likemuir or cuid
|
||||
.L04 b bh mb // for words like beag
|
||||
.L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a
|
||||
.L06 aidh idh aí á eá eadh adh ad imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h
|
||||
.L06 aidh idh aí á eá eadh adh ad adsa imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h
|
||||
.L07 b c g ch bh gh mb
|
||||
.L08 lc ll nt bhse // for words like cailc
|
||||
.L09 cl cr chr f
|
||||
@@ -21,14 +23,14 @@
|
||||
.L12 á é ó eo ua // when followed by i
|
||||
.L13 oc omb
|
||||
.L14 río dún gnío // followed with mh
|
||||
.L15 c ch f m d dh g gc gh mh // aoi following
|
||||
.L15 c ch f bhf m d dh g gc gh mh // aoi following
|
||||
.L16 b c bh ch gr ghr // for inn word ending
|
||||
.L17 l le li niste nn
|
||||
.L18 n nt nte neann neadh ntear nim nfear nfinn
|
||||
.L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar
|
||||
.L19 na nea ra rea la llea arga // word endings with silent dh
|
||||
.L20 eo eoir eá eabh io iu iú // slender m
|
||||
.L21 ll nn ndán nntán
|
||||
.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine
|
||||
.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann
|
||||
.L23 ea eo i
|
||||
.L24 b mb bh g gh p ph bp m mh
|
||||
|
||||
@@ -40,14 +42,16 @@
|
||||
abht aU#t[
|
||||
amhr aUr // words like amhras
|
||||
K) amhl aUl
|
||||
abhra aUr@ // words like slabhra
|
||||
abh (C aU // words like slabhra
|
||||
aghaidh aIg
|
||||
t) abhair u:@r
|
||||
th) abhair u:@r
|
||||
t) abhar u:@r
|
||||
th) abhar u:@r
|
||||
_) an (sL01 @n
|
||||
_) an (- 0n // an prefix
|
||||
_) a (nA @
|
||||
_) an (_ @n
|
||||
_) an (- '0n // an prefix
|
||||
é) a @ // words like féach
|
||||
X) a (nn_ aU#
|
||||
X) a (ll_ aU#
|
||||
@@ -77,8 +81,9 @@
|
||||
_) ao e:
|
||||
ae e:
|
||||
amhna (_ aUn@
|
||||
arraing arIng
|
||||
_) ath (@@P3 ,0_
|
||||
|
||||
|
||||
.group á
|
||||
á A:
|
||||
@) á ,A:
|
||||
@@ -89,7 +94,7 @@
|
||||
áinig A:nIg
|
||||
ái 'A:i
|
||||
|
||||
|
||||
|
||||
.group ai
|
||||
ai a#
|
||||
L04) ai (L17 0#
|
||||
@@ -99,6 +104,7 @@
|
||||
m) ai (n 0#
|
||||
c) ai (th 0#
|
||||
ch) ai (th 0#
|
||||
ai (tín 0#
|
||||
ai (d 0#
|
||||
p) ai (l 0#
|
||||
@) ai (L11_ I
|
||||
@@ -112,8 +118,9 @@
|
||||
X) aigh 'aI
|
||||
aigh aI# L04) aill (_ wi:l
|
||||
aing (_ Ing
|
||||
ai (llimh '0 // words like Gaillimh
|
||||
|
||||
|
||||
|
||||
.group b
|
||||
b b // broad
|
||||
L01) b b; // slender
|
||||
@@ -122,7 +129,7 @@
|
||||
bh (_ vv
|
||||
bh (L22 vj // slender
|
||||
L01) bh v
|
||||
?1 _m_) b (@
|
||||
?1 _m_) b (@
|
||||
_) bhf v // urú broad
|
||||
_) bhf (L22 v; // urú slender
|
||||
_) bp b // urú broad
|
||||
@@ -134,8 +141,10 @@
|
||||
a) bh (a U // for example cabhair
|
||||
ear) bha u: // words like Cearbhall
|
||||
bhfaigh v'aI
|
||||
_) beann (@ ba#n
|
||||
_) bheann (@ va#n
|
||||
_) bun (C@P3 b,Un
|
||||
|
||||
|
||||
.group c
|
||||
c k
|
||||
c (L01 k; // slender
|
||||
@@ -143,19 +152,20 @@
|
||||
ch (L01 C;
|
||||
ch (é+ C;
|
||||
ch (ei+ x;
|
||||
?1 _g_) c (@
|
||||
?1 _g_) c (L01
|
||||
?1 _g_) c (@
|
||||
?1 _g_) c (L01
|
||||
_) cabhr k'aUr
|
||||
_) chabhr x'aUr
|
||||
_) ceann (C@P5 k;,aUn
|
||||
_) cheann (C@P6 C;,aUn
|
||||
|
||||
|
||||
.group d
|
||||
d d[ // broad
|
||||
L01) d dZ // slender
|
||||
d (L22 dZ // slender
|
||||
d (L01 d; // slender
|
||||
i) d (i dZ
|
||||
?1 _n_) d (@
|
||||
?1 _n_) d (@
|
||||
dh Q // broad
|
||||
dh (ui Q // broad
|
||||
dh (ao Q // broad
|
||||
@@ -165,6 +175,11 @@
|
||||
?1 _) d (_t d[
|
||||
?1 _) d (_tL01 dZ
|
||||
_) d' (@P2 d
|
||||
|
||||
_) d' d
|
||||
_) d (_'fh d
|
||||
|
||||
d'fh (L01 d
|
||||
i) dh (_ g
|
||||
a) dh (_ X
|
||||
o) dh (_ X
|
||||
@@ -174,8 +189,9 @@
|
||||
dheartháir gr@h'A:r
|
||||
deirfiúr d;r@f'u:r
|
||||
dheirfiúr g;r@f'u:r
|
||||
_) do (Ch@@P2 d[,U_
|
||||
_) dí (@@P2 d,i:
|
||||
|
||||
|
||||
.group e
|
||||
e E#
|
||||
eá A:
|
||||
@@ -184,29 +200,39 @@
|
||||
r) ei (m aI
|
||||
eighea aI
|
||||
eighea aI
|
||||
s) ei (nn aI
|
||||
sh) ei (nn aI
|
||||
eigh aI
|
||||
|
||||
eo o:
|
||||
eogh o:
|
||||
eoi o:
|
||||
eogha o:
|
||||
eoghai o:
|
||||
d) eo (ch O#
|
||||
dh) eo (ch O#
|
||||
_) eo (ch O#
|
||||
s) eo (_ @
|
||||
|
||||
|
||||
|
||||
.group é
|
||||
é 'e:
|
||||
éi 'e:
|
||||
éa 'e:
|
||||
_) éi (rig aI // words like éirigh
|
||||
_h) éi (rí aI
|
||||
_) éi (rí aI // words like éirí
|
||||
_) éireoidh aIro:Ig
|
||||
éacs e:@ks
|
||||
|
||||
|
||||
|
||||
.group ea
|
||||
ea a#
|
||||
eai a#
|
||||
X) ea (L21_ aU
|
||||
ea (ltaine aU
|
||||
g) ea (ll aU
|
||||
l) eamh (n aU
|
||||
dr) ea (m aU
|
||||
X) ea (ch 0
|
||||
_L04) ea (g @
|
||||
_L04) ea (dh_ @
|
||||
@@ -217,7 +243,7 @@
|
||||
eanbhean 'an@v,an
|
||||
eadhb aIb
|
||||
|
||||
|
||||
|
||||
.group f
|
||||
f f // broad
|
||||
f (L22 f; // slender
|
||||
@@ -225,14 +251,16 @@
|
||||
fh (éin_ h
|
||||
fh (L22 ; // slender
|
||||
@) f (L06_ h
|
||||
?1 _bh_) f (@
|
||||
?1 _bh_) f (L22 ;
|
||||
_) fo (C@@P2 f,U
|
||||
_) fogh f'aU
|
||||
?1 _bh_) f (@
|
||||
?1 _bh_) f (L22 ;
|
||||
|
||||
|
||||
|
||||
.group g
|
||||
g g // broad
|
||||
g (L01 g; // slender
|
||||
?1 _n_) g (@
|
||||
?1 _n_) g (@
|
||||
_) gh Q"
|
||||
_) gh (L01 Q"j
|
||||
_) gc g // urú broad
|
||||
@@ -245,19 +273,24 @@
|
||||
gh (n X@
|
||||
gheobh j'o:
|
||||
gabh gaU
|
||||
_) gearr (C@P5 g;,aR
|
||||
_) ghearr (C@P6 Q"j,aR
|
||||
|
||||
|
||||
.group h
|
||||
h h // silent
|
||||
|
||||
|
||||
|
||||
.group i
|
||||
i I
|
||||
_) i I
|
||||
ia i@
|
||||
ia (tha i:
|
||||
io O#
|
||||
io (dá I
|
||||
_) io (nadh u:// words like ionadh
|
||||
s) io (mb I
|
||||
sh) io (mb I
|
||||
|
||||
_pr) io (n u:
|
||||
L16) inn (_ i:n
|
||||
iai i:i
|
||||
@@ -266,12 +299,18 @@
|
||||
L12) i i // non syllabic short i after long vowel
|
||||
iú u:
|
||||
m) i (d_ i: // verb ending
|
||||
_) in (@@P2 ,In_
|
||||
_) ionad (C@@P5 ,Ona#d[
|
||||
|
||||
|
||||
.group í
|
||||
í 'i:
|
||||
íomh 'i:v
|
||||
íochn 'i:xn
|
||||
í (_ i:
|
||||
ín (_ i:n
|
||||
ío i:@
|
||||
|
||||
|
||||
|
||||
.group l
|
||||
l l // broad
|
||||
L01) l l; // slender
|
||||
@@ -280,8 +319,9 @@
|
||||
ll (L23 l;
|
||||
l (g l@
|
||||
l (b l@
|
||||
_) lorg (@@P4 l,Or@g
|
||||
_) lán (C@@P3 l,A:n
|
||||
|
||||
|
||||
.group m
|
||||
m m // broad
|
||||
m (L20 m; //slender
|
||||
@@ -296,8 +336,8 @@
|
||||
_) mh (n v@
|
||||
léir) mheas vas
|
||||
r) m @m // words like gorm
|
||||
_) mear (@@P4 m,ar
|
||||
|
||||
|
||||
.group n
|
||||
n n // broad
|
||||
n (L01 n; // slender
|
||||
@@ -318,8 +358,8 @@
|
||||
n (ch n@
|
||||
c) n @n
|
||||
ch) n @n
|
||||
_) nasc (C@@ n,0sk
|
||||
|
||||
|
||||
.group o
|
||||
o O#
|
||||
_) o 'O
|
||||
@@ -342,12 +382,13 @@
|
||||
odl (a O#l
|
||||
oí i:
|
||||
|
||||
|
||||
|
||||
.group ó
|
||||
ó 'o:
|
||||
ómhai o:@
|
||||
|
||||
|
||||
ói (p@ 'o:
|
||||
|
||||
.group oi
|
||||
oi O
|
||||
_L15) oi (+ @'I
|
||||
@@ -369,15 +410,16 @@
|
||||
_) oi (leá 'I
|
||||
oidh aI
|
||||
oir (_ 'ERR
|
||||
_sc) oi (r O
|
||||
oigh (ea aI
|
||||
|
||||
|
||||
|
||||
.group p
|
||||
p p // broad
|
||||
ph f // broad
|
||||
p (L22 p; // slender
|
||||
ph (L20 f; // slender
|
||||
?1 _b_) p (@
|
||||
?1 _b_) p (@
|
||||
|
||||
|
||||
.group r
|
||||
@@ -388,13 +430,13 @@
|
||||
L12i) r (t_ Z
|
||||
rr R
|
||||
rg r@g
|
||||
rgh rQ"
|
||||
L01) rg R@g // slender
|
||||
r (bh r@
|
||||
ríomh ri:@v
|
||||
s) r (A R
|
||||
_) ramh raU
|
||||
|
||||
|
||||
|
||||
.group s
|
||||
s s // broad
|
||||
L01) s S // slender
|
||||
@@ -402,13 +444,14 @@
|
||||
s (cL01 S
|
||||
s (CCL01 S // slender
|
||||
s (pCé s // broad
|
||||
?1 _t_) s (@
|
||||
?1 _t_) s (@
|
||||
sh h
|
||||
sh (CL01 h
|
||||
sh (L01 h;
|
||||
s (lL01 S
|
||||
_') s (_ s // 's in poems etc
|
||||
_) sain (@P4 s,an
|
||||
|
||||
|
||||
.group t
|
||||
t t[ // broad
|
||||
L01) t c // slender
|
||||
@@ -418,7 +461,7 @@
|
||||
?1 _) t (_L01 c
|
||||
L01C) t tS // slender after consonant
|
||||
t (CL01 tS // slender with following consonant before vowels
|
||||
?1 _d_) t (@
|
||||
?1 _d_) t (@
|
||||
th h
|
||||
th (L01 h;
|
||||
L01C) th h
|
||||
@@ -432,7 +475,7 @@
|
||||
thne (_ h@nE
|
||||
A) th (_ // silent th at word end
|
||||
|
||||
|
||||
|
||||
.group u
|
||||
u U#
|
||||
ua u@
|
||||
@@ -441,11 +484,14 @@
|
||||
uai (d ui
|
||||
uá u:'A:
|
||||
ui I
|
||||
ui (s U
|
||||
ui (sce_ I
|
||||
uinn (_ 'i:n
|
||||
uinti U#'i:ntI
|
||||
_b) uí wi:
|
||||
_bh) uí wi:
|
||||
g) uí wi:
|
||||
gh) uí wi:
|
||||
umh u:
|
||||
L03) ui @I
|
||||
_d) u (l_ O#
|
||||
@@ -453,8 +499,9 @@
|
||||
gh) ui (gh_ @i:
|
||||
uí i:
|
||||
uachai 'ux@
|
||||
_) uimhir (C@P6 ,IvIR
|
||||
|
||||
|
||||
|
||||
.group ú
|
||||
ú u:
|
||||
únmh u:nv
|
||||
|
||||
+57
-3
@@ -2,6 +2,8 @@
|
||||
// This file is UTF8 encoded
|
||||
// Spelling-to-phoneme words for Armenian
|
||||
|
||||
// ?1 West Armenian
|
||||
|
||||
// names of letters
|
||||
_ա aIb
|
||||
բ ben
|
||||
@@ -20,7 +22,7 @@ _ը '@t#
|
||||
կ ken
|
||||
հ ho
|
||||
ձ dza
|
||||
ղ r"ad
|
||||
ղ r"at
|
||||
ճ ce
|
||||
մ men
|
||||
յ hi
|
||||
@@ -30,15 +32,16 @@ _ը '@t#
|
||||
չ tSa
|
||||
պ pe
|
||||
ջ dZe
|
||||
ռ **a
|
||||
ռ R2a
|
||||
ս se
|
||||
վ vev
|
||||
տ tyn
|
||||
ր re
|
||||
ց tso
|
||||
ց ts#o
|
||||
ւ hyn
|
||||
փ p#yr
|
||||
ք k#e
|
||||
և jev
|
||||
_օ o
|
||||
ֆ fe
|
||||
|
||||
@@ -52,6 +55,21 @@ d di
|
||||
e e
|
||||
f ef
|
||||
|
||||
// symbols
|
||||
$ dolar
|
||||
% տոկոս $text
|
||||
* աստղանիշ $text
|
||||
+ գումարած $text
|
||||
= հավասար $text
|
||||
|
||||
|
||||
_՝ b'ut#
|
||||
_՞ harts#ak'an
|
||||
_՛ S'eSt
|
||||
_։ verdZak'et // U+0589
|
||||
_: verdZak'et
|
||||
_, storak'et
|
||||
_. midZak'et
|
||||
|
||||
|
||||
// numbers
|
||||
@@ -82,5 +100,41 @@ _dpt _sto**ak'el_
|
||||
|
||||
|
||||
// function words
|
||||
ես $u+ // pronouns
|
||||
դու $u+
|
||||
եք $u+
|
||||
Դուք $u+
|
||||
նա $u+
|
||||
այն $u+
|
||||
մենք $u+
|
||||
նրանք $u+
|
||||
|
||||
դուք $u+
|
||||
ենք $u+
|
||||
են $u+
|
||||
|
||||
այդ $u+
|
||||
այս $u+
|
||||
դա $u+
|
||||
որ $u+
|
||||
էր $u+
|
||||
|
||||
մի $u+
|
||||
է $u+
|
||||
|
||||
հետ $u+ // prepositions
|
||||
|
||||
եվ $u+ // and
|
||||
իսկ $u+ $brk // and, but
|
||||
կամ $u+ // or
|
||||
որը $u+ // which
|
||||
|
||||
կարող $u+ // can
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// exceptions
|
||||
ով ov
|
||||
ովքեր ovk#er
|
||||
|
||||
+11
-9
@@ -2,8 +2,10 @@
|
||||
// (consonants are changed for Armenian-West in the voice file "hy-west")
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
// ?1 West Armenian
|
||||
|
||||
.L01 բ գ թ կ պ տ ք
|
||||
.L02 ու այ իւ իյ ոյ // other vowel sounds
|
||||
.L02 ու այ իւ իյ ոյ ա ե ը ի ո օ // vowel sounds
|
||||
|
||||
// ligature
|
||||
.replace
|
||||
@@ -12,7 +14,7 @@
|
||||
|
||||
.group ա
|
||||
ա a
|
||||
այ aI
|
||||
այ (K aI
|
||||
այ (_ a
|
||||
|
||||
.group բ
|
||||
@@ -41,7 +43,7 @@
|
||||
.group է
|
||||
է e
|
||||
էօ W
|
||||
էյ eI
|
||||
էյ (K eI
|
||||
|
||||
.group ը
|
||||
ը @
|
||||
@@ -57,7 +59,7 @@
|
||||
ի i
|
||||
իւ y
|
||||
իւ (_ iv
|
||||
իյ i@
|
||||
իյ (K i@
|
||||
|
||||
.group լ
|
||||
լ l
|
||||
@@ -97,8 +99,9 @@
|
||||
L02) մ (_ m
|
||||
|
||||
.group յ
|
||||
յ h // ?? [j]
|
||||
_) յ h // ?? [j]
|
||||
_) յ (C h@
|
||||
յ j
|
||||
|
||||
.group ն
|
||||
ն n
|
||||
@@ -133,8 +136,8 @@
|
||||
_) ջ (C dZ@
|
||||
|
||||
.group ռ
|
||||
ռ **
|
||||
_) ռ (C **@
|
||||
ռ R2
|
||||
_) ռ (C R2@
|
||||
|
||||
.group ս
|
||||
ս s
|
||||
@@ -151,6 +154,7 @@
|
||||
|
||||
.group ր
|
||||
ր r
|
||||
L02) ր (L02 *
|
||||
_) ր (C r@
|
||||
C) ր (_ @r
|
||||
L02) ր (_ r
|
||||
@@ -178,7 +182,5 @@
|
||||
ֆ f
|
||||
_) ֆ (C f@
|
||||
|
||||
.group
|
||||
$ dol@
|
||||
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ _s Es
|
||||
_t te:
|
||||
|
||||
_cap h'o:fdlEt@r
|
||||
_sub s'8pskrIpt||
|
||||
_sup s'yp@rskrIpt||
|
||||
_?A l'Et@r
|
||||
_?? s'imbo:l
|
||||
|
||||
|
||||
+6
-6
@@ -371,12 +371,12 @@
|
||||
ੱ) ਯ (_ j:
|
||||
|
||||
.group ਰ
|
||||
ਰ RV
|
||||
ਰ (B R
|
||||
@) ਰ (_ R
|
||||
ੱ) ਰ R:V
|
||||
ੱ) ਰ (B R:
|
||||
ੱ) ਰ (_ R:
|
||||
ਰ rV
|
||||
ਰ (B r
|
||||
@) ਰ (_ r
|
||||
ੱ) ਰ r:V
|
||||
ੱ) ਰ (B r:
|
||||
ੱ) ਰ (_ r:
|
||||
|
||||
.group ਲ
|
||||
ਲ lV
|
||||
|
||||
+18
-9
@@ -69,6 +69,8 @@ v ve // not Roman numbers
|
||||
x Sis#
|
||||
|
||||
_cap maI'uskulU
|
||||
_sub ||subskR'itU
|
||||
_sup ||sob*eskR'itU
|
||||
_?A l'etR&_
|
||||
_?? s'imbolU_
|
||||
_#32 esp'asU
|
||||
@@ -297,10 +299,10 @@ unts $abbrev
|
||||
usb $abbrev
|
||||
|
||||
|
||||
dr $dot
|
||||
dra $dot
|
||||
mr $dot
|
||||
mrs $dot
|
||||
dr dowtor $dot
|
||||
dra dowt'o*& $dot
|
||||
mr m'ister $dot
|
||||
mrs m'irsys $dot
|
||||
prof pR'Of $dot
|
||||
profº pR,ofes'or
|
||||
profª pR,ofes'o*&
|
||||
@@ -642,6 +644,7 @@ jamais $u+ $verbf
|
||||
abacaxi abakaSy
|
||||
abordo $alt
|
||||
aborto $alt $verb
|
||||
absorta $alt2
|
||||
acerto $alt2 $noun
|
||||
acertos $alt2
|
||||
acocho $alt2 $noun
|
||||
@@ -847,7 +850,6 @@ enterro $alt2 $noun
|
||||
entorto $alt
|
||||
entroso $alt
|
||||
envelope $alt
|
||||
envolto $alt2
|
||||
enxaqueca $alt2
|
||||
enxerto $alt2 $noun
|
||||
epopeia $alt
|
||||
@@ -941,7 +943,6 @@ hoje $alt2
|
||||
horrores $alt2
|
||||
humores $alt2
|
||||
ideia $alt
|
||||
imberbe $alt
|
||||
interesse $alt2
|
||||
interesse $alt $verb
|
||||
iodo $alt2
|
||||
@@ -960,6 +961,7 @@ lepra $alt
|
||||
leste $alt2 $verb
|
||||
?2 lhe l^y
|
||||
lingueta $alt2
|
||||
lisboeta $alt2
|
||||
lodo $alt2
|
||||
logro $alt
|
||||
lopes $alt
|
||||
@@ -985,7 +987,6 @@ modelo $alt $verb
|
||||
moeda $alt
|
||||
moem $alt
|
||||
mofo $alt $verb
|
||||
moleta $alt2
|
||||
molho $alt2 $noun
|
||||
monera $alt
|
||||
morcego $alt2
|
||||
@@ -994,6 +995,7 @@ moreia $alt
|
||||
mortos $alt
|
||||
motora $alt2
|
||||
mui mwi
|
||||
muleta $alt2
|
||||
mureta $alt2
|
||||
mutreta $alt2
|
||||
namoro $alt2 $noun
|
||||
@@ -1091,6 +1093,8 @@ risoto $alt2
|
||||
rock $alt
|
||||
roem $alt
|
||||
rola $alt2 $noun
|
||||
roleta $alt2
|
||||
rolete $alt2
|
||||
rolo $alt2 $noun
|
||||
rota $alt2
|
||||
rota $alt $noun
|
||||
@@ -1148,6 +1152,7 @@ transtorno $alt $verb
|
||||
traqueia $alt
|
||||
travesso $alt2
|
||||
tremores $alt2
|
||||
treta $alt2
|
||||
trevo $alt2
|
||||
troco $alt2 $noun
|
||||
tropa $alt
|
||||
@@ -1243,6 +1248,7 @@ python p'aIT&~N
|
||||
?1 readme r'i:dmi:
|
||||
?1 sapi s,ap'i
|
||||
?1 scanner sk'En&r
|
||||
sky sk'ay
|
||||
shake S'eIk
|
||||
?1 shift S'ift
|
||||
?1 scroll sk:r'ol
|
||||
@@ -1254,13 +1260,16 @@ símbolo s'imbolU
|
||||
?4 símbolo s'iNbolU
|
||||
?2 software s'Oftwe@-
|
||||
?1 space sp'eIsy
|
||||
?2 space sp'eIs
|
||||
?1 sporting sp'Ort,ing
|
||||
tab t'aby
|
||||
tablet t'ablet
|
||||
?1 telemóvel t,El,Em'OvEl
|
||||
?1 telemóveis t,El,Em'OveIs#
|
||||
?1 up &p
|
||||
?1 upload &pl'oud
|
||||
update &pd'eIt
|
||||
upgrade &pgR'eId
|
||||
upload &pl'oud
|
||||
?2 web w'Eb
|
||||
?1 yahoo 'i,ah'u
|
||||
?2 yahoo iah'u
|
||||
@@ -1275,7 +1284,7 @@ louis _^_FR
|
||||
// foreign product names
|
||||
?1 access 'aks,Es
|
||||
?1 adobe &d'Oby
|
||||
android &ndR'Oid
|
||||
android &NdR'Oid
|
||||
apple 'Epow
|
||||
chrome kR'owmi
|
||||
debian d'Ebj&~N
|
||||
|
||||
+18
-8
@@ -214,7 +214,7 @@
|
||||
|
||||
i) e (r_ E
|
||||
@s) e (r_ E
|
||||
u) e (r_ E
|
||||
qu) e (r_ E
|
||||
|
||||
ib) e (rL04_ E
|
||||
d) e (rL04_ E
|
||||
@@ -226,11 +226,10 @@
|
||||
@s) e (rL04_ E
|
||||
|
||||
sp) e (rL04_ E
|
||||
|
||||
f) e (rL02_ E
|
||||
|
||||
e (quL02_ E
|
||||
|
||||
e (rbL04_ E
|
||||
e (rgL04_ E
|
||||
|
||||
e (rsL04_ E
|
||||
@@ -240,6 +239,7 @@
|
||||
e (ssL04_ E
|
||||
e (ss_ E // stress and english words
|
||||
?2 ection (_ 'EkS&~N
|
||||
?2 ee (n_ i
|
||||
e (stL04_ E
|
||||
|
||||
e (strL04_ E
|
||||
@@ -372,6 +372,7 @@
|
||||
tiv) e (L05_ E // es-
|
||||
viv) e (L05_ e
|
||||
_com) e (L05_ e
|
||||
s_colh) e (res_ E
|
||||
_cos) e (L05_ e
|
||||
_pud) e (L05_ E
|
||||
_coub) e (L05_ E
|
||||
@@ -424,11 +425,13 @@ _corro) e (L07_ e
|
||||
_interromp) e (L07_ e
|
||||
_troux) e (L07_ E
|
||||
_ens) e (bL03_ E
|
||||
_enver) e (dL03_ E
|
||||
_amanc) e (bL03_ E
|
||||
qu) e (brL04_ E
|
||||
_cel) e (brL04_ E
|
||||
_boch) e (chL04_ e
|
||||
_ex) e (crL04_ E
|
||||
_on) e (rL04_ E
|
||||
_ex) e (crL04_ E
|
||||
_enr) e (dL01_ E
|
||||
_v) e (dL03_ E
|
||||
_arr) e (dL03_ E
|
||||
@@ -472,14 +475,14 @@ _adult) e (rL04_ E
|
||||
_persev) e (rL04_ E
|
||||
_recup) e (rL04_ E
|
||||
_refrig) e (rL04_ E
|
||||
_v) e (rbL03_ E
|
||||
_ex) e (rcL02_ E
|
||||
_ex) e (rcL02_ E
|
||||
_alic) e (rcL02_ E
|
||||
_p) e (rdL02_ E
|
||||
_l) e (rdL03_ E
|
||||
_h) e (rdL04_ E
|
||||
_des) e (rdL04_ E
|
||||
_) e (rgL03_ e
|
||||
_so) e (rgL03_ e
|
||||
_re) e (rgL03_ e
|
||||
_bez) e (rrL03_ e
|
||||
v) e (rtL03_ e // con- re- in-
|
||||
@@ -837,7 +840,7 @@ _entorp) e (çL03_ e
|
||||
?1 f) o (rmulá u // eg: formulário, formulários.
|
||||
?1 v) o (lt O
|
||||
o (luem_ o
|
||||
o (CCuem_ o
|
||||
o (ssuem_ o
|
||||
êC) o (CA_ o
|
||||
êCC) o (CA_ o
|
||||
ôC) o (CA_ o
|
||||
@@ -852,7 +855,8 @@ _entorp) e (çL03_ e
|
||||
óCC) o (CA_ o
|
||||
úC) o (CA_ o
|
||||
úCC) o (CA_ o
|
||||
|
||||
?2 otion (_ 'owS&~N
|
||||
|
||||
//sort
|
||||
_f) o (L05_ o
|
||||
_pormen) o (L05_ O
|
||||
@@ -862,6 +866,7 @@ _pormen) o (L05_ O
|
||||
_esn) o (bL04_ O
|
||||
_engl) o (bL04_ O
|
||||
_sal) o (brL03_ o
|
||||
_env) o (ltL03_ o
|
||||
_) o (cL03_ o
|
||||
_m) o (fL01_ O
|
||||
_m) o (fL02_ O
|
||||
@@ -1072,6 +1077,8 @@ _remem) o (rL04_ O
|
||||
u (a u
|
||||
g) u (a+ w
|
||||
q) u (a+ w
|
||||
u (eC u
|
||||
u (ei u
|
||||
r) u (_A u
|
||||
u (L04_ 'u
|
||||
|
||||
@@ -1079,6 +1086,8 @@ _remem) o (rL04_ O
|
||||
ui (_ 'uI
|
||||
u (iu w
|
||||
u (iCK u
|
||||
u (éC u
|
||||
u (íC u
|
||||
uy uI
|
||||
ul (K uw
|
||||
u (lh+ u
|
||||
@@ -1091,6 +1100,7 @@ _remem) o (rL04_ O
|
||||
|
||||
g) u (Y
|
||||
_m) ui (tA_ 'wiN
|
||||
?2 ution (_ 'uS&~N
|
||||
|
||||
|
||||
.group ú
|
||||
|
||||
+65
-39
@@ -69,6 +69,8 @@ _tld s_v'l-novkoU
|
||||
|
||||
// character names
|
||||
_cap vel^ke:
|
||||
_sub d,olni:||indeks||
|
||||
_sup h,oRni:||indeks||
|
||||
_?? simbol
|
||||
_#9 t'ab
|
||||
_#32 'medzeRa
|
||||
@@ -76,7 +78,7 @@ _?A znak
|
||||
|
||||
* hviezda $max3
|
||||
+ plus $max3
|
||||
= Rovna:sa $max3
|
||||
= Rovna:||sa $max3
|
||||
@ zavina:tS
|
||||
& ampeRsand
|
||||
# kRi:Zik $max3
|
||||
@@ -88,64 +90,88 @@ _' apostRof
|
||||
_( za:tvoRka
|
||||
_) zatvoRit;
|
||||
_, tSiaRka
|
||||
_- poml-tSka
|
||||
__ podtSiaRknutie
|
||||
_- spojovn^i:k
|
||||
__ podtSiaRkovn^i:k
|
||||
_. bodka
|
||||
_/ lomeno
|
||||
_/ lomka
|
||||
_: dvojbodka
|
||||
_; bodkotSiaRka
|
||||
_< menSi:
|
||||
_> vetSSi:
|
||||
_> v&tSSi:
|
||||
_? ota:zn^ik
|
||||
_[ hRanata:||za:tvoRka
|
||||
_\ opatSne:||lomeno
|
||||
_\ opatSna:||lomka
|
||||
_] hRanata:||zatvoRit;
|
||||
_^ stRieZka
|
||||
_^ voka:n^
|
||||
_` aktsent
|
||||
_{ zloZena:||za:tvoRka
|
||||
_| zvisla:||tSiaRa
|
||||
_} zloZena:||zatvoRit;
|
||||
_~ vl-novka
|
||||
_ tvr-da:m'edzeRa // U+00A0 no-break-space
|
||||
_¡ obra:t;eni:v'i:kRitSn^i:k
|
||||
_¦ pReRuSena:'tSiaRa
|
||||
_ª hoRni:indeks'a:
|
||||
_« dvojita:lomena:||za:tvoRka
|
||||
_ mekka:poml-tSka
|
||||
_² nadRuhu:
|
||||
_³ natRetju
|
||||
_´ dl:Zen^
|
||||
_· bodka'vpRostRjedku
|
||||
_¸ tsedila
|
||||
_¹ napRvu:
|
||||
_» dvojita:lomena:||zatvoRit;
|
||||
_¿ obRa:t;eni:'ota:zn^ik
|
||||
_– dl-ha:'poml-tSka
|
||||
_‘ l^ava:'u:vodzovka
|
||||
_’ prava:'u:vodzovka
|
||||
_“ horne:'u:vodzovki
|
||||
_” dolne:'u:vodzovki
|
||||
_‡ dvojiti:kRi:Z
|
||||
_• odRa:Zka
|
||||
_‣ tRojuholni:kova:'odRa:Zka
|
||||
_ tvr-da:||m'edzeRa // U+00A0 no-break-space
|
||||
_¡ obra:t;eni:||v'i:kRitSn^i:k
|
||||
_¦ pReRuSena:||tSiaRa
|
||||
_¨ pRehla:ska
|
||||
_« dvojita:||lomena:||za:tvoRka
|
||||
_ Rozd;el^ovn^i:k
|
||||
_´ dl:Zen^
|
||||
_· bodka||v||pRostRjedku
|
||||
_¸ tsedila
|
||||
_» dvojita:||lomena:||zatvoRit;
|
||||
_¿ obRa:t;eni:||ota:zn^ik
|
||||
_– poml-tSka
|
||||
_‘ hoRne:||jednoduche:||u:vodzovki
|
||||
_’ odsuvn^i:k
|
||||
_“ hoRne:||u:vodzovki
|
||||
_” dvojita:||hoRna:||opatSna:||u:vodzovka
|
||||
_„ dolne:||u:vodzovki
|
||||
_‚ dolne:||jednoduche:||u:vodzovki
|
||||
_‡ dvojkRi:Z
|
||||
_• odRa:Zka
|
||||
_‣ odRa:Zka||tRojuholni:k
|
||||
_⁃ odRa:Zka||v||tvaRe||poml-tSki
|
||||
‰ pRomile
|
||||
€ euRo
|
||||
§ paRagRaf
|
||||
÷ d;eleno
|
||||
× kRa:t
|
||||
° stupn^ou
|
||||
¢ tsentou
|
||||
£ libjeR
|
||||
¤ znatSkameni
|
||||
¢ tsent
|
||||
£ libRa
|
||||
¤ mena
|
||||
© kopiRajt
|
||||
® Registrovane:
|
||||
¥ jen
|
||||
− mi:nus
|
||||
± plus'mi:nus
|
||||
µ mu:
|
||||
¼ Stvr-tina
|
||||
± plus||mi:nus
|
||||
µ mi:
|
||||
¼ Stvr-t;ina
|
||||
½ polovitsa
|
||||
¾ tri_Stvr-tini
|
||||
¬ logitske:not
|
||||
æ a'e:
|
||||
þ poml-tSkanad
|
||||
¾ tRi_||Stvr-t;ini
|
||||
¬ logitski:||za:poR
|
||||
æ otvoRene:||e:
|
||||
þ soRn
|
||||
¯ pRuh||nad
|
||||
ð ed
|
||||
ƒ floRe:n
|
||||
_† kRi:Z
|
||||
_≈ pRibliZn^e||sa||Rovna:
|
||||
_≠ n^eRovna:||sa
|
||||
_≤ menSi:||alebo||sa||Rovna:
|
||||
_≥ v&tSSi:||alebo||sa||Rovna:
|
||||
_√ dRuha:||odmotsn^ina
|
||||
_∛ tRet;ia||odmotsn^ina
|
||||
_∞ n^ekon^etSno
|
||||
_■ tSieRni||StvoRets
|
||||
_□ bieli||StvoRets
|
||||
_◆ tSieRni||diamant
|
||||
_○ bieli||kRuh
|
||||
_● tSieRni||kRuh
|
||||
_◦ odRa:Zka||v||tvaRe||bielej||bodki
|
||||
_✓ zaSkr-tnutie
|
||||
_✔ tutSne:||zaSkr-tnutie
|
||||
_➔ Si:pka||vpravo
|
||||
_➢ odRa:Zka||v||tvaRe||Si:pki
|
||||
|
||||
|
||||
// Numbers
|
||||
|
||||
+1
-1
@@ -12,7 +12,6 @@
|
||||
.L01 ç f h k p q s ş t // unvoiced consonants
|
||||
|
||||
.L02 ı a o u // back vowels
|
||||
|
||||
.L03 i e ö ü î â ô û // not-back vowels
|
||||
|
||||
.replace
|
||||
@@ -218,6 +217,7 @@
|
||||
.group r
|
||||
r R
|
||||
A) r (A *
|
||||
ğ) r (A *
|
||||
|
||||
ra (_S2 %Ra
|
||||
re (_S2 %Re
|
||||
|
||||
+16
-10
@@ -1,19 +1,22 @@
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/ii_5)
|
||||
endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 160
|
||||
length 200
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
phoneme &
|
||||
vowel starttype #e endtype #e
|
||||
length 160
|
||||
length 200
|
||||
IF thisPh(isWordEnd) THEN
|
||||
FMT(vowel/&_3)
|
||||
ENDIF
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
@@ -25,32 +28,35 @@ endphoneme
|
||||
|
||||
phoneme W
|
||||
vowel starttype #@ endtype #@
|
||||
length 180
|
||||
length 200
|
||||
FMT(vowel/y#_2)
|
||||
endphoneme
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 160
|
||||
FMT(vowel/u_5)
|
||||
length 180
|
||||
FMT(vowel/u_2)
|
||||
endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 160
|
||||
FMT(vowel/o_mid)
|
||||
length 200
|
||||
FMT(vowel/o_mid2)
|
||||
endphoneme
|
||||
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
FMT(vowel/aa)
|
||||
IF thisPh(isWordEnd) THEN
|
||||
FMT(vowel/a#)
|
||||
ENDIF
|
||||
FMT(vowel/aa_9)
|
||||
endphoneme
|
||||
|
||||
phoneme @
|
||||
vowel starttype #@ endtype #@
|
||||
ipa ɯ
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/u#_7)
|
||||
endphoneme
|
||||
|
||||
|
||||
+11
-11
@@ -7,7 +7,7 @@
|
||||
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 180
|
||||
length 190
|
||||
IF thisPh(isDiminished) THEN
|
||||
ChangePhoneme(a/)
|
||||
FMT(vowel/a#)
|
||||
@@ -18,28 +18,28 @@ endphoneme
|
||||
|
||||
phoneme a/
|
||||
vowel starttype #@ endtype #@
|
||||
length 180
|
||||
length 190
|
||||
FMT(vowel/a#)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 170
|
||||
length 180
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 170
|
||||
length 180
|
||||
FMT(vowel/ee_1)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 150
|
||||
length 170
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
@@ -47,42 +47,42 @@ endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 170
|
||||
length 180
|
||||
FMT(vowel/o)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 170
|
||||
length 180
|
||||
FMT(vowel/oo_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme U
|
||||
vowel starttype #u endtype #u
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/uu_2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme y
|
||||
vowel starttype #i endtype #i
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/y)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme Y
|
||||
vowel starttype #@ endtype #@
|
||||
length 160
|
||||
length 180
|
||||
FMT(vowel/y#)
|
||||
endphoneme
|
||||
|
||||
|
||||
+2
-12
@@ -111,22 +111,12 @@ phoneme D
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t // dental variant of /t/
|
||||
vls dnt stop
|
||||
voicingswitch d[
|
||||
lengthmod 2
|
||||
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
|
||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/t_dnt2, 35)
|
||||
ENDIF
|
||||
WAV(ustop/t_dnt2, 70)
|
||||
|
||||
import_phoneme base/t[
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme s
|
||||
vls alv frc sibilant
|
||||
lengthmod 3
|
||||
|
||||
+2
-2
@@ -634,7 +634,7 @@ endphoneme
|
||||
|
||||
|
||||
phoneme j
|
||||
liquid palatal
|
||||
liquid palatal starttype #i
|
||||
lengthmod 7
|
||||
|
||||
IF nextPhW(isVowel) THEN
|
||||
@@ -1610,7 +1610,7 @@ phoneme x
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
|
||||
|
||||
IF nextPh(isPause) THEN
|
||||
WAV(ufric/x, 110)
|
||||
WAV(ufric/x_, 60)
|
||||
ENDIF
|
||||
WAV(ufric/x_hr, 20)
|
||||
endphoneme
|
||||
|
||||
Executable
BIN
Binary file not shown.
+2
-2
@@ -700,9 +700,9 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
|
||||
ix = utf8_in(&c2,p);
|
||||
if(c2 == 0)
|
||||
break;
|
||||
if(iswupper(c2))
|
||||
if(iswupper2(c2))
|
||||
{
|
||||
utf8_out(towlower(c2),p);
|
||||
utf8_out(towlower2(c2),p);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+29
-18
@@ -520,7 +520,7 @@ void DecodePhonemes(const char *inptr, char *outptr)
|
||||
unsigned short ipa1[96] = {
|
||||
0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f,
|
||||
0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294,
|
||||
0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254,
|
||||
0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254,
|
||||
0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f,
|
||||
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
|
||||
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
|
||||
@@ -629,10 +629,13 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int
|
||||
|
||||
|
||||
|
||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
|
||||
{//=========================================================================
|
||||
/* Can be called after a clause has been translated into phonemes, in order
|
||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode)
|
||||
{//===============================================================================
|
||||
/* Called after a clause has been translated into phonemes, in order
|
||||
to display the clause in phoneme mnemonic form.
|
||||
|
||||
phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
|
||||
bit 4: 0=eSpeak phoneme names, 1=IPA
|
||||
*/
|
||||
|
||||
int ix;
|
||||
@@ -645,6 +648,8 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
|
||||
char *buf;
|
||||
int count;
|
||||
int flags;
|
||||
int use_ipa;
|
||||
int use_tie;
|
||||
int separate_phonemes = 0;
|
||||
char phon_buf[30];
|
||||
char phon_buf2[30];
|
||||
@@ -653,15 +658,16 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
|
||||
static const char *stress_chars = "==,,''";
|
||||
static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner
|
||||
|
||||
if(use_ipa >= 4)
|
||||
use_ipa = phoneme_mode & 0x10;
|
||||
use_tie = phoneme_mode & 0x0f;
|
||||
|
||||
if(use_tie >= 3)
|
||||
{
|
||||
// separate individual phonemes with underscores
|
||||
separate_phonemes = '_';
|
||||
if(use_ipa == 5)
|
||||
use_ipa = 0;
|
||||
else
|
||||
use_ipa = 1;
|
||||
use_tie = 0;
|
||||
}
|
||||
|
||||
if(phon_out != NULL)
|
||||
{
|
||||
for(ix=1; ix<(n_phoneme_list-2); ix++)
|
||||
@@ -669,13 +675,19 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
|
||||
buf = phon_buf;
|
||||
|
||||
plist = &phoneme_list[ix];
|
||||
|
||||
WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags);
|
||||
if(plist->newword)
|
||||
*buf++ = ' ';
|
||||
else
|
||||
{
|
||||
if((separate_phonemes != 0) && (ix > 1))
|
||||
{
|
||||
*buf++ = separate_phonemes;
|
||||
utf8_in(&c, phon_buf2);
|
||||
if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter
|
||||
{
|
||||
*buf++ = separate_phonemes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -707,17 +719,16 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa)
|
||||
}
|
||||
|
||||
flags = 0;
|
||||
WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags);
|
||||
count = 0;
|
||||
for(p=phon_buf2; *p != 0;)
|
||||
{
|
||||
p += utf8_in(&c, p);
|
||||
if(use_ipa > 1)
|
||||
if(use_tie > 0)
|
||||
{
|
||||
// look for non-inital alphabetic character, but not diacritic, superscript etc.
|
||||
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c))
|
||||
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c))
|
||||
{
|
||||
buf += utf8_out(char_tie[use_ipa-2], buf);
|
||||
buf += utf8_out(char_tie[use_tie-1], buf);
|
||||
}
|
||||
}
|
||||
buf += utf8_out(c, buf);
|
||||
@@ -923,7 +934,7 @@ int Unpronouncable(Translator *tr, char *word, int posn)
|
||||
break;
|
||||
}
|
||||
|
||||
if((c != '\'') && !iswalpha(c))
|
||||
if((c != '\'') && !iswalpha2(c))
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -2102,7 +2113,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
|
||||
break;
|
||||
|
||||
case RULE_NONALPHA:
|
||||
if(!iswalpha(letter_w))
|
||||
if(!iswalpha2(letter_w))
|
||||
{
|
||||
add_points = (21-distance_right);
|
||||
post_ptr += letter_xbytes;
|
||||
@@ -2346,7 +2357,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
|
||||
break;
|
||||
|
||||
case RULE_NONALPHA:
|
||||
if(!iswalpha(letter_w))
|
||||
if(!iswalpha2(letter_w))
|
||||
{
|
||||
add_points = (21-distance_right);
|
||||
pre_ptr -= letter_xbytes;
|
||||
@@ -2663,7 +2674,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
|
||||
if(tr->letter_bits_offset > 0)
|
||||
{
|
||||
// not a Latin alphabet, switch to the default Latin alphabet language
|
||||
if((letter <= 0x241) && iswalpha(letter))
|
||||
if((letter <= 0x241) && iswalpha2(letter))
|
||||
{
|
||||
sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language);
|
||||
return(0);
|
||||
|
||||
+1
-1
@@ -632,7 +632,7 @@ void OnOptions2(int event_id)
|
||||
|
||||
case MENU_PATH0:
|
||||
string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(),
|
||||
_T(""),_T(""),_T("*"),wxOPEN);
|
||||
_T("phonemes"),_T(""),_T("*"),wxOPEN);
|
||||
if(!string.IsEmpty())
|
||||
{
|
||||
path_phfile = string;
|
||||
|
||||
+22
-6
@@ -1564,8 +1564,8 @@ void CountWordFreq(wxString path, wcount **hashtab)
|
||||
for(k=0; k<ix; )
|
||||
{
|
||||
k += utf8_in(&wc,&buf[k]);
|
||||
wc = towlower(wc); // convert to lower case
|
||||
if(iswalpha(wc))
|
||||
wc = towlower2(wc); // convert to lower case
|
||||
if(iswalpha2(wc))
|
||||
{
|
||||
j += utf8_out(wc,&wbuf[j]);
|
||||
n_chars++;
|
||||
@@ -2324,13 +2324,28 @@ void Make_walpha_tab()
|
||||
}
|
||||
|
||||
fprintf(f, "\nstatic const short wchar_tolower[] = {\n");
|
||||
exceptions[ex] = 0;
|
||||
exceptions[ex+1] = 0;
|
||||
for(ix=0; ix<=ex; ix+=2)
|
||||
|
||||
for(ix=0; ix<ex; ix+=2)
|
||||
{
|
||||
fprintf(f,"\t0x%.3x, 0x%.3x,\n", exceptions[ix], exceptions[ix+1]);
|
||||
}
|
||||
fprintf(f, "};\n");
|
||||
fprintf(f, "\t0,0 };\n");
|
||||
|
||||
fprintf(f, "\nstatic const short wchar_toupper[] = {\n");
|
||||
for(ix=0x80; ix<=MAX_WALPHA; ix++)
|
||||
{
|
||||
if(iswlower(ix))
|
||||
{
|
||||
c = towupper(ix);
|
||||
value = ix - c;
|
||||
if((value != 32) && (value != 1))
|
||||
{
|
||||
fprintf(f,"\t0x%.3x, 0x%.3x,\n", ix, c);
|
||||
}
|
||||
}
|
||||
}
|
||||
fprintf(f, "\t0,0 };\n");
|
||||
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
@@ -2351,6 +2366,7 @@ void TestTest(int control)
|
||||
//CharsetToUnicode("ISO-8859-4");
|
||||
//CharsetToUnicode("ISCII");
|
||||
|
||||
|
||||
if(control==2)
|
||||
{
|
||||
return;
|
||||
|
||||
+108
-5
@@ -602,6 +602,77 @@ int NonAsciiNumber(int letter)
|
||||
return(-1);
|
||||
}
|
||||
|
||||
#define L_SUB 0x4000 // subscript
|
||||
#define L_SUP 0x8000 // superscript
|
||||
|
||||
static const char *modifiers[] = {NULL, "_sub", "_sup", NULL};
|
||||
|
||||
// this list must be in ascending order
|
||||
static unsigned short derived_letters[] = {
|
||||
0x00aa, 'a'+L_SUP,
|
||||
0x00b2, '2'+L_SUP,
|
||||
0x00b3, '3'+L_SUP,
|
||||
0x00b9, '1'+L_SUP,
|
||||
0x00ba, 'o'+L_SUP,
|
||||
0x02b0, 'h'+L_SUP,
|
||||
0x02b1, 0x266+L_SUP,
|
||||
0x02b2, 'j'+L_SUP,
|
||||
0x02b3, 'r'+L_SUP,
|
||||
0x02b4, 0x279+L_SUP,
|
||||
0x02b5, 0x27b+L_SUP,
|
||||
0x02b6, 0x281+L_SUP,
|
||||
0x02b7, 'w'+L_SUP,
|
||||
0x02b8, 'y'+L_SUP,
|
||||
0x02c0, 0x294+L_SUP,
|
||||
0x02c1, 0x295+L_SUP,
|
||||
0x02e0, 0x263+L_SUP,
|
||||
0x02e1, 'l'+L_SUP,
|
||||
0x02e2, 's'+L_SUP,
|
||||
0x02e3, 'x'+L_SUP,
|
||||
0x2070, '0'+L_SUP,
|
||||
0x2071, 'i'+L_SUP,
|
||||
0x2074, '4'+L_SUP,
|
||||
0x2075, '5'+L_SUP,
|
||||
0x2076, '6'+L_SUP,
|
||||
0x2077, '7'+L_SUP,
|
||||
0x2078, '8'+L_SUP,
|
||||
0x2079, '9'+L_SUP,
|
||||
0x207a, '+'+L_SUP,
|
||||
0x207b, '-'+L_SUP,
|
||||
0x207c, '='+L_SUP,
|
||||
0x207d, '('+L_SUP,
|
||||
0x207e, ')'+L_SUP,
|
||||
0x207f, 'n'+L_SUP,
|
||||
0x2080, '0'+L_SUB,
|
||||
0x2081, '1'+L_SUB,
|
||||
0x2082, '2'+L_SUB,
|
||||
0x2083, '3'+L_SUB,
|
||||
0x2084, '4'+L_SUB,
|
||||
0x2085, '5'+L_SUB,
|
||||
0x2086, '6'+L_SUB,
|
||||
0x2087, '7'+L_SUB,
|
||||
0x2088, '8'+L_SUB,
|
||||
0x2089, '9'+L_SUB,
|
||||
0x208a, '+'+L_SUB,
|
||||
0x208b, '-'+L_SUB,
|
||||
0x208c, '='+L_SUB,
|
||||
0x208d, '('+L_SUB,
|
||||
0x208e, ')'+L_SUB,
|
||||
0x2090, 'a'+L_SUB,
|
||||
0x2091, 'e'+L_SUB,
|
||||
0x2092, 'o'+L_SUB,
|
||||
0x2093, 'x'+L_SUB,
|
||||
0x2094, 0x259+L_SUB,
|
||||
0x2095, 'h'+L_SUB,
|
||||
0x2096, 'k'+L_SUB,
|
||||
0x2097, 'l'+L_SUB,
|
||||
0x2098, 'm'+L_SUB,
|
||||
0x2099, 'n'+L_SUB,
|
||||
0x209a, 'p'+L_SUB,
|
||||
0x209b, 's'+L_SUB,
|
||||
0x209c, 't'+L_SUB,
|
||||
0,0};
|
||||
|
||||
|
||||
static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages
|
||||
|
||||
@@ -617,8 +688,10 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
int letter;
|
||||
int len;
|
||||
int ix;
|
||||
int c;
|
||||
char *p2;
|
||||
char *pbuf;
|
||||
const char *modifier;
|
||||
ALPHABET *alphabet;
|
||||
int al_offset;
|
||||
int al_flags;
|
||||
@@ -626,7 +699,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
int number;
|
||||
int phontab_1;
|
||||
int speak_letter_number;
|
||||
char capital[20];
|
||||
char capital[30];
|
||||
char ph_buf[80];
|
||||
char ph_buf2[80];
|
||||
char ph_alphabet[80];
|
||||
@@ -648,13 +721,42 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
if(control & 2)
|
||||
{
|
||||
// include CAPITAL information
|
||||
if(iswupper(letter))
|
||||
if(iswupper2(letter))
|
||||
{
|
||||
Lookup(tr, "_cap", capital);
|
||||
}
|
||||
}
|
||||
letter = towlower2(letter);
|
||||
|
||||
// is this a subscript or superscript letter ?
|
||||
for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
|
||||
{
|
||||
if(c > letter)
|
||||
break;
|
||||
if(c == letter)
|
||||
{
|
||||
c = derived_letters[ix+1];
|
||||
letter = c & 0x3fff;
|
||||
if((modifier = modifiers[c >> 14]) != NULL)
|
||||
{
|
||||
Lookup(tr, modifier, capital);
|
||||
if(capital[0] == 0)
|
||||
{
|
||||
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
|
||||
Lookup(translator2, modifier, &capital[3]);
|
||||
if(capital[3] != 0)
|
||||
{
|
||||
capital[0] = phonPAUSE;
|
||||
capital[1] = phonSWITCH;
|
||||
len = strlen(&capital[3]);
|
||||
capital[len+3] = phonSWITCH;
|
||||
capital[len+4] = phontab_1;
|
||||
capital[len+5] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1);
|
||||
|
||||
if(ph_buf[0] == phonSWITCH)
|
||||
@@ -663,6 +765,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0))
|
||||
{
|
||||
// convert a non-ascii number to 0-9
|
||||
@@ -794,7 +897,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
speak_letter_number = 1;
|
||||
if(!(al_flags & AL_NO_SYMBOL))
|
||||
{
|
||||
if(iswalpha(letter))
|
||||
if(iswalpha2(letter))
|
||||
Lookup(translator, "_?A", ph_buf);
|
||||
|
||||
if((ph_buf[0]==0) && !iswspace(letter))
|
||||
@@ -2244,8 +2347,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
|
||||
if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' '))
|
||||
utf8_in(&next_char,p);
|
||||
|
||||
if(!iswalpha(next_char) && (thousands_exact==0))
|
||||
// if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
|
||||
if(!iswalpha2(next_char) && (thousands_exact==0))
|
||||
// if(!iswalpha2(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0)))
|
||||
strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc.
|
||||
}
|
||||
|
||||
|
||||
+75
-14
@@ -260,8 +260,25 @@ static const short wchar_tolower[] = {
|
||||
0x23d, 0x19a,
|
||||
0x23e, 0x2c66,
|
||||
0x243, 0x180,
|
||||
0x000, 0x000,
|
||||
};
|
||||
0,0 };
|
||||
|
||||
static const short wchar_toupper[] = {
|
||||
0x0b5, 0x39c,
|
||||
0x0df, 0x0df,
|
||||
0x0ff, 0x178,
|
||||
0x131, 0x049,
|
||||
0x17f, 0x053,
|
||||
0x180, 0x243,
|
||||
0x195, 0x1f6,
|
||||
0x19a, 0x23d,
|
||||
0x19e, 0x220,
|
||||
0x1bf, 0x1f7,
|
||||
0x1c6, 0x1c4,
|
||||
0x1c9, 0x1c7,
|
||||
0x1cc, 0x1ca,
|
||||
0x1dd, 0x18e,
|
||||
0x1f3, 0x1f1,
|
||||
0,0 };
|
||||
|
||||
|
||||
#ifdef NEED_WCHAR_FUNCTIONS
|
||||
@@ -317,13 +334,17 @@ int towlower(int c)
|
||||
|
||||
int towupper(int c)
|
||||
{
|
||||
int ix;
|
||||
// check whether a previous character code is the upper-case equivalent of this character
|
||||
if(towlower(c-32) == c)
|
||||
return(c-32); // yes, use it
|
||||
if(towlower(c-1) == c)
|
||||
return(c-1);
|
||||
if(towlower(c-2) == c)
|
||||
return(c-2);
|
||||
for(ix=0; wchar_toupper[ix] != 0; ix+=2)
|
||||
{
|
||||
if(wchar_toupper[ix] == c)
|
||||
return(wchar_toupper[ix+1]);
|
||||
}
|
||||
return(c); // no
|
||||
}
|
||||
|
||||
@@ -417,6 +438,28 @@ int iswalpha2(int c)
|
||||
return(walpha_tab[c-0x80]);
|
||||
}
|
||||
|
||||
int iswlower2(int c)
|
||||
{
|
||||
if(c < 0x80)
|
||||
return(islower(c));
|
||||
if(c > MAX_WALPHA)
|
||||
return(iswlower(c));
|
||||
if(walpha_tab[c-0x80] == 0xff)
|
||||
return(1);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int iswupper2(int c)
|
||||
{
|
||||
int x;
|
||||
if(c < 0x80)
|
||||
return(isupper(c));
|
||||
if(c > MAX_WALPHA)
|
||||
return(iswupper(c));
|
||||
if(((x = walpha_tab[c-0x80]) > 0) && (x < 0xfe))
|
||||
return(1);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int towlower2(unsigned int c)
|
||||
{
|
||||
@@ -426,7 +469,7 @@ int towlower2(unsigned int c)
|
||||
// check for non-standard upper to lower case conversions
|
||||
if(c == 'I')
|
||||
{
|
||||
if(translator->translator_name == L('t','r'))
|
||||
if(translator->langopts.dotless_i)
|
||||
{
|
||||
c = 0x131; // I -> ı
|
||||
}
|
||||
@@ -453,6 +496,24 @@ int towlower2(unsigned int c)
|
||||
return(c + x); // convert to lower case
|
||||
}
|
||||
|
||||
int towupper2(unsigned int c)
|
||||
{
|
||||
int ix;
|
||||
if(c > MAX_WALPHA)
|
||||
return(towupper(c));
|
||||
|
||||
// check whether a previous character code is the upper-case equivalent of this character
|
||||
if(towlower2(c-32) == c)
|
||||
return(c-32); // yes, use it
|
||||
if(towlower2(c-1) == c)
|
||||
return(c-1);
|
||||
for(ix=0; wchar_toupper[ix] != 0; ix+=2)
|
||||
{
|
||||
if(wchar_toupper[ix] == c)
|
||||
return(wchar_toupper[ix+1]);
|
||||
}
|
||||
return(c); // no
|
||||
}
|
||||
|
||||
static int IsRomanU(unsigned int c)
|
||||
{//================================
|
||||
@@ -2330,7 +2391,7 @@ f_input = f_in; // for GetC etc
|
||||
c2 = ' ';
|
||||
}
|
||||
else
|
||||
if((c2 == '/') || iswalpha(c2))
|
||||
if((c2 == '/') || iswalpha2(c2))
|
||||
{
|
||||
// check for space in the output buffer for embedded commands produced by the SSML tag
|
||||
if(ix > (n_buf - 20))
|
||||
@@ -2513,10 +2574,10 @@ f_input = f_in; // for GetC etc
|
||||
}
|
||||
}
|
||||
|
||||
if(iswupper(c1))
|
||||
if(iswupper2(c1))
|
||||
{
|
||||
tr->clause_upper_count++;
|
||||
if((option_capitals == 2) && (sayas_mode == 0) && !iswupper(cprev))
|
||||
if((option_capitals == 2) && (sayas_mode == 0) && !iswupper2(cprev))
|
||||
{
|
||||
char text_buf[40];
|
||||
char text_buf2[30];
|
||||
@@ -2533,7 +2594,7 @@ f_input = f_in; // for GetC etc
|
||||
}
|
||||
}
|
||||
else
|
||||
if(iswalpha(c1))
|
||||
if(iswalpha2(c1))
|
||||
tr->clause_lower_count++;
|
||||
|
||||
if(option_phoneme_input)
|
||||
@@ -2602,8 +2663,8 @@ if(option_ssml) parag=1;
|
||||
|
||||
if(!iswspace(c1))
|
||||
{
|
||||
if(!IsAlpha(c1) || !iswlower(c1))
|
||||
// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
|
||||
if(!IsAlpha(c1) || !iswlower2(c1))
|
||||
// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower2(c1)))
|
||||
{
|
||||
UngetC(c2);
|
||||
ungot_char2 = c1;
|
||||
@@ -2702,7 +2763,7 @@ if(option_ssml) parag=1;
|
||||
|
||||
if(nl_count==0)
|
||||
{
|
||||
if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next))))
|
||||
if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower2(c_next))))
|
||||
{
|
||||
// lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number
|
||||
c1 = CHAR_COMMA_BREAK;
|
||||
@@ -2721,7 +2782,7 @@ if(option_ssml) parag=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal)
|
||||
if (iswlower2(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal)
|
||||
is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag)
|
||||
}
|
||||
}
|
||||
@@ -2730,7 +2791,7 @@ if(option_ssml) parag=1;
|
||||
{
|
||||
is_end_clause = 0; // eg. u.s.a.'s
|
||||
}
|
||||
if(iswlower(c_next))
|
||||
if(iswlower2(c_next))
|
||||
{
|
||||
// next word has no capital letter, this dot is probably from an abbreviation
|
||||
// c1 = ' ';
|
||||
|
||||
@@ -1164,6 +1164,17 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream)
|
||||
} // end of espeak_SetPhonemes
|
||||
|
||||
|
||||
ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode)
|
||||
{//==============================================================================================================
|
||||
/* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
|
||||
bit 4: 0=eSpeak phoneme names, 1=IPA
|
||||
*/
|
||||
option_multibyte = textmode & 7;
|
||||
TranslateClause(translator, NULL, text, NULL, NULL);
|
||||
GetTranslatedPhonemeString(buffer, size, phonememode);
|
||||
}
|
||||
|
||||
|
||||
ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags)
|
||||
{//=============================================================================
|
||||
ENTER("espeak_CompileDictionary");
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.47.07a 23.Apr.13";
|
||||
const char *version_string = "1.47.07b 25.Apr.13";
|
||||
const int version_phdata = 0x014701;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+3
-9
@@ -1953,20 +1953,14 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control)
|
||||
|
||||
if((option_phonemes > 0) || (phoneme_callback != NULL))
|
||||
{
|
||||
int use_ipa = 0;
|
||||
int phoneme_mode = 0;
|
||||
if(option_phonemes >= 3)
|
||||
use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ, 4=ipa with separators
|
||||
phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators
|
||||
|
||||
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa);
|
||||
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), phoneme_mode);
|
||||
if(option_phonemes > 0)
|
||||
{
|
||||
fprintf(f_trans,"%s\n",translator->phon_out);
|
||||
|
||||
if(!iswalpha(0x010d))
|
||||
{
|
||||
// check that c-caron is recognized as an alphabetic character
|
||||
fprintf(stderr,"Warning: Accented letters are not recognized, eg: U+010D\nSet LC_CTYPE to a UTF-8 locale\n");
|
||||
}
|
||||
}
|
||||
if(phoneme_callback != NULL)
|
||||
{
|
||||
|
||||
@@ -972,7 +972,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels);
|
||||
SetLetterBits(tr,LETTERGP_C,hy_consonants);
|
||||
tr->langopts.max_initial_consonants = 6;
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED;
|
||||
// tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
|
||||
}
|
||||
break;
|
||||
@@ -1290,6 +1290,7 @@ SetLengthMods(tr,3); // all equal
|
||||
ResetLetterBits(tr,0x2);
|
||||
SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y
|
||||
tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2
|
||||
tr->langopts.accents = 2; // 'capital' after letter name
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1521,6 +1522,7 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress
|
||||
tr->langopts.dotless_i = 1;
|
||||
tr->langopts.param[LOPT_SUFFIX] = 1;
|
||||
|
||||
if(name2 == L('a','z'))
|
||||
|
||||
+15
-15
@@ -624,7 +624,7 @@ int IsAllUpper(const char *word)
|
||||
while((*word != 0) && !isspace2(*word))
|
||||
{
|
||||
word += utf8_in(&c, word);
|
||||
if(!iswupper(c))
|
||||
if(!iswupper2(c))
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
@@ -1053,7 +1053,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
|
||||
}
|
||||
}
|
||||
|
||||
if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha(first_char))
|
||||
if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha2(first_char))
|
||||
{
|
||||
if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV))
|
||||
{
|
||||
@@ -1632,7 +1632,7 @@ if(end_type & SUFX_UNPRON)
|
||||
tr->expect_past--;
|
||||
}
|
||||
|
||||
if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha(first_char) && (first_char != 'i'))
|
||||
if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha2(first_char) && (first_char != 'i'))
|
||||
{
|
||||
// English Specific !!!!
|
||||
// any single letter before a dot is an abbreviation, except 'I'
|
||||
@@ -1908,7 +1908,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
|
||||
while(*p2 != ' ') p2++;
|
||||
|
||||
utf8_in(&c_word2, p2+1); // first character of the next word;
|
||||
if(!iswalpha(c_word2))
|
||||
if(!iswalpha2(c_word2))
|
||||
{
|
||||
ok =0;
|
||||
}
|
||||
@@ -2376,9 +2376,9 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
|
||||
// there is a list of character codes to be substituted with alternative codes
|
||||
|
||||
if(iswupper(c_lower = c))
|
||||
if(iswupper2(c_lower = c))
|
||||
{
|
||||
c_lower = towlower(c);
|
||||
c_lower = towlower2(c);
|
||||
upper_case = 1;
|
||||
}
|
||||
|
||||
@@ -2392,7 +2392,7 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
new_c = replace_chars[ix+1];
|
||||
break;
|
||||
}
|
||||
if((word >> 16) == (unsigned int)towlower(next_in))
|
||||
if((word >> 16) == (unsigned int)towlower2(next_in))
|
||||
{
|
||||
new_c = replace_chars[ix+1];
|
||||
ignore_next = 1;
|
||||
@@ -2409,14 +2409,14 @@ static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in,
|
||||
// there is a second character to be inserted
|
||||
// don't convert the case of the second character unless the next letter is also upper case
|
||||
c2 = new_c >> 16;
|
||||
if(upper_case && iswupper(next_in))
|
||||
c2 = towupper(c2);
|
||||
if(upper_case && iswupper2(next_in))
|
||||
c2 = towupper2(c2);
|
||||
*insert = c2;
|
||||
new_c &= 0xffff;
|
||||
}
|
||||
|
||||
if(upper_case)
|
||||
new_c = towupper(new_c);
|
||||
new_c = towupper2(new_c);
|
||||
|
||||
*wordflags |= FLAG_CHAR_REPLACED;
|
||||
return(new_c);
|
||||
@@ -2480,7 +2480,7 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
|
||||
// look for 'n and replace by a special character (unicode: schwa)
|
||||
|
||||
|
||||
if(!iswalpha(prev_in))
|
||||
if(!iswalpha2(prev_in))
|
||||
{
|
||||
utf8_in(&next2, &ptr[1]);
|
||||
|
||||
@@ -2910,7 +2910,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
}
|
||||
else
|
||||
{
|
||||
if(iswupper(c))
|
||||
if(iswupper2(c))
|
||||
word_flags |= FLAG_FIRST_UPPER;
|
||||
|
||||
if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in))
|
||||
@@ -2939,7 +2939,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
}
|
||||
}
|
||||
|
||||
if(iswupper(c))
|
||||
if(iswupper2(c))
|
||||
{
|
||||
c = towlower2(c);
|
||||
|
||||
@@ -2954,7 +2954,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
}
|
||||
else
|
||||
{
|
||||
if((iswlower(prev_in)) && (prev_in != 0xba)) // Windows thinks masc.ordinal (0xba) is lower-case
|
||||
if(iswlower2(prev_in))
|
||||
{
|
||||
// lower case followed by upper case in a word
|
||||
if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
|
||||
@@ -2970,7 +2970,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
// next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set
|
||||
}
|
||||
}
|
||||
else if((c != ' ') && iswupper(prev_in) && iswlower(next_in))
|
||||
else if((c != ' ') && iswupper2(prev_in) && iswlower2(next_in))
|
||||
{
|
||||
int next2_in;
|
||||
utf8_in(&next2_in,&source[source_index + next_in_nbytes]);
|
||||
|
||||
+5
-1
@@ -542,6 +542,7 @@ typedef struct {
|
||||
char tone_numbers;
|
||||
char ideographs; // treat as separate words
|
||||
char textmode; // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled)
|
||||
char dotless_i; // uses letter U+0131
|
||||
int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2"
|
||||
int listx; // compile *_listx after *list
|
||||
const unsigned int *replace_chars; // characters to be substitutes
|
||||
@@ -715,8 +716,11 @@ int IsAlpha(unsigned int c);
|
||||
int IsVowel(Translator *tr, int c);
|
||||
int iswalpha2(int c);
|
||||
int isspace2(unsigned int c);
|
||||
int iswlower2(int c);
|
||||
int iswupper2(int c);
|
||||
int towlower2(unsigned int c);
|
||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa);
|
||||
int towupper2(unsigned int c);
|
||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode);
|
||||
const char *WordToString2(unsigned int word);
|
||||
ALPHABET *AlphabetFromChar(int c);
|
||||
ALPHABET *AlphabetFromName(const char *name);
|
||||
|
||||
+1
-1
@@ -460,7 +460,7 @@ void TranslDlg::OnCommand(wxCommandEvent& event)
|
||||
t_phonetic->SetDefaultStyle(style_phonetic_large);
|
||||
|
||||
translate_text = 3;
|
||||
use_ipa = 1;
|
||||
use_ipa = 0x10;
|
||||
break;
|
||||
|
||||
case T_PROCESS:
|
||||
|
||||
+1
-1
@@ -601,7 +601,7 @@ voice_t *LoadVoice(const char *vname, int control)
|
||||
|
||||
// which directory to look for a named voice. List of voice names, must end in a space.
|
||||
static const char *voices_asia =
|
||||
"bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue ";
|
||||
"az bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue ";
|
||||
static const char *voices_europe =
|
||||
"an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv ";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user