'==========================================================================
' Name : CommandPC.VBS
' AUTHOR : sbl
' DATE : 2008-2-22
'==========================================================================
Dim CommandDictionary '命令字典對象
Dim WshShell 'WshShell對象提供對本地Windows程序的訪問。
Dim ScriptComplete '程序結束標誌
Dim SR '語音識別(Speech Recognition)對象
Dim Grammar '語音識別的命令語法對象
'初始化命令字典對象,可根據自己的需要添加命令
Set CommandDictionary = CreateObject("Scripting.Dictionary")
CommandDictionary.Add "上網","""D:\Program Files\Maxthon3\Bin\Maxthon.exe"""
CommandDictionary.Add "千千","""D:\Program Files\TTPlayer\TTPlayer.exe"""
CommandDictionary.Add "電影","""D:\Program Files\The KMPlayer\KMPlayer.exe"""
CommandDictionary.Add "記事本","notepad"
CommandDictionary.Add "聊天","""D:\Program Files\Tencent\QQ\Bin\QQ.exe"""
CommandDictionary.Add "雷雷","""D:\Program Files\Thunder Network\Thunder\Program\Thunder.exe"""
CommandDictionary.Add "大大","""C:\Program Files\Wopti\WoptiUtilities_CN.exe"""
Set WshShell = CreateObject("WScript.Shell") '創建WshShell對象
ScriptComplete = False '初始化程序結束標誌
'創建語音識別對象,調用由"Command.XML"所定義的語法,並啟動語音識別引擎
Set SR = WScript.CreateObject("SAPI.SpSharedRecoContext", "RecoContext_")
Set Grammar = SR.CreateGrammar
Grammar.CmdLoadFromFile "COMMAND.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
1.親給出的程序語句中出現了很多中文狀態下的逗號,也就是“,”,這會造成程序運行錯誤,需全部替換為英文狀態下的逗號——“,”,中文狀態下的逗號只允許出現在字符串中。
2.請確保程序的完整路徑全部正確,像傲遊瀏覽器,我使用的是傲遊3,程序的完整路徑是“D:\Program Files\Maxthon3\Bin\Maxthon.exe”,而KMPlayer,默認是裝在壹個叫“The KMPlayer”的文件夾中的,我這邊是“D:\Program Files\The KMPlayer\KMPlayer.exe”,迅雷的程序路徑也不對……風行、魔獸和CS我都沒裝,所以去掉了相應代碼。
3.由於此程序需要調用XML文件中所定義的命令語法,所以在將上面這段代碼粘帖保存為“.vbs”文件後,還需要保存壹個“Command.XML”文件,並且確保與VBS文件放在同壹個文件夾中。其中的代碼如下:
<?xml version="1.0" encoding="gb2312" ?>
<GRAMMAR LANGID="804">
<RULE NAME="命令" TOPLEVEL="ACTIVE">
<L>
<P>上網</P>
<P>千千</P>
<P>電影</P>
<P>記事本</P>
<P>聊天</P>
<P>雷雷</P>
<P>大大</P>
<P>結束</P>
</L>
</RULE>
</GRAMMAR>
4.字典對象中的中文命令有了些許變化,因為這樣的命令更容易被識別。為了提高語音識別的準確率,最好去“控制面板”→“語音”→“語音識別”選項卡中訓練壹下配置文件(這是XP下的路徑)。