Browse Source

Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
	phsource/compile_report
master
Reece H. Dunn 12 years ago
parent
commit
ee26fcec34

+ 16
- 3
dictsource/an_list View File

ñ En^e ñ En^e
p pe p pe
q ku q ku
r ERR2e
r ERR2e
s Ese s Ese
t te t te
u u u u
v ,be||b'aIksa
v ,be||b'aSa
w ,be||d'Ople w ,be||d'Ople
x Se x Se
z Teta z Teta
_8C gwitoTj'Entos _8C gwitoTj'Entos
_9C nowTj'Entos _9C nowTj'Entos
_0M1 m'il _0M1 m'il
_0M2 mil^'ones
_0M2 mil^'ons
_1M2 un||mil^'on
_0M4 bil^'ons
_1M4 un||bil^'on


_0and i _0and i
_dpt kon _dpt kon


// unstressed words // unstressed words
lo $u lo $u
la $u
los $u
las $u
ne $u
nes $u
me $u
te $u
se $u
le $u
les $u

+ 28
- 5
dictsource/en_list View File

_#th T _#th T
_ord T // default ending _ord T // default ending
_1o f'3: _1o f'3:
?5 _1o f'IR
_2o s'Ek _2o s'Ek
_3o T'3: _3o T'3:
?5 _3o T'IR
_5o f'If _5o f'If
_20o tw'Enti@ _20o tw'Enti@
_30o T'3:ti@ _30o T'3:ti@
?3 _30o T'IRti@
_40o f'o@ti@ _40o f'o@ti@
_50o f'Ifti@ _50o f'Ifti@
_60o s'Iksti@ _60o s'Iksti@
apprentice a#prEnt2Is apprentice a#prEnt2Is
approximate a#pr0ksIm@t $only approximate a#pr0ksIm@t $only
approximate a#pr0ksImeIt $verb approximate a#pr0ksImeIt $verb
aqueduct akwI#dVkt
arab ar@b arab ar@b
arabic $1 arabic $1
arable ara#b@L arable ara#b@L
bunion bVnI2@n bunion bVnI2@n
bureaucracy bjU@'0kr@si bureaucracy bjU@'0kr@si
bursar b3:s3 bursar b3:s3
?5 bursar bVRs3
bus bVs bus bVs
buses bVsI#z buses bVsI#z
busily bIzI2lI $verbf busily bIzI2lI $verbf
coincide koUIns'aId coincide koUIns'aId
cojones k@hoUneIs cojones k@hoUneIs
coliseum k0l@s'i:@m coliseum k0l@s'i:@m
collage k0l'A:Z
college k0lI2dZ college k0lI2dZ
collegiate k@li:dZI@t collegiate k@li:dZI@t
colloquial k@loUkwI@L colloquial k@loUkwI@L
comely kVmlI // comeliness comely kVmlI // comeliness
comer kVm3 comer kVm3
comet k0mI2t comet k0mI2t
commandant $alt1
commence k@mEns commence k@mEns
commend k@mEnd commend k@mEnd
comment k0mEnt comment k0mEnt
conduct $verb conduct $verb
cone koUn cone koUn
conical $1 conical $1
confidant $alt1
conflict $1 $onlys conflict $1 $onlys
conflict $verb conflict $verb
conger k0Ng3 conger k0Ng3
depot dEpoU depot dEpoU
?3 depot di:poU ?3 depot di:poU
derange dI2reIndZ derange dI2reIndZ
descant dEskant
descry dI2skreI descry dI2skreI
desert dI2z3:t desert dI2z3:t
desert dEs3t $only desert dEs3t $only
galaxy gala#ksi galaxy gala#ksi
galileo galI2l'eIoU galileo galI2l'eIoU
galore $alt3 galore $alt3
gallivant $alt1
?3 garage ga#rA:Z ?3 garage ga#rA:Z
garish ge@rIS garish ge@rIS
garote ga#r0t
garotte ga#r0t
garrot ga#r0t
gases gasI#z gases gasI#z
gauche goUS gauche goUS
gauge geIdZ gauge geIdZ
predicate prEdI2keIt predicate prEdI2keIt
preface prEf@s preface prEf@s
preferably prEf@-r@blI $verbf preferably prEf@-r@blI $verbf
prelate prEl@t
prelude prElju:d prelude prElju:d
?3 prelude preIlu:d ?3 prelude preIlu:d
premier prEmI3 premier prEmI3
punative pju:n@tIv punative pju:n@tIv
puny pju:ni puny pju:ni
purist pju:r-Ist purist pju:r-Ist
purport p3:p'o@t
purportedly p3p'o@tI2dlI
purport $2
purportedly $2
pyjama p@dZA:m@ pyjama p@dZA:m@
pyrites paIr'aIti:z pyrites paIr'aIti:z
pythagoras paIT'ag@r@s pythagoras paIT'ag@r@s
saucepan sO:sp@n saucepan sO:sp@n
saudi saUdi saudi saUdi
saute sO:teI saute sO:teI
?3 savant sa#vA:nt
says sEz says sEz
scaly skeIlI scaly skeIlI
salmon sam@n salmon sam@n
sciatica saI'atIk@ sciatica saI'atIk@
sclera skli@r sclera skli@r
scourge sk3:dZ scourge sk3:dZ
?5 scourge skVRdZ
scrotum skroUt@m scrotum skroUt@m
seabed si:bEd seabed si:bEd
sealion si:laI@n sealion si:laI@n
sofa soUf@ sofa soUf@
soiree swA:reI soiree swA:reI
sojourn soUdZ3:n sojourn soUdZ3:n
?5 sojourn soUdZVRn
solder s0ld3 solder s0ld3
?3 solder sA:d3 ?3 solder sA:d3
soldier soUldZ3 soldier soUldZ3
subside s@bsaId subside s@bsaId
subtly sVt@lI $verbf subtly sVt@lI $verbf
suede sweId suede sweId
suerte swe@rteI
suet su:I2t suet su:I2t
suffice s@faIs suffice s@faIs
suffuse $2 suffuse $2
suppose $2 suppose $2
suprise $2 // misspell suprise $2 // misspell
surest SU@@st surest SU@@st
surplus s3:pl@s
surrogate sVr@geIt surrogate sVr@geIt
?3 surrogate s3:@g@t ?3 surrogate s3:@g@t
survey s3:veI $onlys survey s3:veI $onlys
thousand TaUz@nd thousand TaUz@nd
throughout $2 throughout $2
thursday T3:zdeI thursday T3:zdeI
?5 thursday TVRzdeI
tidal taId@L tidal taId@L
tidy taIdi tidy taIdi
tierra tI'e@r@ tierra tI'e@r@
truest tru:@st truest tru:@st
tryst trIst tryst trIst
tudor tju:d3 tudor tju:d3
turntable t3:nt2eIb@L
turntable $alt1
tulip tju:lIp tulip tju:lIp
turnkey t3:nki: turnkey t3:nki:
?5 turnkey tVRnki: ?5 turnkey tVRnki:
wordprocessor $2 wordprocessor $2
wordprocess $2 wordprocess $2
workshy w3:kSaI workshy w3:kSaI
?5 workshy wVRkSaI
workstation w'3:kst,eIS@n workstation w'3:kst,eIS@n
?5 workstation w'VRkst,eIS@n ?5 workstation w'VRkst,eIS@n
worktable $alt1 worktable $alt1
Leipzig laIpsIg Leipzig laIpsIg
Leone li:'oUn Leone li:'oUn
Lesotho l@s'u:tu: Lesotho l@s'u:tu:
Levant l@vant
Liberia laIb'i@ri:@ Liberia laIb'i@ri:@
Lima li:ma# Lima li:ma#
Ljubljana lju:blj'A:n@ Ljubljana lju:blj'A:n@
Tikal tI2kA:l Tikal tI2kA:l
Timor ti:mo@ Timor ti:mo@
Tokyo toUkIoU Tokyo toUkIoU
Topeka toUp'i:k@
Toronto t@r0ntoU Toronto t@r0ntoU
Toulouse tu:l'u:z Toulouse tu:l'u:z
?3 Tunisia tu:n'i:Z@ ?3 Tunisia tu:n'i:Z@
Bambi bambi: Bambi bambi:
Barack ba#rA:k Barack ba#rA:k
Barbara bA@b@r@ Barbara bA@b@r@
Bartholomew bA@T'0l@mju:
Benjamin bEndZ@mI#n Benjamin bEndZ@mI#n
Benoit bEnw'A: Benoit bEnw'A:
Bernard b3:n@d Bernard b3:n@d
Conrad $1 Conrad $1
Crichton kraIt@n Crichton kraIt@n
Curtis k3:tI#s Curtis k3:tI#s
?5 Curtis kVRtI#s
Dana deIn@ Dana deIn@
Daphne dafni Daphne dafni
Darryl dar@L Darryl dar@L
Ramirez ra#mi@3rEz Ramirez ra#mi@3rEz
Reagan reIg@n Reagan reIg@n
Reid ri:d Reid ri:d
Remi r@ni:
Remi r@mi:
Reuter rOIt3 Reuter rOIt3
Rivera rI2ve@r@ Rivera rI2ve@r@
Rizzoli rI2zoUli Rizzoli rI2zoUli

+ 44
- 25
dictsource/en_rules View File

hum) an (_ @n hum) an (_ @n
&) an (ty_ @n &) an (ty_ @n
&) an (t_ @n &) an (t_ @n
&) an (t_$w_alt an
?8 &) an (t_ a#n ?8 &) an (t_ a#n
_f) an (at a#n _f) an (at a#n
pl) an (t_ an pl) an (t_ an
de (rog dI2 de (rog dI2
de (rACatio dE de (rACatio dE
_) des (@ dI2s _) des (@ dI2s
des (ca dE
des (ec dEs des (ec dEs
des (eg d%i:s des (eg d%i:s
dese (l d,i:sI2 dese (l d,i:sI2
ch) eese i:z ch) eese i:z
eeze (@ i:z eeze (@ i:z
d) e (fault i: d) e (fault i:
_) e (ffac %I
e (ffec %I e (ffec %I
e (ffic %I e (ffic %I
efier (_ I2faI3 efier (_ I2faI3
&ph) es (_S1 z &ph) es (_S1 z
neri) es (_S2i z neri) es (_S2i z
&s) es (_S1 I#z &s) es (_S1 I#z
&us) es (_S2e I#z
us) es (_S2e I#z
lus) es (_S2 I#z
&rus) es (_S2 I#z &rus) es (_S2 I#z
&tus) es (_S2 I#z &tus) es (_S2 I#z
&ss) es (_S2 I#z &ss) es (_S2 I#z
for (see f%O@ for (see f%O@
for (ward f'o@ // straightforward for (ward f'o@ // straightforward
ft (en f ft (en f
&) ful (_S3 f@L
&) fully (_S5 f@li
&) fulness (_S7 f@Ln@s


.group g .group g
g g g g
gh (an g gh (an g
gm (_ m gm (_ m
gn (_ n gn (_ n
_poi) gn nj
_) gnu g@nu: _) gnu g@nu:
hun) g g hun) g g
g (ear g g (ear g
gei (st_ gaI
%A) g (er g %A) g (er g
g (et g g (et g
g (ette_ dZ g (ette_ dZ
er) g (et dZ er) g (et dZ
for) ge (t gE for) ge (t gE
bo) g (Ey g bo) g (Ey g
_) gia (@@ dZa#
_) g (iant dZ
&) gia (_ dZ@ &) gia (_ dZ@
&) gia (C_ dZ@ &) gia (C_ dZ@
go) g (ic_ g go) g (ic_ g
l) im Im l) im Im
_pr) im (a aIm _pr) im (a aIm
sh) im (a_ 'i:m sh) im (a_ 'i:m
image ImI2dZ
imag (e ImI2dZ
l) ime aIm l) ime aIm
d) ime (ns aImE d) ime (ns aImE
im (ent+ Im im (ent+ Im
c) is (_ Is c) is (_ Is
@@m) is (_ Is @@m) is (_ Is
am) is (_S1 z am) is (_S1 z
v) is (_ Is
@Cs) is (_ =Is @Cs) is (_ =Is
&) is (abl aIz &) is (abl aIz
isa (tion aIzeI isa (tion aIzeI
oi (c oUI2 oi (c oUI2
oi (ce OI oi (ce OI
oi (ck OI oi (ck OI
oi (zA oUaI
c) o (inci %oU c) o (inci %oU
o (ing oU o (ing oU
d) o (ing u: d) o (ing u:
pl) or o@ pl) or o@
m) or (al 0r m) or (al 0r
w) or (K 3: w) or (K 3:
?5 w) or VR
?5 w) or (K VR
w) or (m 3: w) or (m 3:
?5 w) or (m VR ?5 w) or (m VR
w) or (se 3: w) or (se 3:
_) pre (C@ pr%I _) pre (C@ pr%I
_) pre (C% prE _) pre (C% prE
_) prea (ch pri: _) prea (ch pri:
_) pre (ad pr%i:
_) pre (am pri: _) pre (am pri:
_) pre (cinc pri: _) pre (cinc pri:
pre (cio prE pre (cio prE
_) pre (coP3 pr,i: _) pre (coP3 pr,i:
preda (to prEd@ preda (to prEd@
prede (ces pri:dI prede (ces pri:dI
_) pre (diP3 pr%i
_) pre (diP3 pr%i:
_) pre (dic pr%I _) pre (dic pr%I
_) pre (em pr%i: _) pre (em pr%i:
_) pre (fec pri: _) pre (fec pri:
_) tera tEr@ _) tera tEr@
te (rrest t2@ te (rrest t2@
r) tga (g gI r) tga (g gI
&) tia (_ S@
&s) tia (_ tS@
@) t (ia S @) t (ia S
pi) t (ia t
is) t (ian+ t
&) tian (_ =S@n
_) tian tjan
&) tial S@L
&s) tial tj@L
&) ti (ali SI
i) tia (liL06 S@
&) tien S@n
&) tience S@ns
t (ime_ t2
&) tion S=@n
&s) tion tS@n
?8 &) tion S=Vn
?8 &s) tion tSVn
tion (al S=@-n
&) tious S=@s
AC) tive (_ =tIv
s) t (l ? s) t (l ?
to (morr t@ to (morr t@
_) to (nn tV _) to (nn tV
_) two tu: _) two tu:
ttu (r t@ ttu (r t@
@) tu (al tSu: @) tu (al tSu:
@) tu (at tSu:
_sta) tu tSu: _sta) tu tSu:
?3 _sta) tu (to tS@ ?3 _sta) tu (to tS@
c) tu (al_ =tSu: c) tu (al_ =tSu:
@) tu (lat =tSU @) tu (lat =tSU
?3 tu (Ant tSu: ?3 tu (Ant tSu:
?3 tu (Ancy tSu: ?3 tu (Ancy tSu:

tu (ous tSu: tu (ous tSu:
@) tur (A tS@r @) tur (A tS@r
@) tur (al_ tS=@r @) tur (al_ tS=@r
_) them D%Em _) them D%Em
_) the (mA Ti: _) the (mA Ti:


.group ti
&) tia (_ S@
&s) tia (_ tS@
propi) ti (a tI
ti (ac tI
&) tian (_ =S@n
&s) tian (_ tS@n
_) tian tjan
&) tial S@L
&s) tial tj@L
&) ti (ali SI
i) tia (liL06 S@
&) tien S@n
&) tience S@ns
ti (me_ t2aI
&) tion S=@n
&s) tion tS@n
?8 &) tion S=Vn
?8 &s) tion tSVn
tion (al S=@-n
&) tious S=@s
AC) tive (_ =tIv

.group u .group u
u V u V
man) u ju: man) u ju:
_) z (wY z _) z (wY z


@) zales (_ z'A:l@s @) zales (_ z'A:l@s
zei zaI
zes (_ zI2z zes (_ zI2z
zh Z zh Z
zu (_ =zu: zu (_ =zu:

+ 848
- 13
dictsource/fa_list
File diff suppressed because it is too large
View File


+ 34
- 17
dictsource/fa_rules View File

_) اصغر (آL09L09P4@ asq1aR _) اصغر (آL09L09P4@ asq1aR
_) ابو (L04L09L09P3@ abu _) ابو (L04L09L09P3@ abu
_) ابو (آL09L09P3@ abu _) ابو (آL09L09P3@ abu
_) ابوال (L04L09L09P5@ abol'
_) ابوال (آL09L09P5@ abol'


// Suffixes ا // Suffixes ا
L09L04) الله (_Sm4 ollAh L09L04) الله (_Sm4 ollAh
L09L04) انداز (_Sm5 andAz L09L04) انداز (_Sm5 andAz
L09L04) انگیز (_Sm5 angiz L09L04) انگیز (_Sm5 angiz
L09L04) اباد (_Sm4 AbAd L09L04) اباد (_Sm4 AbAd
L09L09) امیر (_Sm4 amiR
L09L09) اکبر (_Sm4 akbaR
L09L09) اصغر (_Sm4 asq1aR
// Special passive pronouns eg. خوابانده // Special passive pronouns eg. خوابانده
l09l09l03) انده (_Sm4 Ande: l09l09l03) انده (_Sm4 Ande:
l09l09l03) اندۀ (_Sm4 Andeje l09l09l03) اندۀ (_Sm4 Andeje
_) چار (آL09L09P3@ 'tSAR _) چار (آL09L09P3@ 'tSAR
_) چهار (L04L09L09P4@ 'tSAhAR _) چهار (L04L09L09P4@ 'tSAhAR
_) چهار (آL09L09P4@ 'tSAhAR _) چهار (آL09L09P4@ 'tSAhAR
_) چند (L04L09L09P3@ 'tSAand
_) چند (آL09L09P3@ 'tSAand
_) چند (L04L09L09P3@ 'tSand
_) چند (آL09L09P3@ 'tSand


// Suffixes چ // Suffixes چ
L09L09L09) چی (_Sm2 tSi L09L09L09) چی (_Sm2 tSi
_) خویش (آL09L09P4@ xiS _) خویش (آL09L09P4@ xiS
_) خان (L04L09L09P3@ xAn _) خان (L04L09L09P3@ xAn
_) خان (آL09L09P3@ xAn _) خان (آL09L09P3@ xAn
_) خواهش (L04L09L09P5@ xAheS
_) خواهش (آL09L09P5@ xAheS
_) خواهد (L04L09L09P5@ xAhad
_) خواهد (آL09L09P5@ xAhad
_) خواهید (L04L09L09P6@ xAhid
_) خواهید (آL09L09P6@ xAhid


// suffixes خ // suffixes خ
L09L09) خر (_Sm2 xaR L09L09) خر (_Sm2 xaR
L09L09) خوش (_Sm3 xoS L09L09) خوش (_Sm3 xoS
L09L09) خیز (_Sm3 xiz L09L09) خیز (_Sm3 xiz
L09L09) خواست (_Sm5 xAst L09L09) خواست (_Sm5 xAst
L09L09) خواب (_Sm4 xAb


// arabic form of words (Babs) خ // arabic form of words (Babs) خ
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) دست (_Sm3 dast L09L09) دست (_Sm3 dast
L09L09) درد (_Sm3 daRd L09L09) درد (_Sm3 daRd
L09L09) دوش (_Sm3 duS L09L09) دوش (_Sm3 duS
L09L09) دهی (_Sm3 dehi


// arabic form of words (Babs) د // arabic form of words (Babs) د
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) زده (_+Sm3 zade: L09L09) زده (_+Sm3 zade:
L09L09) زدۀ (_+Sm3 zadeje L09L09) زدۀ (_+Sm3 zadeje
L09L09) زدن (_Sm3 zadan L09L09) زدن (_Sm3 zadan
L09L09) زدا (_Sm3 zodA


// arabic form of words (Babs) ز // arabic form of words (Babs) ز
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09L09L09) ص (L03L09L09L09_ sa L09L09L09L09) ص (L03L09L09L09_ sa


// Prefixes ص // Prefixes ص
_) صاحب (L04L09L09P4@ saheb
_) صاحب (آL09L09P4@ saheb
_) صاحب (L04L09L09P4@ sAheb
_) صاحب (آL09L09P4@ sAheb
_) صدر (L04L09L09P5@ sadr _) صدر (L04L09L09P5@ sadr
_) صدر (آL09L09P5@ sadr _) صدر (آL09L09P5@ sadr


// Suffixes ط // Suffixes ط
L09L09) طلب (_Sm3 talab L09L09) طلب (_Sm3 talab
L09L09) طلبان (_Sm5 talabAn


// arabic form of words (Babs) ط // arabic form of words (Babs) ط
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ع // Prefixes ع
_) عبد (L04L09L09P3@ 'a:bd _) عبد (L04L09L09P3@ 'a:bd
_) عبد (آL09L09P3@ 'a:bd _) عبد (آL09L09P3@ 'a:bd

_) عبدال (L04L09L09P5@ abdol'
_) عبدال (آL09L09P5@ abdol'
_) علی (L04L09L09P3@ a:li _) علی (L04L09L09P3@ a:li
_) علی (آL09L09P3@ a:li _) علی (آL09L09P3@ a:li


L09L09) کنان (_Sm4 konAn L09L09) کنان (_Sm4 konAn
L09L09) کننده (_Sm5 konande: L09L09) کننده (_Sm5 konande:
L09L09) کنندۀ (_Sm5 konandeje L09L09) کنندۀ (_Sm5 konandeje
L09L09) کنندگان (_Sm7 konandegAn
L09L09) کوچک (_Sm4 kutSak L09L09) کوچک (_Sm4 kutSak


// arabic form of words (Babs) ک // arabic form of words (Babs) ک
L09L09) گرفت (_Sm4 geReft L09L09) گرفت (_Sm4 geReft
L09L09) گشا (_Sm3 goSA L09L09) گشا (_Sm3 goSA
L09L09) گریز (_Sm4 goRiz L09L09) گریز (_Sm4 goRiz
L09L09) گسار (_Sm4 gosAR


// arabic form of words (Babs) گ // arabic form of words (Babs) گ
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ل // Prefixes ل
// Suffixes ل // Suffixes ل
L09L09) لوژ (_Sm3 lotZ
L09L09) لوژیک (_Sm5 lotZik
L09L09) لوژ (_Sm3 loZ
L09L09) لوژیک (_Sm5 loZik
L09L09) لوگ (_Sm3 log L09L09) لوگ (_Sm3 log


// arabic form of words (Babs) ل // arabic form of words (Babs) ل
L09L09L03) ند (_NSm2 and L09L09L03) ند (_NSm2 and
L09L09) نوشت (_Sm4 neveSt L09L09) نوشت (_Sm4 neveSt
L09L09) نشین (_Sm4 neSin L09L09) نشین (_Sm4 neSin
L09L09) نکردن (_Sm5 nakaRdan
L09L09L09) نشدن (_Sm4 naSodan


// arabic form of words (Babs) ن // arabic form of words (Babs) ن
//فواعل eg. جوامع //فواعل eg. جوامع
_) هم (آL09P2@ ham _) هم (آL09P2@ ham


// suffixes ه // suffixes ه
L09L03) ه (_++NSm1 e:
L09L01و) ه (_++NSm1 e:
L09) هٔ (_Sm2 eje
L09L03) ه (_++Sm1 e:
L09L01و) ه (_++Sm1 e:
L09L09) ها (_NSm2 hA L09L09) ها (_NSm2 hA
// Plural pronoun ها // Plural pronoun ها
L09L09) های (_NSm3 h'Aje L09L09) های (_NSm3 h'Aje
// Suffixes یی // Suffixes یی
L09L01) یی (_Sm2 i: L09L01) یی (_Sm2 i:
L09L03) یی (_Sm2 ii
L09L03) یی (_Sm1 i
L09L01) ییم (_NSm3 i:m L09L01) ییم (_NSm3 i:m
L09L03) ییم (_NSm3 iim L09L03) ییم (_NSm3 iim
L09L09L01) یید (_NSm3 i:d L09L09L01) یید (_NSm3 i:d
L09و) ی (L01 j L09و) ی (L01 j
L09ا) ی (L03 j L09ا) ی (L03 j
L09ا) ی (L01 j L09ا) ی (L01 j
L03) ی (وL03 j
L03) ی (وL03 ij
//otherwise //otherwise
L02) ی (_ j L02) ی (_ j
_ع) ی (L03_ j _ع) ی (L03_ j
L09L01) ی (_Sm1 j L09L01) ی (_Sm1 j
L09L09آ) ی (_Sm1 je L09L09آ) ی (_Sm1 je
L09L09ا) ی (_NSm1 je L09L09ا) ی (_NSm1 je
L09L09ی) ی (_Sm1 je
L09L01و) ی (_Sm1 i L09L01و) ی (_Sm1 i
L09L03و) ی (_Sm1 je L09L03و) ی (_Sm1 je
L09L01) یند (_Sm3 jand L09L01) یند (_Sm3 jand


.group ء .group ء
ء ? ء ?
// suffixes ء
L09L09L04) ء (_Sm1 ?
L09L09ا) ء (_Sm1
L09L09آ) ء (_Sm1



//this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ " //this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ "


ٔ ٔ


// suffixes ٔ // suffixes ٔ
L09L09) ٔ (_Sm1
L09L03) ٔ (_NSm1 je




.group ّ .group ّ

+ 2
- 1
dictsource/pt_list View File

alicerce $alt alicerce $alt
amanheça $alt2 amanheça $alt2
amanheço $alt2 amanheço $alt2
amanhecesse $alt2
amarelo $alt amarelo $alt
ameba $alt ameba $alt
amores $alt2 amores $alt2
anoitecesse $alt2
anoiteça $alt2 anoiteça $alt2
anoiteço $alt2 anoiteço $alt2
apego $alt2 $noun apego $alt2 $noun
rock $alt rock $alt
rogas $alt rogas $alt
rolo $alt2 $noun rolo $alt2 $noun
rosna $alt
rumores $alt2 rumores $alt2
saleta $alt2 saleta $alt2
sarjeta $alt sarjeta $alt

+ 102
- 89
dictsource/pt_rules View File

.L04 a am e em o ue uem .L04 a am e em o ue uem
.L05 r ra ram re rem rdes .L05 r ra ram re rem rdes
.L06 ra ram ste re rem .L06 ra ram ste re rem
.L07 se sem te
.L07 sse ssem ste




.group a .group a
sf) e (ra_ E // esfera, biosfera sf) e (ra_ E // esfera, biosfera
//sort //sort
qu) e (brL04_ E
_hosp) e (dL03_ E
_estr) ei (L03_ EI
_inv) e (jL04_ E
_dec) e (pL04_ E
_g) e (rL04_ E
_op) e (rL04_ E
_qu) e (rL04_ E
_alt) e (rL04_ E
_inv) e (rtL03_ e
_f) e (rvL03_ e
_p) e (scL03_ E
_m) e (sclL04_ E
_m) e (tL03_ e
_com) e (tL03_ e
_rem) e (tL03_ e
_derr) e (tL03_ e
_prom) e (tL03_ e
_subm) e (tL03_ e
_fiz) e (L05_ E
_exag) e (L05_ E
_houv) e (L05_ E
_perd) e (L05_ e
_soub) e (L05_ E
_rend) e (L06_ e
_vend) e (L06_ e
_atend) e (L06_ e
_compreend) e (L06_ e
_entend) e (L06_ e
_estend) e (L06_ e
respond) e (L06_ e // cor-
com) e (L07_ e
_bat) e (L07_ e
_beb) e (L07_ e
_tem) e (L07_ e
_viv) e (L07_ e
colh) e (L07_ e // & es-
_corr) e (L07_ e
_eleg) e (L07_ e
_morr) e (L07_ e
_perd) e (L07_ e
_sofr) e (L07_ e
_torc) e (L07_ e
_venc) e (L07_ e
_adoec) e (L07_ e
_aperd) e (L07_ e
_merec) e (L07_ e
conhec) e (L07_ e // & re-
entend) e (L07_ e
preend) e (L07_ e // sur- com-
respond) e (L07_ e // cor-
_convenc) e (L07_ e
_entristec) e (L07_ e
_envaidec) e (L07_ e
_escond) e (L07_ e
_obedec) e (L07_ e
interromp) e (L07_ e
intromet) e (L07_ e
qu) e (brL04_ E
_hosp) e (dL03_ E
_estr) ei (L03_ EI
_inv) e (jL04_ E
_dec) e (pL04_ E
_p) e (quL02_ E
_s) e (quL02_ E
l) e (que_ E
_imp) e (rL03_ E
_reit) e (rL03_ E
_g) e (rL04_ E
_op) e (rL04_ E
_qu) e (rL04_ E
_alt) e (rL04_ E
_sup) e (rL04_ E
_tol) e (rL04_ E
_coop) e (rL04_ E
_temp) e (rL04_ E
_) e (rguL02_ E
_alb) e (rguL02_ E
_enx) e (rguL02_ E
_inv) e (rtL03_ e
_f) e (rvL03_ e
_p) e (scL03_ E
_m) e (sclL04 E
_l) e (ssL02_ e
_esp) e (ssL03_ e
_m) e (tL03_ e
_com) e (tL03_ e
_rem) e (tL03_ e
_derr) e (tL03_ e
_prom) e (tL03_ e
_subm) e (tL03_ e
_comprom) e (tL03_ e _comprom) e (tL03_ e
_sol) e (trL03_ E
_atr) e (vL03_ e
scr) e (vL03_ e // e- in- pre- ree-
_descr) e (vL03_ e
_embel) e (zL04_ E
_pr) e (zL04_ E
_acont) e (çL01_ e
_ado) e (çL03_ e
_aqu) e (çL03_ e
_car) e (çL03_ e
_mer) e (çL03_ e
_pad) e (çL03_ e
_per) e (çL03_ e
_esqu) e (çL03_ e
_obed) e (çL03_ e
_ofer) e (çL03_ e
_aborr) e (çL03_ e
_sol) e (trL03_ E
_pen) e (trL04_ E
scr) e (vL03_ e // e- in- pre- ree-
_atr) e (vL03_ e
_descr) e (vL03_ e
_pr) e (zL04_ E
_embel) e (zL04_ E
par) e (çL01_ e // pareça, apareça
_acont) e (çL01_ e
_arref) e (çL01_ e
_ado) e (çL03_ e
_aqu) e (çL03_ e
_car) e (çL03_ e
_mer) e (çL03_ e
_pad) e (çL03_ e
_per) e (çL03_ e
_esqu) e (çL03_ e
_obed) e (çL03_ e
_ofer) e (çL03_ e
_aborr) e (çL03_ e
_compar) e (çL03_ e _compar) e (çL03_ e
_desapar) e (çL03_ e _desapar) e (çL03_ e
_enfraqu) e (çL03_ e _enfraqu) e (çL03_ e
_enriqu) e (çL03_ e _enriqu) e (çL03_ e
_envaid) e (çL03_ e _envaid) e (çL03_ e
_esclar) e (çL03_ e
_esclar) e (çL03_ e
_reapar) e (çL03_ e _reapar) e (çL03_ e
_reconh) e (çL03_ e _reconh) e (çL03_ e
_coop) e (rL04_ E
_sup) e (rL04_ E
_imp) e (rL03_ E
_temp) e (rL04_ E
_tol) e (rL04_ E
_esp) e (ssL03_ e
_l) e (ssL02_ e
_perd) e (L05_ e
_rend) e (L06_ e
_atend) e (L06_ e
_pen) e (trL04_ E
_reit) e (rL03_ E
par) e (çL01_ e // pareça, apareça
_arref) e (çL01_ e
_beb) e (ssL02_ e
com) e (ssL02_ e
_corr) e (ssL02_ e
_morr) e (sL07_ e
_adoec) e (sL07_ e
_torc) e (sL07_ e
_viv) e (sL07_ e
_eleg) e (sL07_ e
respond) e (sL07_ e // & corres-
entend) e (sL07_ e
compreend) e (sL07_ e
interromp) e (sL07_ e
intromet) e (sL07_ e
_escond) e (sL07_ e
_bat) e (sL07_ e
_sofr) e (sL07_ e
l) e (que_ E
_p) e (quL02_ E
_s) e (quL02_ E
_) e (rguL02_ E
_enx) e (rguL02_ E
_alb) e (rguL02_ E
//endsort //endsort


_exag) e (L05_ E
_fiz) e (L05_ E
_houv) e (L05_ E
_soub) e (L05_ E


_compreend) e (L06_ e
_correspond) e (L06_ e
_entend) e (L06_ e
_estend) e (L06_ e
_respond)e (L06_ e
_vend) e (L06_ e


.group é .group é
é ''E é ''E


//sort //sort
_engl) o (bL01_ O _engl) o (bL01_ O
_esn) o (bL04_ O
_deb) o (chL04_ O
_desabr) o (chL04_ O
_r) o (gL04_ O _r) o (gL04_ O
_adv) o (gL04_ O _adv) o (gL04_ O
_ref) o (gL04_ O _ref) o (gL04_ O
_ap) oi (L01_ OI _ap) oi (L01_ OI
_esc) o (lhL02_ O
_m) o (lhL04_ O _m) o (lhL04_ O
_abs) o (lvL02_ O _abs) o (lvL02_ O
_env) o (lvL02_ O _env) o (lvL02_ O
c) o (rrL01_ o // escorra, incorra, corra, recorra
_m) o (rrL01_ o
p) ostos (_ Ost=Us# // dispostos etc.
_esn) o (bL04_ O
_esc) o (lhL02_ O
_rev) o (lvL02_ O _rev) o (lvL02_ O
_desenv) o (lvL02_ O _desenv) o (lvL02_ O
_ent) o (pL02_ O _ent) o (pL02_ O
c) o (rrL01_ o // escorra, incorra, corra, recorra
_m) o (rrL01_ o
_r) o (snL01_ O
_c) o (spL02_ O _c) o (spL02_ O
p) ostos (_ Ost=Us# // dispostos etc.
//endsort //endsort


.group ô .group ô

+ 8
- 5
phsource/ph_english_sc View File

CALL I CALL I
endphoneme endphoneme


phoneme I#
vowel starttype #@ endtype #@
ChangePhoneme(I2)
endphoneme


phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #e vowel starttype #i endtype #e


phoneme 3: phoneme 3:
vowel starttype #e endtype #@ vowel starttype #e endtype #@
length 210
length 230
ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file
ipa e ipa e
AppendPhoneme(r)
FMT(vdiph2/e@)
FMT(vowelr/e_r)
endphoneme endphoneme




length 230 length 230
ipa o ipa o
AppendPhoneme(r) AppendPhoneme(r)
FMT(vowelr/o_r)
FMT(vowelr/oo_r)
endphoneme endphoneme




phoneme i@3 phoneme i@3
vowel starttype #i endtype #@ vowel starttype #i endtype #@
ipa ɪ ipa ɪ
length 220
length 240
AppendPhoneme(r) AppendPhoneme(r)
FMT(vowelr/i_r) FMT(vowelr/i_r)
endphoneme endphoneme

BIN
phsource/vowelr/e_r View File


BIN
phsource/vwl_en_us/ar View File


+ 44
- 19
src/compiledata.cpp View File

static FILE *f_phcontents; static FILE *f_phcontents;
static FILE *f_errors = stderr; static FILE *f_errors = stderr;
static FILE *f_prog_log = NULL; static FILE *f_prog_log = NULL;
static FILE *f_report;




static FILE *f_in; static FILE *f_in;
static int duplicate_references = 0; static int duplicate_references = 0;
static int count_frames = 0; static int count_frames = 0;
static int error_count = 0; static int error_count = 0;
static int resample_count = 0;
static int then_count = 0; static int then_count = 0;
static int after_if = 0; static int after_if = 0;


int n; int n;
REF_HASH_TAB *p; REF_HASH_TAB *p;
REF_HASH_TAB **list; REF_HASH_TAB **list;
FILE *f_report;
const char *data_path; const char *data_path;
int prev_table; int prev_table;
int prev_mnemonic; int prev_mnemonic;
char fname[sizeof(path_source)+20]; char fname[sizeof(path_source)+20];


if(f_report == NULL)
return;

// make a list of all the references and sort it // make a list of all the references and sort it
list = (REF_HASH_TAB **)malloc((count_references)* sizeof(REF_HASH_TAB *)); list = (REF_HASH_TAB **)malloc((count_references)* sizeof(REF_HASH_TAB *));
if(list == NULL) if(list == NULL)
return; return;


sprintf(fname,"%scompile_report",path_source);
f_report = fopen(fname,"w");
if(f_report == NULL)
{
free(list);
return;
}

fprintf(f_report,"%d phoneme tables\n",n_phoneme_tabs);
fprintf(f_report," new total\n");
fprintf(f_report,"\n%d phoneme tables\n",n_phoneme_tabs);
fprintf(f_report," new total\n");
for(ix=0; ix<n_phoneme_tabs; ix++) for(ix=0; ix<n_phoneme_tabs; ix++)
{ {
fprintf(f_report,"%8s %3d %4d\n",phoneme_tab_list2[ix].name, phoneme_tab_list2[ix].n_phonemes, n_phcodes_list[ix]+1); fprintf(f_report,"%8s %3d %4d\n",phoneme_tab_list2[ix].name, phoneme_tab_list2[ix].n_phonemes, n_phcodes_list[ix]+1);
if((fd_temp = mkstemp(fname_temp)) >= 0) if((fd_temp = mkstemp(fname_temp)) >= 0)
{ {
close(fd_temp); close(fd_temp);
sprintf(command,"sox \"%s%s.wav\" -r %d -c 1 -w %s polyphase\n",path_source,fname,samplerate_native,fname_temp);
sprintf(command,"sox \"%s%s.wav\" -c1 -t wav %s rate -h %d\n",path_source,fname,fname_temp,samplerate_native);
if(system(command) < 0) if(system(command) < 0)
{ {
error("Failed to resample: %s",command); error("Failed to resample: %s",command);
remove(fname_temp);
return(0); return(0);
} }
} }


if(GetFileLength(fname_temp) <= 0)
{
error("Failed to resample: %s",command);
remove(fname_temp);
return(0);
}

f = fopen(fname_temp,"rb"); f = fopen(fname_temp,"rb");
if(f == NULL) if(f == NULL)
{ {
error("Can't read temp file: %s",fname_temp); error("Can't read temp file: %s",fname_temp);
return(0); return(0);
} }
if(f_report != NULL)
fprintf(f_report, "resampled %s\n", fname);
resample_count++;
resample_wav = 1; resample_wav = 1;
fseek(f,40,SEEK_SET); // skip past the WAV header, up to before "data length" fseek(f,40,SEEK_SET); // skip past the WAV header, up to before "data length"
} }
wxString report; wxString report;
wxString report_dict; wxString report_dict;


#ifdef MAKE_ENVELOPES
make_envs();
#endif

n_envelopes = 0; n_envelopes = 0;
error_count = 0; error_count = 0;
memset(markers_used,0,sizeof(markers_used));
memset(markers_used,0,sizeof(markers_used));


f_errors = stderr; f_errors = stderr;


if((f_errors = fopen_log(f_errors,fname,"w")) == NULL) if((f_errors = fopen_log(f_errors,fname,"w")) == NULL)
f_errors = stderr; f_errors = stderr;


sprintf(fname,"%s%s",path_source,"compile_report");
f_report = fopen_log(f_errors, fname,"w");


sprintf(fname,"%s/%s",path_home,"phondata-manifest"); sprintf(fname,"%s/%s",path_home,"phondata-manifest");
if((f_phcontents = fopen_log(f_phcontents,fname,"w")) == NULL) if((f_phcontents = fopen_log(f_phcontents,fname,"w")) == NULL)
f_phcontents = stderr; f_phcontents = stderr;
fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references); fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references);
fclose(f_in); fclose(f_in);
fclose(f_phdata); fclose(f_phdata);
if(f_errors != stderr)
fclose(f_errors);
if(f_prog_log != NULL) if(f_prog_log != NULL)
fclose(f_prog_log); fclose(f_prog_log);
fclose(f_phindex); fclose(f_phindex);
LoadPhData(); LoadPhData();
LoadVoice(voice_name2,0); LoadVoice(voice_name2,0);



CompileReport(); CompileReport();
report_dict = CompileAllDictionaries(); report_dict = CompileAllDictionaries();
//#ifdef deleted
DrawEnvelopes(); DrawEnvelopes();
//#endif


if(gui_flag) if(gui_flag)
{ {
delete progress; delete progress;
} }


report.Printf(_T("Compiled phonemes: %d errors."),error_count);
if(resample_count > 0)
{
fprintf(f_errors, "\n%d WAV files resampled to %d Hz\n", resample_count, samplerate_native);
report.Printf(_T("Compiled phonemes: %d errors, %d files resampled to %d Hz. "),error_count, resample_count, samplerate_native);
}
else
{
report.Printf(_T("Compiled phonemes: %d errors."),error_count);
}

if(f_errors != stderr)
fclose(f_errors);

if(error_count > 0) if(error_count > 0)
{ {
report += _T(" See file: 'phsource/error_log'."); report += _T(" See file: 'phsource/error_log'.");
char buf[sizeof(path_source)+120]; char buf[sizeof(path_source)+120];


error_count = 0; error_count = 0;
resample_count = 0;


sprintf(fname_errors,"%s%s",path_source,"error_intonation"); sprintf(fname_errors,"%s%s",path_source,"error_intonation");
if((f_errors = fopen(fname_errors,"w")) == NULL) if((f_errors = fopen(fname_errors,"w")) == NULL)
fwrite(tune_data, n_tune_names, sizeof(TUNE), f_out); fwrite(tune_data, n_tune_names, sizeof(TUNE), f_out);
fclose(f_in); fclose(f_in);
fclose(f_out); fclose(f_out);
fclose(f_errors);


report.Printf(_T("Compiled %d intonation tunes: %d errors."),n_tune_names, error_count); report.Printf(_T("Compiled %d intonation tunes: %d errors."),n_tune_names, error_count);
wxLogStatus(report); wxLogStatus(report);

+ 6
- 2
src/compiledict.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *


MNEM_TAB mnem_rules[] = { MNEM_TAB mnem_rules[] = {
{"unpr", 0x01}, {"unpr", 0x01},
{"w_alt1", 0x11},
{"w_alt2", 0x12}, {"w_alt2", 0x12},
{"w_alt3", 0x13}, {"w_alt3", 0x13},
// {"w_alt4", 0x14},
{"w_alt", 0x11}, // note: put longer names before their sub-strings {"w_alt", 0x11}, // note: put longer names before their sub-strings
{"p_alt1", 0x21},
{"p_alt2", 0x22}, {"p_alt2", 0x22},
{"p_alt3", 0x23}, {"p_alt3", 0x23},
// {"p_alt4", 0x24},
{"p_alt", 0x21}, {"p_alt", 0x21},
{NULL, -1} }; {NULL, -1} };


items[n_items] = p_start = p; items[n_items] = p_start = p;
while((*p & 0xff) > ' ') while((*p & 0xff) > ' ')
{ {
if (*p == '_') *p = ' '; // allow '_' for word break
if (*p == '_') *p = ' '; // allow '_' for word break
p++; p++;
} }
*p++ = 0; *p++ = 0;

+ 10
- 0
src/dictionary.cpp View File



// set up indices into data_dictrules // set up indices into data_dictrules
InitGroups(tr); InitGroups(tr);
if(tr->groups1[0] == NULL)
{
fprintf(stderr,"Error in %s_rules, no default rule group\n",name);
}


// set up hash table for data_dictlist // set up hash table for data_dictlist
p = &(tr->data_dictlist[8]); p = &(tr->data_dictlist[8]);
if(word_flags & FLAG_UNPRON_TEST) if(word_flags & FLAG_UNPRON_TEST)
return(match1.end_type | 1); return(match1.end_type | 1);


#ifdef deleted
// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
if((match1.end_type & SUFX_UNPRON) && !(word_flags & FLAG_SUFFIX_REMOVED))
return(match1.end_type);
#endif

if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0)) if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0))
{ {
// an instruction to switch language, return immediately so we can re-translate // an instruction to switch language, return immediately so we can re-translate

+ 6
- 2
src/espeak.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2006 to 2007 by Jonathan Duddington *
* Copyright (C) 2006 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
fclose(f_text); fclose(f_text);
} }


espeak_Synchronize();
if(espeak_Synchronize() != EE_OK)
{
fprintf(stderr, "espeak_Synchronize() failed, maybe error when opening output device\n");
exit(4);
}


if(f_phonemes_out != stdout) if(f_phonemes_out != stdout)
fclose(f_phonemes_out); // needed for WinCE fclose(f_phonemes_out); // needed for WinCE

+ 2
- 2
src/espeakedit.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
if(len > 0) if(len > 0)
{ {
if(len > 1500) if(len > 1500)
len = 1500; // restrict length to pppppevent crash in wxLogMessage()
len = 1500; // restrict length to prevent crash in wxLogMessage()
msg = (char *)malloc(len+1); msg = (char *)malloc(len+1);
if(msg != NULL) if(msg != NULL)
{ {

+ 3
- 3
src/prosodydisplay.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
} }
y1 = p->pitch1; y1 = p->pitch1;
y2 = p->pitch2; y2 = p->pitch2;
sprintf(buf,"Stress %s%d Amp %2d LenMod %2d Pitch %3d %3d %s PhFlags %.2x ",
emphasized,p->stresslevel&0x7,p->amp,p->length,y1,y2,name,p->ph->phflags);
sprintf(buf,"Stress %s%d Amp %2d StdLength %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x ",
emphasized,p->stresslevel&0x7,p->amp,p->std_length*2, p->length,y1,y2,name,p->ph->phflags);
wxLogStatus(wxString(buf,wxConvLocal)); wxLogStatus(wxString(buf,wxConvLocal));
} }



+ 17
- 6
src/speak_lib.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
static int synchronous_mode = 1; static int synchronous_mode = 1;
static int out_samplerate = 0; static int out_samplerate = 0;
static int voice_samplerate = 22050; static int voice_samplerate = 22050;
static espeak_ERROR err = EE_OK;


t_espeak_callback* synth_callback = NULL; t_espeak_callback* synth_callback = NULL;
int (* uri_callback)(int, const char *, const char *) = NULL; int (* uri_callback)(int, const char *, const char *) = NULL;
sleep(1); sleep(1);
} }
out_samplerate = voice_samplerate; out_samplerate = voice_samplerate;
wave_init(voice_samplerate);
if(!wave_init(voice_samplerate))
{
err = EE_INTERNAL_ERROR;
return(-1);
}
wave_set_callback_is_output_enabled( fifo_is_command_enabled); wave_set_callback_is_output_enabled( fifo_is_command_enabled);
my_audio = wave_open("alsa"); my_audio = wave_open("alsa");
event_init(); event_init();
} }


SHOW_TIME("LEAVE dispatch_audio\n"); SHOW_TIME("LEAVE dispatch_audio\n");
return (a_wave_can_be_played==0); // 1 = stop synthesis
return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error
} }




int param; int param;
int result; int result;


err = EE_OK;
LoadConfig(); LoadConfig();
WavegenInit(22050,0); // 22050 WavegenInit(22050,0); // 22050
if((result = LoadPhData()) != 1) if((result = LoadPhData()) != 1)
{ {
#ifdef USE_ASYNC #ifdef USE_ASYNC
finished = create_events((short *)outbuf, length, event_list, a_write_pos); finished = create_events((short *)outbuf, length, event_list, a_write_pos);
if(finished < 0)
return EE_INTERNAL_ERROR;
length = 0; // the wave data are played once. length = 0; // the wave data are played once.
#endif #endif
} }
#ifdef USE_ASYNC #ifdef USE_ASYNC
if (my_mode==AUDIO_OUTPUT_PLAYBACK) if (my_mode==AUDIO_OUTPUT_PLAYBACK)
{ {
dispatch_audio(NULL, 0, NULL); // TBD: test case
if(dispatch_audio(NULL, 0, NULL) < 0) // TBD: test case
return err = EE_INTERNAL_ERROR;
} }
else else
{ {


ESPEAK_API espeak_ERROR espeak_Synchronize(void) ESPEAK_API espeak_ERROR espeak_Synchronize(void)
{//============================================= {//=============================================
espeak_ERROR berr = err;
#ifdef USE_ASYNC #ifdef USE_ASYNC
SHOW_TIME("espeak_Synchronize > ENTER"); SHOW_TIME("espeak_Synchronize > ENTER");
while (espeak_IsPlaying()) while (espeak_IsPlaying())
usleep(20000); usleep(20000);
} }
#endif #endif
err = EE_OK;
SHOW_TIME("espeak_Synchronize > LEAVE"); SHOW_TIME("espeak_Synchronize > LEAVE");
return EE_OK;
return berr;
} // end of espeak_Synchronize } // end of espeak_Synchronize





+ 2
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.46.34 12.Feb.13";
const char *version_string = "1.46.35 14.Feb.13";
const int version_phdata = 0x014631; const int version_phdata = 0x014631;


int option_device_number = -1; int option_device_number = -1;
memcpy(&worddata->prev_vowel, &plist[0], sizeof(PHONEME_LIST)); memcpy(&worddata->prev_vowel, &plist[0], sizeof(PHONEME_LIST));
} }


plist->std_length = phdata->pd_param[i_SET_LENGTH];
} // end of InterpretPhoneme } // end of InterpretPhoneme





+ 1
- 0
src/synthesize.h View File

unsigned char newword; // bit 0=start of word, bit 1=end of clause, bit 2=start of sentence unsigned char newword; // bit 0=start of word, bit 1=end of clause, bit 2=start of sentence
unsigned char pitch1; unsigned char pitch1;
unsigned char pitch2; unsigned char pitch2;
unsigned char std_length;
} PHONEME_LIST; } PHONEME_LIST;





+ 12
- 1
src/translate.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
return(0); return(0);
} }


#ifdef deleted
// ?? allow $unpr while translating rules, not just on initial FLAG_UNPRON_TEST
if(end_type & SUFX_UNPRON)
{
phonemes[0] = 0; // discard and retranslate as individual letters
SpeakIndividualLetters(tr, wordx, phonemes, 0);
strcpy(word_phonemes, phonemes);
return(0);
}
#endif

if((phonemes[0] == 0) && (end_phonemes[0] == 0)) if((phonemes[0] == 0) && (end_phonemes[0] == 0))
{ {
int wc; int wc;

+ 1
- 1
src/translate.h View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2011 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *

+ 8
- 7
src/wave.cpp View File

static int pulse_running; static int pulse_running;


// wave.cpp (this file) // wave.cpp (this file)
void wave_port_init(int);
int wave_port_init(int);
void* wave_port_open(const char* the_api); void* wave_port_open(const char* the_api);
size_t wave_port_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize); size_t wave_port_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize);
int wave_port_close(void* theHandler); int wave_port_close(void* theHandler);


// wave_pulse.cpp // wave_pulse.cpp
int is_pulse_running(); int is_pulse_running();
void wave_pulse_init(int);
int wave_pulse_init(int);
void* wave_pulse_open(const char* the_api); void* wave_pulse_open(const char* the_api);
size_t wave_pulse_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize); size_t wave_pulse_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize);
int wave_pulse_close(void* theHandler); int wave_pulse_close(void* theHandler);
int wave_pulse_get_remaining_time(uint32_t sample, uint32_t* time); int wave_pulse_get_remaining_time(uint32_t sample, uint32_t* time);


// wrappers // wrappers
void wave_init(int srate) {
int wave_init(int srate) {
pulse_running = is_pulse_running(); pulse_running = is_pulse_running();


if (pulse_running) if (pulse_running)
wave_pulse_init(srate);
return wave_pulse_init(srate);
else else
wave_port_init(srate);
return wave_port_init(srate);
} }


void* wave_open(const char* the_api) { void* wave_open(const char* the_api) {
//<wave_init //<wave_init


// TBD: the arg could be "alsa", "oss",... // TBD: the arg could be "alsa", "oss",...
void wave_init(int srate)
int wave_init(int srate)
{ {
ENTER("wave_init"); ENTER("wave_init");
PaError err; PaError err;
{ {
SHOW_TIME("wave_init > Failed to initialise the PortAudio sound"); SHOW_TIME("wave_init > Failed to initialise the PortAudio sound");
} }
return err == paNoError;
} }


//> //>
// notdef USE_PORTAUDIO // notdef USE_PORTAUDIO




void wave_init(int srate) {}
int wave_init(int srate) {}
void* wave_open(const char* the_api) {return (void *)1;} void* wave_open(const char* the_api) {return (void *)1;}
size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;}
int wave_close(void* theHandler) {return 0;} int wave_close(void* theHandler) {return 0;}

+ 1
- 1
src/wave.h View File



extern int option_device_number; extern int option_device_number;


extern void wave_init(int samplerate);
extern int wave_init(int samplerate);
// TBD: the arg could be "alsa", "oss",... // TBD: the arg could be "alsa", "oss",...
extern void* wave_open(const char* the_api); extern void* wave_open(const char* the_api);



+ 3
- 3
src/wave_pulse.cpp View File

//> //>
//<wave_init //<wave_init


void wave_init(int srate)
int wave_init(int srate)
{ {
ENTER("wave_init"); ENTER("wave_init");


stream = NULL; stream = NULL;
wave_samplerate = srate; wave_samplerate = srate;


pulse_open();
return pulse_open() == PULSE_OK;
} }


//> //>
// notdef USE_PULSEAUDIO // notdef USE_PULSEAUDIO




void wave_init() {}
int wave_init() {}
void* wave_open(const char* the_api) {return (void *)1;} void* wave_open(const char* the_api) {return (void *)1;}
size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;}
int wave_close(void* theHandler) {return 0;} int wave_close(void* theHandler) {return 0;}

+ 4
- 3
src/wave_sada.cpp View File

// //
//<wave_init //<wave_init


void wave_init(int srate) {
int wave_init(int srate) {
ENTER("wave_init"); ENTER("wave_init");


audio_info_t ainfo; audio_info_t ainfo;
SHOW("wave_init() sun_audio_fd: %d\n", sun_audio_fd); SHOW("wave_init() sun_audio_fd: %d\n", sun_audio_fd);


if (sun_audio_fd < 0) { if (sun_audio_fd < 0) {
return;
return(0);
} }


ioctl(sun_audio_fd, AUDIO_GETINFO, &ainfo); ioctl(sun_audio_fd, AUDIO_GETINFO, &ainfo);
if (ioctl(sun_audio_fd, AUDIO_SETINFO, &ainfo) == -1) { if (ioctl(sun_audio_fd, AUDIO_SETINFO, &ainfo) == -1) {
SHOW("wave_init() failed to set audio params: %s\n", strerror(errno)); SHOW("wave_init() failed to set audio params: %s\n", strerror(errno));
close(sun_audio_fd); close(sun_audio_fd);
return;
return(0);
} }
return(1);
} }


//> //>

Loading…
Cancel
Save