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
Dictionary el_dict | Dictionary el_dict | ||||
@- a aI e i o oI u | |||||
@ @- a aI e i o oI | |||||
u | |||||
* ; b c C d D f | * ; b c C d D f | ||||
g j k l l^ m n N | g j k l l^ m n N |
_0 miD'en | _0 miD'en | ||||
_1 'ena | _1 'ena | ||||
_2 D'io | _2 D'io | ||||
_3 tr'ia | |||||
_3f tr'is | |||||
_3 t@-@'ia | |||||
_3f t@-@'is | |||||
_4 t'esera | _4 t'esera | ||||
_4f t'eseris | _4f t'eseris | ||||
_5 p'ente | _5 p'ente | ||||
_11 'enDeka | _11 'enDeka | ||||
_12 D'oDeka | _12 D'oDeka | ||||
_2X 'ikosi | _2X 'ikosi | ||||
_3X tri'anda | |||||
_3X t@-*i'anda | |||||
_4X sar'anda | _4X sar'anda | ||||
_5X pen'inda | _5X pen'inda | ||||
_6X eks'inda | _6X eks'inda | ||||
_1C0 ekat'o | _1C0 ekat'o | ||||
_1C ekat'on_ | _1C ekat'on_ | ||||
_2C D;ak'os;a_ | _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_ | _5C pendak'os;a_ | ||||
_6C eksak'os;a_ | _6C eksak'os;a_ | ||||
_7C eptak'os;a_ | _7C eptak'os;a_ |
// Α α, Β β, Γ γ, Δ δ, Ε ε, Ζ ζ, Η η, Θ θ, Ι ι, Κ κ, Λ λ, Μ μ, Ν ν, Ξ ξ, | // Α α, Β β, Γ γ, Δ δ, Ε ε, Ζ ζ, Η η, Θ θ, Ι ι, Κ κ, Λ λ, Μ μ, Ν ν, Ξ ξ, | ||||
// Ο ο, Π π, Ρ ρ, Σ σ ς (word-final form), Τ τ, Υ υ, Φ φ, Χ χ, Ψ ψ, Ω ω. | // Ο ο, Π π, Ρ ρ, Σ σ ς (word-final form), Τ τ, Υ υ, Φ φ, Χ χ, Ψ ψ, Ω ω. | ||||
// Y: ε η ι υ (+tonos variants, front vowels). | |||||
.group α | .group α | ||||
α a | α a | ||||
αι e | αι e | ||||
κ (κ | κ (κ | ||||
ν_) κ g | ν_) κ g | ||||
κ (Y c | |||||
κ (αι c | |||||
κ (αί c | |||||
κ (οι c | |||||
κ (οί c | |||||
κη (A c // k + i sound = [c] | κη (A c // k + i sound = [c] | ||||
κι (A c | κι (A c | ||||
κυ (A c | κυ (A c | ||||
ν (_π m | ν (_π m | ||||
ν (_ψ m | ν (_ψ m | ||||
ν (_κ N | ν (_κ N | ||||
ν (_και_ n // there is a pause before και | |||||
ν (_ξ N | ν (_ξ N | ||||
νη (A n^ | νη (A n^ | ||||
νι (A n^ | νι (A n^ | ||||
νυ (A n^ | νυ (A n^ | ||||
.group ρ | .group ρ | ||||
ρ R | ρ R | ||||
ρ (ρ | |||||
ρρ R | |||||
A) ρ (A * | A) ρ (A * | ||||
C) ρ (A @-* | |||||
C) ρ @-* | |||||
αυ) ρ @-* // υ becomes consionant [v] | |||||
αύ) ρ @-* | |||||
ευ) ρ @-* | |||||
εύ) ρ @-* | |||||
ηυ) ρ @-* | |||||
ηύ) ρ @-* | |||||
.group σ | .group σ | ||||
σ s | σ s | ||||
σ (σ | |||||
// ?? σ (σ | |||||
ση (A s; | ση (A s; | ||||
σι (A s; | σι (A s; | ||||
συ (A s; | συ (A s; | ||||
.group χ | .group χ | ||||
χ x | χ x | ||||
χ (Y C | |||||
χ (αι C | χ (αι C | ||||
χ (αί C | χ (αί C | ||||
χ (ε C | |||||
χ (έ C | |||||
χ (η C | |||||
χ (ή C | |||||
χ (ι C | |||||
χ (ί C | |||||
χ (οι C | χ (οι C | ||||
χ (οί C | χ (οί C | ||||
χ (υ C | |||||
χ (ύ C | |||||
χει (A C | |||||
χη (A C | |||||
χι (A C | |||||
χοι (A C | |||||
χυ (A C | |||||
.group ψ | .group ψ | ||||
ψ ps | ψ ps |
queu kju: | queu kju: | ||||
qu (_ k | qu (_ k | ||||
quay ki: | quay ki: | ||||
jac) qu k | |||||
li) quor k3 | li) quor k3 | ||||
quy kwI | quy kwI | ||||
d d | d d | ||||
dd d: | dd d: | ||||
dz dz | dz dz | ||||
A) dz (A dz: | |||||
A) dz (A d:z | |||||
dzs dZ | dzs dZ | ||||
A) dzs dZ: | A) dzs dZ: | ||||
dsz (C ts | dsz (C ts | ||||
A) dsz (A ts: | A) dsz (A ts: | ||||
dz dz | dz dz | ||||
A) dz (A d:z | |||||
C) dzs Z | |||||
A) dzs (A Z: | |||||
C) dzs dZ | |||||
A) dzs (A dZ: | |||||
C) dj J | C) dj J | ||||
A) dj (A J: | A) dj (A J: | ||||
A) gysz (A ts: | A) gysz (A ts: | ||||
gyz dz | gyz dz | ||||
A) gyz (A d:z | A) gyz (A d:z | ||||
C) gyzs Z | |||||
A) gyzs (A Z: | |||||
C) gyzs dZ | |||||
A) gyzs (A dZ: | |||||
C) gyj J | C) gyj J | ||||
A) gyj (A J: | A) gyj (A J: | ||||
.group l | .group l | ||||
l l | l l | ||||
ly j | ly j | ||||
lly jj | |||||
lj jj | lj jj | ||||
.group m | .group m | ||||
n (p m | n (p m | ||||
n (b m | n (b m | ||||
ny n^ | ny n^ | ||||
nny n^n^ | |||||
ny (k N | ny (k N | ||||
ny (g N | ny (g N | ||||
A) tz (A d:z | A) tz (A d:z | ||||
tyz dz | tyz dz | ||||
A) tyz (A d:z | 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 | C) tj c | ||||
A) tj (A c: | A) tj (A c: | ||||
C) tyj c | C) tyj c | ||||
.group z | .group z | ||||
z z | z z | ||||
zs Z | zs Z | ||||
zzs Z: | |||||
.group | .group |
fr 33 115 | fr 33 115 | ||||
fr_ca 11 115 | fr_ca 11 115 | ||||
hi 49 127 | hi 49 127 | ||||
hu 24 109 | |||||
hu 26 111 | |||||
nl 25 112 | nl 25 112 | ||||
pl 17 103 | pl 17 103 | ||||
sk 25 120 | sk 25 120 | ||||
cs 5 120 | cs 5 120 | ||||
hr 24 130 | |||||
hr 26 132 | |||||
ru 36 120 | ru 36 120 | ||||
it 28 112 | it 28 112 | ||||
es 6 112 | es 6 112 | ||||
pt 25 127 | pt 25 127 | ||||
pt_pt 17 127 | pt_pt 17 127 | ||||
ro 36 136 | ro 36 136 | ||||
el 7 112 | |||||
el 8 112 | |||||
sv 25 114 | sv 25 114 | ||||
no 29 118 | no 29 118 | ||||
is 27 113 | is 27 113 | ||||
1 r3/r_i base | 1 r3/r_i base | ||||
6 r3/r_n base cy eo fr pl ru | 6 r3/r_n base cy eo fr pl ru | ||||
1 r3/r_o base | 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 | 3 r3/r_trill base eo it | ||||
4 r3/r_trill2 hu hr | |||||
3 r3/r_trill.wav base eo it | 3 r3/r_trill.wav base eo it | ||||
1 r3/r_u base | 1 r3/r_u base | ||||
28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is | 28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is | ||||
10 vowel/e_mid2 af de fi nl sk ro el sw | 10 vowel/e_mid2 af de fi nl sk ro el sw | ||||
1 vowel/@_fnt hr | 1 vowel/@_fnt hr | ||||
1 vowel/@_hgh no | 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 | 1 vowel/i# cy | ||||
3 vowel/i_2 de nl sv | 3 vowel/i_2 de nl sv | ||||
2 vowel/i_3 af sk | 2 vowel/i_3 af sk |
0 a a 5 a _ | 0 a a 5 a _ | ||||
0 & a 5 a _ | 0 & a 5 a _ | ||||
// map English phonemes to Hungarian | |||||
// map English phonemes to Croatian | |||||
0 3 r 5 r _ | 0 3 r 5 r _ | ||||
0 @ NULL 0 a | 0 @ NULL 0 a | ||||
0 eI NULL 60 e j | 0 eI NULL 60 e j |
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 | |||||
switchvoicing Q | switchvoicing Q | ||||
endphoneme | 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 | |||||
formants vowel/e_mid2 | formants vowel/e_mid2 | ||||
endphoneme | endphoneme | ||||
phoneme i | |||||
vowel starttype (i) endtype (i) | |||||
length 140 | |||||
formants vowel/i | |||||
linkout ; | |||||
endphoneme | |||||
phoneme o | phoneme o | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 180 | length 180 | ||||
phoneme t // revert to alveolar /t/ | phoneme t // revert to alveolar /t/ | ||||
vls alv stop | 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 | vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | ||||
lengthmod 2 | lengthmod 2 | ||||
wave ustop/t_short%80 | wave ustop/t_short%80 |
endphoneme | 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 | |||||
phoneme c | phoneme c | ||||
vls pal stop | 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 | lengthmod 2 | ||||
wave ustop/c%130 | wave ustop/c%130 | ||||
before _ ustop/ki%80 | before _ ustop/ki%80 |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x012501; | ||||
int option_device_number = -1; | int option_device_number = -1; |
DoSpect(p->ph,phoneme_tab[phonSCHWA],next->ph,1,p,0); | DoSpect(p->ph,phoneme_tab[phonSCHWA],next->ph,1,p,0); | ||||
} | } | ||||
} | } | ||||
else | |||||
{ | |||||
if(p->synthflags & SFLAG_LENGTHEN) | |||||
{ | |||||
DoPause(50); | |||||
} | |||||
} | |||||
if(pre_voiced) | if(pre_voiced) | ||||
{ | { |
// character codes offset by 0x380 | // 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_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_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 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}; // σ | static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ | ||||
SetLetterBits(tr,LETTERGP_A,el_vowels); | SetLetterBits(tr,LETTERGP_A,el_vowels); | ||||
SetLetterBits(tr,LETTERGP_B,el_voiceless); | SetLetterBits(tr,LETTERGP_B,el_voiceless); | ||||
SetLetterBits(tr,LETTERGP_C,el_consonants); | 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.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
tr->langopts.stress_rule = 2; | tr->langopts.stress_rule = 2; | ||||
tr->langopts.stress_rule = 0; | tr->langopts.stress_rule = 0; | ||||
tr->langopts.stress_flags = 0x56; // move secondary stress from light to a following heavy syllable | 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.param[LOPT_IT_DOUBLING] = 1; | ||||
tr->langopts.long_stop = 130; | tr->langopts.long_stop = 130; | ||||
if(sylimit & 0x100) | if(sylimit & 0x100) | ||||
{ | { | ||||
// only if the second word has $alt attribute | // only if the second word has $alt attribute | ||||
strcpy(ph_buf,word_phonemes); | |||||
flags2 = translator->TranslateWord(p2+1, 0, wtab+1); | flags2 = translator->TranslateWord(p2+1, 0, wtab+1); | ||||
strcpy(ph_buf,word_phonemes); | |||||
if((flags2 & FLAG_ALT_TRANS) == 0) | if((flags2 & FLAG_ALT_TRANS) == 0) | ||||
{ | { | ||||
ok = 0; | ok = 0; | ||||
} | } | ||||
} | } | ||||
if((sylimit & 0x200) && ((wtab+1)->flags & FLAG_LAST_WORD)) | |||||
{ | |||||
// not if the next word is end-of-sentence | |||||
ok = 0; | |||||
} | |||||
if(ok) | if(ok) | ||||
{ | { | ||||
*p2 = '-'; // replace next space by hyphen | *p2 = '-'; // replace next space by hyphen |
// don't reduce the strongest vowel in a word which is marked 'unstressed' | // don't reduce the strongest vowel in a word which is marked 'unstressed' | ||||
#define LOPT_KEEP_UNSTR_VOWEL 10 | #define LOPT_KEEP_UNSTR_VOWEL 10 | ||||
// LANG=cs,sk combine some prepositions with the following word, if the combination has N or fewer syllables | // 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 | #define LOPT_COMBINE_WORDS 11 | ||||