Browse Source

code cleanup: next bunch (#1599)

Some warnings, some globals hunting.
Including fixes for asserts misuse (possible fatal for async in release
builds).
master
Alexander Epaneshnikov 2 years ago
parent
commit
cefd4b2cc6
No account linked to committer's email address

+ 1
- 0
src/libespeak-ng/CMakeLists.txt View File

@@ -54,6 +54,7 @@ if (NOT MSVC)
"-Wmissing-prototypes"
"-Wint-conversion"
"-Wimplicit"
"-Wmisleading-indentation"
)
endif()
target_compile_definitions(espeak-ng PRIVATE "LIBESPEAK_NG_EXPORT=1")

+ 1
- 1
src/libespeak-ng/compiledata.c View File

@@ -2789,4 +2789,4 @@ static int CalculateSample(unsigned char c3, int c1) {
c2 = c2 >> 16; // sign extend

return (c1 & 0xff) + c2;
}
}

+ 1
- 1
src/libespeak-ng/compiledict.c View File

@@ -320,7 +320,7 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont
}
c = ' ';
} else if (rb == RULE_ENDING) {
static const char *flag_chars = "eipvdfq tba ";
static const char flag_chars[] = "eipvdfq tba ";
flags = ((rule[0] & 0x7f)<< 8) + (rule[1] & 0x7f);
suffix_char = 'S';
if (flags & (SUFX_P >> 8))

+ 15
- 14
src/libespeak-ng/dictionary.c View File

@@ -43,8 +43,8 @@
#include "synthesize.h" // for STRESS_IS_PRIMARY, phoneme...
#include "translate.h" // for Translator, utf8_in, LANGU...

static int LookupFlags(Translator *tr, const char *word, unsigned int **flags_out);
static void DollarRule(char *word[], char *word_start, int consumed, int group_length, char *word_buf, Translator *tr, unsigned int *flags, int command, int *failed, int *add_points);
static int LookupFlags(Translator *tr, const char *word, unsigned int flags_out[2]);
static void DollarRule(char *word[], char *word_start, int consumed, int group_length, char *word_buf, Translator *tr, int command, int *failed, int *add_points);

typedef struct {
int points;
@@ -63,7 +63,7 @@ static const unsigned short diereses_list[7] = { 0xe4, 0xeb, 0xef, 0xf6, 0xfc, 0
// convert characters to an approximate 7 bit ascii equivalent
// used for checking for vowels (up to 0x259=schwa)
#define N_REMOVE_ACCENT 0x25e
static unsigned char remove_accent[N_REMOVE_ACCENT] = {
static const unsigned char remove_accent[N_REMOVE_ACCENT] = {
'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', // 0c0
'd', 'n', 'o', 'o', 'o', 'o', 'o', 0, 'o', 'u', 'u', 'u', 'u', 'y', 't', 's', // 0d0
'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', // 0e0
@@ -396,7 +396,7 @@ void DecodePhonemes(const char *inptr, char *outptr)
unsigned char c;
unsigned int mnem;
PHONEME_TAB *ph;
static const char *stress_chars = "==,,'* ";
static const char stress_chars[] = "==,,'* ";

sprintf(outptr, "* ");
while ((phcode = *inptr++) > 0) {
@@ -551,7 +551,7 @@ const char *GetTranslatedPhonemeString(int phoneme_mode)
char phon_buf2[30];
PHONEME_LIST *plist;

static const char *stress_chars = "==,,''";
static const char stress_chars[] = "==,,''";

if (phon_out_buf == NULL) {
phon_out_size = N_PHON_OUT;
@@ -1480,10 +1480,9 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
int n_bytes;
int add_points;
int command;
unsigned int *flags = NULL;

MatchRecord match;
static MatchRecord best;
MatchRecord best;

int total_consumed; // letters consumed for best match

@@ -1699,7 +1698,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
else
failed = 1;
} else if (((command & 0xf0) == 0x20) || (command == DOLLAR_LIST)) {
DollarRule(word, word_start, consumed, group_length, word_buf, tr, flags, command, &failed, &add_points);
DollarRule(word, word_start, consumed, group_length, word_buf, tr, command, &failed, &add_points);
}

break;
@@ -1888,7 +1887,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
pre_ptr++;
command = *rule++;
if ((command == DOLLAR_LIST) || ((command & 0xf0) == 0x20)) {
DollarRule(word, word_start, consumed, group_length, word_buf, tr, flags, command, &failed, &add_points);
DollarRule(word, word_start, consumed, group_length, word_buf, tr, command, &failed, &add_points);
}
break;
case RULE_SYLLABLE:
@@ -2842,7 +2841,7 @@ int Lookup(Translator *tr, const char *word, char *ph_out)
return flags0;
}

static int LookupFlags(Translator *tr, const char *word, unsigned int **flags_out)
static int LookupFlags(Translator *tr, const char *word, unsigned int flags_out[2])
{
char buf[100];
static unsigned int flags[2];
@@ -2850,7 +2849,8 @@ static int LookupFlags(Translator *tr, const char *word, unsigned int **flags_ou

flags[0] = flags[1] = 0;
LookupDictList(tr, &word1, buf, flags, 0, NULL);
*flags_out = flags;
flags_out[0] = flags[0];
flags_out[1] = flags[1];
return flags[0];
}

@@ -2979,14 +2979,15 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy)
return end_flags;
}

static void DollarRule(char *word[], char *word_start, int consumed, int group_length, char *word_buf, Translator *tr, unsigned int *flags, int command, int *failed, int *add_points) {
static void DollarRule(char *word[], char *word_start, int consumed, int group_length, char *word_buf, Translator *tr, int command, int *failed, int *add_points) {
// $list or $p_alt
// make a copy of the word up to the post-match characters
int ix = *word - word_start + consumed + group_length + 1;
memcpy(word_buf, word_start-1, ix);
word_buf[ix] = ' ';
word_buf[ix+1] = 0;
LookupFlags(tr, &word_buf[1], &flags);
unsigned int flags[2];
LookupFlags(tr, &word_buf[1], flags);

if ((command == DOLLAR_LIST) && (flags[0] & FLAG_FOUND) && !(flags[1] & FLAG_ONLY))
*add_points = 23;
@@ -2994,4 +2995,4 @@ static void DollarRule(char *word[], char *word_start, int consumed, int group_l
*add_points = 23;
else
*failed = 1;
}
}

+ 16
- 8
src/libespeak-ng/event.c View File

@@ -83,9 +83,15 @@ void event_init(void)
pthread_mutex_init(&my_mutex, (const pthread_mutexattr_t *)NULL);
init();

assert(-1 != pthread_cond_init(&my_cond_start_is_required, NULL));
assert(-1 != pthread_cond_init(&my_cond_stop_is_required, NULL));
assert(-1 != pthread_cond_init(&my_cond_stop_is_acknowledged, NULL));
int a_status;

a_status = pthread_cond_init(&my_cond_start_is_required, NULL);
assert(-1 != a_status);
a_status = pthread_cond_init(&my_cond_stop_is_required, NULL);
assert(-1 != a_status);
a_status = pthread_cond_init(&my_cond_stop_is_acknowledged, NULL);
assert(-1 != a_status);
(void)a_status;

pthread_attr_t a_attrib;

@@ -222,7 +228,7 @@ espeak_ng_STATUS event_declare(espeak_EVENT *event)
return status;
}

espeak_ng_STATUS event_clear_all()
espeak_ng_STATUS event_clear_all(void)
{
espeak_ng_STATUS status;
if ((status = pthread_mutex_lock(&my_mutex)) != ENS_OK)
@@ -352,7 +358,7 @@ static espeak_ng_STATUS push(void *the_data)
return ENS_OK;
}

static void *pop()
static void *pop(void)
{
void *the_data = NULL;

@@ -373,7 +379,7 @@ static void *pop()
}


static void init()
static void init(void)
{
while (event_delete((espeak_EVENT *)pop()))
;
@@ -381,7 +387,7 @@ static void init()
node_counter = 0;
}

void event_terminate()
void event_terminate(void)
{
if (thread_inited) {
my_terminate_is_required = true;
@@ -408,7 +414,9 @@ void clock_gettime2(struct timespec *ts)
if (!ts)
return;

assert(gettimeofday(&tv, NULL) != -1);
int a_status = gettimeofday(&tv, NULL);
assert(a_status != -1);
(void)a_status;
ts->tv_sec = tv.tv_sec;
ts->tv_nsec = tv.tv_usec*1000;
}

+ 36
- 24
src/libespeak-ng/fifo.c View File

@@ -71,15 +71,19 @@ enum {
MAX_INACTIVITY_CHECK = 2
};

void fifo_init()
void fifo_init(void)
{
// security
pthread_mutex_init(&my_mutex, (const pthread_mutexattr_t *)NULL);
init(0);

assert(-1 != pthread_cond_init(&my_cond_command_is_running, NULL));
assert(-1 != pthread_cond_init(&my_cond_start_is_required, NULL));
assert(-1 != pthread_cond_init(&my_cond_stop_is_acknowledged, NULL));
int a_status;
a_status = pthread_cond_init(&my_cond_command_is_running, NULL);
assert(-1 != a_status);
a_status = pthread_cond_init(&my_cond_start_is_required, NULL);
assert(-1 != a_status);
a_status = pthread_cond_init(&my_cond_stop_is_acknowledged, NULL);
assert(-1 != a_status);

pthread_attr_t a_attrib;
if (pthread_attr_init(&a_attrib)
@@ -95,7 +99,9 @@ void fifo_init()
pthread_attr_destroy(&a_attrib);

// leave once the thread is actually started
assert(-1 != pthread_mutex_lock(&my_mutex));
a_status = pthread_mutex_lock(&my_mutex);
assert(-1 != a_status);
(void)a_status;
while (my_stop_is_acknowledged == false) {
while ((pthread_cond_wait(&my_cond_stop_is_acknowledged, &my_mutex) == -1) && errno == EINTR)
;
@@ -169,7 +175,7 @@ espeak_ng_STATUS fifo_add_commands(t_espeak_command *command1, t_espeak_command
return ENS_OK;
}

espeak_ng_STATUS fifo_stop()
espeak_ng_STATUS fifo_stop(void)
{
if (!thread_inited) return ENS_OK;
espeak_ng_STATUS status;
@@ -197,7 +203,7 @@ espeak_ng_STATUS fifo_stop()
return ENS_OK;
}

int fifo_is_busy()
int fifo_is_busy(void)
{
if (!thread_inited) return false;
pthread_mutex_lock(&my_mutex);
@@ -206,7 +212,7 @@ int fifo_is_busy()
return running;
}

static int sleep_until_start_request_or_inactivity()
static int sleep_until_start_request_or_inactivity(void)
{
int a_start_is_required = false;

@@ -223,7 +229,6 @@ static int sleep_until_start_request_or_inactivity()
i++;

struct timespec ts;
struct timeval tv;

clock_gettime2(&ts);

@@ -233,8 +238,6 @@ static int sleep_until_start_request_or_inactivity()
&& errno == EINTR)
continue;

assert(gettimeofday(&tv, NULL) != -1);

if (err == 0)
a_start_is_required = true;
}
@@ -242,7 +245,7 @@ static int sleep_until_start_request_or_inactivity()
return a_start_is_required;
}

static espeak_ng_STATUS close_stream()
static espeak_ng_STATUS close_stream(void)
{
espeak_ng_STATUS status = pthread_mutex_lock(&my_mutex);
if (status != ENS_OK)
@@ -293,11 +296,16 @@ static void *say_thread(void *p)
{
(void)p; // unused

int a_status;

// announce that thread is started
assert(-1 != pthread_mutex_lock(&my_mutex));
a_status = pthread_mutex_lock(&my_mutex);
assert(-1 != a_status);
my_stop_is_acknowledged = true;
assert(-1 != pthread_cond_signal(&my_cond_stop_is_acknowledged));
assert(-1 != pthread_mutex_unlock(&my_mutex));
a_status = pthread_cond_signal(&my_cond_stop_is_acknowledged);
assert(-1 != a_status);
a_status = pthread_mutex_unlock(&my_mutex);
assert(-1 != a_status);

bool look_for_inactivity = false;

@@ -310,7 +318,7 @@ static void *say_thread(void *p)
}
look_for_inactivity = true;

int a_status = pthread_mutex_lock(&my_mutex);
a_status = pthread_mutex_lock(&my_mutex);
assert(!a_status);

if (!a_start_is_required) {
@@ -323,11 +331,13 @@ static void *say_thread(void *p)

my_command_is_running = true;

assert(-1 != pthread_cond_broadcast(&my_cond_command_is_running));
assert(-1 != pthread_mutex_unlock(&my_mutex));
a_status = pthread_cond_broadcast(&my_cond_command_is_running);
assert(-1 != a_status);
a_status = pthread_mutex_unlock(&my_mutex);
assert(-1 != a_status);

while (my_command_is_running && !my_terminate_is_required) {
int a_status = pthread_mutex_lock(&my_mutex);
a_status = pthread_mutex_lock(&my_mutex);
assert(!a_status);
t_espeak_command *a_command = (t_espeak_command *)pop();

@@ -352,23 +362,25 @@ static void *say_thread(void *p)
// and waiting for my_cond_stop_is_acknowledged
init(1);

assert(-1 != pthread_mutex_lock(&my_mutex));
a_status = pthread_mutex_lock(&my_mutex);
assert(-1 != a_status);
my_start_is_required = false;

// acknowledge the stop request
my_stop_is_acknowledged = true;
int a_status = pthread_cond_signal(&my_cond_stop_is_acknowledged);
a_status = pthread_cond_signal(&my_cond_stop_is_acknowledged);
assert(a_status != -1);
pthread_mutex_unlock(&my_mutex);

}
// and wait for the next start
}
(void)a_status;

return NULL;
}

int fifo_is_command_enabled()
int fifo_is_command_enabled(void)
{
return 0 == my_stop_is_required;
}
@@ -413,7 +425,7 @@ static espeak_ng_STATUS push(t_espeak_command *the_command)
return ENS_OK;
}

static t_espeak_command *pop()
static t_espeak_command *pop(void)
{
t_espeak_command *the_command = NULL;

@@ -446,7 +458,7 @@ static void init(int process_parameters)
node_counter = 0;
}

void fifo_terminate()
void fifo_terminate(void)
{
if (!thread_inited) return;


+ 0
- 2
src/libespeak-ng/intonation.c View File

@@ -770,7 +770,6 @@ static void CalcPitches_Tone(Translator *tr)
{
PHONEME_LIST *p;
int ix;
int count_stressed = 0;
int final_stressed = 0;

int tone_ph;
@@ -791,7 +790,6 @@ static void CalcPitches_Tone(Translator *tr)
for (ix = 0; ix < n_phoneme_list; ix++, p++) {
if ((p->type == phVOWEL) && (p->stresslevel >= 4)) {
final_stressed = ix;
count_stressed++;
}
}


+ 4
- 4
src/libespeak-ng/klatt.c View File

@@ -68,7 +68,7 @@ static klatt_global_t kt_globals;

#define NUMBER_OF_SAMPLES 100

static int scale_wav_tab[] = { 45, 38, 45, 45, 55, 45 }; // scale output from different voicing sources
static const int scale_wav_tab[] = { 45, 38, 45, 45, 55, 45 }; // scale output from different voicing sources

// For testing, this can be overwritten in KlattInit()
static const short natural_samples2[256] = {
@@ -547,7 +547,7 @@ static void frame_init(klatt_frame_ptr frame)
to Kopen.
*/

static double impulsive_source()
static double impulsive_source(void)
{
static const double doublet[] = { 0.0, 13000000.0, -13000000.0 };
static double vwave;
@@ -567,7 +567,7 @@ static double impulsive_source()
spectral zero around 800 Hz, magic constants a,b reset pitch synchronously.
*/

static double natural_source()
static double natural_source(void)
{
double lgtemp;
static double vwave;
@@ -1068,7 +1068,7 @@ static void SetSynth_Klatt(int length, frame_t *fr1, frame_t *fr2, voice_t *wvoi
}
}

void KlattInit()
void KlattInit(void)
{

static const short formant_hz[10] = { 280, 688, 1064, 2806, 3260, 3700, 6500, 7000, 8000, 280 };

+ 1
- 3
src/libespeak-ng/langopts.c View File

@@ -42,8 +42,6 @@
static int CheckTranslator(Translator *tr, const MNEM_TAB *keyword_tab, int key);
static int LookupTune(const char *name);

extern const MNEM_TAB langopts_tab[];

void LoadLanguageOptions(Translator *translator, int key, char *keyValue ) {
if (CheckTranslator(translator, langopts_tab, key) != 0) {
return;
@@ -232,4 +230,4 @@ int CheckTranslator(Translator *tr, const MNEM_TAB *keyword_tab, int key)

fprintf(stderr, "Cannot set %s: language not set, or is invalid.\n", LookupMnemName(keyword_tab, key));
return 1;
}
}

+ 2
- 4
src/libespeak-ng/numbers.c View File

@@ -553,7 +553,7 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b


// this list must be in ascending order
static unsigned short derived_letters[] = {
static const unsigned short derived_letters[] = {
0x00aa, 'a'+L_SUP,
0x00b2, '2'+L_SUP,
0x00b3, '3'+L_SUP,
@@ -763,14 +763,13 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
int value;
int subtract;
int repeat = 0;
int n_digits = 0;
char *word_start;
int num_control = 0;
unsigned int flags[2];
char ph_roman[30];
char number_chars[N_WORD_BYTES];

static const char *roman_numbers = "ixcmvld";
static const char roman_numbers[] = "ixcmvld";
static const int roman_values[] = { 1, 10, 100, 1000, 5, 50, 500 };

acc = 0;
@@ -817,7 +816,6 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
else
acc += prev;
prev = value;
n_digits++;
}

if (IsDigit09(word[0]))

+ 1
- 1
src/libespeak-ng/phonemelist.c View File

@@ -590,4 +590,4 @@ if (ph->type == phVOWEL) {
// re-interpret the changed phoneme
// But it doesn't obey a second ChangePhoneme()
InterpretPhoneme(tr, 0x100, plist3, phdata, worddata);
}
}

+ 4
- 4
src/libespeak-ng/sPlayer.c View File

@@ -42,7 +42,7 @@ static void mixWaveFile(WGEN_DATA *wdata, unsigned int maxNumSamples, sample* sa
}
}

static bool isKlattFrameFollowing() {
static bool isKlattFrameFollowing(void) {
// eSpeak implements its command queue with a circular buffer.
// Thus to walk it, we start from the head, walking to the tail, which may wrap around to the beginning of the buffer as it is circular.
for(int i=(wcmdq_head+1)%N_WCMDQ;i!=wcmdq_tail;i=(i+1)%N_WCMDQ) {
@@ -93,17 +93,17 @@ static void fillSpeechPlayerFrame(WGEN_DATA *wdata, voice_t *wvoice, frame_t * e
spFrame->endVoicePitch=spFrame->voicePitch;
}

void KlattInitSP() {
void KlattInitSP(void) {
speechPlayerHandle=speechPlayer_initialize(22050);
}

void KlattFiniSP() {
void KlattFiniSP(void) {
if (speechPlayerHandle)
speechPlayer_terminate(speechPlayerHandle);
speechPlayerHandle = NULL;
}

void KlattResetSP() {
void KlattResetSP(void) {
KlattFiniSP();
KlattInitSP();
}

+ 21
- 23
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);

@@ -46,7 +46,7 @@ extern int saved_parameters[];

// convert from words-per-minute to internal speed factor
// Use this to calibrate speed for wpm 80-450 (espeakRATE_MINIMUM - espeakRATE_MAXIMUM)
static unsigned char speed_lookup[] = {
static const unsigned char speed_lookup[] = {
255, 255, 255, 255, 255, // 80
253, 249, 245, 242, 238, // 85
235, 232, 228, 225, 222, // 90
@@ -106,7 +106,7 @@ static unsigned char speed_lookup[] = {
};

// speed_factor1 adjustments for speeds 350 to 374: pauses
static unsigned char pause_factor_350[] = {
static const unsigned char pause_factor_350[] = {
22, 22, 22, 22, 22, 22, 22, 21, 21, 21, // 350
21, 20, 20, 19, 19, 18, 17, 16, 15, 15, // 360
15, 15, 15, 15, 15 // 370
@@ -114,7 +114,7 @@ static unsigned char pause_factor_350[] = {

// wav_factor adjustments for speeds 350 to 450
// Use this to calibrate speed for wpm 350-450
static unsigned char wav_factor_350[] = {
static const unsigned char wav_factor_350[] = {
120, 121, 120, 119, 119, // 350
118, 118, 117, 116, 116, // 355
115, 114, 113, 112, 112, // 360
@@ -138,9 +138,7 @@ static 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;

+ 5
- 10
src/libespeak-ng/spect.c View File

@@ -36,13 +36,11 @@
#include "synthesize.h" // for KLATT_AV, KLATT_Kopen, N_KLATTP2
#include "voice.h" // for N_PEAKS

static int frame_width;

static int default_freq[N_PEAKS] =
static const int default_freq[N_PEAKS] =
{ 200, 500, 1200, 3000, 3500, 4000, 6900, 7800, 9000 };
static int default_width[N_PEAKS] =
static const int default_width[N_PEAKS] =
{ 750, 500, 550, 550, 600, 700, 700, 700, 700 };
static int default_klt_bw[N_PEAKS] =
static const int default_klt_bw[N_PEAKS] =
{ 89, 90, 140, 260, 260, 260, 500, 500, 500 };

static double read_double(FILE *stream)
@@ -87,7 +85,7 @@ float polint(float xa[], float ya[], int n, float x)
return y;
}

static SpectFrame *SpectFrameCreate()
static SpectFrame *SpectFrameCreate(void)
{
int ix;
SpectFrame *frame;
@@ -230,7 +228,7 @@ double GetFrameRms(SpectFrame *frame, int seq_amplitude)
}

#pragma GCC visibility push(default)
SpectSeq *SpectSeqCreate()
SpectSeq *SpectSeqCreate(void)
{
SpectSeq *spect = malloc(sizeof(SpectSeq));
if (!spect)
@@ -377,9 +375,6 @@ espeak_ng_STATUS LoadSpectSeq(SpectSeq *spect, const char *filename)
}
spect->max_x = 9000; // disable auto-xscaling

frame_width = (int)((FRAME_WIDTH*spect->max_x)/MAX_DISPLAY_FREQ);
if (frame_width > FRAME_WIDTH) frame_width = FRAME_WIDTH;

// start times from zero
time_offset = spect->frames[0]->time;
for (ix = 0; ix < spect->numframes; ix++)

+ 3
- 5
src/libespeak-ng/speech.c View File

@@ -80,7 +80,7 @@ static void *my_user_data = NULL;
static espeak_ng_OUTPUT_MODE my_mode = ENOUTPUT_MODE_SYNCHRONOUS;
static int out_samplerate = 0;
static int voice_samplerate = 22050;
static int min_buffer_length = 60; // minimum buffer length in ms
static const int min_buffer_length = 60; // minimum buffer length in ms
static espeak_ng_STATUS err = ENS_OK;

static t_espeak_callback *synth_callback = NULL;
@@ -428,7 +428,6 @@ static espeak_ng_STATUS Synthesize(unsigned int unique_identifier, const void *t
// Fill the buffer with output sound
int length;
int finished = 0;
int count_buffers = 0;

if ((outbuf == NULL) || (event_list == NULL))
return ENS_NOT_INITIALIZED;
@@ -467,7 +466,6 @@ static espeak_ng_STATUS Synthesize(unsigned int unique_identifier, const void *t
event_list[event_list_ix].unique_identifier = unique_identifier;
event_list[event_list_ix].user_data = my_user_data;

count_buffers++;
if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO) {
finished = create_events((short *)outbuf, length, event_list);
if (finished < 0)
@@ -661,7 +659,7 @@ espeak_ng_Synthesize(const void *text, size_t size,
{
(void)size; // unused in non-async modes

static unsigned int temp_identifier;
unsigned int temp_identifier;

if (unique_identifier == NULL)
unique_identifier = &temp_identifier;
@@ -710,7 +708,7 @@ espeak_ng_SynthesizeMark(const void *text,
{
(void)size; // unused in non-async modes

static unsigned int temp_identifier;
unsigned int temp_identifier;

if (unique_identifier == NULL)
unique_identifier = &temp_identifier;

+ 5
- 5
src/libespeak-ng/synthesize.c View File

@@ -85,7 +85,7 @@ const char *WordToString(char buf[5], unsigned int word)
return buf;
}

void SynthesizeInit()
void SynthesizeInit(void)
{
last_pitch_cmd = 0;
last_amp_cmd = 0;
@@ -376,7 +376,7 @@ int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp)
return len;
}

static frame_t *AllocFrame()
static frame_t *AllocFrame(void)
{
// Allocate a temporary spectrum frame for the wavegen queue. Use a pool which is big
// enough to use a round-robin without checks.
@@ -1190,9 +1190,9 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume)
if (WcmdqFree() <= free_min)
return 1; // wait

PHONEME_LIST *prev;
PHONEME_LIST *next;
PHONEME_LIST *next2;
PHONEME_LIST *prev;
PHONEME_LIST *next;
PHONEME_LIST *next2;

prev = &phoneme_list[ix-1];
next = &phoneme_list[ix+1];

+ 1
- 1
src/libespeak-ng/tr_languages.c View File

@@ -1342,7 +1342,7 @@ Translator *SelectTranslator(const char *name)
case L('s', 'k'): // Slovak
case L('c', 's'): // Czech
{
static const char *sk_voiced = "bdgjlmnrvwzaeiouy";
static const char sk_voiced[] = "bdgjlmnrvwzaeiouy";

SetupTranslator(tr, stress_lengths_sk, stress_amps_sk);
tr->encoding = ESPEAKNG_ENCODING_ISO_8859_2;

+ 1
- 1
src/libespeak-ng/translate.c View File

@@ -231,7 +231,7 @@ static int CountSyllables(unsigned char *phonemes)
return count;
}

static void Word_EmbeddedCmd()
static void Word_EmbeddedCmd(void)
{
// Process embedded commands for emphasis, sayas, and break
int embedded_cmd;

+ 2
- 3
src/libespeak-ng/voices.c View File

@@ -64,7 +64,7 @@ static const MNEM_TAB genders[] = {
int tone_points[12] = { 600, 170, 1200, 135, 2000, 110, 3000, 110, -1, 0 };

// limit the rate of change for each formant number
static int formant_rate_22050[9] = { 240, 170, 170, 170, 170, 170, 170, 170, 170 }; // values for 22kHz sample rate
static const int formant_rate_22050[9] = { 240, 170, 170, 170, 170, 170, 170, 170, 170 }; // values for 22kHz sample rate
int formant_rate[9]; // values adjusted for actual sample rate

#define DEFAULT_LANGUAGE_PRIORITY 5
@@ -1338,7 +1338,7 @@ ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetVoiceByProperties(espeak_VOICE *voic

#pragma GCC visibility pop

void FreeVoiceList()
void FreeVoiceList(void)
{
int ix;
for (ix = 0; ix < n_voices_list; ix++) {
@@ -1423,7 +1423,6 @@ static int AddToVoicesList(const char *fname, int len_path_voices, int is_langua

if (voice_data != NULL)
voices_list[n_voices_list++] = voice_data;
return 0;
}
return 0;
}

+ 11
- 11
src/libespeak-ng/wavegen.c View File

@@ -119,7 +119,7 @@ int wcmdq_tail = 0;

// pitch,speed,
const int embedded_default[N_EMBEDDED_VALUES] = { 0, 50, espeakRATE_NORMAL, 100, 50, 0, 0, 0, espeakRATE_NORMAL, 0, 0, 0, 0, 0, 0 };
static int embedded_max[N_EMBEDDED_VALUES] = { 0, 0x7fff, 750, 300, 99, 99, 99, 0, 750, 0, 0, 0, 0, 4, 0 };
static const int embedded_max[N_EMBEDDED_VALUES] = { 0, 0x7fff, 750, 300, 99, 99, 99, 0, 750, 0, 0, 0, 0, 4, 0 };

#if USE_LIBSONIC
static sonicStream sonicSpeedupStream = NULL;
@@ -130,7 +130,7 @@ static double sonicSpeed = 1.0;
// 2nd index=modulation_type
// value: bits 0-3 amplitude (16ths), bits 4-7 every n cycles
#define N_ROUGHNESS 8
static unsigned char modulation_tab[N_ROUGHNESS][8] = {
static const unsigned char modulation_tab[N_ROUGHNESS][8] = {
{ 0, 0x00, 0x00, 0x00, 0, 0x46, 0xf2, 0x29 },
{ 0, 0x2f, 0x00, 0x2f, 0, 0x45, 0xf2, 0x29 },
{ 0, 0x2f, 0x00, 0x2e, 0, 0x45, 0xf2, 0x28 },
@@ -234,7 +234,7 @@ static const unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = {
242, 246, 249, 252, 254, 255
};

void WcmdqStop()
void WcmdqStop(void)
{
wcmdq_head = 0;
wcmdq_tail = 0;
@@ -252,7 +252,7 @@ void WcmdqStop()
#endif
}

int WcmdqFree()
int WcmdqFree(void)
{
int i;
i = wcmdq_head - wcmdq_tail;
@@ -260,18 +260,18 @@ int WcmdqFree()
return i;
}

int WcmdqUsed()
int WcmdqUsed(void)
{
return N_WCMDQ - WcmdqFree();
}

void WcmdqInc()
void WcmdqInc(void)
{
wcmdq_tail++;
if (wcmdq_tail >= N_WCMDQ) wcmdq_tail = 0;
}

static void WcmdqIncHead()
static void WcmdqIncHead(void)
{
MAKE_MEM_UNDEFINED(&wcmdq[wcmdq_head], sizeof(wcmdq[wcmdq_head]));
wcmdq_head++;
@@ -534,7 +534,7 @@ int PeaksToHarmspect(wavegen_peaks_t *peaks, int pitch, int *htab, int control)
return hmax; // highest harmonic number
}

static void AdvanceParameters()
static void AdvanceParameters(void)
{
// Called every 64 samples to increment the formant freq, height, and widths
if (wvoice == NULL)
@@ -643,7 +643,7 @@ void InitBreath(void)
setresonator(&rbreath[ix], 2000, 200, 1);
}

static void SetBreath()
static void SetBreath(void)
{
int pk;

@@ -1001,7 +1001,7 @@ static int SetWithRange0(int value, int max)
return value;
}

static void SetPitchFormants()
static void SetPitchFormants(void)
{
if (wvoice == NULL)
return;
@@ -1253,7 +1253,7 @@ void Write4Bytes(FILE *f, int value)
}
}

static int WavegenFill2()
static int WavegenFill2(void)
{
// Pick up next wavegen commands from the queue
// return: 0 output buffer has been filled

Loading…
Cancel
Save