mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Merge branch 'upstream' into development
Conflicts: dictsource/dict_phonemes dictsource/te_list dictsource/te_rules phsource/compile_report
This commit is contained in:
+83
-40
@@ -2,7 +2,7 @@
|
||||
// This file is UTF8 encoded
|
||||
|
||||
// Numbers
|
||||
devanagari numbers are changed to latin characters before translation
|
||||
// Bengali numbers are changed to latin characters before translation
|
||||
_0 S'unjO
|
||||
_1 '&k
|
||||
_2 duj
|
||||
@@ -14,11 +14,16 @@ _7 S'at
|
||||
_8 'at.#
|
||||
_9 n'Oj
|
||||
|
||||
_2a d'u // with hundreds etc.
|
||||
_6a tS#'a
|
||||
_9a n'O
|
||||
|
||||
|
||||
_10 d'OS
|
||||
_11 '&garo
|
||||
_12 b'arO
|
||||
_13 t'erO
|
||||
_14 tS'owddO
|
||||
_14 tS'oddO
|
||||
_15 p'OnerO
|
||||
_16 S'olO
|
||||
_17 S'OterO
|
||||
@@ -26,57 +31,94 @@ _18 'at.#arO
|
||||
_19 'uniS
|
||||
|
||||
_20 k'uri // or b'iS ??
|
||||
_21 'ekuS
|
||||
_21 ek'uS
|
||||
_22 b'ajS
|
||||
_23 t'ejS
|
||||
_24 tS'ObbiS
|
||||
_25 p'O~tSiS
|
||||
_26 tSh'ObbiS
|
||||
_27 S'ataS
|
||||
_26 tSh'abbiS
|
||||
_27 Sat'aS
|
||||
_28 'at.#aS
|
||||
_29 'untriS
|
||||
_29 unOtr'iS
|
||||
|
||||
_30 t'iriS
|
||||
_31 'ektriS
|
||||
_32 b'OtriS
|
||||
_33 t'etriS
|
||||
_34 tSowtriS
|
||||
_35 pO~jtriS
|
||||
_36 tS#'OtriS
|
||||
_37 S'a~itriS
|
||||
_38 'at.riS
|
||||
_39 'unOtSOlliS
|
||||
_30 tr'iS
|
||||
_31 ekOtr'iS
|
||||
_32 bOtr'iS
|
||||
_33 tetr'iS
|
||||
_34 tSowtr'iS
|
||||
_35 pO~jtr'iS
|
||||
_36 tS#'Otr'iS
|
||||
_37 Sa~itr'iS
|
||||
_38 at.tr'iS
|
||||
_39 'unOtSOll'iS
|
||||
|
||||
_40 tS'OlliS
|
||||
_41 'ektSOlliS
|
||||
_42 b'ialliS
|
||||
_43 t'etalliS
|
||||
_44 tS'oalliS
|
||||
_45 p'O~jtalliS
|
||||
_46 tS'etSOlliS
|
||||
_47 S'atSOllis
|
||||
_48 'atSOlliS
|
||||
_49 'unOpO~tSaS
|
||||
_40 tSOll'iS
|
||||
_41 ektSOll'iS
|
||||
_42 biall'iS
|
||||
_43 tetall'iS
|
||||
_44 tSoall'iS
|
||||
_45 pO~jtall'iS
|
||||
_46 tSetSOll'iS
|
||||
_47 SatSOll'is
|
||||
_48 atSOll'iS
|
||||
_49 unOpO~tSaS
|
||||
|
||||
_50 pO~tS'aS
|
||||
_51 &kann'o
|
||||
_52 bajann'o
|
||||
_53 tepann'o
|
||||
_54 tSujann'o
|
||||
_55 pontSann'o
|
||||
_56 tS#apann'o
|
||||
_57 Satann'o
|
||||
_58 at.ann'o
|
||||
_59 unOS'at.
|
||||
|
||||
// numbers above 50 need to be corrected
|
||||
_50 p'O~tSaS
|
||||
_5X p'O~tSaS
|
||||
_59 'unOsat.
|
||||
|
||||
_60 s'at.
|
||||
_6X s'at.
|
||||
_69 'unOS'OttOr
|
||||
_61 ekSOt.t.'i
|
||||
_62 baSOt.t.'i
|
||||
_63 teSOt.t.'i
|
||||
_64 tSowSOt.t.'i
|
||||
_65 pojSOt.t.'i
|
||||
_66 SeSOt.t.'i
|
||||
_67 SatSOt.t.'i
|
||||
_68 at.SOt.t.'i
|
||||
_6X sat.t.'i
|
||||
_69 unOSOtt'ur
|
||||
|
||||
_70 S'OttOr
|
||||
_7X S'OttOr
|
||||
_79 'unOaSi
|
||||
_70 SOtt'Or
|
||||
_71 ekatt'Or
|
||||
_72 bahatt'Or
|
||||
_73 tehatt'Or
|
||||
_74 tSuhatt'Or
|
||||
_75 pOtSatt'Or
|
||||
_76 tS#ijatt'Or
|
||||
_77 Satatt'Or
|
||||
_78 at.att'Or
|
||||
_79 unOaS'i
|
||||
|
||||
_80 'aSi
|
||||
_8X 'aSi
|
||||
_89 'unOnObbOj
|
||||
_80 aS'i
|
||||
_81 &kaS'i
|
||||
_82 beraS'i
|
||||
_83 teraS'i
|
||||
_84 tSuraS'i
|
||||
_85 po~tSaS'i
|
||||
_86 tS#ijaS'i
|
||||
_87 SataS'i
|
||||
_88 at.aS'i
|
||||
_89 ,unOnObb'oj
|
||||
|
||||
_90 n'ObbOj
|
||||
_9X n'ObbOj
|
||||
_90 nObb'oj
|
||||
_91 &kanObb'oj
|
||||
_92 beranObb'oj
|
||||
_93 teranObb'oj
|
||||
_94 tSuranObb'oj
|
||||
_95 pOtSanObb'oj
|
||||
_96 tS#ijanObb'oj
|
||||
_97 SatanObb'oj
|
||||
_98 at.anObb'oj
|
||||
_99 niranObb'oj
|
||||
|
||||
_0C S'o
|
||||
_0M1 h'ajar
|
||||
@@ -264,3 +306,4 @@ _dpt dOsomik
|
||||
|
||||
|
||||
// Exceptions
|
||||
এত &to
|
||||
|
||||
+7
-1
@@ -28,6 +28,7 @@
|
||||
.group অ
|
||||
অ V
|
||||
অঁ O~
|
||||
অ্যা & // V,ja in [æmiba]
|
||||
|
||||
|
||||
.group আ
|
||||
@@ -74,6 +75,8 @@
|
||||
.group এ
|
||||
এ e
|
||||
এঁ e~
|
||||
|
||||
এ্যা & // e,ja [ækademi]
|
||||
|
||||
|
||||
.group ও
|
||||
@@ -288,7 +291,10 @@
|
||||
য় jV // nukta
|
||||
য় (B j
|
||||
|
||||
|
||||
্) য (C & // ব্যস্ত [bæsto]
|
||||
্) যা & // ব্যাকরণ [bækɔron]
|
||||
|
||||
|
||||
.group র
|
||||
র rV
|
||||
র (B r
|
||||
|
||||
+482
-311
File diff suppressed because it is too large
Load Diff
@@ -3283,6 +3283,7 @@ Noumea nu:m'eI@
|
||||
Oahu oU'A:hu:
|
||||
Oklahoma oUkla#h'oUm@
|
||||
Ohio oUh'aIoU
|
||||
Ohioan oUh'aIoU@n
|
||||
Omagh oUmA:
|
||||
Omaha oUma#hA:
|
||||
Oman oUm'an
|
||||
|
||||
+76
-66
@@ -1927,23 +1927,6 @@
|
||||
h) e (sion_ 'i:
|
||||
@) e (tio i:
|
||||
discr) e (tion E
|
||||
eu ju:
|
||||
?3 n) eu u:
|
||||
?3 n) eu (r U@
|
||||
r) eu (d OI
|
||||
eu (m_ 'i:@
|
||||
s) eu (m_ 'i@
|
||||
l) eur 3:
|
||||
?5 eur VR
|
||||
eur (_ '3:
|
||||
?3 eur (_ 'U@
|
||||
?5 eur (_ 'VR
|
||||
_) euro jU@roU
|
||||
_) euro (pe jU@r-@
|
||||
&) eus (_ =I2@s
|
||||
@) euse (_ '3:z
|
||||
?3 @) euse (_ 'u:z
|
||||
d) eu (ts OI
|
||||
ew ju:
|
||||
_s) ew u:
|
||||
?3 d) ew u:
|
||||
@@ -2599,6 +2582,27 @@
|
||||
m) etry (_ =@tr%I
|
||||
&) ett (_ I2t
|
||||
|
||||
|
||||
.group eu
|
||||
eu ju:
|
||||
?3 n) eu u:
|
||||
?3 n) eu (r U@
|
||||
r) eu (d OI
|
||||
eu (m_ 'i:@
|
||||
s) eu (m_ 'i@
|
||||
l) eur 3:
|
||||
?5 eur VR
|
||||
eur (_ '3:
|
||||
?3 eur (_ 'U@
|
||||
?5 eur (_ 'VR
|
||||
_) euro jU@roU
|
||||
_) euro (pe jU@r-@
|
||||
&) eus (_ =I2@s
|
||||
@) euse (_ '3:z
|
||||
?3 @) euse (_ 'u:z
|
||||
d) eu (ts OI
|
||||
|
||||
|
||||
.group ev
|
||||
_) ev I2v
|
||||
_) eva (ne Ev@
|
||||
@@ -2915,40 +2919,10 @@
|
||||
n) ihi aI|@
|
||||
_) i (h aI
|
||||
ii (_ IaI
|
||||
ij (C eI // Dutch
|
||||
f) i (j i:
|
||||
h) i (j aI
|
||||
@b) il (_ @L
|
||||
@Cc) il (_ @L
|
||||
@p) il (_ @L
|
||||
@r) il (_ @L
|
||||
@s) il (_ @L
|
||||
nt) il (_ @L
|
||||
@v) il (_ @L
|
||||
@) ila (_ 'Il@
|
||||
?3 &) ile (_$w_alt2 @L
|
||||
_C) i (lage aI
|
||||
_d) i (lat %aI
|
||||
l) il (ah_ aIl
|
||||
_m) i (ld aI
|
||||
_w) i (ld aI
|
||||
ch) i (ld aI
|
||||
w) i (lderC I
|
||||
ch) i (ldr I
|
||||
sacr) ile IlI
|
||||
i (leA I
|
||||
&) ile (ge @lI
|
||||
il (ise @l
|
||||
il (ize @l
|
||||
s) i (len aI
|
||||
C) i (ler aI
|
||||
_) il (l@ %Il
|
||||
@) illa (_ 'Il@
|
||||
&) illard (_ i:A:
|
||||
_) il (ln Il
|
||||
@) i (less I
|
||||
_) il (lust Il
|
||||
_C) i (lo aI
|
||||
&) ily (_S2i l%I
|
||||
@) i (ness I
|
||||
i (o I2
|
||||
_) i (o aI
|
||||
@@ -3135,6 +3109,40 @@
|
||||
igu (e 'i:g
|
||||
igu (_ 'i:g
|
||||
|
||||
.group il
|
||||
@b) il (_ @L
|
||||
@Cc) il (_ @L
|
||||
@p) il (_ @L
|
||||
@r) il (_ @L
|
||||
@s) il (_ @L
|
||||
nt) il (_ @L
|
||||
@v) il (_ @L
|
||||
@) ila (_ 'Il@
|
||||
?3 &) ile (_$w_alt2 @L
|
||||
_C) il (age aIl
|
||||
_d) il (at %aIl
|
||||
l) il (ah_ aIl
|
||||
_m) il (d aIl
|
||||
_w) il (d aIl
|
||||
ch) il (d aIl
|
||||
w) il (derC Il
|
||||
ch) il (dr Il
|
||||
sacr) ile IlI
|
||||
il (eA Il
|
||||
&) ile (ge @lI
|
||||
il (ise @l
|
||||
il (ize @l
|
||||
s) il (en aIl
|
||||
C) il (er aIl
|
||||
_) il (l@ %Il
|
||||
@) illa (_ 'Il@
|
||||
&) illard (_ i:A:
|
||||
_) il (ln Il
|
||||
_) il (lust Il
|
||||
_C) il (o aIl
|
||||
&) ily (_S2i l%I
|
||||
|
||||
|
||||
.group im
|
||||
&) im (_ I#m
|
||||
cl) im aIm
|
||||
@@ -5274,23 +5282,6 @@
|
||||
_) tsu tsu:
|
||||
_) two tu:
|
||||
ttu (r t@
|
||||
@) tu (al tSu:
|
||||
@) tu (at tSu:
|
||||
_sta) tu tSu:
|
||||
?3 _sta) tu (to tS@
|
||||
c) tu (al_ =tSu:
|
||||
r) tue (_ tSu:
|
||||
?3 tu (la_ tS@
|
||||
@) tu (lat =tSU
|
||||
?3 tu (Ant tSu:
|
||||
?3 tu (Ancy tSu:
|
||||
|
||||
tu (ous tSu:
|
||||
@) tur (A tS@r
|
||||
@) tur (al_ tS=@r
|
||||
&) tur (y tS@r
|
||||
&) tur (_ tS3
|
||||
&) ture (_ tS3
|
||||
tz ts
|
||||
tze (_ tsi
|
||||
|
||||
@@ -5367,7 +5358,26 @@
|
||||
&) tious S=@s
|
||||
AC) tive (_ =tIv
|
||||
|
||||
|
||||
|
||||
.group tu
|
||||
@) tu (al tSu:
|
||||
@) tu (at tSu:
|
||||
_sta) tu tSu:
|
||||
?3 _sta) tu (to tS@
|
||||
c) tu (al_ =tSu:
|
||||
r) tue (_ tSu:
|
||||
?3 tu (la_ tS@
|
||||
@) tu (lat =tSU
|
||||
?3 tu (Ant tSu:
|
||||
?3 tu (Ancy tSu:
|
||||
tu (ous tSu:
|
||||
@) tur (A tS@r
|
||||
@) tur (al_ tS=@r
|
||||
&) tur (y tS@r
|
||||
&) tur (_ tS3
|
||||
&) ture (_ tS3
|
||||
|
||||
|
||||
.group u
|
||||
u V
|
||||
man) u ju:
|
||||
|
||||
+3
-3
@@ -24,8 +24,8 @@ _9X g'u_!||s'ip_!
|
||||
_0C p'Eq_!
|
||||
|
||||
// Larger numbers
|
||||
_0M0 tS'h-@n // 10^3
|
||||
_1M0 tS'h-@n
|
||||
_0M0 tS'h@n // 10^3
|
||||
_1M0 tS'h@n
|
||||
_0M1 m'an // 10^4
|
||||
_1M1 m'an
|
||||
_0M2 '@q // 10^8
|
||||
@@ -50,7 +50,7 @@ _1M4 gj'@N
|
||||
ᄋ i;'u-N
|
||||
ᄌ tS;i;'u-t
|
||||
ᄍ 's-aNdZ;,i;u-t
|
||||
ᄎ tSh-'i;u-t
|
||||
ᄎ tSh'i;u-t
|
||||
ᄏ khi;'u-k
|
||||
ᄐ thi;'u-t-
|
||||
ᄑ phi;'u-p
|
||||
|
||||
+3
-3
@@ -83,7 +83,7 @@
|
||||
ᄍ 'tS;- // TODO: phoneme
|
||||
|
||||
.group ᄎ // ㅊ
|
||||
ᄎ tSh- // TODO: phoneme
|
||||
ᄎ tSh // TODO: phoneme
|
||||
|
||||
.group ᄂ // ㄴ
|
||||
ᄂ ;n
|
||||
@@ -198,7 +198,7 @@
|
||||
ᇀᄂ nn
|
||||
ᇀᄆ mm
|
||||
ᇀ (A th
|
||||
ᇀ (L02 tSh;
|
||||
ᇀ (L02 tS;h
|
||||
|
||||
.group ᆸ // ㅂ
|
||||
ᆸ p
|
||||
@@ -236,7 +236,7 @@
|
||||
ᆾ t
|
||||
ᆾᄂ nn
|
||||
ᆾᄆ mm
|
||||
ᆾ (A tSh;
|
||||
ᆾ (A tS;h
|
||||
|
||||
.group ᆫ // ㄴ
|
||||
ᆫ n
|
||||
|
||||
@@ -879,6 +879,7 @@ lambreta $alt2
|
||||
lebre $alt
|
||||
lembrete $alt2
|
||||
leste $alt2 $verb
|
||||
lingueta $alt2
|
||||
lopes $alt
|
||||
macete $alt2
|
||||
maior $alt
|
||||
@@ -987,6 +988,7 @@ refresco $alt $verb
|
||||
reitora $alt2
|
||||
relevo $alt2 $noun
|
||||
remorso $alt
|
||||
renovo $alt $verb
|
||||
retorno $alt $verb
|
||||
rixa x'iS&
|
||||
rocha $alt
|
||||
|
||||
+11
-1
@@ -573,9 +573,13 @@ _entorp) e (çL03_ e
|
||||
g (Y Z // ge gi
|
||||
gu (Y g
|
||||
a) gu (ent gw
|
||||
_ar) gu (i gw
|
||||
enxa) gu (e gw
|
||||
lin) gu (e gw
|
||||
lin) gu (i gw
|
||||
_pin) gu (im_ gw
|
||||
_pin) gu (ins_ gw
|
||||
_sa) gu )i gw
|
||||
san) gu (ín gw
|
||||
san) gu (in gw
|
||||
?1 n) gu (A gw // eg: língua, etc.
|
||||
@@ -851,6 +855,8 @@ _entorp) e (çL03_ e
|
||||
_ens) o (pL04_ O
|
||||
_s) o (prL04_ O
|
||||
_) o (ptL04_ O
|
||||
p) o (rL02_ o
|
||||
_dev) o (rL02_ O
|
||||
_defl) o (rL02_ O
|
||||
_impl) o (rL02_ O
|
||||
_inod) o (rL03_ O
|
||||
@@ -926,14 +932,18 @@ _remem) o (rL04_ O
|
||||
?1 _) qua kwa // quatro, etc.
|
||||
?1 _) que ke // quente, etc.
|
||||
?1 _) quei (C k'eI // queira, queima, etc
|
||||
A) quên (C kw'eIN // frequência, etc.
|
||||
A) quên (C kw'eN // frequência, etc.
|
||||
C) quên (C kw'eN // delinquência, etc.
|
||||
C) quên (A kw'eN // quinquênio, etc.
|
||||
ade) qu (e kw
|
||||
e) qu (estr kw
|
||||
ese) qu (ív kw
|
||||
_e) qu (in kw
|
||||
fre) qu (ent kw
|
||||
li) qu (id kw
|
||||
lí) qu (id kw
|
||||
n) qu (en kw
|
||||
_) qu (inqu kw
|
||||
se) qu (en kw
|
||||
tran) qu (il kw
|
||||
?1 quec kes // esquece, etc.
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
|
||||
// This file is UTF8 encoded
|
||||
// Spelling to phoneme rules for Telugu
|
||||
|
||||
|
||||
|
||||
// speak Latin letters as English
|
||||
a e:j
|
||||
b bi:
|
||||
c si:
|
||||
d di:
|
||||
e i:
|
||||
f Ef
|
||||
g dZi:
|
||||
h e:tS
|
||||
i a:j
|
||||
j dZe:j
|
||||
k ke:j
|
||||
l El
|
||||
m Em
|
||||
n En
|
||||
o o:
|
||||
p pi:
|
||||
q kju:
|
||||
r a:r
|
||||
s Es
|
||||
t t#i:
|
||||
u ju:
|
||||
v vi:
|
||||
w dabalju:
|
||||
x Eks
|
||||
y wa:j
|
||||
z zEd
|
||||
|
||||
|
||||
|
||||
// numbers
|
||||
_0 sunna
|
||||
_1 okat.i
|
||||
_1a oka
|
||||
_2 rend.u
|
||||
_3 mu:d.u
|
||||
_4 na:lgu
|
||||
_5 aIdu
|
||||
_6 a:ru
|
||||
_7 ;e:d.u
|
||||
_8 ;enimidi
|
||||
_9 tommidi
|
||||
_1X padi
|
||||
_11 padakond.u
|
||||
_12 pannemd.u
|
||||
_13 padamu:d.u:
|
||||
_14 pad#na:lugu
|
||||
_15 padihe:nu
|
||||
_16 padaha:ru
|
||||
_17 padihe:d.u
|
||||
_18 padd#enimidi
|
||||
_19 pamdommadi
|
||||
_2X irav#aI
|
||||
_3X muppaI
|
||||
_4X nalub#aI
|
||||
_5X ja:b#aI
|
||||
_6X arav#aI
|
||||
_7X d.eb#baI
|
||||
_8X jenab#aI
|
||||
_9X tomb#aI
|
||||
_0C v#andala
|
||||
_0C0 v#andalu
|
||||
_1C okav#anda
|
||||
_0M1 v#ela
|
||||
_0M1x v#elu
|
||||
_1M1 okav#ejji
|
||||
_0M2 laks.ala
|
||||
_0M2x laks.alu
|
||||
_1M2 laks.a
|
||||
_0M3 kotla
|
||||
_0M3x kotlu
|
||||
_1M3 koti
|
||||
_dpt _d,aS;a:mkam
|
||||
|
||||
|
||||
// symbols
|
||||
_?? aks.aram // 'unknown character'
|
||||
% S;a:tam
|
||||
+ ku:d.ika
|
||||
* naks.atra
|
||||
\ bja:kasla:s.
|
||||
/ sla:s.
|
||||
© ka:pi:raIt.
|
||||
¶ v#e:ra:
|
||||
|
||||
_, ka:ma:
|
||||
_; semi:ko:lan
|
||||
_: ko:lan
|
||||
_! a:S;carja:rt#aka
|
||||
_? praS;na:rt#aka
|
||||
_- haIfan
|
||||
__ amd.ar||sko:r
|
||||
|
||||
|
||||
// unstressed function words
|
||||
// articles
|
||||
ద $u
|
||||
అ $u+
|
||||
ఆ $u+
|
||||
ఒక $u
|
||||
|
||||
|
||||
// letter names
|
||||
U+c01 am
|
||||
U+c02 an
|
||||
U+c03 ah
|
||||
U+c4d v#ottu
|
||||
|
||||
// consonants with virama
|
||||
క్ ik
|
||||
ఖ్ ik#
|
||||
గ్ ig
|
||||
ఘ్ ig#
|
||||
ఙ్ iN
|
||||
చ్ ic
|
||||
ఛ్ ic#
|
||||
జ్ iJ
|
||||
ఝ్ iJ#
|
||||
ఞ్ in^
|
||||
ట్ it.
|
||||
ఠ్ it.#
|
||||
డ్ id.
|
||||
ఢ్ id.#
|
||||
ణ్ in.
|
||||
త్ it
|
||||
థ్ it#
|
||||
ద్ id
|
||||
ధ్ id#
|
||||
న్ in
|
||||
ప్ ip
|
||||
ఫ్ ip#
|
||||
బ్ ib
|
||||
భ్ ib#
|
||||
మ్ im
|
||||
య్ ij
|
||||
ర్ ir
|
||||
ఱ్ ir
|
||||
ల్ il
|
||||
ళ్ il.
|
||||
వ్ iv#
|
||||
శ్ iS;
|
||||
ష్ is.
|
||||
స్ is
|
||||
హ్ ih
|
||||
ౘ్ its
|
||||
ౙ్ idz
|
||||
|
||||
|
||||
// combining vowels, precede by a click so they
|
||||
// can be distinguished from stand-alone vowels
|
||||
ా #X2a::
|
||||
ి #X1i
|
||||
ీ #X2i::
|
||||
ు #X1u
|
||||
ూ #X2u::
|
||||
ృ #X1ru
|
||||
ౄ #X2ru:
|
||||
ె #X1e
|
||||
ే #X2e::
|
||||
ై #X2aI
|
||||
ొ #X1o
|
||||
ో #X2o::
|
||||
ౌ #X2aU
|
||||
|
||||
|
||||
@@ -0,0 +1,271 @@
|
||||
|
||||
// This file is UTF8 encoded
|
||||
// Spelling to phoneme rules for Telugu
|
||||
|
||||
// A means vowel letters (not vowel signs)
|
||||
// B means a combining vowel sign or a virama
|
||||
|
||||
|
||||
.replace
|
||||
౦ 0 // Convert Telugu numbers
|
||||
౧ 1
|
||||
౨ 2
|
||||
౩ 3
|
||||
౪ 4
|
||||
౫ 5
|
||||
౬ 6
|
||||
౭ 7
|
||||
౮ 8
|
||||
౯ 9
|
||||
|
||||
|
||||
.group క
|
||||
క ka
|
||||
క (B k
|
||||
|
||||
.group ఖ
|
||||
ఖ k#a
|
||||
ఖ (B k#
|
||||
|
||||
.group గ
|
||||
గ ga
|
||||
గ (B g
|
||||
|
||||
.group ఘ
|
||||
ఘ g#a
|
||||
ఘ (B g#
|
||||
|
||||
.group ఙ
|
||||
ఙ Na
|
||||
ఙ (B N
|
||||
|
||||
.group చ
|
||||
చ ca
|
||||
చ (B c
|
||||
|
||||
.group ఛ
|
||||
ఛ c#a
|
||||
ఛ (B c#
|
||||
|
||||
.group జ
|
||||
జ Ja
|
||||
జ (B J
|
||||
|
||||
.group ఝ
|
||||
ఝ J#a
|
||||
ఝ (B J#
|
||||
|
||||
.group ఞ
|
||||
ఞ n^a
|
||||
ఞ (B n^
|
||||
|
||||
.group ట
|
||||
ట t.a
|
||||
ట (B t.
|
||||
|
||||
.group ఠ
|
||||
ఠ t.#a
|
||||
ఠ (B t.#
|
||||
|
||||
.group డ
|
||||
డ d.a
|
||||
డ (B d.
|
||||
|
||||
.group ఢ
|
||||
ఢ d.#a
|
||||
ఢ (B d.#
|
||||
|
||||
.group ణ
|
||||
ణ n.a
|
||||
ణ (B n.
|
||||
|
||||
.group త
|
||||
త ta
|
||||
త (B t
|
||||
|
||||
.group థ
|
||||
థ t#a
|
||||
థ (B t#
|
||||
|
||||
.group ద
|
||||
ద da
|
||||
ద (B d
|
||||
|
||||
.group ధ
|
||||
ధ d#a
|
||||
ధ (B d#
|
||||
|
||||
.group న
|
||||
న na
|
||||
న (B n
|
||||
|
||||
.group ప
|
||||
ప pa
|
||||
ప (B p
|
||||
|
||||
.group ఫ
|
||||
ఫ p#a
|
||||
ఫ (B p#
|
||||
|
||||
.group బ
|
||||
బ ba
|
||||
బ (B b
|
||||
|
||||
.group భ
|
||||
భ b#a
|
||||
భ (B b#
|
||||
|
||||
.group మ
|
||||
మ ma
|
||||
మ (B m
|
||||
|
||||
.group య
|
||||
య ja
|
||||
య (B j
|
||||
|
||||
.group ర
|
||||
ర ra
|
||||
ర (B r
|
||||
|
||||
.group ఱ
|
||||
ఱ ra
|
||||
ఱ (B r
|
||||
|
||||
.group ల
|
||||
ల la
|
||||
ల (B l
|
||||
|
||||
.group ళ
|
||||
ళ l.a
|
||||
ళ (B l.
|
||||
|
||||
.group వ
|
||||
వ v#a
|
||||
వ (B v#
|
||||
|
||||
.group శ
|
||||
శ S;a
|
||||
శ (B S;
|
||||
|
||||
.group ష
|
||||
ష s.a
|
||||
ష (B s.
|
||||
|
||||
.group స
|
||||
స sa
|
||||
స (B s
|
||||
|
||||
.group హ
|
||||
హ ha
|
||||
హ (B h
|
||||
|
||||
.group ౘ
|
||||
ౘ tsa
|
||||
ౘ (B ts
|
||||
|
||||
.group ౙ
|
||||
ౙ dza
|
||||
ౙ (B dz
|
||||
|
||||
.group ౠ
|
||||
ౠ ru
|
||||
|
||||
.group ౡ
|
||||
ౡ l-
|
||||
|
||||
|
||||
// Stand-alone vowels
|
||||
.group అ
|
||||
అ a
|
||||
|
||||
.group ఆ
|
||||
ఆ a:
|
||||
|
||||
.group ఇ
|
||||
ఇ i
|
||||
|
||||
.group ఈ
|
||||
ఈ i:
|
||||
|
||||
.group ఉ
|
||||
ఉ u
|
||||
|
||||
.group ఊ
|
||||
ఊ u:
|
||||
|
||||
.group ఋ
|
||||
ఋ ru
|
||||
|
||||
.group ఌ
|
||||
ఌ l-
|
||||
|
||||
.group ఎ
|
||||
ఎ e
|
||||
_) ఎ ;e
|
||||
|
||||
.group ఏ
|
||||
ఏ e:
|
||||
|
||||
.group ఐ
|
||||
ఐ aI
|
||||
|
||||
.group ఒ
|
||||
ఒ o
|
||||
|
||||
.group ఓ
|
||||
ఓ o:
|
||||
|
||||
.group ఔ
|
||||
ఔ aU
|
||||
|
||||
|
||||
|
||||
.group 0xe0b0 // characters which start with UTF-8 bytes: [e0 b0]
|
||||
|
||||
. ఁ n // candrabindu
|
||||
|
||||
ం m // anusvara (this should nasalize the vowel)
|
||||
|
||||
ః h // visarga
|
||||
|
||||
// combining vowel signs
|
||||
|
||||
ా a:
|
||||
|
||||
ి i
|
||||
|
||||
|
||||
.group 0xe0b1 // characters which start with UTF-8 bytes: [e0 b1]
|
||||
|
||||
ీ i:
|
||||
|
||||
ు u
|
||||
|
||||
ూ u:
|
||||
|
||||
ృ ru
|
||||
|
||||
ౄ r-:
|
||||
|
||||
ె e
|
||||
|
||||
ే e:
|
||||
|
||||
ై aI
|
||||
|
||||
ొ o
|
||||
|
||||
ో o:
|
||||
|
||||
ౌ aU
|
||||
|
||||
్ // virama
|
||||
|
||||
ౕ : // length mark ??
|
||||
ౖ : // ai length mark ??
|
||||
|
||||
|
||||
.group
|
||||
$ d.a:lar
|
||||
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -29,7 +29,7 @@ endphoneme
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 225
|
||||
FMT(vowel/aa_9)
|
||||
FMT(vowel/a_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
+193
-150
@@ -23,6 +23,17 @@ phoneme @- // very short schwa
|
||||
ipa NULL // @-* is used to make 'r'
|
||||
ENDIF
|
||||
length 40
|
||||
// "femten", "manden" - only a short "n" sound
|
||||
IF nextPhW(n) THEN
|
||||
length 20
|
||||
ENDIF
|
||||
IF prevPhW(isNotVowel) AND thisPh(isWordEnd) THEN
|
||||
length 15
|
||||
ENDIF
|
||||
// "lige" [li@-]
|
||||
IF prevPhW(i) AND thisPh(isWordEnd) THEN
|
||||
length 15
|
||||
ENDIF
|
||||
FMT(vowel/@-)
|
||||
endphoneme
|
||||
|
||||
@@ -45,22 +56,22 @@ endphoneme
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 95 //150
|
||||
length 140 //225
|
||||
// PB long vowel followed by consonant and certain vowels "gide"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "gider", vrider"
|
||||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
|
||||
length 95
|
||||
length 140
|
||||
ENDIF
|
||||
// PB long vowel followed by certain vowels - "pigen" [p'i@-n]
|
||||
IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
length 150
|
||||
// PB long vowel followed by [@-] - "pigen" [p'i@-n]
|
||||
IF nextPhW(@-) OR nextPhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// Only this vowel (in this case [i])
|
||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "sig", "si"
|
||||
@@ -69,14 +80,23 @@ IF thisPh(isWordEnd) THEN
|
||||
ENDIF
|
||||
// "vilje" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 95
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "tie", "stige", "krige" vowel + vowel: extra length
|
||||
// What is causing this very short [i] in words with final [@-]?
|
||||
// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n]
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN
|
||||
// NOT "galleriet" [g,?&lVR'i@-D]
|
||||
IF nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN
|
||||
length 240
|
||||
ENDIF
|
||||
//"skider" short
|
||||
IF nextPhW(D) AND next2PhW(V) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
//"skideren" long
|
||||
IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
|
||||
FMT(vowel/i_4)
|
||||
endphoneme
|
||||
|
||||
@@ -84,7 +104,7 @@ endphoneme
|
||||
// sviret vs. svirret
|
||||
phoneme ?i
|
||||
vowel starttype #i endtype #i
|
||||
length 90
|
||||
length 100
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i_4)
|
||||
endphoneme
|
||||
@@ -99,26 +119,30 @@ endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 95 //150
|
||||
length 140 //225
|
||||
// "delte", "mente"
|
||||
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// PB "ring", "ringe"
|
||||
IF nextPhW(N) THEN
|
||||
length 95
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "enig", "enige", "evig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// Only "e"
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 95
|
||||
length 140
|
||||
ENDIF
|
||||
// "et"
|
||||
IF thisPh(isWordStart) AND nextPhW(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
@@ -127,18 +151,18 @@ endphoneme
|
||||
// "skille" vs. "skele", "pille" vs. "pile"
|
||||
phoneme ?e
|
||||
vowel starttype #e endtype #e
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 100 //150
|
||||
// "værelse", "breve"
|
||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
|
||||
// length 150
|
||||
length 140 //225
|
||||
// no link with next vowel
|
||||
IF thisPh(isWordEnd) THEN
|
||||
IfNextVowelAppend(_!)
|
||||
ENDIF
|
||||
// "ræve"
|
||||
// "ræve"
|
||||
IF nextVowel(#@) OR nextVowel(#e) THEN
|
||||
length 160
|
||||
ENDIF
|
||||
@@ -156,15 +180,15 @@ IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
ENDIF
|
||||
// "længe" - short - 2 consonants => 1 consonant
|
||||
IF nextPhW(N) THEN
|
||||
length 120
|
||||
length 100
|
||||
ENDIF
|
||||
// "værelse" [v'E3-Vls@_!]
|
||||
IF nextPhW(3-) AND next2PhW(V) THEN
|
||||
length 120
|
||||
length 100
|
||||
ENDIF
|
||||
// "mælkebøtte" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 120
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
@@ -174,22 +198,23 @@ endphoneme
|
||||
phoneme ?E
|
||||
vowel starttype #e endtype #e
|
||||
ipa ε
|
||||
length 100
|
||||
length 140
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
phoneme &
|
||||
vowel starttype #e endtype #e
|
||||
ipa a
|
||||
length 90 //150
|
||||
// "same", "sale", "bade" - consonant + gooup #e or group #@: long
|
||||
IF next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 150
|
||||
length 140 //225
|
||||
// "same", "sale", "bade" - consonant + @-: long
|
||||
// but NOT "hinanden"
|
||||
IF next2PhW(@-) OR next2PhW(@) AND NOT next3PhW(n) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// ThisPh + gooup #e or group #@
|
||||
// ThisPh + V or group #@
|
||||
// "ae", "aer" vowel + vowel: extra length
|
||||
IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
length 220
|
||||
IF nextPhW(@-) OR nextPhW(V) THEN
|
||||
length 260
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "ja", "Omaha"
|
||||
@@ -198,7 +223,7 @@ IF thisPh(isWordEnd) THEN
|
||||
ENDIF
|
||||
// Only this vowel (in this case [&])
|
||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "stadig" [st&Di], "stadigt" [st&Dit]
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
@@ -206,7 +231,7 @@ IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
ENDIF
|
||||
// "Alfie", "alfer" - short before 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 90
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/ee_2)
|
||||
endphoneme
|
||||
@@ -217,20 +242,20 @@ endphoneme
|
||||
phoneme ?&
|
||||
ipa a
|
||||
vowel starttype #e endtype #e
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/ee_2)
|
||||
endphoneme
|
||||
|
||||
// PB added for the æ in "dræbt"
|
||||
phoneme &#
|
||||
vowel starttype #e endtype #e
|
||||
length 120
|
||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 90
|
||||
length 140 //120
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
|
||||
length 150
|
||||
// "drenge"
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
@@ -239,33 +264,16 @@ endphoneme
|
||||
// "revl" vs. "tremme"
|
||||
phoneme ?&#
|
||||
vowel starttype #e endtype #e
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
//phoneme a
|
||||
// vowel starttype #a endtype #a
|
||||
// length 90 //150
|
||||
//IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
// length 150
|
||||
//ENDIF
|
||||
// FMT(vowel/a_2)
|
||||
//endphoneme
|
||||
|
||||
// PB short (glottal) a
|
||||
// "bragt"
|
||||
//phoneme ?a
|
||||
// vowel starttype #a endtype #a
|
||||
// length 90
|
||||
// FMT(vowel/a_2)
|
||||
//endphoneme
|
||||
|
||||
phoneme A // PB changed to a_8
|
||||
vowel starttype #a endtype #a
|
||||
length 90 //150
|
||||
length 140 //225
|
||||
// PB long vowel followed by consonant and certain vowels - "drabelig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 150
|
||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "far", "bastard" - a bit longer followed by [r]
|
||||
IF nextPhW(r) AND nextPhW(isWordEnd) THEN
|
||||
@@ -273,11 +281,19 @@ IF nextPhW(r) AND nextPhW(isWordEnd) THEN
|
||||
ENDIF
|
||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short
|
||||
IF nextPhW(N) THEN
|
||||
length 90
|
||||
length 140
|
||||
ENDIF
|
||||
// "fare" [f'A:A]
|
||||
IF nextPhW(A) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "av" [Au] - a bit longer
|
||||
IF nextPhW(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// "magnat" [mAun&d] - sounds too short
|
||||
IF nextPhW(u) OR nextPhW(w) THEN
|
||||
length 130
|
||||
ENDIF
|
||||
FMT(vowel/a_8)
|
||||
endphoneme
|
||||
@@ -286,7 +302,7 @@ endphoneme
|
||||
// "drab" vs. "drabelig"
|
||||
phoneme ?A
|
||||
vowel starttype #a endtype #a
|
||||
length 90
|
||||
length 140
|
||||
// "straffeattest", "straffe", "rapid" - a bit longer after R
|
||||
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN
|
||||
length 110
|
||||
@@ -296,10 +312,14 @@ endphoneme
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 90 //150
|
||||
length 140 //225
|
||||
// "fugl" [ful] - a bit longer
|
||||
IF nextPhW(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// "suge", "uge", "bluse", "julegave"
|
||||
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN
|
||||
length 150
|
||||
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "umulig" [u:m'uli]
|
||||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
|
||||
@@ -307,11 +327,7 @@ IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
|
||||
ENDIF
|
||||
// Only "u"
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 150
|
||||
ENDIF
|
||||
// "fugl" [ful] - a bit longer
|
||||
IF nextPhW(isWordEnd) THEN
|
||||
length 120
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
@@ -320,20 +336,33 @@ endphoneme
|
||||
// "tude" vs. "tuden" - [tuD3] [t?uD@n]
|
||||
phoneme ?u
|
||||
vowel starttype #u endtype #u
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 90 //150
|
||||
length 140 //225
|
||||
// "bore", "borer"
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 150
|
||||
IF nextPhW(V) OR nextPhW(#@) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "kone", "koner"
|
||||
IF next2PhW(V) OR next2PhW(#@) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "modig" - long vowel after consonant + [i]
|
||||
IF nextPhW(D) AND next2PhW(i) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// Only "o"
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "ko"
|
||||
IF thisPh(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/o_2)
|
||||
endphoneme
|
||||
@@ -342,24 +371,33 @@ endphoneme
|
||||
// "patron" vs. "kone"
|
||||
phoneme ?o
|
||||
vowel starttype #o endtype #o
|
||||
length 95
|
||||
length 140
|
||||
FMT(vowel/o_2)
|
||||
endphoneme
|
||||
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 90 // 150
|
||||
length 140 // 150
|
||||
// "sove", "sover" - consonant + #e or #@: long
|
||||
IF next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 150
|
||||
IF next2PhW(@-) OR next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// PB "gået" - ThisPh + #e or #@
|
||||
IF nextPhW(#e) OR nextPhW(#@) THEN
|
||||
length 150
|
||||
// PB "gået" - ThisPh + V or @-
|
||||
IF nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "rådig"
|
||||
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN
|
||||
length 180
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "på", "gå"
|
||||
IF thisPh(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// "såre", "sårede" [s'O:?OD@-]
|
||||
IF nextPhW(O) OR nextPhW(?O) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/o_5)
|
||||
endphoneme
|
||||
@@ -368,36 +406,33 @@ endphoneme
|
||||
// "toget" vs. "tåget"
|
||||
phoneme ?O
|
||||
vowel starttype #o endtype #o
|
||||
length 90
|
||||
length 140
|
||||
// "hoven"
|
||||
IF nextPhW(w) OR nextPhW(?u) AND next2PhW(@-) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/o_5)
|
||||
endphoneme
|
||||
|
||||
phoneme V
|
||||
vowel starttype #@ endtype #@
|
||||
length 150
|
||||
// "sport" [spV:t]
|
||||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 90
|
||||
ENDIF
|
||||
IF nextPh(3) OR nextPh(V) OR nextPh(@) THEN
|
||||
length 150
|
||||
ENDIF
|
||||
// PB short V in "holder", "solder"
|
||||
IF nextPhW(isNotVowel) AND next2Ph(V) THEN
|
||||
length 90
|
||||
ENDIF
|
||||
// "snorke", "snorker", årlig
|
||||
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN
|
||||
length 140 //225
|
||||
// "forlig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 180
|
||||
ENDIF
|
||||
// "sove" [sVw3] - longer followed by w + 3
|
||||
IF nextPhW(w) AND next2PhW(3) THEN
|
||||
length 220
|
||||
ENDIF
|
||||
// PB "konge"
|
||||
// PB "konge" - ng=>n
|
||||
IF nextPhW(N) THEN
|
||||
length 95
|
||||
length 100
|
||||
ENDIF
|
||||
// Only [V] - "og"
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "for" [fV]
|
||||
IF thisPh(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
@@ -406,19 +441,15 @@ endphoneme
|
||||
// "forstår" vs. "kåre"
|
||||
phoneme ?V
|
||||
vowel starttype #@ endtype #@
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
|
||||
phoneme 0
|
||||
vowel starttype #o endtype #o
|
||||
length 150
|
||||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 90
|
||||
ENDIF
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
|
||||
length 150
|
||||
length 140 //225
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/oo_2)
|
||||
endphoneme
|
||||
@@ -426,7 +457,7 @@ endphoneme
|
||||
// Short 0 "sukker"
|
||||
phoneme ?0
|
||||
vowel starttype #o endtype #o
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/oo_2)
|
||||
endphoneme
|
||||
|
||||
@@ -434,28 +465,28 @@ phoneme y
|
||||
vowel starttype #i endtype #i
|
||||
// Length changed to short since most vowels are short.
|
||||
// It's probably easier only to make rules for long vowels.
|
||||
length 90 //150
|
||||
length 140 //225
|
||||
|
||||
// PB long vowel followed by consonant and certain vowels
|
||||
// "lyde", "lyder"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 150
|
||||
// "gyde", "gyder"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// Only this vowel (in this case [y])
|
||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "dydig" [dyDi]
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD]
|
||||
IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN
|
||||
// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD]
|
||||
IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN
|
||||
length 200
|
||||
ENDIF
|
||||
// "tyve"
|
||||
IF nextPhW(?u) AND next2PhW(@-) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/y)
|
||||
endphoneme
|
||||
@@ -464,26 +495,26 @@ endphoneme
|
||||
// "kylling" vs. "kyle", "krybbe" vs. "krybe"
|
||||
phoneme ?y
|
||||
vowel starttype #i endtype #i
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/y)
|
||||
endphoneme
|
||||
|
||||
phoneme Y
|
||||
vowel starttype #i endtype #i
|
||||
length 150
|
||||
length 225
|
||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 90
|
||||
length 140
|
||||
ENDIF
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/yy)
|
||||
endphoneme
|
||||
|
||||
phoneme W
|
||||
vowel starttype #@ endtype #@
|
||||
length 90 //160
|
||||
length 140 //160
|
||||
// "kløe" vowel + vowel: extra length
|
||||
IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
length 220
|
||||
@@ -494,7 +525,7 @@ IF next2PhW(#@) OR next2PhW(#e) THEN
|
||||
ENDIF
|
||||
// "røveri" but NOT "surfer" [sWf?V] TEST
|
||||
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN
|
||||
length 90
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "nødig", "nødigt", "kølige"
|
||||
IF nextVowel(i) THEN
|
||||
@@ -506,7 +537,16 @@ IF nextPhW(w) AND nextVowel(@-) THEN
|
||||
ENDIF
|
||||
// "børnebog"
|
||||
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "dø" [dW]
|
||||
IF thisPh(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
// PB "synge"
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
@@ -515,21 +555,17 @@ endphoneme
|
||||
// "prøv" vs. "prøve"
|
||||
phoneme ?W
|
||||
vowel starttype #@ endtype #@
|
||||
length 95
|
||||
length 140
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
|
||||
// Added for the ø in "røv", "røg", "øje" instead of [V3]
|
||||
phoneme W#
|
||||
vowel starttype #@ endtype #@
|
||||
length 90 //150
|
||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
// length 90
|
||||
ENDIF
|
||||
length 140 //225
|
||||
// PB long vowel followed by consonant and certain vowels
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/V)
|
||||
endphoneme
|
||||
@@ -538,7 +574,7 @@ endphoneme
|
||||
// "rømme"
|
||||
phoneme ?W#
|
||||
vowel starttype #@ endtype #@
|
||||
length 90
|
||||
length 140
|
||||
FMT(vowel/V)
|
||||
endphoneme
|
||||
|
||||
@@ -547,7 +583,7 @@ phoneme aI
|
||||
length 300
|
||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 150
|
||||
length 225
|
||||
ENDIF
|
||||
// "dreje" [dR'aI@-_!]
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
|
||||
@@ -571,6 +607,10 @@ endphoneme
|
||||
phoneme l
|
||||
liquid
|
||||
lengthmod 7
|
||||
// [ll] => [-l] - avoid double l
|
||||
IF nextPhW(l) THEN
|
||||
// ChangePhoneme(-)
|
||||
ENDIF
|
||||
ChangePhoneme(l/3)
|
||||
// CALL base/l
|
||||
endphoneme
|
||||
@@ -579,16 +619,16 @@ phoneme l/3 // Replacement for [l/]
|
||||
liquid
|
||||
lengthmod 7
|
||||
|
||||
IF nextPh(isVowel) THEN
|
||||
IF nextPhW(isVowel) THEN
|
||||
// ChangePhoneme(l)
|
||||
ENDIF
|
||||
|
||||
PrevVowelEndings
|
||||
VowelEnding(l/l_@)
|
||||
VowelEnding(l/l_a,-70) // kvalt, kapital
|
||||
VowelEnding(l/l_e, -40)
|
||||
VowelEnding(l/l_i, -70)
|
||||
VowelEnding(l/l_o,-70) // stole, skole, pistol
|
||||
VowelEnding(l/l_a)
|
||||
VowelEnding(l/l_e, -50) // hjælpe
|
||||
VowelEnding(l/l_i, -70) // flygte?
|
||||
VowelEnding(l/l_o,-35) // stole, skole, pistol
|
||||
VowelEnding(l/l_u, -70)
|
||||
EndSwitch
|
||||
|
||||
@@ -678,7 +718,10 @@ endphoneme
|
||||
phoneme j
|
||||
liquid palatal
|
||||
lengthmod 7
|
||||
|
||||
// no link with next vowel
|
||||
IF thisPh(isWordEnd) THEN
|
||||
IfNextVowelAppend(_!)
|
||||
ENDIF
|
||||
IF nextPhW(isVowel) THEN
|
||||
NextVowelStarts
|
||||
VowelStart(j/j@)
|
||||
@@ -699,4 +742,4 @@ Vowelout len=70
|
||||
Vowelout len=70
|
||||
FMT(j/j_)
|
||||
ENDIF
|
||||
endphoneme
|
||||
endphoneme
|
||||
|
||||
+1
-1
@@ -439,7 +439,7 @@ endphoneme
|
||||
|
||||
phoneme c#
|
||||
CALL base/tS;
|
||||
ipa ch
|
||||
ipa cU+02B0
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
@@ -95,6 +95,26 @@ phoneme dZ; // voiced /ㅈ/
|
||||
FMT(dzh/dzh) addWav(x/dz_pzd)
|
||||
endphoneme
|
||||
|
||||
phoneme s-
|
||||
import_phoneme base/s // temporary
|
||||
endphoneme
|
||||
|
||||
phoneme q-
|
||||
import_phoneme base/q // temporary
|
||||
endphoneme
|
||||
|
||||
phoneme tS;-
|
||||
import_phoneme base/tS; // temporary
|
||||
endphoneme
|
||||
|
||||
phoneme d-
|
||||
import_phoneme base/d
|
||||
endphoneme
|
||||
|
||||
// phoneme tSh; ?? changed to [tS;h] in ko_rules
|
||||
// phoneme h- in ko_list (for 10^3) ?? changed to [h]
|
||||
// phoneme tSh- changed to tSh
|
||||
|
||||
phoneme * // r(ㄹ) at initial, medial
|
||||
vcd alv flp rhotic
|
||||
ipa ɾ
|
||||
|
||||
+119
-1
@@ -25,7 +25,7 @@ phoneme a
|
||||
length 130
|
||||
|
||||
IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN
|
||||
FMT(vowel/a#_2)
|
||||
FMT(vowel/a#_4)
|
||||
ELSE
|
||||
ChangeIfUnstressed(@)
|
||||
|
||||
@@ -144,3 +144,121 @@ phoneme d2 // 'rr' sounds like English 'd'
|
||||
endphoneme
|
||||
|
||||
|
||||
// Aspirated voice stops, sound like aspirated unvoiced stops ?
|
||||
|
||||
phoneme b#
|
||||
vls blb stop prevoice
|
||||
lengthmod 2
|
||||
voicingswitch b
|
||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
|
||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
|
||||
|
||||
IF PreVoicing THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
FMT(b/xb)
|
||||
ELSE
|
||||
FMT(voc/murmur1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/p_)
|
||||
ENDIF
|
||||
IF nextPh(l) THEN
|
||||
WAV(ustop/pl)
|
||||
ENDIF
|
||||
WAV(ustop/p_asp)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d#
|
||||
vls dnt stop prevoice
|
||||
lengthmod 2
|
||||
voicingswitch d
|
||||
Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
|
||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
FMT(d/xd)
|
||||
ELSE
|
||||
FMT(voc/murmur1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/t_dnt, 35)
|
||||
ENDIF
|
||||
WAV(ustop/t_dnt, 50)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d.#
|
||||
vls rfx stop prevoice
|
||||
lengthmod 2
|
||||
ipa ʈU+02B0
|
||||
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
||||
|
||||
IF PreVoicing THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
FMT(d/xdr)
|
||||
ELSE
|
||||
FMT(voc/murmur1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
voicingswitch d.#
|
||||
WAV(ustop/t)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme J#
|
||||
vls pal afr sibilant palatal prevoice
|
||||
voicingswitch c#
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
||||
|
||||
IF PreVoicing THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
FMT(dzh/xdz_pzd)
|
||||
ELSE
|
||||
FMT(voc/murmur1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/ts_pzd)
|
||||
ENDIF
|
||||
WAV(ustop/ts_pzd)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g#
|
||||
vls vel stop prevoice
|
||||
lengthmod 2
|
||||
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
FMT(g/xg)
|
||||
ELSE
|
||||
FMT(voc/murmur1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/k_asp, 40)
|
||||
ENDIF
|
||||
IF nextPhW(#e) OR nextPhW(#i) THEN
|
||||
WAV(ustop/k_asp_e, 40)
|
||||
ELIF nextPhW(#o) OR nextPhW(#u) THEN
|
||||
WAV(ustop/k_asp_a, 25)
|
||||
ELSE
|
||||
WAV(ustop/k_asp_a, 30)
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -1745,6 +1745,9 @@ include ph_kannada
|
||||
phonemetable ml hi
|
||||
include ph_malayalam
|
||||
|
||||
phonemetable te hi
|
||||
include ph_telugu
|
||||
|
||||
|
||||
|
||||
phonemetable hu base
|
||||
@@ -1923,9 +1926,6 @@ include ph_slovenian
|
||||
//phonemetable dv hi
|
||||
//include ph_divehi
|
||||
|
||||
//phonemetable te hi
|
||||
//include ph_telugu
|
||||
|
||||
//phonemetable tn base
|
||||
//include ph_setswana
|
||||
|
||||
|
||||
Executable
BIN
Binary file not shown.
+1
-1
@@ -619,7 +619,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed
|
||||
}
|
||||
|
||||
if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE)
|
||||
if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE))
|
||||
{
|
||||
phlist[ix].length = 128; // length_mod
|
||||
phlist[ix].env = PITCHfall;
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.47.03c 23.Mar.13";
|
||||
const char *version_string = "1.47.03d 26.Mar.13";
|
||||
const int version_phdata = 0x014701;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+19
-1
@@ -1426,7 +1426,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
|
||||
EndAmplitude();
|
||||
|
||||
if(p->prepause > 0)
|
||||
if((p->prepause > 0) && !(p->ph->phflags & phPREVOICE))
|
||||
DoPause(p->prepause,1);
|
||||
|
||||
done_phoneme_marker = 0;
|
||||
@@ -1455,6 +1455,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
|
||||
case phSTOP:
|
||||
released = 0;
|
||||
ph = p->ph;
|
||||
if(next->type==phVOWEL)
|
||||
{
|
||||
released = 1;
|
||||
@@ -1468,6 +1469,23 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
if(released == 0)
|
||||
p->synthflags |= SFLAG_NEXT_PAUSE;
|
||||
|
||||
if(ph->phflags & phPREVOICE)
|
||||
{
|
||||
// a period of voicing before the release
|
||||
memset(&fmtp, 0, sizeof(fmtp));
|
||||
InterpretPhoneme(NULL, 0x01, p, &phdata, &worddata);
|
||||
fmtp.fmt_addr = phdata.sound_addr[pd_FMT];
|
||||
fmtp.fmt_amp = phdata.sound_param[pd_FMT];
|
||||
|
||||
if(last_pitch_cmd < 0)
|
||||
{
|
||||
DoAmplitude(next->amp,NULL);
|
||||
DoPitch(envelope_data[p->env],next->pitch1,next->pitch2);
|
||||
}
|
||||
|
||||
DoSpect2(ph, 0, &fmtp, p, 0);
|
||||
}
|
||||
|
||||
InterpretPhoneme(NULL, 0, p, &phdata, &worddata);
|
||||
phdata.pd_control |= pd_DONTLENGTHEN;
|
||||
DoSample3(&phdata, 0, 0);
|
||||
|
||||
@@ -79,7 +79,7 @@ ALPHABET alphabets [] = {
|
||||
{"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0},
|
||||
{"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0},
|
||||
{"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS},
|
||||
{"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0},
|
||||
{"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b','n'), 0},
|
||||
{"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS},
|
||||
{"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0},
|
||||
{"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0},
|
||||
|
||||
+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 =
|
||||
"fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta tr vi vi-hue zh zh-yue ";
|
||||
"bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue 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