语音设备的响应方法、装置、存储介质及计算机设备转让专利

申请号 : CN201810283277.8

文献号 : CN108766422B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周云杰刘飞苏腾荣

申请人 : 青岛海尔科技有限公司

摘要 :

本发明公开了一种语音设备的响应方法、装置、存储介质及计算机设备,该方法包括:第一设备接收用户的语音唤醒词,其中,第一设备为多个设备中的任意一个设备;第一设备对接收到的语音唤醒词进行评分,得到语音分数;在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒。本发明通过对接收到的语音唤醒词进行语音评分,得到语音分数,并根据语音分数判断是否对用户的语音唤醒进行响应。本发明通过语音分数明确了语音设备之间的关系,在语音设备响应用户时,无需设置多个唤醒词,只需要根据语音设备对同一个唤醒词的分数确定具体由哪个设备响应用户,使用户的使用体验更好。

权利要求 :

1.一种语音设备的响应方法,其特征在于,应用于处于同一个网络中且具有相同唤醒词的多个设备,所述方法包括:第一设备接收用户的语音唤醒词,其中,所述第一设备为所述多个设备中的任意一个设备;

所述第一设备对接收到的所述语音唤醒词进行评分,得到语音分数;

在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备响应所述用户的唤醒;

在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备响应所述用户的唤醒的步骤之前,所述方法包括:所述第一设备确定自身是否为主控设备,其中,所述主控设备包括会话令牌;

在所述第一设备为主控设备时,所述第一设备获取自身的语音分数并接收所述多个设备中其他设备发送的创建会话请求,所述创建会话请求至少包括所述其他设备中每个设备的语音分数;

所述第一设备根据所述多个设备各自的语音分数,确定所述多个设备中语音分数为最高分的设备。

2.如权利要求1所述的响应方法,其特征在于,在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备响应所述用户的唤醒,包括:在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备持有会话令牌;

所述第一设备根据所述会话令牌响应所述用户的唤醒。

3.如权利要求1所述的响应方法,其特征在于,在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备响应所述用户的唤醒的步骤之前,所述方法包括:所述第一设备确定自身是否为主控设备,其中,所述主控设备包括会话令牌;

在所述第一设备不是主控设备时,所述第一设备向所述主控设备发送至少包括所述第一设备的语音分数的创建会话请求,由所述主控设备根据所述多个设备各自的语音分数确定所述多个设备中语音分数为最高分的设备,其中,所述多个设备包括所述主控设备。

4.如权利要求3所述的响应方法,其特征在于,在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备响应所述用户的唤醒,包括:在所述第一设备的语音分数为所述多个设备中最高分的情况下,所述第一设备接收所述主控设备颁发的会话令牌;

所述第一设备根据所述会话令牌响应所述用户的唤醒。

5.如权利要求2所述的响应方法,其特征在于,所述第一设备响应所述用户的唤醒之后,还包括:所述第一设备完成一轮语音会话后,判断是否需要继续会话;

在不需要继续会话的情况下,所述第一设备宣告会话结束,并向所述多个设备中的其他设备发送待机通知;

在需要继续会话的情况下,向所述多个设备中的所述其他设备发送转移所述会话令牌的通知。

6.如权利要求5所述的响应方法,其特征在于,向所述多个设备中的所述其他设备发送转移所述会话令牌的通知之后,还包括:所述第一设备接收所述多个设备中的所述其他设备发送的语音分数;

所述第一设备在接收到首个所述语音分数的第一预定时间后,将所述会话令牌转移至所述语音分数最高的设备。

7.如权利要求2所述的响应方法,其特征在于,所述第一设备根据所述会话令牌响应所述用户的唤醒,包括:所述第一设备判断自身的自然语言理解NLU分数是否达到预设分数值;

在所述第一设备的NLU分数达到预设分数值的情况下,所述第一设备根据所述会话令牌响应所述用户的唤醒。

8.如权利要求7所述的响应方法,其特征在于,所述第一设备判断自身的自然语言理解NLU分数是否达到预设分数值之后,还包括:在所述第一设备的NLU分数未达到预设分数值的情况下,向所述多个设备中的其他设备发送转移所述会话令牌的通知;

所述第一设备判断在第二预设时间内,是否接收所述其他设备发送的NLU分数或语音分数;

所述第一设备在接收所述其他设备发送的NLU分数或语音分数的情况下,将所述会话令牌转移至所述NLU分数或语音分数最高的设备;

所述第一设备在未接收所述其他设备发送的NLU分数或语音分数的情况下,宣告会话结束。

9.如权利要求3至8中任意一项所述的响应方法,其特征在于,所述主控设备为所述多个设备中性能分数最高的设备,其中,所述性能分数根据所述设备的网络状态进行计算。

10.如权利要求1至8中任意一项所述的响应方法,其特征在于,第一设备接收用户的语音唤醒词之前,还包括:所述第一设备入网并根据自身网络状态计算性能分数;

所述第一设备向处于同一网络中的其他设备发送第一上线通知,其中,所述第一上线通知至少包括:所述第一设备的性能分数;

所述第一设备接收所述其他设备反馈的第二上线通知,其中,所述第二上线通知至少包括:对应设备的性能分数;

所述第一设备根据所述第一设备的性能分数和所述其他设备的性能分数,构建按照性能分数进行排序的同网设备列表。

11.如权利要求10所述的响应方法,其特征在于,构建按照性能分数进行排序的同网设备列表之后,还包括:所述第一设备检测是否接收到所述其他设备发送的下线通知;

在接收到所述其他设备发送的下线通知的情况下,删除所述同网设备列表中发送所述下线通知的设备。

12.如权利要求10所述的响应方法,其特征在于,所述同网设备列表按照性能分数从大到小的顺序进行排序,构建按照性能分数进行排序的同网设备列表之后,还包括:所述第一设备检测自己是否处于所述同网设备列表的队首;

在所述第一设备未处于队首的情况下,所述第一设备检测在预设周期内,是否接收到第二设备发送的心跳报文,其中,所述第二设备为所述同网设备列表中排在所述第一设备前一位的设备;

在未接收到第二设备发送的心跳报文的情况下,所述第一设备在所述同网设备列表中删除所述第二设备,并向处于所述同网设备列表中的其他设备发送所述第二设备已经下线的通知消息。

13.一种语音设备的响应装置,其特征在于,安装于处于同一个网络中且具有相同唤醒词的多个设备,第一设备为所述多个设备中的任意一个设备,所述响应装置包括:监听模块,用于接收用户的语音唤醒词;

评分模块,用于对接收到的所述语音唤醒词进行评分,得到语音分数;

响应模块,用于在所述第一设备的语音分数为所述多个设备中最高分的情况下,响应所述用户的唤醒;

还包括确定模块,用于在第一设备的语音分数为最高分的情况下,第一设备用户的唤醒之前确定自身是否为主控设备,主控设备即为生成和分配会话令牌的设备;

第一接收模块,用于在第一设备为主控设备时,第一设备获取自身的语音分数后通过接收网络中其他设备发送的创建会话请求,创建会话请求中至少包括他设备中每个设备的语音分数;

统计模块,用于第一设备根据每个设备的语音分数以及自身的语音分数,确定多个设备中语音分数为最高分的设备,并将会话令牌转移至该分数最高的设备。

14.一种存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1至12中任意一项所述方法的步骤。

15.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至12中任意一项所述方法的步骤。

说明书 :

语音设备的响应方法、装置、存储介质及计算机设备

技术领域

[0001] 本发明涉及移动通讯领域,特别是涉及一种语音设备的响应方法、装置、存储介质及计算机设备。

背景技术

[0002] 随着智能语音应用技术的不断成熟,身边的智能语音设备越来越多,语音交互需求与使用场景不断增多,各种语音交互方案也不断出现。特别是在居家等相对封闭场所,人们越来越倾向通过语音来下达指令,获取信息,从而释放双手,更自然地智能家电交互。在日常生活中,身边的可通过语音进行控制的设备也越来越多,甚至在小范围内存在多个可以语音交互的智能设备。
[0003] 目前的语音方案,无法对网络中增删的语音设备进行实时的监控;同一时刻只能与一个语音设备进行交互,并且不同的设备需要设置不同的唤醒词,影响了用户的使用体验。

发明内容

[0004] 本发明提供一种语音设备的响应方法、装置、存储介质及计算机设备,用以解决现有技术的以下问题:无法对网络中增删的语音设备进行实时的监控;同一时刻只能与一个语音设备进行交互,并且不同的设备需要设置不同的唤醒词,影响了用户的使用体验。
[0005] 为解决上述技术问题,一方面,本发明提供一种语音设备的响应方法,应用于处于同一个网络中且具有相同唤醒词的多个设备,方法包括:第一设备接收用户的语音唤醒词,其中,第一设备为多个设备中的任意一个设备;第一设备对接收到的语音唤醒词进行评分,得到语音分数;在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒。
[0006] 进一步,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒,包括:在第一设备的语音分数为多个设备中最高分的情况下,第一设备持有会话令牌;第一设备根据会话令牌响应用户的唤醒。
[0007] 进一步,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒之前,方法包括:第一设备确定自身是否为主控设备,其中,主控设备包括会话令牌;在第一设备为主控设备时,第一设备获取自身的语音分数并接收多个设备中其他设备发送的创建会话请求,创建会话请求至少包括其他设备中每个设备的语音分数;第一设备根据多个设备各自的语音分数,确定多个设备中语音分数为最高分的设备。
[0008] 进一步,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒之前,方法包括:第一设备确定自身是否为主控设备,其中,主控设备包括会话令牌;在第一设备不是主控设备时,第一设备向主控设备发送至少包括第一设备的语音分数的创建会话请求,由主控设备根据多个设备各自的语音分数确定多个设备中语音分数为最高分的设备,其中,多个设备包括主控设备。
[0009] 进一步,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒,包括:在第一设备的语音分数为多个设备中最高分的情况下,第一设备接收主控设备颁发的会话令牌;第一设备根据会话令牌响应用户的唤醒。
[0010] 进一步,第一设备响应用户的唤醒之后,还包括:第一设备完成一轮语音会话后,判断是否需要继续会话;在不需要继续会话的情况下,第一设备宣告会话结束,并向多个设备中的其他设备发送待机通知;在需要继续会话的情况下,向多个设备中的其他设备发送转移会话令牌的通知。
[0011] 进一步,向多个设备中的其他设备发送转移会话令牌的通知之后,还包括:第一设备接收多个设备中的其他设备发送的语音分数;第一设备在接收到首个语音分数的第一预定时间后,将会话令牌转移至语音分数最高的设备。
[0012] 进一步,第一设备根据会话令牌响应用户的唤醒,包括:第一设备判断自身的自然语言理解(NLU,Natural Language Understanding)分数是否达到预设分数值;在第一设备的NLU分数达到预设分数值的情况下,第一设备根据会话令牌响应用户的唤醒。
[0013] 进一步,第一设备判断自身的自然语言理解NLU分数是否达到预设分数值之后,还包括:在第一设备的NLU分数未达到预设分数值的情况下,向多个设备中的其他设备发送转移会话令牌的通知;第一设备判断在第二预设时间内,是否接收其他设备发送的NLU分数或语音分数;第一设备在接收其他设备发送的NLU分数或语音分数的情况下,将会话令牌转移至NLU分数或语音分数最高的设备;第一设备在未接收其他设备发送的NLU分数或语音分数的情况下,宣告会话结束。
[0014] 进一步,主控设备为多个设备中性能分数最高的设备,其中,性能分数根据设备的网络状态进行计算。
[0015] 进一步,第一设备接收用户的语音唤醒词之前,还包括:第一设备入网并根据自身网络状态计算性能分数;第一设备向处于同一网络中的其他设备发送第一上线通知,其中,第一上线通知至少包括:第一设备的性能分数;第一设备接收其他设备反馈的第二上线通知,其中,第二上线通知至少包括:对应设备的性能分数;第一设备根据第一设备的性能分数和其他设备的性能分数,构建按照性能分数进行排序的同网设备列表。
[0016] 进一步,构建按照性能分数进行排序的同网设备列表之后,还包括:第一设备检测是否接收到其他设备发送的下线通知;在接收到其他设备发送的下线通知的情况下,删除同网设备列表中发送下线通知的设备。
[0017] 进一步,同网设备列表按照性能分数从大到小的顺序进行排序,构建按照性能分数进行排序的同网设备列表之后,还包括:第一设备检测自己是否处于同网设备列表的队首;在第一设备未处于队首的情况下,第一设备检测在预设周期内,是否接收到第二设备发送的心跳报文,其中,第二设备为同网设备列表中排在第一设备前一位的设备;在未接收到第二设备发送的心跳报文的情况下,第一设备在同网设备列表中删除第二设备,并向处于同网设备列表中的其他设备发送第二设备已经下线的通知消息。
[0018] 另一方面,本发明还提供了一种语音设备的响应装置,安装于处于同一个网络中且具有相同唤醒词的多个设备,第一设备为所述多个设备中的任意一个设备,响应装置包括:监听模块,用于接收用户的语音唤醒词;评分模块,用于对接收到的语音唤醒词进行评分,得到语音分数;响应模块,用于在第一设备的语音分数为多个设备中最高分的情况下,响应用户的唤醒。
[0019] 另一方面,本发明还提供一种存储介质,存储介质上存储有计算机程序,程序被处理器执行时实现上述语音设备的响应方法。
[0020] 另一方面,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述语音设备的响应方法。
[0021] 本发明通过对接收到的语音唤醒词进行语音评分,得到语音分数,并根据语音分数判断是否对用户的语音唤醒进行响应。本发明通过语音分数明确了语音设备之间的关系,在语音设备响应用户时,无需设置多个唤醒词,只需要根据语音设备对同一个唤醒词的分数确定具体由哪个设备响应用户,使用户的使用体验更好。

附图说明

[0022] 图1是本发明第一实施例中语音设备的响应方法流程图;
[0023] 图2是本发明第二实施例中语音设备的响应装置结构示意图;
[0024] 图3是本发明第五实施例中多语音设备响应方法流程示意图。

具体实施方式

[0025] 为了解决现有技术的以下问题:无法对网络中增删的语音设备进行实时的监控;同一时刻只能与一个语音设备进行交互,并且不同的设备需要设置不同的唤醒词,影响了用户的使用体验,本发明提供了一种语音设备的响应方法、装置、存储介质及计算机设备,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
[0026] 本发明的第一实施例提供了一种语音设备的响应方法,应用于处于同一个网络中且具有相同唤醒词的多个设备,其流程图如图1所示,具体包括步骤 S101至S103:
[0027] S101,第一设备接收用户的语音唤醒词,其中,第一设备为多个设备中的任意一个设备;
[0028] S102,第一设备对接收到的语音唤醒词进行评分,得到语音分数;
[0029] S103,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒。
[0030] 在本发明实施例中,第一设备即为语音设备,具体可以为智能家居中可以用语音控制的设备,如:智能空调、智能电视、智能热水器等。在本实施例中,网络中所有的语音设备的唤醒词均为同一个唤醒词,在用户说出该唤醒词时,网络中所有的设备均会接收到该唤醒词,并对语音唤醒词进行打分。以第一设备为例,第一设备可以为网络中多个设备中的任意一个设备,第一设备在接入到网络后会实时监听用户是否说出预设的语音唤醒词,在接收到用户的语音唤醒词后,根据第一设备接收到的语音的音量、精准度、与自身功能的关联性等为用户的语音唤醒词进行评分,得到自身的语音分数。在第一设备的语音分数为多个设备中最高分的情况下,由第一设备响应用户本次的唤醒。
[0031] 具体地,当第一设备的语音分数最高时,由第一设备持有会话令牌,第一设备在持有会话令牌后,才可以根据该会话令牌响应用户本次的唤醒。进一步地,在第一设备的语音分数为最高分的情况下,第一设备用户的唤醒之前,还包括确定自身是否为主控设备的步骤,主控设备即为生成和分配会话令牌的设备;在第一设备为主控设备时,第一设备获取自身的语音分数后还需要接收网络中其他设备发送的创建会话请求,创建会话请求中至少包括他设备中每个设备的语音分数,第一设备则根据每个设备的语音分数以及自身的语音分数,确定多个设备中语音分数为最高分的设备,并将会话令牌转移至该分数最高的设备,若第一设备为语音分数最高的设备,则第一设备自己继续持有会话令牌;在第一设备不是主控设备时,第一设备需要向主控设备发送至少包括第一设备的语音分数的创建会话请求,主控设备同时会接收其他设备的创建会话请求,由主控设备根据多个设备各自的语音分数确定多个设备中语音分数为最高分的设备,并将会话令牌颁发至语音分数最高的设备,由接收到会话令牌的设备响应用户的语音,其中,多个设备包括主控设备。
[0032] 在第一设备接收到会话令牌的情况下,由第一设备响应用户的语音,并且第一设备完成一轮语音会话后,由第一设备判断是否需要继续会话,若不需要继续会话,则由第一设备向网络中其他设备发送待机通知,其他设备在接收到待机通知后待机并时刻监听用户是否再次唤醒;若需要继续会话,则由第一设备向网络中其他设备发送转移会话令牌的通知,以使再次响应用户的设备为最适合响应用户的设备,其他设备在接收到转移会话令牌的通知后,将自身的语音分数发送至当前持有令牌的第一设备,第一设备则接收其他设备发送的语音分数,并在收到第一个设备的语音分数的第一预定时间后,确定语音分数最高的设备,并将会话令牌转移至该设备。为了保证用户可以尽快得到响应,第一预定时间优选的设置为500毫秒,但在实际使用时,可以根据设备和网络的实际情况设置预定时间的时长。应当了解的是,通常设备完成一次用户的语音指令即为一轮会话完成,如用于指令为“打开空调”,对应的空调设备开启之后,即认为一轮会话完成;第一设备在判断是否需要继续会话时,可根据实际情况进行设置,如用户指令为“打开空调”,设备即反馈“打开卧室空调或客厅空调?”,在这种情况下,虽然也完成了一轮会话,但没有执行完用户的指令,就需要继续会话,即用户指示打开客厅或卧室空调,再由客厅的空调设备或卧室的空调设备执行用户的指令。
[0033] 优选地,第一设备在持有会话令牌并响应用户的唤醒时,为了保证第一设备响应用户当前的语音指令的效果得到保证,第一设备需要首先判断自身的自然语言理解NLU分数是否达到预设分数值,即第一设备自身对用户发出的语音指令的理解程度是否达到预设分数值,在NLU分数达到预设分数值时,即可表示第一设备已经充分理解用户的语音指令,可以对用户的唤醒进行响应;若第一设备NLU分数没有达到预设分数值,第一设备向网络中多个设备中的其他设备发送转移会话令牌的通知,并在第二预设时间内判断是否接收其他设备发送的NLU分数或语音分数,若接收到,将会话令牌转移至NLU分数或语音分数最高的设备,第一设备在未接收其他设备发送的NLU分数或语音分数的情况下,宣告会话结束,并告知用户未听清语音。优选地,上述对自身NLU 分数进行判断的步骤适用于在任何情况下接收到会话令牌的设备。具体地,为加快令牌转移进程,设备在接收到令牌转移通知后,上传自身分数时,尽可能地上传NLU分数,以使当前持有令牌的设备可直接根据NLU分数颁发令牌,在设备没有NLU分数的情况下,再上传语音分数。并且,当前令牌持有设备若对所有已上报的分数均不满意,如没有达到预设值等,则结束此次会话转移,宣告会话结束,并告知用户未听清语音。
[0034] 在本实施例中,语音设备在接收用户的唤醒词之前,在第一设备连接到用户家中的预设网络后,会根据当前的网络质量以及自身的状态,基于预设的性能算法计算自己的性能分数,随后向处于统一网络中的已连接的其他设备发送自己已经上线的通知,即第一上线通知,第一上线通知中至少包括自身的性能分数,为了保证在排序时区分相同分数的设备,第一上线通知还可以包括自己的网络互联协议(IP,Internet Protocol)地址。优选地,第一设备可以通过发送用户数据报协议(UDP,User Datagram Protocol)广播的方式向网络中其他设备宣告自己上线。优选地,为保证网络中所有设备都能收到第一设备发送的第一上线通知,第一设备可以以固时间定间隔进行UDP广播,进一步地,固定时间间隔可以根据实际情况设置为100毫秒至300毫秒之间的任意时长。
[0035] 网络中的其他设备在接收到第一设备发送的UDP广播后,点对点地回复给第一设备自己的上线通知,即第二上线通知,该上线通知中同样包括该设备基于相同性能算法计算的性能分数和IP地址。第一设备接收到这些其他设备发送的上线通知后,根据第一设备的性能分数和其他设备的性能分数,构建按照性能分数进行排序的同网设备列表,使同网设备列表中位于队首的设备性能分数最高,位于队尾的设备性能分数最低。并且,对于性能分数相同的设备,则按照IP地址进行排序。进一步地,主控设备即为多个设备中性能分数最高的设备,在主控设备颁发会话令牌时,若有多个设备的语音分数相同,则选择性能分数更高的设备。
[0036] 应当了解的是,网络中每个设备在连接到网络后,都会进行上述创建同网设备列表的过程,并且在接收到其他设备发送的上线通知时,会将其他设备的性能分数添加至自己的同网设备列表中,并更新排序,以保证网络中所有设备的同网设备列表完全相同。
[0037] 与上线通知相应地,设备在下线时会广播下线通知,第一设备在接收到设备发送的下线通知后,将同网设备列表中相应的设备和性能分数删除。但应当了解的是,设备只有在正常下线是才会广播下线通知,突然的故障或断电,是无法广播下线通知的。
[0038] 为了保证网络中某个设备出现故障时,网络中其他设备可以及时知晓并更新同网设备列表,在本实施例中,设备之间通过发送和接收心跳报文来监测其他设备的在线状态,以第一设备为例,具体方案如下:第一设备判断自身是否位于列表的队首,如果不是,则还需要接收列表中排序在自己前一位的设备发送的心跳报文,即接收第二设备间隔固定时间发送的报文,以知晓第二设备还在线。进一步地,如果在一个心跳报文的发送周期内,第一设备未接收到第二设备发送的心跳报文,则认为第二设备已离线,将第二设备的信息从自己的同网设备列表中删除,并向网络中其他设备发送通知消息,以通知其他设备第二设备已下线。网络中其他设备接收到第一设备发送的通知消息后,会同步更新自身的同网设备列表,将第二设备的信息删除。
[0039] 进一步地,第一设备若为同网设备列表中位于队首的设备,则不会接收到其他设备发送的心跳报文,只需要向下一个设备发送心跳报文即可;第一设备若为队尾的设备,则无需发送心跳报文,若第一设备在队尾时因故障下线,并未发送下线通知,其在同网设备列表中排序在第一设备前一位的设备则会知晓队尾设备已下线,并向其他设备发送通知消息,宣告第一设备下线。
[0040] 本实施例通过对接收到的语音唤醒词进行语音评分,得到语音分数,并根据语音分数判断是否对用户的语音唤醒进行响应。本发明通过语音分数明确了语音设备之间的关系,在语音设备响应用户时,无需设置多个唤醒词,只需要根据语音设备对同一个唤醒词的分数确定具体由哪个设备响应用户,使用户的使用体验更好。并且通过在语音设备中建立同网设备列表,明确了语音设备之间的关系,方便进行动态地语音设备增删,更灵活地维护了网络中设备的状态。
[0041] 本发明的第二实施例提供了一种语音设备的响应装置,可以被安装于处于同一个网络中且具有相同唤醒词的多个设备中,其中,第一设备为多个设备中的任意一个设备,该响应装置装置结构示意图如图2所示,具体包括:监听模块201,用于接收用户的语音唤醒词;评分模块202,与监听模块耦合,用于对接收到的语音唤醒词进行评分,得到语音分数;响应模块203,与评分模块耦合,用于在第一设备的语音分数为多个设备中最高分的情况下,响应用户的唤醒。应当了解的是,响应装置可以安装于同一个网络中具有相同唤醒词的多个设备中的任意一个设备,不仅限于只安装在第一设备中。
[0042] 在本发明实施例中,第一设备即为语音设备,具体可以为智能家居中可以用语音控制的设备,如:智能空调、智能电视、智能热水器等。在本实施例中,网络中所有的语音设备的唤醒词均为同一个唤醒词,在用户说出该唤醒词时,网络中所有的设备均会接收到该唤醒词,并对语音唤醒词进行打分。以第一设备为例,第一设备可以为网络中多个设备中的任意一个设备,第一设备在接入到网络后会通过监听模块实时监听用户是否说出预设的语音唤醒词,在接收到用户的语音唤醒词后,通过评分模块根据第一设备接收到的语音的音量、精准度、与自身功能的关联性等为用户的语音唤醒词进行评分,得到自身的语音分数。在第一设备的语音分数为多个设备中最高分的情况下,由响应模块响应用户本次的唤醒。
[0043] 具体地,当第一设备的语音分数最高时,由第一设备会持有持有会话令牌,第一设备在持有会话令牌后,才可以根据该会话令牌响应用户本次的唤醒。进一步地,在第一设备的语音分数为最高分的情况下,第一设备用户的唤醒之前,还包括通过确定模块确定自身是否为主控设备的步骤,主控设备即为生成和分配会话令牌的设备;在第一设备为主控设备时,第一设备获取自身的语音分数后还需要通过第一接收模块接收网络中其他设备发送的创建会话请求,创建会话请求中至少包括他设备中每个设备的语音分数,第一设备则根据每个设备的语音分数以及自身的语音分数,通过统计模块确定多个设备中语音分数为最高分的设备,并将会话令牌转移至该分数最高的设备,若第一设备为语音分数最高的设备,则第一设备自己继续持有会话令牌;在第一设备不是主控设备时,第一设备需要通过第一发送模块向主控设备发送至少包括第一设备的语音分数的创建会话请求,主控设备同时会接收其他设备的创建会话请求,由主控设备根据多个设备各自的语音分数确定多个设备中语音分数为最高分的设备,并将会话令牌颁发至语音分数最高的设备,由接收到会话令牌的设备响应用户的语音,其中,多个设备包括主控设备。
[0044] 在第一设备接收到会话令牌的情况下,由第一设备响应用户的语音,并且第一设备完成一轮语音会话后,由第一判断模块判断是否需要继续会话,若不需要继续会话,则由第二发送模块向网络中其他设备发送待机通知,其他设备在接收到待机通知后待机并时刻监听用户是否再次唤醒;若需要继续会话,则由第二发送模块向网络中其他设备发送转移会话令牌的通知,以使再次响应用户的设备为最适合响应用户的设备,其他设备在接收到转移会话令牌的通知后,将自身的语音分数发送至当前持有令牌的第一设备,第一设备则通过第二接收模块接收其他设备发送的语音分数,并在收到第一个设备的语音分数的第一预定时间后,确定语音分数最高的设备,并通过第一转移模块将会话令牌转移至该设备。为了保证用户可以尽快得到响应,第一预定时间优选的设置为500毫秒,但在实际使用时,可以根据设备和网络的实际情况设置预定时间的时长。
[0045] 优选地,第一设备在持有会话令牌并响应用户的唤醒时,为了保证第一设备响应用户当前的语音指令的效果得到保证,响应模块需要首先判断自身的自然语言理解NLU分数是否达到预设分数值,即第一设备自身对用户发出的语音指令的理解程度是否达到预设分数值,在NLU分数达到预设分数值时,即可表示第一设备已经充分理解用户的语音指令,可以对用户的唤醒进行响应;若第一设备NLU分数没有达到预设分数值,由第三发送模块向网络中多个设备中的其他设备发送转移会话令牌的通知,并通过第二判断模块在第二预设时间内判断是否接收其他设备发送的NLU分数或语音分数,若接收到,则由第二转移模块将会话令牌转移至NLU分数或语音分数最高的设备,第一设备在未接收其他设备发送的NLU分数或语音分数的情况下,由响应模块宣告会话结束,并告知用户未听清语音。优选地,上述对自身NLU分数进行判断的步骤适用于在任何情况下接收到会话令牌的设备。具体地,为加快令牌转移进程,设备在接收到令牌转移通知后,上传自身分数时,尽可能地上传NLU分数,以使当前持有令牌的设备可直接根据NLU分数颁发令牌,在设备没有NLU分数的情况下,再上传语音分数。并且,当前令牌持有设备若对所有已上报的分数均不满意,如没有达到预设值等,则结束此次会话转移,宣告会话结束,并告知用户未听清语音。
[0046] 在本实施例中,语音设备在接收用户的唤醒词之前,在第一设备连接到用户家中的预设网络后,计算模块会根据当前的网络质量以及第一设备自身的状态,基于预设的性能算法计算自己的性能分数,随后通过上线通知模块向网络中已连接的其他设备发送自己已经上线的通知,即第一上线通知,第一上线通知中至少包括自身的性能分数,为了保证在排序时区分相同分数的设备,第一上线通知还可以包括自己的IP地址。优选地,上线通知模块可以通过发送UDP 广播的方式向网络中其他设备宣告第一涉笔上线。优选地,为保证网络中所有设备都能收到第一设备发送的第一上线通知,上线通知模块可以以固时间定间隔进行UDP广播,进一步地,固定时间间隔可以根据实际情况设置为100毫秒至300毫秒之间的任意时长。
[0047] 网络中的其他设备在接收到第一设备发送的UDP广播后,点对点地回复给第一设备自己的上线通知,即第二上线通知,该上线通知中同样包括该设备基于相同性能算法计算的性能分数和IP地址。通知接收模块接收到这些其他设备发送的上线通知后,根据第一设备的性能分数和其他设备的性能分数,列表构建模块构建按照性能分数进行排序的同网设备列表,使同网设备列表中位于队首的设备性能分数最高,位于队尾的设备性能分数最低。并且,对于性能分数相同的设备,则按照IP地址进行排序。进一步地,主控设备即为多个设备中性能分数最高的设备,在主控设备颁发会话令牌时,若有多个设备的语音分数相同,则选择性能分数更高的设备。
[0048] 应当了解的是,网络中每个设备在连接到网络后,都会进行上述创建同网设备列表的过程,并且在接收到其他设备发送的上线通知时,会将其他设备的性能分数添加至自己的同网设备列表中,并更新排序,以保证网络中所有设备的同网设备列表完全相同。
[0049] 与上线通知相应地,设备在下线时会通过发送模块广播下线通知,通知接收模块在接收到设备发送的下线通知后,会通过更新模块将同网设备列表中相应的设备和性能分数删除。但应当了解的是,设备只有在正常下线是才会广播下线通知,突然的故障或断电,是无法广播下线通知的。
[0050] 为了保证网络中某个设备出现故障时,网络中其他设备可以及时知晓并更新同网设备列表,在本实施例中,设备之间通过发送和接收心跳报文来监测其他设备的在线状态,以第一设备为例,具体方案如下:第一设备通过检测模块检测自身是否位于列表的队首,如果不是,则报文接收模块需要接收列表中排序在自己前一位的设备发送的心跳报文,即接收第二设备间隔固定时间发送的报文,以知晓第二设备还在线。进一步地,如果在一个心跳报文的发送周期内,报文接收模块未接收到第二设备发送的心跳报文,则认为第二设备已离线,删除模块则将第二设备的信息从自己的同网设备列表中删除,并向网络中其他设备发送通知消息,以通知其他设备第二设备已下线。网络中其他设备接收到第一设备发送的通知消息后,会同步更新自身的同网设备列表,将第二设备的信息删除。
[0051] 本实施例通过对接收到的语音唤醒词进行语音评分,得到语音分数,并根据语音分数判断是否对用户的语音唤醒进行响应。本发明通过语音分数明确了语音设备之间的关系,在语音设备响应用户时,无需设置多个唤醒词,只需要根据语音设备对同一个唤醒词的分数确定具体由哪个设备响应用户,使用户的使用体验更好。并且通过在语音设备中建立同网设备列表,明确了语音设备之间的关系,方便进行动态地语音设备增删,更灵活地维护了网络中设备的状态。
[0052] 本发明的第三实施例提供了一种存储介质,存储介质上存储有实现语音设备的响应方法的计算机程序,计算机程序被处理器执行时实现如下步骤:
[0053] S31,第一设备接收用户的语音唤醒词,其中,第一设备为多个设备中的任意一个设备;
[0054] S32,第一设备对接收到的语音唤醒词进行评分,得到语音分数;
[0055] S33,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒。
[0056] 在本实施例中,存储介质可以安装在语音设备中,主要应用于语音设备的响应用户的语音。由于在第一实施例中已经对语音设备的响应方法进行了详细说明,因此,在本实施例中不再赘述。
[0057] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0058] 本发明的第四实施例提供了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如下方法步骤:
[0059] S41,第一设备接收用户的语音唤醒词,其中,第一设备为多个设备中的任意一个设备;
[0060] S42,第一设备对接收到的语音唤醒词进行评分,得到语音分数;
[0061] S43,在第一设备的语音分数为多个设备中最高分的情况下,第一设备响应用户的唤醒。
[0062] 在本实施例中,计算机设备可以为响应用户语音唤醒词的语音设备。由于在第一实施例中已经对语音设备的响应方法进行了详细说明,因此,在本实施例中不再赘述。
[0063] 上述实施例从单个的操作执行主体侧进行了方案阐述,下面将结合具体的附图及多主体的具体交互过程,对本发明实施例的方案进行更详尽的阐述。需要指出的是,如下公开的大量技术细节用于解释本发明,并不用于唯一限定本发明。
[0064] 在本发明的第五实施例中,公开了一种多语音设备的响应方法,其流程示意图如图3所示,具体地,预设网络中已经存在3个已经连接成功的语音设备,分别为设备(device)A、设备B以及设备C,其对应的性能分数分别为85分、 90分以及94分,因此,在所有设备的同网设备列表中,设备的排序均为设备 C、设备B、设备A,其中设备C为主控设备。
[0065] 用户说出预设的唤醒词,设备A、设备B以及设备C在监听到该唤醒词之后,均针对该唤醒词计算语音分数,并且,均发送携带有自身语音分数的创建会话请求给设备C;设备C接收到上述请求后,获取创建会话请求中的语音分数,其中,设备A的语音分数为95分、设备B的语音分数为80分、设备C 的语音分数为60分,因此,将会话令牌颁发给分数最高的设备A;设备A获取会话令牌后响应用户的唤醒词,并完成用户后续的语音指示。
[0066] 经过一轮会话后,还需继续进行会话,设备A则向设备B和设备C发送令牌转移通知,待用户说出下一步指令后,设备B和设备C向设备A上报本次的语音打分,分别为95分和80分,同时设备A获取自己对本次语音的打分 90分;设备A将令牌转移给本轮打分最高的设备B,设备B接收到会话令牌后,响应用户本次的语音指令,并在本轮会话完成后宣告会话结束。
[0067] 尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。