From 4b0fd781cfcda4d245e971cf317f3972dcb53a9b Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 22 Oct 2013 15:55:09 +0100 Subject: [PATCH] 1.47.13 (from http://espeak.sourceforge.net/test/latest.html) --- dictsource/as_list | 315 +++++++---------- dictsource/as_rules | 376 +++++++++------------ espeak-data/mbrola_ph/in1_phtrans | Bin 1252 -> 1444 bytes espeak-data/voices/test/sl | 3 +- phsource/ph_manipuri | 95 ++++++ phsource/ph_oriya | 105 ++++++ phsource/ph_vietnam_sgn | 25 +- platforms/windows/mingw/espeak_test_lib.c | 37 ++ platforms/windows/mingw/espeak_win_1_0.txt | 169 +++++++++ platforms/windows/mingw/readme.txt | 16 + 10 files changed, 733 insertions(+), 408 deletions(-) create mode 100644 phsource/ph_manipuri create mode 100644 phsource/ph_oriya create mode 100644 platforms/windows/mingw/espeak_test_lib.c create mode 100644 platforms/windows/mingw/espeak_win_1_0.txt create mode 100644 platforms/windows/mingw/readme.txt diff --git a/dictsource/as_list b/dictsource/as_list index 11a5429b..926ddafa 100644 --- a/dictsource/as_list +++ b/dictsource/as_list @@ -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 +_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 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. +_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 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 +_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 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 +_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 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 +_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 +_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 S'o +_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 // o:gu:lo: those -ওগুলোকে $u // o:gu:lo:ke: to those -ওগুলোর $u // o:gu:lo:'r of those +সি $u // he +তাই $u // she - -// 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 diff --git a/dictsource/as_rules b/dictsource/as_rules index 66b685af..85127b1f 100644 --- a/dictsource/as_rules +++ b/dictsource/as_rules @@ -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 ক্ষ + ক্ষ k#k#V // or [k#:] ? + ক্ষ (B k#k# + +.group ড় + ড় r.V // can be ড plus nukta + ড় (B r. + +.group ঢ় + ঢ় hr.V // can be ঢ plus nukta + ঢ় (B hr. + +.group য় + য় jV + _) য় (B j + য় (B // used to separate 2 vowels .group হ্ব - হ্ব vV - হ্ব (B v + হ্ব vV + হ্ব (B v .group ৎ - ৎ t - - -.group ড় // can be ড plus nukta - ড় r.V - ড় (B r. - - -.group ঢ় // can be ঢ plus nukta - ঢ় hr.V - ঢ় (B hr. - - + ৎ 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 diff --git a/espeak-data/mbrola_ph/in1_phtrans b/espeak-data/mbrola_ph/in1_phtrans index 7f4631899e208f50b855ad579b726eadea70f67d..cf1c589565a4e8a86c857783e997917785b47454 100644 GIT binary patch delta 236 zcmaFDxrBQ{3uD>FR(0l}0%Zm;D9C`&Ffs`$o`fb|0u?Vo6HkGPr({f?$E?AqJoz}Y zzC1+C1x;x(RB7_$zswpIP)-(_qHL&mHkx=kR6KpMF3Wt*a;S65CTe>X4aAQ~ Pm*f>CLUk`A_0yq R3--%p>G@9hYQzCj1puN_6WIU& diff --git a/espeak-data/voices/test/sl b/espeak-data/voices/test/sl index 8506f9eb..6044e9d0 100644 --- a/espeak-data/voices/test/sl +++ b/espeak-data/voices/test/sl @@ -1,4 +1,3 @@ name slovenian-test language sl - -stressLength 160 150 240 240 240 240 300 320 \ No newline at end of file + \ No newline at end of file diff --git a/phsource/ph_manipuri b/phsource/ph_manipuri new file mode 100644 index 00000000..a6bb6982 --- /dev/null +++ b/phsource/ph_manipuri @@ -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 + diff --git a/phsource/ph_oriya b/phsource/ph_oriya new file mode 100644 index 00000000..8b72bf87 --- /dev/null +++ b/phsource/ph_oriya @@ -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 + diff --git a/phsource/ph_vietnam_sgn b/phsource/ph_vietnam_sgn index fdf27ee2..57596cc6 100644 --- a/phsource/ph_vietnam_sgn +++ b/phsource/ph_vietnam_sgn @@ -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 \ No newline at end of file diff --git a/platforms/windows/mingw/espeak_test_lib.c b/platforms/windows/mingw/espeak_test_lib.c new file mode 100644 index 00000000..79525ed1 --- /dev/null +++ b/platforms/windows/mingw/espeak_test_lib.c @@ -0,0 +1,37 @@ +#include + +#ifdef PLATFORM_WINDOWS +#include +#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(); +} diff --git a/platforms/windows/mingw/espeak_win_1_0.txt b/platforms/windows/mingw/espeak_win_1_0.txt new file mode 100644 index 00000000..f5bddc26 --- /dev/null +++ b/platforms/windows/mingw/espeak_win_1_0.txt @@ -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 +-#ifndef PLATFORM_WINDOWS ++ ++#ifdef PLATFORM_WINDOWS ++#include ++#include ++#include ++#include ++#else /* PLATFORM_POSIX */ + #include + #endif + +Index: src/wave.cpp +=================================================================== +--- src/wave.cpp (revision 364) ++++ src/wave.cpp (working copy) +@@ -32,7 +32,9 @@ + #include + + #include "portaudio.h" +-#ifndef PLATFORM_WINDOWS ++#ifdef PLATFORM_WINDOWS ++#include ++#else /* PLATFORM_POSIX */ + #include + #endif + #include "wave.h" +@@ -40,6 +42,14 @@ + + // ++#endif + #include + #include + #include +Index: src/fifo.cpp +=================================================================== +--- src/fifo.cpp (revision 364) ++++ src/fifo.cpp (working copy) +@@ -24,7 +24,9 @@ + + // ++#endif + #include + #include + #include diff --git a/platforms/windows/mingw/readme.txt b/platforms/windows/mingw/readme.txt new file mode 100644 index 00000000..a03bd47c --- /dev/null +++ b/platforms/windows/mingw/readme.txt @@ -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"