文档章节

基于vbs通过语音向电脑发送命令

孟飞阳
 孟飞阳
发布于 2016/07/09 10:47
字数 587
阅读 18
收藏 1
vbs

1、程序源码

将以下配置文件另存为x.xml,vbs源码另存为文件,双击即可运行。运行前如果您的电脑没有启用麦克风,则会提示您开启麦克风,按顺序操作即可。 

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

 

2、发送语音指令

(1)当界面弹出“你好,主人,请吩咐”提示时,点击确定,并可以向您的电脑发送指令了。

(2)向您的麦克风说出“记事本”三个字,这时计算机就会开启记事本程序。好玩吧。以下是我本地的电脑截图:

(3)当您说出“命令结束”四个字时,就会弹出“欢迎在跟我说话,再见”的提示。

点击确定后,即退出了程序。

© 著作权归作者所有

孟飞阳
粉丝 212
博文 1005
码字总数 552521
作品 5
朝阳
个人站长
私信 提问
你的CAD图纸被盗了吗?

  本次分析的样本是CAD脚本动态生产的一种VBS蠕虫病毒,大概10多年前就已经开始通过E-Mail传播此样,而如今这类病毒依旧活跃着,浮浮沉沉,生生不息。   蠕虫病毒简介:   蠕虫病毒是一...

FreeBuf
2018/01/23
0
0
win10的kms激活命令

win10也与之前的windows版本一样,有家庭版、专业版、企业版等各个版本,而win10的激活方式也有Retail零售版激活、oem版激活、VOL版激活(包括kms激活等方式 )等方式,其中oem是根据主板信息...

zengwj1949
2017/11/13
0
0
解析针对巴西用户的恶意软件及垃圾邮件行动

     FireEye实验室最近发现了几起针对巴西公司的大范围masepam(恶意软件垃圾邮件)行动,旨在传播银行木马。我们将这些行动称为Metamorfo。在行动的各个阶段中,我们观察到使用多种策略...

嘶吼RoarTalk
2018/04/30
0
0
华为交换机5700网络模式 配置 ip电话

任性都是在“山炮”行为下发生的 公司传统的电话还是传统的座机电话,于是“牛犊子”出了个点子。来掩饰本来在公司的不作为,生命在于折腾,一点都不假,于是在公司总部的要求下,本地公司也...

2013yang
2017/04/24
0
0
黑客利用病毒挖门罗币,已获利60余万

      一、 概述   近日,火绒安全团队截获一批蠕虫病毒。这些病毒通过U盘、移动硬盘等移动介质及网络驱动器传播,入侵电脑后,会远程下载各类病毒模块,以牟取利益。这些被下载的有盗...

FreeBuf
2018/06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
2
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部