// Translation rules for Bengali | |||||
// Translation rules for Assamese | |||||
// input by . | |||||
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Numbers | // 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 | _2 d'uj | ||||
_3 t'in | |||||
_4 tS'ar | |||||
_3 t'ini | |||||
_4 tS#'ar'i | |||||
_5 p'a~tS | _5 p'a~tS | ||||
_6 tS#'Oj | _6 tS#'Oj | ||||
_7 S'at | |||||
_8 'at.# | |||||
_7 X'at | |||||
_8 a~t.# | |||||
_9 n'Oj | _9 n'Oj | ||||
_2a d'u // with hundreds etc. | _2a d'u // with hundreds etc. | ||||
_6a tS#'a | |||||
_6a tS#'O | |||||
_9a n'O | _9a n'O | ||||
_10 d'OS | |||||
_11 '&garo | |||||
_10 d@h | |||||
_11 Ig#'a:ro | |||||
_12 b'arO | _12 b'arO | ||||
_13 t'erO | _13 t'erO | ||||
_14 tS'oddO | |||||
_14 tS#au'ddO | |||||
_15 p'OnerO | _15 p'OnerO | ||||
_16 S'olO | |||||
_17 S'OterO | |||||
_16 X'olO | |||||
_17 X'OterO | |||||
_18 'at.#arO | _18 'at.#arO | ||||
_19 'uniS | |||||
_19 'un'niS | |||||
_20 k'uri // or b'iS ?? | |||||
_20 b'iS | |||||
_21 ek'uS | _21 ek'uS | ||||
_22 b'ajS | _22 b'ajS | ||||
_23 t'ejS | _23 t'ejS | ||||
_24 tS'ObbiS | _24 tS'ObbiS | ||||
_25 p'O~tSiS | _25 p'O~tSiS | ||||
_26 tSh'abbiS | _26 tSh'abbiS | ||||
_27 Sat'aS | |||||
_27 X'at'aS | |||||
_28 'at.#aS | _28 'at.#aS | ||||
_29 unOtr'iS | |||||
_29 'unOtr'iS | |||||
_30 tr'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 | _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 | _39 'unOtSOll'iS | ||||
_40 tSOll'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 | _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 | _0M1 h'ajar | ||||
_0M2 l'ak# | _0M2 l'ak# | ||||
_0M3 k'ot.i | _0M3 k'ot.i | ||||
_0M4 'Orbud | _0M4 'Orbud | ||||
_dpt _d'Osomik_ | |||||
_dpt _d'OX'omik_ | |||||
// Single consonants | // Single consonants | ||||
খ k#O | খ k#O | ||||
গ gO | গ gO | ||||
ঘ g#O | ঘ g#O | ||||
ঙ 'uNO~ | |||||
ঙ 'uNgO~ | |||||
চ tSO | চ tSO | ||||
ছ tShO // [h] to distinguish from [tS] | ছ tShO // [h] to distinguish from [tS] | ||||
জ JO | জ JO | ||||
ব bO | ব bO | ||||
ভ b#O | ভ b#O | ||||
ম mO | ম mO | ||||
য় Oj | |||||
য ,ontostedZ'O | য ,ontostedZ'O | ||||
র rO | |||||
ড় r.O | |||||
ড় r.O // (d. + nukta) | |||||
ঢ় hr.O | |||||
ঢ় hr.O // (d#. + nukta) | |||||
ৰ rO | |||||
ল lO | ল lO | ||||
ৱ wO | |||||
শ t,aleboS:'O | শ t,aleboS:'O | ||||
ষ m,ud#en:oS:'O | ষ m,ud#en:oS:'O | ||||
স d,onteS:'O | |||||
স d,onte'X:'O | |||||
হ hO | হ hO | ||||
ৎ kh,Ond.ot'O | |||||
ক্ষ k,ojmud#en:oS:'O | ক্ষ k,ojmud#en:oS:'O | ||||
ড় dOerO // (d. + nukta) | |||||
ঢ় d#e hr.O // (d#. + nukta) | |||||
য় ,ontosteOj | |||||
ৎ kh,Ond.ot'O | |||||
// full vowels | // full vowels | ||||
অ O | অ O | ||||
আ a | আ a | ||||
ই hrOS:o'i | ই hrOS:o'i | ||||
ঈ dirg#o'i | |||||
ঈ d'i:rg#o'i | |||||
উ hrOS:o'u | উ hrOS:o'u | ||||
ঊ dirg#o'u | |||||
ঊ d'i:rg#o'u | |||||
ঋ ri | ঋ ri | ||||
ও o | |||||
ঔ ow | ঔ ow | ||||
এ e $u+ // word 'it' | এ e $u+ // word 'it' | ||||
ঐ oj $u+ // word 'that' | ঐ oj $u+ // word 'that' | ||||
ও o $u+ $brk // 'and' | ও o $u+ $brk // 'and' | ||||
_এ e | _এ e | ||||
_ঐ oj | _ঐ oj | ||||
_ও o | |||||
// combining vowel signs | // combining vowel signs | ||||
া 'akar | া '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 | ৃ r'ikar | ||||
ে 'ekar | ে 'ekar | ||||
ৈ 'ojkar | ৈ 'ojkar | ||||
় b'indu | ় b'indu | ||||
$ d.Olar | $ d.Olar | ||||
% SOtk'Ora | |||||
% X'Otk'Ora | |||||
+ jOg | + jOg | ||||
= SOman | |||||
= X'Oman | |||||
// Punctuation | // Punctuation | ||||
। dVn.d.V | |||||
। dVn.ri | |||||
_, koma | _, koma | ||||
_? pr'oSnOtSihnO | _? pr'oSnOtSihnO | ||||
// Pronouns | // Pronouns | ||||
আমি $u // main: I | |||||
আমায় $u | |||||
আমার $u | |||||
আমরা $u // we | |||||
আমাদের $u | |||||
ময $u // I, me | |||||
আমি $u // us | |||||
আমার $u // our | |||||
আপনি $u // you(formal) | আপনি $u // you(formal) | ||||
আপনাকে $u | |||||
আপনার $u | |||||
আপনাক $u | |||||
তুমি $u // you (informal) | তুমি $u // you (informal) | ||||
তোমায় $u | |||||
তোমার $u | |||||
তোমাদের $u | |||||
তুই $u // you (informal) | |||||
তোকে $u | |||||
তোমাক $u | |||||
তয় $u // you (informal) | |||||
তোক $u | |||||
তোর $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 | // 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 | কিন্তু $u $pause // kintu: but | ||||
যদি $pause // jodi: if | যদি $pause // jodi: if | ||||
তবু $pause // tobu: still, yet | |||||
তবে $pause // tabe: if...then | |||||
তেতিয়া $pause // then | |||||
অথচ $u // athacho: yet | অথচ $u // athacho: yet | ||||
// Verbs | |||||
হয় $u | |||||
ছিল $u // chilo: past aux | |||||
ছিলেন $u // chilen | |||||
করছি $u // korchi: continuous | |||||
করছিলাম $u // korchilam: past indefinite | |||||
করেছি $u // korechi: past | |||||
// Exceptions | // Exceptions | ||||
এত &to | |||||
এটা &ta // one piece, one |
| |||||
// Pronounciation rule for Assamese. | |||||
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// letter groups: | // letter groups: | ||||
// C consonants | // C consonants | ||||
// Y vowel letters and vowel signs | // Y vowel letters and vowel signs | ||||
.replace | .replace | ||||
০ 0 | ০ 0 | ||||
১ 1 | ১ 1 | ||||
৮ 8 | ৮ 8 | ||||
৯ 9 | ৯ 9 | ||||
// Vowels | // Vowels | ||||
.group অ | .group অ | ||||
অ V | |||||
অঁ O~ | |||||
অ্যা & // V,ja in [æmiba] | |||||
অ V | |||||
অঁ O~ | |||||
অ্যা & // V,ja in [æmiba] | |||||
.group আ | .group আ | ||||
আ a | |||||
আঁ a~ | |||||
আ a | |||||
আঁ a~ | |||||
.group ই | .group ই | ||||
ই i | |||||
ইঁ i~ | |||||
ই i | |||||
ইঁ i~ | |||||
.group ঈ | .group ঈ | ||||
ঈ i | |||||
ঈঁ i~ | |||||
ঈ i | |||||
ঈঁ i~ | |||||
.group উ | .group উ | ||||
উ u | |||||
উঁ u~ | |||||
উ u | |||||
উঁ u~ | |||||
.group ঊ | .group ঊ | ||||
ঊ u | |||||
ঊঁ u~ | |||||
ঊ u | |||||
ঊঁ u~ | |||||
.group ঋ | .group ঋ | ||||
ঋ ri | |||||
ঋঁ ri~ | |||||
.group ঌ | |||||
ঌ l- | |||||
ঋ ri | |||||
.group এ | .group এ | ||||
এ & | |||||
এঁ &~ | |||||
এ & | |||||
এঁ &~ | |||||
.group ঐ | .group ঐ | ||||
ঐ oj | |||||
ঐঁ o~j | |||||
ঐ oj | |||||
ঐঁ o~j | |||||
.group এ | .group এ | ||||
এ e | |||||
এঁ e~ | |||||
এ e | |||||
এঁ e~ | |||||
এ্যা & // e,ja [ækademi] | |||||
এ্যা & // e,ja [ækademi] | |||||
.group ও | .group ও | ||||
ও o | |||||
ওঁ o~ | |||||
ও o | |||||
ওঁ o~ | |||||
.group ঔ | .group ঔ | ||||
ঔ ow | |||||
ঔঁ o~w | |||||
ঔ ow | |||||
ঔঁ o~w | |||||
.group ও //?? | .group ও //?? | ||||
ও o: | |||||
ও o: | |||||
// Vowel Signs | // Vowel Signs | ||||
.group া | .group া | ||||
া a | |||||
াঁ a~ | |||||
C) া a | |||||
C) াঁ a~ | |||||
.group ি | .group ি | ||||
ি i | |||||
িঁ i~ | |||||
C) ি i | |||||
C) িঁ i~ | |||||
.group ী | .group ী | ||||
ী i | |||||
ীঁ i~ | |||||
C) ী i | |||||
C) ীঁ i~ | |||||
.group ূ | .group ূ | ||||
ূ u | |||||
ূঁ u~ | |||||
C) ূ u | |||||
C) ূঁ u~ | |||||
.group ু | .group ু | ||||
ু u | |||||
ুঁ u~ | |||||
C) ু u | |||||
C) ুঁ u~ | |||||
.group ৃ | .group ৃ | ||||
ৃ ri | |||||
ৃঁ ri~ | |||||
C) ৃ r'i | |||||
.group ে | .group ে | ||||
ে e | |||||
েঁ e~ | |||||
েউ ew | |||||
C) ে e | |||||
C) েঁ e~ | |||||
C) েউ ew | |||||
.group ৈ | .group ৈ | ||||
ৈ oj | |||||
ৈঁ o~j | |||||
C) ৈ oj | |||||
C) ৈঁ o~j | |||||
.group ো | .group ো | ||||
ো o | |||||
োঁ o~ | |||||
C) ো o | |||||
C) োঁ o~ | |||||
.group ৌ | .group ৌ | ||||
ৌ ow | |||||
ৌঁ o~w | |||||
C) ৌ ow | |||||
C) ৌঁ o~w | |||||
// Consonants | // Consonants | ||||
.group ক | .group ক | ||||
ক kV | |||||
ক (B k | |||||
ক kV | |||||
ক (B k | |||||
.group খ | .group খ | ||||
খ k#V | |||||
খ (B k# | |||||
খ k#V | |||||
খ (B k# | |||||
.group গ | .group গ | ||||
গ gV | |||||
গ (B g | |||||
গ gV | |||||
গ (B g | |||||
.group ঘ | .group ঘ | ||||
ঘ g#V | |||||
ঘ (B g# | |||||
ঘ g#V | |||||
ঘ (B g# | |||||
.group ঙ | .group ঙ | ||||
ঙ NV | |||||
ঙ্ (B N | |||||
ঙ NV | |||||
ঙ (B N | |||||
.group চ | .group চ | ||||
চ tSV | |||||
চ (B tS | |||||
চ tSV | |||||
চ (B tS | |||||
.group ছ | .group ছ | ||||
ছ tS#V | |||||
ছ (B tS# | |||||
ছ tS#V | |||||
ছ (B tS# | |||||
.group জ | .group জ | ||||
জ JV | |||||
জ (B J | |||||
জ JV | |||||
জ (B J | |||||
জ্ব JV | |||||
জ্ব (B J | |||||
জ্ঞ ggo~ | |||||
জ্ঞ (B gg | |||||
জ্ব JV | |||||
জ্ব (B J | |||||
জ্ঞ ggo~ | |||||
জ্ঞ (B gg | |||||
.group ঝ | .group ঝ | ||||
ঝ J#V | |||||
ঝ (B J# | |||||
ঝ J#V | |||||
ঝ (B J# | |||||
.group ঞ | .group ঞ | ||||
ঞ nV | |||||
ঞ্ (B n | |||||
ঞ nV | |||||
ঞ (B n | |||||
.group ট | .group ট | ||||
ট t.V | |||||
ট (B t. | |||||
ট t.V | |||||
ট (B t. | |||||
.group ঠ | .group ঠ | ||||
ঠ t.#V | |||||
ঠ (B t.# | |||||
ঠ t.#V | |||||
ঠ (B t.# | |||||
.group ড | .group ড | ||||
ড d.V | |||||
ড (B d. | |||||
ড d.V | |||||
ড (B d. | |||||
ড় r.V // nukta | |||||
ড় (B r. | |||||
.group ঢ | .group ঢ | ||||
ঢ d.#V | |||||
ঢ (B d.# | |||||
ঢ d.#V | |||||
ঢ (B d.# | |||||
ঢ় hr.V | |||||
ঢ় (B hr. | |||||
.group ণ | .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 ত | .group ত | ||||
ত tV | |||||
ত (B t | |||||
ত tV | |||||
ত (B t | |||||
ত (_ to | |||||
.group থ | .group থ | ||||
থ t#V | |||||
থ (B t# | |||||
থ t#V | |||||
থ (B t# | |||||
.group দ | .group দ | ||||
দ dV | |||||
দ (B d | |||||
দ dV | |||||
দ (B d | |||||
.group ধ | .group ধ | ||||
ধ d#V | |||||
ধ (B d# | |||||
ধ d#V | |||||
ধ (B d# | |||||
.group ন | .group ন | ||||
ন nV | |||||
ন (B n | |||||
ন nV | |||||
ন (B n | |||||
.group প | .group প | ||||
প pV | |||||
প (B p | |||||
প pV | |||||
প (B p | |||||
.group ফ | .group ফ | ||||
ফ fV // or [p#] ? | |||||
ফ (B f | |||||
ফ fV // or [p#] ? | |||||
ফ (B f | |||||
.group ব | .group ব | ||||
ব bV | |||||
ব (B b | |||||
ব bV | |||||
ব (B b | |||||
.group ভ | .group ভ | ||||
ভ b#V | |||||
ভ (B b# | |||||
ভ b#V | |||||
ভ (B b# | |||||
.group ম | .group ম | ||||
ম mV | |||||
ম (B m | |||||
.group য় | |||||
য় jV | |||||
য় (B j | |||||
ম mV | |||||
ম (B m | |||||
.group য | .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 ল | .group ল | ||||
ল lV | |||||
ল (B l | |||||
ল lV | |||||
ল (B l | |||||
.group ৱ | |||||
ৱ waV | |||||
ৱ (B wO | |||||
.group শ | .group শ | ||||
শ SV // or [s] ? | |||||
শ (B S | |||||
শ SV // or [s] ? | |||||
শ (B S | |||||
শ (্ল s | |||||
শ (্ল s | |||||
.group ষ | .group ষ | ||||
ষ SV | |||||
ষ (B S | |||||
ষ SV | |||||
ষ (B S | |||||
.group স | .group স | ||||
স SV // or [s] ?? | |||||
স (B S | |||||
স (্থ s | |||||
স (্ত s | |||||
_) স্ব SV // shb | |||||
স X@ // or [s] ?? | |||||
স (B X | |||||
স (্থ s | |||||
স (্ত s | |||||
স (্য s // সমস্যা | |||||
_) স্ব SV // shb | |||||
_) স্ব (B S | _) স্ব (B S | ||||
.group হ | .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 ঁ | .group ঁ | ||||
ঁ O~ // candrabindu, nasalize the previous vowel | |||||
C) ঁ O~ // candrabindu, nasalize the previous vowel/Consonants | |||||
.group ং | .group ং | ||||
ং N // anusvara/onushshor | |||||
A) ং N // anusvara/onushshor | |||||
C) ং N | |||||
.group ঃ // visarga/bishorgo | .group ঃ // visarga/bishorgo | ||||
ঃ // doubles the following consonant | ঃ // doubles the following consonant | ||||
ঃ (_ H | |||||
ঃ (_ H | |||||
.group ্ // virama/hoshonto | .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 |
name slovenian-test | name slovenian-test | ||||
language sl | language sl | ||||
stressLength 160 150 240 240 240 240 300 320 | |||||
//==================================================== | |||||
// 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 | |||||
//==================================================== | |||||
// 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 | |||||
phoneme 1 // ngang tone: level | phoneme 1 // ngang tone: level | ||||
stress | stress | ||||
Tone(32, 34, envelope/p_level, NULL) | |||||
Tone(20,35, envelope/i_risefall,NULL) //40,5,envelope/p_level, NULL) //40 45 | |||||
endphoneme | endphoneme | ||||
phoneme 2 // huyền tone: low falling | phoneme 2 // huyền tone: low falling | ||||
stress | stress | ||||
Tone(35,20 , envelope/p_fall, NULL) //20 | |||||
Tone(10,20 , envelope/p_fall, NULL) //20 | |||||
endphoneme | endphoneme | ||||
phoneme 3 // sắc Tone(rising | phoneme 3 // sắc Tone(rising | ||||
stress | stress | ||||
Tone(40,60, envelope/p_rise, NULL) // 25 50 | |||||
Tone(45,80, envelope/p_rise, NULL) // 30 50 | |||||
endphoneme | endphoneme | ||||
phoneme 4 // hỏi Tone(curve (dipping rising) | phoneme 4 // hỏi Tone(curve (dipping rising) | ||||
stress | 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 | endphoneme | ||||
phoneme 5 // ngã tone: broken (creaking rising) | phoneme 5 // ngã tone: broken (creaking rising) | ||||
stress | 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 | endphoneme | ||||
phoneme 6 // nặng Tone(drop (constricted) | phoneme 6 // nặng Tone(drop (constricted) | ||||
stress | stress | ||||
//length 150 // ignore because it make too short sound 75 // reduce the length of the vowel | //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 | endphoneme | ||||
phoneme 7 // Tone(1 (ngang) at end of clause | phoneme 7 // Tone(1 (ngang) at end of clause | ||||
stress | stress | ||||
Tone(40, 20, envelope/p_fall, NULL) | |||||
Tone(40,42, envelope/p_fall, NULL) //20, 30, envelope/p_fall, NULL) | |||||
endphoneme | endphoneme | ||||
// Redefine the length of vowels | // Redefine the length of vowels | ||||
phoneme i | phoneme i | ||||
CALL vi/i | CALL vi/i | ||||
length 150 | length 150 | ||||
FMT(vowel/i#) | |||||
endphoneme | endphoneme | ||||
phoneme E | phoneme E | ||||
CALL vi/E | CALL vi/E | ||||
length 150 | length 150 | ||||
FMT(vowel/ee_1) | |||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
phoneme O | phoneme O | ||||
CALL vi/O | CALL vi/O | ||||
length 150 | |||||
FMT(vowel/0) | |||||
length 80 | |||||
FMT(vowel/oo_1) | |||||
endphoneme | endphoneme | ||||
phoneme Oi | phoneme Oi | ||||
phoneme o | phoneme o | ||||
CALL vi/o | CALL vi/o | ||||
FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
endphoneme | |||||
phoneme @:I | |||||
CALL vi/@:I | |||||
FMT(vdiph/y#y) | |||||
endphoneme | endphoneme |
#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(); | |||||
} |
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> |
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" |