基於vbs經過語音向電腦發送命令

一、程序源碼

將如下配置文件另存爲x.xml,vbs源碼另存爲文件,雙擊便可運行。運行前若是您的電腦沒有啓用麥克風,則會提示您開啓麥克風,按順序操做便可。 oop

(1)vbs源碼

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

(2)命令配置文件

<?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>

 

二、發送語音指令

(1)當界面彈出「你好,主人,請吩咐」提示時,點擊肯定,並能夠向您的電腦發送指令了。spa

(2)向您的麥克風說出「記事本」三個字,這時計算機就會開啓記事本程序。好玩吧。如下是我本地的電腦截圖:code

(3)當您說出「命令結束」四個字時,就會彈出「歡迎在跟我說話,再見」的提示。xml

點擊肯定後,即退出了程序。對象

相關文章
相關標籤/搜索