fand ich diesen Code im Internet:Welche Zeilen sind notwendig, um espeak in unserem C/C++ Programm zu verwenden?
#include <string.h>
#include <malloc.h>
#include <espeak/speak_lib.h>
espeak_POSITION_TYPE position_type;
espeak_AUDIO_OUTPUT output;
char *path=NULL;
int Buflength = 1000, Options=0;
void* user_data;
t_espeak_callback *SynthCallback;
espeak_PARAMETER Parm;
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 = "en"; //Default to US English
espeak_VOICE voice;
memset(&voice, 0, sizeof(espeak_VOICE)); // Zero out the voice first
voice.languages = langNativeString;
voice.name = "US";
voice.variant = 2;
voice.gender = 1;
espeak_SetVoiceByProperties(&voice);
Size = strlen(text)+1;
espeak_Synth(text, Size, position, position_type, end_position, flags,
unique_identifier, user_data);
espeak_Synchronize();
return 0;
}
Ich möchte nur die espeak
liest meine Saiten in meinem Programm, und der obige Code kann es tun, aber ich möchte wissen, sind alle diese erforderlichen Code für dieser Zweck? (Ich meine, ist es möglich, es zu vereinfachen?)
*** Auch ich möchte wissen, gibt es eine Möglichkeit, espeak
als Systemfunktion zu verwenden? Ich meine system("espeak "something" ");
?
Scheint wie ein ziemlich geradliniges Beispiel? Sie müssen das Handbuch über das lesen, was diese Funktionen tun. Außerdem gibt es keine Headerdatei mit dem Namen malloc.h in der Sprache C. – Lundin
Wie viel einfacher könnte Es sieht ziemlich minimal aus. Sie scheinen völlig falsch zu verstehen, was 'system()' tut. Wenn Sie es von der Befehlsshell ausführen können, können Sie es als 'system() 'Argument übergeben - so einfach Beispiel muss sein geändert, um die in 'argv [1]' übergebene Zeichenfolge anstelle von 'text' zu verarbeiten. – Clifford