|  |  |  |  |  |  | 
													
												
													
														|  |  | #include <stdio.h> |  |  | #include <stdio.h> | 
													
												
													
														|  |  | #include <stddef.h> |  |  | #include <stddef.h> | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | #ifdef __WIN32__ |  |  |  | 
													
												
													
														|  |  | #define ESPEAK_API __declspec(dllexport) |  |  |  | 
													
												
													
														|  |  | #else |  |  |  | 
													
												
													
														|  |  | #define ESPEAK_API |  |  |  | 
													
												
													
														|  |  | #endif |  |  |  | 
													
												
													
														|  |  | 
 |  |  |  | 
													
												
													
														|  |  | #define ESPEAK_API_REVISION  6 |  |  | #define ESPEAK_API_REVISION  6 | 
													
												
													
														|  |  | /* |  |  | /* | 
													
												
													
														|  |  | Revision 2 |  |  | Revision 2 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | EE_NOT_FOUND=2 |  |  | EE_NOT_FOUND=2 | 
													
												
													
														|  |  | } espeak_ERROR; |  |  | } espeak_ERROR; | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | #define espeakINITIALIZE_PHONEME_EVENTS 0x0001 |  |  |  | 
													
												
													
														|  |  | #define espeakINITIALIZE_DONT_EXIT     0x8000 |  |  |  | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); |  |  | int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); | 
													
												
													
													
												
													
														|  |  | /* Must be called before any synthesis functions are called. |  |  | /* Must be called before any synthesis functions are called. | 
													
												
													
														|  |  | output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. |  |  | output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | path: The directory which contains the espeak-data directory, or NULL for the default location. |  |  | path: The directory which contains the espeak-data directory, or NULL for the default location. | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | options: bit 0:  1=allow espeakEVENT_PHONEME events. |  |  | options: bit 0: 1=allow espeakEVENT_PHONEME events. | 
													
												
													
														|  |  | bit 15: 1=don't exit if espeak_data is not found (used for --help) |  |  |  | 
													
												
													
													
												
													
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR). |  |  | Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR). | 
													
												
													
														|  |  | */ |  |  | */ | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); |  |  | void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | 
													
												
													
													
												
													
														|  |  | /* Must be called before any synthesis functions are called. |  |  | /* Must be called before any synthesis functions are called. | 
													
												
													
														|  |  | This specifies a function in the calling program which is called when a buffer of |  |  | This specifies a function in the calling program which is called when a buffer of | 
													
												
													
														|  |  | speech sound data has been produced. |  |  | speech sound data has been produced. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); |  |  | void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | 
													
												
													
													
												
													
														|  |  | /* This function may be called before synthesis functions are used, in order to deal with |  |  | /* This function may be called before synthesis functions are used, in order to deal with | 
													
												
													
														|  |  | <audio> tags.  It specifies a callback function which is called when an <audio> element is |  |  | <audio> tags.  It specifies a callback function which is called when an <audio> element is | 
													
												
													
														|  |  | encountered and allows the calling program to indicate whether the sound file which |  |  | encountered and allows the calling program to indicate whether the sound file which | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Synth(const void *text, |  |  | espeak_ERROR espeak_Synth(const void *text, | 
													
												
													
													
												
													
														|  |  | size_t size, |  |  | size_t size, | 
													
												
													
														|  |  | unsigned int position, |  |  | unsigned int position, | 
													
												
													
														|  |  | espeak_POSITION_TYPE position_type, |  |  | espeak_POSITION_TYPE position_type, | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, |  |  | espeak_ERROR espeak_Synth_Mark(const void *text, | 
													
												
													
													
												
													
														|  |  | size_t size, |  |  | size_t size, | 
													
												
													
														|  |  | const char *index_mark, |  |  | const char *index_mark, | 
													
												
													
														|  |  | unsigned int end_position, |  |  | unsigned int end_position, | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Key(const char *key_name); |  |  | espeak_ERROR espeak_Key(const char *key_name); | 
													
												
													
													
												
													
														|  |  | /* Speak the name of a keyboard key. |  |  | /* Speak the name of a keyboard key. | 
													
												
													
														|  |  | If key_name is a single character, it speaks the name of the character. |  |  | If key_name is a single character, it speaks the name of the character. | 
													
												
													
														|  |  | Otherwise, it speaks key_name as a text string. |  |  | Otherwise, it speaks key_name as a text string. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Char(wchar_t character); |  |  | espeak_ERROR espeak_Char(wchar_t character); | 
													
												
													
													
												
													
														|  |  | /* Speak the name of the given character |  |  | /* Speak the name of the given character | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | Return: EE_OK: operation achieved |  |  | Return: EE_OK: operation achieved | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative); |  |  | espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative); | 
													
												
													
													
												
													
														|  |  | /* Sets the value of the specified parameter. |  |  | /* Sets the value of the specified parameter. | 
													
												
													
														|  |  | relative=0   Sets the absolute value of the parameter. |  |  | relative=0   Sets the absolute value of the parameter. | 
													
												
													
														|  |  | relative=1   Sets a relative value of the parameter. |  |  | relative=1   Sets a relative value of the parameter. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API int espeak_GetParameter(espeak_PARAMETER parameter, int current); |  |  | int espeak_GetParameter(espeak_PARAMETER parameter, int current); | 
													
												
													
													
												
													
														|  |  | /* current=0  Returns the default value of the specified parameter. |  |  | /* current=0  Returns the default value of the specified parameter. | 
													
												
													
														|  |  | current=1  Returns the current value of the specified parameter, as set by SetParameter() |  |  | current=1  Returns the current value of the specified parameter, as set by SetParameter() | 
													
												
													
														|  |  | */ |  |  | */ | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); |  |  | espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); | 
													
												
													
													
												
													
														|  |  | /* Specified a list of punctuation characters whose names are to be spoken when the |  |  | /* Specified a list of punctuation characters whose names are to be spoken when the | 
													
												
													
														|  |  | value of the Punctuation parameter is set to "some". |  |  | value of the Punctuation parameter is set to "some". | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream); |  |  | void espeak_SetPhonemeTrace(int value, FILE *stream); | 
													
												
													
													
												
													
														|  |  | /* Controls the output of phoneme symbols for the text |  |  | /* Controls the output of phoneme symbols for the text | 
													
												
													
														|  |  | value=0  No phoneme output (default) |  |  | value=0  No phoneme output (default) | 
													
												
													
														|  |  | value=1  Output the translated phoneme symbols for the text |  |  | value=1  Output the translated phoneme symbols for the text | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags); |  |  | void espeak_CompileDictionary(const char *path, FILE *log, int flags); | 
													
												
													
													
												
													
														|  |  | /* Compile pronunciation dictionary for a language which corresponds to the currently |  |  | /* Compile pronunciation dictionary for a language which corresponds to the currently | 
													
												
													
														|  |  | selected voice.  The required voice should be selected before calling this function. |  |  | selected voice.  The required voice should be selected before calling this function. | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec); |  |  | const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec); | 
													
												
													
													
												
													
														|  |  | /* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers. |  |  | /* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers. | 
													
												
													
														|  |  | The list is terminated by a NULL pointer |  |  | The list is terminated by a NULL pointer | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name); |  |  | espeak_ERROR espeak_SetVoiceByName(const char *name); | 
													
												
													
													
												
													
														|  |  | /* Searches for a voice with a matching "name" field.  Language is not considered. |  |  | /* Searches for a voice with a matching "name" field.  Language is not considered. | 
													
												
													
														|  |  | "name" is a UTF8 string. |  |  | "name" is a UTF8 string. | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec); |  |  | espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec); | 
													
												
													
													
												
													
														|  |  | /* An espeak_VOICE structure is used to pass criteria to select a voice.  Any of the following |  |  | /* An espeak_VOICE structure is used to pass criteria to select a voice.  Any of the following | 
													
												
													
														|  |  | fields may be set: |  |  | fields may be set: | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void); |  |  | espeak_VOICE *espeak_GetCurrentVoice(void); | 
													
												
													
													
												
													
														|  |  | /* Returns the espeak_VOICE data for the currently selected voice. |  |  | /* Returns the espeak_VOICE data for the currently selected voice. | 
													
												
													
														|  |  | This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s> |  |  | This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s> | 
													
												
													
														|  |  | */ |  |  | */ | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Cancel(void); |  |  | espeak_ERROR espeak_Cancel(void); | 
													
												
													
													
												
													
														|  |  | /* Stop immediately synthesis and audio output of the current text. When this |  |  | /* Stop immediately synthesis and audio output of the current text. When this | 
													
												
													
														|  |  | function returns, the audio output is fully stopped and the synthesizer is ready to |  |  | function returns, the audio output is fully stopped and the synthesizer is ready to | 
													
												
													
														|  |  | synthesize a new message. |  |  | synthesize a new message. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API int espeak_IsPlaying(void); |  |  | int espeak_IsPlaying(void); | 
													
												
													
													
												
													
														|  |  | /* Returns 1 if audio is played, 0 otherwise. |  |  | /* Returns 1 if audio is played, 0 otherwise. | 
													
												
													
														|  |  | */ |  |  | */ | 
													
												
													
														|  |  | 
 |  |  | 
 | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Synchronize(void); |  |  | espeak_ERROR espeak_Synchronize(void); | 
													
												
													
													
												
													
														|  |  | /* This function returns when all data have been spoken. |  |  | /* This function returns when all data have been spoken. | 
													
												
													
														|  |  | Return: EE_OK: operation achieved |  |  | Return: EE_OK: operation achieved | 
													
												
													
														|  |  | EE_INTERNAL_ERROR. |  |  | EE_INTERNAL_ERROR. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API espeak_ERROR espeak_Terminate(void); |  |  | espeak_ERROR espeak_Terminate(void); | 
													
												
													
													
												
													
														|  |  | /* last function to be called. |  |  | /* last function to be called. | 
													
												
													
														|  |  | Return: EE_OK: operation achieved |  |  | Return: EE_OK: operation achieved | 
													
												
													
														|  |  | EE_INTERNAL_ERROR. |  |  | EE_INTERNAL_ERROR. | 
													
												
											
												
													
														|  |  |  |  |  |  | 
													
												
													
														|  |  | #ifdef __cplusplus |  |  | #ifdef __cplusplus | 
													
												
													
														|  |  | extern "C" |  |  | extern "C" | 
													
												
													
														|  |  | #endif |  |  | #endif | 
													
												
													
														|  |  | ESPEAK_API const char *espeak_Info(const char **path_data); |  |  | const char *espeak_Info(void* ptr); | 
													
												
													
													
												
													
														|  |  | /* Returns the version number string. |  |  | /* Returns the version number string. | 
													
												
													
														|  |  | path_data  returns the path to espeak_data |  |  | The parameter is for future use, and should be set to NULL | 
													
												
													
													
												
													
														|  |  | */ |  |  | */ | 
													
												
													
														|  |  | #endif |  |  | #endif |