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

作者: 许泽博 发布: 2015/2/11 分类: 电脑 阅读: 次 查看评论

如果你机器本身装了office的话,可能不需要装以下软件,我机器由于装的是openoffice,所以我提前装了

speechsdk51.exe

CNSpeechPackage.msi

这两个软件。如果让电脑朗读,参考以前这篇文章:

http://hi.baidu.com/myvbscript/blog/item/22c67059ed325a222934f071.html

或是装完speechsdk51.exe之后可以参考

C:Program FilesMicrosoft Speech SDK 5.1SamplesScriptsSimpleTTSSimpleTTS.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 FilesInternet Exploreriexplore.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


==================================

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


« 上一篇下一篇 » 原创文章,转载请注明出处!标签: 电脑  

评论列表:

说两句吧:

必填

选填

选填

必填,不填不让过哦,嘻嘻。

记住我,下次回复时不用重新输入个人信息

站内公告
欢迎进入我的博客,文章主要来源于网络,若有涉及版权问题,请您及时联系我,也希望我的博客能对您有所帮助!
控制面板
您好,欢迎到访网站!
  [查看权限]
用户注册
纪念日倒计时



网站分类
友情链接
Tags列表