mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.46.44]
Added language: ga (Irish). Languages changes: en-us, eo, hu, pt, ta, vi git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@310 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+27
-14
@@ -68,7 +68,7 @@ r R R3 s S t T tS
|
||||
v w x z Z
|
||||
|
||||
|
||||
Dictionary hu_dict 2013-02-25
|
||||
Dictionary hu_dict 2013-03-08
|
||||
|
||||
a A a: e E e: i i:
|
||||
o o: u u: Y y y: Y:
|
||||
@@ -104,7 +104,7 @@ p Q r R s s; t T
|
||||
ts v x z
|
||||
|
||||
|
||||
Dictionary en_dict 2013-03-06
|
||||
Dictionary en_dict 2013-03-08
|
||||
|
||||
0 0# 3 3: @ @- @2 @5
|
||||
@L a a# A: A@ aa aI aI3
|
||||
@@ -121,7 +121,7 @@ t T t2 tS v w x z
|
||||
Z z#
|
||||
|
||||
|
||||
Dictionary eo_dict 2013-01-24
|
||||
Dictionary eo_dict 2013-03-08
|
||||
|
||||
@- a aI aU e eI eU i
|
||||
o oI u uI
|
||||
@@ -206,7 +206,7 @@ q r r. s S s. t T
|
||||
t. th th. v w x z
|
||||
|
||||
|
||||
Dictionary ta_dict 2013-03-05
|
||||
Dictionary ta_dict 2013-03-08
|
||||
|
||||
a a: aI aU e E e: i
|
||||
I i: o o: u U u2 u:
|
||||
@@ -379,7 +379,7 @@ S s; S; t t; tS ts tS;
|
||||
ts; v w x z Z Z;
|
||||
|
||||
|
||||
Dictionary pt_dict 2013-03-07
|
||||
Dictionary pt_dict 2013-03-08
|
||||
|
||||
& &/ &U~ &~ @ @- a A
|
||||
aI aU e E eI EI eU EU
|
||||
@@ -491,7 +491,7 @@ p Q r R s S t tS
|
||||
v w z Z
|
||||
|
||||
|
||||
Dictionary vi_dict 2013-02-16
|
||||
Dictionary vi_dict 2013-03-08
|
||||
|
||||
@ @: @:I @:U @I @U a a:
|
||||
a:I a:U aI aU e E eU EU
|
||||
@@ -603,17 +603,17 @@ N n^ p q R s S S;
|
||||
t tS v w x z
|
||||
|
||||
|
||||
Dictionary ur_dict 2013-03-03
|
||||
Dictionary ur_dict 2013-03-08
|
||||
|
||||
@ a a: aI aU e E e:
|
||||
i I i: O o: U u: V
|
||||
|
||||
: b bh c ch d D d.
|
||||
dh dh. f g gh h H j
|
||||
J Jh k kh l m n N
|
||||
p ph Q q r R r. s
|
||||
S s. t T t. th th. v
|
||||
w x z Z z.
|
||||
: ; b bh c ch d D
|
||||
d. dh dh. f g gh h H
|
||||
j J Jh k kh l m n
|
||||
N p ph Q q r R r.
|
||||
s S s. t T t. th th.
|
||||
v w x z Z z.
|
||||
|
||||
|
||||
Dictionary bg_dict 2012-07-15
|
||||
@@ -734,7 +734,7 @@ s s. S; t t. th th. tS
|
||||
v w z
|
||||
|
||||
|
||||
Dictionary ka_dict 2013-02-01
|
||||
Dictionary ka_dict 2013-03-08
|
||||
|
||||
@ @- a e i o u
|
||||
|
||||
@@ -884,3 +884,16 @@ d. dh dh. g gh h H j
|
||||
J Jh k kh l m n N
|
||||
n. n^ p ph r r. s S
|
||||
s. t t. th th. v w z
|
||||
|
||||
|
||||
Dictionary ga_dict 2013-03-08
|
||||
|
||||
0 0# @ a a# A: aI aI#
|
||||
aU aU# e E E# e: i I
|
||||
i: i@ o O O# o: u U
|
||||
U# u1 u: u@
|
||||
|
||||
: ; b c C d d[ dZ
|
||||
f g h j k l m n
|
||||
p Q Q" r R s S t
|
||||
t[ tS v w x X z Z
|
||||
|
||||
@@ -127,6 +127,7 @@ _, k0m@
|
||||
_- h,aIf@n
|
||||
?3 _- daS
|
||||
_. d0t
|
||||
?3_. pi@rI@d
|
||||
_: koUl@n
|
||||
_; sEmIk'oUl@n
|
||||
_< lEsDan
|
||||
|
||||
+2
-2
@@ -3679,8 +3679,8 @@
|
||||
legged lEgId
|
||||
// Ab) le @L
|
||||
C) le (ton_ @L
|
||||
Ab) ler (_ l@
|
||||
Ab) le (C_ l@
|
||||
Ab) ler (_ l3
|
||||
Ab) le (B_ l@
|
||||
Ab) led (_ @Ld
|
||||
&) lem (ent @Lm
|
||||
&p) lem (ent lIm
|
||||
|
||||
+133
-132
@@ -13,214 +13,215 @@
|
||||
|
||||
|
||||
.group a
|
||||
_) a(_ a
|
||||
a a
|
||||
aj aI
|
||||
aŭ aU
|
||||
_) a (_ a
|
||||
a a
|
||||
aj aI
|
||||
aŭ aU
|
||||
|
||||
|
||||
.group b
|
||||
_) b(_ bo
|
||||
b b
|
||||
_) b (_ bo
|
||||
b b
|
||||
|
||||
.group c
|
||||
_) c(_ tso
|
||||
_) ch(_ tSo
|
||||
c ts
|
||||
ch (K tS // foreign words
|
||||
K) ch tS // foreign words
|
||||
_) c (_ tso
|
||||
_) ch (_ tSo
|
||||
c ts
|
||||
ch (K tS // foreign words
|
||||
K) ch tS // foreign words
|
||||
|
||||
|
||||
.group d
|
||||
_) d(_ do
|
||||
d d
|
||||
_) d (_ do
|
||||
d d
|
||||
|
||||
_) d (-ro dokt'o
|
||||
_) d (-rino d,okto
|
||||
_) d (-ro dokt'o
|
||||
_) d (-rino d,okto
|
||||
|
||||
.group e
|
||||
_) e(_ e
|
||||
e e
|
||||
ej eI
|
||||
eŭ eU
|
||||
_) e (_ e
|
||||
e e
|
||||
ej eI
|
||||
eŭ eU
|
||||
|
||||
.group f
|
||||
_) f(_ fo
|
||||
f f
|
||||
_) f (_ fo
|
||||
f f
|
||||
|
||||
_) f (-ino fR%aUl
|
||||
_) f (-lo fRaU
|
||||
_) f (-ino fR%aUl
|
||||
_) f (-lo fRaU
|
||||
|
||||
.group g
|
||||
_) g(_ go
|
||||
g g
|
||||
gh (K dZ
|
||||
_) g (_ go
|
||||
g g
|
||||
gh (K dZ
|
||||
|
||||
.group h
|
||||
_) h(_ ho
|
||||
h h
|
||||
hh x
|
||||
_) h (_ ho
|
||||
h h
|
||||
hh x
|
||||
|
||||
|
||||
.group i
|
||||
_) i(_ i
|
||||
i i
|
||||
_) i (_ i
|
||||
i i
|
||||
|
||||
|
||||
.group j
|
||||
_) j(_ jo
|
||||
j j
|
||||
jh (C Z
|
||||
_) j (_ jo
|
||||
j j
|
||||
jh (C Z
|
||||
|
||||
.group k
|
||||
_) k(_ ko
|
||||
k k
|
||||
_) k (_ ko
|
||||
k k
|
||||
|
||||
_) k (-do kamaR'a
|
||||
_) k (-dino k'amaRa
|
||||
_) k (-ino k'amaRad
|
||||
_) k (-do kamaR'a
|
||||
_) k (-dino k'amaRa
|
||||
_) k (-ino k'amaRad
|
||||
|
||||
|
||||
.group l
|
||||
_) l(_ lo
|
||||
l l
|
||||
ll (_ l
|
||||
_) l (_ lo
|
||||
l l
|
||||
ll (_ l
|
||||
|
||||
|
||||
.group m
|
||||
_) m(_ mo
|
||||
m m
|
||||
_) m (_ mo
|
||||
m m
|
||||
|
||||
.group n
|
||||
_) n(_ no
|
||||
n n
|
||||
n (_S1 n
|
||||
_) n (_ no
|
||||
n n
|
||||
n (_S1 n
|
||||
|
||||
_) n (-ro num'e
|
||||
_) n (-ro num'e
|
||||
|
||||
|
||||
.group o
|
||||
_) o(_ o
|
||||
o o
|
||||
oj oI
|
||||
-) o (_ %o
|
||||
-) oj (_ %oI
|
||||
-) on (_ %on
|
||||
-X) o (_ %o // d-ro etc
|
||||
-X) oj (_ %oI
|
||||
-X) on (_ %on
|
||||
_) o (_ o
|
||||
o o
|
||||
oj oI
|
||||
-) o (_ %o
|
||||
-) oj (_ %oI
|
||||
-) on (_ %on
|
||||
-X) o (_ %o // d-ro etc
|
||||
-X) oj (_ %oI
|
||||
-X) on (_ %on
|
||||
|
||||
.group p
|
||||
_) p(_ po
|
||||
p p
|
||||
ph (K f // foreign words
|
||||
K) ph f // foreign words
|
||||
_) p (_ po
|
||||
p p
|
||||
ph (K f // foreign words
|
||||
K) ph f // foreign words
|
||||
|
||||
.group q
|
||||
_) q(_ kwo
|
||||
q k
|
||||
qu kv
|
||||
_) q (_ kwo
|
||||
q k
|
||||
qu kv
|
||||
|
||||
.group r
|
||||
_) r(_ Ro
|
||||
r R
|
||||
A) r (A R
|
||||
K) r (A @-*
|
||||
rr RR
|
||||
_) r (_ Ro
|
||||
r R
|
||||
A) r (A R
|
||||
K) r (A @-*
|
||||
rr RR
|
||||
|
||||
.group s
|
||||
_) s(_ so
|
||||
_) sh(_ So
|
||||
s s
|
||||
sh (K S // foreign words
|
||||
K) sh S // foreign words
|
||||
_) s (_ so
|
||||
_) sh (_ So
|
||||
s s
|
||||
sh (K S // foreign words
|
||||
K) sh S // foreign words
|
||||
|
||||
_) s (-ino s,injoR
|
||||
_) s (-ro sinj'o
|
||||
_) s (-ino s,injoR
|
||||
_) s (-ro sinj'o
|
||||
|
||||
_) s (-ano s'am,ide
|
||||
_) s (-anino s'am,ide
|
||||
_) s (-ano s'am,ide
|
||||
_) s (-anino s'am,ide
|
||||
|
||||
_) s (-ta_ s'ank
|
||||
_) s (-ta_ s'ank
|
||||
|
||||
|
||||
.group t
|
||||
_) t(_ to
|
||||
t t
|
||||
th (K T // foreign words
|
||||
K) th T // foreign words
|
||||
_) t (_ to
|
||||
t t
|
||||
th (K T // foreign words
|
||||
K) th T // foreign words
|
||||
|
||||
-) ta (_ t%a // s-ta = sankta
|
||||
-) ta (_ t%a // s-ta = sankta
|
||||
|
||||
.group u
|
||||
_) u(_ u
|
||||
u u
|
||||
uj uI
|
||||
_) u (_ u
|
||||
u u
|
||||
uj uI
|
||||
|
||||
|
||||
.group v
|
||||
_) v(_ vo
|
||||
v v
|
||||
_) v (_ vo
|
||||
v v
|
||||
|
||||
.group w
|
||||
_) w(_ du'oblav,o
|
||||
w w
|
||||
K) wh w // foreign words
|
||||
_) w (_ du'oblav,o
|
||||
w w
|
||||
K) wh w // foreign words
|
||||
|
||||
.group x
|
||||
_) x(_ ikso
|
||||
x ks
|
||||
_) x z // foreign words
|
||||
_) x (_ ikso
|
||||
x ks
|
||||
_) x z // foreign words
|
||||
|
||||
.group y
|
||||
_) y(_ ipsilono
|
||||
y j
|
||||
K) y (K i
|
||||
_) y (_ ipsilono
|
||||
y j
|
||||
K) y (K i
|
||||
|
||||
|
||||
.group z
|
||||
_) z(_ zo
|
||||
z z
|
||||
_) z (_ zo
|
||||
z z
|
||||
|
||||
|
||||
.group
|
||||
_) ĉ (_ tSo
|
||||
ĉ tS
|
||||
_) ĉ (_ tSo
|
||||
ĉ tS
|
||||
|
||||
_) ĝ (_ dZo
|
||||
ĝ dZ
|
||||
_) ĝ (_ dZo
|
||||
ĝ dZ
|
||||
|
||||
_) ĥ (_ xo
|
||||
ĥ x
|
||||
_) ĥ (_ xo
|
||||
ĥ x
|
||||
|
||||
_) ĵ (_ Zo
|
||||
ĵ Z
|
||||
_) ĵ (_ Zo
|
||||
ĵ Z
|
||||
|
||||
_) ŝ (_ So
|
||||
ŝ S
|
||||
_) ŝ (_ So
|
||||
ŝ S
|
||||
|
||||
_) ŭ (_ wo
|
||||
ŭ w
|
||||
_) ŭ (_ wo
|
||||
ŭ w
|
||||
|
||||
C) ' (_ = // word end in apostrophe, stress the last vowel
|
||||
|
||||
'
|
||||
+ plus_
|
||||
_) ++ (_ plusplus
|
||||
|
||||
. punkto
|
||||
. (. _:
|
||||
\.) .
|
||||
|
||||
|
||||
'
|
||||
+ plus_
|
||||
_) ++ (_ plusplus
|
||||
|
||||
. punkto
|
||||
. (. _:
|
||||
\.) .
|
||||
|
||||
|
||||
£ pundo
|
||||
£ (_D _pundoI_:
|
||||
__) - (_D minus_
|
||||
D_) - (_D st@-*ek'eto_
|
||||
A_) - (_D _
|
||||
C_) - (_D _
|
||||
--) -
|
||||
- minus_
|
||||
- (_a
|
||||
$ dolaRo
|
||||
$ (_D _dolaRoI_:
|
||||
£ pundo
|
||||
£ (_D _pundoI_:
|
||||
__) - (_D minus_
|
||||
D_) - (_D st@-*ek'eto_
|
||||
A_) - (_D _
|
||||
C_) - (_D _
|
||||
--) -
|
||||
- minus_
|
||||
- (_a
|
||||
$ dolaRo
|
||||
$ (_D _dolaRoI_:
|
||||
|
||||
|
||||
Executable
+245
@@ -0,0 +1,245 @@
|
||||
// Irish Gaeilge dictionary
|
||||
// written by Ronan McGuirk
|
||||
// January 2013
|
||||
// version 2.5
|
||||
// This file is UTF8 encoded
|
||||
|
||||
// letters
|
||||
// letter names, as they are spoken as a single character in text
|
||||
// precede by _ to distinguish from pronunciation as a language word
|
||||
|
||||
_a eI
|
||||
b bi:
|
||||
c si:
|
||||
d di:
|
||||
e i:
|
||||
f Ef
|
||||
g dZi:
|
||||
h eItS
|
||||
_i aI
|
||||
j dZeI
|
||||
k keI
|
||||
l El
|
||||
m Em
|
||||
n En
|
||||
_o oU
|
||||
p pi:
|
||||
q kju:
|
||||
r ar
|
||||
s Es
|
||||
t ti:
|
||||
u ju:
|
||||
v vi:
|
||||
w d'O#b@lju:
|
||||
x Eks
|
||||
y waI
|
||||
z zEd
|
||||
_á eI||f0d[@
|
||||
_é i:||f0d[@
|
||||
_ó o:||f0d[@
|
||||
_ú ju:||f0d[@
|
||||
|
||||
_#32 spA:s
|
||||
|
||||
|
||||
// accent names
|
||||
|
||||
// names of symbols
|
||||
ª_. pO#nk
|
||||
_, k0m@
|
||||
_; semI
|
||||
_: ko:l0n
|
||||
_! Skre:@x
|
||||
_? kESt
|
||||
_' u:sx0m@
|
||||
. pO#nk
|
||||
% f@i:nge:@d[
|
||||
|
||||
|
||||
// numbers
|
||||
_0 @nA:idZ
|
||||
_1 @h'e:n
|
||||
_2 @d['o:
|
||||
_3 @tSR'i:
|
||||
_4 @k'ah@r
|
||||
_5 @ku:Ig
|
||||
_6 @S'e:
|
||||
_7 @S0xt[
|
||||
_8 @h'0xt[
|
||||
_9 @n@@'i:
|
||||
_1X @dZ'E
|
||||
_11 e:@nde:@g
|
||||
_12 d[o:je:@g
|
||||
_13 tr'i:de:@g
|
||||
_14 kah@rde:@g
|
||||
_15 ku:igde:@g
|
||||
_16 Se:de:@g
|
||||
_17 S0xtde:@g
|
||||
_18 O#xtde:@g
|
||||
_19 ni:de:@g
|
||||
_20 fICe
|
||||
_2X fiCE
|
||||
_3X trO#x@
|
||||
_31 trO#x@he:@n
|
||||
_40 d[0C@d
|
||||
_4X d[0C@d@
|
||||
_41 d[0C@dahe:@n
|
||||
_5X k@e:@g@
|
||||
_51 k@e:@g@he:@n
|
||||
_6X Sask@
|
||||
_61 Sask@he:@n
|
||||
_7X S0xto:
|
||||
_71 S0xt[o:he:@n
|
||||
_8X O#Xto:
|
||||
_81 O#xt[o:he:@n
|
||||
_9X no:x@
|
||||
_91 no:x@he:@n
|
||||
_0C ke:@d[
|
||||
_1C0 ke:@d[ // exactly one hundred
|
||||
_1C ke:@d[
|
||||
_101 ke:@d[@he:@n
|
||||
_2C ga:Ce:@d[
|
||||
_3C tri:Ce:@d[
|
||||
_4C kEr@ke:@d[
|
||||
_5C ku:igce:@d[
|
||||
_6C Se:ke:@d[
|
||||
_7C S0xtge:@d[
|
||||
_8C O#xtg'e:@d[
|
||||
_9C ni:ge:@d[
|
||||
_0M1 mi:lE
|
||||
_1M1 m'i:lE
|
||||
_2M1 gA:vi:lE
|
||||
_2001 gA:vi:lEs@he:@n
|
||||
_2002 gA:vi:lEs@d['o:
|
||||
_2003 gA:vi:lEs@tr'i:
|
||||
_2004 gA:vi:lEs@kah@r
|
||||
_2005 gA:vi:lEs@ku:ig
|
||||
_0M2 mIlu:n
|
||||
_1M2 'milu:n
|
||||
_2M2 d[A:vIlu:n
|
||||
_3M2 tri:vilu:n
|
||||
_4M2 kEr@milu:n
|
||||
_0M4 _bilu:n
|
||||
_1M4 'bilu:n
|
||||
_2M4 gA:vilu:n
|
||||
_3M4 tri:vilu:n
|
||||
_4M4 kEr@vilu:n
|
||||
|
||||
_0and Is
|
||||
_dpt pO#nk
|
||||
//_roman Rom'ano
|
||||
|
||||
//delete
|
||||
|
||||
|
||||
// words
|
||||
a @
|
||||
abhaile @w'0l;E
|
||||
ach 0x $u
|
||||
ag Eg $verbf $u
|
||||
anall @n'aUl
|
||||
aige @g'E
|
||||
air Er
|
||||
acu 0k'U
|
||||
ar Er $u
|
||||
arsa @rs@
|
||||
agaibh 0g@Iv
|
||||
agus 0g@s
|
||||
amach @m'0x
|
||||
amárach @m'A:r@x
|
||||
amuigh @mu1'I
|
||||
amháin @w'A:in
|
||||
am aUm
|
||||
an @n
|
||||
anois @nIS
|
||||
anonn @naUn
|
||||
ann aUn
|
||||
anseo @nS'O
|
||||
aodh e:
|
||||
aodha e:
|
||||
aon e:@n
|
||||
(ar ais) Er'aS
|
||||
arís @r'i:S
|
||||
as 0s
|
||||
atá @t['A: $u
|
||||
baill bu1'i:l
|
||||
bhaill vu1'i:l
|
||||
beidh bEg
|
||||
bhfuil w'Il
|
||||
bhuel w'El
|
||||
ceithre kEr@
|
||||
cathair k'0h@r
|
||||
chathair x'0h@r
|
||||
clainne kl'InE
|
||||
chlainne xl'InE
|
||||
chun xUn $u
|
||||
crainn kri:n
|
||||
de dE $u+
|
||||
des dEs $u
|
||||
|
||||
dhaoibh ji:v
|
||||
di dI $u+
|
||||
do dO# $u
|
||||
domhnach d[aUn@x
|
||||
domhnaigh d[aUnig
|
||||
eile 'El@
|
||||
euro ju:ro:
|
||||
faic f@ak
|
||||
faide f@Id[E
|
||||
faigh faIg
|
||||
feadh fag
|
||||
fear f'ar
|
||||
gcathair g0h@r
|
||||
gan g0n $u
|
||||
gheall jaUl
|
||||
(go raibh maith) g@r@m0h
|
||||
(go raibh míle) g@r@mi:l@
|
||||
gur gUr $u
|
||||
i I $u
|
||||
in In $u
|
||||
ina In@ $u
|
||||
ins Ins $u
|
||||
inniu Inj'u:v
|
||||
irish _^_EN
|
||||
is 'Is $u
|
||||
(is ea) IS'a
|
||||
isteach IstS'0x
|
||||
iúl ju:l
|
||||
laoghaire li:@r@
|
||||
le lE $u
|
||||
leí le:i:
|
||||
(maigh eo) mu1'i:||'o:
|
||||
(muigheo) mu1'i:||'o:
|
||||
mhuigh vu1'i:
|
||||
(mhaigh eo) vu1'i:||'o:
|
||||
maith m'0
|
||||
mhaith w'0
|
||||
mbeadh m;O#X
|
||||
mo mO# $u
|
||||
mura mUr@ $u
|
||||
ná nA: $u
|
||||
nigh ni:
|
||||
níorbh ni:rv
|
||||
nó nu: $u
|
||||
nollag n@l@g
|
||||
nolaig nO#lig
|
||||
Oirghiall 'Err@X@l
|
||||
orthu O#rhu
|
||||
os o:s
|
||||
rabh raU
|
||||
raibh rEv
|
||||
réamhrá r'e:@vr,a:
|
||||
réidh re:
|
||||
samhain saUIn
|
||||
san s@n
|
||||
seo S@_
|
||||
tabhair t'u:@r
|
||||
(tiocfaidh ár lá) tSO#ki:|'A:r|l'A:
|
||||
|
||||
// temporary fix for NO#DA punctuation
|
||||
dot pO#nk
|
||||
comma k0m@
|
||||
dash flESki:n
|
||||
tick u:@sx0m@
|
||||
space spA:s
|
||||
|
||||
Executable
+430
@@ -0,0 +1,430 @@
|
||||
// translation rules for Irish Gaeilge
|
||||
// This file is UTF-8 encoded
|
||||
// written by Ronan McGuirk January 2013
|
||||
// Version 2.5B
|
||||
|
||||
|
||||
|
||||
.L01 e i é í // slender vowels
|
||||
.L02 c ch d g gh n s // following ea gets ; sounds
|
||||
.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
|
||||
.L07 b c g ch bh gh mb
|
||||
.L08 lc ll nt bhse // for words like cailc
|
||||
.L09 cl cr chr f
|
||||
.L10 c ch p ph gl ghl
|
||||
.L11 c dh gh the s nn nne nt tiúil tiúla tíochta theoir theora ste steach ll llí llín g gí mse // word endings preceded by ai
|
||||
.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
|
||||
.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
|
||||
.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
|
||||
.L23 ea eo i
|
||||
.L24 b mb bh g gh p ph bp m mh
|
||||
.group a
|
||||
a 0#
|
||||
a (_ @
|
||||
adh (a aI // words like radharc
|
||||
adh (C aI
|
||||
abht aU#t[
|
||||
amhr aUr // words like amhras
|
||||
K) amhl aUl
|
||||
abhra aUr@ // 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 @ // words like féach
|
||||
X) a (nn_ aU#
|
||||
X) a (ll_ aU#
|
||||
abha aU@
|
||||
am (pla aUm
|
||||
ama(_ aU#m@
|
||||
athair 'ah@r
|
||||
_) amh aU
|
||||
agha aI@
|
||||
agh (d aI
|
||||
agh (s aI
|
||||
_) ath 0h
|
||||
|
||||
ai (m_ @
|
||||
aí i:
|
||||
aoi @i:
|
||||
_) aoi i:
|
||||
ath) aoi (r 'i:@
|
||||
r) aoi (nín 'e:@
|
||||
aoicht (_ 'i:@xt[
|
||||
C) ao (C @e:@
|
||||
_L24) ao (C w'e:@
|
||||
C) ao (th_ @e:
|
||||
b) ao (++ we:@
|
||||
b) ao (th_++ we:
|
||||
ao @e
|
||||
_) ao e:
|
||||
ae e:
|
||||
amhna (_ aUn@
|
||||
|
||||
.group á
|
||||
á A:
|
||||
@) á ,A:
|
||||
ádh A:
|
||||
áthair (_ A:h@r
|
||||
áthar A:h@r
|
||||
ái (p A:
|
||||
áinig A:nIg
|
||||
ái 'A:i
|
||||
.group ai
|
||||
ai a#
|
||||
L04) ai (L17 0#
|
||||
aile (_ '0l;E // words like baile
|
||||
Xc) ai (l '0#
|
||||
ch) ai (l '0#
|
||||
m) ai (n 0#
|
||||
c) ai (th 0#
|
||||
ch) ai (th 0#
|
||||
ai (d 0#
|
||||
p) ai (l 0#
|
||||
@) ai (L11_ I
|
||||
ai (L08+ aI#
|
||||
c) ai (l_ I
|
||||
ai (msi 'aI // words like aimsir
|
||||
_L04) ai (L18_++ u1'I//words like bain
|
||||
c) ai (t_ u1'I
|
||||
s) ai (bh E
|
||||
aighre aIr@
|
||||
X) aigh 'aI
|
||||
aigh aI# L04) aill (_ wi:l
|
||||
aing (_ Ing
|
||||
.group b
|
||||
b b // broad
|
||||
L01) b b; // slender
|
||||
b (L22 bj //slender
|
||||
bh v // broad
|
||||
bh (_ vv
|
||||
bh (L22 vj // slender
|
||||
L01) bh v
|
||||
_) bhf v /urú broad
|
||||
_) bhf (L22 v; // urú slender
|
||||
_) bp b //urú broad
|
||||
_) bp (L01 b; // urú slender
|
||||
a) bh (a U// for example cabhair
|
||||
ear) bha u: // words like Cearbhall
|
||||
bhfaigh v'aI
|
||||
|
||||
.group c
|
||||
c k
|
||||
c (L01 k; // slender
|
||||
ch x
|
||||
ch (L01 C;
|
||||
ch (é+ C;
|
||||
ch (ei+ x;
|
||||
_) cabhr k'aUr
|
||||
_) chabhr x'aUr
|
||||
|
||||
.group d
|
||||
d d[ // broad
|
||||
L01) d dZ // slender
|
||||
d (L22 dZ //slender
|
||||
d (L01 d; //slender
|
||||
i) d (i dZ
|
||||
dh Q // broad
|
||||
dh (ui Q //broad
|
||||
dh (ao Q //broad
|
||||
dh (L01 j // slender
|
||||
_) dt d[ //broad urú
|
||||
_) dt (L01 dZ // slender urú
|
||||
_) d' (@P2 d
|
||||
i) dh (_ g
|
||||
a) dh (_ X
|
||||
o) dh (_ X
|
||||
L19) dh (_ // silent dh at wrd end
|
||||
Va) dh (_+
|
||||
deartháir dr@h'A:r
|
||||
dheartháir gr@h'A:r
|
||||
deirfiúr d;r@f'u:r
|
||||
dheirfiúr g;r@f'u:r
|
||||
|
||||
.group e
|
||||
e E#
|
||||
eá A:
|
||||
ei E
|
||||
eidh (C aI
|
||||
r) ei (m aI
|
||||
eighea aI
|
||||
eighea aI
|
||||
eigh aI
|
||||
|
||||
|
||||
eo o:
|
||||
eogh o:
|
||||
d) eo (ch O#
|
||||
_) eo (ch O#
|
||||
s) eo (_ @
|
||||
|
||||
.group é
|
||||
é 'e:
|
||||
éi 'e:
|
||||
_) éi (rig aI // words like éirigh
|
||||
_) éi (rí aI // words like éirí
|
||||
_) éireoidh aIro:Ig
|
||||
éacs e:@ks
|
||||
.group ea
|
||||
ea a#
|
||||
X) ea (L21_ aU
|
||||
ea (ltaine aU
|
||||
g) ea (ll aU
|
||||
X) ea (ch 0
|
||||
_L04) ea (g @
|
||||
_L04) ea (dh_ @
|
||||
_L04) eagn @gn
|
||||
L04) eaga (_ @g@
|
||||
eaghl aIl
|
||||
eabhra aUr@ // words like Feabhra
|
||||
eanbhean 'an@v,an
|
||||
eadhb aIb
|
||||
|
||||
.group f
|
||||
f f // broad
|
||||
f (L22 f; // slender
|
||||
fh //silent
|
||||
fh (éin_ h
|
||||
fh (L22 ; //slender
|
||||
@) f (L06_ h
|
||||
|
||||
.group g
|
||||
g g // broad
|
||||
g (L01 g; // slender
|
||||
_) gh Q"
|
||||
_) gh (L01 Q"j
|
||||
_) gc g // urú broad
|
||||
_) gc (L01 g; // urú slender
|
||||
i) gh (_ g
|
||||
@C) gh (@ X
|
||||
_) gn g@n
|
||||
gh(n X@
|
||||
gheobh j'o:
|
||||
gabh gaU
|
||||
.group h
|
||||
h h // silent
|
||||
|
||||
.group i
|
||||
i I
|
||||
_) i I
|
||||
ia i@
|
||||
ia (tha i:
|
||||
io O#
|
||||
_) io (nadh u:// words like ionadh
|
||||
_pr) io (n u:
|
||||
L16) inn (_ i:n
|
||||
iai i:i
|
||||
impeall i:mp@l
|
||||
io (s I //words like fios and liosta
|
||||
L12) i i // non syllabic short i after long vowel
|
||||
iú u:
|
||||
m) i (d_ i: // verb ending
|
||||
|
||||
.group k
|
||||
k k
|
||||
|
||||
.group l
|
||||
l l // broad
|
||||
L01) l ( l; // slender
|
||||
l (L23 l; //slender
|
||||
ll l
|
||||
ll (L23 l;
|
||||
l (g l@
|
||||
l (b l@
|
||||
.group m
|
||||
m m // broad
|
||||
m (L20 m; //slender
|
||||
mh v
|
||||
mh (L20 v; // slender
|
||||
_) mb m //urú
|
||||
_) mb (L22 m; // urú slender
|
||||
_) m (n m@// words like mná
|
||||
L14) mh v
|
||||
_) mh (n v@
|
||||
léir) mheas vas
|
||||
r) m @m // words like gorm
|
||||
|
||||
.group n
|
||||
n n // broad
|
||||
n (L01 n; // slender
|
||||
_) nd n // urú
|
||||
_) nd (L01 n; // urú slender
|
||||
nn n
|
||||
nn (L01 n; // slender
|
||||
n (b n@
|
||||
n (m n@
|
||||
n (bh n@ n(ch n@
|
||||
c) n @n
|
||||
ch) n @n
|
||||
.group o
|
||||
o O#
|
||||
_) o 'O
|
||||
C) o (cht_ 'O
|
||||
orn (_ 'Or@n
|
||||
|
||||
_C) omh o:
|
||||
_CC) omh o:
|
||||
omha o:@
|
||||
omhai o:@
|
||||
o (ll_ aU
|
||||
C) o (nn_ aU
|
||||
r) o (nn_ O#
|
||||
C) ogh aU
|
||||
omhan(_ aU@n
|
||||
omhain (_ aUIn
|
||||
odha aU
|
||||
opaic @pIk
|
||||
C) odh (_ o:
|
||||
odl (a O#l
|
||||
oí i:
|
||||
|
||||
.group ó
|
||||
ó 'o:
|
||||
ómhai o:@
|
||||
|
||||
.group oi
|
||||
oi O
|
||||
_L15) oi (+ @'I
|
||||
_) oi (b I
|
||||
oi (de I
|
||||
h) oi (b I
|
||||
_) oi (r I
|
||||
r) oi I
|
||||
l) oi (n I
|
||||
f) oi (lC aI
|
||||
l) oi (g I
|
||||
fh) oi (lC aI
|
||||
s) oi (ls aI#
|
||||
c) oi (c aI#
|
||||
oi (nnío @
|
||||
oi (mis @
|
||||
ois (++ O#S
|
||||
oill w'i:l
|
||||
_) oi (leá 'I
|
||||
oidh aI
|
||||
oir (_ 'ERR
|
||||
oigh (ea aI
|
||||
.group p
|
||||
p p // broad
|
||||
ph f //broad
|
||||
p (L22 p; //slender
|
||||
ph (L20 f; // slender
|
||||
|
||||
.group q
|
||||
q k
|
||||
qu k
|
||||
|
||||
.group r
|
||||
r r // broad
|
||||
L01) r R // slender
|
||||
_) r (L01 R
|
||||
L12i) r (e_ Z
|
||||
L12i) r (t_ Z
|
||||
rr R
|
||||
rg r@g
|
||||
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
|
||||
s (L01 S // slender
|
||||
s (cL01 S
|
||||
s (CCL01 S // slender
|
||||
s (pCé s // broad
|
||||
sh h
|
||||
sh (CL01 h
|
||||
sh (L01 h;
|
||||
s (lL01 S
|
||||
|
||||
.group t
|
||||
t t[ // broad
|
||||
L01) t c // slender
|
||||
t (í++n tS //slender
|
||||
t (eo++ tS
|
||||
t (L01 c // slender
|
||||
L01C) t tS //slender after consonant
|
||||
t (CL01 tS // slender with following consonant before vowels
|
||||
th h
|
||||
th (L01 h;
|
||||
L01C) th h
|
||||
_) ts t[ //eclipsis broad
|
||||
_) ts (L01 t; // eclipsis slender
|
||||
L01) th h
|
||||
taine (_ t[In%E
|
||||
ao) th (_
|
||||
thne (_ h@nE
|
||||
A) th (_ // silent th at word end
|
||||
|
||||
.group u
|
||||
u U#
|
||||
ua u@
|
||||
uai u@
|
||||
uai (g ui
|
||||
uai (d ui
|
||||
uá u:'A:
|
||||
ui I
|
||||
uinn (_ 'i:n
|
||||
uinti U#'i:ntI
|
||||
_b) uí wi:
|
||||
_bh) uí wi:
|
||||
g) uí wi:
|
||||
umh u:
|
||||
L03) ui @I
|
||||
_d) u (l_ O#
|
||||
g) ui (gh_ @i:
|
||||
gh) ui (gh_ @i:
|
||||
uí i:
|
||||
uachai 'ux@
|
||||
.group ú
|
||||
ú u:
|
||||
únmh u:nv
|
||||
|
||||
úi (r u:
|
||||
|
||||
.group j
|
||||
j dZ
|
||||
|
||||
.group q
|
||||
q k
|
||||
qu (A kw
|
||||
|
||||
.group v
|
||||
v v
|
||||
|
||||
.group w
|
||||
w w
|
||||
|
||||
.group x
|
||||
x ks
|
||||
_) x z
|
||||
|
||||
.group y
|
||||
y (A j
|
||||
_A) y j
|
||||
y i
|
||||
|
||||
.group z
|
||||
z z
|
||||
|
||||
.group
|
||||
í 'i:
|
||||
|
||||
|
||||
+69
-9
@@ -173,6 +173,8 @@ nyargon) c (cs ts
|
||||
udvaron) c (ser ts
|
||||
pere) c (cs ts
|
||||
licen) ccs ts|tS
|
||||
nyol) c (csat ts
|
||||
pokró) c (sá ts
|
||||
|
||||
.group ch
|
||||
anar) ch (i h
|
||||
@@ -452,6 +454,11 @@ szomszé) d (sor d
|
||||
herná) d (sz d
|
||||
szaba) d (szent d
|
||||
for) d (jános d
|
||||
egye) d (szám d
|
||||
shetlan) d (szige d
|
||||
szaba) d (szem d
|
||||
_tren) dsz (e d|s
|
||||
vakon) d (sz d
|
||||
|
||||
.group dz
|
||||
fogó) dz (kod ts
|
||||
@@ -502,6 +509,7 @@ kapáló) dz z
|
||||
gyűrű) dz (ik z
|
||||
burkoló) dz z
|
||||
|
||||
|
||||
.group e
|
||||
e E
|
||||
000_-) el (_ REl // double R for 1000-el
|
||||
@@ -630,6 +638,12 @@ szentsé) g (gy g
|
||||
világossá) g (gy g
|
||||
vilá) g (gy g
|
||||
virá) g (gy g
|
||||
csilla) g (gy g
|
||||
édessé) g (gy g
|
||||
ge) g (gyár g
|
||||
han) g (gy g
|
||||
hazugsá) g (gy g
|
||||
tőze) g (gy g
|
||||
|
||||
.group gy
|
||||
gy J
|
||||
@@ -1005,7 +1019,8 @@ szivárvá) ny (játsz n^
|
||||
utá) n (nyom n
|
||||
verse) ny (játék n^
|
||||
_elle) n (jav n
|
||||
vagyo) n (jog n
|
||||
vagyo) n (jog n
|
||||
nny (elv n|n^
|
||||
|
||||
.group o
|
||||
o o
|
||||
@@ -1064,7 +1079,7 @@ vagyo) n (jog n
|
||||
s S
|
||||
s (-sz s: //if have the - character the next word part beginning with sz, always need spokening s: phoneme
|
||||
s-) sz //but not need spokening second sz phoneme
|
||||
dns-) sz s
|
||||
dns-) sz s
|
||||
föld) s (ánc S
|
||||
?1 hel) s (inki z
|
||||
ki) s (ebb SS
|
||||
@@ -1146,6 +1161,7 @@ _tetszé) s S
|
||||
ki) s (sziget S
|
||||
ki) s (szőlő S
|
||||
körö) s (szeg S
|
||||
kolbászo) s S
|
||||
|
||||
.group ss
|
||||
ssz ss2
|
||||
@@ -1640,9 +1656,47 @@ _kemene) ssz Ss
|
||||
_szamo) ssz Ss
|
||||
_szilvá) ssz Ss
|
||||
_vámo) ssz Ss
|
||||
keresé) ssz Ss
|
||||
cipő) ssz Ss
|
||||
szorongá) ssz Ss
|
||||
keresé) ssz Ss
|
||||
cipő) ssz Ss
|
||||
szorongá) ssz Ss
|
||||
alkalmazá) ssz Ss
|
||||
kezdé) ssz Ss
|
||||
edzé) ssz Ss
|
||||
egye) ssz (ám Ss
|
||||
felsorolá) ssz Ss
|
||||
ssz (ürk Ss
|
||||
ssz (őke Ss
|
||||
formán) ssz (int Ss
|
||||
hami) ssz (ín Ss
|
||||
mászá) ssz (erű Ss
|
||||
hárma) ssz Ss
|
||||
hívá) ssz Ss
|
||||
hivatkozá) ssz Ss
|
||||
leve) ssz Ss
|
||||
_hú) ssz (öv Ss
|
||||
ismétlé) ssz Ss
|
||||
járá) ssz Ss
|
||||
kattintá) ssz Ss
|
||||
_ki) ssz (öv Ss
|
||||
közlekedé) ssz Ss
|
||||
laká) ssz Ss
|
||||
légzé) ssz Ss
|
||||
_le) ssz (ab Ss
|
||||
meglepeté) ssz Ss
|
||||
nyila) ssz Ss
|
||||
pszichológu) ssz Ss
|
||||
ráko) ssz Ss
|
||||
ritmu) ssz Ss
|
||||
rúzso) ssz Ss
|
||||
stílu) ssz Ss
|
||||
víru) ssz Ss
|
||||
szállodá) ssz Ss
|
||||
taxi) ssz Ss
|
||||
ugrá) ssz Ss
|
||||
üstökö) ssz Ss
|
||||
visszaélé) ssz Ss
|
||||
esé) ssz (erű Ss
|
||||
webe) ssz Ss
|
||||
|
||||
.group sz
|
||||
sz s
|
||||
@@ -1699,6 +1753,10 @@ fáklyá) sz (ene Sz
|
||||
para) szts (üte st|S
|
||||
para) sztsz (ag st|s
|
||||
para) szts (uhan st|S
|
||||
sz (avar S|z
|
||||
pénze) sz (k s
|
||||
ellenállá) sz (ón Sz
|
||||
ré) sz (árás Sz
|
||||
|
||||
.group t
|
||||
t t
|
||||
@@ -1842,7 +1900,7 @@ szögle) t (szob t
|
||||
vizi) t (szob t
|
||||
zár) t (szék t
|
||||
szé) t (szortír t
|
||||
_robo) t (szoftve t
|
||||
_robo) t (szoftve t
|
||||
|
||||
.group tj
|
||||
C) tj c
|
||||
@@ -1929,7 +1987,7 @@ természe) tj (og tj
|
||||
_tisztele) tj (el tj
|
||||
zené) tj (átsz tj
|
||||
szen) tj (akab tj
|
||||
közérze) tj (aví tj
|
||||
közérze) tj (aví tj
|
||||
|
||||
.group ts
|
||||
ts (_S2 tS //general rule with word end of ts letters
|
||||
@@ -2144,8 +2202,8 @@ felira) ts (áv t|S
|
||||
pö) tsz (en ts:
|
||||
_á) tsz (orult t|s
|
||||
leme) tsz (vén ts
|
||||
_cha) tsz (ob t|s
|
||||
robo) ts (of t|S
|
||||
_cha) tsz (ob t|s
|
||||
robo) ts (of t|S
|
||||
|
||||
.group tt
|
||||
tt t:
|
||||
@@ -2411,6 +2469,8 @@ csatlako) z (tok s
|
||||
tí) z (sáv z
|
||||
_tí) z (shill z
|
||||
topá) z z
|
||||
dör) zsz (ör Z|z
|
||||
raj) z (sabl z
|
||||
|
||||
.group
|
||||
$ dolla:R2
|
||||
|
||||
+8
-8
@@ -139,14 +139,14 @@
|
||||
ჺ
|
||||
|
||||
// For cyrillic characters (U+0400 to U+04FF) use Russian voice
|
||||
.group 0xd0
|
||||
0xd0 _^_RU
|
||||
.group 0xd1
|
||||
0xd1 _^_RU
|
||||
.group 0xd2
|
||||
0xd2 _^_RU
|
||||
.group 0xd3
|
||||
0xd3 _^_RU
|
||||
//.group 0xd0
|
||||
// 0xd0 _^_RU
|
||||
//.group 0xd1
|
||||
// 0xd1 _^_RU
|
||||
//.group 0xd2
|
||||
// 0xd2 _^_RU
|
||||
//.group 0xd3
|
||||
// 0xd3 _^_RU
|
||||
|
||||
.group
|
||||
$ dolari
|
||||
|
||||
+2
-2
@@ -651,7 +651,6 @@ antonieta $alt2
|
||||
apego $alt2 $noun
|
||||
apelo $alt $verb
|
||||
aposto $alt $verb
|
||||
apreço $alt2
|
||||
aperto $alt2 $noun
|
||||
apoio $alt $verb
|
||||
aprovo $alt
|
||||
@@ -713,6 +712,7 @@ choro $alt2 $noun
|
||||
chovesse $alt2
|
||||
chupeta $alt2
|
||||
clamores $alt2
|
||||
clero $alt
|
||||
coco $alt2
|
||||
cofre $alt
|
||||
cogumelo $alt
|
||||
@@ -910,6 +910,7 @@ palacete $alt2
|
||||
palheta $alt2
|
||||
panfleto $alt2
|
||||
pangeia $alt
|
||||
panqueca p,&~Nk'Ek&
|
||||
pantera $alt
|
||||
paralelo $alt
|
||||
parede $alt2
|
||||
@@ -932,7 +933,6 @@ portos $alt
|
||||
pose $alt2
|
||||
povos $alt
|
||||
poxa p'oS&
|
||||
preço $alt2
|
||||
primavera $alt
|
||||
provo $alt
|
||||
quarteto $alt2
|
||||
|
||||
+9
-1
@@ -1,4 +1,5 @@
|
||||
// translation rules Brazilian
|
||||
// translation rules Brazilian
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
// Options
|
||||
@@ -365,6 +366,8 @@ _compreend) e (L06_ e
|
||||
_entend) e (L06_ e
|
||||
_estend) e (L06_ e
|
||||
respond) e (L06_ e // cor-
|
||||
_enraivec) e (L07_ e
|
||||
_espairec) e (L07_ e
|
||||
bat) e (L07_ e // re- com-
|
||||
ced) e (L07_ e // pro- con- su-
|
||||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub-
|
||||
@@ -416,7 +419,9 @@ entend) e (L07_ e
|
||||
preend) e (L07_ e // sur- com-
|
||||
respond) e (L07_ e // cor-
|
||||
qu) e (brL04_ E
|
||||
acel) e (rL04_ E / des-
|
||||
_hosp) e (dL03_ E
|
||||
_in) e (ptL03_ E
|
||||
_gr) e (gL03_ e
|
||||
_n) e (grL03_ e
|
||||
_estr) ei (L03_ EI
|
||||
@@ -449,6 +454,7 @@ respond) e (L07_ e // cor-
|
||||
_bez) e (rrL03_ e
|
||||
_inv) e (rtL03_ e
|
||||
_f) e (rvL03_ e
|
||||
_enraiv) e (çL03_ e
|
||||
_p) e (sL01_ E
|
||||
_d) e (scL02_ E
|
||||
_cr) e (scL02_ E
|
||||
@@ -485,8 +491,10 @@ _emagr) e (çL03
|
||||
conh) e (çL03_ e // re-
|
||||
_esqu) e (çL03_ e
|
||||
_forn) e (çL03_ e
|
||||
_obed) e (çL03_ e
|
||||
obed) e (çL03_ e / des-
|
||||
_ofer) e (çL03_ e
|
||||
pr) e (çL03_ e / a-
|
||||
_espair) e (çL03_ e
|
||||
abast) e (çL03_ e // re-
|
||||
_aborr) e (çL03_ e
|
||||
_agrad) e (çL03_ e
|
||||
|
||||
@@ -1015,6 +1015,7 @@ _தணிகா) ச (ல tSV
|
||||
_) ச (வான tSV
|
||||
_) ச (ாக்கட்டி tS
|
||||
_) சாக்ப (ீL04 tSa:kp
|
||||
_) சாக்லெட் tSa:klet.
|
||||
_) சாக்லேட் tSa:kle:t.
|
||||
_) சா (ட்டர்ஜி tSe:
|
||||
_) ச (ாணக்கிய tS
|
||||
@@ -1048,12 +1049,14 @@ _தணிகா) ச (ல tSV
|
||||
ஆ) ச (ாரங்கள tS
|
||||
ஆ) ச (ாரத் tS
|
||||
ஆ) ச (ாரம tS
|
||||
_சிவா) ச (ாரி tS
|
||||
_ரங்கா) ச (ாரி tS
|
||||
_வரதா) ச (ாரி tS
|
||||
_வேதா) ச (ாரி tS
|
||||
_கிருஷ்ணமா) ச (ாரி tS
|
||||
_தேசிகா) ச (ாரி tS
|
||||
_பட்டா) ச (ாரி tS
|
||||
_மத்வா) ச (ாரி tS
|
||||
அனந்தா) ச (ாரி tS
|
||||
அன்னமா) ச (ாரி tS
|
||||
ஆ) ச (ாரிய_ tS
|
||||
@@ -2406,6 +2409,7 @@ _சி) த்ரலேக (ா trVle:k
|
||||
_) ப (ட்டக்ஸ bV
|
||||
_) ப (ட்டன bV
|
||||
_) ப (ட்டன_ pV
|
||||
_) ப (ட்டாசாரி bV
|
||||
_) ப (தில bV
|
||||
_) பத்த (ிரகாளி bVdd
|
||||
_) பத்திரப் (_ bVttirVp
|
||||
@@ -2814,6 +2818,7 @@ _விளையாடு_) ப (ாம்பே p
|
||||
_) ப (ிடில f
|
||||
_) ப (ிட்சு b
|
||||
_) ப (ிட்டடி b
|
||||
_) பிந்தி (ரன்வாலே bind
|
||||
_) ப (ினாமி b
|
||||
_) ப (ினிஷ f
|
||||
_) ப (ின்_லேடன b
|
||||
@@ -3744,6 +3749,7 @@ _ஞானப்) பிரக (ா prVk
|
||||
_மL06ாப்) பி (ரப p
|
||||
வீண்) பி (ரமை b
|
||||
துஷ்) பி (ரயோக p
|
||||
_சொற்) பி (ரயோக p
|
||||
L03ந்தப்) பி (ரளய p
|
||||
_சொற்) பி (ரவாக p
|
||||
எக்ஸ்) பிர (ஸ pre
|
||||
|
||||
+195
-8
@@ -77,26 +77,40 @@ ỵ ỵ
|
||||
//================================
|
||||
// Consonants
|
||||
//================================
|
||||
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve
|
||||
.L02 n
|
||||
|
||||
|
||||
.group b
|
||||
b b
|
||||
_) b _b
|
||||
//b($w_alt2 _^_EN
|
||||
|
||||
.group c
|
||||
c g //k
|
||||
c (_ kh
|
||||
ch c // try [tS;] [tS] [c]
|
||||
ce (_ _^_EN
|
||||
_) cl _^_EN
|
||||
|
||||
|
||||
|
||||
.group d
|
||||
d J^ // try [z] [J] [dZ] [dZ;] [J^]
|
||||
d (_ _^_EN
|
||||
|
||||
|
||||
|
||||
.group đ
|
||||
đ d
|
||||
_) đ _d
|
||||
|
||||
|
||||
|
||||
.group f
|
||||
f f
|
||||
//f f
|
||||
_) f _^_EN
|
||||
f (_ _^_EN
|
||||
|
||||
|
||||
.group g
|
||||
@@ -107,7 +121,7 @@ ỵ ỵ
|
||||
//g (í J^
|
||||
//g (ỉ J^
|
||||
//g (ĩ J^
|
||||
//g (ị J^
|
||||
//g (ị J^
|
||||
gi J^
|
||||
?1 giết J^'iE3g
|
||||
giết J^'iE3t[
|
||||
@@ -115,6 +129,10 @@ ỵ ỵ
|
||||
?1 giệt J^'iE6g
|
||||
giệt J^'iE6t[
|
||||
giệc J^'iE6kh
|
||||
_) gol _^_EN
|
||||
_) gat _^_EN
|
||||
ght (_ _^_EN
|
||||
|
||||
|
||||
.group h
|
||||
h h
|
||||
@@ -126,65 +144,97 @@ ỵ ỵ
|
||||
|
||||
.group k
|
||||
k k
|
||||
k (_ kh
|
||||
//k (_ kh
|
||||
kh x
|
||||
k (_ _^_EN
|
||||
|
||||
|
||||
.group l
|
||||
l l
|
||||
l (_ _^_EN
|
||||
le (_ _^_EN
|
||||
|
||||
|
||||
.group m
|
||||
m m
|
||||
|
||||
|
||||
.group n
|
||||
n n
|
||||
?1 n (_ N //n
|
||||
ng N
|
||||
ngh N
|
||||
nh n^
|
||||
nd (_ _^_EN
|
||||
|
||||
|
||||
.group ñ
|
||||
ñ n^
|
||||
|
||||
|
||||
.group p
|
||||
p p
|
||||
ph f
|
||||
|
||||
|
||||
.group q
|
||||
q k
|
||||
q (_ kh
|
||||
qu w //kw
|
||||
|
||||
|
||||
.group r
|
||||
r z. // try [z] [z.] [r] [z;]
|
||||
r (_ _^_EN
|
||||
rm (_ _^_EN
|
||||
|
||||
|
||||
.group s
|
||||
s s. // try [s.] [s] [S]
|
||||
_) sh _^_EN
|
||||
s (_ _^_EN
|
||||
st (_ _^_EN
|
||||
se (_ _^_EN
|
||||
|
||||
|
||||
.group t
|
||||
t t[
|
||||
?1 t (_ g
|
||||
th t
|
||||
tr cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]
|
||||
ts (_ _^_EN
|
||||
te (_ _^_EN
|
||||
th (_ _^_EN
|
||||
tt (_ _^_EN
|
||||
|
||||
|
||||
.group v
|
||||
v v
|
||||
ve (_ _^_EN
|
||||
|
||||
|
||||
.group w
|
||||
w w
|
||||
_) w _^_EN
|
||||
w (_ _^_EN
|
||||
|
||||
|
||||
.group x
|
||||
x s
|
||||
x (_ _^_EN
|
||||
|
||||
|
||||
.group z
|
||||
z z
|
||||
|
||||
|
||||
z (_ _^_EN
|
||||
|
||||
|
||||
//================================
|
||||
// Vowels
|
||||
//================================
|
||||
|
||||
|
||||
|
||||
.group a
|
||||
a a:
|
||||
ai a:I
|
||||
@@ -211,6 +261,9 @@ ỵ ỵ
|
||||
aủ aU4
|
||||
aũ aU5
|
||||
aụ aU6
|
||||
a (L01 _^_EN
|
||||
ai (L02 _^_EN
|
||||
|
||||
|
||||
.group à
|
||||
à a:2
|
||||
@@ -219,6 +272,7 @@ ỵ ỵ
|
||||
ào a:U2
|
||||
àu aU2
|
||||
|
||||
|
||||
.group á
|
||||
á a:3
|
||||
ái a:I3
|
||||
@@ -226,6 +280,7 @@ ỵ ỵ
|
||||
áo a:U3
|
||||
áu aU3
|
||||
|
||||
|
||||
.group ả
|
||||
ả a:4
|
||||
ải a:I4
|
||||
@@ -233,6 +288,7 @@ ỵ ỵ
|
||||
ảo a:U4
|
||||
ảu aU4
|
||||
|
||||
|
||||
.group ã
|
||||
ã a:5
|
||||
ãi a:I5
|
||||
@@ -240,6 +296,7 @@ ỵ ỵ
|
||||
ão a:U5
|
||||
ãu aU5
|
||||
|
||||
|
||||
.group ạ
|
||||
ạ a:6
|
||||
ại a:I6
|
||||
@@ -247,56 +304,79 @@ ỵ ỵ
|
||||
ạo a:U6
|
||||
ạu aU6
|
||||
|
||||
|
||||
//================================
|
||||
.group ă
|
||||
ă a
|
||||
|
||||
|
||||
|
||||
.group ằ
|
||||
ằ a2
|
||||
|
||||
|
||||
|
||||
.group ắ
|
||||
ắ a3
|
||||
|
||||
|
||||
|
||||
.group ẳ
|
||||
ẳ a4
|
||||
|
||||
|
||||
|
||||
.group ẵ
|
||||
ẵ a5
|
||||
|
||||
|
||||
|
||||
.group ặ
|
||||
ặ a6
|
||||
|
||||
|
||||
//=================================
|
||||
.group â
|
||||
â @
|
||||
ây @I
|
||||
âu @U1
|
||||
|
||||
|
||||
|
||||
.group ầ
|
||||
ầ @2
|
||||
ầy @I2
|
||||
ầu @U2
|
||||
|
||||
|
||||
|
||||
.group ấ
|
||||
ấ @3
|
||||
ấy @I3
|
||||
ấu @U3
|
||||
|
||||
|
||||
|
||||
.group ẩ
|
||||
ẩ @4
|
||||
ẩy @I4
|
||||
ẩu @U4
|
||||
|
||||
|
||||
|
||||
.group ẫ
|
||||
ẫ @5
|
||||
ẫy @I5
|
||||
ẫu @U5
|
||||
|
||||
|
||||
|
||||
.group ậ
|
||||
ậ @6
|
||||
ậy @I6
|
||||
ậu @U6
|
||||
|
||||
|
||||
//===========================
|
||||
.group e
|
||||
e E
|
||||
@@ -306,56 +386,78 @@ ỵ ỵ
|
||||
eỏ EU4
|
||||
eỗ EU5
|
||||
eọ EU6
|
||||
e (L01 _^_EN
|
||||
ey (_ _^_EN
|
||||
|
||||
|
||||
.group è
|
||||
è E2
|
||||
èo EU2
|
||||
|
||||
|
||||
|
||||
.group é
|
||||
é E3
|
||||
éo EU3
|
||||
|
||||
|
||||
|
||||
.group ẻ
|
||||
ẻ E4
|
||||
ẻo EU4
|
||||
|
||||
|
||||
|
||||
.group ẽ
|
||||
ẽ E5
|
||||
ẽo EU5
|
||||
|
||||
|
||||
|
||||
.group ẹ
|
||||
ẹ E6
|
||||
ẹo EU6
|
||||
|
||||
|
||||
//============================
|
||||
|
||||
.group ê
|
||||
ê e
|
||||
êu eU1
|
||||
|
||||
|
||||
|
||||
.group ề
|
||||
ề e2
|
||||
ều eU2
|
||||
|
||||
|
||||
|
||||
.group ế
|
||||
ế e3
|
||||
ếu eU3
|
||||
|
||||
|
||||
|
||||
.group ể
|
||||
ể e4
|
||||
ểu eU4
|
||||
|
||||
|
||||
|
||||
.group ễ
|
||||
ễ e5
|
||||
ễu eU5
|
||||
|
||||
|
||||
|
||||
.group ệ
|
||||
ệ e6
|
||||
ệu eU6
|
||||
|
||||
|
||||
|
||||
//============================
|
||||
|
||||
.group i
|
||||
i i
|
||||
i (A j
|
||||
@@ -383,6 +485,8 @@ ỵ ỵ
|
||||
iểu iU4
|
||||
iễu iU5
|
||||
iệu iU6
|
||||
i (L01 _^_EN
|
||||
|
||||
|
||||
.group ì
|
||||
ì i2
|
||||
@@ -390,24 +494,28 @@ ỵ ỵ
|
||||
ìa i@2
|
||||
ìu iU2
|
||||
|
||||
|
||||
.group í
|
||||
í i3
|
||||
í (A j3
|
||||
ía i@3
|
||||
íu iU3
|
||||
|
||||
|
||||
.group ỉ
|
||||
ỉ i4
|
||||
ỉ (A j4
|
||||
ỉa i@4
|
||||
ỉu iU4
|
||||
|
||||
|
||||
.group ĩ
|
||||
ĩ i5
|
||||
ĩ (A j5
|
||||
ĩa i@5
|
||||
ĩu iU5
|
||||
|
||||
|
||||
.group ị
|
||||
ị i6
|
||||
ị (A j6
|
||||
@@ -415,8 +523,8 @@ ỵ ỵ
|
||||
ịu iU6
|
||||
|
||||
|
||||
|
||||
//=========================
|
||||
|
||||
.group o
|
||||
o O
|
||||
oa o@ // modify oa sound example: hoa,khoa // o (A w
|
||||
@@ -428,6 +536,8 @@ ỵ ỵ
|
||||
oị OI6
|
||||
ong O#
|
||||
oe o& // Adding oe sound example: lóe sáng,toét mắt
|
||||
o (L01 _^_EN
|
||||
|
||||
|
||||
.group ò
|
||||
ò O2
|
||||
@@ -436,6 +546,8 @@ ỵ ỵ
|
||||
òng O#2
|
||||
òe o&2
|
||||
|
||||
|
||||
|
||||
.group ó
|
||||
ó O3
|
||||
ói OI3
|
||||
@@ -443,6 +555,8 @@ ỵ ỵ
|
||||
óng O#3
|
||||
óe o&3
|
||||
|
||||
|
||||
|
||||
.group ỏ
|
||||
ỏ O4
|
||||
ỏi OI4
|
||||
@@ -450,6 +564,8 @@ ỵ ỵ
|
||||
ỏng O#4
|
||||
ỏe o&4
|
||||
|
||||
|
||||
|
||||
.group õ
|
||||
õ O5
|
||||
õi OI5
|
||||
@@ -457,6 +573,8 @@ ỵ ỵ
|
||||
õng O#5
|
||||
õe o&5
|
||||
|
||||
|
||||
|
||||
.group ọ
|
||||
ọ O6
|
||||
ọi OI6
|
||||
@@ -465,32 +583,43 @@ ỵ ỵ
|
||||
ọe o&6
|
||||
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group ô
|
||||
ô o
|
||||
ôi oI
|
||||
ông o# // ông sound
|
||||
|
||||
|
||||
.group ồ
|
||||
ồ o2
|
||||
ồi oI2
|
||||
ồng o#2
|
||||
|
||||
|
||||
|
||||
.group ố
|
||||
ố o3
|
||||
ối oI3
|
||||
ống o#3
|
||||
|
||||
|
||||
|
||||
.group ổ
|
||||
ổ o4
|
||||
ổi oI4
|
||||
ổng o#4
|
||||
|
||||
|
||||
|
||||
.group ỗ
|
||||
ỗ o5
|
||||
ỗi oI5
|
||||
ỗng o#5
|
||||
|
||||
|
||||
|
||||
.group ộ
|
||||
ộ o6
|
||||
ội oI6
|
||||
@@ -499,31 +628,42 @@ ỵ ỵ
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group ơ
|
||||
ơ @:
|
||||
ơi @:I
|
||||
ơu @:U
|
||||
|
||||
|
||||
|
||||
.group ờ
|
||||
ờ @:2
|
||||
ời @:I2
|
||||
ờu @:U2
|
||||
|
||||
|
||||
|
||||
.group ớ
|
||||
ớ @:3
|
||||
ới @:I3
|
||||
ớu @:U3
|
||||
|
||||
|
||||
|
||||
.group ở
|
||||
ở @:4
|
||||
ởi @:I4
|
||||
ởu @:U4
|
||||
|
||||
|
||||
|
||||
.group ỡ
|
||||
ỡ @:5
|
||||
ỡi @:I5
|
||||
ỡu @:U5
|
||||
|
||||
|
||||
|
||||
.group ợ
|
||||
ợ @:6
|
||||
ợi @:I6
|
||||
@@ -532,6 +672,7 @@ ỵ ỵ
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group u
|
||||
u u
|
||||
u (A w
|
||||
@@ -561,6 +702,11 @@ ỵ ỵ
|
||||
uỗi u@j5
|
||||
uội u@j6
|
||||
//ung u#
|
||||
u (L01 _^_EN
|
||||
ui (L01 _^_EN
|
||||
ua (L01 _^_EN
|
||||
|
||||
|
||||
.group ù
|
||||
ù u2
|
||||
ù (A w2
|
||||
@@ -568,6 +714,8 @@ ỵ ỵ
|
||||
ùa u@2
|
||||
//ùng u#2
|
||||
|
||||
|
||||
|
||||
.group ú
|
||||
ú u3
|
||||
ú (A w3
|
||||
@@ -575,6 +723,8 @@ ỵ ỵ
|
||||
úa u@3
|
||||
//úng u#3
|
||||
|
||||
|
||||
|
||||
.group ủ
|
||||
ủ u4
|
||||
ủ (A w4
|
||||
@@ -582,6 +732,8 @@ ỵ ỵ
|
||||
ủa u@4
|
||||
//ủng u#4
|
||||
|
||||
|
||||
|
||||
.group ũ
|
||||
ũ u5
|
||||
ũ (A w5
|
||||
@@ -589,6 +741,8 @@ ỵ ỵ
|
||||
ũa u@5
|
||||
//ũng u#5
|
||||
|
||||
|
||||
|
||||
.group ụ
|
||||
ụ u6
|
||||
ụ (A w6
|
||||
@@ -596,7 +750,9 @@ ỵ ỵ
|
||||
ụa u@6
|
||||
//ụng u#6
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group ư
|
||||
ư y
|
||||
ưi yI
|
||||
@@ -621,30 +777,40 @@ ỵ ỵ
|
||||
ưỡu y@w5
|
||||
ượu y@w6
|
||||
|
||||
|
||||
|
||||
.group ừ
|
||||
ừ y2
|
||||
ừi yI2
|
||||
ừa y@2
|
||||
ừu yw2
|
||||
|
||||
|
||||
|
||||
.group ứ
|
||||
ứ y3
|
||||
ứi yI3
|
||||
ứa y@3
|
||||
ứu yw3
|
||||
|
||||
|
||||
|
||||
.group ử
|
||||
ử y4
|
||||
ửi yI4
|
||||
ửa y@4
|
||||
ửu yw4
|
||||
|
||||
|
||||
|
||||
.group ữ
|
||||
ữ y5
|
||||
ữi yI5
|
||||
ữa y@5
|
||||
ữu yw5
|
||||
|
||||
|
||||
|
||||
.group ự
|
||||
ự y6
|
||||
ựi yI6
|
||||
@@ -652,6 +818,7 @@ ỵ ỵ
|
||||
ựu yw6
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group y
|
||||
y i
|
||||
@@ -670,34 +837,48 @@ ỵ ỵ
|
||||
yệ i@6
|
||||
// yêu i@U
|
||||
|
||||
|
||||
|
||||
.group ỳ
|
||||
ỳ i2
|
||||
ỳ (A j2
|
||||
ỳa i@2
|
||||
|
||||
|
||||
|
||||
.group ý
|
||||
ý i3
|
||||
ý (A j3
|
||||
ýa i@3
|
||||
|
||||
|
||||
|
||||
.group ỷ
|
||||
ỷ i4
|
||||
ỷ (A j4
|
||||
ỷa i@4
|
||||
|
||||
|
||||
|
||||
.group ỹ
|
||||
ỹ i5
|
||||
ỹ (A j5
|
||||
ỹa i@5
|
||||
|
||||
|
||||
|
||||
.group ỵ
|
||||
ỵ i6
|
||||
ỵ (A j6
|
||||
ỵa i@6
|
||||
|
||||
|
||||
//=============================
|
||||
|
||||
.group 0xce // Greek letters
|
||||
// 0xce is the first byte of the utf-8 code for these characters
|
||||
|
||||
|
||||
α a:1n_|f'a:1
|
||||
ά a:1n_|f'a:1
|
||||
β b'e1_|t['a:1
|
||||
@@ -718,8 +899,11 @@ ỵ ỵ
|
||||
ξ s'i7
|
||||
ο o1_|m'i1_|kz.'O7n
|
||||
|
||||
|
||||
|
||||
.group 0xcf // Greek letters
|
||||
|
||||
|
||||
π p'i1
|
||||
ρ z.'o1
|
||||
σ s'i3c_|m'a:1
|
||||
@@ -735,6 +919,9 @@ ỵ ỵ
|
||||
ό o1_|m'i1_|kz.'O7n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.group
|
||||
% f'@2n||cr'am
|
||||
! _:c'@3m_|t'a:7n_:
|
||||
@@ -751,8 +938,8 @@ ỵ ỵ
|
||||
A_) - (_D _
|
||||
C_) - (_D _
|
||||
|
||||
|
||||
. c'@3m_
|
||||
. (. _:
|
||||
\.) .
|
||||
|
||||
|
||||
|
||||
+35
-19
@@ -65,7 +65,7 @@ consonants 10 118
|
||||
sq 33 127
|
||||
hy 23 119
|
||||
da 46 139
|
||||
ka 20 114
|
||||
ka 20 115
|
||||
rw 15 132
|
||||
pa 15 152
|
||||
prs 8 113
|
||||
@@ -85,7 +85,7 @@ consonants 10 118
|
||||
bo 10 154
|
||||
kk 20 118
|
||||
fa 9 112
|
||||
ga 21 127
|
||||
ga 29 133
|
||||
tt 23 120
|
||||
ko 15 116
|
||||
kl 18 119
|
||||
@@ -332,13 +332,21 @@ h/hu [h] base
|
||||
h/hu_fi [h] fi
|
||||
[h] mt
|
||||
j2/_j2 [;] base
|
||||
[;] ga
|
||||
j2/j2@ [;] base
|
||||
[;] ga
|
||||
j2/j2a [;] base
|
||||
[;] ga
|
||||
j2/j2e [;] base
|
||||
[;] ga
|
||||
j2/j2i [;] base
|
||||
[;] ga
|
||||
j2/j2o [;] base
|
||||
[;] ga
|
||||
j2/j2u [;] base
|
||||
[;] ga
|
||||
j2/xj2 [;] base
|
||||
[;] ga
|
||||
j/_j [j] base
|
||||
[j] zh
|
||||
[j] da
|
||||
@@ -442,7 +450,7 @@ l/l_ [l] base
|
||||
[l/] fr
|
||||
l/l_@ [l/3] base
|
||||
[l/] fr
|
||||
l/l@ [¨-] base
|
||||
l/l@ [¨\7] base
|
||||
[l#] base
|
||||
[l] fr
|
||||
[l/2] fr
|
||||
@@ -476,7 +484,7 @@ l/L2_oL [l/2] base
|
||||
l/L2_uL [l/2] base
|
||||
l/l_3 [l/] de
|
||||
l/l_4 [ll] sq
|
||||
l/la [¨-] base
|
||||
l/la [¨\7] base
|
||||
[l#] base
|
||||
[l] fr
|
||||
[l/2] fr
|
||||
@@ -484,7 +492,7 @@ l/la [
|
||||
[K] tn
|
||||
l/l_a [l/3] base
|
||||
[l/] fr
|
||||
l/le [¨-] base
|
||||
l/le [¨\7] base
|
||||
[l#] base
|
||||
[l] fr
|
||||
[l/2] fr
|
||||
@@ -496,7 +504,7 @@ l/L_eL_af [&] af
|
||||
[&:] af
|
||||
l/l_front [L] sq
|
||||
l/l_front_ [l/4] sq
|
||||
l/li [¨-] base
|
||||
l/li [¨\7] base
|
||||
[l#] base
|
||||
[l] fr
|
||||
[l/2] fr
|
||||
@@ -510,7 +518,7 @@ ll/ll [L] base
|
||||
ll/_ll [L] base
|
||||
l/l_long [l] base
|
||||
[l] fr
|
||||
l/lo [¨-] base
|
||||
l/lo [¨\7] base
|
||||
[l#] base
|
||||
[l/2] fr
|
||||
[K] nso
|
||||
@@ -521,7 +529,7 @@ l^/l_rfx [l.] base
|
||||
[l;] lt
|
||||
[l] ru
|
||||
[l^] ru
|
||||
l/lu [¨-] base
|
||||
l/lu [¨\7] base
|
||||
[l#] base
|
||||
[l] fr
|
||||
[l/2] fr
|
||||
@@ -841,6 +849,7 @@ ufric/tlh [K] nso
|
||||
ufric/x [x] base
|
||||
ufric/x2 [x2] af
|
||||
[x] ku
|
||||
[Q2] ka
|
||||
[X] kk
|
||||
ufric/x_hr [x] base
|
||||
[x] hr
|
||||
@@ -849,6 +858,7 @@ ufric/x_sr [h#] sr
|
||||
[x#] sr
|
||||
ufric/xx [X] base
|
||||
[Q"] base
|
||||
[Q] ka
|
||||
ustop/c [c] base
|
||||
ustop/k [k] base
|
||||
[k] fr
|
||||
@@ -862,9 +872,12 @@ ustop/k_ [k] base
|
||||
ustop/k_asp [kh] consonants
|
||||
[gh] hi
|
||||
[kh] zh
|
||||
[k#] ka
|
||||
[kh] tn
|
||||
ustop/k_asp2 [kh2] ml
|
||||
[k#] ka
|
||||
ustop/k_asp_a [k#] ka
|
||||
ustop/k_asp_e [k#] ka
|
||||
ustop/k_asp_u [k#] ka
|
||||
ustop/k_ejc [k`] am
|
||||
ustop/ki [k] base
|
||||
[k] base2
|
||||
@@ -887,7 +900,6 @@ ustop/kl [k] base
|
||||
[k] lv
|
||||
[k] el
|
||||
[k] zhy
|
||||
[k#] ka
|
||||
[kh] tn
|
||||
ustop/kr [k] base
|
||||
[k] base2
|
||||
@@ -953,8 +965,6 @@ ustop/p_unasp_ [p-] consonants
|
||||
[p] vi
|
||||
[p] sq
|
||||
ustop/q [q] base
|
||||
ustop/q2 [q] ka
|
||||
ustop/q2_i [q] ka
|
||||
ustop/q_u [q] base
|
||||
ustop/t [t] base
|
||||
[t] en-us
|
||||
@@ -1179,6 +1189,7 @@ vdiph/ai [aI] base2
|
||||
[aI] hy
|
||||
[aI] da
|
||||
[aI] te
|
||||
[aI] ga
|
||||
[aI] kl
|
||||
vdiph/ai_2 [aI] en
|
||||
[aI] cy
|
||||
@@ -1213,6 +1224,8 @@ vdiph/au_4 [aU] base2
|
||||
[aU] lt
|
||||
[aU] sk
|
||||
[aU] id
|
||||
[aU] ga
|
||||
[aU#] ga
|
||||
vdiph/ee-e [E:] hi
|
||||
vdiph/eei [EI] base2
|
||||
[eI] en
|
||||
@@ -1266,7 +1279,6 @@ vdiph/eu_2 [eu] fi
|
||||
vdiph/@i [Yi] et
|
||||
[@I] vi
|
||||
[@:I] vi
|
||||
[@I] ga
|
||||
vdiph/&i [&i] fi
|
||||
[&i] et
|
||||
[aI] hi
|
||||
@@ -1422,6 +1434,8 @@ voc/dh_ [D] base
|
||||
voc/j [J^] base
|
||||
voc/Q [Q] base
|
||||
[Q^] base
|
||||
[Q] ka
|
||||
[Q2] ka
|
||||
voc/Q_ [Q] base
|
||||
[Q^] base
|
||||
[Q] nl
|
||||
@@ -1500,11 +1514,7 @@ vowel/@ [@] base
|
||||
[@] wo
|
||||
[@:] wo
|
||||
[@] te
|
||||
[@] ga
|
||||
[E#] ga
|
||||
[I#] ga
|
||||
[O#] ga
|
||||
[U#] ga
|
||||
[@/] ga
|
||||
vowel/@- [@-] base
|
||||
[r*] hr
|
||||
[@-] da
|
||||
@@ -1654,6 +1664,7 @@ vowel/a_3 [a] en-sc
|
||||
[a] sq
|
||||
[A] da
|
||||
[?A] da
|
||||
[a] ka
|
||||
[a:] si
|
||||
vowel/a#_3 [a#] en
|
||||
[a#] en-n
|
||||
@@ -1733,6 +1744,7 @@ vowel/aa_8 [0] en-us
|
||||
[A1] et
|
||||
[A] nl
|
||||
[a:] is
|
||||
[0] ga
|
||||
[A] tt
|
||||
[a] ko
|
||||
vowel/aa_9 [a] fi
|
||||
@@ -2081,6 +2093,7 @@ vowel/ii_6 [I] en-wm
|
||||
[i] wo
|
||||
vowel/ii_7 [i] en
|
||||
[i] sq
|
||||
[i] ga
|
||||
vowel/ii_8 [i] kk
|
||||
vowel/ii_final [i] en-us
|
||||
[i] en-rp
|
||||
@@ -2246,7 +2259,6 @@ vowel/oo_4 [O] base2
|
||||
[O] it
|
||||
[O] an
|
||||
[O] pa
|
||||
[O] ga
|
||||
vowel/oo_5 [O] pl
|
||||
[O] is
|
||||
[O] sq
|
||||
@@ -2290,6 +2302,7 @@ vowel/u [u] base
|
||||
[u] ak
|
||||
[u:] wo
|
||||
[u] bo
|
||||
[u1] ga
|
||||
[u] tt
|
||||
vowel/u# [u:] en-sc
|
||||
[Y] tr
|
||||
@@ -2420,6 +2433,7 @@ vowel/V_3 [V] en-rp
|
||||
vowel/V_4 [V] en-sc
|
||||
[V] da
|
||||
[?V] da
|
||||
[O] ga
|
||||
vowel/V_6 [V] en-us
|
||||
[a#] lv
|
||||
vowel/y [y] base2
|
||||
@@ -2477,9 +2491,11 @@ vowel/yy_4 [y] de
|
||||
[yI] is
|
||||
[y] hy
|
||||
vwl_af/@ [@] af
|
||||
[@] ga
|
||||
vwl_af/I [I] af
|
||||
vwl_af/r@ [@] af
|
||||
[I] af
|
||||
[@] ga
|
||||
vwl_de/uu_@ [UR] de
|
||||
vwl_en/aI@ [aI@] en
|
||||
[aI@] en-n
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -674,7 +674,7 @@ phoneme j
|
||||
NextVowelStarts
|
||||
VowelStart(j/j@)
|
||||
VowelStart(j/ja)
|
||||
VowelStart(j/je,-60)
|
||||
VowelStart(j/je,-40)
|
||||
VowelStart(j/ji)
|
||||
VowelStart(j/jo)
|
||||
VowelStart(j/ju)
|
||||
|
||||
+27
-18
@@ -28,7 +28,10 @@ endphoneme
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 180
|
||||
FMT(vowel/a#_2)
|
||||
IF thisPh(isUnstressed) THEN
|
||||
FMT(vowel/a#_2)
|
||||
ENDIF
|
||||
FMT(vowel/a_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -69,12 +72,15 @@ phoneme k#
|
||||
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/k_asp2, 40)
|
||||
WAV(ustop/k_asp, 40)
|
||||
ENDIF
|
||||
IF nextPh(l) THEN
|
||||
WAV(ustop/kl)
|
||||
IF nextPhW(#e) OR nextPhW(#i) THEN
|
||||
WAV(ustop/k_asp_e, 40)
|
||||
ELIF nextPhW(#o) OR nextPhW(#u) THEN
|
||||
WAV(ustop/k_asp_u, 50)
|
||||
ELSE
|
||||
WAV(ustop/k_asp_a, 45)
|
||||
ENDIF
|
||||
WAV(ustop/k_asp2, 60)
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -113,24 +119,27 @@ phoneme k
|
||||
import_phoneme consonants/k-
|
||||
endphoneme
|
||||
|
||||
phoneme q
|
||||
vls uvl stop
|
||||
lengthmod 2
|
||||
Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30
|
||||
Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35
|
||||
|
||||
IF nextPh(#i) THEN
|
||||
WAV(ustop/q2_i, 40)
|
||||
ENDIF
|
||||
WAV(ustop/q2, 48)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme Q
|
||||
import_phoneme base/r"
|
||||
vcd vel frc
|
||||
voicingswitch x
|
||||
lengthmod 6
|
||||
Vowelin f1=2 f2=2300 200 400 f3=-100 80
|
||||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||||
FMT(voc/Q) addWav(ufric/xx, 100)
|
||||
endphoneme
|
||||
|
||||
phoneme Q2
|
||||
vcd vel frc
|
||||
voicingswitch x
|
||||
lengthmod 6
|
||||
Vowelin f1=2 f2=2300 200 400 f3=-100 80
|
||||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||||
FMT(voc/Q) addWav(ufric/x2, 50)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
import_phoneme base/R
|
||||
endphoneme
|
||||
|
||||
Executable
+239
@@ -0,0 +1,239 @@
|
||||
// Version 2.4 January 2013
|
||||
|
||||
// short vowels
|
||||
|
||||
|
||||
phoneme @ // Schwa, but always unstressed
|
||||
vowel starttype #@ endtype #@
|
||||
unstressed
|
||||
length 100
|
||||
IF nextPh(i:) THEN
|
||||
Length 70
|
||||
FMT(vwl_af/r@)
|
||||
ENDIF
|
||||
IF nextPh(I) THEN
|
||||
Length 70
|
||||
FMT(vwl_af/r@)
|
||||
ENDIF
|
||||
IF nextPh(e:) THEN
|
||||
Length 70
|
||||
FMT(vwl_af/r@)
|
||||
ENDIF
|
||||
FMT(vwl_af/@)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme @/
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
FMT(vowel/@)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 150
|
||||
FMT(vowel/a_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a#
|
||||
vowel starttype #@ endtype #@
|
||||
ipa ɐ
|
||||
length 120
|
||||
ChangeIfStressed(a)
|
||||
FMT(vowel/a#_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/e_mid)
|
||||
endphoneme
|
||||
|
||||
phoneme E#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(E)
|
||||
ChangePhoneme(@/)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme I
|
||||
vowel starttype #i endtype #i
|
||||
length 120
|
||||
FMT(vowel/ii_2)
|
||||
endphoneme
|
||||
|
||||
phoneme i // non syllabic i for end of words
|
||||
vowel starttype #i endtype #i
|
||||
ipa iU+032F
|
||||
length 40
|
||||
FMT(vowel/ii_7)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme O
|
||||
vowel starttype #a endtype #@
|
||||
length 140
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
|
||||
phoneme O#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(O)
|
||||
ChangePhoneme(a#)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme U
|
||||
vowel starttype #u endtype #u
|
||||
length 140
|
||||
FMT(vowel/uu)
|
||||
endphoneme
|
||||
|
||||
phoneme U#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(U)
|
||||
ChangePhoneme(@/)
|
||||
endphoneme
|
||||
|
||||
phoneme u1
|
||||
vowel starttype #u endtype #u
|
||||
ipa uU+0306
|
||||
length 50
|
||||
FMT(vowel/u)
|
||||
endphoneme
|
||||
|
||||
phoneme 0
|
||||
vowel starttype #a endtype #a
|
||||
length 180
|
||||
ipa A
|
||||
FMT(vowel/aa_8)
|
||||
endphoneme
|
||||
|
||||
phoneme 0#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(0)
|
||||
ChangePhoneme(a#)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme o:
|
||||
vowel starttype #o endtype #o
|
||||
length 190
|
||||
FMT(vowel/o)
|
||||
endphoneme
|
||||
|
||||
|
||||
// long vowels
|
||||
|
||||
phoneme A:
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
FMT(vowel/aa_2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme e:
|
||||
vowel starttype #e endtype #e
|
||||
length 210
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i:
|
||||
vowel starttype #i endtype #i
|
||||
length 210
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme u:
|
||||
vowel starttype #u endtype #u
|
||||
length 210
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Diphthongs
|
||||
|
||||
|
||||
phoneme @U
|
||||
vowel starttype #@ endtype #u
|
||||
length 240
|
||||
FMT(vdiph/@u_3)
|
||||
endphoneme
|
||||
|
||||
phoneme i@
|
||||
vowel starttype #i endtype #@
|
||||
length 240
|
||||
FMT(vdiph2/i@)
|
||||
endphoneme
|
||||
|
||||
phoneme u@
|
||||
vowel starttype #u endtype #@
|
||||
length 240
|
||||
FMT(vdiph2/u@)
|
||||
endphoneme
|
||||
|
||||
phoneme aI
|
||||
vowel starttype #a endtype #i
|
||||
length 250
|
||||
FMT(vdiph/ai)
|
||||
endphoneme
|
||||
|
||||
phoneme aI#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(aI)
|
||||
ChangePhoneme(a#)
|
||||
endphoneme
|
||||
|
||||
phoneme aU
|
||||
vowel starttype #a endtype #u
|
||||
length 270
|
||||
FMT(vdiph/au_4)
|
||||
endphoneme
|
||||
|
||||
phoneme aU#
|
||||
vowel starttype #@ endtype #@
|
||||
length 120
|
||||
ChangeIfStressed(aU)
|
||||
FMT(vdiph/au_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme ; // linking j, used between (i) vowels and a following vowel
|
||||
// also to palatalize consonants
|
||||
liquid palatal
|
||||
lengthmod 0
|
||||
|
||||
IF prevPh(#i) THEN
|
||||
ipa NULL // linking after i vowel, don't show in ipa
|
||||
ENDIF
|
||||
|
||||
NextVowelStarts
|
||||
VowelStart(j2/j2@)
|
||||
VowelStart(j2/j2a)
|
||||
VowelStart(j2/j2e)
|
||||
VowelStart(j2/j2i)
|
||||
VowelStart(j2/j2o)
|
||||
VowelStart(j2/j2u)
|
||||
EndSwitch
|
||||
|
||||
IF prevPh(#i) THEN
|
||||
VowelEnding(j2/xj2, -40)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(isPause) THEN
|
||||
FMT(j2/_j2)
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
@@ -144,18 +144,3 @@ phoneme d# // 'rr' sounds like English 'd'
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme kh2
|
||||
vls vel stop
|
||||
lengthmod 2
|
||||
voicingswitch g
|
||||
Vowelin f1=0 f2=2300 200 300 f3=-150 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/k_asp2, 50)
|
||||
ENDIF
|
||||
IF nextPh(l) THEN
|
||||
WAV(ustop/kl)
|
||||
ENDIF
|
||||
WAV(ustop/k_asp2, 90)
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
//====================================================
|
||||
// Vietnamese Phonemes - Make Huế Dialect
|
||||
//====================================================
|
||||
|
||||
|
||||
phoneme 1 // ngang tone: level
|
||||
stress
|
||||
Tone(30, 2, envelope/p_level, NULL) // similar Hue dialect tone
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 2 // huyền tone: low falling
|
||||
stress
|
||||
Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 8
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 3 // sắc Tone(rising
|
||||
stress
|
||||
Tone(2, 10, envelope/p_rise, NULL) // 25 50 45 75
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 4 // hỏi Tone(curve (dipping rising)
|
||||
stress
|
||||
Tone(20, 5, envelope/p_512,NULL) //Tone(55, 5, envelope/p_fallrise, NULL) //30 5 m 55 5
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 5 // ngã tone: broken (creaking rising)
|
||||
stress
|
||||
Tone(50,2, envelope/p_214, envelope/vi_5amp) // 28,58 m20 85
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 6 // nặng Tone(drop (constricted)
|
||||
stress
|
||||
//length 150 // ignore because it make too short sound 75 // reduce the length of the vowel
|
||||
Tone(25, 10, envelope/p_512, envelope/vi_6amp) // 40 20
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 7 // Tone(1 (ngang) at end of clause
|
||||
stress
|
||||
Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20
|
||||
endphoneme
|
||||
|
||||
|
||||
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
+15
-12
@@ -310,7 +310,7 @@ int LoadDictionary(Translator *tr, const char *name, int no_error)
|
||||
p++; // skip over the zero which terminates the list for this hash value
|
||||
}
|
||||
|
||||
if((tr->dict_min_size > 0) && (size < tr->dict_min_size))
|
||||
if((tr->dict_min_size > 0) && (size < (unsigned int)tr->dict_min_size))
|
||||
{
|
||||
fprintf(stderr, "Full dictionary is not installed for '%s'\n", name);
|
||||
}
|
||||
@@ -1040,7 +1040,7 @@ static int GetVowelStress(Translator *tr, unsigned char *phonemes, signed char *
|
||||
{
|
||||
if(vowel_stress[ix] == 4)
|
||||
{
|
||||
if(tr->langopts.stress_flags & 0x20000)
|
||||
if(tr->langopts.stress_flags & S_PRIORITY_STRESS)
|
||||
vowel_stress[ix] = 1;
|
||||
else
|
||||
vowel_stress[ix] = 3;
|
||||
@@ -1208,12 +1208,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags,
|
||||
max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1);
|
||||
if((max_stress < 0) && dictionary_flags)
|
||||
{
|
||||
if((tr->langopts.stress_flags & 1) && (vowel_count == 2))
|
||||
{
|
||||
// lang=fr: don't stress monosyllables except at end-of-clause
|
||||
vowel_stress[1] = 0;
|
||||
dictionary_flags[0] |= FLAG_STRESS_END2;
|
||||
}
|
||||
max_stress = 0;
|
||||
}
|
||||
|
||||
@@ -2652,6 +2646,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
|
||||
if((match1.points == 0) && ((option_sayas & 0x10) == 0))
|
||||
{
|
||||
n = utf8_in(&letter,p-1)-1;
|
||||
|
||||
if(tr->letter_bits_offset > 0)
|
||||
{
|
||||
// not a Latin alphabet, switch to the default Latin alphabet language
|
||||
@@ -2720,11 +2715,19 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
|
||||
p += (wc_bytes-1);
|
||||
}
|
||||
|
||||
if(((alphabet = AlphabetFromChar(letter)) != NULL) && (alphabet->flags & AL_WORDS) && (alphabet->offset != tr->letter_bits_offset))
|
||||
if(((alphabet = AlphabetFromChar(letter)) != NULL) && (alphabet->offset != tr->letter_bits_offset))
|
||||
{
|
||||
// switch to the nominated language for this alphabet
|
||||
sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(alphabet->language));
|
||||
return(0);
|
||||
if(tr->langopts.alt_alphabet == alphabet->offset)
|
||||
{
|
||||
sprintf(phonemes,"%c%s",phonSWITCH, tr->langopts.alt_alphabet_lang);
|
||||
return(0);
|
||||
}
|
||||
if(alphabet->flags & AL_WORDS)
|
||||
{
|
||||
// switch to the nominated language for this alphabet
|
||||
sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(alphabet->language));
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+39
-20
@@ -596,6 +596,8 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
ALPHABET *alphabet;
|
||||
int language;
|
||||
int phontab_1;
|
||||
int alphabet_name_switch;
|
||||
char *ph_alphabet_end;
|
||||
char capital[20];
|
||||
char ph_buf[80];
|
||||
char ph_buf2[80];
|
||||
@@ -631,6 +633,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
return(0);
|
||||
}
|
||||
|
||||
alphabet_name_switch = 0;
|
||||
alphabet = AlphabetFromChar(letter);
|
||||
if(alphabet != current_alphabet)
|
||||
{
|
||||
@@ -638,38 +641,49 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
current_alphabet = alphabet;
|
||||
if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME) && (alphabet->offset != translator->letter_bits_offset))
|
||||
{
|
||||
phontab_1 = tr->phoneme_tab_ix;
|
||||
ph_buf2[0] = 0;
|
||||
if(Lookup(translator, alphabet->name, ph_alphabet) == 0) // the original language for the current voice
|
||||
if((alphabet->flags & AL_DONT_NAME) || (alphabet->offset == translator->langopts.alt_alphabet))
|
||||
{
|
||||
// Can't find the local name for this alphabet, use the English name
|
||||
ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2
|
||||
Lookup(translator2, alphabet->name, ph_buf2);
|
||||
// don't say the alphabet name
|
||||
}
|
||||
else
|
||||
if(translator != tr)
|
||||
{
|
||||
phontab_1 = tr->phoneme_tab_ix;
|
||||
strcpy(ph_buf2, ph_alphabet);
|
||||
ph_alphabet[2] = translator->phoneme_tab_ix;
|
||||
}
|
||||
ph_buf2[0] = 0;
|
||||
if(Lookup(translator, alphabet->name, ph_alphabet) == 0) // the original language for the current voice
|
||||
{
|
||||
// Can't find the local name for this alphabet, use the English name
|
||||
ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2
|
||||
Lookup(translator2, alphabet->name, ph_buf2);
|
||||
}
|
||||
else
|
||||
if(translator != tr)
|
||||
{
|
||||
phontab_1 = tr->phoneme_tab_ix;
|
||||
strcpy(ph_buf2, ph_alphabet);
|
||||
ph_alphabet[2] = translator->phoneme_tab_ix;
|
||||
}
|
||||
|
||||
if(ph_buf2[0] != 0)
|
||||
{
|
||||
// we used a different language for the alphabet name (now in ph_buf2)
|
||||
ph_alphabet[0] = phonPAUSE;
|
||||
ph_alphabet[1] = phonSWITCH;
|
||||
strcpy(&ph_alphabet[3], ph_buf2);
|
||||
len = strlen(ph_buf2) + 3;
|
||||
ph_alphabet[len] = phonSWITCH;
|
||||
ph_alphabet[len+1] = phontab_1;
|
||||
ph_alphabet[len+2] = 0;
|
||||
if(ph_buf2[0] != 0)
|
||||
{
|
||||
// we used a different language for the alphabet name (now in ph_buf2)
|
||||
ph_alphabet[0] = phonPAUSE;
|
||||
ph_alphabet[1] = phonSWITCH;
|
||||
strcpy(&ph_alphabet[3], ph_buf2);
|
||||
len = strlen(ph_buf2) + 3;
|
||||
ph_alphabet[len] = phonSWITCH;
|
||||
ph_alphabet[len+1] = phontab_1;
|
||||
ph_alphabet[len+2] = 0;
|
||||
|
||||
ph_alphabet_end = &ph_alphabet[len];
|
||||
alphabet_name_switch = ph_alphabet[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// caution: SetWordStress() etc don't expect phonSWITCH + phoneme table number
|
||||
|
||||
if(ph_buf[0] == 0)
|
||||
{
|
||||
if((alphabet != NULL) && (alphabet->language != 0) && !(alphabet->flags & AL_NOT_LETTERS))
|
||||
@@ -702,6 +716,11 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
ph_buf[len+2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if((ph_buf[2] == alphabet_name_switch) && (capital[0] == 0))
|
||||
{
|
||||
ph_alphabet_end[0]= 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(ph_buf[0] == 0)
|
||||
|
||||
+1
-1
@@ -428,7 +428,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
{
|
||||
// in a sequence of unstressed syllables, reduce alternate syllables to 'diminished'
|
||||
// stress. But not for the last phoneme of a stressed word
|
||||
if((tr->langopts.stress_flags & 0x2) || ((word_stress > 3) && ((plist3+1)->sourceix!=0)))
|
||||
if((tr->langopts.stress_flags & S_NO_DIM) || ((word_stress > 3) && ((plist3+1)->sourceix!=0)))
|
||||
{
|
||||
// An unstressed final vowel of a stressed word
|
||||
unstress_count=1; // try again for next syllable
|
||||
|
||||
+1
-1
@@ -892,7 +892,7 @@ if(stress <= 1)
|
||||
{
|
||||
// this is the last syllable in the clause, lengthen it - more for short vowels
|
||||
len = (p->ph->std_length * 2);
|
||||
if(tr->langopts.stress_flags & 0x40000)
|
||||
if(tr->langopts.stress_flags & S_EO_CLAUSE1)
|
||||
len=200; // don't lengthen short vowels more than long vowels at end-of-clause
|
||||
length_mod = length_mod * (256 + (280 - len)/3)/256;
|
||||
}
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.46.43 07.Mar.13";
|
||||
const char *version_string = "1.46.44 08.Mar.13";
|
||||
const int version_phdata = 0x014640;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+29
-25
@@ -478,7 +478,7 @@ Translator *SelectTranslator(const char *name)
|
||||
SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
|
||||
tr->letter_bits_offset = OFFSET_ETHIOPIC;
|
||||
tr->langopts.stress_rule = STRESSPOSN_1L;
|
||||
tr->langopts.stress_flags = 0x0024; // don't use secondary stress
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
|
||||
tr->langopts.numbers = NUM_OMIT_1_HUNDRED;
|
||||
@@ -550,7 +550,7 @@ Translator *SelectTranslator(const char *name)
|
||||
// tr->langopts.intonation_group = 4;
|
||||
|
||||
// 'diminished' is an unstressed final syllable
|
||||
tr->langopts.stress_flags = 0x6 | 0x10;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels
|
||||
@@ -651,7 +651,7 @@ Translator *SelectTranslator(const char *name)
|
||||
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels
|
||||
@@ -681,7 +681,7 @@ Translator *SelectTranslator(const char *name)
|
||||
// tr->langopts.word_gap = 1;
|
||||
tr->langopts.vowel_pause = 2;
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x6 | 0x10;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
// tr->langopts.unstressed_wd1 = 3;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
|
||||
@@ -989,7 +989,7 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x10 | 0x20000;
|
||||
tr->langopts.stress_flags = 0x10 | S_PRIORITY_STRESS;
|
||||
tr->langopts.vowel_pause = 1;
|
||||
tr->langopts.unstressed_wd1 = 2;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
@@ -1023,8 +1023,9 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('k','a'): // Georgian
|
||||
{
|
||||
// character codes offset by 0x1080
|
||||
static const char ka_vowels[] = {0x50,0x54,0x58,0x5d,0x63,0x75,0x77,0};
|
||||
static const char ka_consonants[] = {0x51,0x52,0x53,0x55,0x56,0x57,0x59,0x5a,0x5b,0x5c,0x5e,0x5f,0x60,0x61,0x62,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x76,0};
|
||||
static const char ka_vowels[] = {0x30,0x34,0x38,0x3d,0x43,0x55,0x57,0};
|
||||
static const char ka_consonants[] = {0x31,0x32,0x33,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,
|
||||
0x40,0x41,0x42,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0};
|
||||
SetupTranslator(tr,stress_lengths_ta,stress_amps_ta);
|
||||
memset(tr->letter_bits,0,sizeof(tr->letter_bits));
|
||||
SetLetterBits(tr,LETTERGP_A,ka_vowels);
|
||||
@@ -1037,6 +1038,9 @@ SetLengthMods(tr,3); // all equal
|
||||
// tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
|
||||
tr->langopts.max_initial_consonants = 7;
|
||||
tr->langopts.numbers = NUM_VIGESIMAL | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED |NUM_OMIT_1_THOUSAND | NUM_DFRACTION_5 | NUM_ROMAN;
|
||||
|
||||
tr->langopts.alt_alphabet = OFFSET_CYRILLIC;
|
||||
tr->langopts.alt_alphabet_lang = "ru";
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1111,7 +1115,7 @@ SetLengthMods(tr,3); // all equal
|
||||
{
|
||||
tr->charset_a0 = charsets[4]; // ISO-8859-4, includes a,e,i,o,u-macron
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x20;
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_DIERESES] = 1;
|
||||
@@ -1124,7 +1128,7 @@ SetLengthMods(tr,3); // all equal
|
||||
{
|
||||
tr->charset_a0 = charsets[4]; // ISO-8859-4
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x20;
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_DIERESES] = 1;
|
||||
@@ -1211,7 +1215,7 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
SetupTranslator(tr,stress_lengths_om,stress_amps_om);
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x16 + 0x80000;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1224,7 +1228,7 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
tr->charset_a0 = charsets[2]; // ISO-8859-2
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // mark unstressed final syllables as diminished
|
||||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9;
|
||||
tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :)
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2;
|
||||
@@ -1243,7 +1247,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable
|
||||
tr->langopts.stress_flags = 0x6 | 0x10 | 0x2000 | 0x20000;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS;
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN;
|
||||
tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS;
|
||||
SetLetterVowel(tr,'y');
|
||||
@@ -1261,7 +1265,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetupTranslator(tr,stress_lengths_ro,stress_amps_ro);
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x100 + 0x6;
|
||||
tr->langopts.stress_flags = S_FINAL_STRESS_C + S_FINAL_DIM_ONLY;
|
||||
|
||||
tr->charset_a0 = charsets[2]; // ISO-8859-2
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_3 | NUM_AND_UNITS | NUM_ROMAN;
|
||||
@@ -1276,7 +1280,7 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('r','w'): // Kiryarwanda
|
||||
{
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x16;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
|
||||
tr->langopts.numbers = NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_2 | NUM_AND_HUNDRED;
|
||||
@@ -1293,7 +1297,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->charset_a0 = charsets[2]; // ISO-8859-2
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_1L;
|
||||
tr->langopts.stress_flags = 0x16;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3;
|
||||
tr->langopts.max_initial_consonants = 5;
|
||||
tr->langopts.spelling_stress = 1;
|
||||
@@ -1322,7 +1326,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_1L;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM | S_NO_AUTO_DIM | S_FINAL_NO_2;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
tr->langopts.spelling_stress = 1;
|
||||
|
||||
tr->letter_bits_offset = OFFSET_SINHALA;
|
||||
@@ -1345,7 +1349,7 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('s','l'): // Slovenian
|
||||
tr->charset_a0 = charsets[2]; // ISO-8859-2
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary
|
||||
tr->langopts.stress_flags = 0x20;
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2;
|
||||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103;
|
||||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word
|
||||
tr->letter_bits['r'] |= 0x80; // add 'r' to letter group 7, vowels for Unpronouncable test
|
||||
@@ -1362,7 +1366,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetupTranslator(tr,stress_lengths_sq,stress_amps_sq);
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x16 + 0x100;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_STRESS_C;
|
||||
SetLetterVowel(tr,'y');
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_4;
|
||||
tr->langopts.accents = 2; // "capital" after letter name
|
||||
@@ -1394,7 +1398,7 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
tr->langopts.vowel_pause = 1;
|
||||
tr->langopts.stress_rule = STRESSPOSN_2R;
|
||||
tr->langopts.stress_flags = 0x6 | 0x10;
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
|
||||
tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_SINGLE_AND | NUM_OMIT_1_HUNDRED;
|
||||
tr->langopts.break_numbers = 0x49249268; // for languages which have numbers for 100,000 and 1,000,000
|
||||
@@ -1411,7 +1415,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_1L;
|
||||
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable
|
||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY; // use 'diminished' for unstressed final syllable
|
||||
tr->langopts.spelling_stress = 1;
|
||||
tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000
|
||||
|
||||
@@ -1457,7 +1461,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetupTranslator(tr,stress_lengths_th,stress_amps_th);
|
||||
|
||||
tr->langopts.stress_rule = 0; // stress on final syllable of a "word"
|
||||
tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module)
|
||||
tr->langopts.stress_flags = S_NO_DIM; // don't automatically set diminished stress (may be set in the intonation module)
|
||||
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches()
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
// tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping)
|
||||
@@ -1476,7 +1480,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->charset_a0 = charsets[9]; // ISO-8859-9 - Latin5
|
||||
|
||||
tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable
|
||||
tr->langopts.stress_flags = 0x20; //no automatic secondary stress
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress
|
||||
tr->langopts.param[LOPT_SUFFIX] = 1;
|
||||
|
||||
if(name2 == L('a','z'))
|
||||
@@ -1496,7 +1500,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetCyrillicLetters(tr);
|
||||
SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
|
||||
tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable
|
||||
tr->langopts.stress_flags = 0x20; //no automatic secondary stress
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress
|
||||
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4;
|
||||
}
|
||||
break;
|
||||
@@ -1561,7 +1565,7 @@ SetLengthMods(tr,3); // all equal
|
||||
SetupTranslator(tr,stress_lengths_zh,stress_amps_zh);
|
||||
|
||||
tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable of a "word"
|
||||
tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module)
|
||||
tr->langopts.stress_flags = S_NO_DIM; // don't automatically set diminished stress (may be set in the intonation module)
|
||||
tr->langopts.vowel_pause = 0;
|
||||
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches()
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
@@ -1618,7 +1622,7 @@ static void Translator_Russian(Translator *tr)
|
||||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 1;
|
||||
tr->langopts.param[LOPT_REDUCE] = 2;
|
||||
tr->langopts.stress_rule = 5;
|
||||
tr->langopts.stress_flags = 0x0020; // waas 0x1010
|
||||
tr->langopts.stress_flags = S_NO_AUTO_2;
|
||||
|
||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;
|
||||
tr->langopts.numbers2 = 0x2 + NUM2_THOUSANDS_VAR1; // variant numbers before thousands
|
||||
|
||||
+61
-12
@@ -2074,17 +2074,29 @@ return(FLAG_SPELLWORD);
|
||||
|
||||
if(switch_phonemes >= 0)
|
||||
{
|
||||
// this word uses a different phoneme table
|
||||
if(ph_list2[n_ph_list2-1].phcode == phonSWITCH)
|
||||
{
|
||||
//previous phoneme is also a phonSWITCH, just change its phoneme table number
|
||||
n_ph_list2--;
|
||||
}
|
||||
if((p[0] == phonPAUSE) && (p[1] == phonSWITCH))
|
||||
{
|
||||
// the new word starts with a phoneme table switch, so there's no need to switch before it.
|
||||
if(ph_list2[n_ph_list2-1].phcode == phonSWITCH)
|
||||
{
|
||||
//previous phoneme is also a phonSWITCH, delete it
|
||||
n_ph_list2--;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPlist2(&ph_list2[n_ph_list2],phonSWITCH);
|
||||
// this word uses a different phoneme table
|
||||
if(ph_list2[n_ph_list2-1].phcode == phonSWITCH)
|
||||
{
|
||||
//previous phoneme is also a phonSWITCH, just change its phoneme table number
|
||||
n_ph_list2--;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPlist2(&ph_list2[n_ph_list2],phonSWITCH);
|
||||
}
|
||||
ph_list2[n_ph_list2++].tone_ph = switch_phonemes; // temporary phoneme table number
|
||||
}
|
||||
ph_list2[n_ph_list2++].tone_ph = switch_phonemes; // temporary phoneme table number
|
||||
}
|
||||
|
||||
// remove initial pause from a word if it follows a hyphen
|
||||
@@ -2484,6 +2496,34 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
|
||||
}
|
||||
|
||||
|
||||
static const char *UCase_ga[] = {"bp","bhf","dt","gc","hA","mb","ng","ts","tA","nA",NULL};
|
||||
|
||||
int UpperCaseInWord(Translator *tr, char *word, int c)
|
||||
{//=====================================================
|
||||
int ix;
|
||||
int len;
|
||||
const char *p;
|
||||
|
||||
if(tr->translator_name == L('g','a'))
|
||||
{
|
||||
// Irish
|
||||
for(ix=0; ; ix++)
|
||||
{
|
||||
if((p = UCase_ga[ix]) == NULL)
|
||||
break;
|
||||
|
||||
len = strlen(p);
|
||||
if((word[-len]==' ') && (memcmp(&word[-len+1], p, len-1) == 0))
|
||||
{
|
||||
if((c == p[len-1]) || ((p[len-1]=='A') && IsVowel(tr, c)))
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone_out, char **voice_change)
|
||||
{//==========================================================================================================
|
||||
int ix;
|
||||
@@ -2910,10 +2950,19 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
{
|
||||
if(iswlower(prev_in))
|
||||
{
|
||||
c = ' '; // lower case followed by upper case, treat as new word
|
||||
space_inserted = 1;
|
||||
prev_in_save = c;
|
||||
// next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set
|
||||
// lower case followed by upper case in a word
|
||||
if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
|
||||
{
|
||||
// convert to lower case and continue
|
||||
c = towlower(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
c = ' '; // lower case followed by upper case, treat as new word
|
||||
space_inserted = 1;
|
||||
prev_in_save = c;
|
||||
// next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set
|
||||
}
|
||||
}
|
||||
else
|
||||
if((c != ' ') && iswupper(prev_in) && iswlower(next_in))
|
||||
|
||||
+34
-13
@@ -372,35 +372,53 @@ typedef struct {
|
||||
|
||||
#define S_NO_DIM 0x02
|
||||
#define S_FINAL_DIM 0x04
|
||||
#define S_FINAL_NO_2 0x10
|
||||
#define S_NO_AUTO_2 0x20
|
||||
#define S_2_TO_HEAVY 0x40
|
||||
#define S_FIRST_PRIMARY 0x80
|
||||
#define S_2_SYL_2 0x1000
|
||||
#define S_INITIAL_2 0x2000
|
||||
#define S_NO_AUTO_DIM 0x10000
|
||||
#define S_HYPEN_UNSTRESS 0x100000
|
||||
#define S_NO_EOC_LENGTHEN 0x200000
|
||||
// bit0=don't stress monosyllables, except at end of clause
|
||||
#define S_FINAL_DIM_ONLY 0x06
|
||||
// bit1=don't set diminished stress,
|
||||
// bit2=mark unstressed final syllables as diminished
|
||||
|
||||
// bit3=set consecutive unstressed syllables in unstressed words to diminished, but not in stressed words
|
||||
|
||||
#define S_FINAL_NO_2 0x10
|
||||
// bit4=don't allow secondary stress on last syllable
|
||||
|
||||
#define S_NO_AUTO_2 0x20
|
||||
// bit5-don't use automatic secondary stress
|
||||
|
||||
#define S_2_TO_HEAVY 0x40
|
||||
// bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish
|
||||
|
||||
#define S_FIRST_PRIMARY 0x80
|
||||
// bit7=if more than one primary stress, make the subsequent primaries to secondary stress
|
||||
|
||||
#define S_FINAL_STRESS_C 0x100
|
||||
// bit8=stress last syllable if it doesn't end in a vowel
|
||||
|
||||
#define S_FINAL_SPANISH 0x200
|
||||
// bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish
|
||||
|
||||
#define S_2_SYL_2 0x1000
|
||||
// bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress
|
||||
|
||||
#define S_INITIAL_2 0x2000
|
||||
// bit13= If there is only one syllable before the primary stress, give it a secondary stress
|
||||
// bit15= Give stress to the first unstressed syllable
|
||||
// bit16= Don't diminish consecutive syllables within a word.
|
||||
|
||||
#define S_PRIORITY_STRESS 0x20000
|
||||
// bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary"
|
||||
|
||||
#define S_EO_CLAUSE1 0x40000
|
||||
// bit18= don't lengthen short vowels more than long vowels at end-of-clause
|
||||
// bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel
|
||||
|
||||
|
||||
#define S_HYPEN_UNSTRESS 0x100000
|
||||
// bit20= hyphenated words, 2nd part is unstressed
|
||||
|
||||
#define S_NO_EOC_LENGTHEN 0x200000
|
||||
// bit21= don't lengthen vowels at end-of-clause
|
||||
|
||||
// bit15= Give stress to the first unstressed syllable
|
||||
// bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel
|
||||
|
||||
|
||||
int stress_flags;
|
||||
int unstressed_wd1; // stress for $u word of 1 syllable
|
||||
int unstressed_wd2; // stress for $u word of >1 syllable
|
||||
@@ -518,6 +536,8 @@ typedef struct {
|
||||
int listx; // compile *_listx after *list
|
||||
const unsigned int *replace_chars; // characters to be substitutes
|
||||
const char *ascii_language; // switch to this language for Latin characters
|
||||
int alt_alphabet; // offset for another language to recognize
|
||||
const char *alt_alphabet_lang; // language for the alt_alphabet
|
||||
int max_lengthmod;
|
||||
int lengthen_tonic; // lengthen the tonic syllable
|
||||
int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character
|
||||
@@ -680,6 +700,7 @@ void InitText(int flags);
|
||||
void InitText2(void);
|
||||
int IsDigit(unsigned int c);
|
||||
int IsAlpha(unsigned int c);
|
||||
int IsVowel(Translator *tr, int c);
|
||||
int isspace2(unsigned int c);
|
||||
int towlower2(unsigned int c);
|
||||
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa);
|
||||
|
||||
+43
-26
@@ -61,7 +61,7 @@ int formant_rate[9]; // values adjusted for actual sample rate
|
||||
|
||||
|
||||
#define DEFAULT_LANGUAGE_PRIORITY 5
|
||||
#define N_VOICES_LIST 200
|
||||
#define N_VOICES_LIST 250
|
||||
static int n_voices_list = 0;
|
||||
static espeak_VOICE *voices_list[N_VOICES_LIST];
|
||||
static int len_path_voices;
|
||||
@@ -578,10 +578,8 @@ voice_t *LoadVoice(const char *vname, int control)
|
||||
static const char *voices_europe =
|
||||
"bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv ";
|
||||
|
||||
strcpy(voicename,vname);
|
||||
if(voicename[0]==0)
|
||||
strcpy(voicename,"default");
|
||||
|
||||
strncpy0(voicename, vname, sizeof(voicename));
|
||||
if(control & 0x10)
|
||||
{
|
||||
strcpy(buf,vname);
|
||||
@@ -590,6 +588,9 @@ voice_t *LoadVoice(const char *vname, int control)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(voicename[0]==0)
|
||||
strcpy(voicename,"default");
|
||||
|
||||
sprintf(path_voices,"%s%cvoices%c",path_home,PATHSEP,PATHSEP);
|
||||
sprintf(buf,"%s%s",path_voices,voicename); // first, look in the main voices directory
|
||||
|
||||
@@ -1634,30 +1635,35 @@ static void GetVoices(const char *path)
|
||||
return;
|
||||
|
||||
do {
|
||||
sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName);
|
||||
if(n_voices_list >= (N_VOICES_LIST-2))
|
||||
break; // voices list is full
|
||||
|
||||
ftype = GetFileLength(fname);
|
||||
|
||||
if((ftype == -2) && (FindFileData.cFileName[0] != '.'))
|
||||
if(FindFileData.cFileName[0] != '.')
|
||||
{
|
||||
// a sub-sirectory
|
||||
GetVoices(fname);
|
||||
}
|
||||
else
|
||||
if(ftype > 0)
|
||||
{
|
||||
// a regular line, add it to the voices list
|
||||
if((f_voice = fopen(fname,"r")) == NULL)
|
||||
continue;
|
||||
sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName);
|
||||
ftype = GetFileLength(fname);
|
||||
|
||||
// pass voice file name within the voices directory
|
||||
voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName);
|
||||
fclose(f_voice);
|
||||
if(ftype == -2)
|
||||
{
|
||||
// a sub-sirectory
|
||||
GetVoices(fname);
|
||||
}
|
||||
else
|
||||
if(ftype > 0)
|
||||
{
|
||||
// a regular line, add it to the voices list
|
||||
if((f_voice = fopen(fname,"r")) == NULL)
|
||||
continue;
|
||||
|
||||
if(voice_data != NULL)
|
||||
{
|
||||
voices_list[n_voices_list++] = voice_data;
|
||||
}
|
||||
// pass voice file name within the voices directory
|
||||
voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName);
|
||||
fclose(f_voice);
|
||||
|
||||
if(voice_data != NULL)
|
||||
{
|
||||
voices_list[n_voices_list++] = voice_data;
|
||||
}
|
||||
}
|
||||
}
|
||||
} while(FindNextFileA(hFind, &FindFileData) != 0);
|
||||
FindClose(hFind);
|
||||
@@ -1674,11 +1680,14 @@ static void GetVoices(const char *path)
|
||||
if(n_voices_list >= (N_VOICES_LIST-2))
|
||||
break; // voices list is full
|
||||
|
||||
if(ent->d_name[0] == '.')
|
||||
continue;
|
||||
|
||||
sprintf(fname,"%s%c%s",path,PATHSEP,ent->d_name);
|
||||
|
||||
ftype = GetFileLength(fname);
|
||||
|
||||
if((ftype == -2) && (ent->d_name[0] != '.'))
|
||||
if(ftype == -2)
|
||||
{
|
||||
// a sub-sirectory
|
||||
GetVoices(fname);
|
||||
@@ -1710,15 +1719,23 @@ static void GetVoices(const char *path)
|
||||
espeak_ERROR SetVoiceByName(const char *name)
|
||||
{//=========================================
|
||||
espeak_VOICE *v;
|
||||
int ix;
|
||||
espeak_VOICE voice_selector;
|
||||
char *variant_name;
|
||||
static char buf[60];
|
||||
|
||||
strncpy0(buf,name,sizeof(buf));
|
||||
|
||||
variant_name = ExtractVoiceVariantName(buf, 0, 1);
|
||||
|
||||
for(ix=0; ;ix++)
|
||||
{
|
||||
// convert voice name to lower case (ascii)
|
||||
if((buf[ix] = tolower(buf[ix])) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
memset(&voice_selector,0,sizeof(voice_selector));
|
||||
// voice_selector.name = buf;
|
||||
voice_selector.name = (char *)name; // include variant name in voice stack ??
|
||||
|
||||
// first check for a voice with this filename
|
||||
|
||||
Reference in New Issue
Block a user