diff --git a/.gitattributes b/.gitattributes index 5429a9f44ee96d29177a5d8efb82717db2cbb1dc..dd354f53c223dbaaa1501bd857ec75658a64edf3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -157,3 +157,56 @@ ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ta_dict filter ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ur_dict filter=lfs diff=lfs merge=lfs -text ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/yue_dict filter=lfs diff=lfs merge=lfs -text ios-arm64/ESpeakNG.framework/ESpeakNG filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/af_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ar_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ca_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/cmn_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/da_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/en_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/fa_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/fo_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/hu_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ia_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/it_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/lb_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/phondata filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ru_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ta_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ur_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/yue_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/af_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ar_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ca_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/cmn_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/da_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/en_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/fa_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/fo_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/hu_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ia_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/it_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/lb_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/phondata filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ru_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ta_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/ur_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/espeak-ng-data.bundle/espeak-ng-data/yue_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/ESpeakNG filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/af_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ar_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ca_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/cmn_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/da_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/en_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/fa_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/fo_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/hu_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ia_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/it_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/lb_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/phondata filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ru_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ta_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/ur_dict filter=lfs diff=lfs merge=lfs -text +ESpeakNG.xcframework/macos-arm64_x86_64/ESpeakNG.framework/Versions/A/Resources/espeak-ng-data.bundle/espeak-ng-data/yue_dict filter=lfs diff=lfs merge=lfs -text diff --git a/ESpeakNG.xcframework/.DS_Store b/ESpeakNG.xcframework/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d52f482b08a9ef3f4b860269ce50a76a34d00001 Binary files /dev/null and b/ESpeakNG.xcframework/.DS_Store differ diff --git a/ESpeakNG.xcframework/Info.plist b/ESpeakNG.xcframework/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..586f5dcc8512cd52f19361ebb471c7ec7deedbcf --- /dev/null +++ b/ESpeakNG.xcframework/Info.plist @@ -0,0 +1,42 @@ + + + + + AvailableLibraries + + + BinaryPath + ESpeakNG.framework/Versions/A/ESpeakNG + LibraryIdentifier + macos-arm64_x86_64 + LibraryPath + ESpeakNG.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + macos + + + BinaryPath + ESpeakNG.framework/ESpeakNG + LibraryIdentifier + ios-arm64 + LibraryPath + ESpeakNG.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/ESpeakNG.xcframework/ios-arm64/.DS_Store b/ESpeakNG.xcframework/ios-arm64/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fdf4b93e1a38ec8450d8aef49e262ac6b0e19aee Binary files /dev/null and b/ESpeakNG.xcframework/ios-arm64/.DS_Store differ diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/.DS_Store b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8084b28cc5bd94bbebca477b6be490189c3f11b4 Binary files /dev/null and b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/.DS_Store differ diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG new file mode 100644 index 0000000000000000000000000000000000000000..2a66897acca70e7986faac442db8ac54e3053a44 --- /dev/null +++ b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595aeda23d1addc9536805e5ca063a58330a87389b59b5ebd4cc5742816f8735 +size 524560 diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG.h b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG.h new file mode 100644 index 0000000000000000000000000000000000000000..542cdffc6af901db2c9b93f3d3d92960ebae68d4 --- /dev/null +++ b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/ESpeakNG.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/ESpeakNG.h b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/ESpeakNG.h new file mode 100644 index 0000000000000000000000000000000000000000..542cdffc6af901db2c9b93f3d3d92960ebae68d4 --- /dev/null +++ b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/ESpeakNG.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/espeak_ng.h b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/espeak_ng.h new file mode 100644 index 0000000000000000000000000000000000000000..e6025e7c7e1df7023e46f144bb5c157602a53d6d --- /dev/null +++ b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/espeak_ng.h @@ -0,0 +1,223 @@ +/* eSpeak NG API. + * + * 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 + * 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 . + */ + +#ifndef ESPEAK_NG_H +#define ESPEAK_NG_H + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if defined(_WIN32) || defined(_WIN64) +#ifdef LIBESPEAK_NG_EXPORT +#define ESPEAK_NG_API __declspec(dllexport) +#else +#define ESPEAK_NG_API __declspec(dllimport) +#endif +#else +#define ESPEAK_NG_API +#endif + +#define ESPEAKNG_DEFAULT_VOICE "en" + +typedef enum { + ENS_GROUP_MASK = 0x70000000, + ENS_GROUP_ERRNO = 0x00000000, /* Values 0-255 map to errno error codes. */ + ENS_GROUP_ESPEAK_NG = 0x10000000, /* eSpeak NG error codes. */ + + /* eSpeak NG 1.49.0 */ + ENS_OK = 0, + ENS_COMPILE_ERROR = 0x100001FF, + ENS_VERSION_MISMATCH = 0x100002FF, + ENS_FIFO_BUFFER_FULL = 0x100003FF, + ENS_NOT_INITIALIZED = 0x100004FF, + ENS_AUDIO_ERROR = 0x100005FF, + ENS_VOICE_NOT_FOUND = 0x100006FF, + ENS_MBROLA_NOT_FOUND = 0x100007FF, + ENS_MBROLA_VOICE_NOT_FOUND = 0x100008FF, + ENS_EVENT_BUFFER_FULL = 0x100009FF, + ENS_NOT_SUPPORTED = 0x10000AFF, + ENS_UNSUPPORTED_PHON_FORMAT = 0x10000BFF, + ENS_NO_SPECT_FRAMES = 0x10000CFF, + ENS_EMPTY_PHONEME_MANIFEST = 0x10000DFF, + ENS_SPEECH_STOPPED = 0x10000EFF, + + /* eSpeak NG 1.49.2 */ + ENS_UNKNOWN_PHONEME_FEATURE = 0x10000FFF, + ENS_UNKNOWN_TEXT_ENCODING = 0x100010FF, +} espeak_ng_STATUS; + +typedef enum { + ENOUTPUT_MODE_SYNCHRONOUS = 0x0001, + ENOUTPUT_MODE_SPEAK_AUDIO = 0x0002, +} espeak_ng_OUTPUT_MODE; + +typedef enum { + ENGENDER_UNKNOWN = 0, + ENGENDER_MALE = 1, + ENGENDER_FEMALE = 2, + ENGENDER_NEUTRAL = 3, +} espeak_ng_VOICE_GENDER; + +typedef struct +{ + void (*outputPhoSymbol)(char* pho_code,int pho_type); + void (*outputSilence)(short echo_tail); + void (*outputVoiced)(short sample); + void (*outputUnvoiced)(short sample); +} espeak_ng_OUTPUT_HOOKS; + +/* eSpeak NG 1.49.0 */ + +typedef struct espeak_ng_ERROR_CONTEXT_ *espeak_ng_ERROR_CONTEXT; + +ESPEAK_NG_API void +espeak_ng_ClearErrorContext(espeak_ng_ERROR_CONTEXT *context); + +ESPEAK_NG_API void +espeak_ng_GetStatusCodeMessage(espeak_ng_STATUS status, + char *buffer, + size_t length); + +ESPEAK_NG_API void +espeak_ng_PrintStatusCodeMessage(espeak_ng_STATUS status, + FILE *out, + espeak_ng_ERROR_CONTEXT context); + +ESPEAK_NG_API void +espeak_ng_InitializePath(const char *path); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_Initialize(espeak_ng_ERROR_CONTEXT *context); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_InitializeOutput(espeak_ng_OUTPUT_MODE output_mode, + int buffer_length, + const char *device); + +ESPEAK_NG_API int +espeak_ng_GetSampleRate(void); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetParameter(espeak_PARAMETER parameter, + int value, + int relative); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetPhonemeEvents(int enable, int ipa); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetPunctuationList(const wchar_t *punctlist); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetVoiceByName(const char *name); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetVoiceByFile(const char *filename); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetVoiceByProperties(espeak_VOICE *voice_selector); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_Synthesize(const void *text, + size_t size, + unsigned int position, + espeak_POSITION_TYPE position_type, + unsigned int end_position, + unsigned int flags, + unsigned int *unique_identifier, + void *user_data); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SynthesizeMark(const void *text, + size_t size, + const char *index_mark, + unsigned int end_position, + unsigned int flags, + unsigned int *unique_identifier, + void *user_data); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SpeakKeyName(const char *key_name); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SpeakCharacter(wchar_t character); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_Cancel(void); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_Synchronize(void); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_Terminate(void); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_CompileDictionary(const char *dsource, + const char *dict_name, + FILE *log, + int flags, + espeak_ng_ERROR_CONTEXT *context); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_CompileMbrolaVoice(const char *path, + FILE *log, + espeak_ng_ERROR_CONTEXT *context); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_CompilePhonemeData(long rate, + FILE *log, + espeak_ng_ERROR_CONTEXT *context); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_CompileIntonation(FILE *log, + espeak_ng_ERROR_CONTEXT *context); + + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_CompileIntonationPath(const char *source_path, + const char *destination_path, + 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); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetOutputHooks(espeak_ng_OUTPUT_HOOKS* hooks); +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetConstF0(int f0); + +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetRandSeed(long seed); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/speak_lib.h b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/speak_lib.h new file mode 100644 index 0000000000000000000000000000000000000000..9c0e2739bdee8cff2fe7e4e422378d01f9624665 --- /dev/null +++ b/ESpeakNG.xcframework/ios-arm64/ESpeakNG.framework/Headers/speak_lib.h @@ -0,0 +1,709 @@ +#ifndef SPEAK_LIB_H +#define SPEAK_LIB_H +/*************************************************************************** + * Copyright (C) 2005 to 2012 by Jonathan Duddington * + * email: jonsd@users.sourceforge.net * + * * + * 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: * + * . * + ***************************************************************************/ + + +/*************************************************************/ +/* This is the header file for the library version of espeak */ +/* */ +/*************************************************************/ + +#include +#include + +#if defined(_WIN32) || defined(_WIN64) +#ifdef LIBESPEAK_NG_EXPORT +#define ESPEAK_API __declspec(dllexport) +#else +#define ESPEAK_API __declspec(dllimport) +#endif +#else +#define ESPEAK_API +#endif + +#define ESPEAK_API_REVISION 12 +/* +Revision 2 + Added parameter "options" to eSpeakInitialize() + +Revision 3 + Added espeakWORDGAP to espeak_PARAMETER + +Revision 4 + Added flags parameter to espeak_CompileDictionary() + +Revision 5 + Added espeakCHARS_16BIT + +Revision 6 + Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL + +Revision 7 24.Dec.2011 + Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. + Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. + +Revision 8 26.Apr.2013 + Added function espeak_TextToPhonemes(). + +Revision 9 30.May.2013 + Changed function espeak_TextToPhonemes(). + +Revision 10 29.Aug.2014 + Changed phonememode parameter to espeak_TextToPhonemes() and espeak_SetPhonemeTrace + +Revision 11 (espeak-ng) + Made ESPEAK_API import/export symbols correctly on Windows. + +Revision 12 (espeak-ng) + Exposed espeak_SetPhonemeCallback. This is available in eSpeak, but was not exposed in this header. + +*/ + /********************/ + /* Initialization */ + /********************/ + +// values for 'value' in espeak_SetParameter(espeakRATE, value, 0), nominally in words-per-minute +#define espeakRATE_MINIMUM 80 +#define espeakRATE_MAXIMUM 450 +#define espeakRATE_NORMAL 175 + + +typedef enum { + espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list. + espeakEVENT_WORD = 1, // Start of word + espeakEVENT_SENTENCE = 2, // Start of sentence + espeakEVENT_MARK = 3, // Mark + espeakEVENT_PLAY = 4, // Audio element + espeakEVENT_END = 5, // End of sentence or clause + espeakEVENT_MSG_TERMINATED = 6, // End of message + espeakEVENT_PHONEME = 7, // Phoneme, if enabled in espeak_Initialize() + espeakEVENT_SAMPLERATE = 8 // Set sample rate +} espeak_EVENT_TYPE; + + + +typedef struct { + espeak_EVENT_TYPE type; + unsigned int unique_identifier; // message identifier (or 0 for key or character) + int text_position; // the number of characters from the start of the text + int length; // word length, in characters (for espeakEVENT_WORD) + int audio_position; // the time in mS within the generated speech output data + int sample; // sample id (internal use) + void* user_data; // pointer supplied by the calling program + union { + int number; // used for WORD and SENTENCE events. + const char *name; // used for MARK and PLAY events. UTF8 string + char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. + } id; +} espeak_EVENT; +/* + When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. + + + In RETRIEVAL mode, the callback function supplies to the calling program the audio data and an event list terminated by 0 (LIST_TERMINATED). + + In PLAYBACK mode, the callback function is called as soon as an event happens. + + For example suppose that the following message is supplied to espeak_Synth: + "hello, hello." + + + * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : + + ** Block 1: +