首页 电脑 电脑学堂 查看内容

关于vbs调用中文语音让你电脑听你的命令

2009-11-6 10:38 822 0

摘要: 如果你机器本身装了office的话,可能不需要装以下软件,我机器由于装的是openoffice,所以我提前装了 speechsdk51.exe CNSpeechPackage.msi 这两个软件...
关键词: nbsp 命令 CommandDictionar 语音 对象 WshShell ScriptComplete 程序 CreateObject 空当

如果你机器本身装了office的话,可能不需要装以下软件,我机器由于装的是openoffice,所以我提前装了 speechsdk51.exe CNSpeechPackage.msi 这两个软件。如果让电脑朗读,参考以前这篇文章: http://hi.baidu.com/myvbscript/blog/item/22c67059ed325a222934f071.html 或是装完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.CreateGrammarGrammar.CmdLoadFromFile "x.xml", SLODynamicGrammar.CmdSetRuleIdState 0, 1 MsgBox "你好,主人,请吩咐。" '等候你的语音命令(需要安装麦克风)'当识别出"命令结束"命令时程序结束DoWScript.Sleep 1000Loop 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
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部