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 | |||