Browse Source

[1.47.04]

Official release

git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@337 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
e5cc887ce5

+ 17
- 17
dictsource/dict_phonemes View File

@@ -49,6 +49,20 @@ s s. S; t t# t. t.# tS
v v# w z


Dictionary pt_dict 2013-04-02

& &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU
i I i/ iU o O oI OI
o~ u U uI u~ y

* : ; b c C d dZ
f g h j k l l^ m
n N n^ p Q r R r-
s S s# s; t T tS ts
v w x z Z


Dictionary bg_dict 2013-03-16

@ a e i o u
@@ -150,7 +164,7 @@ p Q r R s s; t T
ts v x z


Dictionary en_dict 2013-03-30
Dictionary en_dict 2013-04-02

0 0# 3 3: @ @- @2 @5
@L a a# A: A@ aa aI aI3
@@ -164,7 +178,7 @@ d# dZ f g h j k l
l# l/ m n N n^ p Q
q Q" r R r- R2 s S
t T t2 tS tS; v w x
z Z z#
z Z z# z.


Dictionary eo_dict 2013-03-08
@@ -563,20 +577,6 @@ S s; S; t t; tS ts tS;
ts; v w x z Z Z;


Dictionary pt_dict 2013-03-31

& &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU
i I i/ iU o O oI OI
o~ u U uI u~ y

* : ; b C d dZ f
g h j k l l^ m n
N n^ p Q r R r- s
S s# s; t T tS ts v
w x z Z


Dictionary ro_dict 2013-03-04

@ @- @I @U a aI aU e
@@ -592,7 +592,7 @@ ts; v v; w w2 x z Z
z; Z;


Dictionary ru_dict 2013-03-31
Dictionary ru_dict 2013-04-01

8 @- a A e E E# E%
E2 i I I# I3 I^ ja ju

+ 39
- 20
dictsource/en_list View File

@@ -325,37 +325,54 @@ _zh tS'aIni:z
// Arabic letters

ء h'amza
آ 'Elifm,adda#
أ 'Elifh,amza
ا 'Elif
ب bE?
آ al'if_mamd'uda#
أ h'amza_taht_al'if
ؤ h'amza_?la_waw
إ al'if_taht_h'amza
ئ h'amza_?la_jE?
ا al'if
ب ba
ة t'E?maR2b'uta#
ت tE?
ت ta
ث TE?
ج ZIm
ج dZi:m
ح hE?
خ xE?
د dEl/1
ذ DEl/1
د dal/1
ذ Dal/1
ر R2A:?
ز zEjn
س si:n
ش Si:n
ص sO:d@-
ض dO:d@-
ص sa:d@-
ض da:d@-
ط thA:?
ظ DA:?
ع ?ajn
غ Q"ajn
ف fE?
ق qO:f
ك kEf
ل lEm
ع '?Ein
غ 'Q"Ein
ف fa
ق qa:f
ك kaf
ل lam
م mi:m
ن nu|:n
ه hE?
و wO:w
ه ha
و waw
ى al'if_maks'ura
ي jE?
// Farsi
پ pa
چ tSa
ژ Za
گ ga:f
ی f'A@si||j'e
ک k'a:f
// Urdu
ٹ te
ڈ de
ڑ z.e
ے barij'e
ھ h'@

َ a
ِ i
@@ -725,6 +742,7 @@ aka aka#
alas a#l'as
albeit O:lb'i:It
alfalfa alf'alf@
algebra aldZI2br@
alias eIli@s
alibi al@baI
alibis al@baIz
@@ -2793,7 +2811,6 @@ tear te@ $verb
(tear apart) t,e@||a#pA@t
(tear off) t'e@||'0f
teargas ti@3gas
techy tEki
teddybear t'EdIb,e@
telemetry t@lEm@tri
telepathy t@lEp@Ti
@@ -3255,8 +3272,9 @@ Lvov l@-v0v
?5 Luxembourg lVks@mbVRg
Madagascar mad@g'ask3
Madras m@draas
Madrid m@drId
Madrid m@drId
Malawi $alt3
Malayalam maleI'A:l@m
Maldives mO:ld'i:v
Mali mA:li
Mandalay $3
@@ -3384,6 +3402,7 @@ Wisconsin wI2sk'0nsI2n
Wyoming waI'oUmIN
Xhosa kO:s@
Yemen $alt2
Yosemite joUs'Em@ti
zaire zaI'i@3
zimbabwe zI2mbA:bwi
zimbabwean zI2mbA:bwI@n

+ 2
- 0
dictsource/en_rules View File

@@ -1464,6 +1464,7 @@
a) ch (il k
bra) ch k
te) ch (K k
_te) ch k
ch (isC k
ch (ic_ k
@@Car) ch (_ k
@@ -3035,6 +3036,7 @@
&n) iel (_ j@L
&r) iel (_ =i:@L
ie (n i@
&) ie (n_ =i@n
d) iene (_ 'aIi:n
ie (ntal I'E
g) ie (n i:

+ 37
- 16
dictsource/pt_list View File

@@ -329,8 +329,7 @@ vocês $u2+ $verbf
eles $u+ $verbf
elas $u+ $verbf

me $u // reflexive
me $u $verbf
me $u $verbf // reflexive
te $u $verbf
nos $u $nounf
la $u
@@ -345,7 +344,7 @@ se $u
?2 nesta $u+ $nounf
?2 neste $u+ $nounf n'estSi //in this
?2 esse $u+ $nounf 'esi // that
essa 'Es& $u+
essa 'Es& $u+ $noun
desse $u+ $nounf
desta $nounf
nesse n'esy $u+ $nounf
@@ -384,7 +383,7 @@ duma $u $nounf
duns $u $nounf
dumas $u $nounf

em $u // in,on,at
em $u $noun // in,on,at
no nu $u $nounf
na $u $nounf
num $u $nounf
@@ -427,7 +426,7 @@ com $u // with
// conjunctions
?1 e i $u // and
?2 e i $u // and
se $u // if
se $u+ $verbf // if


?2 mas $u // but
@@ -522,7 +521,7 @@ estão $u

estava $u
estávamos $u
astavam $u
estavam $u

estive $u
?2 esteve estevy $u2
@@ -619,9 +618,14 @@ o O $atend


// some common adjectives and adverbs
alguns $u // some
algumas $u // some
não n,&U~ $strend // not
alguns $u $noun // some
algumas $u $noun // some
não n,&U~ $verbf $strend // not
nunca $u+ $verbf
sempre $u+ $verbf
qualquer $u $nounf
quaisquer $u $nounf
jamais $u+ $verbf


// MAIN WORD DICTIONARY
@@ -643,9 +647,9 @@ aeroporto $alt2
aeroportos $alt
albatrozes $alt
alcateia $alt
alcova $alt2
alferes $alt
algozes $alt
alicerce $alt
almoço $alt $verb
ameba $alt
amores $alt2
@@ -675,6 +679,7 @@ beco $alt2
besta $alt2
bilhete $alt2
boca $alt2
boceta $alt2
bochecha $alt2
bojo $alt2
boleia $alt
@@ -686,6 +691,7 @@ bordo $alt
borra $alt2 $noun
bosque $alt
boto $alt2 $noun
boxe $alt
brejo $alt
bromelha $alt
cabelo $alt2
@@ -696,6 +702,7 @@ caderneta $alt2
cadete $alt2
camelha $alt
camelo $alt2
caminhonete $alt
camiseta $alt2
cantora $alt2
capacete $alt2
@@ -832,11 +839,13 @@ explore $alt
faceta $alt2
fantoche $alt
farofa $alt
farolete $alt2
febre $alt
fera $alt
feitora $alt2
ferozes $alt
fezes $alt
filete $alt2
?1 fixe fiSy
foda $alt2 $verb
fogos $alt
@@ -856,6 +865,7 @@ fulgores $alt2
galera $alt
galileia $alt
gameta $alt2
garçonete $alt2
geleia $alt
gelo $alt2
gelo $alt $verb
@@ -884,6 +894,7 @@ jogo $alt2 $noun
joguete $alt2
lagosta $alt2
lambreta $alt2
lanchonete $alt
lebre $alt
lembrete $alt2
lepra $alt
@@ -893,6 +904,7 @@ lopes $alt
macete $alt2
maior $alt
maleta $alt2
marionete $alt
marreta $alt2
megera $alt
melhor $alt
@@ -911,6 +923,7 @@ miolos $alt
modelo $alt2
modelo $alt $verb
moeda $alt
moem $alt
mofo $alt $verb
molho $alt2 $noun
monera $alt
@@ -930,12 +943,14 @@ namoro $alt2 $noun
naquela $nounf
naquele $alt2 $nounf
nervo $alt2
nojo $alt2
novelo $alt2
novos $alt
obstetra $alt
odisseia $alt
onu $1
olho $alt2 $noun
olho $alt2 $noun
olhos $alt
onomatopeia $alt
opereta $alt2
ordens $alt
@@ -953,10 +968,9 @@ pangeia $alt
pantera $alt
parede $alt2
pastora $alt2
patinete $alt
pedra $alt
pela $alt $verb
pelego $alt2
pela $alt $verb
pelo $alt2
pelo $alt $verb
peso $alt $verb
@@ -998,11 +1012,12 @@ relevo $alt2 $noun
remorso $alt
renovo $alt $verb
retorno $alt $verb
reuva $alt
reuva x'EUv&
rigores $alt2
rixa x'iS&
rocha $alt
rock $alt
roem $alt
rola $alt2 $noun
rolo $alt2 $noun
rota $alt2
@@ -1037,6 +1052,7 @@ suor swOr
tapete $alt2
temores $alt2
tempero $alt2 $noun
tenores $alt2
terrores $alt2
teta $alt2
tetra $alt
@@ -1068,7 +1084,6 @@ voga $alt
vozes $alt
xarope $alt
zelo $alt2 $noun
zero $alt
zorra $alt2


@@ -1095,6 +1110,9 @@ book buk
?1 download d'a,wnl'oud
?2 download daUNl'owd
?3 download dau~Nl'owd
drive dR'aivy
driver dR'aiver
drivers dR'aiveRs
?1 end 'end
?2 esc 'Esk
?3 esc 'EskI
@@ -1135,6 +1153,7 @@ laptop lEptOp
?1 ovo 'ovu
?1 pause p'au:z
page p'eIdZ
pizza p'its&
python p'aIT&~N
?1 readme r'i:dmi:
?1 sapi s,ap'i
@@ -1150,6 +1169,7 @@ símbolo s'imbolU
?1 space sp'eIsy
?1 sporting sp'Ort,ing
tab t'aby
tablet t'ablet
?1 telemóvel t,El,Em'OvEl
?1 telemóveis t,El,Em'OveIs#
?1 up &p
@@ -1190,7 +1210,8 @@ facebook feisybuk
?2 microsoft m'aIkRows'Oft
?1 movie m'uvi
?1 nero n'Eru
?1 office 'Of,is
/1 office 'Of,is
?2 office 'Ofsy
openoffice 'opeIN|'Ofis
?1 outlook 'autl'uk
?2 Outlook ,aUtl'uk

+ 20
- 10
dictsource/pt_rules View File

@@ -47,7 +47,6 @@
?1 a (lK ,A // Algarve, Almerinda, etc...
?2 al (K aU
a (lh+ a

a (m &~
a (mAr_ &
a (mA@ &
@@ -274,7 +273,6 @@
e (xA_ E
e (xAm_ E
?2 _n) e (t E

em (C eIm
en (K eIN
enh en^
@@ -368,6 +366,7 @@
_perd) e (L05_ e
_quis) e (L05_ E
_soub) e (L05_ E
_talh) e (L05_ E
_trem) e (L05_ e
diss) e (L06_ E // contra-
fend) e (L06_ e // de- o-
@@ -461,6 +460,7 @@ respond) e (L07_ e // cor-
_hosp) e (dL03_ E
_gr) e (gL03_ e
_gal) e (gL03_ e
_pel) e (gL03_ e
_n) e (grL03_ e
_ch) e (guL02_ e
estr) ei (L04_ EI
@@ -474,10 +474,12 @@ respond) e (L07_ e // cor-
_reit) e (rL03_ E
_sinc) e (rL03_ E
_g) e (rL04_ E
_z) e (rL04_ E
qu) e (rL04_ E // re-
_op) e (rL04_ E
gen) e (rL04_ E // de- re-
_alt) e (rL04_ E
_enc) e (rL04_ E
_sug) e (rL04_ E
_sup) e (rL04_ E
_tol) e (rL04_ E
@@ -489,12 +491,16 @@ respond) e (L07_ e // cor-
_recup) e (rL04_ E
_refrig) e (rL04_ E
_v) e (rbL03_ E
_alic) e (rcL02_ E
_p) e (rdL02_ E
_l) e (rdL03_ E
_h) e (rdL04_ E
_bez) e (rrL03_ e
_inv) e (rtL03_ e
_f) e (rvL03_ e
_alic) e (rçL03_ E
_p) e (sL01_ E
_l) e (sL03_ E
_refr) e (scL01_ E
_d) e (scL02_ E
_cr) e (scL02_ E
@@ -520,6 +526,7 @@ _obsol) e (tL03_ e
_atr) e (vL03_ e
_r) e (zL04_ E
_pr) e (zL04_ E
_rev) e (zL04_ E
_despr) e (zL04_ E
_embel) e (zL04_ E
_menospr) e (zL04_ E
@@ -688,9 +695,9 @@ _entorp) e (çL03_ e
_) l (_ 'Ele
l l
l) l
lh l^
lh lj
A) lh lj
?1 A) lh l^
A) lh l^
?4 A) lh l^


@@ -756,6 +763,9 @@ _entorp) e (çL03_ e
o (lA_ O
o (lAm_ O

o (lhe_ O
o (lhem_ O

o (ltA_ O
o (ltAm_ O

@@ -778,9 +788,7 @@ _entorp) e (çL03_ e

?1 o (l_ 'O
?2 ol (_ Ow
o (lh o
?2 _) o (lhA_ O
?2 _) o (lhAm_ O

om (_ oN
o (ma_ o

@@ -838,6 +846,7 @@ _entorp) e (çL03_ e

//sort
_f) o (L05_ o
_pormen) o (L05_ O
_f) o (L07_ o
_s) o (bL02_ O
_af) o (bL04_ O
@@ -859,9 +868,8 @@ _entorp) e (çL03_ e
_t) o (lL03_ o
_f) o (lgL04_ O
_emp) o (lgL04_ O
c) o (lhL02_ O // es- en- re-
_t) o (lhL02_ O
_m) o (lhL04_ O
_) o (lhL04_ O
m) o (lhL04_ O
ent) o (pL02_ O
_c) o (pL03_ O
_ens) o (pL04_ O
@@ -1057,6 +1065,8 @@ _remem) o (rL04_ O
u (iu w
u (iCK u
uy uI
ul (K uw
u (lh+ u

um (_ u~N
um (C u~m

+ 2
- 2
dictsource/ru_list View File

@@ -28,7 +28,7 @@ _10 d;'es;It;
_11 Od;'innVttsVt;
_12 dv;In'AttsVt;
_13 tR;In'AttsVt;
_14 ts;It'y@-*nVttsVt;
_14 tS;It'y@-*nVttsVt;
_15 p;Itn'AttsVt;
_16 SE#stn'AttsVt;
_17 s;Imn'AttsVt;
@@ -45,7 +45,7 @@ _9X d;E2v;In'ostO
_0C st'o
_2C dv;'es;t;I
_3C tr;'ista
_4C ts;It'yr;E2sta
_4C tS;It'yr;E2sta
_5C p;,It;s'ot
_6C S,E#s;t;s'ot
_7C s;,Ims'ot

+ 1
- 15
phsource/compile_report View File

@@ -1,5 +1,5 @@

75 phoneme tables
74 phoneme tables
new total
base 109 109
consonants 11 119
@@ -74,7 +74,6 @@ consonants 11 119
kl 18 119
am 15 114
si 24 155
rw 15 132
sl 10 137

Data file Used by
@@ -218,7 +217,6 @@ dzh/xdz_pzd [J] base
[J] tr
[J] ku
envelope/i_risefall [11] zh
envelope/i_risefall2 [+2] rw
envelope/p_214 [5] vi
[5] vi-hue
[214] zh
@@ -236,7 +234,6 @@ envelope/p_fall [2] vi
[22] zh
[33] zh
[53] zh
[+] rw
envelope/p_fallrise [4] vi
envelope/p_level [1] vi
[1] vi-hue
@@ -1511,8 +1508,6 @@ vowel/a# [a] base2
[a#] en-sc
[a#] en-wi
[&] sr
[a#] rw
[a/] rw
vowel/a_2 [a] base2
[a] en-wi
[A:] en-wi
@@ -1524,7 +1519,6 @@ vowel/a_2 [a] base2
[a] pt-pt
[a] ro
[a] el
[a] rw
vowel/a#_2 [A] nl
[a:] nl
[a] kn
@@ -1673,8 +1667,6 @@ vowel/e [e] base
[e] da
[?e] da
[E] kl
[e] rw
[e#] rw
vowel/e# [I] en-sc
[e] et
[E] kl
@@ -1825,8 +1817,6 @@ vowel/i [i] base
[i] fa
[i] kl
[i:] si
[i] rw
[i#] rw
vowel/i# [y:] cy
vowel/i_2 [i2] de
[i:] de
@@ -1985,8 +1975,6 @@ vowel/o [o] base2
[o] id
[o] hy
[o] kl
[o] rw
[o#] rw
vowel/o_2 [o:] cy
[o:] hi
[o:] hu
@@ -2183,8 +2171,6 @@ vowel/u_bck [u] base2
[?u] da
[u] ka
[u] ko
[u] rw
[u#] rw
vowel/u_bck2 [u] et
[u] fr
[u:] fr

+ 155
- 0
phsource/ph_sinhala View File

@@ -0,0 +1,155 @@

// Phonemes for Sinhala
// This inherits from ph_hindi

// (these are only guesses)

phoneme @
vowel starttype #a endtype #a
length 150
FMT(vowel/@_low)
endphoneme


phoneme a
vowel long starttype #a endtype #a
ipa ɐ
length 150
ChangeIfNotStressed(@)
FMT(vowel/a#_2)
endphoneme


phoneme a:
vowel starttype #a endtype #a
length 300
FMT(vowel/a_3)
endphoneme


phoneme &
vowel starttype #e endtype #e
length 150
FMT(vowel/ee_6)
endphoneme


phoneme &:
vowel starttype #e endtype #e
length 300
FMT(vowel/ee_6)
endphoneme


phoneme e
vowel starttype #e endtype #e
length 150
FMT(vowel/e_mid)
endphoneme


phoneme e:
vowel starttype #e endtype #e
length 300
FMT(vowel/e_mid2)
endphoneme


phoneme i
vowel starttype #i endtype #i
length 150
FMT(vowel/i_6)
endphoneme


phoneme i:
vowel starttype #i endtype #i
length 300
FMT(vowel/i)
endphoneme



phoneme o
vowel starttype #o endtype #o
length 150
FMT(vowel/oo_1)
endphoneme


phoneme o:
vowel starttype #o endtype #o
length 300
FMT(vowel/oo_1)
endphoneme


phoneme u
vowel starttype #u endtype #u
length 130
FMT(vowel/u_6)
endphoneme

phoneme u:
vowel starttype #u endtype #u
length 300
FMT(vowel/u_6)
endphoneme



phoneme aI
vowel long starttype #a endtype #i
length 300
FMT(vdiph/ai_8)
endphoneme

phoneme aU
vowel long starttype #a endtype #u
length 300
FMT(vdiph/au)
endphoneme



// ?? This is standard [v]. Should be it [v] without the fricative noise?
phoneme v
import_phoneme base/v
endphoneme


phoneme r
import_phoneme base/r
endphoneme

phoneme t
import_phoneme base2/t // dental
endphoneme


// temporary, map [n#] etc. to [n] etc.

phoneme m#
ipa U+1D50
CALL base/m
endphoneme

phoneme n#
ipa U+207F
CALL base/n
endphoneme

phoneme n.#
ipa U+1DAF
CALL base/n.
endphoneme

phoneme n^#
ipa U+1DAE
CALL base/n^
endphoneme

phoneme N#
ipa U+1D51
CALL base/N
endphoneme

+ 45
- 0
phsource/ph_urdu View File

@@ -0,0 +1,45 @@
//====================================================
// Phonemes adjusted for Urdu by Him Prasad Gautam.
//====================================================


phoneme : // Lengthen the previous vowel by "length"
virtual
length 120
endphoneme

phoneme @
vowel flag1 starttype #@ endtype #@
length 130

ChangeIfDiminished(@-)
IF nextPh(H) THEN
FMT(vowel/@_low)
ENDIF
FMT(vowel/@_bck)
endphoneme


phoneme V
vowel flag1 starttype #@ endtype #@
length 150
CALL hi/V
endphoneme


phoneme @2
vowel flag1 starttype #@ endtype #@
length 150
FMT(vowel/@_low)
endphoneme

phoneme @3
vowel flag1 starttype #@ endtype #@
length 150
ChangeIfDiminished(@-)
FMT(vowel/@_3)
endphoneme


//====================================================
// The rest Phonemes are inherted from Hindi.

+ 8
- 9
phsource/phonemes View File

@@ -1878,17 +1878,20 @@ include ph_greenlandic
phonemetable am base
include ph_amhari

phonemetable si hi
include ph_sinhala


//**************************************************************************************
// The following lines are experimental, for future additions.
// These langauges are not in a usable state.
// These lines can be deleted.

phonemetable rw base2
include ph_kinyarwanda
phonemetable si hi
include ph_sinhala

phonemetable sl sk
include ph_slovenian

//phonemetable rw base2
//include ph_kinyarwanda

//phonemetable mr hi
//include ph_marathi
@@ -1902,9 +1905,6 @@ include ph_kinyarwanda
//phonemetable prs base
//include ph_dari

phonemetable sl sk
include ph_slovenian

//phonemetable gd base
//include ph_s_gaelic

@@ -1929,7 +1929,6 @@ include ph_slovenian
//phonemetable tn base
//include ph_setswana


//phonemetable mt base
//include ph_maltese


+ 5
- 6
platforms/riscos/Makefile View File

@@ -2,8 +2,8 @@


# Toolflags:
CCflags = -c -C90 -depend !Depend -IC: -throwback -zM
C++flags = -c -depend !Depend -IC: -throwback -zM
CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41
C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41
Linkflags = -rmf -c++ -o $@
ObjAsmflags = -throwback -NoCache -depend !Depend
CMHGflags =
@@ -16,11 +16,11 @@ Squeezeflags = -o $@
@.o.intonation @.o.readclause @.o.setlengths @.o.synthdata \
@.o.synthesize @.o.translate @.o.tr_languages @.o.numbers \
@.o.synth_mbrola @.o.phonemelist \
@.o.tr_english @.o.wavegen @.o.voices @.o.assemb @.o.cmhgfile
@.o.wavegen @.o.voices @.o.assemb @.o.cmhgfile
Link $(Linkflags) C:o.stubs C:o.c++lib @.o.speak_riscos @.o.compiledict \
@.o.dictionary @.o.intonation @.o.readclause @.o.setlengths \
@.o.synthdata @.o.synthesize @.o.numbers @.o.synth_mbrola \
@.o.translate @.o.tr_english @.o.wavegen @.o.tr_languages \
@.o.translate @.o.wavegen @.o.tr_languages \
@.o.voices @.o.phonemelist @.o.assemb @.o.cmhgfile


@@ -51,8 +51,6 @@ Squeezeflags = -o $@
c++ $(c++flags) -o @.o.synthesize @.CPP.synthesize
@.o.translate: @.CPP.translate
c++ $(c++flags) -o @.o.translate @.CPP.translate
@.o.tr_english: @.CPP.tr_english
c++ $(c++flags) -o @.o.tr_english @.CPP.tr_english
@.o.tr_languages: @.CPP.tr_languages
c++ $(c++flags) -o @.o.tr_languages @.CPP.tr_languages
@.o.voices: @.CPP.voices
@@ -63,3 +61,4 @@ Squeezeflags = -o $@
objasm $(objasmflags) -from @.s.assemb -to @.o.assemb

# Dynamic dependencies:


+ 0
- 1
platforms/riscos/copysource View File

@@ -18,6 +18,5 @@ copy <obey$dir>.^.src.sintab/h <obey$dir>.h.sintab fq~c
copy <obey$dir>.^.src.speak_lib/h <obey$dir>.h.speak_lib fq~c
copy <obey$dir>.^.src.synthesize/h <obey$dir>.h.synthesize fq~c
copy <obey$dir>.^.src.translate/h <obey$dir>.h.translate fq~c
copy <obey$dir>.^.src.tr_languages/h <obey$dir>.h.tr_languages fq~c
copy <obey$dir>.^.src.voice/h <obey$dir>.h.voice fq~c
copy <obey$dir>.^.src.wave/h <obey$dir>.h.wave fq~c

+ 111
- 25
platforms/riscos/cpp/speak_riscos View File

@@ -1,6 +1,6 @@

/***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* email: [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -26,6 +26,7 @@
#include <ctype.h>
#include <locale.h>
#include "kernel.h"
#include <math.h>

#include "speech.h"
#include "speak_lib.h"
@@ -221,6 +222,7 @@ void ReadVoiceNames2(char *directory)
voice_variant_names[n_voice_variant_files++] = p;
}
else
if(strcmp(p, "default") != 0)
{
if(n_voice_files >= (N_VOICE_NAMES-1))
continue;
@@ -233,11 +235,17 @@ void ReadVoiceNames2(char *directory)

void ReadVoiceNames()
{//===================
char directory[sizeof(path_home)+10];
char directory[sizeof(path_home)+20];

n_voice_files = 0;
n_voice_variant_files = 0;

sprintf(directory,"%s.voices.default", path_home);
if(GetFileLength(directory) > 0)
{
// put the 'default' voice at the start of the list
voice_names[n_voice_files++] = "default";
}
sprintf(directory,"%s.voices",path_home);

ReadVoiceNames2(directory);
@@ -400,11 +408,27 @@ void FillSoundBuf(int size)

int initialise(void)
{//=================
sprintf(path_home,"%s.espeak-data","<eSpeak$Dir>");
char buf[N_PATH_HOME];

_kernel_swi_regs regs;
_kernel_oserror *error;

buf[0] = 0;
regs.r[0] = (int)"eSpeak$Dir";
regs.r[1] = (int)buf;
regs.r[2] = sizeof(buf);
regs.r[3] = 0;
regs.r[4] = 0;
regs.r[5] = 0;

error = _kernel_swi(0x20023,&regs,&regs); // OS_ReadVarVal
buf[regs.r[2]] = 0;

sprintf(path_home,"%s.espeak-data",buf);
if(GetFileLength(path_home) != -2)
{
// not found, try the 10 character version of the directory name
sprintf(path_home,"%s.espeak-dat","<eSpeak$Dir>");
sprintf(path_home,"%s.espeak-dat",buf);
}
if(GetFileLength(path_home) != -2)
{
@@ -414,7 +438,7 @@ int initialise(void)
}

WavegenInit(22050,0);
LoadPhData();
LoadPhData(NULL);
SetVoiceStack(NULL, "");
SynthesizeInit();
return(0);
@@ -453,7 +477,7 @@ void speak_text_string(char *data, int terminator, int len, int wait, int voice_
static_length = 0;
else
{
strcat(&static_buf[static_length]," : ");
strcat(&static_buf[static_length]," \n ");
static_length+=3;
}

@@ -578,13 +602,14 @@ void set_say_options(int reg2, int reg3)
void jsd_swi_functions(int *r)
/****************************/
{
int use_ipa;
espeak_VOICE voice_select;

switch(r[0])
{
case 0: /* major version */
r[0] = 4;
r[1] = 331;
r[1] = 347;
break;

case 1: /* register user */
@@ -594,7 +619,13 @@ void jsd_swi_functions(int *r)
break;

case 3:
// r[0] = (int)speech_to_phonemes((char *)r[1]);
// translate into phonemes
use_ipa = 0;
if((r[2] >= 1) && (use_ipa <= 3))
use_ipa = r[2];
TranslateClause(translator,NULL,(char *)r[1],NULL,NULL);
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa);
r[0] = (int)translator->phon_out;
break;

case 4:
@@ -642,6 +673,7 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw)
/*********************************************************/
{
int value;
int value2;
int q_length;
value = r[0];

@@ -650,21 +682,23 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw)

case 0: // ready ?
// returns the index into the source text of the currently speaking word
if(current_source_index > 0)
r[1] = current_source_index-1;
else
r[1] = current_source_index; /* source index */
if(current_source_index > 0)
r[1] = current_source_index-1;
else
r[1] = current_source_index; /* source index */
r[2] = 0; /* source tag */
r[3] = 0; /* for future expansion */
r[4] = 0;
r[5] = 0;

if(wcmdq_head == wcmdq_tail)
if(WcmdqUsed() < 5)
{
r[0] = -1; /* ready, or nearly */
}
else
{
r[0] = 0;
}
break;

case 1: /* restore old sound channel. DO NOTHING */
@@ -692,19 +726,32 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw)
break;

case 7: /* pitch */
// not implemented
value = (value * 50)/128;
SetParameter(espeakPITCH, value, 0);
break;

case 8: /* speed */
SetParameter(espeakRATE,value,0);
case 8: // speed, convert to range 80 to 400, mid-value=180
if(value < 128)
value2 = 80 + (value*100)/128; // linear range for 0-127 -> 80-179
else
value2 = 80 + pow((float)value/128.0, 1.75)*100;

SetParameter(espeakRATE,value2,0);
break;

case 9: /* word_gap */
if(value >= 128)
value = value - 128;

if(value > 1)
value = (value-1) * 5;

SetParameter(espeakWORDGAP,value,0);
break;

case 10: /* pitch_range */
// not implemented
value = (value * 50)/128;
SetParameter(espeakRANGE, value, 0);
break;

case 12: /* reset */
@@ -712,7 +759,22 @@ _kernel_oserror *swi_handler(int swi_no, int *r, void *pw)
break;

case 13: /* volume */
SetParameter(espeakVOLUME,value,0);
// convert to range 6-255 to 10-400, mid-value=100
if(value < 6)
value2 = value + 4;
else
if(value < 128)
{
value2 = pow((float)(value+40)/168.0, 1.75)*100;
}
else
value2 = pow((float)value/128.0, 2.0)*100;
SetParameter(espeakVOLUME,value2,0);
WavegenSetVoice(voice);
break;

case 14: // set voice by name
SetVoiceByName((char *)r[0]);
WavegenSetVoice(voice);
break;
}
@@ -835,6 +897,13 @@ int param_number(char **argp)
return(value);
}

void PrintVersion()
{//================
char buf[120];
printf("\nspeak text-to-speech: %s Data at: %s\n", version_string, path_home);
}


void command_line(char *arg_string, int wait)
{//==========================================

@@ -854,6 +923,7 @@ void command_line(char *arg_string, int wait)
char command[80];
char *p;
int ix;
int quiet;

voicename[0] = 0;
wavefile[0] = 0;
@@ -861,7 +931,7 @@ void command_line(char *arg_string, int wait)
option_linelength = 0;
option_phonemes = 0;
option_waveout = 0;
option_quiet = 0;
quiet = 0;
option_multibyte = 0; // auto
option_capitals = 0;
option_punctuation = 0;
@@ -887,7 +957,8 @@ void command_line(char *arg_string, int wait)
break;

case 'h':
printf("\nspeak text-to-speech: %s\n%s",version_string,help_text);
PrintVersion();
printf("\n%s",help_text);
return;

case 'k':
@@ -912,7 +983,7 @@ void command_line(char *arg_string, int wait)
break;

case 'q':
option_quiet = 1;
quiet = 1;
break;

case 'f':
@@ -963,7 +1034,8 @@ void command_line(char *arg_string, int wait)
else
if(strcmp(command,"help")==0)
{
printf("\nspeak text-to-speech: %s\n%s",version_string,help_text);
PrintVersion();
printf("\n%s",help_text);
return;
}
else
@@ -980,6 +1052,17 @@ void command_line(char *arg_string, int wait)
SetParameter(espeakPUNCTUATION,option_punctuation,0);
}
else
if(memcmp(command,"version",7)==0)
{
PrintVersion();
return;
}
else
if(memcmp(command,"ipa",3)==0)
{
option_phonemes = 3;
}
else
{
printf("Command not recognised\n");
}
@@ -997,22 +1080,25 @@ void command_line(char *arg_string, int wait)
}
}

if((option_phonemes > 1) && !option_waveout)
quiet = 1; // can't call sprintf() during callback

SetVoiceByName(voicename);

if((filename[0]==0) && (p[0]=='\r'))
{
// nothing to speak
if(option_quiet)
if(quiet)
{
SpeakNextClause(NULL,NULL,2); // stop speaking
more_text = 0;
}
}

if(option_waveout || option_quiet)
if(option_waveout || quiet)
{
// write speech to a WAV file
if(option_quiet)
if(quiet)
{
OpenWaveFile(NULL,samplerate);
option_waveout = 2;

+ 5
- 3
platforms/windows/make_espeak.iss View File

@@ -2,7 +2,7 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.47.03
AppVerName=eSpeak version 1.47.04
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes
@@ -146,7 +146,7 @@ begin
$0e: Result := 'hu';
$0f: Result := 'is';
$10: Result := 'it';
//$12: Result := 'ko';
$12: Result := 'ko';
$13: Result := 'nl';
$14: Result := 'no';
$15: Result := 'pl';
@@ -158,7 +158,7 @@ begin
$1c: Result := 'sq';
$1d: Result := 'sv';
$1f: Result := 'tr';
//$20: Result := 'ur';
$20: Result := 'ur';
$21: Result := 'id';
$25: Result := 'et';
$26: Result := 'lv';
@@ -174,6 +174,7 @@ begin
$39: Result := 'hi';
//$3a: Result := 'mt';
$3c: Result := 'ga';
$3e: Result := 'ms';
//$3f: Result := 'kk';
$41: Result := 'sw';
//$44: Result := 'tt';
@@ -263,6 +264,7 @@ begin
'mk': value := $42f;
'ml': value := $44c;
'mn': value := $450;
'ms': value := $43e;
'mt': value := $43a;
'my': value := $455;
'ne': value := $461;

+ 1
- 1
platforms/windows/make_espeakedit.iss View File

@@ -1,7 +1,7 @@
[Setup]
AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.47.03
AppVerName=eSpeakEdit version 1.47.04
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit

+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.47.03f 31.Mar.13";
const char *version_string = "1.47.04 02.Apr.13";
const int version_phdata = 0x014701;

int option_device_number = -1;

+ 1
- 0
src/tr_languages.cpp View File

@@ -518,6 +518,7 @@ Translator *SelectTranslator(const char *name)
{
SetCyrillicLetters(tr);
SetLetterVowel(tr,0x2a);
tr->charset_a0 = charsets[5]; // ISO-8859-5
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v)
tr->langopts.param[LOPT_REDUCE] = 2;

+ 2
- 1
src/translate.cpp View File

@@ -3469,7 +3469,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre

prev_clause_pause = clause_pause;

*tone_out = tone;
if(tone_out != NULL)
*tone_out = tone;

new_sentence = 0;
if(terminator & CLAUSE_BIT_SENTENCE)

Loading…
Cancel
Save