Reece H. Dunn 11 years ago
parent
commit
4b0fd781cf

+ 133
- 194
dictsource/as_list View File

@@ -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

+ 166
- 208
dictsource/as_rules View File

@@ -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

BIN
espeak-data/mbrola_ph/in1_phtrans View File


+ 1
- 2
espeak-data/voices/test/sl View File

@@ -1,4 +1,3 @@
name slovenian-test
language sl
stressLength 160 150 240 240 240 240 300 320

+ 95
- 0
phsource/ph_manipuri View File

@@ -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


+ 105
- 0
phsource/ph_oriya View File

@@ -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


+ 16
- 9
phsource/ph_vietnam_sgn View File

@@ -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

+ 37
- 0
platforms/windows/mingw/espeak_test_lib.c View File

@@ -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();
}

+ 169
- 0
platforms/windows/mingw/espeak_win_1_0.txt View File

@@ -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>

+ 16
- 0
platforms/windows/mingw/readme.txt View File

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

Loading…
Cancel
Save