Lang=ml, change aspirated voiced consonants. Lang=ko, define temporary replacements for undefined consonant phonemes. Lang=bn, fix numbers. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@334 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -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 | |||
_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 | |||
_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 | |||
// 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 | |||
_70 S'OttOr | |||
_7X S'OttOr | |||
_79 'unOaSi | |||
_29 unOtr'iS | |||
_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 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. | |||
_80 'aSi | |||
_8X 'aSi | |||
_89 'unOnObbOj | |||
_90 n'ObbOj | |||
_9X n'ObbOj | |||
_60 s'at. | |||
_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 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 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 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 |
@@ -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 |
@@ -15,16 +15,6 @@ n N n^ p r s S t | |||
T tS v w x x2 z Z | |||
Dictionary ak_dict 2010-08-11 | |||
a e E i o O u | |||
: b C d dZ dZ; f g | |||
h j k l m n N n^ | |||
p R s t tS; v w z | |||
z; | |||
Dictionary am_dict 2011-11-22 | |||
@ a e i o u y | |||
@@ -46,6 +36,19 @@ Q r R R2 s S t T | |||
t# tS w x | |||
Dictionary te_dict 2013-03-26 | |||
a a: aI aU e E e: i | |||
i: l- o o: r- u u: | |||
#X1 #X2 : ; b b# c c# | |||
d d# d. d.# dZ f g g# | |||
h j J J# k k# l l. | |||
m n N n. n^ p p# r | |||
s s. S; t t# t. t.# tS | |||
v v# w z | |||
Dictionary bg_dict 2013-03-16 | |||
@ a e i o u | |||
@@ -57,7 +60,7 @@ s; t t; tS ts v x z | |||
Z z; | |||
Dictionary bn_dict 2013-03-25 | |||
Dictionary bn_dict 2013-03-26 | |||
& a a~ e e~ i i~ l- | |||
o O o: O~ o~ r- u u~ | |||
@@ -108,7 +111,7 @@ p r s S t T v w | |||
x z | |||
Dictionary da_dict 2013-03-15 | |||
Dictionary da_dict 2013-03-26 | |||
& &# 0 3 ?& ?&# ?0 ?A | |||
?e ?E ?i ?o ?O ?u ?V ?W | |||
@@ -147,7 +150,7 @@ p Q r R s s; t T | |||
ts v x z | |||
Dictionary en_dict 2013-03-25 | |||
Dictionary en_dict 2013-03-26 | |||
0 0# 3 3: @ @- @2 @5 | |||
@L a a# A: A@ aa aI aI3 | |||
@@ -389,14 +392,14 @@ S s. S; t t# t. t.# tS | |||
v w z | |||
Dictionary ko_dict 2013-03-19 | |||
Dictionary ko_dict 2013-03-26 | |||
@ a e E i o u u- | |||
* - ; b d dZ; g h | |||
* ; b d d- dZ; g h | |||
j k k- kh l L m n | |||
N p p- ph q r R s | |||
t t- tS tS; w | |||
N p p- ph q q- r R | |||
s s- t t- tS tS; tS;- w | |||
Dictionary ku_dict 2008-04-14 | |||
@@ -560,7 +563,7 @@ S s; S; t t; tS ts tS; | |||
ts; v w x z Z Z; | |||
Dictionary pt_dict 2013-03-25 | |||
Dictionary pt_dict 2013-03-26 | |||
& &/ &U~ &~ @ @- a A | |||
aI aU e E eI EI eU EU | |||
@@ -602,16 +605,6 @@ t; ts tS; v x z Z z; | |||
Z; | |||
Dictionary rw_dict 2008-03-27 | |||
a e i o u | |||
* : b B c d dZ f | |||
g h j J k l m n | |||
N n^ p q R s S S; | |||
t tS v w x z | |||
Dictionary si_dict 2013-03-23 | |||
& &: @ a a: aI aU e |
@@ -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 |
@@ -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: |
@@ -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 |
@@ -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 |
@@ -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. |
@@ -27,7 +27,7 @@ s Es | |||
t t#i: | |||
u ju: | |||
v vi: | |||
w dVbVlju: | |||
w dabalju: | |||
x Eks | |||
y wa:j | |||
z zEd | |||
@@ -43,7 +43,7 @@ _3 mu:d.u | |||
_4 na:lgu | |||
_5 aIdu | |||
_6 a:ru | |||
_7 e:d.u | |||
_7 ;e:d.u | |||
_8 ;enimidi | |||
_9 tommidi | |||
_1X padi | |||
@@ -56,20 +56,20 @@ _16 padaha:ru | |||
_17 padihe:d.u | |||
_18 padd#enimidi | |||
_19 pamdommadi | |||
_2X iravaI | |||
_2X irav#aI | |||
_3X muppaI | |||
_4X nalub#aI | |||
_5X ja:b#aI | |||
_6X aravaI | |||
_6X arav#aI | |||
_7X d.eb#baI | |||
_8X jenab#aI | |||
_9X tomb#aI | |||
_0C vandala | |||
_0C0 vandalu | |||
_1C okavanda | |||
_0M1 vela | |||
_0M1x velu | |||
_1M1 okavejji | |||
_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 | |||
@@ -87,7 +87,7 @@ _?? aks.aram // 'unknown character' | |||
\ bja:kasla:s. | |||
/ sla:s. | |||
© ka:pi:raIt. | |||
¶ ve:ra: | |||
¶ v#e:ra: | |||
_, ka:ma: | |||
_; semi:ko:lan | |||
@@ -110,7 +110,7 @@ __ amd.ar||sko:r | |||
U+c01 am | |||
U+c02 an | |||
U+c03 ah | |||
U+c4d vottu | |||
U+c4d v#ottu | |||
// consonants with virama | |||
క్ ik | |||
@@ -143,7 +143,7 @@ U+c4d vottu | |||
ఱ్ ir | |||
ల్ il | |||
ళ్ il. | |||
వ్ iv | |||
వ్ iv# | |||
శ్ iS; | |||
ష్ is. | |||
స్ is |
@@ -140,8 +140,8 @@ | |||
ళ (B l. | |||
.group వ | |||
వ va | |||
వ (B v | |||
వ v#a | |||
వ (B v# | |||
.group శ | |||
శ S;a | |||
@@ -265,12 +265,6 @@ | |||
ౖ : // ai length mark ?? | |||
.group 0xe0a4 // devanagari | |||
0xe0a4 _^_HI // switch to hindi voice for devanagari characters | |||
.group 0xe0a5 // devanagari | |||
0xe0a5 _^_HI | |||
.group | |||
$ d.a:lar | |||
@@ -1,5 +1,5 @@ | |||
74 phoneme tables | |||
75 phoneme tables | |||
new total | |||
base 109 109 | |||
consonants 11 119 | |||
@@ -30,7 +30,8 @@ consonants 11 119 | |||
pa 15 151 | |||
ta 23 153 | |||
kn 17 149 | |||
ml 21 152 | |||
ml 26 152 | |||
te 16 149 | |||
hu 25 124 | |||
lt 44 139 | |||
lv 29 127 | |||
@@ -69,7 +70,7 @@ consonants 11 119 | |||
da 45 138 | |||
ka 20 115 | |||
fa 9 112 | |||
ko 15 116 | |||
ko 19 120 | |||
kl 18 119 | |||
am 15 114 | |||
si 24 155 | |||
@@ -95,6 +96,7 @@ b/bu [b] base | |||
b/xb [b] base | |||
[b] fr | |||
[b#] hi | |||
[b#] ml | |||
b/xbr [b] fr | |||
d/d [d] base | |||
[d[] base | |||
@@ -161,6 +163,7 @@ d/xd [d] base | |||
[z] fr | |||
[d#] hi | |||
[d] kn | |||
[d#] ml | |||
[d] hu | |||
[d] lt | |||
[d] pl | |||
@@ -174,6 +177,7 @@ d/xd_pzd [d^] et | |||
d/xdr [d] fr | |||
[d.] hi | |||
[d.#] hi | |||
[d.#] ml | |||
d/xdz [dz] consonants | |||
d/x_tap [t#] en | |||
[*] pt | |||
@@ -210,6 +214,7 @@ dzh/xdzh [dZ] base | |||
[dZ;] sq | |||
dzh/xdz_pzd [J] base | |||
[J#] hi | |||
[J#] ml | |||
[J] tr | |||
[J] ku | |||
envelope/i_risefall [11] zh | |||
@@ -271,6 +276,7 @@ g/xg [g] base | |||
[g-] en | |||
[g] cy | |||
[g] fr | |||
[g#] ml | |||
[g] ru | |||
[g;] bg | |||
[g] es | |||
@@ -810,11 +816,14 @@ ustop/k_ [k] base | |||
ustop/k_asp [k#] consonants | |||
[kh] consonants | |||
[g#] hi | |||
[g#] ml | |||
[kh] zh | |||
[k#] ka | |||
ustop/k_asp_a [k#] consonants | |||
[g#] ml | |||
[k#] ka | |||
ustop/k_asp_e [k#] consonants | |||
[g#] ml | |||
[k#] ka | |||
ustop/k_asp_u [k#] ka | |||
ustop/k_ejc [k`] am | |||
@@ -862,8 +871,10 @@ ustop/p [p] base | |||
ustop/p_ [p] base | |||
[ph] consonants | |||
[p] fr | |||
[b#] ml | |||
ustop/p_asp [ph] consonants | |||
[b#] hi | |||
[b#] ml | |||
[ph] zh | |||
ustop/percus02 [#X2] hi | |||
ustop/percus10 [#X1] base | |||
@@ -872,6 +883,7 @@ ustop/pl [p] base | |||
[ph] consonants | |||
[p] base2 | |||
[p] fr | |||
[b#] ml | |||
[p] lv | |||
[p] sk | |||
[p] sq | |||
@@ -902,6 +914,7 @@ ustop/t [t] base | |||
[t] en-us | |||
[d.#] hi | |||
[t.#] hi | |||
[d.#] ml | |||
[t] zhy | |||
[t] da | |||
ustop/t_ [t] base | |||
@@ -919,6 +932,7 @@ ustop/t_dnt [t] base | |||
[t] et | |||
[d#] hi | |||
[t#] hi | |||
[d#] ml | |||
[t] hu | |||
[t] lt | |||
[t] pl | |||
@@ -967,6 +981,7 @@ ustop/tsh_sr [tS] sr | |||
ustop/tsh_unasp [tS`] am | |||
ustop/ts_pzd [tS;] base | |||
[J#] hi | |||
[J#] ml | |||
[tS;] lt | |||
[tS;] ru | |||
[dZ;] sq | |||
@@ -1081,6 +1096,7 @@ vdiph/aau_3 [aU] hi | |||
[aU] ne | |||
[aU] kn | |||
[aU] ml | |||
[aU] te | |||
vdiph/aau_4 [aU] vi | |||
vdiph/aau_6 [aU] de | |||
vdiph/ae [E:] fr-ca | |||
@@ -1092,6 +1108,7 @@ vdiph/ai [aI] base2 | |||
[aI] eo | |||
[aI] kn | |||
[aI] ml | |||
[aI] te | |||
[aI] lt | |||
[aI] sk | |||
[aI] hr | |||
@@ -1327,6 +1344,11 @@ voc/dh [D] base | |||
voc/dh_ [D] base | |||
[D] es | |||
voc/j [J^] base | |||
voc/murmur1 [J#] ml | |||
[b#] ml | |||
[d#] ml | |||
[g#] ml | |||
[d.#] ml | |||
voc/Q [Q] base | |||
[Q^] base | |||
[Q] ka | |||
@@ -1398,6 +1420,7 @@ vowel/@ [@] base | |||
[V] cy | |||
[@/] ga | |||
[@] kn | |||
[@] te | |||
[@] hy | |||
[@] ka | |||
[@] sl | |||
@@ -1511,7 +1534,7 @@ vowel/a_2 [a] base2 | |||
vowel/a#_2 [A] nl | |||
[a:] nl | |||
[a] kn | |||
[a] ml | |||
[a] te | |||
[a#] pl | |||
[&] hr | |||
[a] sv | |||
@@ -1523,6 +1546,7 @@ vowel/a_3 [a] en-sc | |||
[a/] en-sc | |||
[A:] en-sc | |||
[aa] en-sc | |||
[a] bn | |||
[a:] kn | |||
[A] lt | |||
[a] lt | |||
@@ -1559,11 +1583,13 @@ vowel/a_4 [a] ga | |||
[a] es | |||
[a] el | |||
vowel/a#_4 [a:] nl | |||
[a] ml | |||
[a] bg | |||
[a/] it | |||
[a] tr | |||
vowel/a_5 [a:] ta | |||
[a:] ml | |||
[a:] te | |||
[a/] it | |||
[a] la | |||
[a] sv | |||
@@ -1612,7 +1638,6 @@ vowel/aa_8 [0] en-us | |||
vowel/aa_9 [a] fi | |||
[a] et | |||
[a:] hi | |||
[a] bn | |||
[a] ne | |||
[a] pa | |||
vowel/@_bck [@] hi | |||
@@ -1640,6 +1665,7 @@ vowel/e [e] base | |||
[e:] kn | |||
[e] ml | |||
[e:] ml | |||
[e:] te | |||
[e] hr | |||
[e/] it | |||
[e:] la | |||
@@ -1753,6 +1779,7 @@ vowel/e_mid2 [E] af | |||
[e] nci | |||
[e] fi | |||
[E] nl | |||
[e] te | |||
[e] sk | |||
[e] bg | |||
[e/] it | |||
@@ -1788,6 +1815,7 @@ vowel/i [i] base | |||
[i:] ta | |||
[i:] kn | |||
[i:] ml | |||
[i:] te | |||
[i:] hu | |||
[i] it | |||
[i] es | |||
@@ -1831,6 +1859,7 @@ vowel/i_6 [i] hi | |||
[i] ta | |||
[i] kn | |||
[i] ml | |||
[i] te | |||
[i:] lt | |||
[i] lv | |||
[i:] lv | |||
@@ -1950,6 +1979,8 @@ vowel/o [o] base2 | |||
[o:] kn | |||
[o] ml | |||
[o:] ml | |||
[o] te | |||
[o:] te | |||
[o] it | |||
[o/] it | |||
[O] la | |||
@@ -2119,6 +2150,8 @@ vowel/u#_5 [y] vi | |||
vowel/u_6 [u] ta | |||
[u2] ta | |||
[u:] ta | |||
[u] te | |||
[u:] te | |||
[U] pt-pt | |||
[u] pt-pt | |||
[u] ku |
@@ -29,7 +29,7 @@ endphoneme | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 225 | |||
FMT(vowel/aa_9) | |||
FMT(vowel/a_3) | |||
endphoneme | |||
@@ -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 |
@@ -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 ɾ |
@@ -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 | |||
@@ -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 | |||
@@ -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; |
@@ -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; |
@@ -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}, |
@@ -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 "; | |||