Conflicts: dictsource/dict_phonemes phsource/compile_reportmaster
ñ 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 |
_#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 |
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: |
_) اصغر (آ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 ّ |
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 |
.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 ô |
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 |
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); |
/*************************************************************************** | /*************************************************************************** | ||||
* 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; |
// 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 |
/*************************************************************************** | /*************************************************************************** | ||||
* 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 |
/*************************************************************************** | /*************************************************************************** | ||||
* 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) | ||||
{ | { |
/*************************************************************************** | /*************************************************************************** | ||||
* 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)); | ||||
} | } | ||||
/*************************************************************************** | /*************************************************************************** | ||||
* 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 | ||||
#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 | ||||
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; | ||||
/*************************************************************************** | /*************************************************************************** | ||||
* 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; |
/*************************************************************************** | /*************************************************************************** | ||||
* 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 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;} |
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); | ||||
//> | //> | ||||
//<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;} |
// | // | ||||
//<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); | |||||
} | } | ||||
//> | //> |