网站首页

您现在的位置:主页 > 物理化学辅导 >  > 正文

老虎机算法基于语音识别的声控鼠标的设计方法

2017-07-25 21:18http://www.dxjiao.com江苏成考网

导读: 实现了一种基于语音识别技巧的声控鼠标光标利用法度榜样, 可以用语音节制鼠标光标移动到屏幕的随意率性位置, 能用来赞助伤残人士只用声音而不用鼠标和键盘就能操作电脑。阐发了语音节制鼠标光标应用历程中的延时缺陷, 并做出了针对性的改进。

  择要:实现了一种基于语音识别技巧的声控鼠标光标利用法度榜样, 可以用语音节制鼠标光标移动到屏幕的随意率性位置, 能用来赞助伤残人士只用声音而不用鼠标和键盘就能操作电脑。阐发了语音节制鼠标光标应用历程中的延时缺陷, 并做出了针对性的改进。

  1 概述

  电脑语音技巧颠末多年景长已经取得了伟大年夜进步, 今朝已经有一些产品和项目让人们有时机和谋略机进行语音交互事情, 例如IBM公司的Viavoice 系列软件以及微软的新的Office 产品都有实用的语音功能, 可以进行语音听写录入翰墨等事情, 还呈现了一些基于语音技巧的利用系统。

  语音技巧分外是语音识别技巧的成长, 使人们可能实现用语音节制电脑, 这对付天下上浩繁不能方便应用传统的鼠标及键盘的伤残人士有重大年夜的意义; 别的在一些场合未方便操作电脑但又必须应用的环境下同样很故意义, 比如驾驶的同时查询电子舆图。今朝要真正节制一台图形界面的电脑, 必须做到应用语音节制也能像应用键盘和鼠标那样输入数据以及节制光标。是以一种有效的语音节制光标法度榜样, 也便是可以定位在屏幕的随意率性位置, 并且可以模拟单击、双击拖拽等各类鼠标动作的语音节制法度榜样, 对付实现语音节制电脑将是一个很故意义的对象。

  本文使用微软的Speech SDK 5.1 免费的语音识别引擎和模拟鼠标技巧, 用Delphi7.0 实现了一个语音节制鼠标利用法度榜样, 可以实现语音节制鼠标移动、竣事、单击等动作达到节制屏幕光标的感化, 并对语音节制鼠标法度榜样中的延迟问题进行了阐发, 提出并实现了一种改进措施。

  2 基于语音识别的光标节制类型

  今朝有两种语音节制鼠标的模式: 一种是目标导向光标节制和偏领导向光标节制[n].对付前者, 用户必要用语音给出详细目标名称或者位置, 比如图标、菜单, 或者屏幕区域名称, 然后给出履行的敕令如"单击"等, 这种要领对付单个软件照样有效的, 然则当目标增添的时刻用户必要影象很多目标的名称, 还可能呈现同名称目标的环境, 是以事情中的差错率会增添。另一种偏领导向光标节制又分为非继续节制和继续节制两种, 对付非继续的环境用户要同时阐明偏向和间隔, 如敕令"左8 厘米", 那么光标就向左移动8厘米; 而对付继续的环境用户先阐明偏向如"向左",光标就向左移动, 直到用户再说"竣事", 光标才竣事运动。

  本文评论争论的声控光标是属于偏领导向中的继续节制, 这种鼠标节制和日常的应用习气对照同等, 用户应用起来对照适应。

  3 实现

  本文语音节制光标法度榜样的语音节制是采纳微软的Speech SDK 5.1 的语音识别引擎及其API 接口, 这是一个免费的开拓包, 并且可以用它开拓具有中文语音功能的软件。语音识别引擎平日可以分为两种事情要领, 一种便是敕令节制(Command and Control) 要领, 这个要领下语音识别引擎可以识别简短的语音敕令, 以便履行响应的法度榜样; 别的一种是继续听写要领,这个模式下语音识别引擎要识别继续的语音, 这种功能实现起来比语音节制更繁杂, 由于语音听写历程中必要对高低文以及相同相似发音的词语进行阐发、作出判断, 而在敕令节制语音要领中不必要作高低文阐发。本文采纳的是敕令节制要领, 由于实现语音节制鼠标只必要对有限的几个简短的敕令进行识别, 如"左"、"右"、"停"等。图1 是语音节制鼠标法度榜样的布局图。

图1 语音节制鼠标法度榜样布局

▲图1 语音节制鼠标法度榜样布局

  该利用法度榜样主要包括两个部分: 第一部分语音节制利用主法度榜样部分, 主要调用语音识别引擎识别用户的语音敕令。

导读: 实现了一种基于语音识别技巧的声控鼠标光标利用法度榜样, 可以用语音节制鼠标光标移动到屏幕的随意率性位置, 能用来赞助伤残人士只用声音而不用鼠标和键盘就能操作电脑。阐发了语音节制鼠标光标应用历程中的延时缺陷, 并做出了针对性的改进。

  这部分法度榜样主要完成几件事情:

  ①导入辞书文法文件(XML 款式, 此中定义感兴趣的语音敕令) , 完成对语音识别引擎接口的初始化事情, 激活语音识别引擎;②接管语音识别引擎的识别结果, 根据识别结果调用响应的鼠标节制法度榜样。

  下面的语法文件中定义了偏向敕令和鼠标事故敕令的语律例则:

  <GRAMMAR LANGID="804">

  <DEFINE>

  <ID NAME="RID_start" VAL="1"/>

  <ID NAME="PID_colour" VAL="2"/>

  <ID NAME="PID_colourvalue" VAL="3"/>

  </DEFINE>

  <! - - Rule definiTIons - - >

  <RULE NAME="start" ID="RID_start" TOPLEVEL="ACTIVE">

  <RULEREF NAME="colour" PROPNAME="colour"PROPID="PID_colour" />

  </RULE>

  <RULE NAME="colour" >

  <L PROPNAME="colourvalue" PROPID="PID_

  colourvalue">

  <P VAL="1">上</P>

  <P VAL="2">下</P>

  <P VAL="3">左</P>

  <p VAL="4">右</p>

  <p VAL="5">竣事</p>

  <P VAL="6">单击</P>

  <P VAL="7">双击</P>

  <p VAL="8">关闭</p>

  </L>

  </RULE>

  </GRAMMAR>

  在法度榜样运行的时刻, 一旦有上述语法文件中定义的敕令被成功识别, 则在法度榜样的onRecgnition 相应函数中可以查询出识别的返回值是1~8 中的某个值, 根据不合的返回值就可以调用鼠标节制法度榜样进行鼠标的某个偏向的移动或者点击等事故的模拟节制。

  第二部分鼠标节制法度榜样, 便是调用法度榜样模拟节制鼠标移动或单击等各类鼠标事故。这一部分主如果使用Windows API 函数模拟鼠标事故实现对鼠标光标的节制。

  模拟鼠标移动可以经由过程轮回调用Windows API函数SetcursorPos(x1,y1)来实现, 在轮回中节制x1 和y1 的变更就可以实现任何偏向的鼠标移动。在法度榜样中模拟鼠标移动必要用到多线程节制, 否则鼠标移动历程中无法随时竣事或者让他转向。以下是移动线程中的移动节制代码:

  for I := 1 to 500 do

  begin

  if bstop=1 then break;

  //碰到竣事敕令时竣事光标移动

  case Dr of

  //根据参数Dr 抉择光标运行偏向

  1: x1:=x1+n1; //右移

  2: x1:=x1- n1; //左移

  3: y1:=y1+n1; //下移

  4: y1:=y1- n1; //上移

  end;

  windows.SetcursorPos(x1,y1);

  end;

导读: 实现了一种基于语音识别技巧的声控鼠标光标利用法度榜样, 可以用语音节制鼠标光标移动到屏幕的随意率性位置, 能用来赞助伤残人士只用声音而不用鼠标和键盘就能操作电脑。阐发了语音节制鼠标光标应用历程中的延时缺陷, 并做出了针对性的改进。

  鼠标的另一类节制法度榜样是模拟鼠标单击双击等鼠标事故, 主如果在法度榜样中使用mouse_event 函数对鼠标事故进行模拟。法度榜样中以下代码模拟了鼠标左键单击:

  windows.mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0);

  // 左键按下

  windows.mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

  // 左键抬起

  图2 是一个抱负环境下用本文法度榜样实现语音节制鼠标的例子。光标初始位置在屏幕左下方, 目标矩形在屏幕右上区, 首先用户对麦克风发出"右"的敕令, 光标就向右移动; 当光标到达目标下方的时刻用户说"上"敕令, 光标就改向上移动( 或者先说"停"敕令, 光标竣事) ; 当光标到达目标矩形, 用户说"停"敕令, 光标竣事, 着末用户说"单击", 法度榜样模拟鼠标左键单击事故, 相称于目标矩形被单击。

图2 一个语音节制鼠标事情的例子

▲图2 一个语音节制鼠标事情的例子

  4 语音节制鼠标的缺陷

  虽然几个简单的语音敕令, 可以节制鼠标移动到屏幕的任何位置, 并可以根据语音敕令模拟单击、双击等各类鼠标事故, 然则实际应用中还存在缺陷。

  对付大年夜的目标而言, 这种语音节制鼠标节制没有什么问题, 假如目标区域对照小, 将会增添应用者的难度, 比如当光标移动到矩形时喊"停", 光标会继承移动一小段才停, 这韶光标可能已经超出了目标矩形。这种环境和语音识节制中存在的延时有关, 每次用户发出语音敕令到敕令被履行都有一个历程, 首先应用者说出语音敕令是必要光阴的, 而且语速快的人和语速慢的人说同样的敕令花的光阴不合; 别的语音识别引擎成功识别一个语音敕令也必要一个光阴。以是语音节制鼠标在节制历程中一定存在延时。是以从开始发出语音敕令到动作被履行, 光标一定会有位置的偏差: △S=V×△t ( △S 为位置偏差, V 为鼠标移动速率, △t 为措辞和识别造成的延时)。

  Sear 等人曾经钻研用一个虚拟鼠标机制来办理延时偏差问题, 即在真实的鼠标移动前虚设一个鼠标, 当假鼠标到达目标时发出语音敕令, 履行的时刻真鼠标恰恰到达目标处。然则他们的试验结果并不抱负。由于每小我措辞的习气和速率是不一样的, 而且不合的状态下的语速也不合, 是以延时△t 不是必然的, 以是每次的位置偏差△S 也不尽相同, 而一种固定间隔的先导虚拟鼠标并不能取得很好的效果。

  5 一种改进措施

  影响位置节制效果的身分和目标的大年夜小、移动速率和延时有关。能够改变的是速率节制, 以是本文采取一种规划改进位置节制精度。改进后的语音节制鼠标每次的位置偏差△S 显着减小, 在目标较小的环境下, 位置节制精度获得前进。

  改进措施是在法度榜样中增添对鼠标的速率节制: 在目标较小的环境下, 光标先以正常速率V1 移动, 到达目标相近时先辈行减速节制, 用语音敕令"慢"来节制鼠标减低移动速率到V2( 实际设计中V2=1/3 V1) ,到达目标后再用语音敕令"停"竣事鼠标移动, 图3 反应了这个历程中光标速率的变更。这样在延韶光阴不变, 因为光标移动速率V 低落很多, 由△S=V×△t 知道位置偏差△S 也减小很多。

图3 速率可节制的语音节制光标移动速率变更示意图

▲图3 速率可节制的语音节制光标移动速率变更示意图

  而在目标对照大年夜的环境下, 由于位置节制精度足够, 可以不选择"慢"敕令节制直接进行"停"节制。

  结语

  本文钻研语音节制鼠标的利用法度榜样, 实现了对鼠标基础的语音节制, 针对语音节制中由于延时而孕育发生的位置节制偏差做了阐发和改进。本文钻研的内容对付开拓帮助不便应用鼠标及键盘的伤残人士应用谋略机的交互对象有积极的意义。

  试验注解用本法度榜样节制鼠标移动、点击等可实现浏览网页、打开、关闭法度榜样等电脑操作。然则因为节制鼠标历程中要多次发出语音敕令, 同时要集中留意力察看光标的位置, 以是也存在用户轻易疲惫的问题。

  后续将对改进语音节制鼠标应用舒适环境和前进节制效率等做进一步钻研。

相关阅读
热门阅读