SSML, Fix <prosody rate= >


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@187 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2008-08-22 23:12:35 +00:00
parent e312283d22
commit 37ded768c9
21 changed files with 122 additions and 183 deletions
-28
View File
@@ -361,17 +361,6 @@ l m n N p R s S
t tS v w x z Z
Dictionary ko_dict
a e E i ji o u u-
V
b c C c` ch d dZ g
h j J k k` kh l m
n N p p` ph r s S;
s` t t` th w
Dictionary hbs_dict
& @ @2 a A a: aI aU
@@ -395,16 +384,6 @@ p r R R2 s S t tS
v w x z
Dictionary rw_dict
a e i o u
* : b B c d dZ f
g h j J k l m n
N n^ p q R s S S;
t tS v w x z
Dictionary tr_dict
a e E i I o O u
@@ -424,10 +403,3 @@ I o u U y
h j J k l m n p
q r R s S t tS v
w x z Z
Dictionary da_dict
@- O V
d n p
+4 -5
View File
@@ -671,8 +671,7 @@
_) ane (mi a2ni:
_) anna an@
_) an (oi a2n
_) an (om a2n
anom (al a2n0m
_) anom a2n0m
&) an (_ @n
?8 &) an (_ a2n
@u) an (_$1 n
@@ -878,7 +877,7 @@
&) ar (in_ @r
v) ar (iA e@r
@) ar (ity ar
ar (ium 'e@r
ar (iu 'e@r
arom (at a2roUm
arre (_ A@
arred (_ A@d
@@ -1627,7 +1626,7 @@
acB) e (_ I2
e (Cic_ E
e (Cical 'E
e (Cium i:
e (CiuB i:
t) ech (_ Ek
m) e (chanic I
@@) eble (_ @b@L
@@ -2651,7 +2650,7 @@
r) is (y_ =@s
ithe (_ aID
i (tion 'I
&) ius I2@s
&) ius =I2@s
&) iu (m =i@
i (wo 'i:
C) i (x++ I
+5 -4
View File
@@ -23,7 +23,7 @@
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
//
// Updated: 2008-08-20 Michel Such <michel.such@free.fr>
// Updated: 2008-08-22 Michel Such <michel.such@free.fr>
//
// Letter classes:
@@ -42,7 +42,8 @@
ain (K E~ // pain
CC) ain (_ E~n2 // prochain arret
ai (_ e // dirai ferai...
CC) ai (_ E // vrai
_ess) ai (_ E // essai
_vr) ai (_ E // vrai
ais (_ Ez2 // dirais ferais...
ait (_ Et2 // dirait ferait...
aient (_ Et2 // diraient feraient...
@@ -221,7 +222,6 @@ _) ç' (P2v s
_cl) ef (_ e // clef
ein (K E~ // peindre
CC) ein (_ E~n2 // plein emploi
eint (_ E~t2
e (il E // vieille
ei E // neige
ell El // selle
@@ -470,7 +470,7 @@ _) ç' (P2v s
e (CC E // infect pelle mettre
e (Cr @
_) e (ff e // effet, effectuer
_) e (C% e // effet, effectuer
e (C_ E
e (t_ E
e (rC E
@@ -809,6 +809,7 @@ _) half _^_en
C) o (d_ O2
oe (ll w^a // moelleux
oe (i W2 // oeil
_) oe (C Y // oesophage
_ph) oe (C e // phoetus
oeu W // soeur coeur
+8 -3
View File
@@ -574,8 +574,10 @@ almoço aUm'OsU $verb
retorno xet'OrnU $verb
acordo &k'OrdU $verb
governo gov'ernU $noun
olho 'oljU $noun
colher kolj'Er $noun
?2 olho 'oljU $noun
?4 olho 'ol^U $noun
?2 colher kolj'Er $noun
?4 colher kol^'Er $noun
// MAIN WORD DICTIONARY
@@ -589,7 +591,8 @@ líderes l'ide*ys
mexa m'eS&
mexi meS'i
mexo m'eSU
mulher mulj'Er
?2 mulher mulj'Er
?4 mulher mul^'Er
mui mu~j
muito m'u~jtu // -s is included as a suffix
muita m'u~jt&
@@ -682,6 +685,8 @@ xiquexique S,ikeS'iky
?2 menores men'O*is
?2 melhor melj'Or
?2 melhores melj'O*is
?4 melhor mel^'Or
?4 melhores mel^'O*is
?2 mouse m'aUzi
?1 menu menu
?1 next n'Ekst
+6 -5
View File
@@ -34,7 +34,7 @@
?1 a (l_ 'A // eg: Portugal, capital, etc.
?1 a (lK ,A // Algarve, Almerinda, etc...
?2 al (K aU
?2 alh alj
a (lh+ a
a (m &~
a (mAr_ &
@@ -150,7 +150,7 @@
?2 pr) ee (n ee
?2 el (K EU
?2 elh elj
e (lh+ e
v) e (lhA_ E
e (be_ E
@@ -394,7 +394,7 @@
i (_ 'i
?2 il (K iU
?2 ilh ilj
i (lh+ i
im (_ iN
im (C im
@@ -471,7 +471,8 @@
l) l
lh l^
A) lh lj
?1 A) lh l^ //
?1 A) lh l^
?4 A) lh l^
.group m
@@ -553,7 +554,7 @@
?1 o (l_ 'O
?2 ol (_ Ow
?2 olh olj
o (lh+ o
?2 _) o (lhA_ O
?2 _) o (lhAm_ O
om (_ oN
+1 -1
View File
@@ -8,7 +8,7 @@ phonemes en_us
dictrules 3 6
option 12 1 // reduce [t]
stressLength 148 125 170 170 0 0 260 285
stressLength 145 125 170 170 0 0 265 290
stressAmp 17 16 20 20 20 22 23 20
replace 03 I i
+4 -55
View File
@@ -1,4 +1,4 @@
50 phoneme tables
47 phoneme tables
new total
base 98 98
base2 24 117
@@ -47,9 +47,6 @@
tr 18 122
ku 18 122
id 15 119
rw 15 124
ko 18 145
da 15 128
Data file Used by
b/b [b] base
@@ -189,7 +186,6 @@ dzh/xdzh [dZ] base
dzh/xdz_pzd [J] base
[J2] hi
envelope/i_risefall [11] zh
envelope/i_risefall2 [+2] rw
envelope/p_214 [214] zh
envelope/p_512 [8] vi
envelope/p_fall [2] vi
@@ -201,7 +197,6 @@ envelope/p_fall [2] vi
[22] zh
[33] zh
[53] zh
[+] rw
envelope/p_fallrise [4] vi
envelope/p_level [1] vi
[3] zhy
@@ -406,13 +401,11 @@ n^/n^#_ [n^#] is
n/_n [n] base
[n;] ro
[n] zh
[n] da
n/n_ [n] base
[n2] fr
[n;] ro
n/n@ [(@)] base
n/n#_ [n#] is
[n] da
n^/n^a [(a)] base
n/na [(a)] base
n^/n^e [(e)] base
@@ -425,7 +418,6 @@ n/nj [n] base
[n.] base
[n^] base
[n;] ro
[n] da
n/n_long_ [n] zh
nn/_nn [N] base
[N] en
@@ -457,10 +449,10 @@ r2/r2o [(o)] base
r2/r2u [(u)] base
r3/r_ [r/] base
[r/] af
[r/] fr
[r/] ru
r3/r_@ [(@)] base
r3/r#_ [r#] is
r3/r_2 [r/] fr
r3/r_a [(a)] base
r3/r_e [(e)] base
r3/r_i [(i)] base
@@ -506,10 +498,7 @@ r3/rx [*] base
r3/rz_cs [R^] sk
[R^/] sk
r3/@tap [**] base
[r] ko
r3/@tap2 [**] base
[r] ko
r/a_ [r] da
r/r [r] base
[r-] base
[r] en_sc
@@ -581,7 +570,6 @@ ufric/s [s] base
[z2] fr
[s] es
[s#] pt
[s`] ko
ufric/s_ [s] base
[z] base
[s2] fi
@@ -614,7 +602,6 @@ ufric/sh3 [S] hr
[Z] hr
ufric/sh_pzd [S;] base
[S;] ro
[s`] ko
ufric/sh_pzd_ [S;] base
[Z;] base
ufric/sh_pzd2 [S] sr
@@ -707,7 +694,6 @@ ustop/k_unasp [k] base
[k] sk
[k] el
[k] zhy
[k`] ko
ustop/k_unasp_ [k] zh
ustop/null [?] base
ustop/p [p] base
@@ -750,7 +736,6 @@ ustop/p_unasp [p] base
[p] la
[p;] ro
[p] zh
[p`] ko
ustop/p_unasp_ [p] base2
[p] fi
[p] hi
@@ -787,7 +772,6 @@ ustop/t_dnt [t] base
[t;] ro
[t[] vi
[t] sw
[t`] ko
ustop/t_dnt2 [t[] vi
ustop/t_hi [t] hi
[th] hi
@@ -830,7 +814,6 @@ ustop/ts_pzd_ [c] hi
[c] hu
ustop/ts_pzd2 [c] hi
[c] hu
[c`] ko
ustop/ts_pzd3 [tS;] hr
[dZ;] hr
ustop/t_sr [d] sr
@@ -890,7 +873,6 @@ vdiph2/uw [u:] en_us
vdiph2/uw_2 [u:] en
vdiph2/uw_3 [yU] ro
vdiph2/uw_4 [u:] en_n
vdiph2/uw_6 [y] ko
vdiph2/y@ [y@] zh
vdiph2/y#@ [Y@] af
vdiph2/yu [yU] nl
@@ -1055,7 +1037,6 @@ vdiph/yi [yi] fi
vdiph/y#i [Yi] fi
vdiph/y#i_2 [Yy] is
vdiph/yi_fr [w^i] fr
[ji] ko
vdiph/y#y [Yy] fi
vdiph/y#y_2 [Yy] af
[eoi] zhy
@@ -1199,7 +1180,6 @@ vowel/@_3 [@] en_sc
[@2] en_sc
[@5] en_sc
[@] de
[W] fr
[W2] fr
[@3] hi
vowel/3_2 [3:] en_n
@@ -1210,7 +1190,8 @@ vowel/3_en [3:] en
[3:] af
vowel/@_4 [@] nl
[@] no
vowel/@_5 [@] en_us
vowel/@_5 [W] fr
vowel/@_6 [@] en_us
vowel/8 [o-] zh
vowel/8_2 [U] en_us
[8] sv
@@ -1233,15 +1214,12 @@ vowel/a [a] en_n
[a] it
[a] zh
[a] id
[a] ko
vowel/a# [a/] base2
[a2] en_sc
[a2] en_wi
[&] sr
[&] pt
[&/] pt
[a#] rw
[a/] rw
vowel/a_2 [a] base2
[a] en_wi
[A:] en_wi
@@ -1252,8 +1230,6 @@ vowel/a_2 [a] base2
[a] pt_pt
[a] ro
[a:] vi
[a] rw
[a] da
vowel/a#_2 [&] hr
[a2] sv
[&] is
@@ -1266,7 +1242,6 @@ vowel/a_3 [a] en_sc
[a:] la
[a] is
[A] zh
[A] da
vowel/a#_3 [a2] en
[a2] en_n
[a2] en_us
@@ -1314,7 +1289,6 @@ vowel/aa_6 [A] de
vowel/aa_7 [A] nl
vowel/aa_8 [0] en_us
[A:] en_us
[V] ko
vowel/a_en [a] en
[aa] en
[A] fr
@@ -1341,10 +1315,6 @@ vowel/e [e] base2
[e] grc
[e] vi
[e] id
[e] rw
[e#] rw
[e] ko
[e] da
vowel/e# [I] en_sc
[I2] en_sc
vowel/e_2 [eI] en_sc
@@ -1375,7 +1345,6 @@ vowel/ee_2 [E] en
[E2] nl
[E] zh
[E#] ku
[&] da
vowel/ee#_2 [E-] sv
vowel/ee_3 [&] af
[&:] af
@@ -1403,7 +1372,6 @@ vowel/e_mid [E] en_rp
[E] tr
[E] id
[E2] id
[E] da
vowel/e_mid2 [E] af
[E] de
[E2] de
@@ -1416,7 +1384,6 @@ vowel/e_mid2 [E] af
[e] el
[e] sw
[e] tr
[E] ko
vowel/@_fnt [@] en_wi
[@2] en_wi
[@2] hr
@@ -1441,9 +1408,6 @@ vowel/i [i] base2
[i] zhy
[i] zh
[i] sw
[i] rw
[i#] rw
[i] ko
vowel/i# [i] en_rp
[y:] cy
vowel/i_2 [i:] en_rp
@@ -1460,7 +1424,6 @@ vowel/i_4 [i] fi
[i] hu
[I] it
[i] is
[i] da
vowel/i_5 [i:] en_sc
vowel/i#_5 [y] pt_pt
[i/] pt_pt
@@ -1546,16 +1509,12 @@ vowel/o [o] base2
[o] grc
[o:] sv
[o] id
[o] rw
[o#] rw
vowel/o_2 [o:] cy
[o2] fr
[o:] hi
[o:] hu
[o:] la
[o:] no
[o] ko
[o] da
vowel/o-_2 [V] en_n
[V] en_wm
vowel/o_3 [oU] en_sc
@@ -1564,13 +1523,11 @@ vowel/o-_3 [U] en_rp
vowel/o_4 [oU] en_n
vowel/o-_4 [o] ro
vowel/o_5 [O] nl
[O] da
vowel/o_6 [O:] nl
vowel/o_7 [o] ku
vowel/oe [W] en
[W] af
[W] de
[W] da
vowel/oe_2 [W] no
[W] tr
vowel/oe_4 [W] sv
@@ -1607,7 +1564,6 @@ vowel/oo_1 [O:] en_n
vowel/oo_2 [0] en_sc
[O] cy
[o] cs
[0] da
vowel/oo_3 [O] af
vowel/oo_4 [O] base2
[0] en_wm
@@ -1685,9 +1641,6 @@ vowel/u_bck [u] base2
[u] is
[u] zhy
[u] zh
[u] rw
[u#] rw
[u] ko
vowel/u_bck2 [u:] la
vowel/u_fnt [u:] en_rp
vowel/uu [U] en
@@ -1708,7 +1661,6 @@ vowel/uu_bck [U] en_n
[U] pt
[U] no
[u] zhy
vowel/u_unr [u-] ko
vowel/V [3] en_sc
vowel/V_2 [V] en
[a] af
@@ -1720,7 +1672,6 @@ vowel/V_3 [V] en_rp
[V] ta
vowel/V_4 [V] en_sc
[@:] vi
[V] da
vowel/V_6 [V] en_us
vowel/y [y:] en
[y:] de
@@ -1739,7 +1690,6 @@ vowel/y# [Y:] en
[Y] ro
[y] vi
[oe] zhy
[Y] ko
vowel/y## [y#] is
vowel/y_2 [y] fr
[y"] fr
@@ -1755,7 +1705,6 @@ vowel/y_5 [y:] sv
[y] ku
vowel/yy [y"] fr_ca
[y] no
[Y] da
vowel/yy_3 [y] sv
vowel/yy_4 [y] de
[y] hu
+3 -3
View File
@@ -17,7 +17,7 @@ endphoneme
phoneme @ // Schwa
vowel starttype (@) endtype (@)
formants vowel/@_5
formants vowel/@_6
unstressed
length 140
endphoneme
@@ -104,7 +104,7 @@ endphoneme
phoneme V
vowel starttype (a) endtype (@)
length 170
length 175
formants vowel/V_6
reduceto @ 0
endphoneme
@@ -186,7 +186,7 @@ endphoneme
phoneme u:
vowel starttype (u) endtype (u)
length 170
length 180
formants vdiph2/uw
endphoneme
+7 -7
View File
@@ -33,7 +33,6 @@ endphoneme
phoneme a2
vowel starttype (a) endtype (a)
length 150
unstressed
formants vowel/a_5
endphoneme
@@ -141,7 +140,7 @@ endphoneme
phoneme W
vowel starttype (@) endtype (@)
length 180
formants vowel/@_3
formants vowel/@_5
reduceto Y 1
endphoneme
@@ -155,7 +154,7 @@ endphoneme
phoneme w^a
vowel starttype (o) endtype (a)
length 220
length 240
formants vwl_fr/w_a
endphoneme
@@ -360,7 +359,7 @@ phoneme r
length 100
lengthmod 3
beforenotvowel r/
formants vwl_fr/@R3+r3/rx%25
formants vwl_fr/@R3+r3/rx%40
after t r/tr
after k r/tr
after p r/tr
@@ -375,7 +374,7 @@ phoneme r2 // silent unless followed by vowel
length 100
lengthmod 3
beforenotvowel NULL
formants vwl_fr/@R3+r3/rx%25
formants vwl_fr/@R3+r3/rx%40
before _ r/r
endphoneme
@@ -386,7 +385,7 @@ phoneme R
length 100
lengthmod 3
beforenotvowel r/
formants vwl_fr/@R3+r3/rx%25
formants vwl_fr/@R3+r3/rx%40
// after r r/rr
endphoneme
@@ -395,7 +394,7 @@ phoneme r/ // variant of [r] when not preceding a vowel
vowelout f1=0 f2=800 -50 50 f3=-100 100 len=0 brk
length 100
lengthmod 2
formants r3/r_+r3/rx%25
formants r3/r_2+r3/rx%40
before n r3/r_n+r3/rx%50
after _ r/rr
after t r/trr
@@ -509,3 +508,4 @@ endphoneme
-9
View File
@@ -1275,12 +1275,3 @@ include ph_kurdish
phonemetable id base2
include ph_indonesian
phonemetable rw base2
include ph_kinyarwanda
phonemetable ko hi
include ph_korean
phonemetable da is
include ph_danish
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.
+12 -2
View File
@@ -2,7 +2,7 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.36
AppVerName=eSpeak version 1.38
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes
@@ -72,6 +72,10 @@ bs.v1=Odaberite jezik kojeg
bs.v2=ili pritisnite Enter za prihvat zadanih.
bs.v3=Upišite, npr. bs (za Bosanski) ili s varjantom: bs+f3
fr.v1=Sélectionnez les voix à installer
fr.v2=ou appuyez sur Entrée pour accepter les valeurs par défaut.
fr.v3=Entrez le nom des voix, ex : (pour le Français) fr, ou avec une variante ex : fr+f3
hr.v1=Odaberite jezik kojeg želite instalirati
hr.v2=ili pritisnite Enter za prihvat zadanih.
hr.v3=Upišite, npr. hr (za Hrvatski) ili s varjantom: hr+f3
@@ -109,6 +113,7 @@ begin
case lang_main of
$04: Result := 'zh';
$05: Result := 'cs';
$06: Result := 'da';
$07: Result := 'de';
$08: Result := 'el';
$09: Result := 'en';
@@ -118,6 +123,7 @@ begin
$0e: Result := 'hu';
$0f: Result := 'is';
$10: Result := 'it';
$12: Result := 'ko';
$13: Result := 'nl';
$14: Result := 'no';
$15: Result := 'pl';
@@ -136,6 +142,7 @@ begin
$41: Result := 'sw';
$49: Result := 'ta';
$52: Result := 'cy';
$87: Result := 'rw';
end;
// is there a match on the full language code?
@@ -173,6 +180,7 @@ begin
'bs': value := $41a; // should be $141a but Jaws crashes on startup
'cs': value := $405;
'cy': value := $452;
'da': value := $406;
'de': value := $407;
'el': value := $408;
'en': value := $409;
@@ -182,9 +190,10 @@ begin
'hi': value := $439;
'hr': value := $41a;
'hu': value := $40e;
'is': value := $40f;
'id': value := $421;
'is': value := $40f;
'it': value := $410;
'ko': value := $412;
'mk': value := $42f;
'nl': value := $413;
'no': value := $414;
@@ -192,6 +201,7 @@ begin
'pt': value := $416;
'ro': value := $418;
'ru': value := $419;
'rw': value := $487;
'sk': value := $41b;
'sr': value := $81a;
'sv': value := $41d;
+1 -1
View File
@@ -1,7 +1,7 @@
[Setup]
AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.36
AppVerName=eSpeakEdit version 1.38
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit
+5 -5
View File
@@ -5,8 +5,8 @@
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,36,00
PRODUCTVERSION 1,0,36,00
FILEVERSION 1,0,38,00
PRODUCTVERSION 1,0,38,00
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -24,14 +24,14 @@ BEGIN
VALUE "Comments", "\0"
VALUE "CompanyName", "Jonathan Duddington\0"
VALUE "FileDescription", "Text to Speech\0"
VALUE "FileVersion", "1, 0,36,00\0"
VALUE "InternalName", "espeak1.36\0"
VALUE "FileVersion", "1, 0,38,00\0"
VALUE "InternalName", "espeak1.38\0"
VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "espeak_sapi.dll\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "espeak TTS\0"
VALUE "ProductVersion", "1, 0, 36, 00\0"
VALUE "ProductVersion", "1, 0, 38, 00\0"
VALUE "SpecialBuild", "\0"
END
END
+9 -2
View File
@@ -1747,14 +1747,21 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb
return(CLAUSE_VOICE);
case SSML_SPEAK + SSML_CLOSE:
terminator = CLAUSE_PERIOD;
// unwind stack until the previous <voice> or <speak> tag
while((n_ssml_stack > 1) && (ssml_stack[n_ssml_stack-1].tag_type != SSML_SPEAK))
{
n_ssml_stack--;
}
return(CLAUSE_PERIOD + GetVoiceAttributes(px, tag_type));
case SSML_VOICE + SSML_CLOSE:
// unwind stack until the previous <voice> or <speak> tag
while((n_ssml_stack > 1) && (ssml_stack[n_ssml_stack-1].tag_type != (tag_type - SSML_CLOSE)))
while((n_ssml_stack > 1) && (ssml_stack[n_ssml_stack-1].tag_type != SSML_VOICE))
{
n_ssml_stack--;
}
terminator=0; // ?? Sentence intonation, but no pause ??
return(terminator + GetVoiceAttributes(px, tag_type));
case HTML_BREAK:
+5 -1
View File
@@ -113,7 +113,11 @@ void SetSpeed(int control)
int wpm;
int wpm2;
wpm2 = wpm = embedded_value[EMBED_S];
wpm = embedded_value[EMBED_S];
if(control == 2)
wpm = embedded_value[EMBED_S2];
wpm2 = wpm;
if(wpm > 369) wpm = 369;
if(wpm < 80) wpm = 80;
+2 -2
View File
@@ -35,8 +35,8 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.37.14 20.Aug.08";
const int version_phdata = 0x013400;
const char *version_string = "1.38 22.Aug.08";
const int version_phdata = 0x013800;
int option_device_number = -1;