summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/ttsbase.cpp4
-rw-r--r--rbutil/rbutilqt/base/ttsmssp.h44
-rw-r--r--rbutil/rbutilqt/rbutilqt.pri1
-rw-r--r--tools/sapi_voice.vbs17
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 @@
#include "ttsfestival.h"
#include "ttssapi.h"
#include "ttssapi4.h"
+#include "ttsmssp.h"
#include "ttsexes.h"
#if defined(Q_OS_MACX)
#include "ttscarbon.h"
@@ -47,6 +48,7 @@ void TTSBase::initTTSList()
ttsList["sapi4"] = tr("SAPI4 TTS Engine");
#endif
ttsList["sapi"] = tr("SAPI5 TTS Engine");
+ ttsList["mssp"] = tr("MS Speech Platform");
#endif
#if defined(Q_OS_LINUX)
ttsList["festival"] = tr("Festival TTS Engine");
@@ -66,6 +68,8 @@ TTSBase* TTSBase::getTTS(QObject* parent,QString ttsName)
tts = new TTSSapi(parent);
else if (ttsName == "sapi4")
tts = new TTSSapi4(parent);
+ else if (ttsName == "mssp")
+ tts = new TTSMssp(parent);
else
#elif defined(Q_OS_LINUX)
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 @@
+/***************************************************************************
+* __________ __ ___.
+* Open \______ \ ____ ____ | | _\_ |__ _______ ___
+* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+* \/ \/ \/ \/ \/
+*
+* Copyright (C) 2012 by Dominik Riebeling
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+* KIND, either express or implied.
+*
+****************************************************************************/
+
+#ifndef TTSMSSP_H
+#define TTSMSSP_H
+
+#include "ttsbase.h"
+#include "ttssapi.h"
+
+class TTSMssp: public TTSSapi
+{
+ //! Enum to identify the settings
+ Q_OBJECT
+ public:
+ TTSMssp(QObject* parent=NULL)
+ {
+ m_TTSTemplate = "cscript //nologo \"%exe\" "
+ "/language:%lang /voice:\"%voice\" "
+ "/speed:%speed \"%options\" /mssp";
+ m_TTSVoiceTemplate = "cscript //nologo \"%exe\" "
+ "/language:%lang /listvoices /mssp";
+ m_TTSType = "mssp";
+ }
+
+};
+
+#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 += \
base/ttsfestival.h \
base/ttssapi.h \
base/ttssapi4.h \
+ base/ttsmssp.h \
../../tools/wavtrim.h \
../../tools/voicefont.h \
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
Dim oShell, oArgs, oEnv
Dim oFSO, oStdIn, oStdOut
Dim bVerbose, bSAPI4, bList
+Dim bMSSP
Dim sLanguage, sVoice, sSpeed, sName, sVendor
Dim oSpVoice, oSpFS ' SAPI5 voice and filestream
@@ -60,6 +61,7 @@ bVerbose = (oEnv("V") <> "")
Set oArgs = WScript.Arguments.Named
bSAPI4 = oArgs.Exists("sapi4")
+bMSSP = oArgs.Exists("mssp")
bList = oArgs.Exists("listvoices")
sLanguage = oArgs.Item("language")
sVoice = oArgs.Item("voice")
@@ -121,20 +123,25 @@ If bSAPI4 Then
' Speed selection
If sSpeed <> "" Then oTTS.Speed = sSpeed
-
+
' Get vendor information
sVendor = oTTS.MfgName(nMode)
Else ' SAPI5
' Create SAPI5 object
- Set oSpVoice = CreateObject("SAPI.SpVoice")
+ If bMSSP Then
+ Set oSpVoice = CreateObject("speech.SpVoice")
+ Else
+ Set oSpVoice = CreateObject("SAPI.SpVoice")
+ End If
If Err.Number <> 0 Then
- WScript.StdErr.WriteLine "Error - could not get SpVoice object." _
+ WScript.StdErr.WriteLine "Error " & Err.Number _
+ & " - could not get SpVoice object." _
& " SAPI 5 not installed?"
WScript.Quit 1
End If
-
- If bList Then
+
+ If bList Then
' Just list available voices for the selected language
For Each nLangID in LangIDs(sLanguage)
sSelectString = "Language=" & Hex(nLangID)