如果你機器本身裝了office的話,可能不需要裝以下軟體,我機器由於裝的是openoffice,所以我提前裝了
speechsdk51.exe
CNSpeechPackage.msi
這兩個軟體。如果讓電腦朗讀,參考下面的代碼
複製代碼 代碼如下:ReadAllTextFile=CreateObject("Scripting.FileSystemObject").OpenTextFile(Wscript.Arguments(0), 1).ReadAll
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立變數。
Set regEx = New RegExp ' 建立Regex。
regEx.Pattern = patrn ' 設定模式。
regEx.IgnoreCase = True ' 設定是否區分大小寫。
regEx.Global = True ' 設定全程可用性。
Set Matches = regEx.Execute(strng) ' 執行搜尋。
For Each Match in Matches ' 遍曆 Matches 集合。
RetStr = RetStr & Match.value&" "
RetStr = RetStr & vbCRLF
Next
RegExpTest = RetStr
End Function
Set objVoice = CreateObject("SAPI.SpVoice")
Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Simplified Chinese").Item(0)
objVoice.Rate = 3 '速度:-10,10 0
objVoice.Volume = 100 '聲音:0,100 100
objVoice.Speak RegExpTest("[\u4e00-\u9fa5]", ReadAllTextFile)
或是裝完speechsdk51.exe之後可以參考
C:\Program Files\Microsoft Speech SDK 5.1\Samples\Scripts\SimpleTTS\SimpleTTS.html這個檔案。
如果讓電腦聽你的命令,下邊是vbs代碼 複製代碼 代碼如下:'==========================================================================
' Name : CommandPC.VBS
' AUTHOR : HUAYING
' DATE : 2005-1-31
'==========================================================================
Dim CommandDictionary '命令字典對象
Dim WshShell 'WshShell對象提供對本地Windows程式的訪問。
Dim ScriptComplete '程式結束標誌
Dim SR '語音辨識(Speech Recognition)對象
Dim Grammar '語音辨識的命令文法對象
'初始化命令字典對象,可根據自己的需要添加命令
Set CommandDictionary = CreateObject("Scripting.Dictionary")
CommandDictionary.Add "上網","""C:\Program Files\Internet Explorer\iexplore.exe""" '注意雙引號的數目
CommandDictionary.Add "計算機", "calc"
CommandDictionary.Add "記事本", "notepad"
CommandDictionary.Add "空當接龍", "freecell"
Set WshShell = CreateObject("WScript.Shell") '建立WshShell對象
ScriptComplete = False '初始化程式結束標誌
'建立語音辨識對象,調用由"Command.XML"所定義的文法,並啟動語音辨識引擎
Set SR = WScript.CreateObject("SAPI.SpSharedRecoContext", "RecoContext_")
Set Grammar = SR.CreateGrammar
Grammar.CmdLoadFromFile "x.xml", SLODynamic
Grammar.CmdSetRuleIdState 0, 1
MsgBox "你好,主人,請吩咐。"
'等候你的語音命令(需要安裝麥克風)
'當識別出"命令結束"命令時程式結束
Do
WScript.Sleep 1000
Loop Until ScriptComplete
MsgBox "歡迎再跟我說話,再見!"
'你的語音命令被識別
Sub RecoContext_Recognition(ByVal StreamNumber,ByVal StreamPosition,ByVal RecognitionType,ByVal Result )
Text = Result.PhraseInfo.GetText '擷取語音辨識引擎所識別的命令
If Text <> "命令結束" Then
WshShell.Run CommandDictionary.Item(Text) '由WshShell對象Run方法執行你的命令
Else
ScriptComplete = true '程式結束標誌
End If
End Sub
==================================
x.xml源碼 複製代碼 代碼如下:<?xml version="1.0" encoding="gb2312" ?>
<GRAMMAR LANGID="804">
<RULE NAME="命令" TOPLEVEL="ACTIVE">
<L>
<P>上網</P>
<P>計算機</P>
<P>記事本</P>
<P>空當接龍</P>
<P>命令結束</P>
</L>
</RULE>
</GRAMMAR>
========在中文的機器上直接運行這個vbs,很有可能出現0x80045052錯誤,解決辦法:
控制台---語音-語音認別選項卡------------》改成Microsoft Simplified Chinese