Browse Source

[1.26.08] Fixed --stdout option in "espeak" program was writing to file "stdout".

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-fd96e6ae7743
master
jonsd 18 years ago
parent
commit
b7f2dd2d04

+ 16
- 8
dictsource/de_list View File

_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

+ 65
- 12
dictsource/de_rules View File

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

+ 6
- 7
dictsource/dict_phonemes View File



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

+ 1
- 0
dictsource/en_list View File

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

+ 1
- 0
dictsource/en_rules View File

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

+ 2
- 2
dictsource/hu_list View File

_. pont _. pont
% sa:zAle:k % sa:zAle:k
@ kukAts @ kukAts
€ Eu*o
€ EuRo
+ plus + plus
§ p'A*AgRAfuS
§ pRARAgRAfuS







+ 21
- 20
dictsource/hu_rules View File

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

+ 2
- 2
dictsource/sk_list View File

_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

+ 2
- 2
dictsource/sk_rules View File

ě e ě e
ů u: // czech ů u: // czech
$ dola:r $ dola:r
% percento
% pertsento
+ plus + plus


// 557
// 557

+ 4
- 4
phsource/compile_report View File

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

+ 1
- 1
phsource/ph_german View File

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

+ 0
- 9
phsource/ph_hungarian View File

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



+ 4
- 4
src/espeak.cpp View File







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);

+ 1
- 0
src/extras.cpp View File



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;

+ 2
- 2
src/readclause.cpp View File

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

+ 1
- 1
src/speak_lib.h View File

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.

+ 1
- 1
src/synthdata.cpp View File

#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;

+ 1
- 1
src/tr_languages.cpp View File

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;

+ 1
- 0
src/translate.cpp View File

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)
{ {

+ 2
- 1
src/translate.h View File

#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

+ 1
- 1
windows/windows_dll/src/speak_lib.h View File

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.

Loading…
Cancel
Save