一种基于JavaScript扩展的Web页面语音操控实现方法与流程

文档序号:11677541阅读:245来源:国知局
本发明涉及web引擎
技术领域
:,具体涉及一种基于javascript扩展的web页面语音操控实现方法。
背景技术
::随着语音识别技术的飞速发展,越来越多的web应用和智能设备集成了语音功能模块,方便了人们的生活。在将语音识别功能加入到网页浏览中的时候,存在的问题是,如何高效地解析网页中的超链接标签,并通过语音控制超链接的跳转进行网页浏览。在现有的应用中,采取的一般做法是语音引擎的启动与网页的加载同时进行,在获取网页中标签的同时绑定唯一的语音文本标签,在用户说出相应的文本标签后,再计算该文本在设备屏幕上的坐标,并向该坐标发送点击事件实现链接跳转达到网页浏览。上述方法存在的问题是,在向网页标签发送点击事件之前,需要先计算该标签在屏幕中的坐标,每次当页面发生变化都需要计算一次,这种方法还需要调用系统的鼠标点击功能来触发相关操作,而额外向设备申请计算资源和使用系统功能,会显著降低超链接的跳转速度,影响用户体验。技术实现要素:本发明的目的在于克服目前web页面实现语音操控时存在的上述问题,提出一种基于javascript扩展的web页面语音操控实现方法,该方法使用javascript脚本完成语音控制,不触发额外的鼠标点击事件,无须计算标签所在屏幕坐标,提高了处理速度。为了实现上述目的,本发明提供了一种基于javascript扩展的web页面语音操控实现方法,所述方法包括:web引擎获得网页地址,调用javascript扩展解析网页,获取网页中包含事件属性的标签和超链接标签;获取网页中的所有标签的信息;对每一个标签分配唯一操作标识,形成二元组集合;根据每个标签的标签类型,为每个标签添加对应的操作标识;用户根据网页操作标识说出关键词,将该关键词通过语音引擎解析成文本,将解析出的文本与二元组集合中的标识进行匹配,获取文本 对应的匹配标识;web引擎通过调用javascript脚本,触发匹配标识对应的事件函数或超链接跳转。上述技术方案中,所述方法具体包括:步骤1)预先定义实现语音操控的javascript脚本,将该脚本注入到webview中,webview获得网页地址并加载网页;通过调用javascript脚本解析该网页,获取网页中包含事件属性的标签和超链接标签,并用prompt方法携带标签信息以对话框形式在网页中依次弹出;步骤2)webview依次捕获用javascript脚本中prompt方法产生的对话框,提取出网页中各标签的信息并识别标签类型;对每一个标签分配唯一操作标识,形成二元组集合;步骤3)根据每个标签的标签类型,在网页中为每个标签添加对应的操作标识;所述操作标识包括:事件、操作目标和用户可视化的描述;步骤4)用户根据网页操作标识说出关键词,将该关键词通过语音引擎解析成文本,将解析出的文本与二元组集合中的操作标识进行匹配,获取文本对应的匹配标识;步骤5)web引擎通过调用javascript脚本,触发匹配标识对应的事件函数或超链接跳转。上述技术方案中,所述步骤1)具体包括:步骤1-1)预先定义实现语音操控的javascript脚本,将该脚本加载到webview中;步骤1-2)调用webview的setwebviewclient方法向webview注入webviewclient类对象,并把加载javascript脚本的代码添加到类中的onpagefinished方法中;步骤1-3)当webview加载网页完毕后即触发onpagefinished方法,调用脚本解析网页,获取网页中包含事件属性的标签和超链接标签,以标签为单位将标签信息传入prompt方法,prompt方法作为从网页向外传递标签信息的媒介,在网页中弹出带有提示信息的对话框。上述技术方案中,所述步骤2)具体包括:步骤2-1)javascript调用webview的setwebchromeclient方法注入webchromeclient类对象,重写类成员函数onjsprompt,监听网页中的prompt对话框,如果prompt方法弹出提示对话框,webview依次捕获prompt方法产生的对话框,提取出各标签的id,tag,class和text信息;步骤2-2)识别每个标签的标签类型:超链接标签和事件属性标签;步骤2-3)根据每个标签的标签类型,为每个标签生成二元组。上述技术方案中,所述步骤2-2)中的事件属性标签包括:具有onsubmit事件<form>标签,具有onplay事件、onplaying事件、onpause事件的<audio>、<embed>、<img>、<object>以及<video>媒体标签,具有onkeydown事件、onclick事件、ondblcick事件的<a>、<body>、<button>、<form>、<img>、<input>、<span>、<table>、<tbody>标签。上述技术方案中,所述步骤2-2)中的超链接标签指的是具有href属性的<a>标签。上述技术方案中,所述步骤2-3)的具体实现过程为:如果标签为超链接标签,生成的二元组为:(超链接标识,超链接),其中超链接标识直接使用标签的text信息;如果标签的类型为事件属性,由于其text信息内容为空,需要对text进行自定义:定义为页面内唯一的事件名字描述标识text;事件属性标签生成的二元组为:(唯一的事件名字描述标识,事件函数)。上述技术方案中,所述步骤3)的具体实现过程为:通过javascript脚本,将唯一操作标识封装成可见的html代码片段,并将该片段写入到html对应标签的前方、后方或标签内部,向具有事件属性的标签添加text标识。本发明的优点在于:本发明的方法不需要触发额外鼠标点击事件,能够缩短响应时间,提高处理速度,增强用户体验。附图说明图1为本发明的基于javascript扩展的web页面语音操控实现方法的流程图。具体实施方式下面结合附图和具体实施例对本发明的方法做进一步的说明。本实施例为:基于android平台的webview组件和讯飞语音云的语音识别引擎,实现语音控制网页浏览。如图1所示,一种基于javascript扩展的web页面语音操控实现方法,所述方法包括:步骤1)预先定义实现语音操控的javascript脚本,将该脚本注入到webview中,webview获得网页地址并加载网页;通过调用javascript脚本解析该网页,获取网页 中包含事件属性的标签和超链接标签;并用prompt方法携带标签信息以对话框形式在网页中依次弹出;具体包括:步骤1-1)预先定义实现语音操控的javascript脚本,将该脚本加载到webview中;步骤1-2)调用webview的setwebviewclient方法向webview注入webviewclient类对象,并把加载javascript脚本的代码添加到类中的onpagefinished方法中;步骤1-3)当webview加载网页完毕后即触发onpagefinished方法,调用javascript脚本解析网页,获取网页中包含事件属性的标签和超链接标签,以标签为单位将标签信息传入prompt方法,prompt方法作为从网页向外传递标签信息的媒介,在网页中弹出带有提示信息的对话框;步骤2)webview依次捕获用javascript脚本中prompt方法产生的对话框,提取出网页中各标签的信息并识别标签类型;对每一个标签分配唯一操作标识,形成二元组集合;体包括:步骤2-1)javascript调用webview的setwebchromeclient方法注入webchromeclient类对象,重写类成员函数onjsprompt,监听网页中的prompt对话框,如果prompt方法弹出提示对话框,webview依次捕获prompt方法产生的对话框,提取出各标签的id,tag,class和text信息;步骤2-2)识别每个标签的标签类型:超链接标签和事件属性标签;所述事件属性标签包括:具有onsubmit事件<form>标签,具有onplay事件、onplaying事件、onpause事件的<audio>、<embed>、<img>、<object>以及<video>媒体标签,具有onkeydown事件、onclick事件、ondblcick事件的<a>、<body>,<button>,<form>,<img>,<input>,<span><table>,<tbody>等标签。所述超链接标签指的是具有href属性的<a>标签。步骤2-3)根据每个标签的标签类型,为每个标签生成二元组;如果标签为超链接标签,生成的二元组为:(超链接标识,超链接),其中超链接标识直接使用标签的text信息;如果标签的类型为事件属性,由于其text信息内容为空,需要对text进行自定义:需要对text进行自定义:定义为页面内唯一的事件名字描述标识text;事件属性标签生成的二元组为:(唯一的事件名字描述标识,事件函数);步骤3)根据每个标签的标签类型,在网页中为每个标签添加对应的操作标识;所述操作标识包括:事件、操作目标和用户可视化的描述;调用javascript脚本改写网页,向具有事件属性的标签添加相关text标识:在不常用标签前方、后方或者内部显示自定义text信息供用户参考;而常用标签(例如网页视频播放窗口的全屏操作等)的标识是默认隐藏的,以节约网页空间;这是因为它们是手动定义的,表示意义明确的常用功能,用户并不需要通过查看标识就能使用;如果用户需要显示这些常用标识,同样可以通过javascript为网页中的常用元素添加这些标识。所述通过javascript脚本改写网页的过程为:通过javascript脚本,将唯一操作标识封装成可见的html代码片段,并将该片段写入到html对应标签的前方、后方或标签内部。步骤4)用户根据网页操作标识说出关键词,将该关键词通过语音引擎解析成文本,将解析出的文本与二元组集合中的标识进行匹配,获取文本对应的匹配标识;在本实施例中,用户说出动作关键词,由讯飞语音云的语音识别引擎将其解析成文本,在预定义的二元组集合的标识项中进行遍历匹配,并判断匹配到的标识类型:a)匹配到的标识是操作命令(例如刷新、前进后退、网页移动等),由webview调用相应函数执行相应控制动作;b)匹配标识文本是超链接文本,通过javascript向对应超链接标签发送跳转命令跳转到目标超链接;c)匹配标识是具有事件属性的标签的自定义文本,通过javascript向网页中该标签发送相关操作,例如选中页面的搜索框输入关键词进行搜索。步骤5)web引擎通过调用javascript脚本,触发匹配标识对应的事件函数或超链接跳转。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1