summaryrefslogtreecommitdiff
path: root/tools/sapi_voice.vbs
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 /tools/sapi_voice.vbs
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 'tools/sapi_voice.vbs')
-rw-r--r--tools/sapi_voice.vbs17
1 files changed, 12 insertions, 5 deletions
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
39Dim oShell, oArgs, oEnv 39Dim oShell, oArgs, oEnv
40Dim oFSO, oStdIn, oStdOut 40Dim oFSO, oStdIn, oStdOut
41Dim bVerbose, bSAPI4, bList 41Dim bVerbose, bSAPI4, bList
42Dim bMSSP
42Dim sLanguage, sVoice, sSpeed, sName, sVendor 43Dim sLanguage, sVoice, sSpeed, sName, sVendor
43 44
44Dim oSpVoice, oSpFS ' SAPI5 voice and filestream 45Dim oSpVoice, oSpFS ' SAPI5 voice and filestream
@@ -60,6 +61,7 @@ bVerbose = (oEnv("V") <> "")
60 61
61Set oArgs = WScript.Arguments.Named 62Set oArgs = WScript.Arguments.Named
62bSAPI4 = oArgs.Exists("sapi4") 63bSAPI4 = oArgs.Exists("sapi4")
64bMSSP = oArgs.Exists("mssp")
63bList = oArgs.Exists("listvoices") 65bList = oArgs.Exists("listvoices")
64sLanguage = oArgs.Item("language") 66sLanguage = oArgs.Item("language")
65sVoice = oArgs.Item("voice") 67sVoice = 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
128Else ' SAPI5 130Else ' 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)