抛砖引玉, GreenBrowser 的语音控制工具

作者:tintinbt

用VB Script写了个小程序,实现了GreenBrowser的语音控制

(一)安装方法:
1.确定你电脑安装了miscrosoft语音支持,一般来说,安装了office xp 或office 2003的都带语音支持。
2.将rar文件解压到 greenbrowser\plugin\voicecontrol子目录下。
3.在GreenBrowser的工具->扩展工具栏->设置扩展工具栏点击,命令 右边的“ ...” 按钮,找到greenbrowser\plugin\voicecontrol\GB_VoiceControl.vbs 注意,文件类型选成 “所有文件*.*” 然后,点击 “插入”。
4.这样,在GreenBrowser的设置扩展工具栏就有一个VBS按钮。

点击这里下载插件,没有安装微软语音引擎的可以在以下地址下载到。

(二)使用方法:
点击 VoiceControl按钮,出现“你好,请吩咐...”对话框,对话筒进行语音输入,能接受的命令在GB_voicecommand.vbs中可以查到,有需要的话,请自行修改。

(三)VBS脚本内容
'==========================================================================
'VBS脚本内容

' Name: GB_VoiceControl.VBS
' Author: Figer
' Date : 2005-12-28
'==========================================================================
Dim WshShell 'WshShell对象提供对本地Windows程序的访问。
Dim ScriptComplete '程序结束标志
Dim SR '语音识别(Speech Recognition)对象
Dim Grammar '语音识别的命令语法对象

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 ; '获取语音识别引擎所识别的命令
'msgbox text

select case text
case "放大" WshShell.SendKeys "%{r}"
case "Home" WshShell.SendKeys "{Home}"
case "End" WshShell.SendKeys "{End}"
case "上一页" WshShell.SendKeys "{left}"
case "下一页" WshShell.SendKeys "{right}"
case "向上" WshShell.SendKeys "{pgup}"
case "向下" WshShell.SendKeys "{pgdn}"
case "左窗口" WshShell.SendKeys "^{left}"
case "右窗口" WshShell.SendKeys "^{right}"
case "关闭" &n bsp;WshShell.SendKeys "{F4}"
case "撤消" &n bsp;WshShell.SendKeys "%{z}"
case "刷新" &n bsp;WshShell.SendKeys "{F5}"
case "口令结束" ScriptComplete = true '程序结束标志
Case Else MsgBox "无此命令"
end select

End Sub

(四)Command.xlm的内容

<?xml version="1.0" encoding="gb2312" ?>
<GRAMMAR LANGID="804">
<RULE NAME="命令" TOPLEVEL="ACTIVE">
<L>
<P>口令结束</P>
<P>放大</P>
<P>Home</P>
<p>End</p>
<P>上一页</P>
<P>下一页</P>
<P>向上</P>
<P>向下</P>
<P>左窗口</P>
<P>右窗口</P>
<P>关闭</P>
<P>撤消</P>
<P>刷新</P>
</L>
</RULE>
</GRAMMAR>

返回帮助目录