Conflicts: dictsource/dict_phonemes dictsource/te_list dictsource/te_rules phsource/compile_reportmaster
| @@ -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 | |||
| @@ -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. | |||
| @@ -0,0 +1,171 @@ | |||
| // This file is UTF8 encoded | |||
| // Spelling to phoneme rules for Telugu | |||
| // speak Latin letters as English | |||
| a e:j | |||
| b bi: | |||
| c si: | |||
| d di: | |||
| e i: | |||
| f Ef | |||
| g dZi: | |||
| h e:tS | |||
| i a:j | |||
| j dZe:j | |||
| k ke:j | |||
| l El | |||
| m Em | |||
| n En | |||
| o o: | |||
| p pi: | |||
| q kju: | |||
| r a:r | |||
| s Es | |||
| t t#i: | |||
| u ju: | |||
| v vi: | |||
| w dabalju: | |||
| x Eks | |||
| y wa:j | |||
| z zEd | |||
| // numbers | |||
| _0 sunna | |||
| _1 okat.i | |||
| _1a oka | |||
| _2 rend.u | |||
| _3 mu:d.u | |||
| _4 na:lgu | |||
| _5 aIdu | |||
| _6 a:ru | |||
| _7 ;e:d.u | |||
| _8 ;enimidi | |||
| _9 tommidi | |||
| _1X padi | |||
| _11 padakond.u | |||
| _12 pannemd.u | |||
| _13 padamu:d.u: | |||
| _14 pad#na:lugu | |||
| _15 padihe:nu | |||
| _16 padaha:ru | |||
| _17 padihe:d.u | |||
| _18 padd#enimidi | |||
| _19 pamdommadi | |||
| _2X irav#aI | |||
| _3X muppaI | |||
| _4X nalub#aI | |||
| _5X ja:b#aI | |||
| _6X arav#aI | |||
| _7X d.eb#baI | |||
| _8X jenab#aI | |||
| _9X tomb#aI | |||
| _0C v#andala | |||
| _0C0 v#andalu | |||
| _1C okav#anda | |||
| _0M1 v#ela | |||
| _0M1x v#elu | |||
| _1M1 okav#ejji | |||
| _0M2 laks.ala | |||
| _0M2x laks.alu | |||
| _1M2 laks.a | |||
| _0M3 kotla | |||
| _0M3x kotlu | |||
| _1M3 koti | |||
| _dpt _d,aS;a:mkam | |||
| // symbols | |||
| _?? aks.aram // 'unknown character' | |||
| % S;a:tam | |||
| + ku:d.ika | |||
| * naks.atra | |||
| \ bja:kasla:s. | |||
| / sla:s. | |||
| © ka:pi:raIt. | |||
| ¶ v#e:ra: | |||
| _, ka:ma: | |||
| _; semi:ko:lan | |||
| _: ko:lan | |||
| _! a:S;carja:rt#aka | |||
| _? praS;na:rt#aka | |||
| _- haIfan | |||
| __ amd.ar||sko:r | |||
| // unstressed function words | |||
| // articles | |||
| ద $u | |||
| అ $u+ | |||
| ఆ $u+ | |||
| ఒక $u | |||
| // letter names | |||
| U+c01 am | |||
| U+c02 an | |||
| U+c03 ah | |||
| U+c4d v#ottu | |||
| // consonants with virama | |||
| క్ ik | |||
| ఖ్ ik# | |||
| గ్ ig | |||
| ఘ్ ig# | |||
| ఙ్ iN | |||
| చ్ ic | |||
| ఛ్ ic# | |||
| జ్ iJ | |||
| ఝ్ iJ# | |||
| ఞ్ in^ | |||
| ట్ it. | |||
| ఠ్ it.# | |||
| డ్ id. | |||
| ఢ్ id.# | |||
| ణ్ in. | |||
| త్ it | |||
| థ్ it# | |||
| ద్ id | |||
| ధ్ id# | |||
| న్ in | |||
| ప్ ip | |||
| ఫ్ ip# | |||
| బ్ ib | |||
| భ్ ib# | |||
| మ్ im | |||
| య్ ij | |||
| ర్ ir | |||
| ఱ్ ir | |||
| ల్ il | |||
| ళ్ il. | |||
| వ్ iv# | |||
| శ్ iS; | |||
| ష్ is. | |||
| స్ is | |||
| హ్ ih | |||
| ౘ్ its | |||
| ౙ్ idz | |||
| // combining vowels, precede by a click so they | |||
| // can be distinguished from stand-alone vowels | |||
| ా #X2a:: | |||
| ి #X1i | |||
| ీ #X2i:: | |||
| ు #X1u | |||
| ూ #X2u:: | |||
| ృ #X1ru | |||
| ౄ #X2ru: | |||
| ె #X1e | |||
| ే #X2e:: | |||
| ై #X2aI | |||
| ొ #X1o | |||
| ో #X2o:: | |||
| ౌ #X2aU | |||
| @@ -0,0 +1,271 @@ | |||
| // This file is UTF8 encoded | |||
| // Spelling to phoneme rules for Telugu | |||
| // A means vowel letters (not vowel signs) | |||
| // B means a combining vowel sign or a virama | |||
| .replace | |||
| ౦ 0 // Convert Telugu numbers | |||
| ౧ 1 | |||
| ౨ 2 | |||
| ౩ 3 | |||
| ౪ 4 | |||
| ౫ 5 | |||
| ౬ 6 | |||
| ౭ 7 | |||
| ౮ 8 | |||
| ౯ 9 | |||
| .group క | |||
| క ka | |||
| క (B k | |||
| .group ఖ | |||
| ఖ k#a | |||
| ఖ (B k# | |||
| .group గ | |||
| గ ga | |||
| గ (B g | |||
| .group ఘ | |||
| ఘ g#a | |||
| ఘ (B g# | |||
| .group ఙ | |||
| ఙ Na | |||
| ఙ (B N | |||
| .group చ | |||
| చ ca | |||
| చ (B c | |||
| .group ఛ | |||
| ఛ c#a | |||
| ఛ (B c# | |||
| .group జ | |||
| జ Ja | |||
| జ (B J | |||
| .group ఝ | |||
| ఝ J#a | |||
| ఝ (B J# | |||
| .group ఞ | |||
| ఞ n^a | |||
| ఞ (B n^ | |||
| .group ట | |||
| ట t.a | |||
| ట (B t. | |||
| .group ఠ | |||
| ఠ t.#a | |||
| ఠ (B t.# | |||
| .group డ | |||
| డ d.a | |||
| డ (B d. | |||
| .group ఢ | |||
| ఢ d.#a | |||
| ఢ (B d.# | |||
| .group ణ | |||
| ణ n.a | |||
| ణ (B n. | |||
| .group త | |||
| త ta | |||
| త (B t | |||
| .group థ | |||
| థ t#a | |||
| థ (B t# | |||
| .group ద | |||
| ద da | |||
| ద (B d | |||
| .group ధ | |||
| ధ d#a | |||
| ధ (B d# | |||
| .group న | |||
| న na | |||
| న (B n | |||
| .group ప | |||
| ప pa | |||
| ప (B p | |||
| .group ఫ | |||
| ఫ p#a | |||
| ఫ (B p# | |||
| .group బ | |||
| బ ba | |||
| బ (B b | |||
| .group భ | |||
| భ b#a | |||
| భ (B b# | |||
| .group మ | |||
| మ ma | |||
| మ (B m | |||
| .group య | |||
| య ja | |||
| య (B j | |||
| .group ర | |||
| ర ra | |||
| ర (B r | |||
| .group ఱ | |||
| ఱ ra | |||
| ఱ (B r | |||
| .group ల | |||
| ల la | |||
| ల (B l | |||
| .group ళ | |||
| ళ l.a | |||
| ళ (B l. | |||
| .group వ | |||
| వ v#a | |||
| వ (B v# | |||
| .group శ | |||
| శ S;a | |||
| శ (B S; | |||
| .group ష | |||
| ష s.a | |||
| ష (B s. | |||
| .group స | |||
| స sa | |||
| స (B s | |||
| .group హ | |||
| హ ha | |||
| హ (B h | |||
| .group ౘ | |||
| ౘ tsa | |||
| ౘ (B ts | |||
| .group ౙ | |||
| ౙ dza | |||
| ౙ (B dz | |||
| .group ౠ | |||
| ౠ ru | |||
| .group ౡ | |||
| ౡ l- | |||
| // Stand-alone vowels | |||
| .group అ | |||
| అ a | |||
| .group ఆ | |||
| ఆ a: | |||
| .group ఇ | |||
| ఇ i | |||
| .group ఈ | |||
| ఈ i: | |||
| .group ఉ | |||
| ఉ u | |||
| .group ఊ | |||
| ఊ u: | |||
| .group ఋ | |||
| ఋ ru | |||
| .group ఌ | |||
| ఌ l- | |||
| .group ఎ | |||
| ఎ e | |||
| _) ఎ ;e | |||
| .group ఏ | |||
| ఏ e: | |||
| .group ఐ | |||
| ఐ aI | |||
| .group ఒ | |||
| ఒ o | |||
| .group ఓ | |||
| ఓ o: | |||
| .group ఔ | |||
| ఔ aU | |||
| .group 0xe0b0 // characters which start with UTF-8 bytes: [e0 b0] | |||
| . ఁ n // candrabindu | |||
| ం m // anusvara (this should nasalize the vowel) | |||
| ః h // visarga | |||
| // combining vowel signs | |||
| ా a: | |||
| ి i | |||
| .group 0xe0b1 // characters which start with UTF-8 bytes: [e0 b1] | |||
| ీ i: | |||
| ు u | |||
| ూ u: | |||
| ృ ru | |||
| ౄ r-: | |||
| ె e | |||
| ే e: | |||
| ై aI | |||
| ొ o | |||
| ో o: | |||
| ౌ aU | |||
| ్ // virama | |||
| ౕ : // length mark ?? | |||
| ౖ : // ai length mark ?? | |||
| .group | |||
| $ d.a:lar | |||
| @@ -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 "; | |||