Browse Source

[1.25.11] Fix problem with temporary language change when using a voice-variant.

lang=hu  Merge "nem" with next word.
lang=ro  Many additions to ro_list.  Change phoneme [o].
lang=af  Update phoneme [R], which also appears as [R3] in general consonants.


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

+ 1
- 0
dictsource/de_list View File

@@ -379,6 +379,7 @@ noch $pause
(noch nicht) n'Ox||n,ICt $brk
(nicht mehr) n'ICt||,me:*
(nicht mehr) n,ICt||m'e:* $atend
(nicht nur) nICt||nu:* $pause
(gar nicht) g,A:*n'ICt

// should these be in the Rules because they can be a prefix in a

+ 2
- 0
dictsource/de_rules View File

@@ -22,6 +22,8 @@
_) abzu 'abtsu:
_) an (@P2 'an
_) an (der an
_) anti (@P4 ,antI
_) an (tw an
_) auf (@P3 'aUf
_) aus (@P3 'aUs


+ 19
- 19
dictsource/dict_phonemes View File

@@ -138,10 +138,10 @@ t.h th v w x z

Dictionary hr_dict

& 8 @ @- @2 a A a:
aI aU E e e: eI i I
i: iI l- o o: oI oU O~
r- u U u: uI
& @ @- @2 a A a: aI
aU E e e: eI i I i:
iI l- o o: oI oU O~ r-
u U u: uI

* b d dZ dZ; f g h
j k l l^ m n N n^
@@ -222,21 +222,6 @@ s# s; t tS ts v w x
z Z


Dictionary ro_dict

@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o Oa oI oU u uI y
Y yI yU

* *; b b; C d d; dZ
f f; g h j k l l;
m m; n N n; p p; r
s S s; S; t t; tS ts
ts; v v; w w2 z Z z;
Z;


Dictionary ru_dict

8 @- A a E e E# E2
@@ -309,6 +294,21 @@ l m n N p r s t
tS v w z


Dictionary ro_dict

@ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI
iU o Oa oI oU u uI y
Y yI yU

* *; b b; c C d d;
dZ f f; g h j k l
l; m m; n N n; p p;
r s S s; S; t T t;
tS ts ts; v v; w w2 z
Z z; Z;


Dictionary is_dict

& @- a aI aU e E eI

+ 4
- 3
dictsource/hr_list View File

@@ -20,13 +20,13 @@ m m@
n n@
nj n^@
p p@
q kv@ // new
r R@ // new
q kv@
r R@
_s s@
š S@
t t@
v v@
w dv'ost@-*Uko||v@
w dvost@-*uko||v@
x iks
y ipsilon
z z@
@@ -365,3 +365,4 @@ u u $atend
utf u||te||ef




+ 2
- 2
dictsource/hr_rules View File

@@ -71,7 +71,6 @@
o o
ou oU
oj (K oI
&) o (r_ 8

.group p
p p
@@ -87,7 +86,7 @@
rr R
r (_ R

K) r (K r-
K) r (K 'r-


.group s
@@ -195,3 +194,4 @@
ώ omeg&_||tonos
ό omi_k@-*on_||tonos



+ 1
- 1
dictsource/hu_list View File

@@ -78,7 +78,7 @@ ha $u $pause // if


// Negative
nem $u+
nem $alt2 $strend
ne $u+



+ 4
- 0
dictsource/hu_rules View File

@@ -130,6 +130,7 @@ _minde) gy (ik J:
ny (k N
ny (g N

_) nem (- n,Em // has $alt2 attribute in hu_list, combine with the next word


.group o
@@ -236,6 +237,9 @@ _minde) gy (ik J:
_ré) zs (ó zS
_há) zs (or zS
_vá) zs (or zS
_szára) zs (ág zS
_kö) zs (ég zS


.group
% sa:zAle:k

+ 257
- 39
dictsource/ro_list View File

@@ -1,4 +1,5 @@


// This file in UTF8 encoded

// Letters
@@ -137,34 +138,42 @@ s.a.m.d Se|aSamaIdeparte
// articles
un $u
o $u
nişte $u
unui $u
unei $u
unor $u
unele $u // some
nişte $u1
una $u1+
unul $u1+
unuia $u1+
uneia $u1+
unui $u1
unei $u1
unor $u1
unora $u1+
unele $u1 // some

ăsta $u1+ // this
asta $u+
acest $u+ // this
aceşti $u
aceştia $u
acestora $u2+
aceasta $u+
această $u+

acel $u+ // that
acea $u+ // that
acei $u+ // those
acele $u+ // those
acele $u1+ // those

cei $u+ // the, those
cel $u+ // that, he who
cea $u+ // that, she who
cele $u+ // those
cele $u1+ // those

// pronouns
eu jeU $u+
tu $u+
el jel $u+
ea ja $u+
//noi $u+
noi $u+
voi $u+
ele jele $u+

@@ -183,6 +192,10 @@ se $u
mi $u
şi $u

însuşi $u1+
ânsăşi $u1+
însumi $u1+

care $u $brk // who that which what
ceea $u $brk // that

@@ -191,23 +204,23 @@ ceea $u $brk // that
meu $u+
mei $u+
mea $u+
//mele $u+
mele $u1+
tău $u+
tăi $u+
ta $u+
tale $u+
tale $u1+
său $u+
săi $u+
sa $u+
sale $u+
sale $u1+
lui $u+
ei jeI $u+
//nostru $u+
noştri $u+
noastră $u+
//noastre $u+
nostru $u1+
noştri noSt*i $u1+
noastră $u1+
noastre $u1+
vostru $u+
voştri $u+
voştri voSt*i $u1+
voastră $u+
voastre $u+
lor $u+
@@ -277,7 +290,7 @@ nu $u+

// some common adjectives and adverbs
aşa $2 $brk // so, thus
orice $u3+ // any
orice $u3+ // any
totuşi $1 $brk // never, though, nevertheless
totusi $1 $brk // (totuşi)
unde $brk // where
@@ -337,30 +350,193 @@ trebuie $2 // @-


// Final "i" is stressed
absolvi $3
ciocni $2
citi $2
dărui d@*w'i
deosebi $3
descoperi $4
deveni $3
întâlni $3
izbi $2
lovi $2
opri $2
pocni $2
răsuci $3
teori $2
absolvi $3
afurisi $4
agonisi $4
ameţi $3
blagoslovi $4
borbi $2
boţi $2
buşi $2
călăuzi $4
căptuşi $2
cârmi $2
catadicsi $4
cerşi $2
ciocni $2
citi $2
cloci $2
cuveni $3
dărui d@*w'i
deosebi $3
depăsi $3
descoperi $4
desluşi $2
deveni $3
dormi $2
feri $2
fugi $2
gândi $2
găsi $2
grăbi $4
greşi $2
hăcui $3
îmbâcsi $3
împărţi $3
încălzi $3
încreţi $3
înghiţi $3
îngriji $3
întâlni $3
înteţi $3
învârti $3
izbi $2
linguşi $3
lovi $2
mânji $2
mirosi $2
moleşi $3
necăji $3
opri $2
pândi $2
păşi $2
păzi $2
plăti $2
pocni $2
povesti $3
prăbuşi $3
prăji $2
primi $2
răci $2
râfni $2
răguşi $3
răscoli $3
răspândi $3
răsuci $3
risipi $3
rotunji $2
săvârşi $3
sclifosi $3
sfârşi $2
sfriji $2
slobozi $3
suci $2
ticsi $2
trezi $2
ursi $2
urzi $2
veşteji $3
vrăji $2


// final "a" or "ea" is stressed(verbs)
agonisea $2
agrea ag@-*e'a
ajuta $3
alerga $3
apăra $3
ataca $2
băga $2
călăuzea $4
călca $2
cânta $2
căsca $2
căuta $2
cerşea $2
continua kontinu'a
crea k@-*e'a
credea $3
creştea $2
dădea $2
depista $3
desfunda $2
distra $2
dorea $2
dormea $2
făcea $2
ferea $2
fugea $2
furişa $2
gândea $2
hăcuia $3
îmbâcsea $3
împărţea $3
încalzea $3
încărca $3
încerca $3
închega $2
încreţea $3
înfăşura $4
înfunda $2
întâmpla $3
interesa $4
înteţea $2
înteţea $3
intra $2
întreba $3
învârtea $3
învingea $2
invita $2
juca $2
lăsa $2
lingea $2
mânca $2
mângâia $3
memora $2
mergea $2
merita $3
negocia negotSi'a
paraliza $4
părea $2
pavea pave'a
păzea $2
pleca $2
povestea $2
prepara $3
răbda $2
răcea $2
rămânea $3
răscolea $3
răsucea $2
repara $3
repera $3
respira $3
reuşea $3
revenea $2
săpa $2
scotea $2
sfărâma $3
spăla $2
spera $2
stăpânea $2
stătea $2
strica $2
sucea $2
suda $2
supăra $3
trăgea $2
trezea $2
valora $3
vâna $2
vedea $2
vira $2
vorbea $2
zbura $2


// hyphenated contractions
(să l) s@l $u
(să i) s@I $u
(să şi) s@S;I^ $u
(care l) carel $u
(să mi) s@m;I^ $u
(te am) team $u
(te ai) teaj $u
(ne am) team $u
(ne am) neam $u
(n o) no $u
(n aS) naS $u
(n a) na $u
(c o) co $u
(l a) la $u
(l au) laU $u
(l am) lam $u
@@ -383,16 +559,22 @@ adventice $3
aer aIer
aici a'itSI^
altceva $3
america $2
americii $2
americile $2
apoi $2
artefice $3
asemenea $2
adu $1

biseric $2

capete $1
capitol $2
careva $3
cândva $2
câteva $3
câtorva $3
cerbice $2
ceva $2
cicatrice $3 // @-
@@ -401,6 +583,7 @@ chimi $alt
chimic $1
complice $2
contrazice $3
consideră $3
creier $1 // @-

deja $2
@@ -411,6 +594,7 @@ destul $2
dincolo $1
director $2
dori $2
doctor $1

edit $1
egale $2
@@ -427,6 +611,7 @@ filozofii $4
fizic $1
fizicul $1
folosi $3
fiind fi'ind

gastronomi $alt
gâgâlice $3
@@ -437,10 +622,17 @@ gimnaziu dZimn'azju

imagin $2
înainte yna'inte
legături $3
legătură $3
legăturile $3
înjurătură $4
înjurături $4
înjurăturile $4
interzice $3

latice $2
limit $1

lipsi $2
logic $1

@@ -450,26 +642,40 @@ maximum $1
merit $1
mia m'ia
mie m'ie
minum $1
minumum $1
minim $1
minimum $1
murdărie murd@*'ie
muzik $1
mării $1
mişto $1
metri met*i

nimic $2
novice $2
numai $1 // only
număr $1
numărul $1

oareşice $4
oameni $1
oareşice oa*eSTSe $4
obişnuit obiSnw'it
ocol $2
ordin $1
orice $3
ovidiu ovidj'u
dezordine $2
orice o*I^tSe $2
oricare o*I^ka*e $3
oricând o*I^kynd $3
ovidiu ov'idju

pagin $1
parodi pa*od'i
parodii $3
plânger $1
plăcere $2
plăceri $2
plăcerilor $2
polonic $3
polonicul $3
politic $2
pricin $1
prieten $2
@@ -477,21 +683,31 @@ prietenie p@-*jeten'ie
privi $3
propice $2
protocol $4
promitem $2

regul $1
reguli $1
repede $1
repezi $1
români romyn'i
români rom'ynI^
rotocol $3

sadic $1
scrieri $1
scrierile $1
scrierilor $1
sâmbătă $1
securice $3
sergiu sergj'u
secol $1
secolul $1
secolele $1
secolului $1
secolelor $1
sergiu s'ergju
sigur $1
simbolic $2
spaţiu spatsju
spuneţi sp'unetsI^

tanti tanti
târcol $2
@@ -509,3 +725,5 @@ vinovăţii $4
virgulă $1
virus $1

zarzări $1


+ 19
- 11
dictsource/ro_rules View File

@@ -71,13 +71,14 @@
eu (_ 'eU
ea ea
&) ea (_S2q ea
eai eaj
&) eSi eaj
eau eaw
eoa 'eOa
eo eo
e (AAA e

&) e (_S1q e
@) eş (_S2t eS
// &) es (_S1q e
&C) e (re_ %e
_ac) ee (a eI
@@ -134,13 +135,11 @@

&) ic (_ =ik
&) ice (_ =itSe
&) icile (_ =itSile // ??
&) icilor (_ =itSilor // ??
&) ing (_ %iNg // foreign words
i (t_ 'i

@ic) ii (_S2q ilor
@ic) ilor (_S4q ilor


.group î
î y

@@ -172,6 +171,7 @@
m m
@) m (i_ m;
_) m (-a m
@-_) mi mI^ // ??


.group n
@@ -228,12 +228,19 @@

&) sprezece (_S8t sp@-*ez,etSe

@) sem (_S3t sem
@) seră (_S4t se*@
@) serăm (_S5t se*@m
@) serăţi (_S6t se*@tsI^
@) seşi (_S4t seSI^


.group ş
ş S
@) ş (i_ S;



.group t
t t
tt (_ t
@@ -303,18 +310,18 @@

.group
ö Y
% prosent // ??
D_) % la_sut@
% protSent
$ dolar
+ plus
& perlwet
& ampersand
@ a*'ond
/ sleS
€ 'eU*o

, (D v'irgol@
, (D v'irgul@

. puntk
. punkt
. (. _:
\.) .

@@ -327,3 +334,4 @@
*) * (*
**
**) * (_ _::


+ 2
- 1
phsource/compile_report View File

@@ -474,11 +474,12 @@
2 vowel/o_3 en_sc
1 vowel/o-_3 en_rp
1 vowel/o_4 en_n
1 vowel/o-_4 ro
1 vowel/o_6 nl
4 vowel/oe en af de fr
1 vowel/oe_2 no
1 vowel/oe_4 sv
3 vowel/o_mid fr hu ro
2 vowel/o_mid fr hu
8 vowel/oo en_sc de eo es el sv no zh_yue
11 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi
3 vowel/oo_2 en_sc cy cs

+ 6
- 5
phsource/ph_af View File

@@ -280,11 +280,12 @@ endphoneme

phoneme R
liquid
vowelin f1=2 f2=70 -300 300 f3=-300 80 dnt
vowelout f1=2 f2=70 -300 300 f3=-300 80 brk
formants r3/r_trill+r3/r_trill3.wav%55
before _ r3/r_trill+r3/r_trill3.wav%50
trill
length 60
vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
formants r3/r_trill+r3/r_trill3.wav%99
before _ r3/r_trill+r3/r_trill3.wav%99
trill
lengthmod 6
endphoneme


+ 1
- 1
phsource/ph_romanian View File

@@ -53,7 +53,7 @@ endphoneme
phoneme o
vowel starttype (o) endtype (o)
length 170
formants vowel/o_mid
formants vowel/o-_4
endphoneme

phoneme u

+ 7
- 6
phsource/phonemes View File

@@ -397,13 +397,14 @@ phoneme R2 // this is [R] from Slovak/Czech
lengthmod 6
endphoneme

phoneme R3 // Afrikaans
phoneme R3 // Afrikaans
liquid
vowelin f1=2 f2=70 -300 300 f3=-300 80 dnt
vowelout f1=2 f2=70 -300 300 f3=-300 80 brk
formants r3/r_trill+r3/r_trill3.wav%55
before _ r3/r_trill+r3/r_trill3.wav%50
trill
length 60
vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
formants r3/r_trill+r3/r_trill3.wav%99
before _ r3/r_trill+r3/r_trill3.wav%99
trill
lengthmod 6
endphoneme


BIN
phsource/vowel/8_2 View File


BIN
phsource/vowel/o-_2 View File


BIN
phsource/vowel/o-_3 View File


BIN
phsource/vowel/o-_4 View File


BIN
phsource/vowel/vowelchart.png View File


+ 11
- 1
src/dictionary.cpp View File

@@ -892,6 +892,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
int mnem;
int post_tonic;
int opt_length;
int done;

unsigned char vowel_stress[N_WORD_PHONEMES/2];
char syllable_type[N_WORD_PHONEMES/2];
@@ -1131,6 +1132,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
}
#endif

done = 0;
for(v=1; v<vowel_count; v++)
{
if(vowel_stress[v] == 0)
@@ -1140,6 +1142,13 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
// flag: don't give secondary stress to final vowel
}
else
if((langopts.stress_flags & 0x8000) && (done == 0))
{
vowel_stress[v] = (char)stress;
done =1;
stress = 3; /* use secondary stress for remaining syllables */
}
else
if((vowel_stress[v-1] <= 1) && (vowel_stress[v+1] <= 1))
{
/* trochaic: give stress to vowel surrounded by unstressed vowels */
@@ -1156,6 +1165,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
// should start with secondary stress on the first syllable, or should it count back from
// the primary stress and put secondary stress on alternate syllables?
vowel_stress[v] = (char)stress;
done =1;
stress = 3; /* use secondary stress for remaining syllables */
}
}
@@ -1787,7 +1797,7 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec
break;

case '-':
if((letter == ' ') && (word_flags & FLAG_HYPHEN_AFTER))
if((letter == '-') || ((letter == ' ') && (word_flags & FLAG_HYPHEN_AFTER)))
{
match.points += (22-distance_right); // one point more than match against space
}

+ 1
- 1
src/synthdata.cpp View File

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

const char *version_string = "1.25.10 27.May.07";
const char *version_string = "1.25.11 29.May.07";
const int version_phdata = 0x012501;

int option_device_number = -1;

+ 3
- 2
src/tr_languages.cpp View File

@@ -326,10 +326,11 @@ Translator *SelectTranslator(const char *name)

tr->langopts.vowel_pause = 0x20;
tr->langopts.stress_rule = 0;
tr->langopts.stress_flags = 0x36;
tr->langopts.stress_flags = 0x8036;
tr->langopts.unstressed_wd1 = 2;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; // don't propagate over word boundaries
tr->langopts.param[LOPT_IT_DOUBLING] = 1;
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word
tr->langopts.long_stop = 130;

tr->langopts.numbers = 0x1809;
@@ -347,7 +348,7 @@ Translator *SelectTranslator(const char *name)

tr = new Translator();
SetupTranslator(tr,stress_lengths_is,stress_amps_is);
tr->langopts.stress_rule = 1;
tr->langopts.stress_rule = 0;
tr->langopts.stress_flags = 0x10;
tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels
tr->langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1;

+ 1
- 0
src/translate.h View File

@@ -262,6 +262,7 @@ typedef struct {
// bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish
// bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress
// bit13= If there is only one syllable before the primary stress, give it a secondary stress
// bit15= Give stress to the first unstressed syllable
// bit16= Don't diminish consecutive syllables within a word.

int stress_flags;

+ 5
- 2
src/voices.cpp View File

@@ -575,8 +575,11 @@ voice_t *LoadVoice(char *vname, int control)
strcpy(phonemes_name,language_type);


if((v = VoiceLookup(voicename)) != NULL)
voice = v;
if(!tone_only)
{
if((v = VoiceLookup(voicename)) != NULL)
voice = v;
}
VoiceReset(tone_only);

if(!tone_only)

Loading…
Cancel
Save