Я искал и нашел эту программу и внес небольшую модификацию, чтобы изменить ее. на английский с итальянского(под закомментированными строками), но не получилось:
Код: Выделить всё
#include
#include
#include
espeak_POSITION_TYPE position_type;
espeak_AUDIO_OUTPUT output;
char *path=NULL;
int Buflength = 500, Options=0;
void* user_data;
t_espeak_callback *SynthCallback;
espeak_PARAMETER Parm;
//char Voice[] = {"lt+klatt2"};
char Voice[] = {"English"};
char text[30] = {"this is a english test"};
unsigned int Size,position=0, end_position=0, flags=espeakCHARS_AUTO, *unique_identifier;
int main(int argc, char* argv[] )
{
output = AUDIO_OUTPUT_PLAYBACK;
int I, Run = 1, L;
espeak_Initialize(output, Buflength, path, Options );
espeak_SetVoiceByName(Voice);
//const char *langNativeString = "lt"; //Default to US English
const char *langNativeString = "en"; //Default to US English
espeak_VOICE voice;
memset(&voice, 0, sizeof(espeak_VOICE)); // Zero out the voice first
voice.languages = langNativeString;
//voice.name = "klatt";
voice.name = "US";
voice.variant = 2;
voice.gender = 1;
espeak_SetVoiceByProperties(&voice);
Size = strlen(text)+1;
printf("Saying '%s'",text);
espeak_Synth( text, Size, position, position_type, end_position, flags,
unique_identifier, user_data );
espeak_Synchronize( );
printf("\n:Done\n");
return 0;
}
Компилируется без ошибок и говорит как исполняемый файл, но когда я пытаюсь ./speaks, результат:
Код: Выделить всё
Saying 'this is a english test'
:Done
РЕДАКТИРОВАТЬ: я задал свой вопрос в gitub, и кто-то сказал:< /p>
Параметр пути espeak_Initialize должен указывать на каталог
espeak-ng-data или его родительский каталог. Альтернативно, вы
можете установить переменную среды ESPEAK_DATA_PATH так, чтобы она указывала на этот
каталог.
Поэтому я добавил эту строку ESPEAK_DATA_PATH=/usr/local/share/espeak-ng-data в файл /etc/environment, но ничего не произошло!
Также я попытался изменить переменную пути кода на эту (поскольку я знаю, что адрес верен) char *path="/usr/local/share/espeak -ng-data", но голоса снова нет!
Подробнее здесь: https://stackoverflow.com/questions/474 ... y-anything