时间:2024-05-09
罗冬梅 黄贤立
摘要:语音识别技术应用于专题学习网站的开发,在改善人机交互界面的同时提高了学习者的学习兴趣,并为实现学习内容的智能语音控制奠定了基础。论文介绍了基于语音识别技术的专题学习网站的设计与开发,对一些关键技术和问题进行了探讨。
关键词:语音识别 自然用户界面 学习档案查看
中图分类号:TP311.56 文献标识码:B 文章编号:1673-8454(2009)21-0072-03
专题学习网站的本质是一个基于网络资源的专题研究、协作式学习系统,它通过在网络学习环境中,向学习者提供大量的专题学习资源和协作学习交流工具,让学习者自己选择和确定研究的课题或项目,自己收集、分析并选择信息资料,应用知识去解决实际问题。专题学习网站是人-机交互的系统,在这系统中,如何实现与提高网络和计算机的智能化程度是目前教育技术领域的一个重大课题。人工智能领域中的Agent技术的出现,为实现这一目标提供了良好的契机。基于语音识别技术的专题学习网站可以提供友好的自然用户界面(NUI),有效地把语音与其他媒体相结合,充分调动了学生学习的积极性和主动性。
一、语音识别技术概述
语音识别是机器自动语音识别(Automatic Speech Recognition by Machine)的简称,就是使得设备可以听懂用户的话,识别又分为篇章级识别和命令词识别,目前在嵌入式领域发展比较成熟的只有命令词识别。[1]语音识别就像给设备安装了耳朵,让设备可以听懂用户的命令,并且执行相应的命令,解决了人们在操作各种终端设备时只能使用手动按键方式的问题。
目前主流的语音识别技术是基于统计模式识别的基本理论。一个完整的语音识别系统可大致分为三部分:(1)语音特征提取:其目的是从语音波形中提取出随时间变化的语音特征序列。(2)声学模型与模式匹配(识别算法):声学模型通常将获取的语音特征通过学习算法产生。在识别时将输入的语音特征同声学模型(模式)进行匹配与比较,得到最佳的识别结果。(3)语音模型与语言处理:语言模型包括由识别语音命令构成的语法网络或由统计方法构成的语言模型,语言处理可以进行语法、语义分析。[2] 语音识别的基本流程如图1所示。
二、语音识别技术在专题学习网站中的应用
1.应用分析
目前国内已有的专题学习网站基本都是采用GUI(图形用户界面)方式,没有网站提供NUI(自然用户界面)。人-机交互的方式局限于学习者通过键盘、鼠标外设与系统进行信息传递。学习者无法使用语音与系统进行交互信息,导航技术主要是通过点击地址链接内容条,没有提供语音导航系统。语音识别技术的应用可以改变传统的GUI图形用户界面,从而转向自然用户界面,使得用户能够以自然语言直接和计算机进行交流。如果将这一技术应用于学习网站的设计开发过程中,将实现网站中人机交互方式和导航方式的转变。
ASP.NET可以用来制作精良的网络教学课件和专题学习网站,但它本身并不能够实现语音识别,我们可以将MS Agent组件运用到ASP.NET中用以实现这一技术。作为一种软件代理工具,Agent以其强大的交互功能、鲜明的人性特点、优美的操作界面和简便统一的编程方法,对由菜单、按钮、提示框等组成的传统人机交互方式产生了很大影响,在多媒体创作、Web应用、教育软件、软件帮助系统和辅助工具制作等方面,具有广阔的应用前景。
2.实现方法
MS Agent组件提供了IAgentCtlCharacter接口,根据该接口我们可以使用其中的成员Commands类,从而进一步访问IAgentCtlCommandsEx接口。语音识别技术主要是通过以下IAgentCtrlCommandsEx接口中的各类方法实现的。
(1)Add方法
该方法目的是增加一个Command对象至Commands类的集合中,它的使用格式是:
Agent.Characters(″CharacterID″).Commands.Add Name,Caption,Voice,Enabled, Visible
其中Name表示新建类的内部索引标识,Caption表示命令的显示文字,Voice是语音的读音表示,用户就是通过第三个参数来与助手进行语音交互的。例如″hello peedy″,如果用户直接对准麦克风说″hello peedy″,系统将会自动执行相关命令。但是我们也可以做这样的设置,使用户可以不必只说出上述一种命令,如可以说″hi peedy″、 ″peedy″等都可以执行同样的命令。要完成这样的功能,我们只要将参数voice稍加修改即可,如:″[(hello|hi)] peedy″。这样用户就可以使用三种状态的命令来与助手进行交互了。这里[]表示可选项,()规定范围,而|表示逻辑或。后两个参数分别表示该命令是否可用与是否可见,默认状态下值为true,表示既可用也可见。
(2)RemoveAll方法
从类集合中移除所有的Command类,通常我们在最初使用这条语句进行初始化,具体格式如下:
Agent.Characters (″CharacterID″).Commands.RemoveAll( )
(3)GlobalVoiceCommandsEnabled属性
该属性是布尔类型,返回或设置Agent公共命令(global commands)是否可用,具体格式如下:
Agent.Characters(″CharacterID″).Commands.Global-VoiceCommandsEnabled[=Boolean]
MS Agent公共命令包括打开、关闭语音命令窗口,以及显示、隐藏助手等命令:open commands windows、close commands windows、hide、peedy(助手名)。执行上述命令后,这些公共命令将自动增加进类集合中。
(4)VoiceCaption属性
该属性用于在语音命令窗口中返回或设置所显示的Commands类名。具体格式如下:
Agent.Characters(″CharacterID″).Commands.Voice-Caption[=string]
在语音识别开始时,将会出现Listentips窗口,其中就会提示用户输入VoiceCaption里的各个命令。
在对以上Commands类的方法与属性进行设置前,还需对助手的Listen方法进行设置,具体格式为:
Agent.Characters(″CharacterID″).Listen State
State值为true时,表示打开助手接听状态;为false时,表示关闭助手接听状态。通常打开接听状态时间会定在10秒,10秒后系统自动关闭接听状态。
三、基于语音识别的专题学习网站设计与开发
1.语音识别模式选择
语音识别通常可以分为两种工作模式。一种是命令控制模式,即划分范围监听,制定一组被选项,语音输入被反馈成最为接近的一个选项,这个方式下语音识别引擎可以识别简短的语音命令,以便执行相应的程序;另外一种是连续听写模式,这个模式下语音识别引擎要识别连续的语音,这种功能实现起来比语音控制更复杂,因为语音听写过程中需要对上下文以及相同相似发音的词语进行分析、做出判断,识别率没有前一种方式高。[3]
在专题学习网站中应用语音识别技术主要在其导航系统的设计中,多为简短命令的控制与识别,因此较适合采用命令控制识别模式,可达到较高的识别率。
2.系统功能模块设计
基于语音识别的导航系统,其目的是最大限度地开发人机自然交互方式,它采用微软的Ms Agent技术,结合基于微软的SAPI语音识别开发平台进行设计,用户只需说出自己的下一步操作关键词,就能立刻进入下一级界面。例如,在学习评价模块,用户只要选择评价主体,就可以实现对同组成员的学习评价,也可以进入用户自我评价界面。本论文所开发的专题学习网站共包括四大部分:学习特征记录、学习档案查看、学习过程、学习评价等(如图2所示),均采用了语音识别导航技术。
现以学习档案查看模块为例,学习档案查看模块的主要功能是根据学习者档案数据库中最近一次的学习完成情况做出判断,学习者也可以通过语音命令决定是否完成上一次学习内容。学习者可以看到上一次学习的具体情况。如果学习者第一次使用本系统,界面中将会提示“无学习记录”。
在该模块的设计中,用户可以和助手进行语音交流,并根据命令的不同,触发不同的事件,这个事件是由MS Agent的command事件完成,伪代码如下:
<%
myAgent.Characters.character("peedy").Commands.Visible = true
myAgent.Characters.character("peedy").Commands.Add "hello1", "hello,peedy", "hello[peedy]"
myAgent.Characters.character("peedy").Commands.Add "skip1", "skip", "skip"
myAgent.Characters.character("peedy").listen(false)
myAgent.Characters.character("peedy").Commands.GlobalVoiceCommandsEnabled=true
myAgent.Characters.character("peedy").Commands.Voicecaption="Mycommand"
Sub agent_Command(ByVal UserInput)
if userinput.name="hello1" then
myAgent.Characters.character("peedy").listen(true)
myAgent.Characters.character("peedy").speak "hello,maisie"
myAgent.Characters.character("peedy").speak "这是上一次的学习内容,要跳过吗?"
end if
if userinput.name="skip1" then
window.location="new.aspx"
end if
end sub
%>
四、结束语
基于语音识别的专题学习网站已经开发完成,经初步测试,语音命令导航在学习过程中取得了很好的效果,改善人机交互界面的同时还提高了学习者的学习兴趣,抓住了学生的感官和思维,尤其是一些特殊人群,如手灵活性不高或有残疾的学习者,可以通过语音方式进行导航。当然,系统仍有待进一步完善,由于微软提供的语音库还没有包含中文语音,因此,目前开发的网站还仅限于英文语音识别。另外,网站中对内容的学习与智能语音控制还有待进一步研究。
参考文献:
[1]马志欣,王宏,李鑫.语音识别技术综述[J].昌吉学院学报,2006(3).
[2]于卫红.基于MS Agent的语音识别与合成[J].电脑编程技巧与维护,2008(18).
[3]童强.用Delphi实现基于SAPI的电脑语音控制应用程序[J].微计算机信息,2006(3).
(编辑:金冉)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!