首页> 中国专利> 一种基于JavaScript扩展的Web页面语音操控实现方法

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

摘要

本发明提供了一种基于JavaScript扩展的Web页面语音操控实现方法,所述方法包括:Web引擎获得网页地址,调用JavaScript扩展解析网页,获取网页中包含事件属性的标签和超链接标签;获取网页中的所有标签的信息;对每一个标签分配唯一操作标识,形成二元组集合;根据每个标签的标签类型,为每个标签添加对应的操作标识;用户根据网页操作标识说出关键词,将该关键词通过语音引擎解析成文本,将解析出的文本与二元组集合中的标识进行匹配,获取文本对应的匹配标识;Web引擎通过调用JavaScript脚本,触发匹配标识对应的事件函数或超链接跳转。本发明的方法不需要触发额外鼠标点击事件,能够缩短响应时间,提高处理速度,增强用户体验。

著录项

  • 公开/公告号CN106980614A

    专利类型发明专利

  • 公开/公告日2017-07-25

    原文格式PDF

  • 申请/专利权人 中国科学院声学研究所;

    申请/专利号CN201610028659.7

  • 发明设计人 党寿江;李强;脱立恒;李超鹏;

    申请日2016-01-15

  • 分类号

  • 代理机构北京方安思达知识产权代理有限公司;

  • 代理人王宇杨

  • 地址 100190 北京市海淀区北四环西路21号

  • 入库时间 2023-06-19 02:53:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-24

    授权

    授权

  • 2017-08-18

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160115

    实质审查的生效

  • 2017-07-25

    公开

    公开

说明书

技术领域

本发明涉及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脚本,触发匹配标识对应的事件函数或超链接跳转。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号