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