mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.25.02] Added translation for mbrola "gr2" Greek voice.
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-fd96e6ae7743
This commit is contained in:
@@ -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
|
||||
|
||||
+5
-5
@@ -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_
|
||||
|
||||
+29
-11
@@ -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
|
||||
|
||||
|
||||
+12
-10
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
|
||||
|
||||
+8
-1
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+7
-1
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user