一种防止蓝牙语音遥控器语音失效的方法和装置与流程

文档序号:14679837发布日期:2018-06-12 22:03阅读:859来源:国知局
一种防止蓝牙语音遥控器语音失效的方法和装置与流程

本发明涉及计算机领域,尤其涉及一种防止蓝牙语音遥控器语音失效的方法和装置。



背景技术:

如今,蓝牙语音遥控器应用越来越广泛,针对蓝牙语音遥控器,通用的做法就是采用语音遥控器和与其配对的蓝牙dongle来实现对智能电视、OTT盒子或是其他设备的操作。随着智能电视和电视盒子的发展,智能电视和电视盒子上的应用程序日益丰富,目前有很多基于Android系统的蓝牙语音遥控器产品,该类型产品采用蓝牙传输语音数据,在语音基础上可以做很多AI应用。

基于Android系统的蓝牙语音遥控器一般都是在Android系统后台进行语音数据处理,具体到Android系统上一般都是在一个Service服务中处理语音数据,但是在Android系统低内存状况下,Android系统的Service服务往往会被Android系统 Kill掉,这样,如果Android系统的Service服务被Android系统Kill掉后,语音功能就不能正常使用了。

为了确保语音功能正常使用,就要确保处理语音的Service服务不被Android系统Kill掉,或者被Android系统Kill掉后也能迅速恢复,因此,现有技术中为了应用Service服务保活的常见做法是在Android系统中存储有两个Service服务,并且两个Service服务时间间隔检测对方是否还存活,如果一方Service服务被Android系统Kill掉,另一方Service服务马上恢复被Android系统Kill掉的Service服务。这两个Service服务可以来自同一个应用,也可以来自不同应用,来自不同应用的话相当于应用之间组成一个互保同盟。但是这种Service服务保活方法必须定时检测Service服务是否还存活,消耗了Android系统资源,另外当这两个Service服务同时被Android系统Kill掉的话,Service服务也就启动不了。

因此,目前亟待解决的问题是如何提供一种行之有效的防止蓝牙语音遥控器语音失效的方法,以最大程度保障蓝牙语音遥控器语音功能的正常使用,从而避免现有的Service服务保活方法消耗Android系统资源,以及当两个Service服务同时被Android系统Kill掉的话,Service服务也就再也启动不起来了的现象。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种防止蓝牙语音遥控器语音失效的方法和装置,以最大程度保障蓝牙语音遥控器语音功能的正常使用。

为了解决上述技术问题,本申请第一方面提供了一种防止蓝牙语音遥控器语音失效的方法,包括:

当所述Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别所述蓝牙适配器的设备类型,其中,所述Android设备的设备类型包括蓝牙适配器的供应商识别码VID和产品识别码PID;

若所述Android设备存储有与所述蓝牙适配器对应的驱动程序,则所述Android设备根据所述蓝牙适配器对应的驱动程序驱动所述蓝牙适配器;

所述Android设备接收所述蓝牙适配器发送的语音数据;

所述Android设备对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作;

所述Android设备在执行完所述控制指令所指示的操作之后向所述蓝牙适配器发送执行完所述控制指令所指示的操作的应答指令;

若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置。

其中,Android设备为搭载有Android操作系统(Android OS)的终端,终端包括但不限于诸如智能电视、智能机顶盒、移动电话。也可以是其它终端,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型计算机或平板电脑或台式计算机。

蓝牙适配器用于接收蓝牙信号,蓝牙适配器具有1个USB(Universal Serial Bus,通用串行总线,简称USB)接口,USB接口的类型和Android设备的USB接口的类型匹配;蓝牙适配器还具有蓝牙芯片,用于接收蓝牙语音遥控器发送的蓝牙信号。蓝牙适配器为USB设备,蓝牙适配器的设备类型表示预先设置的USB设备的类型,蓝牙适配器的非易失性存储器中可存储有表示设备类型的标识。

在第一方面的一种可能的实现方式中,所述Android设备根据所述蓝牙适配器对应的驱动程序驱动所述蓝牙适配器,还包括:

所述Android设备获取所述蓝牙适配器的供应商识别码VID和产品识别码PID,并存储所述蓝牙适配器的VID和PID。

在第一方面的一种可能的实现方式中,所述若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置之后,还包括:

所述Android设备重新检测到其通用串行总线USB接口插入所述蓝牙适配器;

所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作。

在第一方面的一种可能的实现方式中,所述Android设备对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令包括:

所述Android设备将所述语音数据发送给位于互联网中的语义识别服务器,以指示所述语义识别服务器根据预设的语义数据库识别所述语音数据的语义和查询与所述语义对应的控制指令;

所述Android接收所述语义识别服务器发送的控制指令。

在第一方面的一种可能的实现方式中,所述语音数据的格式为MP3格式。

相应地,本申请第二方面还提供了一种防止蓝牙语音遥控器语音失效的装置,包括识别单元、驱动单元、接收单元、处理单元及发送单元;

所述识别单元,用于当所述Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别所述蓝牙适配器的设备类型;

所述驱动单元,用于若所述Android设备存储有与所述蓝牙适配器对应的驱动程序,则所述Android设备根据所述蓝牙适配器对应的驱动程序驱动所述蓝牙适配器;

所述接收单元,用于所述Android设备接收所述蓝牙适配器发送的语音数据;

所述处理单元,用于所述Android设备对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作;

所述发送单元,用于所述Android设备在执行完所述控制指令所指示的操作之后向所述蓝牙适配器发送执行完所述控制指令所指示的操作的应答指令,若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置,以便所述Android设备在重新检测到其通用串行总线USB接口插入所述蓝牙适配器时,所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作。

在第二方面的一种可能的实现方式中,所述处理单元还包括:

确定子单元,用于对所述语音数据进行语义识别得到语义,以及确定与所述语义关联的控制指令;

执行子单元,用于执行所述控制指令所指示的操作。

在第二方面的一种可能的实现方式中,所述确定子单元用于:

将所述语音数据发送给位于互联网中的语义识别服务器,以指示所述语义识别服务器根据预设的语义数据库识别所述语音数据的语义和查询与所述语义对应的控制指令;

接收所述语义识别服务器发送的控制指令。

在第二方面的一种可能的实现方式中,所述驱动单元还用于:

获取所述蓝牙适配器的供应商识别码VID和产品识别码PID,并存储所述蓝牙适配器的VID和PID。

实施本发明实施例,具有如下有益效果:

当所述Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别所述蓝牙适配器的设备类型;若所述Android设备存储有与所述蓝牙适配器对应的驱动程序,则所述Android设备根据所述蓝牙适配器对应的驱动程序驱动所述蓝牙适配器;所述Android设备接收所述蓝牙适配器发送的语音数据;所述Android设备对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作;所述Android设备在执行完所述控制指令所指示的操作之后向所述蓝牙适配器发送执行完所述控制指令所指示的操作的应答指令;若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置,以便所述Android设备在重新检测到其通用串行总线USB接口插入所述蓝牙适配器时,所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作,这样,可以最大程度保障蓝牙语音遥控器语音功能的正常使用,从而避免现有的Service服务保活方法消耗Android系统资源,以及当两个Service服务同时被Android系统Kill掉的话,Service服务也就启动不了的现象。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种防止蓝牙语音遥控器语音失效的方法的流程示意图;

图2是本发明实施例提供的防止蓝牙语音遥控器语音失效的装置的结构示意图;

图3是本发明实施例提供的防止蓝牙语音遥控器失效的装置的处理单元的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是本发明实施例提供的一种防止蓝牙语音遥控器语音失效的方法的流程示意图,在本发明实施例中,所述方法包括:

S101、当Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别蓝牙适配器的设备类型,其中,所述Android设备的设备类型包括蓝牙适配器的供应商识别码VID和产品识别码PID。

其中,Android设备为搭载Android系统的终端,在现有的Android设备中默认存储有蓝牙适配器的驱动程序,但是由于蓝牙适配器的复杂性,没有蓝牙适配器的驱动程序。Android设备设置有至少一个USB接口,USB接口的类型不实施例不作限制。蓝牙适配器设置有一个USB接口,蓝牙适配器的USB接口和Android设备的USB接口相互匹配,例如:Android设备的USB接口为公头,那么蓝牙适配器的USB接口为母头,反之Android设备的USB接口为母头,那么蓝牙适配器的USB接口为公头。Android设备检测到蓝牙适配器插入到Android设备的USB接口时,,Android设备可以通过USB接口上个引脚的电压变化来检测蓝牙适配器插入。Android设备识别蓝牙适配器的设备类型,识别的方法可以是:蓝牙适配器中可预先存储有表示设备类型的标识,Android设备读取蓝牙适配器中的标识设备类型的标识确定设备类型。

其中,蓝牙适配器的非易失性存储器中存储有VID和PID,VID标识蓝牙适配器的厂商名称,PID表示蓝牙适配器的设备名称。

S102、若Android设备存储有与蓝牙适配器对应的驱动程序,则Android设备根据与蓝牙适配器对应的驱动程序驱动蓝牙适配器。

其中,所述蓝牙适配器的设备类型是预先设置的。

其中,Android设备的内核中默认存储有蓝牙适配器的驱动程序,Android设备可利用预先存储的驱动程序对蓝牙适配器进行驱动。

S103、Android设备接收蓝牙适配器发送的语音数据。

其中,蓝牙适配器接收蓝牙语音遥控器以蓝牙方式发送的语音数据,Android设备接收所述蓝牙适配器发送的语音数据。

语音蓝牙遥控器内置有麦克风,遥控器通过麦克风接收用户发送的语音信号,将语音信号进行压缩处理得到语音数据,语音数据经压缩后通过蓝牙方式发送给蓝牙适配器,蓝牙适配器接受到数据包之后将数据包解压得到PCM格式的语音数据。

S104、Android设备对语音数据进行语义识别得到语义,确定与语义关联的控制指令,并执行控制指令所指示的操作。

其中,语义表示语音数据的含义,语义识别和控制指令的确定可以在Android设备本地执行,也可以在互联网上的语义识别服务器上执行,本实施例不作限制

可选的,所述Android设备将所述语音数据发送给位于互联网中的语义识别服务器,以指示所述语义识别服务器根据预设的语义数据库识别所述语音数据的语义和查询与所述语义对应的控制指令。

其中,蓝牙适配器发送过来的语音数据为压缩后的数据,Android设备将语音数据进行解压缩处理得到原始语音数据,原始语音数据位未压缩的语音数据,未压缩的语音数据包括Windows PCM(Windows Pulse Code Modulation,微软脉冲编码调制)格式的语音数据,即WAV格式的语音数据,原始语音数据中包括多个采样点。然后终端将原始语音数据进行静音切除操作,具体包括:将原始语音数据中头部和尾部中幅度小于预设值的采样点移除。然后,Android设备将静音切除后的语音数据进行分帧处理,具体过程为:Android设备将静音切除后的采样点根据预设的时长进行分段得到多个时间窗,每个时间窗对应的采样点称为一个语音帧,多个时间窗之间存在重叠。例如:每个分段包括25ms的采样点,相邻的两个时间窗存在10ms的重叠。

Android设备将分帧处理后的多个语音帧,Android设备将多个语音帧发送给预设的语义识别服务器,语义识别服务器位于互联网中,Android设备指示语义识别服务器对发送的多个语音帧进行语义识别。语义数据库用于提取语音数据的含义,语义数据库可利用现有的任意一种的数据库,本实施例不作限制。控制指令用于Android设备上的应用程序或操作系统执行相关操作。语义识别服务器将控制指令发送给Android设备。

其中,控制指令为执行搜索节目、换台、调节音量的操作。

S105、Android设备在执行完控制指令所指示的操作之后向蓝牙适配器发送执行完控制指令所指示的操作的应答指令;

S106、若蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则蓝牙适配器自行重置。

其中,所述若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置之后,还包括:

所述Android设备重新检测到其通用串行总线USB接口插入所述蓝牙适配器;

所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作。

本发明实施例的防止蓝牙语音遥控器语音失效的工作过程包括:

Android设备检测到蓝牙适配器插入到Android设备的USB接口时,Android系统会发出携带有蓝牙适配器的设备类型的蓝牙适配器接入的广播消息,Android应用层接收到蓝牙适配器接入的广播消息,并根据蓝牙适配器的设备类型判断是否存储有与蓝牙适配器对应的驱动程序,若是,则Android设备根据与蓝牙适配器对应的驱动程序驱动蓝牙适配,从而启动处理语音数据的Service服务;

当用户使用语音的时候,蓝牙语音遥控器把语音数据发送给蓝牙适配器,蓝牙适配器将语音数据转发到Android应用层Service服务进行处理,Android应用层Service中处理完这条语音数据后会发送一个应答回文给蓝牙适配器,如果Android应用层Service服务挂掉的话,蓝牙适配器就收不到应答回文。当蓝牙适配器在预先设置的时间域值内没有收到应答回文的话,则蓝牙适配器可以认为Android应用层Service服务已经挂掉,此时,蓝牙适配器自行重置, 蓝牙适配器重置的效果相当于蓝牙适配器被插拔,Android设备重新会检测到蓝牙适配器的插入,并发送会发送蓝牙适配器插入的广播消息,上层Service服务重新启动,以处理语音数据。

实施本发明实施例,具有如下有益效果:

当Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别蓝牙适配器的设备类型;若Android设备存储有与蓝牙适配器对应的驱动程序,则Android设备根据蓝牙适配器对应的驱动程序驱动蓝牙适配器;Android设备接收蓝牙适配器发送的语音数据;Android设备对语音数据进行语义识别得到语义,确定与语义关联的控制指令,并执行控制指令所指示的操作;Android设备在执行完控制指令所指示的操作之后向蓝牙适配器发送执行完控制指令所指示的操作的应答指令;若蓝牙适配器在预设的时间域值内没有接收到应答指令,则蓝牙适配器自行重置,以便所述Android设备在重新检测到其通用串行总线USB接口插入所述蓝牙适配器时,所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作,这样,可以最大程度保障蓝牙语音遥控器语音功能的正常使用,从而避免现有的Service服务保活方法消耗Android系统资源,以及当两个Service服务同时被Android系统Kill掉的话,Service服务也就再也启动不起来了的现象。

参见图2,为本发明实施例提供的防止蓝牙语音遥控器语音失效的装置的结构示意图,以下简称装置,本发明实施例的装置2用于执行图1中的一种防止蓝牙语音遥控器语音失效的方法,所涉及的术语和过程可参照图1实施例的描述。装置2包括:包括识别单元201、驱动单元202、接收单元203、处理单元204及发送单元205。

所述识别单元201,用于当所述Android设备检测到其通用串行总线USB接口插入蓝牙适配器时,识别所述蓝牙适配器的设备类型;

所述驱动单元202,用于若所述Android设备存储有与所述蓝牙适配器对应的驱动程序,则所述Android设备根据所述蓝牙适配器对应的驱动程序驱动所述蓝牙适配器;

所述接收单元203,用于所述Android设备接收所述蓝牙适配器发送的语音数据;

所述处理单元204,用于所述Android设备对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作;

所述发送单元205,用于所述Android设备在执行完所述控制指令所指示的操作之后向所述蓝牙适配器发送执行完所述控制指令所指示的操作的应答指令,若所述蓝牙适配器在预设的时间域值内没有接收到所述应答指令,则所述蓝牙适配器自行重置,以便所述Android设备在重新检测到其通用串行总线USB接口插入所述蓝牙适配器时,所述Android设备接收所述蓝牙适配器发送的语音数据,并对所述语音数据进行语义识别得到语义,确定与所述语义关联的控制指令,并执行所述控制指令所指示的操作。

其中,所述驱动单元202还用于:

获取所述蓝牙适配器的供应商识别码VID和产品识别码PID,并存储所述蓝牙适配器的VID和PID。

其中,如图3所示,所述处理单元204还包括:

确定子单元2041,用于对所述语音数据进行语义识别得到语义,以及确定与所述语义关联的控制指令;

执行子单元2042,用于执行所述控制指令所指示的操作。

其中,所述确定子单元2041用于:

将所述语音数据发送给位于互联网中的语义识别服务器,以指示所述语义识别服务器根据预设的语义数据库识别所述语音数据的语义和查询与所述语义对应的控制指令;

接收所述语义识别服务器发送的控制指令。

本发明实施例和图1的方法实施例一基于同一构思,其带来的技术效果也相同,具体过程可参照方法实施例一的描述,此处不再赘述。

在一种可能的设计中,本发明实施例的装置2可为Android设备,Android设备为Android®操作系统的终端,诸如智能电视、智能机顶盒、移动电话。也可以是其它终端,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型计算机或平板电脑或台式计算机。

在一种可能的设计中,本发明实施例的装置2可以为芯片,芯片包括但不限于现场可编程门阵列、中央处理器、数字型处理器和复杂可编程逻辑器件中至少一种。

需要说明的是,本发明的实施例中Android设备可以为一种包括显示器和触敏表面的终端。然而应当理解,终端可以包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操作杆。

终端通常支持多种应用程序,诸如以下中的一种或多种:画图应用程序、呈现应用程序、文字处理应用程序、网页创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、锻炼支持应用程序、相片管理应用程序、数字相机应用程序、数字视频摄像机应用程序、网络浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放器应用程序。

可在终端上执行的各种应用程序可使用至少一个共用的物理用户接口设备,诸如触敏表面。触敏表面的一种或多种功能以及显示在终端上的相应信息可从一种应用程序调整和/或变化至下一种应用程序和/或在相应应用程序内被调整和/或变化。这样,终端的共用物理架构(诸如触敏表面)可利用对于用户而言直观清楚的用户界面来支持各种应用程序。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1