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

sst (@ sSt sst (@ sSt


sch S sch S
sch (en_ sC
_) sh S _) sh S
sh (K S sh (K S
sou (nd saU sou (nd saU


_) safe _^_EN _) safe _^_EN
&) schaft (_S6 Saft &) 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 schein (lich S'aIn
_) schul (@P5 S'u:l _) schul (@P5 S'u:l
_) schul (d S'Ul _) schul (d S'Ul

+ 29
- 24
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 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. // * Numbers, a few abbreviations and exceptions.
// //




// articles // 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 // conjonctions
mais $u+ mais $u+
ou u $u $brk
ou $u $brk
eh $u $brk eh $u $brk
et e $u $brk
et $u $brk
ni $u $brk ni $u $brk
car $u+ $brk
car $u $brk
car $noun car $noun
cependant $brk cependant $brk
néanmoins $brk néanmoins $brk


certes $u+ certes $u+
dont dO~t2 $u dont dO~t2 $u
lorsque $u
puisque $u
lorsque lO2rsk@ $u+
puisque pw^isk@ $u+
presque $u+ presque $u+
que $u+
(parce que) parsk@ $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 quoique $u
si $u
quant kA~t2 $u quant kA~t2 $u


// pronouns // pronouns
(les leurs) le||lWr $u+ $verbf (les leurs) le||lWr $u+ $verbf


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


par $u+ par $u+
parmi $u+ parmi $u+
pour $u+ pour $u+
tant tA~t2 $u+
autant $u+ autant $u+
tandis $u+ tandis $u+
dès $u dès $u


// negative // negative
ne $u $verbf ne $u $verbf
pas $u+
pas $noun
pas p'a2z2
pas pa $noun
plus $u+ plus $u+
guère $u+ guère $u+
jamais $u+ jamais $u+
// questions // questions
quand kA~t2 $u+ quand kA~t2 $u+
quoi $u+ quoi $u+
où $brk $u+
où $u+
comme kO2m $u+ comme kO2m $u+
comment $u+ comment $u+
pourquoi $u+ pourquoi $u+
bus by $verb bus by $verb
campus kA~pys campus kA~pys
cancer kA~sEr cancer kA~sEr
catcher catcheur $text
(chef d'oeuvre) chédeuvre $text (chef d'oeuvre) chédeuvre $text
(chef d'oeuvres) chédeuvres $text (chef d'oeuvres) chédeuvres $text
choeur kWr choeur kWr
malus malys malus malys
mapper _^_en mapper _^_en
mars mars mars mars
mieux mj'Y $u+
mieux mjY $u+
mrs _^_en mrs _^_en
ours urs ours urs
parangon parA~gO~ parangon parA~gO~
futuna futuna futuna futuna
zimbabwe zimbabwe zimbabwe zimbabwe


pest $1



+ 5
- 2
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 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: // Letter classes:
em (p A~ em (p A~
en (_ A~n2 // en en (_ A~n2 // en
en (hA A~n // enharmonique en (hA A~n // enharmonique
_C) en (j E~ // benjamin
_) en (A A~n // enivrer _) en (A A~n // enivrer


C) en (d_ A~ // comprend dépend C) en (d_ A~ // comprend dépend
o (rC O2 o (rC O2
o (rX O2 o (rX O2
_) os (_ Os _) os (_ Os
o (sC O2
s_) os (_ o s_) os (_ o
x_) os (_ o x_) os (_ o
C) o (se_ o2 C) o (se_ o2


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


// group p: English section // group p: English section
pad (_ _^_en pad (_ _^_en
q k // coq q k // coq
_) qu' (AP3 k _) qu' (AP3 k
_) qua (d kwA // quadrature _) qua (d kwA // quadrature
_) qua (drill ka // quadriller
_a) qua kwA // aquarium _a) qua kwA // aquarium
_a) qu (if ku // aquifère _a) qu (if ku // aquifère
_A) qui (dist kw^i // équidistant _A) qui (dist kw^i // équidistant

+ 1
- 0
dictsource/it_rules View File

s (t s s (t s
s (x s s (x s
sc (Y S sc (Y S
sci (L01 S
sch (Y sk sch (Y sk
sh (K S // foreign words sh (K S // foreign words
K) sh S // foreign words K) sh S // foreign words

+ 78
- 78
dictsource/pt_list View File

?2_0C s'eINtUs# ?2_0C s'eINtUs#
_1C s'eINtu _1C s'eINtu
?1_2C duz'eINtus# ?1_2C duz'eINtus#
?2_2C duz'eINtUs#
?2_2C duz'eINtUz
?1_3C tryz'eNtus# ?1_3C tryz'eNtus#
?2_3C tRez'eNtUs#
?2_3C tRez'eNtUz
?1_5C kin^'eINtus# ?1_5C kin^'eINtus#
?2_5C kin^'eINtUs#
?2_5C kin^'eINtUz
?1_0M1 m'il_ ?1_0M1 m'il_
?2_0M1 m'iU_ ?2_0M1 m'iU_
?1_1M1 m'il_ ?1_1M1 m'il_
?1_0M4 trilj'o~js# ?1_0M4 trilj'o~js#
?2_0M4 trilj'o~jz ?2_0M4 trilj'o~jz
_1M4 'u~ntrilj'&U~ _1M4 'u~ntrilj'&U~
_0and _i
_0and i
_dpt _v'irgul& _dpt _v'irgul&
// _0Z2 seNt'Ezim& // 100ths // _0Z2 seNt'Ezim& // 100ths
// _0Z3 mil'Ezim& // 1000ths // _0Z3 mil'Ezim& // 1000ths


?2 este $u+ $nounf 'estSi // this ?2 este $u+ $nounf 'estSi // this
?2 estes $u+ $nounf 'estSis // these ?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 neste $u+ $nounf n'estSi //in this
?2 nestes $u+ n'estSis //in these ?2 nestes $u+ n'estSis //in these
?2 esse $u+ $nounf 'esi // that ?2 esse $u+ $nounf 'esi // that
essa 'Es& $brk $u+
essa 'Es& $u+
desse d'esy $u+ desse d'esy $u+
nesse n'esy $u+ nesse n'esy $u+
aquele &k'ely $u+ $nounf // that aquele &k'ely $u+ $nounf // that
daquele d&k'ely $u+ $nounf daquele d&k'ely $u+ $nounf


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


// possessive adjectives // possessive adjectives
meu $u+ $nounf meu $u+ $nounf
duns $u duns $u
dumas $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 // conjunctions
?1 e i $u // and ?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 // negative

+ 6
- 0
phsource/compile_report View File

[b] hi [b] hi
[b] bn [b] bn
b/b@ [b] base b/b@ [b] base
[b] fr
[b] hi [b] hi
[b] bn [b] bn
b/b@2 [b] base b/b@2 [b] base
[b] hi [b] hi
[b] bn [b] bn
b/ba [b] base b/ba [b] base
[b] fr
[b] hi [b] hi
[b] bn [b] bn
b/be [b] base b/be [b] base
[b] fr
[b] hi [b] hi
[b] bn [b] bn
b/bi [b] base b/bi [b] base
[b] fr
[b] hi [b] hi
[b;] ro [b;] ro
[b] bn [b] bn
b/bo [b] base b/bo [b] base
[b] fr
[b] hi [b] hi
[b] bn [b] bn
b/bu [b] base b/bu [b] base
[b] fr
[b] hi [b] hi
[b] bn [b] bn
b/xb [b] base b/xb [b] base

+ 20
- 14
phsource/ph_french View File



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


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


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


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


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


phoneme i phoneme i
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 150
length 160
formants vowel/i_3 formants vowel/i_3
linkout ; linkout ;
after l l/li-15 after l l/li-15


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


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


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


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


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


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


phoneme b phoneme b
vcd blb stop 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 _ 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 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_ before R b/b_+x/b_
after _ NULL after _ NULL
after @ b/xb%50 after @ b/xb%50

+ 1
- 1
src/dictionary.cpp View File



if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2)) 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; vowel_stress[1] = 1;
dictionary_flags |= FLAG_STRESS_END2; dictionary_flags |= FLAG_STRESS_END2;
} }

+ 1
- 1
src/extras.cpp View File

int ix; int ix;
FILE *f_in; FILE *f_in;
FILE *f_out; FILE *f_out;
char buf[80];
char buf[200];


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

+ 1
- 1
src/numbers.cpp View File

if(tr->langopts.numbers & 0x200) if(tr->langopts.numbers & 0x200)
{ {
// remove vowel from the end of tens if units starts with a vowel (LANG=Italian) // 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) if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS)
next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type;

+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.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; const int version_phdata = 0x014000;


int option_device_number = -1; int option_device_number = -1;

+ 3
- 3
src/tr_languages.cpp View File

tr->langopts.unstressed_wd2 = 2; tr->langopts.unstressed_wd2 = 2;
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels 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 tr->langopts.numbers2 = 0x2; // variant form of numbers before thousands


if(name2 == L_grc) if(name2 == L_grc)


SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); SetupTranslator(tr,stress_lengths_fr,stress_amps_fr);
tr->langopts.stress_rule = 3; // stress on final syllable 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.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables


tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL; tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL;


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

+ 0
- 15
src/translate.cpp View File

} }
else 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(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING])
{ {
if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) ||

Loading…
Cancel
Save