一种全程语音实现方法及系统技术方案

技术编号:14339126 阅读:72 留言:0更新日期:2017-01-04 11:49
本发明专利技术公开一种全程语音实现方法及系统。实现方法包括步骤:A、启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;B、当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;C、当全程语音服务端接收到语音信息后,对所述语音信息进行解析,并通过socket方式向应用程序发送所解析的语义信息;D、应用程序接收到全程语音服务端发送过来的语义信息后,调用相应的控件响应函数,进行相应的响应操作。本发明专利技术所提供的全程语音实现方法及系统,具有灵活性好、适配性高、通用性好的优点。

【技术实现步骤摘要】

本专利技术涉及安卓语音应用领域,尤其涉及一种全程语音实现方法及系统
技术介绍
现有技术中,全程语音交互要求语音助手获取当前用户正在交互的应用和界面信息,并且还需获取应用界面中所显示的信息,以便进行语音识别和语义理解时,并优先命中当前界面上的功能,并实现语音调用。语点将上述应用和界面等信息定义为个性化场景信息。个性化场景信息包含:场景ID和动态数据。场景ID是指每个需要支持全程语音交互的应用在每个不同的场景界面下所具有的唯一的场景ID,通过该场景ID可在语点中独立定义其可能的功能组合(如同时支持语音选集和语音播放控制功能等)。动态数据是指应用界面提供辅助的动态信息(如在影视检索列表中各个影视名字,通过动态检索得到)。现有技术中的全程语音交互方案,其原理如下:启动语音交互时,语点以Broadcast(广播)消息方式通知应用程序,告知当前应用程序开始提交场景信息;如果应用程序如果处于前台显示,则通过startservice(启动服务)方式将当前的场景信息提交给语点;语音识别时将结合场景信息,优先命中场景中的功能,语音助手可通过实现约定的startActivity(启动事件)、startService(启动服务)、sendBroadcast(发送广播)三种方式来调用应用程序,应用程序收到调用指令后,完成用户所要的功能。上述现有技术的方案,其不足之处在于,所有需要响应语音指令的应用程序,都需要与语音助手对接适配,所以工作量大,可移植和可维护性不佳,所以现有技术中的全程语音方案灵活性差、适配性不高、通用性差。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供一种全程语音实现方法及系统,旨在解决现有技术中的全程语音方案灵活性差、适配性不高、通用性差等问题。本专利技术的技术方案如下:一种全程语音实现方法,其中,包括:步骤A、启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;步骤B、当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;步骤C、当全程语音服务端接收到语音信息后,对所述语音信息进行解析,并通过socket方式向应用程序发送所解析的语义信息;步骤D、应用程序接收到全程语音服务端发送过来的语义信息后,调用相应的控件响应函数,进行相应的响应操作。所述的全程语音实现方法,其中,所述步骤C具体包括:步骤C1、当全程语音服务端接收到语音信息后,进行语义解析;步骤C2、判断语义解析出的语义信息是否与应用程序提交的资料相匹配,若是则进入步骤C3;步骤C3、通过socket方式向应用程序发送所解析的语义信息。所述的全程语音实现方法,其中,所述步骤A还包括:每次启动应用程序时启动一个线程,用来循环等待全程语音服务端发送过来的语义信息,并根据所接收的语义信息做相应的响应操作。所述的全程语音实现方法,其中,所述步骤A之前还包括:步骤A0、预先为应用程序的UI控件添加注解。所述的全程语音实现方法,其中,所述步骤B具体包括:B1、获取切换到前台的应用程序的根节点;B2、获取到所述根节点之后,通过反射的方法,获取相应的类名,然后遍历所述根节点;B3、遍历所述根节点后,根据所述注解获取所述应用程序的控件节点信息。一种全程语音实现系统,其中,包括:socket连接模块,用于启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;记录模块,用于当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;语音发送模块,用于当全程语音服务端接收到语音信息后,对所述语音信息进行解析,并通过socket方式向应用程序发送所解析的语义信息;操作响应模块,用于应用程序接收到全程语音服务端发送过来的语义信息后,调用相应的控件响应函数,进行相应的响应操作。所述的全程语音实现系统,其中,所述语音发送模块具体包括:语义解析单元,用于当全程语音服务端接收到语音信息后,进行语义解析;语义匹配单元,用于判断语义解析出的语义信息是否与应用程序提交的资料相匹配,若是则进入语义发送单元;语义发送单元,用于通过socket方式向应用程序发送所解析的语义信息。所述的全程语音实现系统,其中,所述socket连接模块还包括:线程启动单元,用于每次启动应用程序时启动一个线程,用来循环等待全程语音服务端发送过来的语义信息,并根据所接收的语义信息做相应的响应操作。所述的全程语音实现系统,其中,还包括:注解添加模块,用于预先为应用程序的UI控件添加注解。所述的全程语音实现系统,其中,所述记录模块具体包括:根节点获取单元,用于获取切换到前台的应用程序的根节点;根节点遍历单元,用于获取到所述根节点之后,通过反射的方法,获取相应的类名,然后遍历所述根节点;控件节点信息获取单元,用于遍历所述根节点后,根据所述注解获取所述应用程序的控件节点信息。有益效果:通过本专利技术所提供的全程语音实现方法及系统,第三方开发者无需了解全程语音的要求,只要将开发的应用安装到支持全程语音的系统中,即可实现对全程语音的支持,其具有灵活性好、适配性高、通用性好的优点。附图说明图1为本专利技术一种全程语音实现方法较佳实施例的流程图。图2为图1所示方法中步骤S103的具体流程图。图3为本专利技术一种全程语音实现系统较佳实施例的结构框图。图4为图3所示系统中语音发送模块的具体结构框图。具体实施方式本专利技术提供一种全程语音实现方法及系统,为使本专利技术的目的、技术方案及效果更加清楚、明确,以下对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。请参阅图1,图1为本专利技术一种全程语音实现方法较佳实施例的流程图,如图所示,其包括:步骤S101、启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;步骤S102、当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;步骤S103、当全程语音服务端接收到语音信息后,通过socket方式向应用程序发送语音信息;步骤S104、应用程序接收到全程语音服务端发送过来的语音信息后,调用相应的控件响应函数,进行相应的响应操作。由于安卓系统中的应用,绝大部分都是基于安卓系统中的控件开发,控件的组织结构在系统中都是按照树状结构组织,所以可获取每个应用中的控件属性信息并对其操作,即可实现通过语音对其操控。具体来说,在所述步骤S101中,修改安卓系统的源代码,具体是定位到安卓系统中各个应用程序的启动入口部分,也就是修改应用程序每次启动时都要执行的代码部分,通过本步骤的修改,其实现两个功能,一个功能是每次启动应用程序时打开一个相应的客户端socket,用来连接全程语音服务端socket,并实现二者的socket连接;另外一个功能则是启动一个线程,循环等待全程语音服务端发送过来的语义信息,并根据所接收的语义信息做相应的响应操作。在所述步骤S102中,在当应用程序切换到前台时,可通过反射机制获取应用程序的控件节点信息,并提交给全程语音服务端,全程语音服务端记录当前处本文档来自技高网...
一种全程语音实现方法及系统

【技术保护点】
一种全程语音实现方法,其特征在于,包括:步骤A、启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;步骤B、当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;步骤C、当全程语音服务端接收到语音信息后,对所述语音信息进行解析,并通过socket方式向应用程序发送所解析的语义信息;步骤D、应用程序接收到全程语音服务端发送过来的语义信息后,调用相应的控件响应函数,进行相应的响应操作。

【技术特征摘要】
1.一种全程语音实现方法,其特征在于,包括:步骤A、启动应用程序时打开一个客户端socket,用来连接全程语音服务端socket;步骤B、当应用程序切换到前台时,通过反射机制将应用程序的控件节点信息提交给全程语音服务端,全程语音服务端记录当前处于前台的应用程序;步骤C、当全程语音服务端接收到语音信息后,对所述语音信息进行解析,并通过socket方式向应用程序发送所解析的语义信息;步骤D、应用程序接收到全程语音服务端发送过来的语义信息后,调用相应的控件响应函数,进行相应的响应操作。2.根据权利要求1所述的全程语音实现方法,其特征在于,所述步骤C具体包括:步骤C1、当全程语音服务端接收到语音信息后,进行语义解析;步骤C2、判断语义解析出的语义信息是否与应用程序提交的资料相匹配,若是则进入步骤C3;步骤C3、通过socket方式向应用程序发送所解析的语义信息。3.根据权利要求1所述的全程语音实现方法,其特征在于,所述步骤A还包括:每次启动应用程序时启动一个线程,用来循环等待全程语音服务端发送过来的语义信息,并根据所接收的语义信息做相应的响应操作。4.根据权利要求1所述的全程语音实现方法,其特征在于,所述步骤A之前还包括:步骤A0、预先为应用程序的UI控件添加注解。5.根据权利要求4所述的全程语音实现方法,其特征在于,所述步骤B具体包括:B1、获取切换到前台的应用程序的根节点;B2、获取到所述根节点之后,通过反射的方法,获取相应的类名,然后遍历所述根节点;B3、遍历所述根节点后,根据所述注解获取所述应用程序的控件节点信息。6.一种全程语音实现系统,其特征在于,包括:socket连接模块,用于启动应用...

【专利技术属性】
技术研发人员:卢伟超
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1