summaryrefslogtreecommitdiff
path: root/rbutil
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-09-09 11:31:05 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-09-09 12:07:53 +0200
commita1b780e670a0a3c7e7a32b7e62cf8d3e371d6d4b (patch)
tree41ca343074c02db94df553ee302cf5b414a13a2c /rbutil
parent469a614349070eb5731acf96988186b2a95493ad (diff)
downloadrockbox-a1b780e670a0a3c7e7a32b7e62cf8d3e371d6d4b.tar.gz
rockbox-a1b780e670a0a3c7e7a32b7e62cf8d3e371d6d4b.zip
Add support for Microsoft Speech Platform.
MSSP is accessible via vbs by simply changing the object to be used (both SAPI5 and MSSP use the ISpVoice COM interface). Add command line parameter to sapi_voice.vbs to switch the COM object used, and add the necessary implementation of the SAPI class to Rockbox Utility. Important: you will need to install the Speech Runtime separately and install the version matching the bitsize of Rockbox Utility. I.e. you will need to install the x86 version even on a x64 machine (unless you build a 64bit binary of Rockbox Utility). Change-Id: If760cd69c556c17a2ae539965d0941d16fdc10e1
Diffstat (limited to 'rbutil')
-rw-r--r--rbutil/rbutilqt/base/ttsbase.cpp4
-rw-r--r--rbutil/rbutilqt/base/ttsmssp.h44
-rw-r--r--rbutil/rbutilqt/rbutilqt.pri1
3 files changed, 49 insertions, 0 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
27class 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 \