Reduce pause when announcing punctuation. Fix crash for list of numbers in some languages, eg: "22,23,24,25,26,27..." Recognise XLL (etc) is not a valid Roman number. espeak_Cancel(), reset punctuation echo. Don't permanently change option_phoneme_input after using [[ ]] internally. lang=af: Only recognise word "'n" as [@] when followed by a space. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@193 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -151,13 +151,14 @@ _roman rum'eIns@ | |||
alaska al'aska | |||
algerië alx2'e@re@:@- | |||
antwerpen antv&rp@n | |||
asië A:si@ | |||
babilon babilOn | |||
bangladesh baNglad'ES | |||
bastille bast'il | |||
bellevue b&lvju: | |||
berlyn $2 | |||
bermuda $2 | |||
bethlehem bEt_liEm | |||
boedapest budapEst | |||
boekarest bukarEst | |||
bonnievale _^_EN | |||
brittanje $2 | |||
@@ -174,6 +175,7 @@ colesberg ko@lsb&rx2 | |||
constantia $2 | |||
christiana kr@stij'A:na | |||
damaskus d@maskWs | |||
doebaai $2 | |||
duitswes dYytsv'Es | |||
ermelo &rm@lo@ | |||
franschhoek frA~nsh'uk | |||
@@ -199,6 +201,8 @@ kenia ki:nia | |||
kimberley kimb@rli | |||
kongo kONgu | |||
knysna neIsna | |||
kuruman kuruman | |||
kwa kwa $u $only // KwaZulu, etc. | |||
lesotho l@sutu | |||
limpopo l@mpo@po@ | |||
macedonië mas@d'o@ni@ | |||
@@ -209,6 +213,7 @@ mauritius mOr'iSjWs | |||
milaan $2 | |||
mesopotamië mEsuput'A:mi@ | |||
montagu mOnt@ky | |||
moreletapark mOr@l,Etap'ark | |||
moorreesburg mur'e@sbWrx2 | |||
mosambiek musamb'ik | |||
(thaba nchu) tab'A:||ntSu | |||
@@ -220,6 +225,8 @@ pelindaba p&l@nd'A:ba | |||
portugal $1 | |||
potchefstroom pOtSIfstr'o@m | |||
robertson _^_EN | |||
sahara sah'A:ra | |||
secunda s@kunda | |||
senekal se@n@kal | |||
singapoer siNgapur | |||
soweto suw'E:tu | |||
@@ -233,12 +240,13 @@ upington apiNt@n | |||
vesuvius v@su:viWs | |||
viëtnam vj'Etnam | |||
wallonië val'o@ni@ | |||
washington _^_EN | |||
wellington wEliNt@n | |||
wolseley wulsli | |||
worcester v'ust@r | |||
uganda ug'anda | |||
zimbabwe zI:mb'ab_wE | |||
zulu zulu // Kwazulu-Natal | |||
// People names | |||
@@ -262,6 +270,7 @@ blomerus blum'e@rWs | |||
botha bo@ta | |||
bouwer b@U@r | |||
brian _^_EN | |||
bredenkamp bre@d@nkamp | |||
breytenbach breIt@nbax2 | |||
brouwer bruw'&:r | |||
caesar siz@r | |||
@@ -288,6 +297,7 @@ darwin _^_EN | |||
david _^_EN | |||
debora d@bo@ra | |||
debussy d@bus'i: | |||
(de la) d@||la $u // de la Rey/de la Bat, etc. | |||
der d@r | |||
derick dErik | |||
deventer d'e@v@nt@r | |||
@@ -387,6 +397,7 @@ michiel $2 | |||
mike _^_EN | |||
miriam mIri@m | |||
mohammed muh'am@t | |||
morné mOrn'eI | |||
mostert m'Ost@rt | |||
mouton mut'On | |||
mozart mo@tsart | |||
@@ -473,9 +484,12 @@ khumalo kum'A:lu | |||
zuma zu:ma | |||
// Other proper names | |||
absa absa | |||
boeing _^_EN | |||
centaurus $2 | |||
checkers tSEk@rs | |||
chrysler kraIsl@r | |||
ferrari f@rA:ri | |||
martini mart'i:ni | |||
wimpy wImpi | |||
@@ -595,7 +609,7 @@ my $u $verbf | |||
jou $u $verbf | |||
hom $u $verbf | |||
haar $u $only $verbf | |||
se Es@ $capital | |||
se Es@ $capital | |||
dis $u | |||
@@ -620,6 +634,7 @@ aggressie $2 | |||
agterstevoor $4 | |||
agterweë $3 | |||
algaande $2 | |||
alge alx2@ | |||
algehele alx2@h,e@l@ | |||
allegro al'Egru | |||
alles al@s | |||
@@ -657,6 +672,7 @@ bourgeoisie _^_FR | |||
cabernet kab@rn'eI | |||
camembert kam@mb'&:r | |||
camouflage kamufl'A:Z | |||
casino kas'i:n@U | |||
charisma kar'Isma | |||
chemikalieë $3 | |||
crescendo kr@SEndu | |||
@@ -795,6 +811,7 @@ misbruik $2 $verb | |||
misbruikte $2 | |||
miskien $2 | |||
misterie m@ste@ri | |||
(modus operandi) m,o@dWs||o@p@r'andi | |||
monsieur _^_FR | |||
motore mo@t'o@r@ | |||
motor mo@t@r | |||
@@ -822,7 +839,9 @@ normale nOrm'A:l@ | |||
numeri nWm@ri | |||
oeuvre W:vr@ | |||
oftewel Oft@v&l | |||
omgeef $2 | |||
ommekeer Om@ke@r | |||
omrede $2 | |||
omtrent Omtr'Ent | |||
onbegrip $1 | |||
@@ -835,6 +854,7 @@ onderwyser $3 | |||
ondeug $1 $only | |||
ondeugde $1 $only | |||
onding $1 | |||
oneer On_e@r $only | |||
ongeag $1 | |||
ongeduld $1 | |||
ongeloof $1 | |||
@@ -844,6 +864,7 @@ ongerief $1 | |||
ongewens $1 | |||
ongewensde $3 | |||
ongewoons $1 | |||
onguns $1 | |||
onkunde $1 | |||
onmag $1 | |||
onmin $1 | |||
@@ -981,7 +1002,6 @@ vrek fr&k | |||
waarskynlik $2 | |||
waarskynlike $2 | |||
wangedrag vanx2@drax2 | |||
watwo vatvo@ | |||
watwou vatv@U | |||
weergalm $2 |
@@ -109,8 +109,8 @@ o O oI u | |||
* ** : b B d D f | |||
g j J J^ k l m n | |||
N n^ p Q r R s t | |||
T tS v v# w x z | |||
N n^ p Q r R R2 s | |||
t T tS v v# w x z | |||
Dictionary fi_dict | |||
@@ -128,9 +128,9 @@ S s2 t v Z | |||
Dictionary fr_dict | |||
@ @- @2 a A a2 A~ e | |||
E E~ i i: o O o2 O2 | |||
O~ u u: W W2 w^i wA W~ | |||
y Y | |||
E E2 E~ i i: o O o2 | |||
O2 O~ u u: W W2 w^i wA | |||
W~ y Y | |||
: ; b c d dZ f g | |||
h j k l m n N n2 | |||
@@ -469,3 +469,16 @@ oi ong ou u ui yu | |||
b c d f g h j k | |||
l m n N p r s t | |||
tS v w z | |||
Dictionary ml_dict | |||
a a: aI aU e E e: i | |||
I i: l- o o: r- u u: | |||
V y | |||
: b c ch d d. dZ f | |||
g h j J k kh l l. | |||
m n N n. n^ p ph R | |||
R2 s s. S; t t. t.h th | |||
tS v w z z. |
@@ -1483,6 +1483,7 @@ overage oUv@r-eIdZ | |||
overly oUv3lI2 | |||
overt oUv'3:t | |||
overtly oUv'3:tlI2 | |||
overturn $3 | |||
oxen 0ks@n | |||
padre pA:dreI | |||
@@ -1995,6 +1996,7 @@ untidy Vnt'aIdI2 | |||
untie Vnt'aI | |||
unty Vnt'aI // for untying | |||
unwind Vnw'aInd | |||
unwise $2 | |||
unwound Vnw'aUnd | |||
update $1 $onlys | |||
update $verb | |||
@@ -2315,8 +2317,8 @@ Toulouse tu:l'u:z | |||
Tripoli trIp@lI2 | |||
Ukraine ju:kr'eIn | |||
Ural ju:@r@L | |||
Utah ju:tA: | |||
?3 Utah ju:tO: | |||
Utah ju:t2A: | |||
?3 Utah ju:t2O: | |||
Utrecht ju:trECt | |||
Vancouver $2 | |||
Vegas veIg@s |
@@ -1,6 +1,6 @@ | |||
// *************************************************************************** | |||
// * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
// * Copyright (C) 2005 to 2008 by Jonathan Duddington * | |||
// * email: [email protected] * | |||
// * * | |||
// * This program is free software; you can redistribute it and/or modify * | |||
@@ -1004,7 +1004,7 @@ | |||
&) at (eer_ @t | |||
g) at (eau at | |||
p) atrol a2troUl | |||
?3 p) at (r eIt | |||
?3 p) at (riA eIt | |||
fr) at (ern a2t | |||
c) atego atIg@ | |||
c) atego (ric atIg'0 | |||
@@ -1647,7 +1647,7 @@ | |||
@) e (ctive 'E | |||
_) eco (s i:koU | |||
econo (m Ik'0n@ | |||
econo (mic Ek@n'0 | |||
econo (mic i:k@n'0 | |||
&) ecy (_ @sI2 | |||
ee i: | |||
ee (m 'i: | |||
@@ -1672,7 +1672,7 @@ | |||
l) egion i:dZ@n | |||
egy (pt i:dZI | |||
n) e (gro i: | |||
eh (_ eI | |||
eh (K eI | |||
ei eI | |||
_) ei aI | |||
c) ei i: | |||
@@ -1699,7 +1699,7 @@ | |||
ep (ox I2p | |||
e (qual i: | |||
_) e (qua i: | |||
e (quat I2 | |||
_) e (quat I2 | |||
fr) e (q i: | |||
_s) e (que i: | |||
e (quip I2 | |||
@@ -2094,6 +2094,7 @@ | |||
&) eous (_ =i@s | |||
th) eo (@ I2@ | |||
th) eo (r i@ | |||
th) eo (cracy I'0 | |||
th) eo (logy I'0 | |||
th) eo (logis I'0 | |||
eover oUv@ | |||
@@ -2208,6 +2209,7 @@ | |||
s) er (van 3: | |||
ery (_ @rI2 | |||
ery @rI | |||
ery (A 3j | |||
_v) ery ErI2 | |||
_ev) ery rI2 | |||
qu) ery i@rI2 | |||
@@ -3434,6 +3436,7 @@ | |||
o (bstin 0 | |||
o (bt %0 | |||
o (bu %0 | |||
o (by_ oU | |||
f) o (cA oU | |||
ff) o (cA @ | |||
_l) o (cA oU | |||
@@ -3568,6 +3571,7 @@ | |||
ox (ide '0ks | |||
oxy 0ksI | |||
oy OI | |||
oy (A_ 'OI | |||
d) o (zen V | |||
_) o (zo oU | |||
o (zy_ oU | |||
@@ -3976,6 +3980,7 @@ | |||
&l) ous (_ @s | |||
&) ous (_ @s | |||
&) ousy (_ @sI2 | |||
&m) ous (_ @s | |||
&n) ous (_ @s | |||
_) out (@P3 %aUt // prefix out | |||
c) ou (si V | |||
@@ -4799,11 +4804,10 @@ | |||
_) un (@P2 %Vn // prefix | |||
_) un (AP2 %Vn // prefix | |||
_) unn %Vnn | |||
_) un (u %Vn | |||
@) un (al 'ju:n | |||
une (_ ju:n | |||
?3 d) une (_ u:n | |||
j) une (_ u:n | |||
j) un (A u:n | |||
l) une (_ u:n | |||
r) une (_ u:n | |||
?3 t) une (_ u:n |
@@ -26,6 +26,8 @@ _stk b'a*Ra // ?? | |||
_tld t'ilde | |||
// names of symbols | |||
_. punto | |||
_, koma | |||
@@ -351,6 +353,29 @@ alguna $u | |||
// If a letter has a "word" pronunciation which is different from its | |||
// "letter" name, then include the letter name here, with the letter | |||
// prefixed by a _ character. | |||
b be | |||
c Te | |||
d de | |||
f Efe | |||
g xe | |||
h atSe | |||
j xOta | |||
k ka | |||
l Ele | |||
m Eme | |||
n Ene | |||
ñ En^e | |||
p pe | |||
q ku | |||
r E**e | |||
s Ese | |||
t te | |||
v uBe | |||
w ,uBe||d'OBle | |||
x Ekis | |||
z TEta | |||
_a a | |||
a a $atend | |||
_o o | |||
@@ -360,7 +385,8 @@ x Ekis | |||
_y ,ig**'iEQa | |||
y ,ig**'iEQa $atend | |||
ch tSe | |||
ll Ejje | |||
ll EJ^e | |||
?2 ll Ej:e | |||
á 'a||aTEntw'aDa | |||
é 'e||aTEntw'aDa | |||
í 'i||aTEntw'aDa |
@@ -9,7 +9,6 @@ | |||
.L02 b d g n m // change [s] to [z] before these | |||
.group a | |||
_) a (_ a | |||
a a | |||
ai aI | |||
ay (K aI | |||
@@ -19,7 +18,6 @@ | |||
.group b | |||
_) b (_ be | |||
b B | |||
_) b b | |||
m) b b | |||
@@ -29,14 +27,12 @@ | |||
b (uA b | |||
.group c | |||
_) c (_ Te | |||
c k | |||
c (Y T // ce, ci | |||
ch tS | |||
.group d | |||
_) d (_ de | |||
d D | |||
_) d d | |||
m) d d | |||
@@ -44,7 +40,6 @@ | |||
.group e | |||
_) e (_ e | |||
e e | |||
e (CK E | |||
e (r E | |||
@@ -58,12 +53,10 @@ | |||
.group f | |||
_) f (_ 'Efe | |||
f f | |||
.group g | |||
_) g (_ xe | |||
g Q | |||
_) g g | |||
m) g g | |||
@@ -73,12 +66,10 @@ | |||
.group h | |||
_) h (_ 'atSe | |||
h // silent | |||
.group i | |||
_) i (_ i | |||
i i | |||
i (A J^ | |||
C) i (A j | |||
@@ -87,29 +78,24 @@ | |||
.group j | |||
_) j (_ x'Ota | |||
j x | |||
.group k | |||
_) k (_ ka | |||
k k | |||
.group l | |||
_) l (_ Ele | |||
l l | |||
ll J^ | |||
?2 A) ll (A j: | |||
.group m | |||
_) m (_ Eme | |||
m m | |||
.group n | |||
_) n (_ Ene | |||
n n | |||
n (b m | |||
n (v m | |||
@@ -121,7 +107,6 @@ | |||
.group o | |||
_) o (_ o | |||
o o | |||
o (CK O | |||
o (r O | |||
@@ -133,21 +118,18 @@ | |||
.group p | |||
_) p (_ pe | |||
p p | |||
p (t p: | |||
.group q | |||
_) q (_ ku | |||
q k | |||
qu k | |||
.group r | |||
_) r (_ E**e | |||
r R | |||
_) r R | |||
_) r R2 | |||
r (_ * | |||
r (t ** | |||
A) r (A ** | |||
@@ -156,22 +138,19 @@ | |||
m) r (A R | |||
n) r (A R | |||
s) r (A R | |||
rr *R | |||
rr *R2 | |||
.group s | |||
_) s (_ Ese | |||
s s | |||
&) s (_S1 s | |||
.group t | |||
_) t (_ te | |||
t t | |||
.group u | |||
_) u (_ u | |||
u u | |||
u (A w | |||
u (y_ w | |||
@@ -182,7 +161,6 @@ | |||
.group v | |||
_) v (_ uBe | |||
v B | |||
_) v v# | |||
?1 m) v b | |||
@@ -199,12 +177,10 @@ | |||
.group w | |||
_) w (_ ,uBe||d'OBle | |||
w w | |||
.group x | |||
_) x (_ Ekis | |||
x ks | |||
?1 A) x (A Qs | |||
x (_ =Qs | |||
@@ -212,7 +188,6 @@ | |||
.group y | |||
_) y (_ ,ig**'iEQa | |||
y i | |||
_) y J | |||
_m) y J | |||
@@ -223,7 +198,6 @@ | |||
.group z | |||
_) z (_ TEta | |||
z T | |||
?2 z (L02 z | |||
@@ -237,7 +211,6 @@ | |||
ú ''u | |||
ü u | |||
ñ n^ | |||
_)ñ (_ En^e | |||
$ d'Olar | |||
@@ -112,7 +112,7 @@ _# djEz | |||
_' apOstrOf | |||
_( 'uvr@-parA~t'Ez | |||
_) f'Erm parA~t'Ez | |||
_* astErisk: | |||
_* asterisk: | |||
_, virgyl | |||
_- tirE | |||
_. _|pw%E~ | |||
@@ -125,13 +125,13 @@ _> syperjWr | |||
_? pwE~dE~terogasj'O~ | |||
_[ uvr@-_kroSE | |||
_\ b'aksl'aS | |||
_] f'Erm_kroS'E | |||
_] f'E2rm_kroS'E | |||
_^ sirkOnflEks | |||
__ sulin^e | |||
_` aks'A~_gr'av | |||
_{ uvr_akOlad | |||
_| bar | |||
_} f'Erm_akOl'ad | |||
_} f'E2rm_akOl'ad | |||
² pw^is'A~s||d'Y | |||
@@ -250,25 +250,25 @@ avh aveaS | |||
bd boulevard $text | |||
cci $abbrev | |||
cio $abbrev | |||
ctrl kO~tRo2l $pause | |||
ctrl control $text $pause | |||
dept depart@mA~ | |||
edf $abbrev | |||
etc etsetera | |||
ghz ZigaErts | |||
ghz ZigaE2rts | |||
hmm h@m | |||
hz _!Erts | |||
hz _!E2rts | |||
ibm $abbrev | |||
ide $abbrev | |||
ip $abbrev | |||
jaws dZ'O2wz | |||
kde $abbrev | |||
kg kilogRam | |||
khz kiloErts | |||
khz kiloE2rts | |||
km kilomEtr | |||
kw kilowat | |||
m. m@sjY | |||
mbrola EmbRola | |||
mhz megaErts | |||
mhz megaE2rts | |||
mlle mad@mwAzEl | |||
mme madam | |||
mr m@sjY | |||
@@ -553,10 +553,10 @@ tunis tynis | |||
//********************* | |||
(1 er) pr@mjer2 | |||
(1 ers) pr@mi;'ez2 | |||
(1 ère) pr@mi;'Er | |||
(1 ères) pr@mi;'Erz2 | |||
(1 èrement) pr@mi;'Er@-mA~ | |||
(1 ers) pr@mjez2 | |||
(1 ère) pr@mjEr | |||
(1 ères) pr@mjErz2 | |||
(1 èrement) pr@mjEr@-mA~ | |||
monsieur m@sjY | |||
@@ -566,7 +566,7 @@ montréal mO~real | |||
(qu'est ce que) kEsk@ $u | |||
absent absA~ | |||
admin admin | |||
airbus Erbys | |||
airbus E2rbys | |||
auvent ovA~ | |||
bien bjE~n2 $u+ | |||
bis bis | |||
@@ -577,7 +577,7 @@ campus kA~pys | |||
(chef d'oeuvre) chédeuvre $text | |||
choeur kWr | |||
cocus coky | |||
dernier dErnjer2 | |||
dernier dE2rnjer2 | |||
éloquent ElokA~t2 | |||
fier fier $verb | |||
fuel fjul | |||
@@ -623,7 +623,7 @@ rut ryt | |||
scorbut skOrbyt | |||
scout skut | |||
stout staut | |||
uppercut ypErkyt | |||
uppercut ypE2rkyt | |||
ut yt | |||
zut zyt | |||
@@ -683,7 +683,7 @@ emacspeak Emakspi:k | |||
end _^_en | |||
epson EpsOn | |||
espeak @spi:k | |||
ethernet etErnEt | |||
ethernet etE2rnEt | |||
exit egzit | |||
(file zilla) fa2jl||zija | |||
from _^_en $u+ | |||
@@ -731,7 +731,7 @@ yes _^_en | |||
constations kO~statjO~z2 | |||
contentions kO~tA~tjO~z2 | |||
dations datjO~z2 | |||
désertions dezErtjO~z2 $verb | |||
désertions dezE2rtjO~z2 $verb | |||
exploitions EksplwAtjO~z2 | |||
heurtions hWrtjO~z2 | |||
partions partjO~z2 |
@@ -23,7 +23,7 @@ | |||
// 2006-11-18 Gilles Casse <[email protected]> | |||
// | |||
// Updated: 2008-09-13 Michel Such <[email protected]> | |||
// Updated: 2008-09-16 Michel Such <[email protected]> | |||
// | |||
// Letter classes: | |||
@@ -204,8 +204,6 @@ _) ç' (P2v s | |||
// Define use of the final 'e' in french | |||
e (_ | |||
qu) e (_ =@- | |||
qu) e (s_ =@- | |||
elqu) e =@- | |||
uisqu) e =@ | |||
rsqu) e =@ | |||
@@ -486,6 +484,7 @@ _) ç' (P2v s | |||
%C) e (mA // actuellement guillemets | |||
ct) e (ment @ | |||
rC) e (ment @ | |||
g) e (rie | |||
AC) e (ment | |||
u) e (ment @- | |||
ul) e (CA | |||
@@ -502,6 +501,7 @@ _) ç' (P2v s | |||
Cr) eamer i:mWr | |||
Cl) eaner i:nWr | |||
Ack) et (_ Et | |||
eïn (_ 'Ein | |||
// group e: English section |
@@ -1,4 +1,4 @@ | |||
51 phoneme tables | |||
52 phoneme tables | |||
new total | |||
base 98 98 | |||
base2 24 117 | |||
@@ -19,6 +19,7 @@ | |||
fr_ca 11 134 | |||
hi 51 135 | |||
ta 17 138 | |||
ml 13 137 | |||
hu 23 114 | |||
nl 28 121 | |||
pl 18 111 | |||
@@ -503,12 +504,15 @@ r3/r#_ [r#] is | |||
r3/r_2 [r/] fr | |||
r3/r_a [(a)] base | |||
r3/r_e [(e)] base | |||
[E] fr | |||
r3/r_i [(i)] base | |||
[i] fr | |||
r3/r_n [r/] base | |||
[r/] fr | |||
[r/] ru | |||
r3/r_o [(o)] base | |||
[O] fr | |||
[O2] fr | |||
r3/r_ru [R4] ru | |||
r3/r_ru2 [R4] ru | |||
r3/r_trill [R2] base | |||
@@ -602,15 +606,11 @@ r/xr [(@)] base | |||
[(i)] base | |||
[(o)] base | |||
[(u)] base | |||
[O] fr | |||
[W] fr | |||
[Y] fr | |||
[a] fr | |||
[e] fr | |||
[i] fr | |||
[u] fr | |||
[y] fr | |||
[W2] fr | |||
[a2] fr | |||
[i:] fr | |||
[u:] fr | |||
@@ -1247,6 +1247,7 @@ vowel/@ [@] base | |||
[@] en_rp | |||
[V] cy | |||
[@4] hi | |||
[@] ml | |||
[@] sq | |||
vowel/@- [@-] base | |||
[r*] hr | |||
@@ -1344,6 +1345,7 @@ vowel/a#_3 [a2] en | |||
[3] de | |||
[@] de | |||
[a] hi | |||
[a] ml | |||
[a#] ru | |||
[&] pt_pt | |||
[&/] pt_pt | |||
@@ -1354,6 +1356,7 @@ vowel/a_4 [a/] el | |||
vowel/a_5 [a] fr | |||
[a2] fr | |||
[a:] ta | |||
[a:] ml | |||
[a/] it | |||
[a] la | |||
[a] sv | |||
@@ -1404,6 +1407,8 @@ vowel/e [e] base2 | |||
[E:] fr | |||
[e] ta | |||
[e:] ta | |||
[e] ml | |||
[e:] ml | |||
[e] hr | |||
[e/] it | |||
[e:] la | |||
@@ -1505,6 +1510,7 @@ vowel/i [i] base2 | |||
[i] eo | |||
[I] fr | |||
[i:] ta | |||
[i:] ml | |||
[i:] hu | |||
[i] it | |||
[i] pt_pt | |||
@@ -1539,6 +1545,7 @@ vowel/i#_5 [y] pt_pt | |||
[i/] pt_pt | |||
[y] ro | |||
vowel/i_6 [i] ta | |||
[i] ml | |||
[i] hr | |||
[i] tr | |||
[i] ku | |||
@@ -1564,6 +1571,7 @@ vowel/ii [I] en_rp | |||
[i] zhy | |||
[I] ku | |||
vowel/ii# [Y] cy | |||
[y] ml | |||
[Y] ru | |||
[I] ku | |||
vowel/ii_2 [i] zh | |||
@@ -1613,6 +1621,8 @@ vowel/o [o] base2 | |||
[o] hi | |||
[o] ta | |||
[o:] ta | |||
[o] ml | |||
[o:] ml | |||
[o] it | |||
[o/] it | |||
[O] la | |||
@@ -1718,6 +1728,8 @@ vowel/u [u:] en_wi | |||
[U] fr | |||
[u] ta | |||
[u:] ta | |||
[u] ml | |||
[u:] ml | |||
[u:] cs | |||
[U] la | |||
[u] id | |||
@@ -1890,6 +1902,8 @@ vwl_en_us/or [O:] en_us | |||
[o@] en_us | |||
[O:] en_sc | |||
vwl_en_us/ur [U@] en_us | |||
vwl_fr/r_@ [W] fr | |||
[W2] fr | |||
vwl_fr/@R [x] pt_pt | |||
vwl_fr/@R2 [R] fr_ca | |||
vwl_fr/@R3 [R] fr | |||
@@ -1897,6 +1911,12 @@ vwl_fr/@R3 [R] fr | |||
[r2] fr | |||
vwl_fr/@R4 [r] fr | |||
[r2] fr | |||
vwl_fr/r_a [a] fr | |||
[a2] fr | |||
vwl_fr/r_e [E2] fr | |||
vwl_fr/ri [i] fr | |||
vwl_fr/r_u [u] fr | |||
vwl_fr/r_y [y] fr | |||
vwl_fr/w_a [wA] fr | |||
vwl_hi/A [a:] hi | |||
vwl_hi/l-voc [l-] jbo |
@@ -33,7 +33,7 @@ endphoneme | |||
phoneme a | |||
vowel starttype (a) endtype (@) | |||
vowel starttype (e) endtype (@) | |||
length 210 | |||
formants vwl_en_us/a | |||
before n vnasal/ee_n2 |
@@ -31,7 +31,7 @@ phoneme a | |||
formants vowel/a_5 | |||
after l l/la-15 | |||
before l/ DFT-20+l/xl | |||
before r/ DFT-30+r/xr | |||
before r/ DFT+vwl_fr/r_a | |||
reduceto a2 1 | |||
endphoneme | |||
@@ -42,7 +42,7 @@ phoneme a2 | |||
formants vowel/a_5 | |||
after l l/la-15 | |||
before (r) DFT-20+r/xr | |||
before r/ DFT-20+r/xr | |||
before r/ DFT+vwl_fr/r_a | |||
endphoneme | |||
@@ -63,6 +63,7 @@ phoneme E | |||
formants vowel/e_mid | |||
after l l/le-15 | |||
before l/ DFT-20+l/xl | |||
before r/ DFT+r3/r_e | |||
reduceto E2 1 | |||
endphoneme | |||
@@ -72,7 +73,7 @@ phoneme E2 | |||
length 175 | |||
formants vowel/e_mid | |||
after l l/le-15 | |||
before r/ DFT-20 | |||
before r/ DFT+vwl_fr/r_e | |||
endphoneme | |||
@@ -82,6 +83,7 @@ phoneme i | |||
formants vowel/i_3 | |||
linkout ; | |||
after l l/li-15 | |||
after (r) vwl_fr/ri | |||
before l/ DFT-20+l/L1_iL-80 | |||
before (r) DFT+r/xr | |||
before r/ DFT+r3/r_i | |||
@@ -143,7 +145,7 @@ phoneme u | |||
after l l/lu-20 | |||
before l/ DFT-20+l/L1_uL-80 | |||
before (r) DFT+r/xr | |||
before r/ DFT-20+r/xr | |||
before r/ DFT-20+vwl_fr/r_u | |||
endphoneme | |||
@@ -163,6 +165,7 @@ phoneme y | |||
formants vowel/y_2 | |||
after l l/lu-20 | |||
before l/ DFT-20+l/L1_uL-80 | |||
before (r) vwl_fr/r_y | |||
before r/ DFT+r/xr-30 | |||
endphoneme | |||
@@ -183,7 +186,7 @@ phoneme W | |||
formants vowel/@_5 | |||
after l l/l@-20 | |||
before l/ DFT-40+l/xl+15 | |||
before r/ DFT-20+r/xr | |||
before r/ DFT+vwl_fr/r_@ | |||
reduceto Y 1 | |||
endphoneme | |||
@@ -194,7 +197,7 @@ phoneme W2 // same as W but don't reduce | |||
formants vowel/@_3 | |||
after l l/l@-20 | |||
before l/ DFT-40+l/xl+15 | |||
before r/ DFT-20+r3/r_@ | |||
before r/ DFT+vwl_fr/r_@ | |||
endphoneme | |||
@@ -295,6 +298,7 @@ phoneme b | |||
vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | |||
formants b/b+x/b%70 | |||
before _ b/b_+x/b_ | |||
before R b/b+x/b_ | |||
after _ NULL | |||
after @ b/xb%50 | |||
lengthmod 5 | |||
@@ -437,7 +441,7 @@ endphoneme | |||
phoneme R // for beginning of words | |||
vcd pal frc | |||
vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40 | |||
vowelin f1=0 f2=800 -50 50 f3=-100 100 | |||
length 100 | |||
lengthmod 7 | |||
beforenotvowel r/ |
@@ -1190,6 +1190,9 @@ include ph_hindi | |||
phonemetable ta hi | |||
include ph_tamil | |||
phonemetable ml hi | |||
include ph_malayalam | |||
phonemetable hu base | |||
include ph_hungarian | |||
@@ -265,6 +265,7 @@ wxSashLayoutWindow *win; | |||
f_trans = stdout; | |||
option_ssml = 1; | |||
option_phoneme_input = 1; | |||
// if(LoadVoice(voice_name,0) == NULL) |
@@ -780,7 +780,7 @@ int Translator::TranslateRoman(char *word, char *ph_out) | |||
else | |||
repeat = 0; | |||
if((prev==5) || (prev==50) || (prev==500)) | |||
if((prev > 1) && (prev != 10) && (prev != 100)) | |||
{ | |||
if(value >= prev) | |||
return(0); | |||
@@ -1353,7 +1353,7 @@ int Translator::TranslateNumber_1(char *word, char *ph_out, unsigned int *flags, | |||
if(Lookup("_dpt2",buf1)) | |||
strcat(ph_out,buf1); | |||
if(c == langopts.decimal_sep) | |||
if((c == langopts.decimal_sep) && isdigit(word[n_digits+1])) | |||
{ | |||
Lookup("_dpt",buf1); | |||
strcat(ph_out,buf1); |
@@ -511,7 +511,7 @@ const char *Translator::LookupSpecial(const char *string, char* text_out) | |||
SetWordStress(phonemes,flags[0],-1,0); | |||
DecodePhonemes(phonemes,phonemes2); | |||
sprintf(text_out,"[[%s]]",phonemes2); | |||
option_phoneme_input = 1; | |||
option_phoneme_input |= 2; | |||
return(text_out); | |||
} | |||
return(NULL); | |||
@@ -589,13 +589,14 @@ const char *Translator::LookupCharName(int c) | |||
DecodePhonemes(phonemes,phonemes2); | |||
sprintf(buf,"[[%s]] ",phonemes2); | |||
} | |||
option_phoneme_input |= 2; | |||
} | |||
else | |||
{ | |||
strcpy(buf,"[[(X1)(X1)(X1)]]"); | |||
option_phoneme_input |= 2; | |||
} | |||
option_phoneme_input = 1; | |||
return(buf); | |||
} | |||
@@ -806,9 +807,9 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix) | |||
} | |||
else | |||
{ | |||
sprintf(p,"%s %s %d %s %s [[______]]", | |||
sprintf(p,"%s %s %d %s %s", | |||
tone_punct_on,punctname,punct_count,punctname,tone_punct_off); | |||
option_phoneme_input = 1; | |||
return(CLAUSE_COMMA); | |||
} | |||
} | |||
else | |||
@@ -836,7 +837,7 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix) | |||
if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) | |||
return(punct_attributes[lookupwchar(punct_chars,c1)]); | |||
return(CLAUSE_COMMA); | |||
return(CLAUSE_SHORTCOMMA); | |||
} // end of AnnouncePunctuation | |||
#define SSML_SPEAK 1 |
@@ -490,6 +490,7 @@ int main (int argc, char **argv) | |||
option_waveout = 0; | |||
option_wordgap = 0; | |||
option_endpause = 1; | |||
option_phoneme_input = 1; | |||
option_multibyte = espeakCHARS_AUTO; // auto | |||
f_trans = stdout; | |||
@@ -1065,6 +1065,7 @@ ESPEAK_API espeak_ERROR espeak_Cancel(void) | |||
} | |||
SHOW_TIME("espeak_Cancel > LEAVE"); | |||
#endif | |||
embedded_value[EMBED_T] = 0; // reset echo for pronunciation announcements | |||
return EE_OK; | |||
} // end of espeak_Cancel | |||
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.39 08.Sep.08"; | |||
const char *version_string = "1.39.04 19.Sep.08"; | |||
const int version_phdata = 0x013900; | |||
int option_device_number = -1; |
@@ -1510,6 +1510,8 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
} | |||
n_phoneme_list = 0; | |||
WcmdqStop(); | |||
embedded_value[EMBED_T] = 0; | |||
return(0); | |||
} | |||
@@ -42,11 +42,12 @@ | |||
#define L_jbo 0x6a626f // jbo Lojban | |||
#define L_zhy 0x7a6879 // zhy | |||
// start of unicode pages for character sets | |||
#define OFFSET_GREEK 0x380 | |||
#define OFFSET_CYRILLIC 0x420 | |||
#define OFFSET_DEVANAGARI 0x900 | |||
#define OFFSET_TAMIL 0xb80 | |||
#define OFFSET_MALAYALAM 0xd00 | |||
#define OFFSET_KOREAN 0x1100 | |||
@@ -711,6 +712,7 @@ SetLengthMods(tr,3); // all equal | |||
break; | |||
case L('t','a'): // Tamil | |||
case L('m','l'): // Malayalam | |||
{ | |||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
@@ -722,6 +724,11 @@ SetLengthMods(tr,3); // all equal | |||
tr->langopts.stress_rule = 0; | |||
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | |||
tr->letter_bits_offset = OFFSET_TAMIL; | |||
if(name2 == L('m','l')) | |||
{ | |||
tr->letter_bits_offset = OFFSET_MALAYALAM; | |||
} | |||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); |
@@ -55,7 +55,7 @@ int option_sayas = 0; | |||
int option_sayas2 = 0; // used in translate_clause() | |||
int option_emphasis = 0; // 0=normal, 1=normal, 2=weak, 3=moderate, 4=strong | |||
int option_ssml = 0; | |||
int option_phoneme_input = 1; // allow [[phonemes]] in input | |||
int option_phoneme_input = 0; // allow [[phonemes]] in input | |||
int option_phoneme_variants = 0; // 0= don't display phoneme variant mnemonics | |||
int option_wordgap = 0; | |||
@@ -367,6 +367,9 @@ int IsAlpha(unsigned int c) | |||
if((c >= 0xb81) && (c <= 0xbe5)) | |||
return(1); // Tamil vowel signs and other signs | |||
if((c >= 0xd01) && (c <= 0xd57)) | |||
return(1); // Malayalam vowel signs and other signs | |||
if((c >= 0x300) && (c <= 0x36f)) | |||
return(1); // combining accents | |||
@@ -1938,7 +1941,7 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i | |||
if(!iswalpha(prev_in)) | |||
{ | |||
if((c == '\'') && (next_in == 'n')) | |||
if((c == '\'') && (next_in == 'n') && isspace(ptr[1])) | |||
{ | |||
// n preceded by either apostrophe or U2019 "right single quotation mark" | |||
ptr[0] = ' '; // delete the n | |||
@@ -2010,6 +2013,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
int letter_count = 0; | |||
int space_inserted = 0; | |||
int syllable_marked = 0; | |||
int decimal_sep_count = 0; | |||
char *word; | |||
char *p; | |||
int j, k; | |||
@@ -2030,6 +2034,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
embedded_ix = 0; | |||
embedded_read = 0; | |||
option_phoneme_input &= 1; // clear bit 1 (temporary indication) | |||
if((clause_start_char = count_characters) < 0) | |||
clause_start_char = 0; | |||
@@ -2264,6 +2269,7 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
} | |||
} | |||
} | |||
if(iswdigit(prev_out)) | |||
{ | |||
if(!iswdigit(c) && (c != '.') && (c != ',')) | |||
@@ -2272,6 +2278,13 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
space_inserted = 1; | |||
} | |||
} | |||
else | |||
{ | |||
if(prev_in != ',') | |||
{ | |||
decimal_sep_count = 0; | |||
} | |||
} | |||
if((c == '[') && (next_in == '[') && option_phoneme_input) | |||
{ | |||
@@ -2455,10 +2468,17 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
{ | |||
} | |||
else | |||
if((prev_out != ' ') && !iswdigit(prev_out) && (prev_out != langopts.decimal_sep)) // TEST2 | |||
if((prev_out != ' ') && !iswdigit(prev_out)) | |||
{ | |||
c = ' '; | |||
space_inserted = 1; | |||
if((prev_out != langopts.decimal_sep) || ((decimal_sep_count > 0) && (langopts.decimal_sep == ','))) | |||
{ | |||
c = ' '; | |||
space_inserted = 1; | |||
} | |||
else | |||
{ | |||
decimal_sep_count = 1; | |||
} | |||
} | |||
else | |||
if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) |
@@ -170,7 +170,7 @@ | |||
#define CLAUSE_VOICE 0 + 0x24000 | |||
#define CLAUSE_PERIOD 35 + 0x80000 | |||
#define CLAUSE_COMMA 20 + 0x41000 | |||
#define CLAUSE_SHORTCOMMA 15 + 0x41000 | |||
#define CLAUSE_SHORTCOMMA 5 + 0x41000 | |||
#define CLAUSE_QUESTION 35 + 0x82000 | |||
#define CLAUSE_EXCLAMATION 40 + 0x83000 | |||
#define CLAUSE_COLON 30 + 0x40000 |