Browse Source

Changes to voice: en-r


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@97 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
bd79fee87d

+ 6
- 0
dictsource/dict_phonemes View File



Dictionary zh_dict Dictionary zh_dict


@r a A ai E ei i i0
i[ iou u

c; j k kh l n N p
ph R R2 R3 s tc; tc; th
ts ts. ts. tsh w




Dictionary zhh_dict Dictionary zhh_dict

+ 4
- 1
espeak-data/voices/en/en-r View File

dictrules 3 6 dictrules 3 6
option 12 1 // reduce [t] option 12 1 // reduce [t]


stressLength 150 125 180 180 0 0 270 300
stressLength 150 125 180 180 0 0 270 280
stressAmp 17 16 20 20 20 22 23 20 stressAmp 17 16 20 20 20 22 23 20


//replace 03 I i
//replace 03 I2 i

formant 1 99 100 100 formant 1 99 100 100

+ 18
- 20
phsource/compile_report View File

l/L2_uL [(u)] base l/L2_uL [(u)] base
[u:] en [u:] en
[u:] en_n [u:] en_n
[u:] en_us
[u:] en_rp [u:] en_rp
l/l_3 [l/] de l/l_3 [l/] de
[l] fr [l] fr
[EI] de [EI] de
[EI] nl [EI] nl
[EI] vi [EI] vi
vdiph/eei_2 [eI] en_us
[eI] eo
vdiph/eei_2 [eI] eo
[ei] fi [ei] fi
vdiph/eei_3 [eI] en_rp vdiph/eei_3 [eI] en_rp
[eI] sk [eI] sk
vdiph/oi_2 [oI] af vdiph/oi_2 [oI] af
vdiph/ooi [OI] en vdiph/ooi [OI] en
[OI] en_n [OI] en_n
[OI] en_us
[OI] cy [OI] cy
[OY] cy [OY] cy
[OI] eo [OI] eo
[OI] no [OI] no
[oi] zhy [oi] zhy
vdiph/ooi_2 [OI] af vdiph/ooi_2 [OI] af
vdiph/ooi_3 [OI] en_rp
vdiph/ooi_3 [OI] en_us
[OI] en_rp
[aI] en_wm [aI] en_wm
vdiph/oou [oU] cs vdiph/oou [oU] cs
[OU] grc [OU] grc
[@] en [@] en
[@2] en [@2] en
[@5] en [@5] en
[@] en_us
[@2] en_us
[@5] en_us
[3] en_rp [3] en_rp
[@] en_rp [@] en_rp
[V] cy [V] cy
[A] hu [A] hu
vowel/@_2 [@] fr vowel/@_2 [@] fr
[W] fr [W] fr
vowel/&_2 [a] en_us
[aa] en_us
[&?] zhh
vowel/&_2 [&?] zhh
vowel/@_3 [@] en_sc vowel/@_3 [@] en_sc
[I] en_sc [I] en_sc
[@2] en_sc [@2] en_sc
[E:] no [E:] no
[e] zhy [e] zhy
vowel/ee_2 [E] en vowel/ee_2 [E] en
[E] en_us
[E] cy [E] cy
[E2] nl [E2] nl
[E] zh [E] zh
vowel/@_fnt [@2] hr vowel/@_fnt [@2] hr
[@] en_wi [@] en_wi
[@2] en_wi [@2] en_wi
vowel/@_hgh [@] no
vowel/@_hgh [@] en_us
[@2] en_us
[@5] en_us
[@] no
vowel/i [i] base2 vowel/i [i] base2
[i:] en_n [i:] en_n
[i] en_wm [i] en_wm
[i?] zhh [i?] zhh
[i] sw [i] sw
[i] en_wi [i] en_wi
vowel/i# [i] en_rp
vowel/i# [i] en_us
[i] en_rp
[y:] cy [y:] cy
vowel/i_2 [i:] en_rp vowel/i_2 [i:] en_rp
[i2] de [i2] de
[U] hr [U] hr
[u] ro [u] ro
vowel/u#_2 [u-] sv vowel/u#_2 [u-] sv
vowel/u_3 [u:] en_us
[yU] ro
vowel/u_3 [yU] ro
vowel/u_4 [u:] en_n vowel/u_4 [u:] en_n
vowel/u#_4 [U] en_sc vowel/u#_4 [U] en_sc
[u:] en_sc [u:] en_sc
vowel/u_5 [u] sw vowel/u_5 [u] sw
vowel/u#_5 [u:] en_us
vowel/u_6 [U] pt_pt vowel/u_6 [U] pt_pt
[u] pt_pt [u] pt_pt
vowel/u_7 [u] vi vowel/u_7 [u] vi
[U] no [U] no
[u] zhy [u] zhy
[U] en_wi [U] en_wi
vowel/V [3] en_sc
vowel/V [V] en_us
[3] en_sc
vowel/V_2 [V] en vowel/V_2 [V] en
[V] en_us
[a] af [a] af
[V] ru [V] ru
[V#] ru [V#] ru
vwl_en/u [u:] en vwl_en/u [u:] en
vwl_en/u_L [u:] en vwl_en/u_L [u:] en
[u:] en_n [u:] en_n
[u:] en_us
[u:] en_rp [u:] en_rp
vwl_en_us/3_us [3] en_us vwl_en_us/3_us [3] en_us
[3:] en_us [3:] en_us
vwl_en_us/a [a] en_us
[aa] en_us
vwl_en_us/aai [aI] en_us vwl_en_us/aai [aI] en_us
vwl_en_us/ar [A:] en_us vwl_en_us/ar [A:] en_us
[A@] en_us [A@] en_us
vwl_en_us/ee [E] en_us
vwl_en_us/ei [eI] en_us
vwl_en_us/er [e@] en_us vwl_en_us/er [e@] en_us
vwl_en_us/i_final3 [i] en_us
vwl_en_us/ii [I] en_us vwl_en_us/ii [I] en_us
[I2] en_us [I2] en_us
vwl_en_us/ir [i@] en_us vwl_en_us/ir [i@] en_us

+ 42
- 39
phsource/ph_english_us View File



phoneme @ // Schwa phoneme @ // Schwa
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vowel/@
formants vowel/@_hgh
unstressed unstressed
linkout r- linkout r-
length 130 length 130
unstressed unstressed
linkout r- linkout r-
beforevowel @ beforevowel @
length 180
length 200
endphoneme endphoneme




phoneme @2 // Schwa, changes to I before a vowel phoneme @2 // Schwa, changes to I before a vowel
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vowel/@
formants vowel/@_hgh
unstressed unstressed
beforevowel I2 beforevowel I2
length 120 length 120


phoneme @5 // Schwa, changes to U before a vowel phoneme @5 // Schwa, changes to U before a vowel
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vowel/@
formants vowel/@_hgh
unstressed unstressed
beforevowelpause U beforevowelpause U
length 130 length 130


phoneme a phoneme a
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 180
formants vowel/&_2
// formants vwl_en_us/a
length 200
// formants vowel/&_2
formants vwl_en_us/a
reduceto a2 0 reduceto a2 0
endphoneme endphoneme




phoneme aa // 'bath' etc. phoneme aa // 'bath' etc.
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 190
formants vowel/&_2
// formants vwl_en_us/a
length 220
// formants vowel/&_2
formants vwl_en_us/a
linkout r- linkout r-
endphoneme endphoneme


phoneme a2 phoneme a2
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
unstressed unstressed
length 140
length 150
formants vowel/a#_3 formants vowel/a#_3
linkout r- linkout r-
endphoneme endphoneme


phoneme E phoneme E
vowel starttype (e) endtype (e) vowel starttype (e) endtype (e)
length 160
formants vowel/ee_2
length 185
// formants vowel/ee_2
formants vwl_en_us/ee
reduceto I 0 reduceto I 0
endphoneme endphoneme




phoneme I phoneme I
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 130
length 120
formants vwl_en_us/ii formants vwl_en_us/ii
linkout ; linkout ;
endphoneme endphoneme


phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 170
formants vwl_en_us/i_final3
length 200
// formants vwl_en_us/i_final3
formants vowel/i#
linkout ; linkout ;
endphoneme endphoneme




phoneme 0 phoneme 0
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 180
length 200
formants vowel/aa_8 formants vowel/aa_8
reduceto @ 0 reduceto @ 0
endphoneme endphoneme


phoneme V phoneme V
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 170
// formants vwl_en_us/V
formants vowel/V_2
length 165
// formants vowel/V_2
formants vowel/V
reduceto @ 0 reduceto @ 0
endphoneme endphoneme




phoneme 3: phoneme 3:
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 220
length 190
// formants vwl_en_us/@r_us2 // formants vwl_en_us/@r_us2
formants vwl_en_us/3_us formants vwl_en_us/3_us
// reduceto @ 0 // reduceto @ 0


phoneme i: phoneme i:
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 160
length 150
formants vowel/i_en formants vowel/i_en
after w w/wi2 after w w/wi2
linkout ; linkout ;


phoneme O@ phoneme O@
vowel starttype (o) endtype (@) vowel starttype (o) endtype (@)
length 240
length 270
formants vwl_en_us/oor formants vwl_en_us/oor
appendph r appendph r
endphoneme endphoneme


phoneme o@ phoneme o@
vowel starttype (o) endtype (@) vowel starttype (o) endtype (@)
length 240
length 270
formants vwl_en_us/or formants vwl_en_us/or
appendph r appendph r
endphoneme endphoneme


phoneme O phoneme O
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 150
length 200
formants vwl_en_us/oo formants vwl_en_us/oo
reduceto @ 0 reduceto @ 0
endphoneme endphoneme


phoneme u: phoneme u:
vowel starttype (u) endtype (u) vowel starttype (u) endtype (u)
length 170
formants vowel/u_3
before l/2 vwl_en/u_L-40+l/L2_uL
length 160
formants vowel/u#_5
// before l/2 vwl_en/u_L-40+l/L2_uL
endphoneme endphoneme




phoneme aU phoneme aU
vowel starttype (a) endtype (u) vowel starttype (a) endtype (u)
length 200
length 210
formants vdiph/au_2 formants vdiph/au_2
endphoneme endphoneme




phoneme oU phoneme oU
vowel starttype (@) endtype (u) vowel starttype (@) endtype (u)
length 210
length 240
formants vdiph/8u formants vdiph/8u
endphoneme endphoneme




phoneme aI phoneme aI
vowel starttype (a) endtype (i) vowel starttype (a) endtype (i)
length 210
length 235
formants vwl_en_us/aai formants vwl_en_us/aai
endphoneme endphoneme




phoneme eI phoneme eI
vowel starttype (e) endtype (i) vowel starttype (e) endtype (i)
length 210
formants vdiph/eei_2
length 235
// formants vdiph/eei_2
formants vwl_en_us/ei
endphoneme endphoneme




phoneme OI phoneme OI
vowel starttype (o) endtype (i) vowel starttype (o) endtype (i)
length 220
formants vdiph/ooi
length 300
formants vdiph/ooi_3
endphoneme endphoneme




phoneme e@ phoneme e@
vowel starttype (e) endtype (@) vowel starttype (e) endtype (@)
length 250
length 280
formants vwl_en_us/er formants vwl_en_us/er
appendph r appendph r
endphoneme endphoneme


phoneme i@ phoneme i@
vowel starttype (i) endtype (@) vowel starttype (i) endtype (@)
length 220
length 230
formants vwl_en_us/ir formants vwl_en_us/ir
appendph r appendph r
endphoneme endphoneme


phoneme U@ phoneme U@
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 220
length 230
formants vwl_en_us/ur formants vwl_en_us/ur
linkout r- linkout r-
endphoneme endphoneme
vowelin f1=0 f2=1700 -300 300 f3=-100 80 vowelin f1=0 f2=1700 -300 300 f3=-100 80
vowelout f1=0 f2=1700 -300 300 f3=-100 80 vowelout f1=0 f2=1700 -300 300 f3=-100 80
lengthmod 5 lengthmod 5
wave x/d%80
wave x/d%70
endphoneme endphoneme





BIN
phsource/vowel/V View File


BIN
phsource/vowel/ee#_2 View File


BIN
phsource/vowel/i# View File


BIN
phsource/vowel/u#_5 View File


BIN
phsource/vowel/vowelchart.png View File


BIN
phsource/vwl_en_us/3_us View File


BIN
phsource/vwl_en_us/a View File


BIN
phsource/vwl_en_us/ee View File


BIN
phsource/vwl_en_us/ei View File


BIN
phsource/vwl_zh/aau View File


BIN
phsource/vwl_zh/ang View File


BIN
phsource/vwl_zh/eng View File


BIN
phsource/vwl_zh/i& View File


BIN
phsource/vwl_zh/i_dnt View File


BIN
phsource/vwl_zh/i_rfx View File


BIN
phsource/vwl_zh/iaa View File


BIN
phsource/vwl_zh/iaau View File


BIN
phsource/vwl_zh/iee View File


BIN
phsource/vwl_zh/iee_n View File


BIN
phsource/vwl_zh/ing View File


BIN
phsource/vwl_zh/iou View File


BIN
phsource/vwl_zh/ng View File


BIN
phsource/vwl_zh/oeng View File


BIN
phsource/vwl_zh/ua View File


BIN
phsource/vwl_zh/uaa View File


BIN
phsource/vwl_zh/uai View File


BIN
phsource/vwl_zh/uee_n View File


BIN
phsource/vwl_zh/uei View File


BIN
phsource/vwl_zh/ung View File


BIN
phsource/vwl_zh/uo View File


BIN
phsource/vwl_zh/y& View File


BIN
phsource/vwl_zh/y_n View File


BIN
phsource/vwl_zh/ya View File


BIN
phsource/vwl_zh/yee View File


+ 2
- 2
src/debug.cpp View File



void debug_init() void debug_init()
{ {
fd_log = fopen(FILENAME,"a");
setvbuf(fd_log, NULL, _IONBF, 0);
if((fd_log = fopen(FILENAME,"a")) != NULL)
setvbuf(fd_log, NULL, _IONBF, 0);
} }


void debug_enter(const char* text) void debug_enter(const char* text)

+ 5
- 2
src/dictionary.cpp View File

int stress; int stress;
PHONEME_LIST *plist; PHONEME_LIST *plist;
static const char *stress_chars = "==,,'*";
static const char *stress_chars = "==,,''";


if(phon_out != NULL) if(phon_out != NULL)
{ {
int g1; /* first group for this letter */ int g1; /* first group for this letter */
int n; int n;
int letter; int letter;
int any_alpha=0;
int ix; int ix;
int digit_count=0; int digit_count=0;
char *p; char *p;
while(((c = *p) != ' ') && (c != 0)) while(((c = *p) != ' ') && (c != 0))
{ {
if(IsAlpha(wc))
any_alpha = wc;
wc_prev = wc; wc_prev = wc;
wc_bytes = utf8_in(&wc,p,0); wc_bytes = utf8_in(&wc,p,0);


n = groups2_count[c]; n = groups2_count[c];
if(IsDigit(wc) && ((langopts.tone_numbers == 0) || !IsAlpha(wc_prev)))
if(IsDigit(wc) && ((langopts.tone_numbers == 0) || !any_alpha))
{ {
// lookup the number in *_list not *_rules // lookup the number in *_list not *_rules
char string[8]; char string[8];

+ 33
- 4
src/intonation.cpp View File

int final_stressed=0; int final_stressed=0;


int tone_ph; int tone_ph;
int pause;
int tone_promoted;
PHONEME_TAB *tph; PHONEME_TAB *tph;
PHONEME_TAB *prev_tph; // forget across word boundary PHONEME_TAB *prev_tph; // forget across word boundary
PHONEME_TAB *prevw_tph; // remember across word boundary PHONEME_TAB *prevw_tph; // remember across word boundary
} }




pause = 1;
tone_promoted = 0;

prev_p = p = &phoneme_list[0]; prev_p = p = &phoneme_list[0];
prev_tph = prevw_tph = phoneme_tab[phonPAUSE]; prev_tph = prevw_tph = phoneme_tab[phonPAUSE];


// perform tone sandhi // perform tone sandhi
for(ix=0; ix<n_phoneme_list; ix++, p++) for(ix=0; ix<n_phoneme_list; ix++, p++)
{ {
if((p->newword) && ((option_tone1 & 1)==0))
if((p->type == phPAUSE) && (p->ph->std_length > 50))
{
pause = 1; // there is a pause since the previous vowel
}

if(p->newword)
{ {
prev_tph = phoneme_tab[phonPAUSE]; // forget across word boundaries prev_tph = phoneme_tab[phonPAUSE]; // forget across word boundaries
} }
if(p->type == phVOWEL) if(p->type == phVOWEL)
{ {
tone_ph = p->tone_ph; tone_ph = p->tone_ph;
if(tone_ph == 0)
p->tone_ph = tone_ph = LookupPh("11"); // default tone 5

tph = phoneme_tab[tone_ph]; tph = phoneme_tab[tone_ph];


// Mandarin // Mandarin
if(translator_name == L('z','h')) if(translator_name == L('z','h'))
{ {
if(tone_ph == 0)
{
if(pause || tone_promoted)
{
tone_ph = LookupPh("55"); // no previous vowel, use tone 1
tone_promoted = 1;
}
else
{
tone_ph = LookupPh("11"); // default tone 5
}

p->tone_ph = tone_ph;
tph = phoneme_tab[tone_ph];

}
else
{
tone_promoted = 0;
}

if(prev_tph->mnemonic == 0x343132) // [214] if(prev_tph->mnemonic == 0x343132) // [214]
{ {
if(tph->mnemonic == 0x343132) // [214] if(tph->mnemonic == 0x343132) // [214]
prev_p = p; prev_p = p;
prev2_tph = prevw_tph; prev2_tph = prevw_tph;
prevw_tph = prev_tph = tph; prevw_tph = prev_tph = tph;
pause = 0;
} }
} }



Loading…
Cancel
Save