diff options
-rw-r--r-- | rbutil/rbutilqt/base/ttsbase.cpp | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/ttsmssp.h | 44 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.pri | 1 | ||||
-rw-r--r-- | tools/sapi_voice.vbs | 17 |
4 files changed, 61 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/base/ttsbase.cpp b/rbutil/rbutilqt/base/ttsbase.cpp index 5955f825b4..ae2a78f606 100644 --- a/rbutil/rbutilqt/base/ttsbase.cpp +++ b/rbutil/rbutilqt/base/ttsbase.cpp | |||
@@ -21,6 +21,7 @@ | |||
21 | #include "ttsfestival.h" | 21 | #include "ttsfestival.h" |
22 | #include "ttssapi.h" | 22 | #include "ttssapi.h" |
23 | #include "ttssapi4.h" | 23 | #include "ttssapi4.h" |
24 | #include "ttsmssp.h" | ||
24 | #include "ttsexes.h" | 25 | #include "ttsexes.h" |
25 | #if defined(Q_OS_MACX) | 26 | #if defined(Q_OS_MACX) |
26 | #include "ttscarbon.h" | 27 | #include "ttscarbon.h" |
@@ -47,6 +48,7 @@ void TTSBase::initTTSList() | |||
47 | ttsList["sapi4"] = tr("SAPI4 TTS Engine"); | 48 | ttsList["sapi4"] = tr("SAPI4 TTS Engine"); |
48 | #endif | 49 | #endif |
49 | ttsList["sapi"] = tr("SAPI5 TTS Engine"); | 50 | ttsList["sapi"] = tr("SAPI5 TTS Engine"); |
51 | ttsList["mssp"] = tr("MS Speech Platform"); | ||
50 | #endif | 52 | #endif |
51 | #if defined(Q_OS_LINUX) | 53 | #if defined(Q_OS_LINUX) |
52 | ttsList["festival"] = tr("Festival TTS Engine"); | 54 | ttsList["festival"] = tr("Festival TTS Engine"); |
@@ -66,6 +68,8 @@ TTSBase* TTSBase::getTTS(QObject* parent,QString ttsName) | |||
66 | tts = new TTSSapi(parent); | 68 | tts = new TTSSapi(parent); |
67 | else if (ttsName == "sapi4") | 69 | else if (ttsName == "sapi4") |
68 | tts = new TTSSapi4(parent); | 70 | tts = new TTSSapi4(parent); |
71 | else if (ttsName == "mssp") | ||
72 | tts = new TTSMssp(parent); | ||
69 | else | 73 | else |
70 | #elif defined(Q_OS_LINUX) | 74 | #elif defined(Q_OS_LINUX) |
71 | if (ttsName == "festival") | 75 | if (ttsName == "festival") |
diff --git a/rbutil/rbutilqt/base/ttsmssp.h b/rbutil/rbutilqt/base/ttsmssp.h new file mode 100644 index 0000000000..72300e8f79 --- /dev/null +++ b/rbutil/rbutilqt/base/ttsmssp.h | |||
@@ -0,0 +1,44 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2012 by Dominik Riebeling | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef TTSMSSP_H | ||
22 | #define TTSMSSP_H | ||
23 | |||
24 | #include "ttsbase.h" | ||
25 | #include "ttssapi.h" | ||
26 | |||
27 | class TTSMssp: public TTSSapi | ||
28 | { | ||
29 | //! Enum to identify the settings | ||
30 | Q_OBJECT | ||
31 | public: | ||
32 | TTSMssp(QObject* parent=NULL) | ||
33 | { | ||
34 | m_TTSTemplate = "cscript //nologo \"%exe\" " | ||
35 | "/language:%lang /voice:\"%voice\" " | ||
36 | "/speed:%speed \"%options\" /mssp"; | ||
37 | m_TTSVoiceTemplate = "cscript //nologo \"%exe\" " | ||
38 | "/language:%lang /listvoices /mssp"; | ||
39 | m_TTSType = "mssp"; | ||
40 | } | ||
41 | |||
42 | }; | ||
43 | |||
44 | #endif | ||
diff --git a/rbutil/rbutilqt/rbutilqt.pri b/rbutil/rbutilqt/rbutilqt.pri index b6aac3bb43..5ee1f7b9d2 100644 --- a/rbutil/rbutilqt/rbutilqt.pri +++ b/rbutil/rbutilqt/rbutilqt.pri | |||
@@ -114,6 +114,7 @@ HEADERS += \ | |||
114 | base/ttsfestival.h \ | 114 | base/ttsfestival.h \ |
115 | base/ttssapi.h \ | 115 | base/ttssapi.h \ |
116 | base/ttssapi4.h \ | 116 | base/ttssapi4.h \ |
117 | base/ttsmssp.h \ | ||
117 | ../../tools/wavtrim.h \ | 118 | ../../tools/wavtrim.h \ |
118 | ../../tools/voicefont.h \ | 119 | ../../tools/voicefont.h \ |
119 | base/voicefile.h \ | 120 | base/voicefile.h \ |
diff --git a/tools/sapi_voice.vbs b/tools/sapi_voice.vbs index a8b98ac924..c6c2c69372 100644 --- a/tools/sapi_voice.vbs +++ b/tools/sapi_voice.vbs | |||
@@ -39,6 +39,7 @@ Const STDERR = 2 | |||
39 | Dim oShell, oArgs, oEnv | 39 | Dim oShell, oArgs, oEnv |
40 | Dim oFSO, oStdIn, oStdOut | 40 | Dim oFSO, oStdIn, oStdOut |
41 | Dim bVerbose, bSAPI4, bList | 41 | Dim bVerbose, bSAPI4, bList |
42 | Dim bMSSP | ||
42 | Dim sLanguage, sVoice, sSpeed, sName, sVendor | 43 | Dim sLanguage, sVoice, sSpeed, sName, sVendor |
43 | 44 | ||
44 | Dim oSpVoice, oSpFS ' SAPI5 voice and filestream | 45 | Dim oSpVoice, oSpFS ' SAPI5 voice and filestream |
@@ -60,6 +61,7 @@ bVerbose = (oEnv("V") <> "") | |||
60 | 61 | ||
61 | Set oArgs = WScript.Arguments.Named | 62 | Set oArgs = WScript.Arguments.Named |
62 | bSAPI4 = oArgs.Exists("sapi4") | 63 | bSAPI4 = oArgs.Exists("sapi4") |
64 | bMSSP = oArgs.Exists("mssp") | ||
63 | bList = oArgs.Exists("listvoices") | 65 | bList = oArgs.Exists("listvoices") |
64 | sLanguage = oArgs.Item("language") | 66 | sLanguage = oArgs.Item("language") |
65 | sVoice = oArgs.Item("voice") | 67 | sVoice = oArgs.Item("voice") |
@@ -121,20 +123,25 @@ If bSAPI4 Then | |||
121 | 123 | ||
122 | ' Speed selection | 124 | ' Speed selection |
123 | If sSpeed <> "" Then oTTS.Speed = sSpeed | 125 | If sSpeed <> "" Then oTTS.Speed = sSpeed |
124 | 126 | ||
125 | ' Get vendor information | 127 | ' Get vendor information |
126 | sVendor = oTTS.MfgName(nMode) | 128 | sVendor = oTTS.MfgName(nMode) |
127 | 129 | ||
128 | Else ' SAPI5 | 130 | Else ' SAPI5 |
129 | ' Create SAPI5 object | 131 | ' Create SAPI5 object |
130 | Set oSpVoice = CreateObject("SAPI.SpVoice") | 132 | If bMSSP Then |
133 | Set oSpVoice = CreateObject("speech.SpVoice") | ||
134 | Else | ||
135 | Set oSpVoice = CreateObject("SAPI.SpVoice") | ||
136 | End If | ||
131 | If Err.Number <> 0 Then | 137 | If Err.Number <> 0 Then |
132 | WScript.StdErr.WriteLine "Error - could not get SpVoice object." _ | 138 | WScript.StdErr.WriteLine "Error " & Err.Number _ |
139 | & " - could not get SpVoice object." _ | ||
133 | & " SAPI 5 not installed?" | 140 | & " SAPI 5 not installed?" |
134 | WScript.Quit 1 | 141 | WScript.Quit 1 |
135 | End If | 142 | End If |
136 | 143 | ||
137 | If bList Then | 144 | If bList Then |
138 | ' Just list available voices for the selected language | 145 | ' Just list available voices for the selected language |
139 | For Each nLangID in LangIDs(sLanguage) | 146 | For Each nLangID in LangIDs(sLanguage) |
140 | sSelectString = "Language=" & Hex(nLangID) | 147 | sSelectString = "Language=" & Hex(nLangID) |