mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
code cleanup: setlength: reduce statics count
This commit is contained in:
committed by
Alexander Epaneshnikov
parent
d2f3be9f36
commit
1fd604a942
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user