diff options
Diffstat (limited to 'rbutil/rbutilqt/base/tts.h')
-rw-r--r-- | rbutil/rbutilqt/base/tts.h | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/rbutil/rbutilqt/base/tts.h b/rbutil/rbutilqt/base/tts.h deleted file mode 100644 index f665ed2865..0000000000 --- a/rbutil/rbutilqt/base/tts.h +++ /dev/null | |||
@@ -1,180 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2007 by Dominik Wenger | ||
10 | * $Id$ | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | |||
23 | #ifndef TTS_H | ||
24 | #define TTS_H | ||
25 | |||
26 | #include <QtCore> | ||
27 | #include <QProcess> | ||
28 | #include <QDateTime> | ||
29 | #include <QRegExp> | ||
30 | #include <QTcpSocket> | ||
31 | |||
32 | #include "encttssettings.h" | ||
33 | |||
34 | enum TTSStatus{ FatalError, NoError, Warning }; | ||
35 | |||
36 | class TTSBase : public EncTtsSettingInterface | ||
37 | { | ||
38 | Q_OBJECT | ||
39 | public: | ||
40 | TTSBase(QObject *parent); | ||
41 | //! Child class should generate a clip | ||
42 | virtual TTSStatus voice(QString text,QString wavfile, QString* errStr) =0; | ||
43 | //! Child class should do startup | ||
44 | virtual bool start(QString *errStr) =0; | ||
45 | //! child class should stop | ||
46 | virtual bool stop() =0; | ||
47 | |||
48 | // configuration | ||
49 | //! Child class should return true, when configuration is good | ||
50 | virtual bool configOk()=0; | ||
51 | //! Child class should generate and insertSetting(..) its settings | ||
52 | virtual void generateSettings() = 0; | ||
53 | //! Chlid class should commit the Settings to permanent storage | ||
54 | virtual void saveSettings() = 0; | ||
55 | |||
56 | // static functions | ||
57 | static TTSBase* getTTS(QObject* parent,QString ttsname); | ||
58 | static QStringList getTTSList(); | ||
59 | static QString getTTSName(QString tts); | ||
60 | |||
61 | private: | ||
62 | //inits the tts List | ||
63 | static void initTTSList(); | ||
64 | |||
65 | protected: | ||
66 | static QMap<QString,QString> ttsList; | ||
67 | }; | ||
68 | |||
69 | class TTSSapi : public TTSBase | ||
70 | { | ||
71 | //! Enum to identify the settings | ||
72 | enum ESettings | ||
73 | { | ||
74 | eLANGUAGE, | ||
75 | eVOICE, | ||
76 | eSPEED, | ||
77 | eOPTIONS | ||
78 | }; | ||
79 | |||
80 | Q_OBJECT | ||
81 | public: | ||
82 | TTSSapi(QObject* parent=NULL); | ||
83 | |||
84 | TTSStatus voice(QString text,QString wavfile, QString *errStr); | ||
85 | bool start(QString *errStr); | ||
86 | bool stop(); | ||
87 | |||
88 | // for settings | ||
89 | bool configOk(); | ||
90 | void generateSettings(); | ||
91 | void saveSettings(); | ||
92 | |||
93 | private slots: | ||
94 | void updateVoiceList(); | ||
95 | |||
96 | private: | ||
97 | QStringList getVoiceList(QString language); | ||
98 | |||
99 | QProcess* voicescript; | ||
100 | QTextStream* voicestream; | ||
101 | QString defaultLanguage; | ||
102 | |||
103 | QString m_TTSexec; | ||
104 | QString m_TTSOpts; | ||
105 | QString m_TTSTemplate; | ||
106 | QString m_TTSLanguage; | ||
107 | QString m_TTSVoice; | ||
108 | QString m_TTSSpeed; | ||
109 | bool m_sapi4; | ||
110 | }; | ||
111 | |||
112 | |||
113 | class TTSExes : public TTSBase | ||
114 | { | ||
115 | enum ESettings | ||
116 | { | ||
117 | eEXEPATH, | ||
118 | eOPTIONS | ||
119 | }; | ||
120 | |||
121 | Q_OBJECT | ||
122 | public: | ||
123 | TTSExes(QString name,QObject* parent=NULL); | ||
124 | TTSStatus voice(QString text,QString wavfile, QString *errStr); | ||
125 | bool start(QString *errStr); | ||
126 | bool stop() {return true;} | ||
127 | |||
128 | // for settings | ||
129 | void generateSettings(); | ||
130 | void saveSettings(); | ||
131 | bool configOk(); | ||
132 | |||
133 | private: | ||
134 | QString m_name; | ||
135 | QString m_TTSexec; | ||
136 | QString m_TTSOpts; | ||
137 | QString m_TTSTemplate; | ||
138 | QMap<QString,QString> m_TemplateMap; | ||
139 | }; | ||
140 | |||
141 | class TTSFestival : public TTSBase | ||
142 | { | ||
143 | enum ESettings | ||
144 | { | ||
145 | eSERVERPATH, | ||
146 | eCLIENTPATH, | ||
147 | eVOICE, | ||
148 | eVOICEDESC | ||
149 | }; | ||
150 | |||
151 | Q_OBJECT | ||
152 | public: | ||
153 | TTSFestival(QObject* parent=NULL) :TTSBase(parent) {} | ||
154 | ~TTSFestival(); | ||
155 | bool start(QString *errStr); | ||
156 | bool stop(); | ||
157 | TTSStatus voice(QString text,QString wavfile, QString *errStr); | ||
158 | |||
159 | // for settings | ||
160 | bool configOk(); | ||
161 | void generateSettings(); | ||
162 | void saveSettings(); | ||
163 | |||
164 | private slots: | ||
165 | void updateVoiceList(); | ||
166 | void updateVoiceDescription(); | ||
167 | void clearVoiceDescription(); | ||
168 | private: | ||
169 | QStringList getVoiceList(QString path =""); | ||
170 | QString getVoiceInfo(QString voice,QString path =""); | ||
171 | |||
172 | inline void startServer(QString path=""); | ||
173 | inline void ensureServerRunning(QString path=""); | ||
174 | QString queryServer(QString query, int timeout = -1,QString path=""); | ||
175 | QProcess serverProcess; | ||
176 | QStringList voices; | ||
177 | QMap<QString, QString> voiceDescriptions; | ||
178 | }; | ||
179 | |||
180 | #endif | ||