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 "; | |||