mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-04 06:32:20 +00:00
Move the espeak_Initialize implementation to espeak_api.c.
This commit is contained in:
@@ -99,6 +99,7 @@ src_libespeak_ng_la_SOURCES = \
|
||||
src/libespeak-ng/compiledict.c \
|
||||
src/libespeak-ng/compilembrola.c \
|
||||
src/libespeak-ng/dictionary.c \
|
||||
src/libespeak-ng/espeak_api.c \
|
||||
src/libespeak-ng/ieee80.c \
|
||||
src/libespeak-ng/intonation.c \
|
||||
src/libespeak-ng/numbers.c \
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/* An implementation of the eSpeak API using the espeak-ng API.
|
||||
*
|
||||
* Copyright (C) 2016 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
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see: <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "speak_lib.h"
|
||||
#include "espeak_ng.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
extern int option_phoneme_events; // from translate.h
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
|
||||
ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output_type, int buf_length, const char *path, int options)
|
||||
{
|
||||
espeak_ng_InitializePath(path);
|
||||
espeak_ng_STATUS result = espeak_ng_Initialize();
|
||||
if (result != ENS_OK) {
|
||||
if (result == ENS_VERSION_MISMATCH)
|
||||
fprintf(stderr, "Wrong version of espeak-data\n");
|
||||
else {
|
||||
fprintf(stderr, "Failed to load espeak-data\n");
|
||||
if ((options & espeakINITIALIZE_DONT_EXIT) == 0)
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
switch (output_type)
|
||||
{
|
||||
case AUDIO_OUTPUT_PLAYBACK:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SPEAK_AUDIO, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_RETRIEVAL:
|
||||
espeak_ng_InitializeOutput(0, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_SYNCHRONOUS:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SYNCHRONOUS, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_SYNCH_PLAYBACK:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SYNCHRONOUS | ENOUTPUT_MODE_SPEAK_AUDIO, buf_length, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA));
|
||||
|
||||
return espeak_ng_GetSampleRate();
|
||||
}
|
||||
|
||||
#pragma GCC visibility pop
|
||||
@@ -639,43 +639,6 @@ ESPEAK_API void espeak_SetPhonemeCallback(int (*PhonemeCallback)(const char *))
|
||||
phoneme_callback = PhonemeCallback;
|
||||
}
|
||||
|
||||
ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output_type, int buf_length, const char *path, int options)
|
||||
{
|
||||
int param;
|
||||
|
||||
espeak_ng_InitializePath(path);
|
||||
espeak_ng_STATUS result = espeak_ng_Initialize();
|
||||
if (result != ENS_OK) {
|
||||
if (result == ENS_VERSION_MISMATCH)
|
||||
fprintf(stderr, "Wrong version of espeak-data (expected 0x%x) at %s\n", version_phdata, path_home);
|
||||
else {
|
||||
fprintf(stderr, "Failed to load espeak-data\n");
|
||||
if ((options & espeakINITIALIZE_DONT_EXIT) == 0)
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
switch (output_type)
|
||||
{
|
||||
case AUDIO_OUTPUT_PLAYBACK:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SPEAK_AUDIO, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_RETRIEVAL:
|
||||
espeak_ng_InitializeOutput(0, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_SYNCHRONOUS:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SYNCHRONOUS, buf_length, NULL);
|
||||
break;
|
||||
case AUDIO_OUTPUT_SYNCH_PLAYBACK:
|
||||
espeak_ng_InitializeOutput(ENOUTPUT_MODE_SYNCHRONOUS | ENOUTPUT_MODE_SPEAK_AUDIO, buf_length, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA));
|
||||
|
||||
return samplerate;
|
||||
}
|
||||
|
||||
ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size,
|
||||
unsigned int position,
|
||||
espeak_POSITION_TYPE position_type,
|
||||
|
||||
Reference in New Issue
Block a user