我正在尝试将一些字符串传递给espeak
它,它会通过以下代码说出它们:
#include <string.h>
#include <malloc.h>
#include <espeak/speak_lib.h>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
//#include <cstring>
using namespace std;
int main()
{
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[] = {"English"};
int i=0;
char text[11][200] {"hi ",
"This is...",
"you can ... ",
"I am ,,,, " ,
"you can ... ",
"hope you ... ",
"come in ... ",
"if you ... ",
"you will... ",
"I hope ... ",
"Take care "
};
unsigned int Size,position=0, end_position=0, flags=espeakCHARS_AUTO, *unique_identifier;
output = AUDIO_OUTPUT_PLAYBACK;
espeak_Initialize(output, Buflength, path, Options );
espeak_SetVoiceByName(Voice);
const char *langNativeString = "en_US";
espeak_VOICE voice= {0};
voice.languages = langNativeString;
voice.name = "US";
voice.variant = 2;
voice.gender = 1;
// Size = strlen(text)+1;
for (;;)
{
for(i=0; i<11; i++)
{
Size = sizeof(text[i]);
system("eog --fullscreen --disable-gallery --single-window 1.jpg &");
usleep(3000000);
espeak_Synth( text[i], Size, position, position_type, end_position, flags,
unique_identifier, user_data );
espeak_Synchronize( );
system("eog --fullscreen --disable-gallery --single-window 1.jpg &");
usleep(3000000);
}
//fflush(stdout);
}
return 0;
}
但我得到segmentation fault(core dumped)
错误。我试图调试代码,这是错误:Cannot open file: ../sysdeps/posix/system.c
发生在这行代码中:
system("eog --fullscreen --disable-gallery --single-window 1.jpg &");
。我怎样才能解决这个问题?