Official release git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@337 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -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 |
@@ -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 |
@@ -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: |
@@ -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 |
@@ -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 |
@@ -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,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 |
@@ -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 |
@@ -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. |
@@ -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 | |||
@@ -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: | |||
@@ -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 |
@@ -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,®s,®s); // 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; |
@@ -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,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 |
@@ -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; |
@@ -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; |
@@ -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) |