|
|
@@ -40,6 +40,7 @@ |
|
|
|
|
|
|
|
static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3); |
|
|
|
static void SetSpeedMods(SPEED_FACTORS *speed, int voiceSpeedF1, int wpm, int x); |
|
|
|
static void SetSpeedMultiplier(int *x, int *wpm); |
|
|
|
|
|
|
|
extern int saved_parameters[]; |
|
|
|
|
|
|
@@ -193,18 +194,7 @@ void SetSpeed(int control) |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (wpm > espeakRATE_MAXIMUM) |
|
|
|
wpm = espeakRATE_MAXIMUM; |
|
|
|
|
|
|
|
wpm2 = wpm; |
|
|
|
if (wpm > 359) wpm2 = 359; |
|
|
|
if (wpm < espeakRATE_MINIMUM) wpm2 = espeakRATE_MINIMUM; |
|
|
|
x = speed_lookup[wpm2-espeakRATE_MINIMUM]; |
|
|
|
|
|
|
|
if (wpm >= 380) |
|
|
|
x = 7; |
|
|
|
if (wpm >= 400) |
|
|
|
x = 6; |
|
|
|
SetSpeedMultiplier(&x, &wpm); |
|
|
|
|
|
|
|
if (control & 1) { |
|
|
|
SetSpeedFactors(voice, x, &speed1, &speed2, &speed3); |
|
|
@@ -234,18 +224,8 @@ void SetSpeed(int control) |
|
|
|
|
|
|
|
if (voice->speed_percent > 0) |
|
|
|
wpm = (wpm * voice->speed_percent)/100; |
|
|
|
if (wpm > espeakRATE_MAXIMUM) |
|
|
|
wpm = espeakRATE_MAXIMUM; |
|
|
|
|
|
|
|
wpm2 = wpm; |
|
|
|
if (wpm > 359) wpm2 = 359; |
|
|
|
if (wpm < espeakRATE_MINIMUM) wpm2 = espeakRATE_MINIMUM; |
|
|
|
x = speed_lookup[wpm2-espeakRATE_MINIMUM]; |
|
|
|
|
|
|
|
if (wpm >= 380) |
|
|
|
x = 7; |
|
|
|
if (wpm >= 400) |
|
|
|
x = 6; |
|
|
|
SetSpeedMultiplier(&x, &wpm); |
|
|
|
|
|
|
|
if (control & 1) { |
|
|
|
SetSpeedFactors(voice, x, &speed1, &speed2, &speed3); |
|
|
@@ -259,6 +239,26 @@ void SetSpeed(int control) |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
static void SetSpeedMultiplier(int *x, int *wpm) { |
|
|
|
int wpm2; |
|
|
|
|
|
|
|
if (*wpm > espeakRATE_MAXIMUM) |
|
|
|
*wpm = espeakRATE_MAXIMUM; |
|
|
|
|
|
|
|
wpm2 = *wpm; |
|
|
|
if (*wpm > 359) wpm2 = 359; |
|
|
|
if (*wpm < espeakRATE_MINIMUM) { |
|
|
|
wpm2 = espeakRATE_MINIMUM; |
|
|
|
} |
|
|
|
|
|
|
|
*x = speed_lookup[wpm2-espeakRATE_MINIMUM]; |
|
|
|
|
|
|
|
if (*wpm >= 380) |
|
|
|
*x = 7; |
|
|
|
if (*wpm >= 400) |
|
|
|
*x = 6; |
|
|
|
} |
|
|
|
|
|
|
|
static void SetSpeedFactors(voice_t *voice, int x, int *speed1, int *speed2, int *speed3) { |
|
|
|
// set speed factors for different syllable positions within a word |
|
|
|
// these are used in CalcLengths() |