重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先添加一个系统的语音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)
站在用户的角度思考问题,与客户深入沟通,找到库车网站设计与库车网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖库车地区。
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语音识别的最基本的一些操作.希望对你有帮助.更深入的内容有兴趣的话可以和我一起研究.
中一个最显着的新功能在vb.net是有能力创造线程在您的申请。 Visual C + +开发已能写的多线程代码多年,但达到同样的效果在VB6的是困难重重。
虽然这次演习使用vb.net的程式码,所以没有理由你不能得到相同的结果,使用C # 。
什么是线程?
第一个问题我们需要的答案是“什么是线程” ?那么,简而言之,一个线程是想运行两个程序在同一进程中。每一件软件您的书面因此,到目前为止,至少包含一个线程-主要应用程序线程。
对于经验缺乏者,一个过程,是有效的一个实例正在运行的程序在您的计算机上。说您正在运行均Microsoft Word和Microsoft Excel 。双方Word和Excel都运行在一个单独的进程,孤立对方的经验。与Windows 2000 ,也有收集的其他程序在后台运行,提供的东西一样,支持USB ,网络连接,等等。这些都是所谓的“服务” ,和每一个那些运行在其自己的服务。
一个典型的例子多线程使用的是Microsoft Word的拼写检查。一个线程(主应用程序线程)让您输入文字到您的文件,另一个线程运行,不断和手表什么您输入的同时,检查错误,因为你去和疲弱的问题与拼写。
原因是使用线程很简单-它提高的表现,您的申请,或者更确切地说,它改善了用户体验。现代计算机系统的设计做很多事情,一次,并使用我们的Microsoft Word的例子再次,与时俱进,与无论您打字并不困难。事实上,在Word中有很多的备件加工能力,因为它可以工作,使很多次,速度比你或我可以键入。通过引入线程可以做其他的东西在背景中, Word可以利用的备用容量,在您的电脑,并让您的用户体验,多一点愉快。
另一个例子是Internet Explorer 。每当IE浏览器,以获得资源,如网页或图片,从互联网上,它这样做是在一个单独的线程。的结果,这是您不须等候,即得到一整页之前,它会显示该网页给你。例如,它可以下载的HTML弥补的文本网页,在一击中,使用主要的应用程序线程,以显示你是什么,迄今已和那么它可以启动多个线程自动消失,并下载每个形象的参照在该网页上。您仍然可以滚动向上和向下的网页,尽管事实上它仍然忙碌获得其余的数据。
兄弟你可以用session["current"] = langgue ;来保存你的多语言的状态,页面载入的时候读sesion,;“中文”和“英文”切换的时候也读一下,多语言存放在res资源文件中就可以
Dim wz As New StreamReader(wjm) 'wz文字 这一句改一下: Dim wz As New StreamReader(wjm,System.Text.Encoding.GetEncoding("gb2312")) 'wz文字
使用gb2312编码即可:
Dim fs As IO.FileStream
Dim r As IO.BinaryReader
fs = New IO.FileStream("C:\temp.txt",IO.FileMode.OpenOrCreate)
r = New IO.BinaryReader(fs)
TextBox1.Text = System.Text.Encoding.GetEncoding("gb2312").GetString(r.ReadBytes(fs.Length), 0, fs.Length)
Interop.SpeechLib.dll 引用后,朗读不限制
Me.Cursor = Cursors.WaitCursor
Dim oVoice As New SpeechLib.SpVoice
Dim cpFileStream As New SpeechLib.SpFileStream
oVoice.Voice = oVoice.GetVoices.Item(cmbVoices.SelectedIndex)
oVoice.Volume = trVolume.Value
oVoice.Speak(txtSpeach.Text, SpeechLib.SpeechVoiceSpeakFlags.SVSFDefault)
oVoice = Nothing
Me.Cursor = Cursors.Arrow