espeak_ng_CompilePhonemeDataPath: Allow the user to specify the source and destination paths for the phoneme data.

This commit is contained in:
Reece H. Dunn
2017-01-19 21:20:49 +00:00
parent e0a598e968
commit eb91c8dfce
2 changed files with 37 additions and 4 deletions
+12 -1
View File
@@ -1,6 +1,6 @@
/* eSpeak NG API.
*
* Copyright (C) 2015-2016 Reece H. Dunn
* Copyright (C) 2015-2017 Reece H. Dunn
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -63,6 +63,8 @@ typedef enum {
ENOUTPUT_MODE_SPEAK_AUDIO = 0x0002,
} espeak_ng_OUTPUT_MODE;
/* eSpeak NG 1.49.0 */
typedef struct espeak_ng_ERROR_CONTEXT_ *espeak_ng_ERROR_CONTEXT;
ESPEAK_NG_API void
@@ -161,6 +163,15 @@ ESPEAK_NG_API espeak_ng_STATUS
espeak_ng_CompileIntonation(FILE *log,
espeak_ng_ERROR_CONTEXT *context);
/* eSpeak NG 1.49.1 */
ESPEAK_NG_API espeak_ng_STATUS
espeak_ng_CompilePhonemeDataPath(long rate,
const char *source_path,
const char *destination_path,
FILE *log,
espeak_ng_ERROR_CONTEXT *context);
#ifdef __cplusplus
}
#endif
+25 -3
View File
@@ -2640,7 +2640,20 @@ static void CompilePhonemeFiles()
#pragma GCC visibility push(default)
espeak_ng_STATUS espeak_ng_CompilePhonemeData(long rate, FILE *log, espeak_ng_ERROR_CONTEXT *context)
espeak_ng_STATUS
espeak_ng_CompilePhonemeData(long rate,
FILE *log,
espeak_ng_ERROR_CONTEXT *context)
{
return espeak_ng_CompilePhonemeDataPath(rate, NULL, NULL, log, context);
}
espeak_ng_STATUS
espeak_ng_CompilePhonemeDataPath(long rate,
const char *source_path,
const char *destination_path,
FILE *log,
espeak_ng_ERROR_CONTEXT *context)
{
if (!log) log = stderr;
@@ -2648,8 +2661,17 @@ espeak_ng_STATUS espeak_ng_CompilePhonemeData(long rate, FILE *log, espeak_ng_ER
char phsrc[sizeof(path_home)+40]; // Source: path to the 'phonemes' source file.
char phdst[sizeof(path_home)+40]; // Destination: path to the phondata/phontab/phonindex output files.
sprintf(phsrc, "%s/../phsource", path_home);
sprintf(phdst, "%s", path_home);
if (source_path) {
sprintf(phsrc, "%s", source_path);
} else {
sprintf(phsrc, "%s/../phsource", path_home);
}
if (destination_path) {
sprintf(phdst, "%s", destination_path);
} else {
sprintf(phdst, "%s", path_home);
}
samplerate_native = samplerate = rate;
LoadPhData(NULL, NULL);