快速业务通道

vbs 调用中文语音让你电脑听你的命令的实现代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
如果你机器本身装了office的话,可能不需要装以下软件,我机器由于装的是openoffice,所以我提前装了
speechsdk51.exe
CNSpeechPackage.msi
这两个软件。如果让电脑朗读,参考下面的代码
复制代码 代码如下:

ReadAllTextFile=CreateObject("Scripting.FileSystemObject").OpenTextFile(Wscript.Arguments(0), 1).ReadAll
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches '' 建立变量。
Set regEx = New RegExp '' 建立正则表达式。
regEx.Pattern = patrn '' 设置模式。
regEx.IgnoreCase = True '' 设置是否区分大小写。
regEx.Global = True '' 设置全程可用性。
Set Matches = regEx.Execute(strng) '' 执行搜索。
For Each Match in Matches '' 遍历 Matches 集合。

RetStr = RetStr & Match.value&" "
RetStr = RetStr & vbCRLF
Next
RegExpTest = RetStr
End Function

Set objVoice = CreateObject("SAPI.SpVoice")
Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Simplified Chinese").Item(0)
objVoice.Rate = 3 ''速度:-10,10 0
objVoice.Volume = 100 ''声音:0,100 100
objVoice.Speak RegExpTest("[\u4e00-\u9fa5]", ReadAllTextFile)

或是装完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.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>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号