Fix to UTF-8/8-bit character set recognition. lang=de, more additions to translation rules, changed phoneme name [OI] to [OY]. lang=it, turned of "syntactic doubling" (temporarily?) git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@51 d46cf337-b52f-0410-862d-fd96e6ae7743master
_6 'zEks | _6 'zEks | ||||
_7 'zi:b@n | _7 'zi:b@n | ||||
_8 '_axt | _8 '_axt | ||||
_9 'nOIn | |||||
_9 'nOYn | |||||
_10 'tse:n | _10 'tse:n | ||||
_11 '_Elf | _11 '_Elf | ||||
_12 'tsvWlf | _12 'tsvWlf | ||||
_16 'zEktse:n | _16 'zEktse:n | ||||
_17 'zi:btse:n | _17 'zi:btse:n | ||||
_18 '_axttse:n | _18 '_axttse:n | ||||
_19 'nOIntse:n | |||||
_19 'nOYntse:n | |||||
_2X 'tsvantsIC | _2X 'tsvantsIC | ||||
_3X 'd@-*aItsIC | _3X 'd@-*aItsIC | ||||
_4X 'fi:*tsIC | _4X 'fi:*tsIC | ||||
_6X 'zEktsIC | _6X 'zEktsIC | ||||
_7X 'zi:btsIC | _7X 'zi:btsIC | ||||
_8X '_axttsIC | _8X '_axttsIC | ||||
_9X 'nOIntsIC | |||||
_9X 'nOYntsIC | |||||
_0C 'hUnd3t | _0C 'hUnd3t | ||||
_0M1 'taUz@nt | _0M1 'taUz@nt | ||||
_1M1 'taUz@nt // no '1' before thousand | _1M1 'taUz@nt // no '1' before thousand | ||||
bde bEnd@ | bde bEnd@ | ||||
bzw b@tsi:hUNsvaIz@ | bzw b@tsi:hUNsvaIz@ | ||||
chr k@-*Istu:s | chr k@-*Istu:s | ||||
dm d'OItSm,A:*k $capital $only $abbrev | |||||
dm d'OYtSm,A:*k $capital $only $abbrev | |||||
dr dOkt'o:* | dr dOkt'o:* | ||||
evtl e:vEntu:'El | evtl e:vEntu:'El | ||||
od o:d3 | od o:d3 | ||||
fr f@-*aU | fr f@-*aU | ||||
frl f@-*OIlaIn | |||||
frl f@-*OYlaIn | |||||
hr hE* | hr hE* | ||||
hrsg hE*'aUsge:b3 | hrsg hE*'aUsge:b3 | ||||
inkl Inklu:s'i:v@ | inkl Inklu:s'i:v@ | ||||
bis bIs $u+ $pause | bis bIs $u+ $pause | ||||
da $u+ | da $u+ | ||||
durch $u+ $pause | durch $u+ $pause | ||||
für fy:* $u+ $pause | |||||
für fy:* $u+ $pause $only | |||||
gegen ge:g@n $u+ $pause | gegen ge:g@n $u+ $pause | ||||
gegend ge:g@nt | gegend ge:g@nt | ||||
hin hIn | hin hIn | ||||
extrem Ekstr'e:m | extrem Ekstr'e:m | ||||
feuerrot $3 | feuerrot $3 | ||||
friedvoll f@-*'i:tf,Ol | |||||
furchen fU*C@n | |||||
furie $alt | furie $alt | ||||
geben ge:b@n | geben ge:b@n | ||||
miteinander $1 | miteinander $1 | ||||
mitte mIt@ | mitte mIt@ | ||||
modell mo:d'El | modell mo:d'El | ||||
monoton $3 | |||||
monsun $2 | |||||
montag mo:ntA:k | |||||
mors mO*s | |||||
mumie $alt | mumie $alt | ||||
nebulos $3 | nebulos $3 | ||||
negligier ne:gli:Z'i:* | |||||
negligent ne:gli:dZ'Ent | |||||
oberen o:b@*@n | oberen o:b@*@n | ||||
oboe o:bo:@ | oboe o:bo:@ | ||||
ok o:k'e: | ok o:k'e: | ||||
passage pas'aZ@ | passage pas'aZ@ | ||||
perplex $2 | |||||
petersilie $alt | petersilie $alt | ||||
pinie $alt | pinie $alt | ||||
planet plan'Et | planet plan'Et | ||||
pochs pOxs | pochs pOxs | ||||
präsident $3 | präsident $3 | ||||
prämie $alt | prämie $alt | ||||
problem p@-*Obl'e:m | |||||
privatisier p@-*i:vati:z'i:* | |||||
problematisier p@-*o:ble:m'a:tIzi:* | |||||
reliquie $alt | reliquie $alt | ||||
rupie $alt | rupie $alt |
tr) ain En | tr) ain En | ||||
akqu %akv | akqu %akv | ||||
@A) al (_ 'A:l | @A) al (_ 'A:l | ||||
g) al (_ 'A:l | |||||
k) al (_ 'A:l | k) al (_ 'A:l | ||||
n) al (_ 'A:l | n) al (_ 'A:l | ||||
&kan) al (_ ,A:l | &kan) al (_ ,A:l | ||||
&sign) al (_ ,A:l | &sign) al (_ ,A:l | ||||
r) al (_ 'A:l | r) al (_ 'A:l | ||||
t) al (_ 'A:l | |||||
@) an (_ 'A:n | @) an (_ 'A:n | ||||
ein) an (der 'an | ein) an (der 'an | ||||
@) ant (_ 'ant | @) ant (_ 'ant | ||||
_) anthropo ,ant@-*o:p%o: | _) anthropo ,ant@-*o:p%o: | ||||
_) anti (@P4 ,anti: | _) anti (@P4 ,anti: | ||||
anier (_N 'A:ni:3 | anier (_N 'A:ni:3 | ||||
_) an (ten an | |||||
_) an (th an | |||||
_) appe (ll@ ,apE | _) appe (ll@ ,apE | ||||
_) archa (i %a*CA | _) archa (i %a*CA | ||||
arier (_N 'A:*i:3 | arier (_N 'A:*i:3 | ||||
_) ch (or k | _) ch (or k | ||||
bre) ch (en x | bre) ch (en x | ||||
chro k@-*o: | |||||
nä) chs (t Cs | nä) chs (t Cs | ||||
c (ie s | c (ie s | ||||
pla) c (ie ts | pla) c (ie ts | ||||
dt t | dt t | ||||
ddt t | ddt t | ||||
_) daten (@P5 d'at@n | |||||
_) deal _^_EN | _) deal _^_EN | ||||
_) deme de:mE | _) deme de:mE | ||||
demo (g de:mo: | demo (g de:mo: | ||||
e (x E | e (x E | ||||
ei aI | ei aI | ||||
eu OI | |||||
eu OY | |||||
ey (_ e: | ey (_ e: | ||||
eb (t_ e:p | eb (t_ e:p | ||||
e (gt_+ e: | e (gt_+ e: | ||||
&) el (_ @l | &) el (_ @l | ||||
&) eln (_S1 n | &) eln (_S1 n | ||||
&) elnd (_S2 nt | |||||
&) e (lt_ @ | &) e (lt_ @ | ||||
&) em (_NS2 @m | &) em (_NS2 @m | ||||
&) em (_ 'e:m | &) em (_ 'e:m | ||||
_) end (C@P3 'Ent | _) end (C@P3 'Ent | ||||
_) endo (@ ,Endo: | _) endo (@ ,Endo: | ||||
@) en (_S2 @n | @) en (_S2 @n | ||||
&) end (_N @nt | |||||
&) end (_NS3 @nt | |||||
&) ende (_S4 @nd@ | |||||
&) endem (_S5 @nd@m | |||||
&) enden (_S5 @nd@n | |||||
&) ender (_S5 @nd3 | |||||
&) endes (_S5 @nd@s | |||||
&) end (_ @nd | &) end (_ @nd | ||||
ier) end (_NS3 @nt | ier) end (_NS3 @nt | ||||
ier) end (_ @nd | ier) end (_ @nd | ||||
@) er (r E* | @) er (r E* | ||||
@) er (ti E* | @) er (ti E* | ||||
@) er (nC E* | @) er (nC E* | ||||
@) er (_S2 3 | |||||
@) er (_S2 3 | |||||
&) ere (_S3 @*@ | &) ere (_S3 @*@ | ||||
&) erem (_S4 @*@m | &) erem (_S4 @*@m | ||||
&) eren (_S4 @*@n | &) eren (_S4 @*@n | ||||
_) ent (@P3 _|%Ent | _) ent (@P3 _|%Ent | ||||
_) enten Ent@n | _) enten Ent@n | ||||
_) ent (er Ent | _) ent (er Ent | ||||
t) en (t En | |||||
qu) en (tA En | |||||
&) en (tum @n | |||||
&) e (nz_ 'E | &) e (nz_ 'E | ||||
_) epi (@ ,e:pi: | _) epi (@ ,e:pi: | ||||
_) epi (sk e:pI | _) epi (sk e:pI | ||||
_) flug fl'u:g | _) flug fl'u:g | ||||
foto fo:to: | foto fo:to: | ||||
_) free _^_EN | _) free _^_EN | ||||
_) feudal f%OIdA:l | |||||
_) feuer (@ fOI@* | |||||
_) feudal f%OYdA:l | |||||
_) feuer (@ fOY@* | |||||
_) frev f@-*e:f | |||||
_) froh (@P4 f@-*'o: | |||||
_) frohlock f@-*o:l'Ok | |||||
_) fung (A fUNg | |||||
.group g | .group g | ||||
_) g (_ ge: | _) g (_ ge: | ||||
i (i i:_! | i (i i:_! | ||||
@) ik (_ 'i:k | |||||
s) ik (_ 'i:k | |||||
@r) ik (_ Ik | |||||
br) ik (_ 'i:k | |||||
@t) ik (_ =i:k | @t) ik (_ =i:k | ||||
polit) ik 'i:k | polit) ik 'i:k | ||||
@) ik (el_ 'i:k | @) ik (el_ 'i:k | ||||
_) inter Int@* | _) inter Int@* | ||||
@) ion (_ j'o:n | @) ion (_ j'o:n | ||||
@) io (n Io: | @) io (n Io: | ||||
io Io: | |||||
@) is (_ Is | @) is (_ Is | ||||
&) isch (_ =IS | &) isch (_ =IS | ||||
is (mus_ 'Is | is (mus_ 'Is | ||||
ieh i: | ieh i: | ||||
@) ie (_ 'i: | @) ie (_ 'i: | ||||
&) ie (ll_ i:,E | |||||
&) ie (ll_ I'E | |||||
&) ie (r_ 'i: | &) ie (r_ 'i: | ||||
u) ie (r_ _|'i: | u) ie (r_ _|'i: | ||||
&) ie (rlich 'i: | &) ie (rlich 'i: | ||||
mitt (eC mIt | mitt (eC mIt | ||||
mitt (l mIt | mitt (l mIt | ||||
_) mo (rb m%O | _) mo (rb m%O | ||||
_) mono (@ m,o:no: | |||||
_) motor m%o:to:* | _) motor m%o:to:* | ||||
_) ms _^_EN | _) ms _^_EN | ||||
musik m%u:zi:k | musik m%u:zi:k | ||||
ng N | ng N | ||||
// ng (A Ng | // ng (A Ng | ||||
// ng (l Ng | // ng (l Ng | ||||
o) ng (e ng | |||||
o) ng (A Ng | |||||
ng (r Ng | ng (r Ng | ||||
nk Nk | nk Nk | ||||
nk (A nk | nk (A nk | ||||
fu) nk Nk | |||||
nce (_ _^_EN | nce (_ _^_EN | ||||
_) ne (b ne: | |||||
nebeneina (nd n,e:b@n_|aIn'a | nebeneina (nd n,e:b@n_|aIn'a | ||||
_) ne (g ne: | |||||
neglig ne:gli:Z | |||||
neglige ne:gli:Z | |||||
&in) nen (_S3 @n | &in) nen (_S3 @n | ||||
&) ness _^_EN | &) ness _^_EN | ||||
news _^_EN | news _^_EN | ||||
_) ob (jek %Op | _) ob (jek %Op | ||||
_) obst (reP4 'o:pst | _) obst (reP4 'o:pst | ||||
@) o (g_ 'o: | @) o (g_ 'o: | ||||
t) ogen (_ o:g'e:n | |||||
@) o (gin_ 'o: | @) o (gin_ 'o: | ||||
o (l_ 'o: | |||||
o (m_ 'o: | o (m_ 'o: | ||||
@A) o (n_ 'o: | @A) o (n_ 'o: | ||||
@) oo (_ u: | @) oo (_ u: | ||||
z) oo (m u: | z) oo (m u: | ||||
&t) or (_ =o:* | &t) or (_ =o:* | ||||
&) oren (_ 'o:*@n | &) oren (_ 'o:*@n | ||||
oso (_ 'o:zo: | |||||
st) o (ss o: | st) o (ss o: | ||||
passagie pasaZ'i: | passagie pasaZ'i: | ||||
_) pay _^_EN | _) pay _^_EN | ||||
_) peri p,e:*i: | _) peri p,e:*i: | ||||
_) perio p,e:*Io: | |||||
_) periphe p,e:*i:fe: | _) periphe p,e:*i:fe: | ||||
_) personen (@P8 pE*s'o:n@n | |||||
philie f'i:li: | philie f'i:li: | ||||
_) pro (@ %p@-*o: | _) pro (@ %p@-*o: | ||||
_) poly (@P4 p,o:ly: | _) poly (@P4 p,o:ly: | ||||
partei p%a*taI | partei p%a*taI | ||||
_) perfe (k p%E*fE | _) perfe (k p%E*fE | ||||
_) polik p'o:li:k | |||||
_) po (lit p%o: | |||||
pool _^_EN | pool _^_EN | ||||
power _^_EN | power _^_EN | ||||
_) preß (@P4 p@-*'Es | _) preß (@P4 p@-*'Es | ||||
_) prinzipien (@P9 p@-*Ints'i:pI@ | _) prinzipien (@P9 p@-*Ints'i:pI@ | ||||
_) privat (@P6 p@-*i:v'A:t | |||||
problem p@-*%o:ble:m | |||||
_) psycho (@P6 ps,y:Co: | _) psycho (@P6 ps,y:Co: | ||||
_) psycho (ti psy:C'o: | _) psycho (ti psy:C'o: | ||||
_) pu (e p%u: | _) pu (e p%u: | ||||
_) teen _^_EN | _) teen _^_EN | ||||
thrill _^_EN | thrill _^_EN | ||||
_pa) th t | _pa) th t | ||||
the (era te: | |||||
@) tient (_ tsI'Ent | @) tient (_ tsI'Ent | ||||
@) tion tsI,o:n | @) tion tsI,o:n | ||||
@) tion (_ tsI'o:n | @) tion (_ tsI'o:n | ||||
_) z (_ tsEt | _) z (_ tsEt | ||||
z ts | z ts | ||||
z) z | z) z | ||||
ziell tsj'El | |||||
_) zer (@ %tsE* | |||||
_) zentral (@P7 tsEnt@-*'A:l | |||||
_) zentral (i tsEnt@-*al | |||||
_) zer (@P3 tsE* | |||||
_) zere (b tse:*e: | |||||
_) zere (m tse:*e: | |||||
ziell tsj'El | |||||
_) zie (ge@P3 ts'aI | |||||
_) zeit (@P4 ts'aIt | |||||
_) ziel (@P4 ts'i:l | |||||
_) zier (@P4 ts'i:* | |||||
_) zigaretten (@P10 tsi:ga*'Et@n | |||||
_) zigeu tsi:g'OY | |||||
_) zu (C@P2 ts%u: | _) zu (C@P2 ts%u: | ||||
_) zu (nC tsU | _) zu (nC tsU | ||||
_) zurück (@P6 tsu:*'yk | _) zurück (@P6 tsu:*'yk | ||||
.group ä | .group ä | ||||
ä E: | ä E: | ||||
äh (+ e: | äh (+ e: | ||||
äu OI | |||||
äu OY | |||||
ä (C% E | ä (C% E | ||||
ä (CC E | ä (CC E | ||||
ö Y: | ö Y: | ||||
öh (+ Y: | öh (+ Y: | ||||
ö (_ 'Y: | |||||
ö (C% W | ö (C% W | ||||
ö (CC W | ö (CC W | ||||
ö (sch W | ö (sch W | ||||
.group | .group | ||||
é e: | |||||
ée 'e: | |||||
é (_ 'e: | |||||
, (D kOma | , (D kOma | ||||
/ slaS | / slaS | ||||
% p@-*o:ts'Ent | % p@-*o:ts'Ent | ||||
$ dOl@ | $ dOl@ | ||||
€ OI*o: | |||||
€ OY*o: | |||||
£ paUnd | £ paUnd | ||||
. pUnkt | . pUnkt |
3 @ @- a A A: aI aU | 3 @ @- a A A: aI aU | ||||
E E2 E: e: I i: O o: | E E2 E: e: I i: O o: | ||||
OI U u: W y y: Y: | |||||
OY U u: W y y: Y: | |||||
* : ; b C C2 d D | * : ; b C C2 d D | ||||
dZ f g h j k l m | dZ f g h j k l m | ||||
* : b c C d dZ f | * : b c C d dZ f | ||||
g h j J k l m n | g h j J k l m n | ||||
N n^ p R s S s2 t | N n^ p R s S s2 t | ||||
tS ts v z Z z2 | |||||
tS ts v z Z | |||||
Dictionary it_dict | Dictionary it_dict | ||||
l- l: o o: oU r- r: u | l- l: o o: oU r- r: u | ||||
u: | u: | ||||
* b c d d; dZ f g | |||||
h j k l l^ m n N | |||||
n^ p r R R^ R^/ s S | |||||
t t; tS ts v w x z | |||||
Z | |||||
* b d d; dZ f g h | |||||
j k l l^ m n N n^ | |||||
p r R R^ R^/ s S t | |||||
t; tS ts v w x z Z | |||||
Dictionary sv_dict | Dictionary sv_dict |
uninterest Vn'Int@r@st | uninterest Vn'Int@r@st | ||||
university ju:nIv'3:sItI2 | university ju:nIv'3:sItI2 | ||||
unite ju:n'aIt | unite ju:n'aIt | ||||
unless Vnl'Es | |||||
unread Vnr'Ed $only | unread Vnr'Ed $only | ||||
unsure VnS'U@ | unsure VnS'U@ | ||||
untidy Vnt'aIdI2 | untidy Vnt'aIdI2 |
C) y (abl I2 | C) y (abl I2 | ||||
y (y | y (y | ||||
y (C I | y (C I | ||||
C) y I2 | |||||
y (Be# aI | y (Be# aI | ||||
@C) y (Be# aI | @C) y (Be# aI | ||||
ye (_ aI | ye (_ aI |
_. pont | _. pont | ||||
% sa:zAle:k | % sa:zAle:k | ||||
@ kukAts | @ kukAts | ||||
€ Eu*o | |||||
€ EuRo | |||||
+ plus | + plus | ||||
§ p'A*AgRAfuS | |||||
§ pRARAgRAfuS | |||||
C) ds tS | C) ds tS | ||||
ds (C tS | ds (C tS | ||||
A) ds (A tS: | A) ds (A tS: | ||||
dsz dz | |||||
dsz ts | |||||
dsz (C ts | dsz (C ts | ||||
A) dsz (A ts: | A) dsz (A ts: | ||||
dz dz | dz dz | ||||
_) semmelweiss sEmmElvEjs | _) semmelweiss sEmmElvEjs | ||||
engel) s s | engel) s s | ||||
_) saar sAAR | |||||
_) saar sa:R | |||||
.group t | .group t | ||||
zs Z | zs Z | ||||
zzs Z: | zzs Z: | ||||
gá) z (sz z2 // don't devoice [z] to [s] | |||||
gé) z (sz z2 | |||||
há) z (so z2 | |||||
há) z (sz z2 | |||||
lá) z (sz z2 | |||||
má) zc (sz z2 | |||||
mé) zc (sz z2 | |||||
nehé) z (sé z2 | |||||
tű) z (sz z2 | |||||
ví) z (sz z2 | |||||
ga) zs (ág z2S | |||||
_gá) zsz (ámla z2s: | |||||
_gá) zsz (ámlá z2s: | |||||
_ré) zs (ó z2S | |||||
_vá) zs (or z2S | |||||
_szára) zs (ág z2S | |||||
_kö) zs (ég z2S | |||||
gá) z (sz z // don't devoice [z] to [s] | |||||
gé) z (sz z | |||||
há) z (so z | |||||
há) z (sz z | |||||
lá) z (sz z | |||||
má) zc (sz z | |||||
mé) zc (sz z | |||||
nehé) z (sé z | |||||
tű) z (sz z | |||||
ví) z (sz z | |||||
tor) z (szülött z | |||||
ga) zs (ág zS | |||||
_gá) zsz (ámla zs: | |||||
_gá) zsz (ámlá zs: | |||||
_ré) zs (ó zS | |||||
_vá) zs (or zS | |||||
_szára) zs (ág zS | |||||
_kö) zs (ég zS | |||||
.group | .group |
_4X St'i*idsat; | _4X St'i*idsat; | ||||
_5X p'&t;d;esjat | _5X p'&t;d;esjat | ||||
_6X S'est;d;esjat | _6X S'est;d;esjat | ||||
_7X s'ed;emdsjat | |||||
_7X s'ed;emd;esjat | |||||
_8X 'osemd;esjat | _8X 'osemd;esjat | ||||
_9X d'ev&t;d;esjat | _9X d'ev&t;d;esjat | ||||
_0C st'o | _0C st'o | ||||
// treat as letters if at the end of the clause | // treat as letters if at the end of the clause | ||||
a a: $atend // letter-a | a a: $atend // letter-a | ||||
k ke: $atend // letter-k | |||||
k ka: $atend // letter-k | |||||
o o: $atend // letter-o | o o: $atend // letter-o | ||||
s es $atend | s es $atend | ||||
v ve: $atend | v ve: $atend |
ě e | ě e | ||||
ů u: // czech | ů u: // czech | ||||
$ dola:r | $ dola:r | ||||
% percento | |||||
% pertsento | |||||
+ plus | + plus | ||||
// 557 | |||||
// 557 |
fr 32 118 | fr 32 118 | ||||
fr_ca 11 118 | fr_ca 11 118 | ||||
hi 49 131 | hi 49 131 | ||||
hu 24 114 | |||||
hu 23 113 | |||||
nl 26 117 | nl 26 117 | ||||
pl 15 107 | pl 15 107 | ||||
sk 29 125 | sk 29 125 | ||||
2 ufric/hu_fi fi | 2 ufric/hu_fi fi | ||||
2 ufric/ll base is | 2 ufric/ll base is | ||||
3 ufric/s base es pt | 3 ufric/s base es pt | ||||
13 ufric/s_ base fi fr hu es pt ro | |||||
11 ufric/s_ base fi fr hu es pt ro | |||||
15 ufric/s! base fi hu es pt | 15 ufric/s! base fi hu es pt | ||||
2 ufric/s_continue fi hu | 2 ufric/s_continue fi hu | ||||
2 ufric/sh base pt_pt | 2 ufric/sh base pt_pt | ||||
6 vocw/v base ro | 6 vocw/v base ro | ||||
4 vocw/zh base ro | 4 vocw/zh base ro | ||||
2 vocw/zh_rfx base | 2 vocw/zh_rfx base | ||||
4 voc/z base fr hu ro | |||||
4 voc/z_ base fr hu ro | |||||
3 voc/z base fr ro | |||||
3 voc/z_ base fr ro | |||||
4 voc/zh base sk ro | 4 voc/zh base sk ro | ||||
3 voc/zh_ base ro | 3 voc/zh_ base ro | ||||
1 voc/zh_2 sk | 1 voc/zh_2 sk |
endphoneme | endphoneme | ||||
phoneme OI | |||||
phoneme OY | |||||
vowel starttype (o) endtype (i) | vowel starttype (o) endtype (i) | ||||
length 220 | length 220 | ||||
formants vdiph/oi | formants vdiph/oi |
endphoneme | endphoneme | ||||
phoneme z2 // [z] but without switchvoicing | |||||
vcd alv frc sibilant | |||||
vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 | |||||
formants voc/z+ufric/s_ | |||||
before _ voc/z_+ufric/s_%80 | |||||
lengthmod 6 | |||||
endphoneme | |||||
int OpenWavFile(const char *path, int rate) | |||||
//========================================= | |||||
int OpenWavFile(char *path, int rate) | |||||
//=================================== | |||||
{ | { | ||||
static unsigned char wave_hdr[44] = { | static unsigned char wave_hdr[44] = { | ||||
'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ', | 'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ', | ||||
if(path[0] == 0) | if(path[0] == 0) | ||||
return(0); | return(0); | ||||
if(path == "stdout") | |||||
if(strcmp(path,"stdout")==0) | |||||
f_wavfile = stdout; | f_wavfile = stdout; | ||||
else | else | ||||
f_wavfile = fopen(path,"wb"); | f_wavfile = fopen(path,"wb"); | ||||
{ | { | ||||
unsigned int pos; | unsigned int pos; | ||||
if((f_wavfile==NULL) || (wavefile == "stdout")) | |||||
if((f_wavfile==NULL) || (f_wavfile == stdout)) | |||||
return; | return; | ||||
fflush(f_wavfile); | fflush(f_wavfile); |
espeak_Initialize(AUDIO_OUTPUT_RETRIEVAL,1000,NULL,1); | espeak_Initialize(AUDIO_OUTPUT_RETRIEVAL,1000,NULL,1); | ||||
espeak_SetSynthCallback(TestSynthCallback); | espeak_SetSynthCallback(TestSynthCallback); | ||||
espeak_SetUriCallback(TestUriCallback); | |||||
unsigned int unique_identifier=0; | unsigned int unique_identifier=0; | ||||
int index=0; | int index=0; |
if((c2 & 0xc0) != 0x80) | if((c2 & 0xc0) != 0x80) | ||||
{ | { | ||||
// This is not UTF8. Change to 8-bit characterset. | // This is not UTF8. Change to 8-bit characterset. | ||||
if(n_bytes > 1) | |||||
if((n_bytes == 2) && (ix == 1)) | |||||
ungot2 = cbuf[2]; | ungot2 = cbuf[2]; | ||||
GetC_unget(c2); | GetC_unget(c2); | ||||
break; | break; | ||||
sprintf(p,"\001+10S%s",tone_punct_on); | sprintf(p,"\001+10S%s",tone_punct_on); | ||||
while(punct_count-- > 0) | while(punct_count-- > 0) | ||||
sprintf(buf,"%s %s",buf,punctname); | sprintf(buf,"%s %s",buf,punctname); | ||||
sprintf(p,"%s %s\001S",buf,tone_punct_off); | |||||
sprintf(p,"%s %s\001-10S",buf,tone_punct_off); | |||||
} | } | ||||
else | else | ||||
{ | { |
extern "C" | extern "C" | ||||
#endif | #endif | ||||
void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | ||||
/* This function must be called before synthesis functions are used, in order to deal with | |||||
/* This function may be called before synthesis functions are used, in order to deal with | |||||
<audio> tags. It specifies a callback function which is called when an <audio> element is | <audio> tags. It specifies a callback function which is called when an <audio> element is | ||||
encountered and allows the calling program to indicate whether the sound file which | encountered and allows the calling program to indicate whether the sound file which | ||||
is specified in the <audio> element is available and is to be played. | is specified in the <audio> element is available and is to be played. |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.26.06 18.Jun.07"; | |||||
const char *version_string = "1.26.08 19.Jun.07"; | |||||
const int version_phdata = 0x012601; | const int version_phdata = 0x012601; | ||||
int option_device_number = -1; | int option_device_number = -1; |
tr->langopts.unstressed_wd1 = 2; | tr->langopts.unstressed_wd1 = 2; | ||||
tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
tr->langopts.param[LOPT_IT_LENGTHEN] = 2; // remove lengthen indicator from unstressed or non-penultimate syllables | tr->langopts.param[LOPT_IT_LENGTHEN] = 2; // remove lengthen indicator from unstressed or non-penultimate syllables | ||||
tr->langopts.param[LOPT_IT_DOUBLING] = 2; | |||||
// tr->langopts.param[LOPT_IT_DOUBLING] = 2; | |||||
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels | tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels | ||||
tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list | tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list | ||||
tr->langopts.numbers = 0x2709; | tr->langopts.numbers = 0x2709; |
char end_phonemes2[N_WORD_PHONEMES]; | char end_phonemes2[N_WORD_PHONEMES]; | ||||
// remove any standard suffix and confirm that the prefix is still recognised | // remove any standard suffix and confirm that the prefix is still recognised | ||||
phonemes2[0] = 0; | |||||
end2 = TranslateRules(word, phonemes2, N_WORD_PHONEMES, end_phonemes2, wflags|FLAG_NO_PREFIX|FLAG_NO_TRACE, dictionary_flags); | end2 = TranslateRules(word, phonemes2, N_WORD_PHONEMES, end_phonemes2, wflags|FLAG_NO_PREFIX|FLAG_NO_TRACE, dictionary_flags); | ||||
if(end2) | if(end2) | ||||
{ | { |
#define LOPT_LENGTH_MODS 6 | #define LOPT_LENGTH_MODS 6 | ||||
// increase this to prevent sonorants being shortened before shortened (eg. unstressed) vowels | // increase this to prevent sonorants being shortened before shortened (eg. unstressed) vowels | ||||
#define LOPT_SONORANT_MIN 7 | #define LOPT_SONORANT_MIN 7 | ||||
// Italian "syntactic doubling" | |||||
// bit 0=Italian "syntactic doubling" of consoants in the word after a word marked with $double attribute | |||||
// bit 1=also after a word which ends with a stressed vowel | |||||
#define LOPT_IT_DOUBLING 8 | #define LOPT_IT_DOUBLING 8 | ||||
// max. amplitude for vowel at the end of a clause | // max. amplitude for vowel at the end of a clause | ||||
#define LOPT_MAXAMP_EOC 9 | #define LOPT_MAXAMP_EOC 9 |
extern "C" | extern "C" | ||||
#endif | #endif | ||||
ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | ||||
/* This function must be called before synthesis functions are used, in order to deal with | |||||
/* This function may be called before synthesis functions are used, in order to deal with | |||||
<audio> tags. It specifies a callback function which is called when an <audio> element is | <audio> tags. It specifies a callback function which is called when an <audio> element is | ||||
encountered and allows the calling program to indicate whether the sound file which | encountered and allows the calling program to indicate whether the sound file which | ||||
is specified in the <audio> element is available and is to be played. | is specified in the <audio> element is available and is to be played. |