mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-08 07:32:32 +00:00
[1.28.04] Don't join [v][z] to a liquid [l][r][w][j] across a word boundary.
Changes voice variant file names in espeak_data/voices/!v from !variant12 etc to !varnt12 for DOS 8 character filename limit. Use a separate phoneme translation file for Swedish voice mbrola "sw2". Updates languages dictionaries "af", "sv" git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@73 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+9
-4
@@ -1087,6 +1087,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
unsigned char *pitch_env=NULL;
|
||||
unsigned char *amp_env;
|
||||
PHONEME_TAB *ph;
|
||||
PHONEME_TAB *prev_ph;
|
||||
|
||||
#ifdef TEST_MBROLA
|
||||
if(mbrola_name[0] != 0)
|
||||
@@ -1263,7 +1264,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
}
|
||||
}
|
||||
|
||||
if((next->type==phVOWEL) || (next->type==phLIQUID))
|
||||
if((next->type==phVOWEL) || ((next->type==phLIQUID)) && (next->newword==0)) // ?? test 14.Aug.2007
|
||||
{
|
||||
StartSyllable();
|
||||
if(p->synthflags & SFLAG_LENGTHEN)
|
||||
@@ -1317,6 +1318,10 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
if(p->ph->phflags & phTRILL)
|
||||
modulation = 5;
|
||||
|
||||
prev_ph = prev->ph;
|
||||
// if(p->newword)
|
||||
// prev_ph = phoneme_tab[phonPAUSE]; // pronounce fully at the start of a word
|
||||
|
||||
if(!(p->synthflags & SFLAG_SEQCONTINUE))
|
||||
{
|
||||
DoAmplitude(p->amp,NULL);
|
||||
@@ -1331,16 +1336,16 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
if(next->type==phVOWEL)
|
||||
{
|
||||
StartSyllable();
|
||||
DoSpect(p->ph,prev->ph,next->ph,1,p,modulation); // (,)r
|
||||
DoSpect(p->ph,prev_ph,next->ph,1,p,modulation); // (,)r
|
||||
}
|
||||
else
|
||||
if(prev->type==phVOWEL && (p->synthflags & SFLAG_SEQCONTINUE))
|
||||
{
|
||||
DoSpect(p->ph,prev->ph,next->ph,1,p,modulation);
|
||||
DoSpect(p->ph,prev_ph,next->ph,1,p,modulation);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoSpect(p->ph,prev->ph,next->ph,1,p,modulation);
|
||||
DoSpect(p->ph,prev_ph,next->ph,1,p,modulation);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user