mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-13 09:14:12 +00:00
Merge remote-tracking branch 'jaacoppi/maintainability'
This commit is contained in:
+3
-3
@@ -116,7 +116,7 @@ static const char *help_text =
|
||||
"-h, --help Show this help.\n";
|
||||
|
||||
int samplerate;
|
||||
int quiet = 0;
|
||||
bool quiet = false;
|
||||
unsigned int samples_total = 0;
|
||||
unsigned int samples_split = 0;
|
||||
unsigned int samples_split_seconds = 0;
|
||||
@@ -405,7 +405,7 @@ int main(int argc, char **argv)
|
||||
pitch = atoi(optarg2);
|
||||
break;
|
||||
case 'q':
|
||||
quiet = 1;
|
||||
quiet = true;
|
||||
break;
|
||||
case 'f':
|
||||
strncpy0(filename, optarg2, sizeof(filename));
|
||||
@@ -443,7 +443,7 @@ int main(int argc, char **argv)
|
||||
case 0x102: // --compile
|
||||
strncpy0(voicename, optarg2, sizeof(voicename));
|
||||
flag_compile = c;
|
||||
quiet = 1;
|
||||
quiet = true;
|
||||
break;
|
||||
case 0x103: // --punct
|
||||
option_punctuation = 1;
|
||||
|
||||
+25
-25
@@ -39,17 +39,17 @@
|
||||
// my_mutex: protects my_thread_is_talking,
|
||||
static pthread_mutex_t my_mutex;
|
||||
static pthread_cond_t my_cond_start_is_required;
|
||||
static int my_start_is_required = 0;
|
||||
static bool my_start_is_required = false;
|
||||
static pthread_cond_t my_cond_stop_is_required;
|
||||
static int my_stop_is_required = 0;
|
||||
static bool my_stop_is_required = false;
|
||||
static pthread_cond_t my_cond_stop_is_acknowledged;
|
||||
static int my_stop_is_acknowledged = 0;
|
||||
static bool my_stop_is_acknowledged = false;
|
||||
// my_thread: polls the audio duration and compares it to the duration of the first event.
|
||||
static pthread_t my_thread;
|
||||
static bool thread_inited;
|
||||
|
||||
static t_espeak_callback *my_callback = NULL;
|
||||
static int my_event_is_running = 0;
|
||||
static bool my_event_is_running = false;
|
||||
|
||||
enum {
|
||||
MIN_TIMEOUT_IN_MS = 10,
|
||||
@@ -77,7 +77,7 @@ void event_set_callback(t_espeak_callback *SynthCallback)
|
||||
|
||||
void event_init(void)
|
||||
{
|
||||
my_event_is_running = 0;
|
||||
my_event_is_running = false;
|
||||
|
||||
// security
|
||||
pthread_mutex_init(&my_mutex, (const pthread_mutexattr_t *)NULL);
|
||||
@@ -205,7 +205,7 @@ espeak_ng_STATUS event_declare(espeak_EVENT *event)
|
||||
|
||||
espeak_ng_STATUS status;
|
||||
if ((status = pthread_mutex_lock(&my_mutex)) != ENS_OK) {
|
||||
my_start_is_required = 1;
|
||||
my_start_is_required = true;
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ espeak_ng_STATUS event_declare(espeak_EVENT *event)
|
||||
event_delete(a_event);
|
||||
pthread_mutex_unlock(&my_mutex);
|
||||
} else {
|
||||
my_start_is_required = 1;
|
||||
my_start_is_required = true;
|
||||
pthread_cond_signal(&my_cond_start_is_required);
|
||||
status = pthread_mutex_unlock(&my_mutex);
|
||||
}
|
||||
@@ -231,14 +231,14 @@ espeak_ng_STATUS event_clear_all()
|
||||
|
||||
int a_event_is_running = 0;
|
||||
if (my_event_is_running) {
|
||||
my_stop_is_required = 1;
|
||||
my_stop_is_required = true;
|
||||
pthread_cond_signal(&my_cond_stop_is_required);
|
||||
a_event_is_running = 1;
|
||||
} else
|
||||
init(); // clear pending events
|
||||
|
||||
if (a_event_is_running) {
|
||||
while (my_stop_is_acknowledged == 0) {
|
||||
while (my_stop_is_acknowledged == false) {
|
||||
while ((pthread_cond_wait(&my_cond_stop_is_acknowledged, &my_mutex) == -1) && errno == EINTR)
|
||||
continue; // Restart when interrupted by handler
|
||||
}
|
||||
@@ -255,24 +255,24 @@ static void *polling_thread(void *p)
|
||||
(void)p; // unused
|
||||
|
||||
while (1) {
|
||||
int a_stop_is_required = 0;
|
||||
bool a_stop_is_required = false;
|
||||
|
||||
(void)pthread_mutex_lock(&my_mutex);
|
||||
my_event_is_running = 0;
|
||||
my_event_is_running = false;
|
||||
|
||||
while (my_start_is_required == 0) {
|
||||
while (my_start_is_required == false) {
|
||||
while ((pthread_cond_wait(&my_cond_start_is_required, &my_mutex) == -1) && errno == EINTR)
|
||||
continue; // Restart when interrupted by handler
|
||||
}
|
||||
|
||||
my_event_is_running = 1;
|
||||
a_stop_is_required = 0;
|
||||
my_start_is_required = 0;
|
||||
my_event_is_running = true;
|
||||
a_stop_is_required = false;
|
||||
my_start_is_required = false;
|
||||
|
||||
pthread_mutex_unlock(&my_mutex);
|
||||
|
||||
// In this loop, my_event_is_running = 1
|
||||
while (head && (a_stop_is_required == 0)) {
|
||||
// In this loop, my_event_is_running = true
|
||||
while (head && (a_stop_is_required == false)) {
|
||||
espeak_EVENT *event = (espeak_EVENT *)(head->data);
|
||||
assert(event);
|
||||
|
||||
@@ -287,32 +287,32 @@ static void *polling_thread(void *p)
|
||||
(void)pthread_mutex_lock(&my_mutex);
|
||||
event_delete((espeak_EVENT *)pop());
|
||||
a_stop_is_required = my_stop_is_required;
|
||||
if (a_stop_is_required > 0)
|
||||
my_stop_is_required = 0;
|
||||
if (a_stop_is_required == true)
|
||||
my_stop_is_required = false;
|
||||
|
||||
(void)pthread_mutex_unlock(&my_mutex);
|
||||
}
|
||||
|
||||
(void)pthread_mutex_lock(&my_mutex);
|
||||
|
||||
my_event_is_running = 0;
|
||||
my_event_is_running = false;
|
||||
|
||||
if (a_stop_is_required == 0) {
|
||||
if (a_stop_is_required == false) {
|
||||
a_stop_is_required = my_stop_is_required;
|
||||
if (a_stop_is_required > 0)
|
||||
my_stop_is_required = 0;
|
||||
if (a_stop_is_required == true)
|
||||
my_stop_is_required = false;
|
||||
}
|
||||
|
||||
(void)pthread_mutex_unlock(&my_mutex);
|
||||
|
||||
if (a_stop_is_required > 0) {
|
||||
if (a_stop_is_required == true) {
|
||||
// no mutex required since the stop command is synchronous
|
||||
// and waiting for my_cond_stop_is_acknowledged
|
||||
init();
|
||||
|
||||
// acknowledge the stop request
|
||||
(void)pthread_mutex_lock(&my_mutex);
|
||||
my_stop_is_acknowledged = 1;
|
||||
my_stop_is_acknowledged = true;
|
||||
(void)pthread_cond_signal(&my_cond_stop_is_acknowledged);
|
||||
(void)pthread_mutex_unlock(&my_mutex);
|
||||
}
|
||||
|
||||
+32
-31
@@ -23,6 +23,7 @@
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -42,18 +43,18 @@
|
||||
// my_mutex: protects my_thread_is_talking,
|
||||
// my_stop_is_required, and the command fifo
|
||||
static pthread_mutex_t my_mutex;
|
||||
static int my_command_is_running = 0;
|
||||
static bool my_command_is_running = false;
|
||||
static pthread_cond_t my_cond_command_is_running;
|
||||
static int my_stop_is_required = 0;
|
||||
static bool my_stop_is_required = false;
|
||||
|
||||
// my_thread: reads commands from the fifo, and runs them.
|
||||
static pthread_t my_thread;
|
||||
|
||||
static pthread_cond_t my_cond_start_is_required;
|
||||
static int my_start_is_required = 0;
|
||||
static bool my_start_is_required = false;
|
||||
|
||||
static pthread_cond_t my_cond_stop_is_acknowledged;
|
||||
static int my_stop_is_acknowledged = 0;
|
||||
static bool my_stop_is_acknowledged = false;
|
||||
|
||||
static void *say_thread(void *);
|
||||
|
||||
@@ -92,11 +93,11 @@ void fifo_init()
|
||||
|
||||
// leave once the thread is actually started
|
||||
assert(-1 != pthread_mutex_lock(&my_mutex));
|
||||
while (my_stop_is_acknowledged == 0) {
|
||||
while (my_stop_is_acknowledged == false) {
|
||||
while ((pthread_cond_wait(&my_cond_stop_is_acknowledged, &my_mutex) == -1) && errno == EINTR)
|
||||
;
|
||||
}
|
||||
my_stop_is_acknowledged = 0;
|
||||
my_stop_is_acknowledged = false;
|
||||
pthread_mutex_unlock(&my_mutex);
|
||||
}
|
||||
|
||||
@@ -111,7 +112,7 @@ espeak_ng_STATUS fifo_add_command(t_espeak_command *the_command)
|
||||
return status;
|
||||
}
|
||||
|
||||
my_start_is_required = 1;
|
||||
my_start_is_required = true;
|
||||
pthread_cond_signal(&my_cond_start_is_required);
|
||||
|
||||
while (my_start_is_required && !my_command_is_running) {
|
||||
@@ -147,7 +148,7 @@ espeak_ng_STATUS fifo_add_commands(t_espeak_command *command1, t_espeak_command
|
||||
return status;
|
||||
}
|
||||
|
||||
my_start_is_required = 1;
|
||||
my_start_is_required = true;
|
||||
pthread_cond_signal(&my_cond_start_is_required);
|
||||
|
||||
while (my_start_is_required && !my_command_is_running) {
|
||||
@@ -168,21 +169,21 @@ espeak_ng_STATUS fifo_stop()
|
||||
if ((status = pthread_mutex_lock(&my_mutex)) != ENS_OK)
|
||||
return status;
|
||||
|
||||
int a_command_is_running = 0;
|
||||
bool a_command_is_running = false;
|
||||
if (my_command_is_running) {
|
||||
a_command_is_running = 1;
|
||||
my_stop_is_required = 1;
|
||||
my_stop_is_acknowledged = 0;
|
||||
a_command_is_running = true;
|
||||
my_stop_is_required = true;
|
||||
my_stop_is_acknowledged = false;
|
||||
}
|
||||
|
||||
if (a_command_is_running) {
|
||||
while (my_stop_is_acknowledged == 0) {
|
||||
while (my_stop_is_acknowledged == false) {
|
||||
while ((pthread_cond_wait(&my_cond_stop_is_acknowledged, &my_mutex) == -1) && errno == EINTR)
|
||||
continue; // Restart when interrupted by handler
|
||||
}
|
||||
}
|
||||
|
||||
my_stop_is_required = 0;
|
||||
my_stop_is_required = false;
|
||||
if ((status = pthread_mutex_unlock(&my_mutex)) != ENS_OK)
|
||||
return status;
|
||||
|
||||
@@ -196,7 +197,7 @@ int fifo_is_busy()
|
||||
|
||||
static int sleep_until_start_request_or_inactivity()
|
||||
{
|
||||
int a_start_is_required = 0;
|
||||
int a_start_is_required = false;
|
||||
|
||||
// Wait for the start request (my_cond_start_is_required).
|
||||
// Besides this, if the audio stream is still busy,
|
||||
@@ -224,7 +225,7 @@ static int sleep_until_start_request_or_inactivity()
|
||||
assert(gettimeofday(&tv, NULL) != -1);
|
||||
|
||||
if (err == 0)
|
||||
a_start_is_required = 1;
|
||||
a_start_is_required = true;
|
||||
}
|
||||
pthread_mutex_unlock(&my_mutex);
|
||||
return a_start_is_required;
|
||||
@@ -236,9 +237,9 @@ static espeak_ng_STATUS close_stream()
|
||||
if (status != ENS_OK)
|
||||
return status;
|
||||
|
||||
int a_stop_is_required = my_stop_is_required;
|
||||
bool a_stop_is_required = my_stop_is_required;
|
||||
if (!a_stop_is_required)
|
||||
my_command_is_running = 1;
|
||||
my_command_is_running = true;
|
||||
|
||||
status = pthread_mutex_unlock(&my_mutex);
|
||||
|
||||
@@ -247,7 +248,7 @@ static espeak_ng_STATUS close_stream()
|
||||
if (status == ENS_OK)
|
||||
status = a_status;
|
||||
|
||||
my_command_is_running = 0;
|
||||
my_command_is_running = false;
|
||||
a_stop_is_required = my_stop_is_required;
|
||||
|
||||
a_status = pthread_mutex_unlock(&my_mutex);
|
||||
@@ -263,7 +264,7 @@ static espeak_ng_STATUS close_stream()
|
||||
if((a_status = pthread_mutex_lock(&my_mutex)) != ENS_OK)
|
||||
return a_status;
|
||||
|
||||
my_stop_is_acknowledged = 1;
|
||||
my_stop_is_acknowledged = true;
|
||||
a_status = pthread_cond_signal(&my_cond_stop_is_acknowledged);
|
||||
if(a_status != ENS_OK)
|
||||
return a_status;
|
||||
@@ -283,33 +284,33 @@ static void *say_thread(void *p)
|
||||
|
||||
// announce that thread is started
|
||||
assert(-1 != pthread_mutex_lock(&my_mutex));
|
||||
my_stop_is_acknowledged = 1;
|
||||
my_stop_is_acknowledged = true;
|
||||
assert(-1 != pthread_cond_signal(&my_cond_stop_is_acknowledged));
|
||||
assert(-1 != pthread_mutex_unlock(&my_mutex));
|
||||
|
||||
int look_for_inactivity = 0;
|
||||
bool look_for_inactivity = false;
|
||||
|
||||
while (1) {
|
||||
int a_start_is_required = 0;
|
||||
bool a_start_is_required = false;
|
||||
if (look_for_inactivity) {
|
||||
a_start_is_required = sleep_until_start_request_or_inactivity();
|
||||
if (!a_start_is_required)
|
||||
close_stream();
|
||||
}
|
||||
look_for_inactivity = 1;
|
||||
look_for_inactivity = true;
|
||||
|
||||
int a_status = pthread_mutex_lock(&my_mutex);
|
||||
assert(!a_status);
|
||||
|
||||
if (!a_start_is_required) {
|
||||
while (my_start_is_required == 0) {
|
||||
while (my_start_is_required == false) {
|
||||
while ((pthread_cond_wait(&my_cond_start_is_required, &my_mutex) == -1) && errno == EINTR)
|
||||
continue; // Restart when interrupted by handler
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my_command_is_running = 1;
|
||||
my_command_is_running = true;
|
||||
|
||||
assert(-1 != pthread_cond_broadcast(&my_cond_command_is_running));
|
||||
assert(-1 != pthread_mutex_unlock(&my_mutex));
|
||||
@@ -320,13 +321,13 @@ static void *say_thread(void *p)
|
||||
t_espeak_command *a_command = (t_espeak_command *)pop();
|
||||
|
||||
if (a_command == NULL) {
|
||||
my_command_is_running = 0;
|
||||
my_command_is_running = false;
|
||||
a_status = pthread_mutex_unlock(&my_mutex);
|
||||
} else {
|
||||
my_start_is_required = 0;
|
||||
my_start_is_required = false;
|
||||
|
||||
if (my_stop_is_required)
|
||||
my_command_is_running = 0;
|
||||
my_command_is_running = false;
|
||||
a_status = pthread_mutex_unlock(&my_mutex);
|
||||
|
||||
if (my_command_is_running)
|
||||
@@ -341,10 +342,10 @@ static void *say_thread(void *p)
|
||||
init(1);
|
||||
|
||||
assert(-1 != pthread_mutex_lock(&my_mutex));
|
||||
my_start_is_required = 0;
|
||||
my_start_is_required = false;
|
||||
|
||||
// acknowledge the stop request
|
||||
my_stop_is_acknowledged = 1;
|
||||
my_stop_is_acknowledged = true;
|
||||
int a_status = pthread_cond_signal(&my_cond_stop_is_acknowledged);
|
||||
assert(a_status != -1);
|
||||
pthread_mutex_unlock(&my_mutex);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -118,8 +119,8 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
int alternative;
|
||||
int delete_count;
|
||||
int word_start;
|
||||
int inserted;
|
||||
int deleted;
|
||||
bool inserted;
|
||||
bool deleted;
|
||||
PHONEME_DATA phdata;
|
||||
|
||||
int n_ph_list3;
|
||||
@@ -285,8 +286,8 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
for (j = 0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) {
|
||||
plist3 = &ph_list3[j];
|
||||
|
||||
inserted = 0;
|
||||
deleted = 0;
|
||||
inserted = false;
|
||||
deleted = false;
|
||||
if (insert_ph != 0) {
|
||||
// we have a (linking) phoneme which we need to insert here
|
||||
next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert
|
||||
@@ -311,7 +312,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
ph = phoneme_tab[insert_ph];
|
||||
plist3->ph = ph;
|
||||
insert_ph = 0;
|
||||
inserted = 1; // don't insert the same phoneme repeatedly
|
||||
inserted = true; // don't insert the same phoneme repeatedly
|
||||
} else {
|
||||
// otherwise get the next phoneme from the list
|
||||
if (plist3->sourceix != 0)
|
||||
@@ -339,7 +340,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
next = phoneme_tab[alternative];
|
||||
}
|
||||
|
||||
if (((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) && (inserted == 0)) {
|
||||
if (((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) && (inserted == false)) {
|
||||
// PROBLEM: if we insert a phoneme before a vowel then we loose the stress.
|
||||
PHONEME_TAB *ph2;
|
||||
ph2 = ph;
|
||||
@@ -369,7 +370,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
plist3->phcode = alternative;
|
||||
|
||||
if (alternative == 1)
|
||||
deleted = 1; // NULL phoneme, discard
|
||||
deleted = true; // NULL phoneme, discard
|
||||
else {
|
||||
if (ph->type == phVOWEL) {
|
||||
plist3->synthflags |= SFLAG_SYLLABLE;
|
||||
@@ -384,7 +385,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
}
|
||||
}
|
||||
|
||||
if ((ph->type == phVOWEL) && (deleted == 0)) {
|
||||
if ((ph->type == phVOWEL) && (deleted == false)) {
|
||||
PHONEME_LIST *p;
|
||||
|
||||
// Check for consecutive unstressed syllables, even across word boundaries.
|
||||
@@ -483,7 +484,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
if ((insert_ph == 0) && (phdata.pd_param[pd_APPENDPHONEME] != 0))
|
||||
insert_ph = phdata.pd_param[pd_APPENDPHONEME];
|
||||
|
||||
if (deleted == 0) {
|
||||
if (deleted == false) {
|
||||
phlist[ix].ph = ph;
|
||||
phlist[ix].type = ph->type;
|
||||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -303,7 +304,7 @@ static char *WritePitch(int env, int pitch1, int pitch2, int split, int final)
|
||||
return output;
|
||||
}
|
||||
|
||||
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola)
|
||||
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, bool resume, FILE *f_mbrola)
|
||||
{
|
||||
// Generate a mbrola pho file
|
||||
unsigned int name;
|
||||
@@ -317,7 +318,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr
|
||||
PHONEME_DATA phdata;
|
||||
FMT_PARAMS fmtp;
|
||||
int pause = 0;
|
||||
int released;
|
||||
bool released;
|
||||
int name2;
|
||||
int control;
|
||||
int done;
|
||||
@@ -418,11 +419,11 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr
|
||||
done = 1;
|
||||
break;
|
||||
case phSTOP:
|
||||
released = 0;
|
||||
if (next->type == phVOWEL) released = 1;
|
||||
if (next->type == phLIQUID && !next->newword) released = 1;
|
||||
released = false;
|
||||
if (next->type == phVOWEL) released = true;
|
||||
if (next->type == phLIQUID && !next->newword) released = true;
|
||||
|
||||
if (released == 0)
|
||||
if (released == false)
|
||||
p->synthflags |= SFLAG_NEXT_PAUSE;
|
||||
InterpretPhoneme(NULL, 0, p, &phdata, NULL);
|
||||
len = DoSample3(&phdata, 0, -1);
|
||||
@@ -505,7 +506,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr
|
||||
return 0;
|
||||
}
|
||||
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume)
|
||||
{
|
||||
FILE *f_mbrola = NULL;
|
||||
|
||||
@@ -517,13 +518,13 @@ int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
f_mbrola = f_trans;
|
||||
}
|
||||
|
||||
int again = MbrolaTranslate(phoneme_list, *n_ph, resume, f_mbrola);
|
||||
int again = MbrolaTranslate(phoneme_list, *n_ph, resume, f_mbrola);
|
||||
if (!again)
|
||||
*n_ph = 0;
|
||||
return again;
|
||||
}
|
||||
|
||||
int MbrolaFill(int length, int resume, int amplitude)
|
||||
int MbrolaFill(int length, bool resume, int amplitude)
|
||||
{
|
||||
// Read audio data from Mbrola (length is in millisecs)
|
||||
|
||||
@@ -578,7 +579,7 @@ espeak_ng_STATUS LoadMbrolaTable(const char *mbrola_voice, const char *phtrans,
|
||||
return ENS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume)
|
||||
{
|
||||
(void)phoneme_list; // unused parameter
|
||||
(void)n_ph; // unused parameter
|
||||
@@ -586,7 +587,7 @@ int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int MbrolaFill(int length, int resume, int amplitude)
|
||||
int MbrolaFill(int length, bool resume, int amplitude)
|
||||
{
|
||||
(void)length; // unused parameter
|
||||
(void)resume; // unused parameter
|
||||
|
||||
@@ -333,19 +333,19 @@ unsigned char *GetEnvelope(int index)
|
||||
return (unsigned char *)&phondata_ptr[index];
|
||||
}
|
||||
|
||||
static void SetUpPhonemeTable(int number, int recursing)
|
||||
static void SetUpPhonemeTable(int number, bool recursing)
|
||||
{
|
||||
int ix;
|
||||
int includes;
|
||||
int ph_code;
|
||||
PHONEME_TAB *phtab;
|
||||
|
||||
if (recursing == 0)
|
||||
if (recursing == false)
|
||||
memset(phoneme_tab_flags, 0, sizeof(phoneme_tab_flags));
|
||||
|
||||
if ((includes = phoneme_tab_list[number].includes) > 0) {
|
||||
// recursively include base phoneme tables
|
||||
SetUpPhonemeTable(includes-1, 1);
|
||||
SetUpPhonemeTable(includes-1, true);
|
||||
}
|
||||
|
||||
// now add the phonemes from this table
|
||||
@@ -364,7 +364,7 @@ static void SetUpPhonemeTable(int number, int recursing)
|
||||
void SelectPhonemeTable(int number)
|
||||
{
|
||||
n_phoneme_tab = 0;
|
||||
SetUpPhonemeTable(number, 0); // recursively for included phoneme tables
|
||||
SetUpPhonemeTable(number, false); // recursively for included phoneme tables
|
||||
n_phoneme_tab++;
|
||||
current_phoneme_table = number;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -1127,7 +1128,7 @@ void DoEmbedded(int *embix, int sourceix)
|
||||
} while ((word & 0x80) == 0);
|
||||
}
|
||||
|
||||
int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
int Generate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume)
|
||||
{
|
||||
static int ix;
|
||||
static int embedded_ix;
|
||||
@@ -1136,10 +1137,10 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
PHONEME_LIST *next;
|
||||
PHONEME_LIST *next2;
|
||||
PHONEME_LIST *p;
|
||||
int released;
|
||||
bool released;
|
||||
int stress;
|
||||
int modulation;
|
||||
int pre_voiced;
|
||||
bool pre_voiced;
|
||||
int free_min;
|
||||
int value;
|
||||
unsigned char *pitch_env = NULL;
|
||||
@@ -1164,7 +1165,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
if (mbrola_name[0] != 0)
|
||||
return MbrolaGenerate(phoneme_list, n_ph, resume);
|
||||
|
||||
if (resume == 0) {
|
||||
if (resume == false) {
|
||||
ix = 1;
|
||||
embedded_ix = 0;
|
||||
word_count = 0;
|
||||
@@ -1239,14 +1240,14 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
p->std_length = p->ph->std_length;
|
||||
break;
|
||||
case phSTOP:
|
||||
released = 0;
|
||||
released = false;
|
||||
ph = p->ph;
|
||||
if (next->type == phVOWEL)
|
||||
released = 1;
|
||||
released = true;
|
||||
else if (!next->newword) {
|
||||
if (next->type == phLIQUID) released = 1;
|
||||
if (next->type == phLIQUID) released = true;
|
||||
}
|
||||
if (released == 0)
|
||||
if (released == false)
|
||||
p->synthflags |= SFLAG_NEXT_PAUSE;
|
||||
|
||||
if (ph->phflags & phPREVOICE) {
|
||||
@@ -1280,15 +1281,15 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
memset(&fmtp, 0, sizeof(fmtp));
|
||||
fmtp.fmt_control = pd_DONTLENGTHEN;
|
||||
|
||||
pre_voiced = 0;
|
||||
pre_voiced = false;
|
||||
if (next->type == phVOWEL) {
|
||||
DoAmplitude(p->amp, NULL);
|
||||
DoPitch(envelope_data[p->env], p->pitch1, p->pitch2);
|
||||
pre_voiced = 1;
|
||||
pre_voiced = true;
|
||||
} else if ((next->type == phLIQUID) && !next->newword) {
|
||||
DoAmplitude(next->amp, NULL);
|
||||
DoPitch(envelope_data[next->env], next->pitch1, next->pitch2);
|
||||
pre_voiced = 1;
|
||||
pre_voiced = true;
|
||||
} else {
|
||||
if (last_pitch_cmd < 0) {
|
||||
DoAmplitude(next->amp, NULL);
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
* along with this program; if not, see: <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
@@ -492,7 +494,7 @@ unsigned char *LookupEnvelope(int ix);
|
||||
espeak_ng_STATUS LoadPhData(int *srate, espeak_ng_ERROR_CONTEXT *context);
|
||||
|
||||
void SynthesizeInit(void);
|
||||
int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume);
|
||||
int Generate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume);
|
||||
void MakeWave2(PHONEME_LIST *p, int n_ph);
|
||||
int SpeakNextClause(int control);
|
||||
void SetSpeed(int control);
|
||||
@@ -536,9 +538,9 @@ extern SOUND_ICON soundicon_tab[N_SOUNDICON_TAB];
|
||||
|
||||
espeak_ng_STATUS LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int *srate);
|
||||
espeak_ng_STATUS SetParameter(int parameter, int value, int relative);
|
||||
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola);
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume);
|
||||
int MbrolaFill(int length, int resume, int amplitude);
|
||||
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, bool resume, FILE *f_mbrola);
|
||||
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, bool resume);
|
||||
int MbrolaFill(int length, bool resume, int amplitude);
|
||||
void MbrolaReset(void);
|
||||
void DoEmbedded(int *embix, int sourceix);
|
||||
void DoMarker(int type, int char_posn, int length, int value);
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -549,7 +550,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
char word_copy2[N_WORD_BYTES];
|
||||
int word_copy_length;
|
||||
char prefix_chars[0x3f + 2];
|
||||
int found = 0;
|
||||
bool found = false;
|
||||
int end_flags;
|
||||
int c_temp; // save a character byte while we temporarily replace it with space
|
||||
int first_char;
|
||||
@@ -650,7 +651,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
strcpy(word_out, word1);
|
||||
|
||||
return dictionary_flags[0];
|
||||
} else if ((found == 0) && (dictionary_flags[0] & FLAG_SKIPWORDS) && !(dictionary_flags[0] & FLAG_ABBREV)) {
|
||||
} else if ((found == false) && (dictionary_flags[0] & FLAG_SKIPWORDS) && !(dictionary_flags[0] & FLAG_ABBREV)) {
|
||||
// grouped words, but no translation. Join the words with hyphens.
|
||||
wordx = word1;
|
||||
ix = 0;
|
||||
@@ -741,7 +742,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
if (wflags & FLAG_TRANSLATOR2)
|
||||
return 0;
|
||||
return dictionary_flags[0] & FLAG_SKIPWORDS; // for "b.c.d"
|
||||
} else if (found == 0) {
|
||||
} else if (found == false) {
|
||||
// word's pronunciation is not given in the dictionary list, although
|
||||
// dictionary_flags may have ben set there
|
||||
|
||||
@@ -812,7 +813,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
|
||||
c_temp = wordx[-1];
|
||||
|
||||
found = 0;
|
||||
found = false;
|
||||
confirm_prefix = 1;
|
||||
for (loopcount = 0; (loopcount < 50) && (end_type & SUFX_P); loopcount++) {
|
||||
// Found a standard prefix, remove it and retranslate
|
||||
@@ -903,7 +904,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
dictionary_flags[1] = dictionary_flags2[1];
|
||||
} else
|
||||
prefix_flags = 1;
|
||||
if (found == 0) {
|
||||
if (found == false) {
|
||||
end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags & (FLAG_HYPHEN_AFTER | FLAG_PREFIX_REMOVED), dictionary_flags);
|
||||
|
||||
if (phonemes[0] == phonSWITCH) {
|
||||
@@ -945,10 +946,10 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
if (found)
|
||||
prefix_phonemes[0] = 0; // matched whole word, don't need prefix now
|
||||
|
||||
if ((found == 0) && (dictionary_flags2[0] != 0))
|
||||
if ((found == false) && (dictionary_flags2[0] != 0))
|
||||
prefix_flags = 1;
|
||||
}
|
||||
if (found == 0) {
|
||||
if (found == false) {
|
||||
found = LookupDictList(tr, &wordx, phonemes, dictionary_flags2, end_flags, wtab); // without prefix and suffix
|
||||
if (phonemes[0] == phonSWITCH) {
|
||||
// change to another language in order to translate this word
|
||||
@@ -962,7 +963,7 @@ static int TranslateWord3(Translator *tr, char *word_start, WORD_TAB *wtab, char
|
||||
dictionary_flags[1] = dictionary_flags2[1];
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
if (found == false) {
|
||||
if (end_type & SUFX_Q) {
|
||||
// don't retranslate, use the original lookup result
|
||||
strcpy(phonemes, phonemes2);
|
||||
|
||||
+12
-11
@@ -23,6 +23,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -892,7 +893,7 @@ static int Wavegen()
|
||||
}
|
||||
}
|
||||
|
||||
static int PlaySilence(int length, int resume)
|
||||
static int PlaySilence(int length, bool resume)
|
||||
{
|
||||
static int n_samples;
|
||||
int value = 0;
|
||||
@@ -904,7 +905,7 @@ static int PlaySilence(int length, int resume)
|
||||
if (length == 0)
|
||||
return 0;
|
||||
|
||||
if (resume == 0)
|
||||
if (resume == false)
|
||||
n_samples = length;
|
||||
|
||||
while (n_samples-- > 0) {
|
||||
@@ -926,14 +927,14 @@ static int PlaySilence(int length, int resume)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int PlayWave(int length, int resume, unsigned char *data, int scale, int amp)
|
||||
static int PlayWave(int length, bool resume, unsigned char *data, int scale, int amp)
|
||||
{
|
||||
static int n_samples;
|
||||
static int ix = 0;
|
||||
int value;
|
||||
signed char c;
|
||||
|
||||
if (resume == 0) {
|
||||
if (resume == false) {
|
||||
n_samples = length;
|
||||
ix = 0;
|
||||
}
|
||||
@@ -1231,9 +1232,9 @@ static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *
|
||||
}
|
||||
}
|
||||
|
||||
static int Wavegen2(int length, int modulation, int resume, frame_t *fr1, frame_t *fr2)
|
||||
static int Wavegen2(int length, int modulation, bool resume, frame_t *fr1, frame_t *fr2)
|
||||
{
|
||||
if (resume == 0)
|
||||
if (resume == false)
|
||||
SetSynth(length, modulation, fr1, fr2, wvoice);
|
||||
|
||||
return Wavegen();
|
||||
@@ -1259,7 +1260,7 @@ static int WavegenFill2()
|
||||
int length;
|
||||
int result;
|
||||
int marker_type;
|
||||
static int resume = 0;
|
||||
static bool resume = false;
|
||||
static int echo_complete = 0;
|
||||
|
||||
while (out_ptr < out_end) {
|
||||
@@ -1267,7 +1268,7 @@ static int WavegenFill2()
|
||||
if (echo_complete > 0) {
|
||||
// continue to play silence until echo is completed
|
||||
resume = PlaySilence(echo_complete, resume);
|
||||
if (resume == 1)
|
||||
if (resume == true)
|
||||
return 0; // not yet finished
|
||||
}
|
||||
return 1; // queue empty, close sound channel
|
||||
@@ -1283,7 +1284,7 @@ static int WavegenFill2()
|
||||
SetPitch(length, (unsigned char *)q[2], q[3] >> 16, q[3] & 0xffff);
|
||||
break;
|
||||
case WCMD_PAUSE:
|
||||
if (resume == 0)
|
||||
if (resume == false)
|
||||
echo_complete -= length;
|
||||
wdata.n_mix_wavefile = 0;
|
||||
wdata.amplitude_fmt = 100;
|
||||
@@ -1361,9 +1362,9 @@ static int WavegenFill2()
|
||||
|
||||
if (result == 0) {
|
||||
WcmdqIncHead();
|
||||
resume = 0;
|
||||
resume = false;
|
||||
} else
|
||||
resume = 1;
|
||||
resume = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user