summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/ttsbase.h3
-rw-r--r--rbutil/rbutilqt/base/ttscarbon.h1
-rw-r--r--rbutil/rbutilqt/base/ttsexes.h1
-rw-r--r--rbutil/rbutilqt/base/ttsfestival.h1
-rw-r--r--rbutil/rbutilqt/base/ttssapi.cpp26
-rw-r--r--rbutil/rbutilqt/base/ttssapi.h6
6 files changed, 33 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/base/ttsbase.h b/rbutil/rbutilqt/base/ttsbase.h
index c6bbdcfb0b..fdd2c98344 100644
--- a/rbutil/rbutilqt/base/ttsbase.h
+++ b/rbutil/rbutilqt/base/ttsbase.h
@@ -47,6 +47,7 @@ class TTSBase : public EncTtsSettingInterface
47 //! child class should stop 47 //! child class should stop
48 virtual bool stop() =0; 48 virtual bool stop() =0;
49 49
50 virtual QString voiceVendor(void) = 0;
50 // configuration 51 // configuration
51 //! Child class should return true, when configuration is good 52 //! Child class should return true, when configuration is good
52 virtual bool configOk()=0; 53 virtual bool configOk()=0;
@@ -60,7 +61,7 @@ class TTSBase : public EncTtsSettingInterface
60 // static functions 61 // static functions
61 static TTSBase* getTTS(QObject* parent,QString ttsname); 62 static TTSBase* getTTS(QObject* parent,QString ttsname);
62 static QStringList getTTSList(); 63 static QStringList getTTSList();
63 static QString getTTSName(QString tts); 64 static QString getTTSName(QString tts);
64 65
65 private: 66 private:
66 //inits the tts List 67 //inits the tts List
diff --git a/rbutil/rbutilqt/base/ttscarbon.h b/rbutil/rbutilqt/base/ttscarbon.h
index be7590240a..d06884e72a 100644
--- a/rbutil/rbutilqt/base/ttscarbon.h
+++ b/rbutil/rbutilqt/base/ttscarbon.h
@@ -45,6 +45,7 @@ class TTSCarbon : public TTSBase
45 bool start(QString *errStr); 45 bool start(QString *errStr);
46 //! child class should stop 46 //! child class should stop
47 bool stop() ; 47 bool stop() ;
48 QString voiceVendor(void) { return QString(); }
48 49
49 // configuration 50 // configuration
50 //! Child class should return true, when configuration is good 51 //! Child class should return true, when configuration is good
diff --git a/rbutil/rbutilqt/base/ttsexes.h b/rbutil/rbutilqt/base/ttsexes.h
index 04efb4ce50..7ab3757fd4 100644
--- a/rbutil/rbutilqt/base/ttsexes.h
+++ b/rbutil/rbutilqt/base/ttsexes.h
@@ -38,6 +38,7 @@ class TTSExes : public TTSBase
38 TTSStatus voice(QString text, QString wavfile, QString *errStr); 38 TTSStatus voice(QString text, QString wavfile, QString *errStr);
39 bool start(QString *errStr); 39 bool start(QString *errStr);
40 bool stop() {return true;} 40 bool stop() {return true;}
41 QString voiceVendor(void) { return QString(); }
41 Capabilities capabilities(); 42 Capabilities capabilities();
42 43
43 // for settings 44 // for settings
diff --git a/rbutil/rbutilqt/base/ttsfestival.h b/rbutil/rbutilqt/base/ttsfestival.h
index 6c64c61532..5e9f5573f5 100644
--- a/rbutil/rbutilqt/base/ttsfestival.h
+++ b/rbutil/rbutilqt/base/ttsfestival.h
@@ -42,6 +42,7 @@ class TTSFestival : public TTSBase
42 bool start(QString *errStr); 42 bool start(QString *errStr);
43 bool stop(); 43 bool stop();
44 TTSStatus voice(QString text,QString wavfile, QString *errStr); 44 TTSStatus voice(QString text,QString wavfile, QString *errStr);
45 QString voiceVendor(void) { return QString(); }
45 Capabilities capabilities(); 46 Capabilities capabilities();
46 47
47 // for settings 48 // for settings
diff --git a/rbutil/rbutilqt/base/ttssapi.cpp b/rbutil/rbutilqt/base/ttssapi.cpp
index cd9ced8083..cb7d8a5057 100644
--- a/rbutil/rbutilqt/base/ttssapi.cpp
+++ b/rbutil/rbutilqt/base/ttssapi.cpp
@@ -26,8 +26,9 @@ TTSSapi::TTSSapi(QObject* parent) : TTSBase(parent)
26{ 26{
27 m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\"" 27 m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\""
28 " /speed:%speed \"%options\""; 28 " /speed:%speed \"%options\"";
29 defaultLanguage ="english"; 29 defaultLanguage = "english";
30 m_sapi4 =false; 30 m_sapi4 = false;
31 m_started = false;
31} 32}
32 33
33TTSBase::Capabilities TTSSapi::capabilities() 34TTSBase::Capabilities TTSSapi::capabilities()
@@ -138,9 +139,29 @@ bool TTSSapi::start(QString *errStr)
138 voicestream = new QTextStream(voicescript); 139 voicestream = new QTextStream(voicescript);
139 voicestream->setCodec("UTF16-LE"); 140 voicestream->setCodec("UTF16-LE");
140 141
142 m_started = true;
141 return true; 143 return true;
142} 144}
143 145
146QString TTSSapi::voiceVendor(void)
147{
148 bool keeprunning = m_started;
149 QString vendor;
150 if(!m_started) {
151 QString error;
152 start(&error);
153 }
154 *voicestream << "QUERY\tVENDOR\r\n";
155 voicestream->flush();
156 while((vendor = voicestream->readLine()).isEmpty())
157 QCoreApplication::processEvents();
158
159 qDebug() << "[TTSSAPI] TTS vendor:" << vendor;
160 if(!keeprunning) {
161 stop();
162 }
163 return vendor;
164}
144 165
145QStringList TTSSapi::getVoiceList(QString language) 166QStringList TTSSapi::getVoiceList(QString language)
146{ 167{
@@ -226,6 +247,7 @@ bool TTSSapi::stop()
226 | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup 247 | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
227 | QFile::ReadOther | QFile::WriteOther | QFile::ExeOther ); 248 | QFile::ReadOther | QFile::WriteOther | QFile::ExeOther );
228 QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); 249 QFile::remove(QDir::tempPath() +"/sapi_voice.vbs");
250 m_started = false;
229 return true; 251 return true;
230} 252}
231 253
diff --git a/rbutil/rbutilqt/base/ttssapi.h b/rbutil/rbutilqt/base/ttssapi.h
index 6070728a79..1cdf030884 100644
--- a/rbutil/rbutilqt/base/ttssapi.h
+++ b/rbutil/rbutilqt/base/ttssapi.h
@@ -42,6 +42,7 @@ class TTSSapi : public TTSBase
42 TTSStatus voice(QString text,QString wavfile, QString *errStr); 42 TTSStatus voice(QString text,QString wavfile, QString *errStr);
43 bool start(QString *errStr); 43 bool start(QString *errStr);
44 bool stop(); 44 bool stop();
45 QString voiceVendor(void);
45 Capabilities capabilities(); 46 Capabilities capabilities();
46 47
47 // for settings 48 // for settings
@@ -49,8 +50,8 @@ class TTSSapi : public TTSBase
49 void generateSettings(); 50 void generateSettings();
50 void saveSettings(); 51 void saveSettings();
51 52
52 private slots: 53 private slots:
53 void updateVoiceList(); 54 void updateVoiceList();
54 55
55 private: 56 private:
56 QStringList getVoiceList(QString language); 57 QStringList getVoiceList(QString language);
@@ -66,6 +67,7 @@ class TTSSapi : public TTSBase
66 QString m_TTSVoice; 67 QString m_TTSVoice;
67 QString m_TTSSpeed; 68 QString m_TTSSpeed;
68 bool m_sapi4; 69 bool m_sapi4;
70 bool m_started;
69}; 71};
70 72
71 73