跨平台的分布式就近唤醒方法和装置与流程
本申请涉及物联网领域,特别是涉及跨平台的分布式就近唤醒方法、装置、计算机设备和计算机可读存储介质。
背景技术:
分布式就近唤醒技术可以用于解决同一空间内多个支持相同唤醒词的语音交互设备在接收到相同唤醒指令时同时响应的问题,即处于同一空间内的多个语音交互设备通过本地局域网组网和通信,在接收到唤醒指令后执行仲裁逻辑选出距离用户最近的设备,该设备负责完成与用户后续的交互。仲裁逻辑的基本原理是:多个语音交互设备完成组网后,基于确定的某个策略(例如按照设备mac地址字符排序,将最小的设备确定为仲裁节点)选择出冲裁节点;各个语音交互设备分别计算唤醒语音的语音能量值并统一发送给仲裁节点;仲裁节点根据语音能量值随传播距离逐渐衰减的原理选择语音能量值最高的设备,认为该设备距离用户最近,并通知该设备响应用户。
智能家居场景中,同一空间内存在多种类型的语音交互设备,例如android中控音箱、linux智能面板、各种家电等,这些设备可能隶属于同一个厂商或者品牌,因此支持相同的唤醒词。相关技术中的分布式就近唤醒技术存在以下问题:
1、相关技术中的分布式就近唤醒技术仅针对单一类型的设备进行设计和实现,无法做到跨个硬件和系统使用;
2、不同类型的设备因为麦克风拾音的增益不同,其语音能量值不具备可比性,无法作为仲裁过程中距离比较的依据,导致就近唤醒的准确度较低。
目前针对相关技术中的分布式就近唤醒技术无法跨平台使用且其就近唤醒的准确度较低的问题,尚未提出有效的解决方案。
技术实现要素:
本申请实施例提供了一种跨平台的分布式就近唤醒方法、装置、计算机设备和计算机可读存储介质,以至少解决相关技术中分布式就近唤醒技术无法跨平台使用且其就近唤醒的准确度较低的问题。
第一方面,本申请实施例提供了一种跨平台的分布式就近唤醒方法,包括:
在检测到唤醒指令时,组网中的仲裁节点接收组网中其他请求设备发送的仲裁请求,其中,所述请求设备包括至少一种类型的多个设备,所述仲裁请求中携带有所述请求设备的归一化语音能量值,所述归一化语音能量值为所述请求设备对所述唤醒指令检测到的语音能量值与所述请求设备的归一化系数的乘积;
所述仲裁节点响应所述仲裁请求,从所述请求设备中选择出归一化语音能量值最大的目标设备,并向所述目标设备发送通知消息,其中,所述通知消息用于通知所述目标设备响应所述唤醒指令。
在其中一些实施例中,所述请求设备的归一化系数通过以下过程确定:
将所述请求设备与参考设备对目标音频的录音分别送入语音能量检测工具,得到所述请求设备对所述目标音频的第一语音能量值和所述参考设备对所述目标音频的第二语音能量值;
将所述第二语音能量值除以所述第一语音能量值得到的值确定为所述请求设备的归一化系数。
在其中一些实施例中,在检测到唤醒指令之前,所述方法还包括:
编译并封装支持不同操作系统平台调用的接口,所述接口至少包括:
初始化接口,用于创建组网和选举所述仲裁节点;
开启就近唤醒接口,用于所述仲裁节点创建仲裁处理线程,其中,所述仲裁处理线程用于在接收到所述仲裁请求时进行冲裁处理选择出所述目标设备;
关闭接近唤醒接口,用于结束所述仲裁处理线程;
发送仲裁请求接口,用于所述请求设备向所述仲裁节点发送所述仲裁请求,并接收所述仲裁节点返回的仲裁结果。
在其中一些实施例中,在检测到唤醒指令时,通过调用所述初始化接口创建组网并选举所述仲裁节点;通过调用所述发送仲裁请求接口所述请求设备向所述仲裁节点发送所述仲裁请求;通过调用开启就近唤醒接口所述仲裁节点接收所述请求设备发送的所述仲裁请求,并响应所述仲裁请求从所述请求设备中选择出所述目标设备;通过调用所述发送仲裁请求接口所述仲裁节点向所述目标设备发送所述通知消息,以指示所述目标设备响应所述唤醒指令;通过调用所述关闭接近唤醒接口所述仲裁节点结束对所述仲裁请求的响应。
第二方面,本申请实施例提供了一种跨平台的分布式就近唤醒装置,包括:
接收请求单元,用于在检测到唤醒指令时,组网中的仲裁节点接收组网中其他请求设备发送的仲裁请求,其中,所述请求设备包括至少一种类型的多个设备,所述仲裁请求中携带有所述请求设备的归一化语音能量值,所述归一化语音能量值为所述请求设备对所述唤醒指令检测到的语音能量值与所述请求设备的归一化系数的乘积;
仲裁响应单元,用于所述仲裁节点响应所述仲裁请求,从所述请求设备中选择出归一化语音能量值最大的目标设备,并向所述目标设备发送通知消息,其中,所述通知消息用于通知所述目标设备响应所述唤醒指令。
在其中一些实施例中,所述请求设备的归一化系数通过以下过程确定:
将所述请求设备与参考设备对目标音频的录音分别送入语音能量检测工具,得到所述请求设备对所述目标音频的第一语音能量值和所述参考设备对所述目标音频的第二语音能量值;
将所述第二语音能量值除以所述第一语音能量值得到的值确定为所述请求设备的归一化系数。
在其中一些实施例中,所述装置还包括:
编译封装单元,用于在检测到唤醒指令之前,编译并封装支持不同操作系统平台调用的接口,所述接口至少包括:
初始化接口,用于创建组网和选举所述仲裁节点;
开启就近唤醒接口,用于所述仲裁节点创建仲裁处理线程,其中,所述仲裁处理线程用于在接收到所述仲裁请求时进行冲裁处理选择出所述目标设备;
关闭接近唤醒接口,用于结束所述仲裁处理线程;
发送仲裁请求接口,用于所述请求设备向所述仲裁节点发送所述仲裁请求,并接收所述仲裁节点返回的仲裁结果。
在其中一些实施例中,所述装置用于:在检测到唤醒指令时,通过调用所述初始化接口创建组网并选举所述仲裁节点;通过调用所述发送仲裁请求接口所述请求设备向所述仲裁节点发送所述仲裁请求;通过调用开启就近唤醒接口所述仲裁节点接收所述请求设备发送的所述仲裁请求,并响应所述仲裁请求从所述请求设备中选择出所述目标设备;通过调用所述发送仲裁请求接口所述仲裁节点向所述目标设备发送所述通知消息,以指示所述目标设备响应所述唤醒指令;通过调用所述关闭接近唤醒接口所述仲裁节点结束对所述仲裁请求的响应。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的跨平台的分布式就近唤醒方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的跨平台的分布式就近唤醒方法。
相比于相关技术,本申请实施例提供的跨平台的分布式就近唤醒方法,在检测到唤醒指令时,组网中的仲裁节点对接收到的请求设备所发送的仲裁请求进行响应,从中选择出归一化语音能量值最大的目标设备响应唤醒指令,本申请实施例通过归一化系数对请求设备的语音能量值进行预处理,能够消除不同类型的请求设备的麦克风拾音增益的差异,进而使得不同类型的请求设备的语音能量值具有可比性,从而解决了相关技术中分布式就近唤醒技术无法跨平台使用且其就近唤醒的准确度较低的问题,实现了跨平台使用分布式就近唤醒技术的目的,达到了提高分布式就近唤醒的准确度的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的移动终端的结构框图;
图2是根据本申请实施例的跨平台的分布式就近唤醒方法的流程图;
图3是根据本申请优选实施例的跨平台的分布式就近唤醒方法的流程图;
图4是根据本申请实施例的跨平台的分布式就近唤醒装置的结构框图;
图5为根据本申请实施例的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种移动终端。图1是根据本申请实施例的移动终端的结构框图。如图1所示,该移动终端包括:射频(radiofrequency,简称为rf)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(wirelessfidelity,简称为wifi)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个构成部件进行具体的介绍:
rf电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,简称为lna)、双工器等。此外,rf电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,简称为gsm)、通用分组无线服务(generalpacketradioservice,简称为gprs)、码分多址(codedivisionmultipleaccess,简称为cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,简称为wcdma)、长期演进(longtermevolution,简称为lte)、电子邮件、短消息服务(shortmessagingservice,简称为sms)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行移动终端的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(liquidcrystaldisplay,简称为lcd)、有机发光二极管(organiclight-emittingdiode,简称为oled)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现移动终端的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现移动终端的输入和输出功能。
移动终端还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160中的扬声器161,传声器162可提供用户与移动终端之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经rf电路110以发送给比如另一移动终端,或者将音频数据输出至存储器120以便进一步处理。
wifi属于短距离无线传输技术,移动终端通过wifi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了wifi模块170,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,或者替换为其他的短距离无线传输模块,例如zigbee模块、或者wapi模块等。
处理器180是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
移动终端还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,处理器180被配置为:在检测到唤醒指令时,组网中的仲裁节点接收组网中其他请求设备发送的仲裁请求,其中,所述请求设备包括至少一种类型的多个设备,所述仲裁请求中携带有所述请求设备的归一化语音能量值,所述归一化语音能量值为所述请求设备对所述唤醒指令检测到的语音能量值与所述请求设备的归一化系数的乘积;所述仲裁节点响应所述仲裁请求,从所述请求设备中选择出归一化语音能量值最大的目标设备,并向所述目标设备发送通知消息,其中,所述通知消息用于通知所述目标设备响应所述唤醒指令。
在其中一些实施例中,处理器180还被配置为:将所述请求设备与参考设备对目标音频的录音分别送入语音能量检测工具,得到所述请求设备对所述目标音频的第一语音能量值和所述参考设备对所述目标音频的第二语音能量值;将所述第二语音能量值除以所述第一语音能量值得到的值确定为所述请求设备的归一化系数。
在其中一些实施例中,处理器180还被配置为:在检测到唤醒指令之前,编译并封装支持不同操作系统平台调用的接口,所述接口至少包括:初始化接口,用于创建组网和选举所述仲裁节点;开启就近唤醒接口,用于所述仲裁节点创建仲裁处理线程,其中,所述仲裁处理线程用于在接收到所述仲裁请求时进行冲裁处理选择出所述目标设备;关闭接近唤醒接口,用于结束所述仲裁处理线程;发送仲裁请求接口,用于所述请求设备向所述仲裁节点发送所述仲裁请求,并接收所述仲裁节点返回的仲裁结果。
在其中一些实施例中,处理器180还被配置为:在检测到唤醒指令时,通过调用所述初始化接口创建组网并选举所述仲裁节点;通过调用所述发送仲裁请求接口所述请求设备向所述仲裁节点发送所述仲裁请求;通过调用开启就近唤醒接口所述仲裁节点接收所述请求设备发送的所述仲裁请求,并响应所述仲裁请求从所述请求设备中选择出所述目标设备;通过调用所述发送仲裁请求接口所述仲裁节点向所述目标设备发送所述通知消息,以指示所述目标设备响应所述唤醒指令;通过调用所述关闭接近唤醒接口所述仲裁节点结束对所述仲裁请求的响应。
本实施例还提供了一种跨平台的分布式就近唤醒方法。图2是根据本申请实施例的跨平台的分布式就近唤醒方法的流程图,如图2所示,该流程包括如下步骤:
步骤s202,在检测到唤醒指令时,组网中的仲裁节点接收组网中其他请求设备发送的仲裁请求,其中,所述请求设备包括至少一种类型的多个设备,所述仲裁请求中携带有所述请求设备的归一化语音能量值,所述归一化语音能量值为所述请求设备对所述唤醒指令检测到的语音能量值与所述请求设备的归一化系数的乘积;
步骤s204,所述仲裁节点响应所述仲裁请求,从所述请求设备中选择出归一化语音能量值最大的目标设备,并向所述目标设备发送通知消息,其中,所述通知消息用于通知所述目标设备响应所述唤醒指令。
通过上述步骤,在检测到唤醒指令时,组网中的仲裁节点对接收到的请求设备所发送的仲裁请求进行响应,从中选择出归一化语音能量值最大的目标设备响应唤醒指令,本申请实施例通过归一化系数对请求设备的语音能量值进行预处理,能够消除不同类型的请求设备的麦克风拾音增益的差异,进而使得不同类型的请求设备的语音能量值具有可比性,从而解决了相关技术中分布式就近唤醒技术无法跨平台使用且其就近唤醒的准确度较低的问题,实现了跨平台使用分布式就近唤醒技术的目的,达到了提高分布式就近唤醒的准确度的技术效果。
在上述步骤s202中,组网中可以包括多个设备,其中一个设备可以作为仲裁节点,仲裁节点之外的其他设备可以作为请求设备,请求设备可以包括多个设备,且请求设备中可以包括至少一个类型,此处的类型是指请求设备所使用的操作系统平台的类型,例如linux、android、ios等。
由于不同类型的请求设备的拾音增益不同,故现有技术直接比对不同类型的请求设备对唤醒指令的语音能量值将会导致比对结果不准确,进而影响仲裁节点选择出响应唤醒指令的目标设备的准确度,为了克服现有技术中的上述缺陷,本申请实施例将组网中的每种类型的请求设备预先进行语音能量归一化处理,具体过程可以包括:首先根据实际需求选择一个参考设备,该参考设备可以是录音一致性最好的设备,或者是出货量最多的设备,或者是用户最常用的设备等;然后播放目标音频,同时开启请求设备和参考设备录音,将两个设备的录音分别送入语音能量检测工具中,得到所述请求设备对目标音频的第一语音能量值和所述参考设备对目标音频的第二语音能量值;然后将第二语音能量值除以第一语音能量值得到的值确定为所述请求设备的归一化系数。通过上述过程可以确定出每种类型的请求设备的归一化系数,利用该归一化系数对每种类型的请求设备的语音能量值进行处理,可以使得不同类型的请求设备的语音能量值具有可比性。
若用户发出唤醒语音,则组网中的仲裁节点和请求设备会检测到该唤醒语音对应的唤醒指令。仲裁节点检测到唤醒指令时会创建仲裁处理线程并等待请求设备发送仲裁请求,请求设备检测到唤醒指令时会首先检测出该唤醒指令的语音能量值,然后再乘以该请求设备的归一化系数,所得到的乘积将作为归一化语音能量值,并向仲裁节点发送包含有该归一化语音能量值的仲裁请求,并等待仲裁节点返回的仲裁结果。
在上述步骤s204中,仲裁节点接收到每个请求设备的仲裁请求之后,会对仲裁请求进行响应,具体响应过程可以包括:根据每个请求设备发送的仲裁请求中所包含的每个请求设备的归一化语音能量值,选择出归一化语音能量值最大的请求设备作为目标设备,并向所述目标设备发送通知消息,通知该目标设备响应所述唤醒指令,同时还会向其他请求设备发送仲裁结果,通知其他请求设备不响应所述唤醒指令。
在其中一些实施例中,本申请实施例为了解决跨平台统一api的问题,针对常见的不同操作系统平台,例如linux,android和ios,分别进行接口封装和编译,所述接口至少包括:
初始化接口,用于创建组网和选举仲裁节点;
开启就近唤醒接口,用于仲裁节点创建仲裁处理线程,其中,仲裁处理线程用于在接收到仲裁请求时进行冲裁处理选择出所述目标设备;
关闭接近唤醒接口,用于结束仲裁处理线程;
发送仲裁请求接口,用于请求设备向仲裁节点发送仲裁请求,并接收仲裁节点返回的仲裁结果。
基于上述接口,本申请实施例的跨平台的分布式就近唤醒方法可以通过调用对应的接口实现,具体包括:
在检测到唤醒指令时,通过调用所述初始化接口创建组网并选举仲裁节点;
通过调用所述发送仲裁请求接口请求设备向仲裁节点发送所述仲裁请求;
通过调用开启就近唤醒接口仲裁节点接收请求设备发送的仲裁请求,并响应仲裁请求从请求设备中选择出目标设备;
通过调用所述发送仲裁请求接口仲裁节点向目标设备发送通知消息,以指示目标设备响应唤醒指令;
通过调用所述关闭接近唤醒接口仲裁节点结束对仲裁请求的响应。
本申请实施例通过预先编译和封装了支持不同操作系统平台调用的接口,通过调用这些接口可以实现分布式就近唤醒技术,克服了相关技术中的分布式就近唤醒技术仅针对单一类型设备设计和实现的缺陷,真正做到了跨平台使用,即跨不同硬件和系统使用。
下面通过优选实施例对本申请实施例进行描述和说明。
该优选实施例提出一种跨平台的就近唤醒的实现方案,该方案分为两个部分,分别是“实现跨平台的api”和“提出唤醒语音能量归一化的方法”。
1、实现跨平台的api,支持linux、android和ios平台调用。
基于c语言实现就近唤醒的基本逻辑如图3所示,图3是根据本申请优选实施例的跨平台的分布式就近唤醒方法的流程图,该方法包括以下步骤:
步骤s301,组网;
步骤s302,选举仲裁节点;
步骤s303,判断仲裁节点心跳是否丢失,若是则执行步骤s302,若否则执行步骤s304;
步骤s304,判断是否检测到唤醒指令,若是则执行步骤s305,若否则执行步骤s303;
步骤s305,判断设备是否为仲裁节点,若是则执行步骤s306至s307后返回执行步骤s303,若否则执行步骤s308至s309后返回执行步骤s303;
步骤s306,处理仲裁请求;
步骤s307,发布仲裁结果;
步骤s308,发送仲裁请求;
步骤s309,处理仲裁结果。
对上述逻辑进行封装,对外提供如下表1所示的接口:
表1对外接口
对上述接口进行linux和ios平台编译。
对上述接口进行androidjni封装。
2、提出一种唤醒语音能量归一化的方法
语音能量归一化,是指为了使不同设备的录音能量具有可比性,引入一个归一化系数,将设备的录音数据乘以这个系数,补偿不同硬件或系统录音增益的差异。比如,经测量设备a的增益为3,设备b的增益为2,则可将a和b的归一化系数分别设置为1和1.5。
具体过程可以包括:
(1)选择一类设备作为参考设备。
通常选择录音一致性最好的设备,也可根据项目需要选择(如选择出货量最多的,或客户最常使用的设备等)。
(2)开发语音能量检测工具,用于归一化调试。
工具输入一段音频,对其平均能量进行统计。
(3)设备归一化调试。
将参考设备r和待调试设备t摆放到一起,播放一段音频,并同时开启两个设备录音;将两个设备的录音分别送入语音能量检测工具,得到其平均能量re和te,待调试设备t的归一化系数即为re除以te得到的值。
(4)归一化系数使用。
设备实际运行过程中,录音数据先乘以归一化系数,再送入上述表1中的start接口进行能量计算和就近仲裁。
本申请优选实施例解决了跨平台统一api的问题,设计上不依赖具体的硬件和系统,针对常见的linux,android和ios设备分别进行接口封装和编译;解决了不同设备录音增益系数的差异的问题,设计了端到端的调试方式,确定设备录音归一化系数,使不同设备的录音能量具有可比性。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种跨平台的分布式就近唤醒装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的跨平台的分布式就近唤醒装置的结构框图,如图4所示,该装置包括:
接收请求单元42,用于在检测到唤醒指令时,组网中的仲裁节点接收组网中其他请求设备发送的仲裁请求,其中,所述请求设备包括至少一种类型的多个设备,所述仲裁请求中携带有所述请求设备的归一化语音能量值,所述归一化语音能量值为所述请求设备对所述唤醒指令检测到的语音能量值与所述请求设备的归一化系数的乘积;
仲裁响应单元44,用于所述仲裁节点响应所述仲裁请求,从所述请求设备中选择出归一化语音能量值最大的目标设备,并向所述目标设备发送通知消息,其中,所述通知消息用于通知所述目标设备响应所述唤醒指令。
在其中一些实施例中,所述请求设备的归一化系数通过以下过程确定:
将所述请求设备与参考设备对目标音频的录音分别送入语音能量检测工具,得到所述请求设备对所述目标音频的第一语音能量值和所述参考设备对所述目标音频的第二语音能量值;
将所述第二语音能量值除以所述第一语音能量值得到的值确定为所述请求设备的归一化系数。
在其中一些实施例中,所述装置还包括:
编译封装单元,用于在检测到唤醒指令之前,编译并封装支持不同操作系统平台调用的接口,所述接口至少包括:
初始化接口,用于创建组网和选举所述仲裁节点;
开启就近唤醒接口,用于所述仲裁节点创建仲裁处理线程,其中,所述仲裁处理线程用于在接收到所述仲裁请求时进行冲裁处理选择出所述目标设备;
关闭接近唤醒接口,用于结束所述仲裁处理线程;
发送仲裁请求接口,用于所述请求设备向所述仲裁节点发送所述仲裁请求,并接收所述仲裁节点返回的仲裁结果。
在其中一些实施例中,所述装置用于:在检测到唤醒指令时,通过调用所述初始化接口创建组网并选举所述仲裁节点;通过调用所述发送仲裁请求接口所述请求设备向所述仲裁节点发送所述仲裁请求;通过调用开启就近唤醒接口所述仲裁节点接收所述请求设备发送的所述仲裁请求,并响应所述仲裁请求从所述请求设备中选择出所述目标设备;通过调用所述发送仲裁请求接口所述仲裁节点向所述目标设备发送所述通知消息,以指示所述目标设备响应所述唤醒指令;通过调用所述关闭接近唤醒接口所述仲裁节点结束对所述仲裁请求的响应。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请实施例还提供了一种计算机设备,结合本申请实施例跨平台的分布式就近唤醒方法可以由计算机设备来实现。图5为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器51以及存储有计算机程序指令的存储器52。
具体地,上述处理器51可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器52可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器52可包括硬盘驱动器(harddiskdrive,简称为hdd)、软盘驱动器、固态驱动器(solidstatedrive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器52可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器52可在数据处理装置的内部或外部。在特定实施例中,存储器52是非易失性(non-volatile)存储器。在特定实施例中,存储器52包括只读存储器(read-onlymemory,简称为rom)和随机存取存储器(randomaccessmemory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmableread-onlymemory,简称为prom)、可擦除prom(erasableprogrammableread-onlymemory,简称为eprom)、电可擦除prom(electricallyerasableprogrammableread-onlymemory,简称为eeprom)、电可改写rom(electricallyalterableread-onlymemory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(staticrandom-accessmemory,简称为sram)或动态随机存取存储器(dynamicrandomaccessmemory,简称为dram),其中,dram可以是快速页模式动态随机存取存储器(fastpagemodedynamicrandomaccessmemory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extendeddateoutdynamicrandomaccessmemory,简称为edodram)、同步动态随机存取内存(synchronousdynamicrandom-accessmemory,简称sdram)等。
存储器52可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器51所执行的可能的计算机程序指令。
处理器51通过读取并执行存储器52中存储的计算机程序指令,以实现上述实施例中的任意一种跨平台的分布式就近唤醒方法。
在其中一些实施例中,计算机设备还可包括通信接口53和总线50。其中,如图5所示,处理器51、存储器52、通信接口53通过总线50连接并完成相互间的通信。
通信接口53用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口53还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线50包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线50包括但不限于以下至少之一:数据总线(databus)、地址总线(addressbus)、控制总线(controlbus)、扩展总线(expansionbus)、局部总线(localbus)。举例来说而非限制,总线50可包括图形加速接口(acceleratedgraphicsport,简称为agp)或其他图形总线、增强工业标准架构(extendedindustrystandardarchitecture,简称为eisa)总线、前端总线(frontsidebus,简称为fsb)、超传输(hypertransport,简称为ht)互连、工业标准架构(industrystandardarchitecture,简称为isa)总线、无线带宽(infiniband)互连、低引脚数(lowpincount,简称为lpc)总线、存储器总线、微信道架构(microchannelarchitecture,简称为mca)总线、外围组件互连(peripheralcomponentinterconnect,简称为pci)总线、pci-express(pci-x)总线、串行高级技术附件(serialadvancedtechnologyattachment,简称为sata)总线、视频电子标准协会局部(videoelectronicsstandardsassociationlocalbus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线50可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的跨平台的分布式就近唤醒方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种跨平台的分布式就近唤醒方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除