mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
cleanup: refactor and remove duplication from SetSpeed() implementations.
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user