Filtered ustop/t_short.wav to remove high frequencies. Reduced formant glide for phoneme [c]. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@18 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -53,7 +53,8 @@ x z | |||
Dictionary el_dict | |||
@- a aI e i o oI u | |||
@ @- a aI e i o oI | |||
u | |||
* ; b c C d D f | |||
g j k l l^ m n N |
@@ -11,8 +11,8 @@ | |||
_0 miD'en | |||
_1 'ena | |||
_2 D'io | |||
_3 tr'ia | |||
_3f tr'is | |||
_3 t@-@'ia | |||
_3f t@-@'is | |||
_4 t'esera | |||
_4f t'eseris | |||
_5 p'ente | |||
@@ -24,7 +24,7 @@ _1X D'eka | |||
_11 'enDeka | |||
_12 D'oDeka | |||
_2X 'ikosi | |||
_3X tri'anda | |||
_3X t@-*i'anda | |||
_4X sar'anda | |||
_5X pen'inda | |||
_6X eks'inda | |||
@@ -35,8 +35,8 @@ _0C ekat'on_ | |||
_1C0 ekat'o | |||
_1C ekat'on_ | |||
_2C D;ak'os;a_ | |||
_3C triak'os;a_ | |||
_4C tetrak'os;a_ | |||
_3C t@-*iak'os;a_ | |||
_4C tet@-*ak'os;a_ | |||
_5C pendak'os;a_ | |||
_6C eksak'os;a_ | |||
_7C eptak'os;a_ |
@@ -6,6 +6,9 @@ | |||
// Α α, Β β, Γ γ, Δ δ, Ε ε, Ζ ζ, Η η, Θ θ, Ι ι, Κ κ, Λ λ, Μ μ, Ν ν, Ξ ξ, | |||
// Ο ο, Π π, Ρ ρ, Σ σ ς (word-final form), Τ τ, Υ υ, Φ φ, Χ χ, Ψ ψ, Ω ω. | |||
// Y: ε η ι υ (+tonos variants, front vowels). | |||
.group α | |||
α a | |||
αι e | |||
@@ -83,6 +86,12 @@ | |||
κ (κ | |||
ν_) κ g | |||
κ (Y c | |||
κ (αι c | |||
κ (αί c | |||
κ (οι c | |||
κ (οί c | |||
κη (A c // k + i sound = [c] | |||
κι (A c | |||
κυ (A c | |||
@@ -111,7 +120,9 @@ | |||
ν (_π m | |||
ν (_ψ m | |||
ν (_κ N | |||
ν (_και_ n // there is a pause before και | |||
ν (_ξ N | |||
νη (A n^ | |||
νι (A n^ | |||
νυ (A n^ | |||
@@ -141,13 +152,21 @@ | |||
.group ρ | |||
ρ R | |||
ρ (ρ | |||
ρρ R | |||
A) ρ (A * | |||
C) ρ (A @-* | |||
C) ρ @-* | |||
αυ) ρ @-* // υ becomes consionant [v] | |||
αύ) ρ @-* | |||
ευ) ρ @-* | |||
εύ) ρ @-* | |||
ηυ) ρ @-* | |||
ηύ) ρ @-* | |||
.group σ | |||
σ s | |||
σ (σ | |||
// ?? σ (σ | |||
ση (A s; | |||
σι (A s; | |||
συ (A s; | |||
@@ -179,18 +198,17 @@ | |||
.group χ | |||
χ x | |||
χ (Y C | |||
χ (αι C | |||
χ (αί C | |||
χ (ε C | |||
χ (έ C | |||
χ (η C | |||
χ (ή C | |||
χ (ι C | |||
χ (ί C | |||
χ (οι C | |||
χ (οί C | |||
χ (υ C | |||
χ (ύ C | |||
χει (A C | |||
χη (A C | |||
χι (A C | |||
χοι (A C | |||
χυ (A C | |||
.group ψ | |||
ψ ps |
@@ -4168,6 +4168,7 @@ | |||
queu kju: | |||
qu (_ k | |||
quay ki: | |||
jac) qu k | |||
li) quor k3 | |||
quy kwI | |||
@@ -22,7 +22,7 @@ | |||
d d | |||
dd d: | |||
dz dz | |||
A) dz (A dz: | |||
A) dz (A d:z | |||
dzs dZ | |||
A) dzs dZ: | |||
@@ -33,9 +33,8 @@ | |||
dsz (C ts | |||
A) dsz (A ts: | |||
dz dz | |||
A) dz (A d:z | |||
C) dzs Z | |||
A) dzs (A Z: | |||
C) dzs dZ | |||
A) dzs (A dZ: | |||
C) dj J | |||
A) dj (A J: | |||
@@ -66,8 +65,8 @@ | |||
A) gysz (A ts: | |||
gyz dz | |||
A) gyz (A d:z | |||
C) gyzs Z | |||
A) gyzs (A Z: | |||
C) gyzs dZ | |||
A) gyzs (A dZ: | |||
C) gyj J | |||
A) gyj (A J: | |||
@@ -92,6 +91,7 @@ | |||
.group l | |||
l l | |||
ly j | |||
lly jj | |||
lj jj | |||
.group m | |||
@@ -104,6 +104,7 @@ | |||
n (p m | |||
n (b m | |||
ny n^ | |||
nny n^n^ | |||
ny (k N | |||
ny (g N | |||
@@ -162,10 +163,10 @@ | |||
A) tz (A d:z | |||
tyz dz | |||
A) tyz (A d:z | |||
C) tzs Z | |||
A) tzs (A Z: | |||
C) tyzs Z | |||
A) tyzs (A Z: | |||
C) tzs dZ | |||
A) tzs (A dZ: | |||
C) tyzs dZ | |||
A) tyzs (A dZ: | |||
C) tj c | |||
A) tj (A c: | |||
C) tyj c | |||
@@ -200,6 +201,7 @@ | |||
.group z | |||
z z | |||
zs Z | |||
zzs Z: | |||
.group |
@@ -15,19 +15,19 @@ | |||
fr 33 115 | |||
fr_ca 11 115 | |||
hi 49 127 | |||
hu 24 109 | |||
hu 26 111 | |||
nl 25 112 | |||
pl 17 103 | |||
sk 25 120 | |||
cs 5 120 | |||
hr 24 130 | |||
hr 26 132 | |||
ru 36 120 | |||
it 28 112 | |||
es 6 112 | |||
pt 25 127 | |||
pt_pt 17 127 | |||
ro 36 136 | |||
el 7 112 | |||
el 8 112 | |||
sv 25 114 | |||
no 29 118 | |||
is 27 113 | |||
@@ -184,7 +184,10 @@ | |||
1 r3/r_i base | |||
6 r3/r_n base cy eo fr pl ru | |||
1 r3/r_o base | |||
2 r3/r_test1.wav hu hr | |||
2 r3/r_test2.wav hu hr | |||
3 r3/r_trill base eo it | |||
4 r3/r_trill2 hu hr | |||
3 r3/r_trill.wav base eo it | |||
1 r3/r_u base | |||
28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is | |||
@@ -446,7 +449,7 @@ | |||
10 vowel/e_mid2 af de fi nl sk ro el sw | |||
1 vowel/@_fnt hr | |||
1 vowel/@_hgh no | |||
17 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | |||
18 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | |||
1 vowel/i# cy | |||
3 vowel/i_2 de nl sv | |||
2 vowel/i_3 af sk |
@@ -48,7 +48,7 @@ volume 16 | |||
0 a a 5 a _ | |||
0 & a 5 a _ | |||
// map English phonemes to Hungarian | |||
// map English phonemes to Croatian | |||
0 3 r 5 r _ | |||
0 @ NULL 0 a | |||
0 eI NULL 60 e j |
@@ -0,0 +1,102 @@ | |||
volume 16 | |||
0 l/2 NULL 0 l | |||
0 l/ NULL 0 l | |||
0 r/ r 5 r _ | |||
2 r p 0 R | |||
2 r b 0 R | |||
2 r t 0 R | |||
2 r d 0 R | |||
2 r k 0 R | |||
2 r g 0 R | |||
2 r m 0 R | |||
2 r n 0 R | |||
2 r l/2 0 R | |||
2 r f 0 R | |||
2 r v 0 R | |||
2 r T 0 R | |||
2 r s 0 R | |||
2 r z 0 R | |||
0 r 3 5 r _ | |||
0 r/ NULL 0 r | |||
2 R z 0 R | |||
0 R NULL 0 r | |||
0 r- NULL 0 r | |||
0 l- NULL 0 l | |||
0 w/ NULL 0 w | |||
0 j/ NULL 0 j | |||
2 ; i 0 NULL | |||
0 ; NULL 0 j | |||
0 - NULL 0 NULL | |||
0 g- NULL 0 NULL | |||
1 @- * 0 R | |||
0 @- NULL 0 NULL | |||
0 * NULL 0 r | |||
0 N g 0 V | |||
0 N J 0 V | |||
0 N NULL 0 n | |||
0 J NULL 0 q | |||
0 Q NULL 0 G | |||
1 m ; 0 M | |||
0 n^ NULL 0 N | |||
0 l^ NULL 0 L | |||
0 ts NULL 0 S | |||
0 dz NULL 0 Z | |||
1 d z 0 Z | |||
1 k s 0 X | |||
1 p s 0 Y | |||
0 s; NULL 0 s | |||
0 z; NULL 0 z | |||
0 aI NULL 60 a i | |||
0 oI NULL 60 o i | |||
0 a/ NULL 0 a | |||
// map English phonemes to Greek | |||
0 3 NULL 60 e r | |||
0 @ NULL 0 a | |||
0 eI NULL 60 e i | |||
0 aU NULL 60 a u | |||
0 oU NULL 0 o | |||
0 @L NULL 40 e l | |||
0 @2 NULL 0 e // @ | |||
0 @5 NULL 0 e // @ | |||
0 3 NULL 0 r // @ | |||
0 a2 NULL 0 a // @ | |||
0 I2 NULL 0 i | |||
0 I NULL 0 i | |||
0 a NULL 0 a | |||
0 aa NULL 0 a | |||
0 V NULL 0 a // @ | |||
0 U NULL 0 u | |||
0 0 NULL 0 o | |||
0 i: NULL 0 i | |||
0 u: NULL 0 u | |||
0 A: NULL 0 a | |||
0 3: NULL 60 e r // @ | |||
//0 aI NULL 60 a j | |||
0 OI NULL 60 o j | |||
0 i@ NULL 60 i r // @ | |||
0 e@ NULL 70 e r | |||
0 o@ NULL 70 o r // @ | |||
0 O@ NULL 70 o r // @ | |||
0 O NULL 0 o | |||
0 O: NULL 0 a | |||
0 A: NULL 0 a | |||
0 A@ NULL 70 a r | |||
0 U@ NULL 60 u r // @ | |||
0 aI@ NULL 70 a r // @ | |||
0 aU@ NULL 0 a | |||
0 E NULL 0 e | |||
0 w NULL 0 v | |||
0 h NULL 0 x | |||
0 tS VWL 0 c | |||
0 tS NULL 0 S | |||
0 dZ VWL 0 q | |||
0 dZ NULL 0 Z | |||
@@ -184,4 +184,22 @@ phoneme x | |||
switchvoicing Q | |||
endphoneme | |||
phoneme R2 // test | |||
liquid | |||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||
formants r3/r_trill2+r3/r_test1.wav%140 | |||
trill | |||
lengthmod 6 | |||
endphoneme | |||
phoneme R3 // test | |||
liquid | |||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||
formants r3/r_trill2+r3/r_test2.wav%140 | |||
trill | |||
lengthmod 6 | |||
endphoneme | |||
@@ -16,6 +16,13 @@ phoneme e | |||
formants vowel/e_mid2 | |||
endphoneme | |||
phoneme i | |||
vowel starttype (i) endtype (i) | |||
length 140 | |||
formants vowel/i | |||
linkout ; | |||
endphoneme | |||
phoneme o | |||
vowel starttype (o) endtype (o) | |||
length 180 | |||
@@ -28,7 +35,7 @@ endphoneme | |||
phoneme t // revert to alveolar /t/ | |||
vls alv stop | |||
vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
vowelin f1=1 f2=1700 -300 300 f3=-100 80 rms=30 | |||
vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
lengthmod 2 | |||
wave ustop/t_short%80 |
@@ -202,4 +202,23 @@ phoneme s2 // second part of geminated [s:] | |||
endphoneme | |||
phoneme R2 // test | |||
liquid | |||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||
formants r3/r_trill2+r3/r_test1.wav%140 | |||
trill | |||
lengthmod 6 | |||
endphoneme | |||
phoneme R3 // test | |||
liquid | |||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||
formants r3/r_trill2+r3/r_test2.wav%140 | |||
trill | |||
lengthmod 6 | |||
endphoneme | |||
@@ -924,8 +924,8 @@ endphoneme | |||
phoneme c | |||
vls pal stop | |||
vowelin f1=0 f2=2700 400 600 f3=500 80 rate len=80 | |||
vowelout f1=0 f2=2700 400 600 f3=300 80 | |||
vowelin f1=0 f2=2700 200 500 f3=500 80 rate len=80 | |||
vowelout f1=0 f2=2700 300 500 f3=300 80 | |||
lengthmod 2 | |||
wave ustop/c%130 | |||
before _ ustop/ki%80 |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.25.01 20.May.07"; | |||
const char *version_string = "1.25.02 21.May.07"; | |||
const int version_phdata = 0x012501; | |||
int option_device_number = -1; |
@@ -1153,6 +1153,13 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
DoSpect(p->ph,phoneme_tab[phonSCHWA],next->ph,1,p,0); | |||
} | |||
} | |||
else | |||
{ | |||
if(p->synthflags & SFLAG_LENGTHEN) | |||
{ | |||
DoPause(50); | |||
} | |||
} | |||
if(pre_voiced) | |||
{ |
@@ -122,6 +122,7 @@ Translator *SelectTranslator(const char *name) | |||
// character codes offset by 0x380 | |||
static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; | |||
static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; | |||
static const char el_voiceless[]= {0x38,0x3a,0x3f,0x40,0x42,0x43,0x44,0x46,0x47,0}; | |||
static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0}; | |||
static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ | |||
@@ -137,6 +138,7 @@ Translator *SelectTranslator(const char *name) | |||
SetLetterBits(tr,LETTERGP_A,el_vowels); | |||
SetLetterBits(tr,LETTERGP_B,el_voiceless); | |||
SetLetterBits(tr,LETTERGP_C,el_consonants); | |||
SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ | |||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
tr->langopts.stress_rule = 2; | |||
@@ -321,7 +323,7 @@ Translator *SelectTranslator(const char *name) | |||
tr->langopts.stress_rule = 0; | |||
tr->langopts.stress_flags = 0x56; // move secondary stress from light to a following heavy syllable | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x1; | |||
tr->langopts.param[LOPT_IT_DOUBLING] = 1; | |||
tr->langopts.long_stop = 130; | |||
@@ -1150,8 +1150,8 @@ int Translator::TranslateWord2(char *word, WORD_TAB *wtab, int pre_pause, int ne | |||
if(sylimit & 0x100) | |||
{ | |||
// only if the second word has $alt attribute | |||
strcpy(ph_buf,word_phonemes); | |||
flags2 = translator->TranslateWord(p2+1, 0, wtab+1); | |||
strcpy(ph_buf,word_phonemes); | |||
if((flags2 & FLAG_ALT_TRANS) == 0) | |||
{ | |||
ok = 0; | |||
@@ -1159,6 +1159,12 @@ int Translator::TranslateWord2(char *word, WORD_TAB *wtab, int pre_pause, int ne | |||
} | |||
} | |||
if((sylimit & 0x200) && ((wtab+1)->flags & FLAG_LAST_WORD)) | |||
{ | |||
// not if the next word is end-of-sentence | |||
ok = 0; | |||
} | |||
if(ok) | |||
{ | |||
*p2 = '-'; // replace next space by hyphen |
@@ -236,6 +236,9 @@ extern const int param_defaults[N_SPEECH_PARAM]; | |||
// don't reduce the strongest vowel in a word which is marked 'unstressed' | |||
#define LOPT_KEEP_UNSTR_VOWEL 10 | |||
// LANG=cs,sk combine some prepositions with the following word, if the combination has N or fewer syllables | |||
// bits 0-3 N syllables | |||
// bit 4=only if the second word has $alt attribute | |||
// bit 5=not if the second word is end-of-sentence | |||
#define LOPT_COMBINE_WORDS 11 | |||