Browse Source

code cleanup: setlength: reduce statics count

master
Yury Popov 2 years ago
parent
commit
1fd604a942
1 changed files with 18 additions and 20 deletions
  1. 18
    20
      src/libespeak-ng/setlengths.c

+ 18
- 20
src/libespeak-ng/setlengths.c View File

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

Loading…
Cancel
Save