#include #include #include #include "ttsso_types.h" #include "lh_ttsso.h" #include "lh_inettypes.h" #define OUTBUFSIZE 2048 CHAR outputBuffer[OUTBUFSIZE]; typedef struct { FILE *fpText; FILE *fpPCM; } APPDATA; TTSRETVAL CbTtsSource(VOID *lpAppData, VOID *lpDataBuffer, U32 nBufferSize, U32 *lpDataSize) { printf("Called CbTtsSource\n"); return TTS_SUCCESS; } VOID *CbTtsDestination(VOID *lpAppData, U16 nDatatype, VOID *lpData, U32 nDataSize, U32 *pnBufferSize) { printf("Called CbTtsDestination\n"); if (nDataSize != 0) { return lpData; } else { *pnBufferSize = OUTBUFSIZE; return (VOID *)(outputBuffer); } } TTSRETVAL CbTtsEventNotify(VOID *pAppData, VOID *ppBuffer, U16 nDataSize, U16 event) { return 0; } int main(int argc, char *argv[]) { TTSRETVAL RetVal; HTTSINSTANCE hInst1; TTSPARM Parm; SpeakData speakdata; memset(&Parm, 0, sizeof(TTSPARM)); Parm.nLanguage = TTS_LANG_USE_STRING; Parm.nVoice = TTS_VOICE_USE_STRING; Parm.nOutputType = TTS_LINEAR_16BIT; Parm.nFrequency = TTS_FREQ_8KHZ; Parm.szLibLocation = "/usr/local/ScanSoft/RealSpeak_4.0/speech"; Parm.szLanguageString = "American English"; Parm.szVoiceString = "Donna"; Parm.nInputDataType = TTS_DATA_TYPE_TEXT; Parm.nOutputDataType = TTS_DATA_TYPE_PCM; Parm.cbFuncs.TtsSourceCb = CbTtsSource; Parm.cbFuncs.TtsDestCb = CbTtsDestination; Parm.cbFuncs.TtsEventCb = CbTtsEventNotify; Parm.cbFuncs.numCallbacks = 3; Parm.bCache = 0; printf("Initialize\n"); RetVal = TtsInitializeEx(&hInst1, NULL, &Parm, NULL); if(RetVal != 0) { printf("Error: TtsInitializeEx %d\n", RetVal); exit(1); } memset(&speakdata, 0, sizeof(SpeakData)); speakdata.lengthBytes = 5; speakdata.contentType = "hello"; printf("Process\n"); RetVal = TtsProcessEx(hInst1, &speakdata); if(RetVal != 0) { printf("Error: TtsProcessEx %d\n", RetVal); exit(1); } printf("Uninitialize\n"); RetVal = TtsUninitialize(hInst1); if(RetVal != 0) { printf("Error: TtsUninitialize %d\n", RetVal); exit(1); } return 0; }