diff --git a/src/libespeak-ng/setlengths.c b/src/libespeak-ng/setlengths.c index 4968cd16..ffea7384 100644 --- a/src/libespeak-ng/setlengths.c +++ b/src/libespeak-ng/setlengths.c @@ -38,7 +38,7 @@ #include "synthesize.h" #include "translate.h" -static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3); +static void SetSpeedFactors(voice_t *voice, int x, int speeds[3]); static void SetSpeedMods(SPEED_FACTORS *speed, int voiceSpeedF1, int wpm, int x); static void SetSpeedMultiplier(int *x, int *wpm); @@ -138,9 +138,7 @@ static const unsigned char wav_factor_350[] = { 45 // 450 }; -static int speed1 = 130; -static int speed2 = 121; -static int speed3 = 118; +static int len_speeds[3] = { 130, 121, 118 }; void SetSpeed(int control) { @@ -174,9 +172,9 @@ void SetSpeed(int control) // The eSpeak output will be speeded up by at least x2 x = 73; if (control & 1) { - speed1 = (x * voice->speedf1)/256; - speed2 = (x * voice->speedf2)/256; - speed3 = (x * voice->speedf3)/256; + len_speeds[0] = (x * voice->speedf1)/256; + len_speeds[1] = (x * voice->speedf2)/256; + len_speeds[2] = (x * voice->speedf3)/256; } if (control & 2) { double sonic; @@ -201,7 +199,7 @@ void SetSpeed(int control) SetSpeedMultiplier(&x, &wpm); if (control & 1) { - SetSpeedFactors(voice, x, &speed1, &speed2, &speed3); + SetSpeedFactors(voice, x, len_speeds); } if (control & 2) { @@ -229,16 +227,16 @@ static void SetSpeedMultiplier(int *x, int *wpm) { *x = 6; } -static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3) { +static void SetSpeedFactors(voice_t *voice, int x, int speeds[3]) { // set speed factors for different syllable positions within a word // these are used in CalcLengths() - *speed1 = (x * voice->speedf1)/256; - *speed2 = (x * voice->speedf2)/256; - *speed3 = (x * voice->speedf3)/256; + speeds[0] = (x * voice->speedf1)/256; + speeds[1] = (x * voice->speedf2)/256; + speeds[2] = (x * voice->speedf3)/256; if (x <= 7) { - *speed1 = x; - *speed2 = *speed3 = x - 1; + speeds[0] = x; + speeds[1] = speeds[2] = x - 1; } } @@ -523,7 +521,7 @@ void CalcLengths(Translator *tr) p->length = prev->length; if (p->type == phLIQUID) - p->length = speed1; + p->length = len_speeds[0]; if (next->type == phVSTOP) p->length = (p->length * 160)/100; @@ -615,11 +613,11 @@ void CalcLengths(Translator *tr) } if (more_syllables == 0) - length_mod *= speed1; + length_mod *= len_speeds[0]; else if (more_syllables == 1) - length_mod *= speed2; + length_mod *= len_speeds[1]; else - length_mod *= speed3; + length_mod *= len_speeds[2]; length_mod = length_mod / 128; @@ -654,9 +652,9 @@ void CalcLengths(Translator *tr) length_mod = length_mod * (256 + (280 - len)/3)/256; } - if (length_mod > tr->langopts.max_lengthmod*speed1) { + if (length_mod > tr->langopts.max_lengthmod*len_speeds[0]) { // limit the vowel length adjustment for some languages - length_mod = (tr->langopts.max_lengthmod*speed1); + length_mod = (tr->langopts.max_lengthmod*len_speeds[0]); } length_mod = length_mod / 128;