vbs 调用中文语音让你电脑听你的命令的实现代码
如果你机器本身装了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>
在中文的机器上直接运行这个vbs,很有可能出现0x80045052错误,解决办法:
控制面板---语音-语音认别选项卡------------》改成Microsoft Simplified Chinese
到此这篇关于vbs 调用中文语音让你电脑听你的命令的实现代码的文章就介绍到这了,更多相关vbs 调用中文语音内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
VBScript Enun Remote CMD Shell代码
Enun Remote CMDShell,喜欢玩cmdshell的朋友可以参考下2013-07-07vbs 函数 获取数组字符串的最后一个LastOne 挺方便的
其实在实际应用中多用 数组实现,这样的效率对于大量的字符串来说,效率有点低了。2009-10-10
最新评论