diff options
Diffstat (limited to 'rbutil/rbutilqt')
-rw-r--r-- | rbutil/rbutilqt/base/ttsbase.h | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttscarbon.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttsexes.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttsfestival.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttssapi.cpp | 26 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttssapi.h | 6 |
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 | ||
33 | TTSBase::Capabilities TTSSapi::capabilities() | 34 | TTSBase::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 | ||
146 | QString 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 | ||
145 | QStringList TTSSapi::getVoiceList(QString language) | 166 | QStringList 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 | ||