Browse Source

[1.40.11]

lang=fr: removed unstressed monosyllable option.
lang=pt,it: fixed crash when speaking some numbers.


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

+ 8
- 1
dictsource/de_rules View File

@@ -837,7 +837,6 @@
sst (@ sSt

sch S
sch (en_ sC
_) sh S
sh (K S
sou (nd saU
@@ -863,6 +862,14 @@

_) safe _^_EN
&) schaft (_S6 Saft

ä) schen sC@n // but not wäschen
fe) schen sC@n
ie) schen sC@n
h) schen sC@n
ö) schen sC@n // but not löschen
äu) schen sC@n // but not täuschen

schein (lich S'aIn
_) schul (@P5 S'u:l
_) schul (d S'Ul

+ 29
- 24
dictsource/fr_list View File

@@ -24,7 +24,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated 2009-02-01 Michel Such <[email protected]>
// Updated 2009-03-12 Michel Such <[email protected]>
//
// * Numbers, a few abbreviations and exceptions.
//
@@ -296,23 +296,23 @@ pr professeur $text *dot $capital


// articles
le $u+ $nounf
le $u+ $verb $verbextend
la $u+ $nounf
la $u+ $verb $verbextend
les lez2 $u+ $nounf
les lez2 $u+ $verb $verbextend
un $u+ $nounf
une $u+ $nounf
le $nounf $u+
le $verbextend $u
la $nounf $u+
la $verbextend $u
les lez2 $nounf $u=
les lez2 $verbextend $u
un $nounf $u+
une $nounf $u+


// conjonctions
mais $u+
ou u $u $brk
ou $u $brk
eh $u $brk
et e $u $brk
et $u $brk
ni $u $brk
car $u+ $brk
car $u $brk
car $noun
cependant $brk
néanmoins $brk
@@ -328,14 +328,19 @@ aussi $u+

certes $u+
dont dO~t2 $u
lorsque $u
puisque $u
lorsque lO2rsk@ $u+
puisque pw^isk@ $u+
presque $u+
que $u+
(parce que) parsk@ $u+
que $u+
qui $u+ $verbf
(parce qu'il) parskil $u+
(parce qu'ils) parskilz2 $u+
(parce qu'elle) parskE2l $u+
(parce qu'elles) parskE2lz2 $u+
(parce qu'on) parskO~n2 $u+
tant tA~t2 $u+
qui $verbf $u+
quoique $u
si $u
quant kA~t2 $u

// pronouns
@@ -399,7 +404,7 @@ leurs $u $verb $verbextend
(les leurs) le||lWr $u+ $verbf

// prepositions
de $u
de $u $nounf
du $u $nounf
des dez2 $u $nounf

@@ -421,7 +426,6 @@ en $u+ $verb $verbextend
par $u+
parmi $u+
pour $u+
tant tA~t2 $u+
autant $u+
tandis $u+
dès $u
@@ -441,8 +445,8 @@ très $u

// negative
ne $u $verbf
pas $u+
pas $noun
pas p'a2z2
pas pa $noun
plus $u+
guère $u+
jamais $u+
@@ -452,7 +456,7 @@ oui $u+
// questions
quand kA~t2 $u+
quoi $u+
où $brk $u+
où $u+
comme kO2m $u+
comment $u+
pourquoi $u+
@@ -572,6 +576,7 @@ bus bys
bus by $verb
campus kA~pys
cancer kA~sEr
catcher catcheur $text
(chef d'oeuvre) chédeuvre $text
(chef d'oeuvres) chédeuvres $text
choeur kWr
@@ -591,7 +596,7 @@ laser lazEr
malus malys
mapper _^_en
mars mars
mieux mj'Y $u+
mieux mjY $u+
mrs _^_en
ours urs
parangon parA~gO~
@@ -787,5 +792,5 @@ wallis wAlis
futuna futuna
zimbabwe zimbabwe

pest $1


+ 5
- 2
dictsource/fr_rules View File

@@ -23,7 +23,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated: 2009-02-19 Michel Such <[email protected]>
// Updated: 2009-03-12 Michel Such <[email protected]>
//

// Letter classes:
@@ -257,6 +257,7 @@ _) ç' (P2v s
em (p A~
en (_ A~n2 // en
en (hA A~n // enharmonique
_C) en (j E~ // benjamin
_) en (A A~n // enivrer

C) en (d_ A~ // comprend dépend
@@ -825,6 +826,7 @@ _) half _^_en
o (rC O2
o (rX O2
_) os (_ Os
o (sC O2
s_) os (_ o
x_) os (_ o
C) o (se_ o2
@@ -954,7 +956,7 @@ C) oing (_ _^_en // going

se) pt (_ t // sept
se) pt (iè t // septième
_) puisqu' (P7 pyisk
_) puisqu' (P7 pw^isk

// group p: English section
pad (_ _^_en
@@ -967,6 +969,7 @@ C) oing (_ _^_en // going
q k // coq
_) qu' (AP3 k
_) qua (d kwA // quadrature
_) qua (drill ka // quadriller
_a) qua kwA // aquarium
_a) qu (if ku // aquifère
_A) qui (dist kw^i // équidistant

+ 1
- 0
dictsource/it_rules View File

@@ -239,6 +239,7 @@
s (t s
s (x s
sc (Y S
sci (L01 S
sch (Y sk
sh (K S // foreign words
K) sh S // foreign words

+ 78
- 78
dictsource/pt_list View File

@@ -175,11 +175,11 @@ _1C0 s'eIN
?2_0C s'eINtUs#
_1C s'eINtu
?1_2C duz'eINtus#
?2_2C duz'eINtUs#
?2_2C duz'eINtUz
?1_3C tryz'eNtus#
?2_3C tRez'eNtUs#
?2_3C tRez'eNtUz
?1_5C kin^'eINtus#
?2_5C kin^'eINtUs#
?2_5C kin^'eINtUz
?1_0M1 m'il_
?2_0M1 m'iU_
?1_1M1 m'il_
@@ -194,7 +194,7 @@ _1M3 'u~mbilj'&U~
?1_0M4 trilj'o~js#
?2_0M4 trilj'o~jz
_1M4 'u~ntrilj'&U~
_0and _i
_0and i
_dpt _v'irgul&
// _0Z2 seNt'Ezim& // 100ths
// _0Z3 mil'Ezim& // 1000ths
@@ -290,11 +290,11 @@ los $u

?2 este $u+ $nounf 'estSi // this
?2 estes $u+ $nounf 'estSis // these
?2 esta 'Est& $brk $u+ $nounf
?2 esta 'Est& $u+ $nounf
?2 neste $u+ $nounf n'estSi //in this
?2 nestes $u+ n'estSis //in these
?2 esse $u+ $nounf 'esi // that
essa 'Es& $brk $u+
essa 'Es& $u+
desse d'esy $u+
nesse n'esy $u+
aquele &k'ely $u+ $nounf // that
@@ -302,7 +302,7 @@ aquela $u+
daquele d&k'ely $u+ $nounf

?1 que ky $u
?2 que ke $u $pause
?2 que ke $u

// possessive adjectives
meu $u+ $nounf
@@ -338,93 +338,93 @@ duma $u
duns $u
dumas $u

em $u $brk // in,on,at
no nu $u $brk $nounf
na $u $brk
?2 nos nus# $u $brk
nas $u $brk
num $u $brk
numa $u $brk
nuns $u $brk
numas $u $brk
por $u $brk // by,for,through
pelo $u $brk
?2 pela $u $brk p'el&
pelos $u $brk
?2 pelas $u $brk p'el&s
ao $u $brk
à ,a: $brk
aos $u $brk
às ,a:s $brk
para $u $brk // for,to
pro $u $brk $nounf
pra $u $brk
pros $u $brk
pras $u $brk
prò $u $brk
prà $u $brk
pròs $u $brk
pràs $u $brk
com $u $brk // with
?2 sem $pause // without
?2 até $u $pause // until
?2 desde $u $pause // from,since
?2 entre $pause // between,among
?2 por $u $pause // by,for,through
?2 sobre s'obRy $pause // on,above,about
?2 sob $pause // under,below
?2 debaixo $pause // under,below
?2 durante $pause
em $u // in,on,at
no nu $u $nounf
na $u
?2 nos nus# $u
nas $u
num $u
numa $u
nuns $u
numas $u
por $u // by,for,through
pelo $u
?2 pela $u p'el&
pelos $u
?2 pelas $u p'el&s
ao $u
à ,a:
aos $u
às ,a:s
para $u // for,to
pro $u $nounf
pra $u
pros $u
pras $u
prò $u
prà $u
pròs $u
pràs $u
com $u // with
?2 sem // without
?2 até $u // until
?2 desde $u // from,since
?2 entre // between,among
?2 por $u // by,for,through
?2 sobre s'obRy // on,above,about
?2 sob // under,below
?2 debaixo // under,below
?2 durante


// conjunctions
?1 e i $u // and
?2 e i $u $pause // and
se $u $brk // if
?2 e i $u // and
se $u // if


?2 mas $u $pause // but
?2 porém $pause // however
?2 todavia $pause // yet
?2 contudo $pause // nevertheless
?2 mas $u // but
?2 porém // however
?2 todavia // yet
?2 contudo // nevertheless

?2 ou $u $pause // or
?2 quer $pause // whether
?2 ou $u // or
?2 quer // whether

?2 assim $pause // thus
?2 portanto $pause // therefore
?2 assim // thus
?2 portanto // therefore

?2 porque $pause // because
?2 pois $pause // because
?2 como $u $pause // as
?2 porque // because
?2 pois // because
?2 como $u // as

?2 embora $pause // although
?2 apesar $pause // despite
?2 embora // although
?2 apesar // despite


?2 caso $pause // if
?2 (desde que) d'esdZiki/ $pause // provided that
?2 (exceto se) es'Etusi/ $pause // unless
?2 (salvo se) s'alvusi/ $pause // unless
?2 caso // if
?2 (desde que) d'esdZiki/ // provided that
?2 (exceto se) es'Etusi/ // unless
?2 (salvo se) s'alvusi/ // unless

?2 (para que) p,a*&ki/ $pause // so that
?2 (para que) p,a*&ki/ // so that



?2 quando $pause // when
?2 onde $u $pause // where
?2 apenas $pause // as soon as
?2 mal $pause // as soon as, hardly
?2 (logo que) l'Oguki/ $pause // as soon as
?2 (antes que) '&~NtSiski/ $pause // before
?2 (depois que) dep'OIski/ $pause // after
?2 (sempre que) s'eNpriki/ $pause // whenever
?2 enquanto $pause // while
?2 quando // when
?2 onde $u // where
?2 apenas // as soon as
?2 mal // as soon as, hardly
?2 (logo que) l'Oguki/ // as soon as
?2 (antes que) '&~NtSiski/ // before
?2 (depois que) dep'OIski/ // after
?2 (sempre que) s'eNpriki/ // whenever
?2 enquanto // while


// negative

+ 6
- 0
phsource/compile_report View File

@@ -71,25 +71,31 @@ b/b_ [b] base
[b] hi
[b] bn
b/b@ [b] base
[b] fr
[b] hi
[b] bn
b/b@2 [b] base
[b] hi
[b] bn
b/ba [b] base
[b] fr
[b] hi
[b] bn
b/be [b] base
[b] fr
[b] hi
[b] bn
b/bi [b] base
[b] fr
[b] hi
[b;] ro
[b] bn
b/bo [b] base
[b] fr
[b] hi
[b] bn
b/bu [b] base
[b] fr
[b] hi
[b] bn
b/xb [b] base

+ 20
- 14
phsource/ph_french View File

@@ -10,7 +10,7 @@ endphoneme

phoneme @
vowel starttype (@) endtype (@)
length 170
length 180
formants vowel/@_hgh
before l/ DFT+l/l_@
before (r) DFT+r/xr
@@ -19,7 +19,7 @@ endphoneme

phoneme @2
vowel starttype (@) endtype (@)
length 150
length 160
formants vowel/@_fr
before (r) DFT+r3/r_@
endphoneme
@@ -27,7 +27,7 @@ endphoneme

phoneme a
vowel starttype (a) endtype (a)
length 170
length 180
formants vowel/a_6
after l l/la-15
before l/ DFT+l/l_a
@@ -38,7 +38,7 @@ endphoneme

phoneme a2
vowel starttype (a) endtype (a)
length 150
length 165
formants vowel/a_6
after l l/la-15
before l/ DFT+l/l_a
@@ -49,7 +49,7 @@ endphoneme

phoneme e
vowel starttype (e) endtype (e)
length 172
length 175
formants vowel/e
after l l/le-15
before l/ DFT-20+l/xl
@@ -80,7 +80,7 @@ endphoneme

phoneme i
vowel starttype (i) endtype (i)
length 150
length 160
formants vowel/i_3
linkout ;
after l l/li-15
@@ -103,7 +103,7 @@ endphoneme

phoneme o
vowel starttype (o) endtype (o)
length 170
length 180
formants vowel/o_3
after l l/lo-10
before (r) DFT+r/xr
@@ -113,7 +113,7 @@ endphoneme

phoneme o2
vowel starttype (o) endtype (o)
length 170
length 180
formants vowel/o_2
after l l/lo-10
before l/ DFT+l/l_o
@@ -144,7 +144,7 @@ endphoneme

phoneme u
vowel starttype (u) endtype (u)
length 170
length 175
formants vowel/u_3
after l l/lu-20
before l/ DFT-20+l/l_u
@@ -155,7 +155,7 @@ endphoneme

phoneme u: // slitely longer than u
vowel starttype (u) endtype (u)
length 220
length 240
formants vowel/u_3
after l l/lu-20
before l/ DFT-20+l/l_u
@@ -166,7 +166,7 @@ endphoneme

phoneme y
vowel starttype (u) endtype (u)
length 170
length 180
formants vowel/y_2
after l l/lu-20
before l/ DFT-30+l/l_y
@@ -177,7 +177,7 @@ endphoneme

phoneme Y
vowel starttype (@) endtype (@)
length 170
length 180
formants vowel/y#
after l l/l@-20
before l/ DFT-20+l/l_@
@@ -303,10 +303,16 @@ endphoneme

phoneme b
vcd blb stop
vowelout f1=0 f2=1000 -500 -300 f3=-300 80
formants b/b+x/b%70
vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk
formants b/b+x/b%80
before _ b/b_+x/b_
before (a) b/ba+x/b%30
before (@) b/b@+x/b%50
before (e) b/be+x/b%50
before (i) b/bi+x/b%50
before l/ b/b_+x/b_
before (o) b/bo+x/b%50
before (u) b/bu+x/b%70
before R b/b_+x/b_
after _ NULL
after @ b/xb%50

+ 1
- 1
src/dictionary.cpp View File

@@ -1111,7 +1111,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags,

if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2))
{
// option: don't stress monosyllables except at end-of-clause (lang=fr)
// option: don't stress monosyllables except at end-of-clause
vowel_stress[1] = 1;
dictionary_flags |= FLAG_STRESS_END2;
}

+ 1
- 1
src/extras.cpp View File

@@ -963,7 +963,7 @@ void ConvertToUtf8()
int ix;
FILE *f_in;
FILE *f_out;
char buf[80];
char buf[200];

wxString fname = wxFileSelector(_T("Convert file to UTF8"),wxString(path_home,wxConvLocal),
_T(""),_T(""),_T("*"),wxOPEN);

+ 1
- 1
src/numbers.cpp View File

@@ -1033,7 +1033,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
if(tr->langopts.numbers & 0x200)
{
// remove vowel from the end of tens if units starts with a vowel (LANG=Italian)
if((ix = strlen(ph_tens)-1) >= 0)
if(((ix = strlen(ph_tens)-1) >= 0) && (ph_digits[0] != 0))
{
if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS)
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type;

+ 1
- 1
src/synthdata.cpp View File

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

const char *version_string = "1.40.10 12.Mar.09";
const char *version_string = "1.40.11 13.Mar.09";
const int version_phdata = 0x014000;

int option_device_number = -1;

+ 3
- 3
src/tr_languages.cpp View File

@@ -380,7 +380,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.unstressed_wd2 = 2;
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels

tr->langopts.numbers = 0x309;
tr->langopts.numbers = 0x109;
tr->langopts.numbers2 = 0x2; // variant form of numbers before thousands

if(name2 == L_grc)
@@ -483,7 +483,7 @@ Translator *SelectTranslator(const char *name)

SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
tr->langopts.stress_rule = 3; // stress on final syllable
tr->langopts.stress_flags = 0x0024 + 0x1; // don't use secondary stress, monosyllables are unstressed
tr->langopts.stress_flags = 0x0024; // don't use secondary stress
tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables

tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL;
@@ -807,7 +807,7 @@ SetLengthMods(tr,3); // all equal

tr->langopts.stress_rule = 3; // stress on final syllable
tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000;
tr->langopts.numbers = 0x269 + 0x4000 + NUM_ROMAN;
tr->langopts.numbers = 0x069 + 0x4000 + NUM_ROMAN;
SetLetterVowel(tr,'y');
ResetLetterBits(tr,0x2);
SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y

+ 0
- 15
src/translate.cpp View File

@@ -1670,21 +1670,6 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
}
else
{
if(ph_code == phonPAUSE_CLAUSE)
{
int j;
for(j = n_ph_list2-1; j > 0; j--)
{
if(ph_list2[j].synthflags & SFLAG_PROMOTE_STRESS)
{
// lang=fr: stress monosyllables before conjunctions 'et' 'qui' etc
ph_list2[j].stress = 4;
}
if(ph_list2[j].sourceix != 0)
break;
}
}

if(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING])
{
if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) ||

Loading…
Cancel
Save