基于VB环境下的语音识别程序开发方法
摘要:语音识别技术的发展和广泛应用,使用户与计算机的对话方式不再仅仅局限在使用键盘或鼠标发送指令的方式。本文在visual basic 编程环境下使用Microsoft Speech SDK中的语音接口实现对计算机的语音控制。
关键字:Microsoft Speech SDK;语音识别;VB6.0
1 引言
随着计算机技术的飞速发展,用户与计算机对话的方式由机器语言指令,到图形用户界面,现发展到自然和谐的对话方式。其中语音交互则是其中的一个重要内容。
2 语音识别程序开发方法
2.1开发工具
2.2语法规则的编写
语法规则是一个符号xml规则的文本文件,将计算机需要识别的命令列在该文件中,这个文件可以预先定义,也可以用代码动态生成,在这个程序中该文件是预先定义的。该语法规则如下:
<GRAMMAR LANGID="804">
<RULE TOPLEVEL="ACTIVE" Name="number" ID="1">
<L PROPNAME="number">
<P VAL="1">命令提示符</P>
<P VAL="2">记事本</P>
<P VAL="3">录音机</P>
<P VAL="5">音量</P>
<P VAL="6">开始</P>
<P VAL="7">你好</P>
</L></RULE> </GRAMMAR>
2.3 程序实现
在工程中的默认窗体Form1上添加一个TextBox控件,命名为Txt_Show,其MultiLine属性为TRUE。
制作语音识别程序首先需要创建语音识别的语法环境,然后再该环境中创建用于语音识别的语法对象并加载该语法对象所需的语音识别规则,最后激活语音识别对象。
激活语音识别对象后,语音识别对象的识别事件可以对计算机用户发出的声音做出响应,判断用户发出的命令并执行相应的操作。
使用Set语句创建SpSharedRecoContext类型对象,SpSharedRecoContext类型在SpeechLib命名空间内。创建代码如下:
Set RecoContext = New SpSharedRecoContext
创建语音识别语法对象通过使用SpSharedRecoContext类型对象的CreateGrammar()方法实现,代码如下:
Set Grammar = RecoContext.CreateGrammar(0)
进行语音识别需要加载语音识别规则,本程序使用预定义的语法规则。
Grammar.CmdLoadFormFile “G:\project\VB\sol.xml”,SLODynamic
激活语音识别对象通过使用ISpeechRecoGrammar类型对象的CmdSetRuleIDState()方法将语音规则状态设置为SGDSActive实现。代码如下:
Grammar. CmdSetRuleIDState 0,SGDSActive
(5)通过语音识别控制计算机。通过对语音指令的判断,执行相应的操作,代码如下:
Private Sub RecoContext_Recognition(ByVal StreamNumber As Long, _
ByVal StreamPosition As Variant, _
ByVal RecognitionType As SpeechAudioFormatType, _
ByVal Result As ISpeechRecoResult _)
Dim strText As String
strText = Result.PhraseInfo.GetText(0, -1, True)
Text1.Text = strTextIf strText = "命令提示符" ThenShell "cmd", vbNormalFocusElseIf strText = "记事本" ThenShell "notepad.exe", vbNormalFocusElseIf strText = "录音机" ThenShell "sndrec32.exe", vbNormalFocusElseIf strText = "音量" ThenShell "SndVol.exe", vbNormalFocusElseIf strText = "开始" ThenMsgBox "执行开始程序"ElseIf strText = "你好" ThenMsgBox "你好,很高兴见到你"End If
End Sub
通过调试运行该应用程序,对着麦克风说出命令xml文档中预定义的命令时程序正确识别后会调出相应的计算机程序。
3 结束语
以上代码在win10+VB6.0环境下调试通过。其他同学使用时也非常容易上手,操作简单,非常有意思。但仍存在如下问题:
- 只能对部分简单的命令做出响应:不能满足个性化需求。
- 语音信息量大:随意说话和认真说话时识别的时间和效率不同。
- 对发出命令者的普通话有要求:普通话说的好的用户,程序响应和识别速度快,普通话不太标准的用户识别效率非常低。
- 环境噪声和干扰对语音识别有严重影响。环境嘈杂时,若不佩戴耳麦,识别效率也是特别低。
4 参考文献
[J].河北软件职业技术学院学报,2010(6):35-38.
基于VB环境下的语音识别程序开发方法相关推荐
- linux使用gcc实现扫雷,基于linux环境下扫雷应用程序
基于linux环境下扫雷应用程序 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 <网络操作系统>报告(应用程序开发) ...
- Linux上运行扫雷,基于linux环境下扫雷应用程序.docx
总俶斜技誓魄 <网络操作糸统>掖告 (应用程序开发丿 题 目: 基于I inux平台GCC环境下扫雷应用程 序开发 姓 名: 李磊 学 院: 理学院 专 业: 网络工程 班 级: 092 ...
- Keils uVision5环境下STM32汇编语言程序开发
目录 一.如何在MDK5中建立工程 1建立工程 1.1创建工程 1.2选择芯片STM32F103RC 1.3运行环境选择,在CMSIS下选择CORE:Device下选择Startup 2.添加文件 ...
- 基于SDN环境下的DDoS异常攻击的检测与缓解--实验
基于SDN环境下的DDoS异常攻击的检测与缓解--实验 基于SDN环境下的DDoS异常攻击的检测与缓解--实验 1.安装floodlight 2.安装sFlow-RT流量监控设备 3.命令行安装cur ...
- 基于Linux环境中C语言程序----Hello World
文章目录 基于Linux环境中C语言程序----Hello World 前言 C语言的特点 在Linux环境中打印Hello World 基于Linux环境中C语言程序----Hello World ...
- 五天完成项目-《基于Linux环境下的Cortex A53的手势识别智能家居》-第四天
音视频播放功能 <智能家居系列> 一.音频播放 1.Linux下的音频播放实现 2.实现步骤 二.语音播报信息 三.视频播放 1.素材准备 2.实现步骤 四.项目框架搭建 <智能家居 ...
- 基于keil环境下mm32f327单片机rtthread的移植
基于keil环境下mm32f327单片机rtthread的移植 文章目录 基于keil环境下mm32f327单片机rtthread的移植 前言 一.所需资源 二.创建工程目录 三.复制所需文件到相应文 ...
- 五天完成项目-《基于Linux环境下的Cortex A53的手势识别智能家居》-第五天
视频监控和家电控制 <智能家居系列> 一.视频监控基础 1.摄像头 2.v4l2 3.Linux下的摄像头使用流程 4.烧写程序到开发板 5.运行程序 (先插上摄像头) 二.视频监控功能 ...
- 基于Golang的CLI 命令行程序开发
基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...
最新文章
- P1468 派对灯 Party Lamps(BIG 模拟)
- linux算法设计,嵌入式Linux平台下随机序列算法设计.doc
- 这篇被引用近4k次的论文教你如何正确的理解和使用相关系数!
- 用 Visual Studio 自动生成C/C++注释(Doxygen、XML)
- tidyr | 变量取值组合、缺失值处理、变量分列与合并
- java 中的wait notify
- python判断字符串,str函数isdigit、isdecimal、isnumeric的区别
- 如何在Windows XP下安装Windows2000
- MPQ Storm库 源码分析 一
- HTML代码实现简易购物车-web前端教程
- 基于vivoY97的Adb驱动程序的安装
- 免费搭建私人云盘+内网渗透+不限速无限存储
- 谈谈PRNU 光响应非均匀性
- 手机网速正常电脑很慢_路由器WiFi速度正常,但电脑和手机上网速度慢怎么办?...
- 无所不能的NumPy:我用它弹奏出了CD音质的吉他名曲“爱的罗曼史”
- 王者战力接口(免费),附接口文档+小程序源码
- 桌面快捷方式小箭头隐藏与还原(亲测有效)
- ROS(indigo) 安装和使用更新版本的Gazebo----3,4,5,6,7 附:中国机器人大赛中型组仿真比赛说明
- MyBatis中的resultMap两个association
- linux无法保存文件,Linux系统创建文件后无法保存