| @@ -44,9 +44,9 @@ libespeak-ng.so* | |||
| # programs | |||
| platforms/*/espeak-phoneme-data | |||
| espeak-ng | |||
| espeakedit | |||
| speak-ng | |||
| src/espeak-ng | |||
| src/espeakedit | |||
| src/speak-ng | |||
| # Linux/Source distribution files | |||
| @@ -33,6 +33,8 @@ | |||
| #include <locale.h> | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include "main.h" | |||
| #include "speech.h" | |||
| #include "options.h" | |||
| @@ -63,7 +65,6 @@ extern void DictionarySort(const char *dictname); | |||
| extern void init_z(); | |||
| extern void CompilePhonemeData(void); | |||
| extern void CompileSampleRate(void); | |||
| extern "C" void CompileMbrola(const char *mbrola_file); | |||
| extern void CompileIntonation(); | |||
| extern void InitSpectrumDisplay(); | |||
| extern void InitProsodyDisplay(); | |||
| @@ -157,7 +158,7 @@ if(argc > 1) | |||
| fprintf(stderr, "Failed to load default voice\n"); | |||
| exit(1); | |||
| } | |||
| CompileMbrola(argv[2]); | |||
| espeak_ng_CompileMbrolaVoice(argv[2], stdout); | |||
| } | |||
| exit(0); | |||
| } | |||
| @@ -792,7 +793,7 @@ void MyFrame::OnTools(wxCommandEvent& event) | |||
| case MENU_COMPILE_MBROLA: | |||
| { | |||
| wxString filepath = wxFileSelector(_T("Read Mbrola phonemes file"),path_phsource+_T("/mbrola"),_T(""),_T(""),_T("*"),wxOPEN); | |||
| CompileMbrola(filepath.mb_str(wxConvLocal)); | |||
| espeak_ng_CompileMbrolaVoice(filepath.mb_str(wxConvLocal), stdout); | |||
| } | |||
| break; | |||
| @@ -0,0 +1,53 @@ | |||
| /* eSpeak NG API. | |||
| * | |||
| * Copyright (C) 2015 Reece H. Dunn | |||
| * | |||
| * This file is part of espeak-ng. | |||
| * | |||
| * 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/>. | |||
| */ | |||
| #ifndef ESPEAK_NG_H | |||
| #define ESPEAK_NG_H | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| { | |||
| #endif | |||
| #ifdef __WIN32__ | |||
| #define ESPEAK_NG_API __declspec(dllexport) | |||
| #else | |||
| #define ESPEAK_NG_API | |||
| #endif | |||
| typedef enum { | |||
| /* Success Codes (>= 0) */ | |||
| ENS_OK = 0, | |||
| /* Error Codes (< 0) */ | |||
| ENE_NOT_FOUND = -1, | |||
| ENE_WRITE_FAILED = -2, | |||
| } espeak_ng_STATUS; | |||
| ESPEAK_NG_API espeak_ng_STATUS | |||
| espeak_ng_CompileMbrolaVoice(const char *path, FILE *log); | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif | |||
| @@ -22,6 +22,7 @@ | |||
| #include <unistd.h> | |||
| #include "speak_lib.h" | |||
| #include "espeak_ng.h" | |||
| #include "phoneme.h" | |||
| #include "speech.h" | |||
| @@ -47,7 +48,7 @@ static unsigned int StringToWord(const char *string) | |||
| return(word); | |||
| } | |||
| void CompileMbrola(const char *filepath) | |||
| espeak_ng_STATUS espeak_ng_CompileMbrolaVoice(const char *filepath, FILE *log) | |||
| { | |||
| char *p; | |||
| FILE *f_in; | |||
| @@ -70,8 +71,8 @@ void CompileMbrola(const char *filepath) | |||
| strcpy(buf,filepath); | |||
| if((f_in = fopen(buf,"r")) == NULL) | |||
| { | |||
| fprintf(stderr, "Can't read: %s\n", filepath); | |||
| return; | |||
| fprintf(log, "Can't read: %s\n", filepath); | |||
| return ENE_NOT_FOUND; | |||
| } | |||
| while(fgets(buf,sizeof(phoneme),f_in) != NULL) | |||
| @@ -116,8 +117,8 @@ void CompileMbrola(const char *filepath) | |||
| sprintf(buf,"%s/mbrola_ph/%s_phtrans",path_home,mbrola_voice); | |||
| if((f_out = fopen(buf,"wb")) == NULL) | |||
| { | |||
| fprintf(stderr, "Can't write to: %s\n", buf); | |||
| return; | |||
| fprintf(log, "Can't write to: %s\n", buf); | |||
| return ENE_WRITE_FAILED; | |||
| } | |||
| data[count].name = 0; // list terminator | |||
| @@ -129,5 +130,6 @@ void CompileMbrola(const char *filepath) | |||
| Write4Bytes(f_out, *pw); | |||
| } | |||
| fclose(f_out); | |||
| fprintf(stdout, "Mbrola translation file: %d phonemes", count); | |||
| fprintf(log, "Mbrola translation file: %s -- %d phonemes\n", buf, count); | |||
| return ENS_OK; | |||
| } | |||