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
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Numbers | // Numbers | ||||
devanagari numbers are changed to latin characters before translation | |||||
// Bengali numbers are changed to latin characters before translation | |||||
_0 S'unjO | _0 S'unjO | ||||
_1 '&k | _1 '&k | ||||
_2 duj | _2 duj | ||||
_8 'at.# | _8 'at.# | ||||
_9 n'Oj | _9 n'Oj | ||||
_2a d'u // with hundreds etc. | |||||
_6a tS#'a | |||||
_9a n'O | |||||
_10 d'OS | _10 d'OS | ||||
_11 '&garo | _11 '&garo | ||||
_12 b'arO | _12 b'arO | ||||
_13 t'erO | _13 t'erO | ||||
_14 tS'owddO | |||||
_14 tS'oddO | |||||
_15 p'OnerO | _15 p'OnerO | ||||
_16 S'olO | _16 S'olO | ||||
_17 S'OterO | _17 S'OterO | ||||
_19 'uniS | _19 'uniS | ||||
_20 k'uri // or b'iS ?? | _20 k'uri // or b'iS ?? | ||||
_21 'ekuS | |||||
_21 ek'uS | |||||
_22 b'ajS | _22 b'ajS | ||||
_23 t'ejS | _23 t'ejS | ||||
_24 tS'ObbiS | _24 tS'ObbiS | ||||
_25 p'O~tSiS | _25 p'O~tSiS | ||||
_26 tSh'ObbiS | |||||
_27 S'ataS | |||||
_26 tSh'abbiS | |||||
_27 Sat'aS | |||||
_28 'at.#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 | _0C S'o | ||||
_0M1 h'ajar | _0M1 h'ajar | ||||
// Exceptions | // Exceptions | ||||
এত &to |
.group অ | .group অ | ||||
অ V | অ V | ||||
অঁ O~ | অঁ O~ | ||||
অ্যা & // V,ja in [æmiba] | |||||
.group আ | .group আ | ||||
.group এ | .group এ | ||||
এ e | এ e | ||||
এঁ e~ | এঁ e~ | ||||
এ্যা & // e,ja [ækademi] | |||||
.group ও | .group ও | ||||
য় jV // nukta | য় jV // nukta | ||||
য় (B j | য় (B j | ||||
্) য (C & // ব্যস্ত [bæsto] | |||||
্) যা & // ব্যাকরণ [bækɔron] | |||||
.group র | .group র | ||||
র rV | র rV | ||||
র (B r | র (B r |
T tS v w x x2 z Z | 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 | Dictionary am_dict 2011-11-22 | ||||
@ a e i o u y | @ a e i o u y | ||||
t# tS w x | 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 | Dictionary bg_dict 2013-03-16 | ||||
@ a e i o u | @ a e i o u | ||||
Z z; | Z z; | ||||
Dictionary bn_dict 2013-03-25 | |||||
Dictionary bn_dict 2013-03-26 | |||||
& a a~ e e~ i i~ l- | & a a~ e e~ i i~ l- | ||||
o O o: O~ o~ r- u u~ | o O o: O~ o~ r- u u~ | ||||
x z | x z | ||||
Dictionary da_dict 2013-03-15 | |||||
Dictionary da_dict 2013-03-26 | |||||
& &# 0 3 ?& ?&# ?0 ?A | & &# 0 3 ?& ?&# ?0 ?A | ||||
?e ?E ?i ?o ?O ?u ?V ?W | ?e ?E ?i ?o ?O ?u ?V ?W | ||||
ts v x z | ts v x z | ||||
Dictionary en_dict 2013-03-25 | |||||
Dictionary en_dict 2013-03-26 | |||||
0 0# 3 3: @ @- @2 @5 | 0 0# 3 3: @ @- @2 @5 | ||||
@L a a# A: A@ aa aI aI3 | @L a a# A: A@ aa aI aI3 | ||||
v w z | v w z | ||||
Dictionary ko_dict 2013-03-19 | |||||
Dictionary ko_dict 2013-03-26 | |||||
@ a e E i o u u- | @ 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 | 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 | Dictionary ku_dict 2008-04-14 | ||||
ts; v w x z Z Z; | ts; v w x z Z Z; | ||||
Dictionary pt_dict 2013-03-25 | |||||
Dictionary pt_dict 2013-03-26 | |||||
& &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
aI aU e E eI EI eU EU | aI aU e E eI EI eU EU | ||||
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 | Dictionary si_dict 2013-03-23 | ||||
& &: @ a a: aI aU e | & &: @ a a: aI aU e |
Oahu oU'A:hu: | Oahu oU'A:hu: | ||||
Oklahoma oUkla#h'oUm@ | Oklahoma oUkla#h'oUm@ | ||||
Ohio oUh'aIoU | Ohio oUh'aIoU | ||||
Ohioan oUh'aIoU@n | |||||
Omagh oUmA: | Omagh oUmA: | ||||
Omaha oUma#hA: | Omaha oUma#hA: | ||||
Oman oUm'an | Oman oUm'an |
h) e (sion_ 'i: | h) e (sion_ 'i: | ||||
@) e (tio i: | @) e (tio i: | ||||
discr) e (tion E | 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: | ew ju: | ||||
_s) ew u: | _s) ew u: | ||||
?3 d) ew u: | ?3 d) ew u: | ||||
m) etry (_ =@tr%I | m) etry (_ =@tr%I | ||||
&) ett (_ I2t | &) 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 | .group ev | ||||
_) ev I2v | _) ev I2v | ||||
_) eva (ne Ev@ | _) eva (ne Ev@ | ||||
n) ihi aI|@ | n) ihi aI|@ | ||||
_) i (h aI | _) i (h aI | ||||
ii (_ IaI | ii (_ IaI | ||||
ij (C eI // Dutch | |||||
f) i (j i: | f) i (j i: | ||||
h) i (j aI | 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 | @) i (less I | ||||
_) il (lust Il | |||||
_C) i (lo aI | |||||
&) ily (_S2i l%I | |||||
@) i (ness I | @) i (ness I | ||||
i (o I2 | i (o I2 | ||||
_) i (o aI | _) i (o aI | ||||
igu (e 'i:g | igu (e 'i:g | ||||
igu (_ '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 | .group im | ||||
&) im (_ I#m | &) im (_ I#m | ||||
cl) im aIm | cl) im aIm | ||||
_) tsu tsu: | _) tsu tsu: | ||||
_) two tu: | _) two tu: | ||||
ttu (r t@ | 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 | tz ts | ||||
tze (_ tsi | tze (_ tsi | ||||
&) tious S=@s | &) tious S=@s | ||||
AC) tive (_ =tIv | 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 | .group u | ||||
u V | u V | ||||
man) u ju: | man) u ju: |
_0C p'Eq_! | _0C p'Eq_! | ||||
// Larger numbers | // 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 | _0M1 m'an // 10^4 | ||||
_1M1 m'an | _1M1 m'an | ||||
_0M2 '@q // 10^8 | _0M2 '@q // 10^8 | ||||
ᄋ i;'u-N | ᄋ i;'u-N | ||||
ᄌ tS;i;'u-t | ᄌ tS;i;'u-t | ||||
ᄍ 's-aNdZ;,i;u-t | ᄍ 's-aNdZ;,i;u-t | ||||
ᄎ tSh-'i;u-t | |||||
ᄎ tSh'i;u-t | |||||
ᄏ khi;'u-k | ᄏ khi;'u-k | ||||
ᄐ thi;'u-t- | ᄐ thi;'u-t- | ||||
ᄑ phi;'u-p | ᄑ phi;'u-p |
ᄍ 'tS;- // TODO: phoneme | ᄍ 'tS;- // TODO: phoneme | ||||
.group ᄎ // ㅊ | .group ᄎ // ㅊ | ||||
ᄎ tSh- // TODO: phoneme | |||||
ᄎ tSh // TODO: phoneme | |||||
.group ᄂ // ㄴ | .group ᄂ // ㄴ | ||||
ᄂ ;n | ᄂ ;n | ||||
ᇀᄂ nn | ᇀᄂ nn | ||||
ᇀᄆ mm | ᇀᄆ mm | ||||
ᇀ (A th | ᇀ (A th | ||||
ᇀ (L02 tSh; | |||||
ᇀ (L02 tS;h | |||||
.group ᆸ // ㅂ | .group ᆸ // ㅂ | ||||
ᆸ p | ᆸ p | ||||
ᆾ t | ᆾ t | ||||
ᆾᄂ nn | ᆾᄂ nn | ||||
ᆾᄆ mm | ᆾᄆ mm | ||||
ᆾ (A tSh; | |||||
ᆾ (A tS;h | |||||
.group ᆫ // ㄴ | .group ᆫ // ㄴ | ||||
ᆫ n | ᆫ n |
lebre $alt | lebre $alt | ||||
lembrete $alt2 | lembrete $alt2 | ||||
leste $alt2 $verb | leste $alt2 $verb | ||||
lingueta $alt2 | |||||
lopes $alt | lopes $alt | ||||
macete $alt2 | macete $alt2 | ||||
maior $alt | maior $alt | ||||
reitora $alt2 | reitora $alt2 | ||||
relevo $alt2 $noun | relevo $alt2 $noun | ||||
remorso $alt | remorso $alt | ||||
renovo $alt $verb | |||||
retorno $alt $verb | retorno $alt $verb | ||||
rixa x'iS& | rixa x'iS& | ||||
rocha $alt | rocha $alt |
g (Y Z // ge gi | g (Y Z // ge gi | ||||
gu (Y g | gu (Y g | ||||
a) gu (ent gw | a) gu (ent gw | ||||
_ar) gu (i gw | |||||
enxa) gu (e gw | enxa) gu (e gw | ||||
lin) gu (e gw | lin) gu (e gw | ||||
lin) gu (i gw | lin) gu (i gw | ||||
_pin) gu (im_ gw | |||||
_pin) gu (ins_ gw | |||||
_sa) gu )i gw | |||||
san) gu (ín gw | san) gu (ín gw | ||||
san) gu (in gw | san) gu (in gw | ||||
?1 n) gu (A gw // eg: língua, etc. | ?1 n) gu (A gw // eg: língua, etc. | ||||
_ens) o (pL04_ O | _ens) o (pL04_ O | ||||
_s) o (prL04_ O | _s) o (prL04_ O | ||||
_) o (ptL04_ O | _) o (ptL04_ O | ||||
p) o (rL02_ o | |||||
_dev) o (rL02_ O | |||||
_defl) o (rL02_ O | _defl) o (rL02_ O | ||||
_impl) o (rL02_ O | _impl) o (rL02_ O | ||||
_inod) o (rL03_ O | _inod) o (rL03_ O | ||||
?1 _) qua kwa // quatro, etc. | ?1 _) qua kwa // quatro, etc. | ||||
?1 _) que ke // quente, etc. | ?1 _) que ke // quente, etc. | ||||
?1 _) quei (C k'eI // queira, queima, 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 | ade) qu (e kw | ||||
e) qu (estr kw | e) qu (estr kw | ||||
ese) qu (ív kw | |||||
_e) qu (in kw | _e) qu (in kw | ||||
fre) qu (ent kw | fre) qu (ent kw | ||||
li) qu (id kw | li) qu (id kw | ||||
lí) qu (id kw | lí) qu (id kw | ||||
n) qu (en kw | n) qu (en kw | ||||
_) qu (inqu kw | |||||
se) qu (en kw | se) qu (en kw | ||||
tran) qu (il kw | tran) qu (il kw | ||||
?1 quec kes // esquece, etc. | ?1 quec kes // esquece, etc. |
t t#i: | t t#i: | ||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w dVbVlju: | |||||
w dabalju: | |||||
x Eks | x Eks | ||||
y wa:j | y wa:j | ||||
z zEd | z zEd | ||||
_4 na:lgu | _4 na:lgu | ||||
_5 aIdu | _5 aIdu | ||||
_6 a:ru | _6 a:ru | ||||
_7 e:d.u | |||||
_7 ;e:d.u | |||||
_8 ;enimidi | _8 ;enimidi | ||||
_9 tommidi | _9 tommidi | ||||
_1X padi | _1X padi | ||||
_17 padihe:d.u | _17 padihe:d.u | ||||
_18 padd#enimidi | _18 padd#enimidi | ||||
_19 pamdommadi | _19 pamdommadi | ||||
_2X iravaI | |||||
_2X irav#aI | |||||
_3X muppaI | _3X muppaI | ||||
_4X nalub#aI | _4X nalub#aI | ||||
_5X ja:b#aI | _5X ja:b#aI | ||||
_6X aravaI | |||||
_6X arav#aI | |||||
_7X d.eb#baI | _7X d.eb#baI | ||||
_8X jenab#aI | _8X jenab#aI | ||||
_9X tomb#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 | _0M2 laks.ala | ||||
_0M2x laks.alu | _0M2x laks.alu | ||||
_1M2 laks.a | _1M2 laks.a | ||||
\ bja:kasla:s. | \ bja:kasla:s. | ||||
/ sla:s. | / sla:s. | ||||
© ka:pi:raIt. | © ka:pi:raIt. | ||||
¶ ve:ra: | |||||
¶ v#e:ra: | |||||
_, ka:ma: | _, ka:ma: | ||||
_; semi:ko:lan | _; semi:ko:lan | ||||
U+c01 am | U+c01 am | ||||
U+c02 an | U+c02 an | ||||
U+c03 ah | U+c03 ah | ||||
U+c4d vottu | |||||
U+c4d v#ottu | |||||
// consonants with virama | // consonants with virama | ||||
క్ ik | క్ ik | ||||
ఱ్ ir | ఱ్ ir | ||||
ల్ il | ల్ il | ||||
ళ్ il. | ళ్ il. | ||||
వ్ iv | |||||
వ్ iv# | |||||
శ్ iS; | శ్ iS; | ||||
ష్ is. | ష్ is. | ||||
స్ is | స్ is |
ళ (B l. | ళ (B l. | ||||
.group వ | .group వ | ||||
వ va | |||||
వ (B v | |||||
వ v#a | |||||
వ (B v# | |||||
.group శ | .group శ | ||||
శ S;a | శ S;a | ||||
ౖ : // ai length mark ?? | ౖ : // ai length mark ?? | ||||
.group 0xe0a4 // devanagari | |||||
0xe0a4 _^_HI // switch to hindi voice for devanagari characters | |||||
.group 0xe0a5 // devanagari | |||||
0xe0a5 _^_HI | |||||
.group | .group | ||||
$ d.a:lar | $ d.a:lar | ||||
74 phoneme tables | |||||
75 phoneme tables | |||||
new total | new total | ||||
base 109 109 | base 109 109 | ||||
consonants 11 119 | consonants 11 119 | ||||
pa 15 151 | pa 15 151 | ||||
ta 23 153 | ta 23 153 | ||||
kn 17 149 | kn 17 149 | ||||
ml 21 152 | |||||
ml 26 152 | |||||
te 16 149 | |||||
hu 25 124 | hu 25 124 | ||||
lt 44 139 | lt 44 139 | ||||
lv 29 127 | lv 29 127 | ||||
da 45 138 | da 45 138 | ||||
ka 20 115 | ka 20 115 | ||||
fa 9 112 | fa 9 112 | ||||
ko 15 116 | |||||
ko 19 120 | |||||
kl 18 119 | kl 18 119 | ||||
am 15 114 | am 15 114 | ||||
si 24 155 | si 24 155 | ||||
b/xb [b] base | b/xb [b] base | ||||
[b] fr | [b] fr | ||||
[b#] hi | [b#] hi | ||||
[b#] ml | |||||
b/xbr [b] fr | b/xbr [b] fr | ||||
d/d [d] base | d/d [d] base | ||||
[d[] base | [d[] base | ||||
[z] fr | [z] fr | ||||
[d#] hi | [d#] hi | ||||
[d] kn | [d] kn | ||||
[d#] ml | |||||
[d] hu | [d] hu | ||||
[d] lt | [d] lt | ||||
[d] pl | [d] pl | ||||
d/xdr [d] fr | d/xdr [d] fr | ||||
[d.] hi | [d.] hi | ||||
[d.#] hi | [d.#] hi | ||||
[d.#] ml | |||||
d/xdz [dz] consonants | d/xdz [dz] consonants | ||||
d/x_tap [t#] en | d/x_tap [t#] en | ||||
[*] pt | [*] pt | ||||
[dZ;] sq | [dZ;] sq | ||||
dzh/xdz_pzd [J] base | dzh/xdz_pzd [J] base | ||||
[J#] hi | [J#] hi | ||||
[J#] ml | |||||
[J] tr | [J] tr | ||||
[J] ku | [J] ku | ||||
envelope/i_risefall [11] zh | envelope/i_risefall [11] zh | ||||
[g-] en | [g-] en | ||||
[g] cy | [g] cy | ||||
[g] fr | [g] fr | ||||
[g#] ml | |||||
[g] ru | [g] ru | ||||
[g;] bg | [g;] bg | ||||
[g] es | [g] es | ||||
ustop/k_asp [k#] consonants | ustop/k_asp [k#] consonants | ||||
[kh] consonants | [kh] consonants | ||||
[g#] hi | [g#] hi | ||||
[g#] ml | |||||
[kh] zh | [kh] zh | ||||
[k#] ka | [k#] ka | ||||
ustop/k_asp_a [k#] consonants | ustop/k_asp_a [k#] consonants | ||||
[g#] ml | |||||
[k#] ka | [k#] ka | ||||
ustop/k_asp_e [k#] consonants | ustop/k_asp_e [k#] consonants | ||||
[g#] ml | |||||
[k#] ka | [k#] ka | ||||
ustop/k_asp_u [k#] ka | ustop/k_asp_u [k#] ka | ||||
ustop/k_ejc [k`] am | ustop/k_ejc [k`] am | ||||
ustop/p_ [p] base | ustop/p_ [p] base | ||||
[ph] consonants | [ph] consonants | ||||
[p] fr | [p] fr | ||||
[b#] ml | |||||
ustop/p_asp [ph] consonants | ustop/p_asp [ph] consonants | ||||
[b#] hi | [b#] hi | ||||
[b#] ml | |||||
[ph] zh | [ph] zh | ||||
ustop/percus02 [#X2] hi | ustop/percus02 [#X2] hi | ||||
ustop/percus10 [#X1] base | ustop/percus10 [#X1] base | ||||
[ph] consonants | [ph] consonants | ||||
[p] base2 | [p] base2 | ||||
[p] fr | [p] fr | ||||
[b#] ml | |||||
[p] lv | [p] lv | ||||
[p] sk | [p] sk | ||||
[p] sq | [p] sq | ||||
[t] en-us | [t] en-us | ||||
[d.#] hi | [d.#] hi | ||||
[t.#] hi | [t.#] hi | ||||
[d.#] ml | |||||
[t] zhy | [t] zhy | ||||
[t] da | [t] da | ||||
ustop/t_ [t] base | ustop/t_ [t] base | ||||
[t] et | [t] et | ||||
[d#] hi | [d#] hi | ||||
[t#] hi | [t#] hi | ||||
[d#] ml | |||||
[t] hu | [t] hu | ||||
[t] lt | [t] lt | ||||
[t] pl | [t] pl | ||||
ustop/tsh_unasp [tS`] am | ustop/tsh_unasp [tS`] am | ||||
ustop/ts_pzd [tS;] base | ustop/ts_pzd [tS;] base | ||||
[J#] hi | [J#] hi | ||||
[J#] ml | |||||
[tS;] lt | [tS;] lt | ||||
[tS;] ru | [tS;] ru | ||||
[dZ;] sq | [dZ;] sq | ||||
[aU] ne | [aU] ne | ||||
[aU] kn | [aU] kn | ||||
[aU] ml | [aU] ml | ||||
[aU] te | |||||
vdiph/aau_4 [aU] vi | vdiph/aau_4 [aU] vi | ||||
vdiph/aau_6 [aU] de | vdiph/aau_6 [aU] de | ||||
vdiph/ae [E:] fr-ca | vdiph/ae [E:] fr-ca | ||||
[aI] eo | [aI] eo | ||||
[aI] kn | [aI] kn | ||||
[aI] ml | [aI] ml | ||||
[aI] te | |||||
[aI] lt | [aI] lt | ||||
[aI] sk | [aI] sk | ||||
[aI] hr | [aI] hr | ||||
voc/dh_ [D] base | voc/dh_ [D] base | ||||
[D] es | [D] es | ||||
voc/j [J^] base | voc/j [J^] base | ||||
voc/murmur1 [J#] ml | |||||
[b#] ml | |||||
[d#] ml | |||||
[g#] ml | |||||
[d.#] ml | |||||
voc/Q [Q] base | voc/Q [Q] base | ||||
[Q^] base | [Q^] base | ||||
[Q] ka | [Q] ka | ||||
[V] cy | [V] cy | ||||
[@/] ga | [@/] ga | ||||
[@] kn | [@] kn | ||||
[@] te | |||||
[@] hy | [@] hy | ||||
[@] ka | [@] ka | ||||
[@] sl | [@] sl | ||||
vowel/a#_2 [A] nl | vowel/a#_2 [A] nl | ||||
[a:] nl | [a:] nl | ||||
[a] kn | [a] kn | ||||
[a] ml | |||||
[a] te | |||||
[a#] pl | [a#] pl | ||||
[&] hr | [&] hr | ||||
[a] sv | [a] sv | ||||
[a/] en-sc | [a/] en-sc | ||||
[A:] en-sc | [A:] en-sc | ||||
[aa] en-sc | [aa] en-sc | ||||
[a] bn | |||||
[a:] kn | [a:] kn | ||||
[A] lt | [A] lt | ||||
[a] lt | [a] lt | ||||
[a] es | [a] es | ||||
[a] el | [a] el | ||||
vowel/a#_4 [a:] nl | vowel/a#_4 [a:] nl | ||||
[a] ml | |||||
[a] bg | [a] bg | ||||
[a/] it | [a/] it | ||||
[a] tr | [a] tr | ||||
vowel/a_5 [a:] ta | vowel/a_5 [a:] ta | ||||
[a:] ml | [a:] ml | ||||
[a:] te | |||||
[a/] it | [a/] it | ||||
[a] la | [a] la | ||||
[a] sv | [a] sv | ||||
vowel/aa_9 [a] fi | vowel/aa_9 [a] fi | ||||
[a] et | [a] et | ||||
[a:] hi | [a:] hi | ||||
[a] bn | |||||
[a] ne | [a] ne | ||||
[a] pa | [a] pa | ||||
vowel/@_bck [@] hi | vowel/@_bck [@] hi | ||||
[e:] kn | [e:] kn | ||||
[e] ml | [e] ml | ||||
[e:] ml | [e:] ml | ||||
[e:] te | |||||
[e] hr | [e] hr | ||||
[e/] it | [e/] it | ||||
[e:] la | [e:] la | ||||
[e] nci | [e] nci | ||||
[e] fi | [e] fi | ||||
[E] nl | [E] nl | ||||
[e] te | |||||
[e] sk | [e] sk | ||||
[e] bg | [e] bg | ||||
[e/] it | [e/] it | ||||
[i:] ta | [i:] ta | ||||
[i:] kn | [i:] kn | ||||
[i:] ml | [i:] ml | ||||
[i:] te | |||||
[i:] hu | [i:] hu | ||||
[i] it | [i] it | ||||
[i] es | [i] es | ||||
[i] ta | [i] ta | ||||
[i] kn | [i] kn | ||||
[i] ml | [i] ml | ||||
[i] te | |||||
[i:] lt | [i:] lt | ||||
[i] lv | [i] lv | ||||
[i:] lv | [i:] lv | ||||
[o:] kn | [o:] kn | ||||
[o] ml | [o] ml | ||||
[o:] ml | [o:] ml | ||||
[o] te | |||||
[o:] te | |||||
[o] it | [o] it | ||||
[o/] it | [o/] it | ||||
[O] la | [O] la | ||||
vowel/u_6 [u] ta | vowel/u_6 [u] ta | ||||
[u2] ta | [u2] ta | ||||
[u:] ta | [u:] ta | ||||
[u] te | |||||
[u:] te | |||||
[U] pt-pt | [U] pt-pt | ||||
[u] pt-pt | [u] pt-pt | ||||
[u] ku | [u] ku |
phoneme a | phoneme a | ||||
vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
length 225 | length 225 | ||||
FMT(vowel/aa_9) | |||||
FMT(vowel/a_3) | |||||
endphoneme | endphoneme | ||||
ipa NULL // @-* is used to make 'r' | ipa NULL // @-* is used to make 'r' | ||||
ENDIF | ENDIF | ||||
length 40 | 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/@-) | FMT(vowel/@-) | ||||
endphoneme | endphoneme | ||||
phoneme i | phoneme i | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 95 //150 | |||||
length 140 //225 | |||||
// PB long vowel followed by consonant and certain vowels "gide" | // PB long vowel followed by consonant and certain vowels "gide" | ||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN | IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// "gider", vrider" | // "gider", vrider" | ||||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | ||||
length 95 | |||||
length 140 | |||||
ENDIF | 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 | ENDIF | ||||
// Only this vowel (in this case [i]) | // Only this vowel (in this case [i]) | ||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// This vowel is word end - longer because it sounds too short | // This vowel is word end - longer because it sounds too short | ||||
// "sig", "si" | // "sig", "si" | ||||
ENDIF | ENDIF | ||||
// "vilje" - short followed by 2 consonants | // "vilje" - short followed by 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 95 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
// PB "tie", "stige", "krige" vowel + vowel: extra length | // PB "tie", "stige", "krige" vowel + vowel: extra length | ||||
// What is causing this very short [i] in words with final [@-]? | // 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 | length 240 | ||||
ENDIF | 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) | FMT(vowel/i_4) | ||||
endphoneme | endphoneme | ||||
// sviret vs. svirret | // sviret vs. svirret | ||||
phoneme ?i | phoneme ?i | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 90 | |||||
length 100 | |||||
IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
FMT(vowel/i_4) | FMT(vowel/i_4) | ||||
endphoneme | endphoneme | ||||
phoneme e | phoneme e | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 95 //150 | |||||
length 140 //225 | |||||
// "delte", "mente" | // "delte", "mente" | ||||
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN | IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// PB "ring", "ringe" | // PB "ring", "ringe" | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 95 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
// PB "enig", "enige", "evig" | // PB "enig", "enige", "evig" | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// Only "e" | // Only "e" | ||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | // "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 95 | |||||
length 140 | |||||
ENDIF | |||||
// "et" | |||||
IF thisPh(isWordStart) AND nextPhW(isWordEnd) THEN | |||||
length 120 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/e) | FMT(vowel/e) | ||||
endphoneme | endphoneme | ||||
// "skille" vs. "skele", "pille" vs. "pile" | // "skille" vs. "skele", "pille" vs. "pile" | ||||
phoneme ?e | phoneme ?e | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/e) | FMT(vowel/e) | ||||
endphoneme | endphoneme | ||||
phoneme E | phoneme E | ||||
vowel starttype #e endtype #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 | ENDIF | ||||
// "ræve" | |||||
// "ræve" | |||||
IF nextVowel(#@) OR nextVowel(#e) THEN | IF nextVowel(#@) OR nextVowel(#e) THEN | ||||
length 160 | length 160 | ||||
ENDIF | ENDIF | ||||
ENDIF | ENDIF | ||||
// "længe" - short - 2 consonants => 1 consonant | // "længe" - short - 2 consonants => 1 consonant | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 120 | |||||
length 100 | |||||
ENDIF | ENDIF | ||||
// "værelse" [v'E3-Vls@_!] | // "værelse" [v'E3-Vls@_!] | ||||
IF nextPhW(3-) AND next2PhW(V) THEN | IF nextPhW(3-) AND next2PhW(V) THEN | ||||
length 120 | |||||
length 100 | |||||
ENDIF | ENDIF | ||||
// "mælkebøtte" - short followed by 2 consonants | // "mælkebøtte" - short followed by 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 120 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
endphoneme | endphoneme | ||||
phoneme ?E | phoneme ?E | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
ipa ε | ipa ε | ||||
length 100 | |||||
length 140 | |||||
FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
endphoneme | endphoneme | ||||
phoneme & | phoneme & | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
ipa a | 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 | ENDIF | ||||
// ThisPh + gooup #e or group #@ | |||||
// ThisPh + V or group #@ | |||||
// "ae", "aer" vowel + vowel: extra length | // "ae", "aer" vowel + vowel: extra length | ||||
IF nextPhW(#@) OR nextPhW(#e) THEN | |||||
length 220 | |||||
IF nextPhW(@-) OR nextPhW(V) THEN | |||||
length 260 | |||||
ENDIF | ENDIF | ||||
// This vowel is word end - longer because it sounds too short | // This vowel is word end - longer because it sounds too short | ||||
// "ja", "Omaha" | // "ja", "Omaha" | ||||
ENDIF | ENDIF | ||||
// Only this vowel (in this case [&]) | // Only this vowel (in this case [&]) | ||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// "stadig" [st&Di], "stadigt" [st&Dit] | // "stadig" [st&Di], "stadigt" [st&Dit] | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
ENDIF | ENDIF | ||||
// "Alfie", "alfer" - short before 2 consonants | // "Alfie", "alfer" - short before 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
endphoneme | endphoneme | ||||
phoneme ?& | phoneme ?& | ||||
ipa a | ipa a | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
endphoneme | endphoneme | ||||
// PB added for the æ in "dræbt" | // PB added for the æ in "dræbt" | ||||
phoneme &# | phoneme &# | ||||
vowel starttype #e endtype #e | 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 | ENDIF | ||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
length 150 | |||||
// "drenge" | |||||
IF nextPhW(N) THEN | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/&) | FMT(vowel/&) | ||||
endphoneme | endphoneme | ||||
// "revl" vs. "tremme" | // "revl" vs. "tremme" | ||||
phoneme ?&# | phoneme ?&# | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/&) | FMT(vowel/&) | ||||
endphoneme | 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 | phoneme A // PB changed to a_8 | ||||
vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
length 90 //150 | |||||
length 140 //225 | |||||
// PB long vowel followed by consonant and certain vowels - "drabelig" | // 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 | ENDIF | ||||
// "far", "bastard" - a bit longer followed by [r] | // "far", "bastard" - a bit longer followed by [r] | ||||
IF nextPhW(r) AND nextPhW(isWordEnd) THEN | IF nextPhW(r) AND nextPhW(isWordEnd) THEN | ||||
ENDIF | ENDIF | ||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short | // "bange" [bAN@-] - [N] = 2 consonants (ng) => short | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 90 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
// "fare" [f'A:A] | // "fare" [f'A:A] | ||||
IF nextPhW(A) THEN | 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 | ENDIF | ||||
FMT(vowel/a_8) | FMT(vowel/a_8) | ||||
endphoneme | endphoneme | ||||
// "drab" vs. "drabelig" | // "drab" vs. "drabelig" | ||||
phoneme ?A | phoneme ?A | ||||
vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
length 90 | |||||
length 140 | |||||
// "straffeattest", "straffe", "rapid" - a bit longer after R | // "straffeattest", "straffe", "rapid" - a bit longer after R | ||||
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN | IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN | ||||
length 110 | length 110 | ||||
phoneme u | phoneme u | ||||
vowel starttype #u endtype #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" | // "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 | ENDIF | ||||
// "umulig" [u:m'uli] | // "umulig" [u:m'uli] | ||||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | ||||
ENDIF | ENDIF | ||||
// Only "u" | // Only "u" | ||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | ||||
length 150 | |||||
ENDIF | |||||
// "fugl" [ful] - a bit longer | |||||
IF nextPhW(isWordEnd) THEN | |||||
length 120 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
endphoneme | endphoneme | ||||
// "tude" vs. "tuden" - [tuD3] [t?uD@n] | // "tude" vs. "tuden" - [tuD3] [t?uD@n] | ||||
phoneme ?u | phoneme ?u | ||||
vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
endphoneme | endphoneme | ||||
phoneme o | phoneme o | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 90 //150 | |||||
length 140 //225 | |||||
// "bore", "borer" | // "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 | ENDIF | ||||
// "modig" - long vowel after consonant + [i] | // "modig" - long vowel after consonant + [i] | ||||
IF nextPhW(D) AND next2PhW(i) THEN | 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 | ENDIF | ||||
FMT(vowel/o_2) | FMT(vowel/o_2) | ||||
endphoneme | endphoneme | ||||
// "patron" vs. "kone" | // "patron" vs. "kone" | ||||
phoneme ?o | phoneme ?o | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 95 | |||||
length 140 | |||||
FMT(vowel/o_2) | FMT(vowel/o_2) | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 90 // 150 | |||||
length 140 // 150 | |||||
// "sove", "sover" - consonant + #e or #@: long | // "sove", "sover" - consonant + #e or #@: long | ||||
IF next2PhW(#@) OR next2PhW(#e) THEN | |||||
length 150 | |||||
IF next2PhW(@-) OR next2PhW(V) THEN | |||||
length 225 | |||||
ENDIF | 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 | ENDIF | ||||
// "rådig" | // "rådig" | ||||
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN | IF nextVowel(i) AND nextVowel(isFinalVowel) THEN | ||||
length 180 | 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 | ENDIF | ||||
FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
endphoneme | endphoneme | ||||
// "toget" vs. "tåget" | // "toget" vs. "tåget" | ||||
phoneme ?O | phoneme ?O | ||||
vowel starttype #o endtype #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) | FMT(vowel/o_5) | ||||
endphoneme | endphoneme | ||||
phoneme V | phoneme V | ||||
vowel starttype #@ endtype #@ | 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 | length 180 | ||||
ENDIF | 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 | 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 | ENDIF | ||||
FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
endphoneme | endphoneme | ||||
// "forstår" vs. "kåre" | // "forstår" vs. "kåre" | ||||
phoneme ?V | phoneme ?V | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
endphoneme | endphoneme | ||||
phoneme 0 | phoneme 0 | ||||
vowel starttype #o endtype #o | 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 | ENDIF | ||||
FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
endphoneme | endphoneme | ||||
// Short 0 "sukker" | // Short 0 "sukker" | ||||
phoneme ?0 | phoneme ?0 | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
endphoneme | endphoneme | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
// Length changed to short since most vowels are short. | // Length changed to short since most vowels are short. | ||||
// It's probably easier only to make rules for long vowels. | // 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 | // 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 | ENDIF | ||||
// Only this vowel (in this case [y]) | // Only this vowel (in this case [y]) | ||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN | IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// "dydig" [dyDi] | // "dydig" [dyDi] | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | 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 | length 200 | ||||
ENDIF | ENDIF | ||||
// "tyve" | // "tyve" | ||||
IF nextPhW(?u) AND next2PhW(@-) THEN | IF nextPhW(?u) AND next2PhW(@-) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/y) | FMT(vowel/y) | ||||
endphoneme | endphoneme | ||||
// "kylling" vs. "kyle", "krybbe" vs. "krybe" | // "kylling" vs. "kyle", "krybbe" vs. "krybe" | ||||
phoneme ?y | phoneme ?y | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/y) | FMT(vowel/y) | ||||
endphoneme | endphoneme | ||||
phoneme Y | phoneme Y | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 150 | |||||
length 225 | |||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | ||||
glstop | glstop | ||||
length 90 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/yy) | FMT(vowel/yy) | ||||
endphoneme | endphoneme | ||||
phoneme W | phoneme W | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 90 //160 | |||||
length 140 //160 | |||||
// "kløe" vowel + vowel: extra length | // "kløe" vowel + vowel: extra length | ||||
IF nextPhW(#@) OR nextPhW(#e) THEN | IF nextPhW(#@) OR nextPhW(#e) THEN | ||||
length 220 | length 220 | ||||
ENDIF | ENDIF | ||||
// "røveri" but NOT "surfer" [sWf?V] TEST | // "røveri" but NOT "surfer" [sWf?V] TEST | ||||
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN | IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN | ||||
length 90 | |||||
length 140 | |||||
ENDIF | ENDIF | ||||
// PB "nødig", "nødigt", "kølige" | // PB "nødig", "nødigt", "kølige" | ||||
IF nextVowel(i) THEN | IF nextVowel(i) THEN | ||||
ENDIF | ENDIF | ||||
// "børnebog" | // "børnebog" | ||||
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN | 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 | ENDIF | ||||
FMT(vowel/oe) | FMT(vowel/oe) | ||||
endphoneme | endphoneme | ||||
// "prøv" vs. "prøve" | // "prøv" vs. "prøve" | ||||
phoneme ?W | phoneme ?W | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 95 | |||||
length 140 | |||||
FMT(vowel/oe) | FMT(vowel/oe) | ||||
endphoneme | endphoneme | ||||
// Added for the ø in "røv", "røg", "øje" instead of [V3] | // Added for the ø in "røv", "røg", "øje" instead of [V3] | ||||
phoneme W# | phoneme W# | ||||
vowel starttype #@ endtype #@ | 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 | // 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 | IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/V) | FMT(vowel/V) | ||||
endphoneme | endphoneme | ||||
// "rømme" | // "rømme" | ||||
phoneme ?W# | phoneme ?W# | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 90 | |||||
length 140 | |||||
FMT(vowel/V) | FMT(vowel/V) | ||||
endphoneme | endphoneme | ||||
length 300 | length 300 | ||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN | IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN | ||||
glstop | glstop | ||||
length 150 | |||||
length 225 | |||||
ENDIF | ENDIF | ||||
// "dreje" [dR'aI@-_!] | // "dreje" [dR'aI@-_!] | ||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | ||||
phoneme l | phoneme l | ||||
liquid | liquid | ||||
lengthmod 7 | lengthmod 7 | ||||
// [ll] => [-l] - avoid double l | |||||
IF nextPhW(l) THEN | |||||
// ChangePhoneme(-) | |||||
ENDIF | |||||
ChangePhoneme(l/3) | ChangePhoneme(l/3) | ||||
// CALL base/l | // CALL base/l | ||||
endphoneme | endphoneme | ||||
liquid | liquid | ||||
lengthmod 7 | lengthmod 7 | ||||
IF nextPh(isVowel) THEN | |||||
IF nextPhW(isVowel) THEN | |||||
// ChangePhoneme(l) | // ChangePhoneme(l) | ||||
ENDIF | ENDIF | ||||
PrevVowelEndings | PrevVowelEndings | ||||
VowelEnding(l/l_@) | 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) | VowelEnding(l/l_u, -70) | ||||
EndSwitch | EndSwitch | ||||
phoneme j | phoneme j | ||||
liquid palatal | liquid palatal | ||||
lengthmod 7 | lengthmod 7 | ||||
// no link with next vowel | |||||
IF thisPh(isWordEnd) THEN | |||||
IfNextVowelAppend(_!) | |||||
ENDIF | |||||
IF nextPhW(isVowel) THEN | IF nextPhW(isVowel) THEN | ||||
NextVowelStarts | NextVowelStarts | ||||
VowelStart(j/j@) | VowelStart(j/j@) | ||||
Vowelout len=70 | Vowelout len=70 | ||||
FMT(j/j_) | FMT(j/j_) | ||||
ENDIF | ENDIF | ||||
endphoneme | |||||
endphoneme |
phoneme c# | phoneme c# | ||||
CALL base/tS; | CALL base/tS; | ||||
ipa ch | |||||
ipa cU+02B0 | |||||
endphoneme | endphoneme | ||||
FMT(dzh/dzh) addWav(x/dz_pzd) | FMT(dzh/dzh) addWav(x/dz_pzd) | ||||
endphoneme | 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 | phoneme * // r(ㄹ) at initial, medial | ||||
vcd alv flp rhotic | vcd alv flp rhotic | ||||
ipa ɾ | ipa ɾ |
length 130 | length 130 | ||||
IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN | IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN | ||||
FMT(vowel/a#_2) | |||||
FMT(vowel/a#_4) | |||||
ELSE | ELSE | ||||
ChangeIfUnstressed(@) | ChangeIfUnstressed(@) | ||||
endphoneme | 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 | |||||
phonemetable ml hi | phonemetable ml hi | ||||
include ph_malayalam | include ph_malayalam | ||||
phonemetable te hi | |||||
include ph_telugu | |||||
phonemetable hu base | phonemetable hu base | ||||
//phonemetable dv hi | //phonemetable dv hi | ||||
//include ph_divehi | //include ph_divehi | ||||
//phonemetable te hi | |||||
//include ph_telugu | |||||
//phonemetable tn base | //phonemetable tn base | ||||
//include ph_setswana | //include ph_setswana | ||||
phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed | 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].length = 128; // length_mod | ||||
phlist[ix].env = PITCHfall; | phlist[ix].env = PITCHfall; |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x014701; | ||||
int option_device_number = -1; | int option_device_number = -1; |
EndAmplitude(); | EndAmplitude(); | ||||
if(p->prepause > 0) | |||||
if((p->prepause > 0) && !(p->ph->phflags & phPREVOICE)) | |||||
DoPause(p->prepause,1); | DoPause(p->prepause,1); | ||||
done_phoneme_marker = 0; | done_phoneme_marker = 0; | ||||
case phSTOP: | case phSTOP: | ||||
released = 0; | released = 0; | ||||
ph = p->ph; | |||||
if(next->type==phVOWEL) | if(next->type==phVOWEL) | ||||
{ | { | ||||
released = 1; | released = 1; | ||||
if(released == 0) | if(released == 0) | ||||
p->synthflags |= SFLAG_NEXT_PAUSE; | 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); | InterpretPhoneme(NULL, 0, p, &phdata, &worddata); | ||||
phdata.pd_control |= pd_DONTLENGTHEN; | phdata.pd_control |= pd_DONTLENGTHEN; | ||||
DoSample3(&phdata, 0, 0); | DoSample3(&phdata, 0, 0); |
{"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0}, | {"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0}, | ||||
{"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, | {"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, | ||||
{"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, | {"_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}, | {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS}, | ||||
{"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0}, | {"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0}, | ||||
{"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, | {"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, |
// which directory to look for a named voice. List of voice names, must end in a space. | // which directory to look for a named voice. List of voice names, must end in a space. | ||||
static const char *voices_asia = | 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 = | 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 "; | "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 "; | ||||