vb.net怎么做中文语音识别程序首先添加一个系统的语音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.RecognitionRC.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拼音查找问题呵呵,累死了,但还有一些字不能辨认,对照集到我的博客找
Default.aspx.vb-----------------------------------------------
Partial Class Code_拼音模糊查找_Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'这里可将数据库某字段列读取到ArrayList
Dim word As New ArrayList
word.Add("天安门")
word.Add("安琪儿")
word.Add("大前门")
word.Add("大灰狼")
Session("word") = word
End Sub
Protected Sub se_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles se.Click
Dim jianpin As String = strPing(words.Text) '获得简拼
jp.Text = jianpin
Dim word As ArrayList = Session("word")
Dim jieguo As String = ""
ListBox1.Items.Clear()
For i As Integer = 0 To word.Count - 1 Step 1
If strPing(word.Item(i)).ToString.ToUpper.IndexOfAny(jianpin.ToUpper) = 0 Then
ListBox1.Items.Add(word.Item(i).ToString)
End If
Next
End Sub
Public Function strPing(ByVal str As String) As String
Dim reStr As String = ""
For i As Integer = 0 To Len(str) - 1
reStr = reStrwordPing(Mid(str, i + 1, 1))
Next
Return reStr
End Function
Public Function wordPing(ByVal word As String) As String
'这个对比表只是一个大概,还不完善,对不少汉字不能识别
推荐阅读
- linux命令点亮端口,linux指定端口号启动
- 华硕路由器怎么看网络连接,华硕路由器怎么看cpu温度
- 少年卧室游戏下载安卓,少年的卧室怎么装修
- 皮肤垃圾清理直播话术,皮肤清洁话术
- c语言函数大数相加 c语言函数大数相加怎么表示
- oracle百万数据查询耗时,oracle 1000万数据查询
- 海洋知识小程序怎么做,海洋知识海报
- iis测试页面代码html,iis网页
- python函数oct Python函数三要素