diff --git a/dictsource/de_list b/dictsource/de_list
index 05f38cd2..dd4b7731 100644
--- a/dictsource/de_list
+++ b/dictsource/de_list
@@ -490,6 +490,7 @@ heimat haImat
herberg hE*bE*g
historie $alt
hm h@m
+horsam ho:zA:m
hostie $alt
illegitim Ile:gi:t'i:m
@@ -513,9 +514,11 @@ januar janu:A:*
kamelie $alt
kastanie $alt
kid kId
-kommend kOm'@nd
komödie $alt
konkret k%ONk@-*e:t
+konservativ $1
+konstatier kOnStat'i:*
+konsul $1
kurie $alt
lakaienhaft l%akaInhaft
@@ -549,6 +552,7 @@ oboe o:bo:@
orgie $alt
ok o:k'e:
+paradies $3
passage pas'aZ@
perplex $2
petersilie $alt
@@ -573,6 +577,7 @@ sofort $2
sogar $2
soweit $2
sowohl $2
+sparsam SpA:*zA:m
spinozaisch spi:n'o:tsaIS
stalagmit stalagm'It
system z%IstEm
@@ -581,6 +586,7 @@ tag tA:g
the D@ // English
theater te:'A:t3
train t@-*e:n
+turin $2
tuerei tu:*aI
unten Unt@n
diff --git a/dictsource/de_rules b/dictsource/de_rules
index a6a5edbe..4203d91a 100644
--- a/dictsource/de_rules
+++ b/dictsource/de_rules
@@ -122,6 +122,11 @@
_) ba (lA b%a
_) ba (ll@ b%a
&) bar (_S3 bA:*
+ &) bare (_S4 bA:*@
+ &) barem (_S5 bA:*@m
+ &) baren (_S5 bA:*@n
+ &) barer (_S5 bA:*3
+ &) bares (_S5 bA:*@s
_) b (ebC b
_) b (ecC b
_) b (eet b
@@ -242,6 +247,7 @@
eg (t_ e:k
ell (_ 'El
+ ll) e (l e:
&) e (_S1 @
@t) e (_S1 @
&) e (BB_ E2
@@ -284,7 +290,8 @@
&) er (r_ E
w) er (k_ E*
&) er (nd_ @*
- @) erin (_ @rIn
+ &) erin (_ @*In
+ &) erisch (_ @*IS
@) es (_S2 @s
&) et (_ @t
ig) et (_S2 @t
@@ -322,6 +329,8 @@
_) emph (@ %Emf
_) emp (ir %Emp
_) ene (rg %e:nE
+ @) en (i e:n
+ @) e (nsi E
_) ent (@P3 _|%Ent
_) enten Ent@n
_) ent (er Ent
@@ -341,6 +350,7 @@
_) er (stC E*
_) er (ste E*
_) er (ste@@P2 _|%E*
+ @) er (v E*
mod) er (n E*
_) entert _^_EN
@@ -406,7 +416,7 @@
ge (rman gE
ge (rät g@
@) ght (_ _^_EN
- graph g@-*A:f
+ graph g@-*Af
graph (_ g@-*'A:f
green _^_EN
guide _^_EN
@@ -511,6 +521,9 @@
@) ing (_N _^_EN
_) in (k %In
_) inter Int@*
+ &) in (_ i2n
+ l) in (_ 'i:n
+ s) in (_ 'i:n
@) ion (_ j'o:n
@) io (n Io:
io Io:
@@ -572,18 +585,20 @@
k) k
// @) keit (_$4 kaIt
+// @) keiten (_$6 kaIt@n
kolleg k%Ole:g
+ _) komme (C@ k%OmE
_) ko (mp k%O
_) ko (mpost kO
+ _) ko (n@ k%O
+ _) ko (nter kO
.group l
_) l (_ El
l l
l) l
- lin (_ l'i:n
- l) lin (_ 'i:n
lady _^_EN
_) land (C@P4 l'ant
@@ -650,6 +665,7 @@
// ng (l Ng
o) ng (e ng
o) ng (A Ng
+ u) ng (i Ng
ng (r Ng
nk Nk
nk (A nk
@@ -691,6 +707,7 @@
t) ogen (_ o:g'e:n
@) o (gin_ 'o:
o (l_ 'o:
+ o (lsam o:
o (m_ 'o:
@A) o (n_ 'o:
@) oo (_ u:
@@ -710,6 +727,7 @@
pf pF
ph f
+ _) para (@ p,a*a
passagie pasaZ'i:
_) pay _^_EN
_) peri p,e:*i:
@@ -765,7 +783,6 @@
sch (en_ sC
_) sh S
sh (K S
-
sou (nd saU
p) s (a s
p) s (i s
@@ -930,6 +947,8 @@
_) vehe ve:he:
_) ver (@P3 f%E*
_) ver (bal v%E*
+ @) versich fE*z,IC
+ @) vergess fE*g,Es
_) viel (@P4 f'i:l
_) vier (g@P4 f'i:*
_) viet vIEt
diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes
index a46fe656..ba446c81 100644
--- a/dictsource/dict_phonemes
+++ b/dictsource/dict_phonemes
@@ -43,8 +43,8 @@ x z
Dictionary de_dict
3 @ @- a A A: aI aU
-E E2 E: e: I i: O o:
-OY U u: W y y: Y:
+E E2 E: e: I i2 i: O
+o: OY U u: W y y: Y:
* : ; b C C2 d D
dZ f g h j k l m
@@ -156,10 +156,10 @@ Dictionary hu_dict
A a: E e e: i i: o
o: u u: y Y y: Y:
-* : b c C d dZ f
-g h j J k l m n
-N n^ p R s S s2 t
-tS ts v z Z
+: b c C d dZ f g
+h j J k l m n N
+n^ p R s S s2 t tS
+ts v z Z
Dictionary it_dict
diff --git a/dictsource/hu_list b/dictsource/hu_list
index 911edf34..a36e7c88 100644
--- a/dictsource/hu_list
+++ b/dictsource/hu_list
@@ -284,6 +284,3 @@ _. pont
-// Names
-ricárd RiCa:Rd
-richard RiCa:Rd
diff --git a/dictsource/hu_rules b/dictsource/hu_rules
index 60e78560..246fd6d8 100644
--- a/dictsource/hu_rules
+++ b/dictsource/hu_rules
@@ -202,6 +202,10 @@ szamue) ly lli
r (C R
rr RR
+ _) richa (rd RiCa:
+ _) richá (rd RiCa:
+
+
.group s
s S
sz s
diff --git a/dictsource/pt_list b/dictsource/pt_list
index 7f6b0d4a..d97594fe 100755
--- a/dictsource/pt_list
+++ b/dictsource/pt_list
@@ -1,4 +1,4 @@
-
+
// This file in UTF8 encoded
// Options
@@ -6,28 +6,10 @@
// ?2 Brazilian Portuguese
-// Letters
-// 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.
// character names
-_á ,a&g'udU
-_à ,agR'avi
-_â ,asirkuNfl'EksU
-_ã ,atS'iU
-_ç s,esed'elj&
-_é ,e&g'udU
-_ê ,asirkuNfl'EksU
-_í ,i&g'udU
-_ó ,o&g'udU
-_ô ,osirkuNfl'EksU
-_õ ,otS'iU
-_ú ,u&g'udU
-_ü ,utR'em&
-
_cap maI'uskulU
_?A l'etR&
_?? s'imbolU
@@ -42,10 +24,10 @@ _$ s,ifR'&U~
_% pors'eINtU
_& 'e
?1 _' ap'Ost@-*,ofy
-?2 _' ap'Ost@-*,ofU
-_( ,ab@-*ipa*'eINtezi
+?2 _' ap'OstR,ofU
+_( ,abRipa*'eINtezi
_) f,ES&pa*'eINtezi
-_* ,aste*'isku
+_* ,aste*'iskU
_+ m'aIs#
_, v'irgul&
@@ -81,7 +63,7 @@ _" 'abRi;'asp&||d'upl&s#
//********
?1_0 z'Eru
-?2_0 z'E*u
+?2_0 z'E*U
?1_1 'um
?2_1 'uN
_2 d'oIs#
@@ -200,13 +182,20 @@ ue $abbrev
unts $abbrev
usb $abbrev
+// roman numerals
+?1 ii d'oIs# $abbrev
+?1 iii tr'es# $abbrev
+?1 iv kw'atru $abbrev
-dr $dot
-mr $dot
-mrs $dot
-prof pr'Of $dot
-sr $dot
-sra ,Es;'Errj'a $dot
+
+dr $dot
+dra $dot
+mr $dot
+mrs $dot
+prof pr'Of $dot
+sr $dot
+?1 sra ,Es;'Errj'a $dot
+?2 sra $dot
// articles
@@ -513,12 +502,34 @@ há $u+
// Letter names
+// 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.
+// a e o à é can also be words
+
_a a
_e E
_o O
+_à ,agR'avi
+_é ,e&g'udU
a a $atend
e E $atend // assume letter-e at end of sentence
o O $atend
+à ,agR'avi $atend
+é ,e||&g'udU $atend
+
+á ,a||&g'udU
+â ,a||sirkuNfl'EksU
+ã ,atS'iU
+ç s,esed'elj&
+è ,egR'avi
+ê ,e||sirkuNfl'EksU
+í ,i&g'udU
+ó ,o&g'udU
+ô ,o||sirkuNfl'EksU
+õ ,otS'iU
+ú ,u&g'udU
+ü ,utR'em&
// some common adjectives and adverbs
@@ -578,7 +589,7 @@ roxo x'oSU
?1 cancel k'&ns'El
?1 caps k'aps
?1 com kom
- ctrl k'oNt:r,Ol
+?1 ctrl k'oNt:r,Ol
?1 dat d'at
?1 doc d'Ok
?1 delete d'il'it
@@ -589,6 +600,7 @@ roxo x'oSU
?1 end 'end
?1 escape Sk'eIpy
?1 explorer ,ekspl'O:r&r-
+?2 explorer ekspl'O*er
?1 eyes 'aiz
?1 frame fr'eImy
?2 frame fR'eImi
@@ -615,6 +627,7 @@ roxo x'oSU
?2 maior maI'Or
?1 menor myn'Or-
?2 menor men'Or
+?2 mouse m'aUzi
?1 menu menu
?1 next n'Ekst
ok Ok'eI
@@ -632,8 +645,8 @@ roxo x'oSU
?1 scroll sk:r'ol
?1 site s'aIt
?2 site s'aItSi
-?1 software s'Oft,w'Er-
-?2 software s'Oftwe@-
+?1 software s'Oft,w'Er-
+?2 software s'Oftwe@-
?1 space sp'eIsy
?1 sporting sp'Ort,ing
?1 tab t'ab
@@ -660,8 +673,8 @@ louis _^_FR
espeak isp'i:k
?1 espeakedit isp'i:kEd,it
?1 fedora _^_EN
-?1 firefox f'ai&rfOks
-?2 firefox f'ai@fOks
+?1 firefox f'ai&rfOks
+?2 firefox f'ai@fOks
?1 front fr'ont
?1 jaws dZ'au:z
?2 jaws dZ'Os
@@ -686,7 +699,7 @@ louis _^_FR
?1 Publisher p'&bl,iS&r-
?1 reader r'id,&r-
?1 setup s'Et'&p
-?1 scout sk'aut // Nero scout
+?1 scout sk'aut // Nero scout
?1 skype sk'aip
slackware sl'akwe@
?1 smart sm'art // nero StartSmart
@@ -763,3 +776,4 @@ volkmann f'Olkman
+
diff --git a/dictsource/pt_rules b/dictsource/pt_rules
index 93425821..5669ee60 100755
--- a/dictsource/pt_rules
+++ b/dictsource/pt_rules
@@ -1,4 +1,4 @@
-// translation rules Brazilian
+// translation rules Brazilian
// This file is UTF-8 encoded
// Options
@@ -137,10 +137,23 @@
e (be_ E
e (bem_ E
e (bes_ E
+ e (ca_ E
e (ce_ E
e (cem_ E
e (ces_ E
+
+ e (clA_ E
+ e (clAs_ E
+ e (clAm_ E
+ e (co_ E
+ e (la_ E
+ e (las_ E
+
+ e (rA_ E
+ e (rAm_ E
+ e (rAs_ E
+
e (stA_ E
e (stAm_ E
e (stAs_ E
@@ -148,14 +161,28 @@
e (rnA_ E
e (rnAm_ E
- e (rnAs_ E
- e (rtA_ E
+ e (rnAs_ E
+
+e (rtA_ E
e (rtAm_ E
e (rtAs_ E
- e (rrA_ E
+
+e (rrA_ E
e (rrAm_ E
e (rrAs_ E
+ e (rvA_ E
+ e (rvAm_ E
+ e (rvAs_ E
+
+ e (ve_ E
+ e (vem_ E
+ e (ves_ E
+
+ e (rrAs_ E
+
+
+
e (x_ E
e (xA_ E
e (xAm_ E
@@ -384,7 +411,12 @@
on (K oN
o (na_ o
onh on^
- o (rCA_ O
+
+ o (brA_ O
+ o (brAm_ O
+ o (brAs_ O
+
+o (rCA_ O
o (rCAm_ O
o (rCAs_ O
o (stA_ O
diff --git a/phsource/compile_report b/phsource/compile_report
index 2a9a17a5..a1016fe1 100644
--- a/phsource/compile_report
+++ b/phsource/compile_report
@@ -10,7 +10,7 @@
en_wm 30 144
af 38 128
cy 29 122
- de 30 121
+ de 31 122
eo 13 108
fi 40 127
fr 32 118
@@ -456,7 +456,7 @@
1 vowel/@_hgh no
19 vowel/i base2 en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ++
1 vowel/i# cy
- 4 vowel/i_2 de nl la sv
+ 5 vowel/i_2 de nl la sv
2 vowel/i_3 af sk
4 vowel/i_4 fi hu it is
5 vowel/i_5 en_sc
@@ -607,7 +607,7 @@
1 w/wa base
1 w/we base
3 w/wi base vi zh_yue
- 11 w/wi2 en en_n en_us en_sc en_rp en_wm de nl la sv no
+ 12 w/wi2 en en_n en_us en_sc en_rp en_wm de nl la sv no
1 w/wo base
1 w/wu base
5 w/xw base
diff --git a/phsource/ph_af b/phsource/ph_afrikaans
old mode 100644
new mode 100755
similarity index 100%
rename from phsource/ph_af
rename to phsource/ph_afrikaans
diff --git a/phsource/ph_german b/phsource/ph_german
index 8dfadb15..c99f8c09 100755
--- a/phsource/ph_german
+++ b/phsource/ph_german
@@ -105,6 +105,15 @@ phoneme i:
before * DFT+40
endphoneme
+phoneme i2
+ vowel starttype (i) endtype (i)
+ length 180
+ formants vowel/i_2
+ after w w/wi2
+ before * DFT+40
+ reduceto I 4
+endphoneme
+
phoneme u:
vowel starttype (u) endtype (u)
diff --git a/phsource/ph_portugual b/phsource/ph_portugal
similarity index 100%
rename from phsource/ph_portugual
rename to phsource/ph_portugal
diff --git a/phsource/phonemes b/phsource/phonemes
index 713ee767..5642638c 100644
--- a/phsource/phonemes
+++ b/phsource/phonemes
@@ -1147,7 +1147,7 @@ phonemetable en_wm en
include ph_english_wm
phonemetable af base
-include ph_af
+include ph_afrikaans
phonemetable cy base
include ph_welsh
@@ -1208,7 +1208,7 @@ phonemetable pt base2
include ph_pt_brazil
phonemetable pt_pt pt
-include ph_portugual
+include ph_portugal
phonemetable ro base2
include ph_romanian
diff --git a/src/extras.cpp b/src/extras.cpp
index 9b57423f..c30e5c68 100644
--- a/src/extras.cpp
+++ b/src/extras.cpp
@@ -1165,7 +1165,7 @@ int x;
}
#endif
-char* text1 = "Hello World. This is the second sentence";
+char* text1 = "Hello World2. This is the second sentence";
void TestTest(int control)
{//=======================
@@ -1174,7 +1174,7 @@ void TestTest(int control)
unsigned int ix=0;
char textbuf[2000];
espeak_VOICE voice;
- espeak_VOICE *voice2;
+ unsigned int unique_identifier=0;
//FindPhonemesUsed();
//return;
@@ -1211,8 +1211,6 @@ if(control==2)
espeak_SetSynthCallback(TestSynthCallback);
espeak_SetUriCallback(TestUriCallback);
- unsigned int unique_identifier=0;
- int index=0;
espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, NULL);
espeak_SetParameter(espeakPUNCTUATION, 1, 0);
diff --git a/src/readclause.cpp b/src/readclause.cpp
index edcb3d74..7d91199d 100644
--- a/src/readclause.cpp
+++ b/src/readclause.cpp
@@ -38,7 +38,7 @@
espeak_VOICE *SelectVoice(espeak_VOICE *voice_select, int *variant);
-char *xmlbase = NULL; // base URL from
+char *xmlbase = ""; // base URL from
int namedata_ix=0;
int n_namedata = 0;
@@ -1316,6 +1316,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb
case SSML_AUDIO + SSML_CLOSE:
if(uri_callback == NULL)
break;
+ PopParamStack(tag_type, outbuf, outix);
return(CLAUSE_NONE);
case SSML_BREAK:
diff --git a/src/synthdata.cpp b/src/synthdata.cpp
index c63921f8..e31c4e57 100755
--- a/src/synthdata.cpp
+++ b/src/synthdata.cpp
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
-const char *version_string = "1.26.08 19.Jun.07";
+const char *version_string = "1.26.09 20.Jun.07";
const int version_phdata = 0x012601;
int option_device_number = -1;
diff --git a/src/voices.cpp b/src/voices.cpp
index fb77ba0d..d0b30ad0 100755
--- a/src/voices.cpp
+++ b/src/voices.cpp
@@ -52,8 +52,7 @@ int tone_points[10] = {600,170, 1200,135, 2000,110, 3000,110, -1,0};
// limit the rate of change for each formant number
//static int formant_rate_22050[9] = {50, 104, 165, 230, 220, 220, 220, 220, 220}; // values for 22kHz sample rate
-static int formant_rate_22050[9] = {250, 200, 200, 200, 200, 200, 200, 200, 200}; // values for 22kHz sample rate
-//static int formant_rate_22050[9] = {50, 100, 165, 200, 200, 200, 200, 200, 200}; // values for 22kHz sample rate
+static int formant_rate_22050[9] = {240, 180, 180, 180, 180, 180, 180, 180, 180}; // values for 22kHz sample rate
int formant_rate[9]; // values adjusted for actual sample rate