Index: rbutil/rbutilqt/rbutilqt.pro =================================================================== --- rbutil/rbutilqt/rbutilqt.pro (Revision 21505) +++ rbutil/rbutilqt/rbutilqt.pro (Arbeitskopie) @@ -151,7 +151,7 @@ } !dbg { CONFIG += release thread qt - DEFINES += QT_NO_DEBUG_OUTPUT + DEFINES -= QT_NO_DEBUG_OUTPUT message("release") } Index: rbutil/rbutilqt/base/tts.cpp =================================================================== --- rbutil/rbutilqt/base/tts.cpp (Revision 21505) +++ rbutil/rbutilqt/base/tts.cpp (Arbeitskopie) @@ -36,10 +36,13 @@ ttsList["espeak"] = "Espeak TTS Engine"; ttsList["flite"] = "Flite TTS Engine"; ttsList["swift"] = "Swift TTS Engine"; + ttsList["sapi-spk"] = "Open-Sapi TTS CLI"; #if defined(Q_OS_WIN) ttsList["sapi"] = "Sapi TTS Engine"; + #endif #if defined(Q_OS_LINUX) + ttsList["open-sapi"] = "Open - Sapi"; ttsList["festival"] = "Festival TTS Engine"; #endif } @@ -63,6 +66,11 @@ tts = new TTSFestival(parent); return tts; } + else if(ttsName == "open-sapi") + { + tts = new TTSOpenSapi(parent); + return tts; + } else #endif if (true) // fix for OS other than WIN or LINUX @@ -100,8 +108,8 @@ m_TemplateMap["espeak"] = "\"%exe\" %options -w \"%wavfile\" \"%text\""; m_TemplateMap["flite"] = "\"%exe\" %options -o \"%wavfile\" -t \"%text\""; - m_TemplateMap["swift"] = "\"%exe\" %options -o \"%wavfile\" \"%text\""; - + m_TemplateMap["swift"] = "\"%exe\" %options -o \"%wavfile\" \"%text\""; + m_TemplateMap["sapi-spk"] = "\"%exe\" -o \"%wavfile\" -t \"%text\" \"@@\""; } void TTSExes::generateSettings() @@ -664,3 +672,55 @@ } +/********************************************************************* +* OpenSapi +**********************************************************************/ +TTSOpenSapi::TTSOpenSapi(QObject* parent) : TTSBase(parent) +{ +} + +void TTSOpenSapi::generateSettings() +{ +} + +void TTSOpenSapi::saveSettings() +{ +} + +bool TTSOpenSapi::start(QString *errStr) +{ + m_clientSocket.connectToHost("localhost",5491); + if(!m_clientSocket.waitForConnected(2000)) + { + *errStr = tr("Could not connect to open-sapi server"); + return false; + } + + return true; +} + +bool TTSOpenSapi::stop() +{ + m_clientSocket.disconnectFromHost(); + return true; +} + +TTSStatus TTSOpenSapi::voice(QString text,QString wavfile, QString *errStr) +{ + (void) errStr; + + //set outfile + QString message = "outFile "+wavfile+"\n"; + m_clientSocket.write(message.toUtf8()); + message = "speakMe "+text+"\n"; + m_clientSocket.write(message.toUtf8()); + m_clientSocket.flush(); + + return NoError; + +} + +bool TTSOpenSapi::configOk() +{ + return true; +} Index: rbutil/rbutilqt/base/tts.h =================================================================== --- rbutil/rbutilqt/base/tts.h (Revision 21505) +++ rbutil/rbutilqt/base/tts.h (Arbeitskopie) @@ -177,4 +177,24 @@ QMap voiceDescriptions; }; +class TTSOpenSapi : public TTSBase +{ + + Q_OBJECT + public: + TTSOpenSapi(QObject* parent=NULL); + TTSStatus voice(QString text,QString wavfile, QString *errStr); + bool start(QString *errStr); + bool stop(); + + // for settings + void generateSettings(); + void saveSettings(); + bool configOk(); + + private: + QTcpSocket m_clientSocket; +}; + + #endif Index: rbutil/rbutilqt/talkfile.cpp =================================================================== --- rbutil/rbutilqt/talkfile.cpp (Revision 21505) +++ rbutil/rbutilqt/talkfile.cpp (Arbeitskopie) @@ -307,6 +307,9 @@ QString wavfilename = QDir::tempPath()+ "/"+ toEncode[i] + ".wav"; QString filename = QDir::tempPath()+ "/"+ toEncode[i] + ".talk"; + if(QFileInfo(wavfilename).exists() == false) + m_logger->addItem(tr(" %1 doesn exist").arg(wavfilename), LOGERROR); + if(!m_enc->encode(wavfilename,filename)) { m_logger->addItem(tr("Encoding of %1 failed").arg(filename), LOGERROR); @@ -446,6 +449,7 @@ QCoreApplication::processEvents(); } + return true; }