diff options
Diffstat (limited to 'rbutil/rbutilqt/tts.cpp')
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp index c603e148f1..76eacd54ca 100644 --- a/rbutil/rbutilqt/tts.cpp +++ b/rbutil/rbutilqt/tts.cpp | |||
@@ -246,6 +246,10 @@ bool TTSSapi::start(QString *errStr) | |||
246 | if(*errStr != "") | 246 | if(*errStr != "") |
247 | return false; | 247 | return false; |
248 | } | 248 | } |
249 | |||
250 | voicestream = new QTextStream(voicescript); | ||
251 | voicestream->setCodec("UTF16-LE"); | ||
252 | |||
249 | return true; | 253 | return true; |
250 | } | 254 | } |
251 | 255 | ||
@@ -272,9 +276,10 @@ QStringList TTSSapi::getVoiceList(QString language) | |||
272 | qDebug() << "init" << execstring; | 276 | qDebug() << "init" << execstring; |
273 | voicescript = new QProcess(NULL); | 277 | voicescript = new QProcess(NULL); |
274 | voicescript->start(execstring); | 278 | voicescript->start(execstring); |
279 | qDebug() << "wait for started"; | ||
275 | if(!voicescript->waitForStarted()) | 280 | if(!voicescript->waitForStarted()) |
276 | return result; | 281 | return result; |
277 | 282 | voicescript->closeWriteChannel(); | |
278 | voicescript->waitForReadyRead(); | 283 | voicescript->waitForReadyRead(); |
279 | 284 | ||
280 | QString dataRaw = voicescript->readAllStandardError().data(); | 285 | QString dataRaw = voicescript->readAllStandardError().data(); |
@@ -303,17 +308,20 @@ bool TTSSapi::voice(QString text,QString wavfile) | |||
303 | { | 308 | { |
304 | QString query = "SPEAK\t"+wavfile+"\t"+text+"\r\n"; | 309 | QString query = "SPEAK\t"+wavfile+"\t"+text+"\r\n"; |
305 | qDebug() << "voicing" << query; | 310 | qDebug() << "voicing" << query; |
306 | voicescript->write(query.toLocal8Bit()); | 311 | *voicestream << query; |
307 | voicescript->write("SYNC\tbla\r\n"); | 312 | *voicestream << "SYNC\tbla\r\n"; |
313 | voicestream->flush(); | ||
308 | voicescript->waitForReadyRead(); | 314 | voicescript->waitForReadyRead(); |
309 | return true; | 315 | return true; |
310 | } | 316 | } |
311 | 317 | ||
312 | bool TTSSapi::stop() | 318 | bool TTSSapi::stop() |
313 | { | 319 | { |
314 | QString query = "QUIT\r\n"; | 320 | |
315 | voicescript->write(query.toLocal8Bit()); | 321 | *voicestream << "QUIT\r\n"; |
322 | voicestream->flush(); | ||
316 | voicescript->waitForFinished(); | 323 | voicescript->waitForFinished(); |
324 | delete voicestream; | ||
317 | delete voicescript; | 325 | delete voicescript; |
318 | QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner | 326 | QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner |
319 | |QFile::ReadUser| QFile::WriteUser| QFile::ExeUser | 327 | |QFile::ReadUser| QFile::WriteUser| QFile::ExeUser |