重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先添加一个系统的语音COM组件的引用microsoft speech object library然后在程序中声明一个语音类dim RC As SpeechLib.SpSharedRecoContext这个类有一些事件,如果你要处理它的一些事件,可以用withevent来声明然后在窗体LOAD事件或你需要的地方先创建一个实例RC = New SpeechLib.SpSharedRecoContext当一个RC被实例化后,系统就会运行语音识别程序.前提是你的系统已经正确安装这个功能.一般默认就已经安装好的.其次提醒一下,WIN7的语音识别比XP的好N倍.从阅读到侦听都好很多.然后就可以在你需要阅读的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚举,用来标识系统用前台还是后台或其他方式来阅读文字,简单的来说就是阅读的时候不会卡住你的程序.你可以选其他的枚举来试试作用.以上为阅读部分.如果需要程序听你说话,则需要声明一个侦听类dim RG As SpeechLib.ISpeechRecoGrammar在初始化时将之与上面的RC建立关系,此时则必须要用withevent来声明上面的RC,因为涉及电脑听到你的语音后,会触发一个事件,并将听到的内容传递到该事件.其次,要让系统听到的解析为命令,就必须准备一个XML结构的文件来保存那些固定的命令.如果电脑在XML文件中找不到那些固定命令或同时不属于系统命令,电脑将会将其解释为听写.RG = RC.CreateGrammar '(0)
目前创新互联建站已为1000多家的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、南涧网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
RG.CmdLoadFromFile("听到.xml", SpeechLib.SpeechLoadOption.SLODynamic)
RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后写一个过程来处理听到的事件Private Sub 听到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 话语 As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我听到了" 话语.PhraseInfo.GetText, 11)End Sub以上为侦听部分.下面列一个XML的例文?xml version="1.0" encoding="gb2312"?
GRAMMAR LANGID="804"
RULE NAME="命令" TOPLEVEL="ACTIVE"
L
P打开播放器
P上我的QQ
P关闭你自己 /L
/RULE
/GRAMMAR要让系统正确地侦听到你说的话,前提你必须运行语音识别程序并让其激活到"正在聆听"状态.并且你必须有一个能正常使用的话筒而且保证话筒已经打开.(废话-_-|||)以上就是用VB.NET语音识别的最基本的一些操作.希望对你有帮助.更深入的内容有兴趣的话可以和我一起研究.
建一个窗体,里面添加一个按钮,代码里拷入下面的代码,运行后,单击按钮
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = H1 '异步播放
Private Const SND_SYNC = H0 '同步播放 (缺省)
Private Sub Command1_Click()
Dim SoundFile As String, Result As Long
SoundFile = "c:\Windows\Media\chord.wav"
Result = sndPlaySound(SoundFile, SND_ASYNC)
End Sub
说明:
要播放不同的声音,例如0-9,你找到相应的wav文件,编程实现就可以了。
PS:没注意到你是VB.NET,上面的代码是VB6的,生成工程文件,直接用.NET打开并自动转换,也可以使用。
我知道一种方法,就是MessageBoxIcon这个枚举中有好几个图标类型可以选,这里就可以调整,不同图标有不同的声音,如果你要让错误信息非要弹出个信息提示音,估计不大容易实现,注意我说是不太容易实现,不是不可能!
例子:MessageBox.Show("谢谢采纳","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) //者是一个信息提示音,图标是一个大写I,你应该懂的!