@@ -1,131 +1,133 @@ | |||
// Translation rules for Bengali | |||
// Translation rules for Assamese | |||
// input by . | |||
// This file is UTF8 encoded | |||
// Numbers | |||
// Bengali numbers are changed to latin characters before translation | |||
_0 S'unjO | |||
_1 '&k | |||
// Numbers are changed to latin characters before translation | |||
_0 X'unjO | |||
_1 'ek | |||
_2 d'uj | |||
_3 t'in | |||
_4 tS'ar | |||
_3 t'ini | |||
_4 tS#'ar'i | |||
_5 p'a~tS | |||
_6 tS#'Oj | |||
_7 S'at | |||
_8 'at.# | |||
_7 X'at | |||
_8 a~t.# | |||
_9 n'Oj | |||
_2a d'u // with hundreds etc. | |||
_6a tS#'a | |||
_6a tS#'O | |||
_9a n'O | |||
_10 d'OS | |||
_11 '&garo | |||
_10 d@h | |||
_11 Ig#'a:ro | |||
_12 b'arO | |||
_13 t'erO | |||
_14 tS'oddO | |||
_14 tS#au'ddO | |||
_15 p'OnerO | |||
_16 S'olO | |||
_17 S'OterO | |||
_16 X'olO | |||
_17 X'OterO | |||
_18 'at.#arO | |||
_19 'uniS | |||
_19 'un'niS | |||
_20 k'uri // or b'iS ?? | |||
_20 b'iS | |||
_21 ek'uS | |||
_22 b'ajS | |||
_23 t'ejS | |||
_24 tS'ObbiS | |||
_25 p'O~tSiS | |||
_26 tSh'abbiS | |||
_27 Sat'aS | |||
_27 X'at'aS | |||
_28 'at.#aS | |||
_29 unOtr'iS | |||
_29 'unOtr'iS | |||
_30 tr'iS | |||
_31 ekOtr'iS | |||
_32 bOtr'iS | |||
_33 tetr'iS | |||
_34 tSowtr'iS | |||
_35 pO~jtr'iS | |||
_31 'ek'Otr'iS | |||
_32 b'Otr'iS | |||
_33 t'etr'iS | |||
_34 tS'owtr'iS | |||
_35 p'O~jtr'iS | |||
_36 tS#'Otr'iS | |||
_37 Sa~itr'iS | |||
_38 at.tr'iS | |||
_37 X'a~i'tr'iS | |||
_38 'a~t.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. | |||
_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 | |||
_41 'ektSOll'iS | |||
_42 b'iall'iS | |||
_43 t'etall'iS | |||
_44 tS'oall'iS | |||
_45 p'O~jtall'iS | |||
_46 tS'etSO'll'iS | |||
_47 X'atSOll'is | |||
_48 'a~'tSOll'iS | |||
_49 'unOpO~tSaS | |||
_50 p'O~tS'aS | |||
_51 I'kann'o | |||
_52 b'ajann'o | |||
_53 t'epann'o | |||
_54 tS'ujann'o | |||
_55 p'ontSann'o | |||
_56 tS#'apann'o | |||
_57 X'atann'o | |||
_58 'at.ann'o | |||
_59 'unO'Xa:t. | |||
_60 sa:t. | |||
_61 'ek'XO't.t.'i | |||
_62 b'aXO't.t.'i | |||
_63 t'eXO't.t.'i | |||
_64 tS'ow'XO't.t.'i | |||
_65 p'oj'XO't.t.'i | |||
_66 S'eSOt.t.'i | |||
_67 Sa:tSOt'ti | |||
_68 'a~t.SOt.t.'i | |||
_6X s'at.t.'i | |||
_69 'unO'X'Ott'Or | |||
_70 X'Ott'Or | |||
_71 I'k#'Ott'Or | |||
_72 b'ahatt'Or | |||
_73 t'iatt'Or | |||
_74 tS'uhatt'Or | |||
_75 p'OX'at.t'Or | |||
_76 tS#'ijatt'Or | |||
_77 S'atatt'Or | |||
_78 'a~t.att'Or | |||
_79 'unOa'X'i | |||
_80 a:X'i | |||
_81 I'ka'X'i | |||
_82 b'ira'X'i | |||
_83 t'ira'X'i | |||
_84 tS'ura'X'i | |||
_85 p'o~tSa'X'i | |||
_86 tS#'ija'X'i | |||
_87 S'ataS'i | |||
_88 X'ata'S'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 | |||
_91 I'kanObb'oj | |||
_92 b'ira'nObb'oj | |||
_93 t'ira:nObb'oj | |||
_94 tS'uranObb'oj | |||
_95 p'OtSanObb'oj | |||
_96 tS#'ijanObb'oj | |||
_97 X'atanObb'oj | |||
_98 'a~t.anObb'oj | |||
_99 n'iranObb'oj | |||
_0C e'X'o | |||
_0M1 h'ajar | |||
_0M2 l'ak# | |||
_0M3 k'ot.i | |||
_0M4 'Orbud | |||
_dpt _d'Osomik_ | |||
_dpt _d'OX'omik_ | |||
// Single consonants | |||
@@ -133,7 +135,7 @@ _dpt _d'Osomik_ | |||
খ k#O | |||
গ gO | |||
ঘ g#O | |||
ঙ 'uNO~ | |||
ঙ 'uNgO~ | |||
চ tSO | |||
ছ tShO // [h] to distinguish from [tS] | |||
জ JO | |||
@@ -154,46 +156,46 @@ _dpt _d'Osomik_ | |||
ব bO | |||
ভ b#O | |||
ম mO | |||
য় Oj | |||
য ,ontostedZ'O | |||
র rO | |||
ড় r.O | |||
ড় r.O // (d. + nukta) | |||
ঢ় hr.O | |||
ঢ় hr.O // (d#. + nukta) | |||
ৰ rO | |||
ল lO | |||
ৱ wO | |||
শ t,aleboS:'O | |||
ষ m,ud#en:oS:'O | |||
স d,onteS:'O | |||
স d,onte'X:'O | |||
হ hO | |||
ৎ kh,Ond.ot'O | |||
ক্ষ k,ojmud#en:oS:'O | |||
ড় dOerO // (d. + nukta) | |||
ঢ় d#e hr.O // (d#. + nukta) | |||
য় ,ontosteOj | |||
ৎ kh,Ond.ot'O | |||
// full vowels | |||
অ O | |||
আ a | |||
ই hrOS:o'i | |||
ঈ dirg#o'i | |||
ঈ d'i:rg#o'i | |||
উ hrOS:o'u | |||
ঊ dirg#o'u | |||
ঊ d'i:rg#o'u | |||
ঋ ri | |||
ও o | |||
ঔ ow | |||
এ e $u+ // word 'it' | |||
ঐ oj $u+ // word 'that' | |||
ও o $u+ $brk // 'and' | |||
_এ e | |||
_ঐ oj | |||
_ও o | |||
// combining vowel signs | |||
া 'akar | |||
ি r'oS:ikar | |||
ী d'irg#ikar | |||
ূ r'oS:ukar | |||
ু d'irg#ukar | |||
ি hrOS:o'ikar | |||
ী d'i:rg#ikar | |||
ূ hrOS:o'ukar | |||
ু d'i:rg#ukar | |||
ৃ r'ikar | |||
ে 'ekar | |||
ৈ 'ojkar | |||
@@ -208,116 +210,53 @@ _ও o | |||
় b'indu | |||
$ d.Olar | |||
% SOtk'Ora | |||
% X'Otk'Ora | |||
+ jOg | |||
= SOman | |||
= X'Oman | |||
// Punctuation | |||
। dVn.d.V | |||
। dVn.ri | |||
_, koma | |||
_? pr'oSnOtSihnO | |||
// Pronouns | |||
আমি $u // main: I | |||
আমায় $u | |||
আমার $u | |||
আমরা $u // we | |||
আমাদের $u | |||
ময $u // I, me | |||
আমি $u // us | |||
আমার $u // our | |||
আপনি $u // you(formal) | |||
আপনাকে $u | |||
আপনার $u | |||
আপনাক $u | |||
তুমি $u // you (informal) | |||
তোমায় $u | |||
তোমার $u | |||
তোমাদের $u | |||
তুই $u // you (informal) | |||
তোকে $u | |||
তোমাক $u | |||
তয় $u // you (informal) | |||
তোক $u | |||
তোর $u | |||
এ $u // he/she/it | |||
আপনি $u | |||
এটার $u | |||
এর $u | |||
ইনি $u // they | |||
এনাকে $u | |||
এনার $u | |||
ও $u // he/she/it | |||
সে $u | |||
ওর $u | |||
তার $u | |||
ওরা $u // they | |||
তারা $u | |||
ওদের $u // unheṃ: them | |||
তাদের $u | |||
এই $u // e:I this/it | |||
এটা $u // e:ta: this/it | |||
এটার $u // e:ta:'r this/it | |||
এর $u // e:r this/it | |||
ওটা $u // o:ta: that | |||
ওটাকে $u // o:ta:ke: to that | |||
ওটার $u // o:ta:'r of that | |||
সি $u // he | |||
তাই $u // she | |||
ওগুলো $u // o:gu:lo: those | |||
ওগুলোকে $u // o:gu:lo:ke: to those | |||
ওগুলোর $u // o:gu:lo:'r of those | |||
// Prepositions/Postpositions | |||
মধ্যে $u // moddhe in | |||
উপর $u // upor on, above | |||
নীচে $u // niche below | |||
পূর্ব্বে $u // purbe before, prior | |||
পর্য্যন্ত $u // parjonto till | |||
অব্দি $u // abdi till | |||
বিনা $u // bina without | |||
// Questions | |||
কেন $u $pause // kano why interrogative particle | |||
কি $u $pause // ki what | |||
কোথায় $u $pause // kothaay where | |||
কখন $u $pause // kakhon when | |||
কে $u $pause // ke who | |||
কিয় $u $pause // kio why interrogative particle | |||
কি $u $pause // ki what | |||
কোত $u $pause // kot where | |||
কেতিয়া $u $pause // ketia when | |||
কোন $u $pause // kon who | |||
// Conjunctions | |||
এবং $u $pause // ebong: and | |||
আর $u $pause // aar: and | |||
অথবা $u $pause // athoba: or | |||
এরং $u $pause // ebong: and | |||
আরু $u $pause // aaru : and | |||
অথরা $u $pause // athoba: or | |||
কিন্তু $u $pause // kintu: but | |||
যদি $pause // jodi: if | |||
তবু $pause // tobu: still, yet | |||
তবে $pause // tabe: if...then | |||
তেতিয়া $pause // then | |||
অথচ $u // athacho: yet | |||
// Verbs | |||
হয় $u | |||
ছিল $u // chilo: past aux | |||
ছিলেন $u // chilen | |||
করছি $u // korchi: continuous | |||
করছিলাম $u // korchilam: past indefinite | |||
করেছি $u // korechi: past | |||
// Exceptions | |||
এত &to | |||
এটা &ta // one piece, one |
@@ -1,4 +1,4 @@ | |||
| |||
// Pronounciation rule for Assamese. | |||
// This file is UTF8 encoded | |||
// letter groups: | |||
@@ -7,8 +7,6 @@ | |||
// C consonants | |||
// Y vowel letters and vowel signs | |||
.replace | |||
০ 0 | |||
১ 1 | |||
@@ -21,368 +19,328 @@ | |||
৮ 8 | |||
৯ 9 | |||
// Vowels | |||
.group অ | |||
অ V | |||
অঁ O~ | |||
অ্যা & // V,ja in [æmiba] | |||
অ V | |||
অঁ O~ | |||
অ্যা & // V,ja in [æmiba] | |||
.group আ | |||
আ a | |||
আঁ a~ | |||
আ a | |||
আঁ a~ | |||
.group ই | |||
ই i | |||
ইঁ i~ | |||
ই i | |||
ইঁ i~ | |||
.group ঈ | |||
ঈ i | |||
ঈঁ i~ | |||
ঈ i | |||
ঈঁ i~ | |||
.group উ | |||
উ u | |||
উঁ u~ | |||
উ u | |||
উঁ u~ | |||
.group ঊ | |||
ঊ u | |||
ঊঁ u~ | |||
ঊ u | |||
ঊঁ u~ | |||
.group ঋ | |||
ঋ ri | |||
ঋঁ ri~ | |||
.group ঌ | |||
ঌ l- | |||
ঋ ri | |||
.group এ | |||
এ & | |||
এঁ &~ | |||
এ & | |||
এঁ &~ | |||
.group ঐ | |||
ঐ oj | |||
ঐঁ o~j | |||
ঐ oj | |||
ঐঁ o~j | |||
.group এ | |||
এ e | |||
এঁ e~ | |||
এ e | |||
এঁ e~ | |||
এ্যা & // e,ja [ækademi] | |||
এ্যা & // e,ja [ækademi] | |||
.group ও | |||
ও o | |||
ওঁ o~ | |||
ও o | |||
ওঁ o~ | |||
.group ঔ | |||
ঔ ow | |||
ঔঁ o~w | |||
ঔ ow | |||
ঔঁ o~w | |||
.group ও //?? | |||
ও o: | |||
ও o: | |||
// Vowel Signs | |||
.group া | |||
া a | |||
াঁ a~ | |||
C) া a | |||
C) াঁ a~ | |||
.group ি | |||
ি i | |||
িঁ i~ | |||
C) ি i | |||
C) িঁ i~ | |||
.group ী | |||
ী i | |||
ীঁ i~ | |||
C) ী i | |||
C) ীঁ i~ | |||
.group ূ | |||
ূ u | |||
ূঁ u~ | |||
C) ূ u | |||
C) ূঁ u~ | |||
.group ু | |||
ু u | |||
ুঁ u~ | |||
C) ু u | |||
C) ুঁ u~ | |||
.group ৃ | |||
ৃ ri | |||
ৃঁ ri~ | |||
C) ৃ r'i | |||
.group ে | |||
ে e | |||
েঁ e~ | |||
েউ ew | |||
C) ে e | |||
C) েঁ e~ | |||
C) েউ ew | |||
.group ৈ | |||
ৈ oj | |||
ৈঁ o~j | |||
C) ৈ oj | |||
C) ৈঁ o~j | |||
.group ো | |||
ো o | |||
োঁ o~ | |||
C) ো o | |||
C) োঁ o~ | |||
.group ৌ | |||
ৌ ow | |||
ৌঁ o~w | |||
C) ৌ ow | |||
C) ৌঁ o~w | |||
// Consonants | |||
.group ক | |||
ক kV | |||
ক (B k | |||
ক kV | |||
ক (B k | |||
.group খ | |||
খ k#V | |||
খ (B k# | |||
খ k#V | |||
খ (B k# | |||
.group গ | |||
গ gV | |||
গ (B g | |||
গ gV | |||
গ (B g | |||
.group ঘ | |||
ঘ g#V | |||
ঘ (B g# | |||
ঘ g#V | |||
ঘ (B g# | |||
.group ঙ | |||
ঙ NV | |||
ঙ্ (B N | |||
ঙ NV | |||
ঙ (B N | |||
.group চ | |||
চ tSV | |||
চ (B tS | |||
চ tSV | |||
চ (B tS | |||
.group ছ | |||
ছ tS#V | |||
ছ (B tS# | |||
ছ tS#V | |||
ছ (B tS# | |||
.group জ | |||
জ JV | |||
জ (B J | |||
জ JV | |||
জ (B J | |||
জ্ব JV | |||
জ্ব (B J | |||
জ্ঞ ggo~ | |||
জ্ঞ (B gg | |||
জ্ব JV | |||
জ্ব (B J | |||
জ্ঞ ggo~ | |||
জ্ঞ (B gg | |||
.group ঝ | |||
ঝ J#V | |||
ঝ (B J# | |||
ঝ J#V | |||
ঝ (B J# | |||
.group ঞ | |||
ঞ nV | |||
ঞ্ (B n | |||
ঞ nV | |||
ঞ (B n | |||
.group ট | |||
ট t.V | |||
ট (B t. | |||
ট t.V | |||
ট (B t. | |||
.group ঠ | |||
ঠ t.#V | |||
ঠ (B t.# | |||
ঠ t.#V | |||
ঠ (B t.# | |||
.group ড | |||
ড d.V | |||
ড (B d. | |||
ড d.V | |||
ড (B d. | |||
ড় r.V // nukta | |||
ড় (B r. | |||
.group ঢ | |||
ঢ d.#V | |||
ঢ (B d.# | |||
ঢ d.#V | |||
ঢ (B d.# | |||
ঢ় hr.V | |||
ঢ় (B hr. | |||
.group ণ | |||
ণ nV // should be [n.] if adjacent to t. or d. ? | |||
ণ (B n | |||
ণ nV // should be [n.] if adjacent to t. or d. ? | |||
ণ (B n | |||
.group ত | |||
ত tV | |||
ত (B t | |||
ত tV | |||
ত (B t | |||
ত (_ to | |||
.group থ | |||
থ t#V | |||
থ (B t# | |||
থ t#V | |||
থ (B t# | |||
.group দ | |||
দ dV | |||
দ (B d | |||
দ dV | |||
দ (B d | |||
.group ধ | |||
ধ d#V | |||
ধ (B d# | |||
ধ d#V | |||
ধ (B d# | |||
.group ন | |||
ন nV | |||
ন (B n | |||
ন nV | |||
ন (B n | |||
.group প | |||
প pV | |||
প (B p | |||
প pV | |||
প (B p | |||
.group ফ | |||
ফ fV // or [p#] ? | |||
ফ (B f | |||
ফ fV // or [p#] ? | |||
ফ (B f | |||
.group ব | |||
ব bV | |||
ব (B b | |||
ব bV | |||
ব (B b | |||
.group ভ | |||
ভ b#V | |||
ভ (B b# | |||
ভ b#V | |||
ভ (B b# | |||
.group ম | |||
ম mV | |||
ম (B m | |||
.group য় | |||
য় jV | |||
য় (B j | |||
ম mV | |||
ম (B m | |||
.group য | |||
য dZV | |||
য (B dZ | |||
য় jV // nukta | |||
য় (B j | |||
্) য (C & // ব্যস্ত [bæsto] | |||
্) যা & // ব্যাকরণ [bækɔron] | |||
য dZV | |||
য (B dZ | |||
্) য (_ :O // double the previous consonant | |||
্) য (B_ : | |||
্) য (C & // ব্যস্ত [bæsto] | |||
্) যা & // ব্যাকরণ [bækɔron] | |||
.group র | |||
র rV | |||
র (B r | |||
.group ৰ | |||
ৰ rV | |||
ৰ (B r | |||
.group ল | |||
ল lV | |||
ল (B l | |||
ল lV | |||
ল (B l | |||
.group ৱ | |||
ৱ waV | |||
ৱ (B wO | |||
.group শ | |||
শ SV // or [s] ? | |||
শ (B S | |||
শ SV // or [s] ? | |||
শ (B S | |||
শ (্ল s | |||
শ (্ল s | |||
.group ষ | |||
ষ SV | |||
ষ (B S | |||
ষ SV | |||
ষ (B S | |||
.group স | |||
স SV // or [s] ?? | |||
স (B S | |||
স (্থ s | |||
স (্ত s | |||
_) স্ব SV // shb | |||
স X@ // or [s] ?? | |||
স (B X | |||
স (্থ s | |||
স (্ত s | |||
স (্য s // সমস্যা | |||
_) স্ব SV // shb | |||
_) স্ব (B S | |||
.group হ | |||
হ hV | |||
হ (B h | |||
হ hV | |||
হ (B h | |||
হ (_ ho | |||
.group হ্ব | |||
হ্ব vV | |||
হ্ব (B v | |||
.group ক্ষ | |||
ক্ষ k#k#V // or [k#:] ? | |||
ক্ষ (B k#k# | |||
.group ৎ | |||
ৎ t | |||
.group ড় | |||
ড় r.V // can be ড plus nukta | |||
ড় (B r. | |||
.group ঢ় | |||
ঢ় hr.V // can be ঢ plus nukta | |||
ঢ় (B hr. | |||
.group ড় // can be ড plus nukta | |||
ড় r.V | |||
ড় (B r. | |||
.group য় | |||
য় jV | |||
_) য় (B j | |||
য় (B // used to separate 2 vowels | |||
.group ঢ় // can be ঢ plus nukta | |||
ঢ় hr.V | |||
ঢ় (B hr. | |||
.group হ্ব | |||
হ্ব vV | |||
হ্ব (B v | |||
.group ৎ | |||
ৎ t | |||
.group ঁ | |||
ঁ O~ // candrabindu, nasalize the previous vowel | |||
C) ঁ O~ // candrabindu, nasalize the previous vowel/Consonants | |||
.group ং | |||
ং N // anusvara/onushshor | |||
A) ং N // anusvara/onushshor | |||
C) ং N | |||
.group ঃ // visarga/bishorgo | |||
ঃ // doubles the following consonant | |||
ঃ (_ H | |||
ঃ (_ H | |||
.group ্ // virama/hoshonto | |||
্ | |||
.group ় | |||
় // nukta, modifies a consonant | |||
.group | |||
// obsolete letters | |||
ঋ r- | |||
ৠ r- | |||
ঌ l- | |||
ৡ l- | |||
ৃ r- | |||
ৄ r- | |||
ৢ l- | |||
ৣ l- | |||
__) - (_D bij'og | |||
D_) - (_D bij'og | |||
// D_) - (_D bij'og |
@@ -1,4 +1,3 @@ | |||
name slovenian-test | |||
language sl | |||
stressLength 160 150 240 240 240 240 300 320 | |||
@@ -0,0 +1,95 @@ | |||
//==================================================== | |||
// Manipuri, inherits from Bengali | |||
//==================================================== | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 225 | |||
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN | |||
FMT(vowel/a#_2) | |||
ENDIF | |||
FMT(vowel/a_3) | |||
endphoneme | |||
phoneme i | |||
vowel starttype #i endtype #i | |||
length 210 | |||
FMT(vowel/i_6) | |||
endphoneme | |||
phoneme u | |||
vowel starttype #u endtype #u | |||
length 210 | |||
FMT(vowel/u) | |||
endphoneme | |||
phoneme e | |||
vowel starttype #e endtype #e | |||
length 210 | |||
FMT(vowel/e) | |||
endphoneme | |||
phoneme & | |||
vowel starttype #a endtype #a | |||
length 210 | |||
FMT(vowel/&_2) | |||
endphoneme | |||
phoneme o | |||
vowel starttype #o endtype #o | |||
length 210 | |||
IF nextPhW(w) THEN | |||
length 170 | |||
ENDIF | |||
FMT(vowel/o) | |||
endphoneme | |||
phoneme O | |||
vowel starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo_5) | |||
endphoneme | |||
phoneme tS | |||
vls pla afr sibilant | |||
voicingswitch dZ | |||
lengthmod 2 | |||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/tsh_unasp2) | |||
ENDIF | |||
WAV(ustop/tsh_unasp2) | |||
endphoneme | |||
phoneme tS# | |||
vls pla afr sibilant | |||
voicingswitch dZ | |||
lengthmod 2 | |||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/tsh_) | |||
ENDIF | |||
WAV(ustop/tsh) | |||
endphoneme | |||
phoneme ~ | |||
virtual | |||
endphoneme | |||
@@ -0,0 +1,105 @@ | |||
//==================================================== | |||
// Oriya, inherits from Bengali | |||
//==================================================== | |||
phoneme V // inherent vowel, can be [O] or [o] | |||
vowel flag1 starttype #o endtype #o | |||
length 200 | |||
IF thisPh(isWordEnd) AND prevPhW(isNotVowel) THEN | |||
ChangePhoneme(O) | |||
ENDIF | |||
endphoneme | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 225 | |||
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN | |||
FMT(vowel/a#_2) | |||
ENDIF | |||
FMT(vowel/a_3) | |||
endphoneme | |||
phoneme i | |||
vowel starttype #i endtype #i | |||
length 210 | |||
FMT(vowel/i_6) | |||
endphoneme | |||
phoneme u | |||
vowel starttype #u endtype #u | |||
length 210 | |||
FMT(vowel/u) | |||
endphoneme | |||
phoneme e | |||
vowel starttype #e endtype #e | |||
length 210 | |||
FMT(vowel/e) | |||
endphoneme | |||
phoneme & | |||
vowel starttype #a endtype #a | |||
length 210 | |||
FMT(vowel/&_2) | |||
endphoneme | |||
phoneme o | |||
vowel starttype #o endtype #o | |||
length 210 | |||
IF nextPhW(w) THEN | |||
length 170 | |||
ENDIF | |||
FMT(vowel/o) | |||
endphoneme | |||
phoneme O | |||
vowel starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo_5) | |||
endphoneme | |||
phoneme tS | |||
vls pla afr sibilant | |||
voicingswitch dZ | |||
lengthmod 2 | |||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/tsh_unasp2) | |||
ENDIF | |||
WAV(ustop/tsh_unasp2) | |||
endphoneme | |||
phoneme tS# | |||
vls pla afr sibilant | |||
voicingswitch dZ | |||
lengthmod 2 | |||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/tsh_) | |||
ENDIF | |||
WAV(ustop/tsh) | |||
endphoneme | |||
phoneme ~ | |||
virtual | |||
endphoneme | |||
@@ -6,44 +6,44 @@ | |||
phoneme 1 // ngang tone: level | |||
stress | |||
Tone(32, 34, envelope/p_level, NULL) | |||
Tone(20,35, envelope/i_risefall,NULL) //40,5,envelope/p_level, NULL) //40 45 | |||
endphoneme | |||
phoneme 2 // huyền tone: low falling | |||
stress | |||
Tone(35,20 , envelope/p_fall, NULL) //20 | |||
Tone(10,20 , envelope/p_fall, NULL) //20 | |||
endphoneme | |||
phoneme 3 // sắc Tone(rising | |||
stress | |||
Tone(40,60, envelope/p_rise, NULL) // 25 50 | |||
Tone(45,80, envelope/p_rise, NULL) // 30 50 | |||
endphoneme | |||
phoneme 4 // hỏi Tone(curve (dipping rising) | |||
stress | |||
Tone(30,50, envelope/p_rise, NULL) //envelope/vi_5amp) // 28,58 | |||
Tone(45,50, envelope/p_fallrise,envelope/vi_5amp) // 28,58 | |||
endphoneme | |||
phoneme 5 // ngã tone: broken (creaking rising) | |||
stress | |||
Tone(30,50, envelope/p_rise, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58 | |||
Tone(30,75, envelope/p_214, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58 | |||
endphoneme | |||
phoneme 6 // nặng Tone(drop (constricted) | |||
stress | |||
//length 150 // ignore because it make too short sound 75 // reduce the length of the vowel | |||
Tone(10,5, envelope/p_512,NULL) // envelope/vi_6amp) | |||
Tone(20,25, envelope/p_512,NULL) // envelope/vi_6amp) 10 5 | |||
endphoneme | |||
phoneme 7 // Tone(1 (ngang) at end of clause | |||
stress | |||
Tone(40, 20, envelope/p_fall, NULL) | |||
Tone(40,42, envelope/p_fall, NULL) //20, 30, envelope/p_fall, NULL) | |||
endphoneme | |||
// Redefine the length of vowels | |||
@@ -51,11 +51,13 @@ endphoneme | |||
phoneme i | |||
CALL vi/i | |||
length 150 | |||
FMT(vowel/i#) | |||
endphoneme | |||
phoneme E | |||
CALL vi/E | |||
length 150 | |||
FMT(vowel/ee_1) | |||
endphoneme | |||
phoneme a: | |||
@@ -76,8 +78,8 @@ endphoneme | |||
phoneme O | |||
CALL vi/O | |||
length 150 | |||
FMT(vowel/0) | |||
length 80 | |||
FMT(vowel/oo_1) | |||
endphoneme | |||
phoneme Oi | |||
@@ -94,4 +96,9 @@ endphoneme | |||
phoneme o | |||
CALL vi/o | |||
FMT(vowel/o_5) | |||
endphoneme | |||
phoneme @:I | |||
CALL vi/@:I | |||
FMT(vdiph/y#y) | |||
endphoneme |
@@ -0,0 +1,37 @@ | |||
#include <speak_lib.h> | |||
#ifdef PLATFORM_WINDOWS | |||
#include <windows.h> | |||
#define sleep(x) Sleep(1000*x) | |||
#endif | |||
int callback(short* wav, int num, espeak_EVENT *pEv) | |||
{ | |||
int cEv = 0; | |||
while (pEv->type) { | |||
cEv++; | |||
pEv++; | |||
} | |||
printf("callback, events: %d\n", cEv); | |||
return 0; | |||
} | |||
main() | |||
{ | |||
int nRate = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 10000, NULL, 0); | |||
printf("nRate: %d\n", nRate); | |||
if (nRate < 0) | |||
return; | |||
espeak_SetSynthCallback(callback); | |||
espeak_SetParameter(espeakRATE, 175, 0); | |||
int rv; | |||
rv = espeak_Char('c'); | |||
printf("rv: %d\n", rv); | |||
const char* sText = "tralalalallala"; | |||
rv = espeak_Synth(sText, 100, 0, POS_CHARACTER, 0, 0, 0, 0); | |||
printf("rv: %d (full: %d, internal: %d)\n", | |||
rv, EE_BUFFER_FULL, EE_INTERNAL_ERROR); | |||
sleep(2); // 2 seconds | |||
puts("slept"); | |||
espeak_Terminate(); | |||
} |
@@ -0,0 +1,169 @@ | |||
Index: src/Makefile | |||
=================================================================== | |||
--- src/Makefile (revision 364) | |||
+++ src/Makefile (working copy) | |||
@@ -18,6 +18,13 @@ | |||
# Use SONAME_OPT=-Wl,h, on Solaris | |||
SONAME_OPT=-Wl,-soname, | |||
+ifdef PLATFORM_WINDOWS | |||
+ LIB_NAME = libespeak.dll | |||
+else | |||
+ # On Windows not all source files are compiled | |||
+ non_windows_SOURCES = mbrowrap.cpp | |||
+endif | |||
+ | |||
# Use EXTRA_LIBS=-lm on Solaris | |||
EXTRA_LIBS = | |||
@@ -72,12 +79,12 @@ | |||
speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ | |||
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ | |||
- synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ | |||
+ synthdata.cpp synthesize.cpp translate.cpp $(non_windows_SOURCES) \ | |||
tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp | |||
libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \ | |||
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ | |||
- synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ | |||
+ synthdata.cpp synthesize.cpp translate.cpp $(non_windows_SOURCES) \ | |||
tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \ | |||
espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp | |||
@@ -94,8 +101,14 @@ | |||
LIBS3=-lstdc++ -L . -lespeak | |||
CXXFLAGS=-O2 | |||
+ifdef PLATFORM_WINDOWS | |||
+ CXXFLAGS += -DPLATFORM_WINDOWS -DNEED_STRUCT_TIMESPEC | |||
+ LDFLAGS += -static-libgcc -static-libstdc++ | |||
+endif | |||
+ifdef DEBUG | |||
+ CXXFLAGS += -DDEBUG_ENABLED | |||
+endif | |||
- | |||
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | |||
.cpp.o: | |||
@@ -116,9 +129,11 @@ | |||
$(LIB_NAME): $(OBJS2) | |||
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ | |||
$(OBJS2) $(LIBS2) | |||
- mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | |||
- $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION) | |||
- $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME) | |||
+ $(if $(PLATFORM_WINDOWS), , \ | |||
+ mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG); \ | |||
+ $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION); \ | |||
+ $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME); \ | |||
+ ) | |||
$(STATIC_LIB_NAME): $(OBJS2) | |||
$(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) | |||
Index: src/speech.h | |||
=================================================================== | |||
--- src/speech.h (revision 364) | |||
+++ src/speech.h (working copy) | |||
@@ -37,7 +37,6 @@ | |||
#endif | |||
-#define PLATFORM_POSIX | |||
#define PATHSEP '/' | |||
// USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile | |||
//#define USE_PORTAUDIO | |||
@@ -77,7 +76,14 @@ | |||
#ifdef PLATFORM_WINDOWS | |||
#define N_PATH_HOME 230 | |||
-#else | |||
+// sleep(seconds) | |||
+// Sleep(millisecond = 1/1000 s), windows api, kernel32.dll | |||
+// usleep(microseconds = 1/1000000 s) | |||
+#define sleep(x) Sleep(1000*x) | |||
+// we are lucky, in current code usleep is always used in multiplies of 1000 | |||
+#define usleep(x) Sleep((x+500)/1000) | |||
+#else /* PLATFORM_POSIX */ | |||
+#define PLATFORM_POSIX | |||
#define N_PATH_HOME 160 | |||
#endif | |||
Index: src/speak_lib.cpp | |||
=================================================================== | |||
--- src/speak_lib.cpp (revision 364) | |||
+++ src/speak_lib.cpp (working copy) | |||
@@ -31,7 +31,13 @@ | |||
#include "speech.h" | |||
#include <sys/stat.h> | |||
-#ifndef PLATFORM_WINDOWS | |||
+ | |||
+#ifdef PLATFORM_WINDOWS | |||
+#include <fcntl.h> | |||
+#include <io.h> | |||
+#include <windows.h> | |||
+#include <winreg.h> | |||
+#else /* PLATFORM_POSIX */ | |||
#include <unistd.h> | |||
#endif | |||
Index: src/wave.cpp | |||
=================================================================== | |||
--- src/wave.cpp (revision 364) | |||
+++ src/wave.cpp (working copy) | |||
@@ -32,7 +32,9 @@ | |||
#include <time.h> | |||
#include "portaudio.h" | |||
-#ifndef PLATFORM_WINDOWS | |||
+#ifdef PLATFORM_WINDOWS | |||
+#include <windows.h> | |||
+#else /* PLATFORM_POSIX */ | |||
#include <unistd.h> | |||
#endif | |||
#include "wave.h" | |||
@@ -40,6 +42,14 @@ | |||
//<Definitions | |||
+#ifdef NEED_STRUCT_TIMESPEC | |||
+#define HAVE_STRUCT_TIMESPEC 1 | |||
+struct timespec { | |||
+ long tv_sec; | |||
+ long tv_nsec; | |||
+}; | |||
+#endif /* HAVE_STRUCT_TIMESPEC */ | |||
+ | |||
enum {ONE_BILLION=1000000000}; | |||
#ifdef USE_PORTAUDIO | |||
Index: src/event.cpp | |||
=================================================================== | |||
--- src/event.cpp (revision 364) | |||
+++ src/event.cpp (working copy) | |||
@@ -24,7 +24,9 @@ | |||
//<includes | |||
+#ifndef PLATFORM_WINDOWS | |||
#include <unistd.h> | |||
+#endif | |||
#include <assert.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
Index: src/fifo.cpp | |||
=================================================================== | |||
--- src/fifo.cpp (revision 364) | |||
+++ src/fifo.cpp (working copy) | |||
@@ -24,7 +24,9 @@ | |||
//<includes | |||
+#ifndef PLATFORM_WINDOWS | |||
#include <unistd.h> | |||
+#endif | |||
#include <assert.h> | |||
#include <string.h> | |||
#include <stdlib.h> |
@@ -0,0 +1,16 @@ | |||
These are instructions to built the library on MS Windows, using msys and mingw. | |||
This library is fully functional, contrary to the library described | |||
in windows_dll directory. | |||
To build exe file go to windows_cmd directory, to build sapi dll, | |||
go to windows_sapi directory. | |||
- Use sources from src directory. | |||
- Have a ready to use portaudio v19 library (dll file is sufficient, here | |||
libportaudio-2.dll filename is assumed in a directory relative to espeak) | |||
- Copy portaudio.h file from your portaudio directory to src directory, | |||
overwriting the existing one. At the time of writing this is the same | |||
file as src/portaudio19.h distributed within espeak. | |||
Make command: | |||
make libespeak.dll PLATFORM_WINDOWS=1 LIB_AUDIO="-L ../../portaudio/lib/.libs -lportaudio-2 -lwinmm" |