一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

输出响应信息的方法、装置、电子设备及存储介质与流程

2021-07-23 21:35:00 来源:中国专利 TAG:例数 电子设备 响应 装置 输出
输出响应信息的方法、装置、电子设备及存储介质与流程

本申请实施例涉及数据处理技术领域,尤其涉及一种输出响应信息的方法、装置、电子设备及存储介质。



背景技术:

目前的全双工对话系统由多个模块组成,其中,语音识别模块负责识别用户语音和声学上的静默检测,纠错模块负责纠正语音识别模块的识别结果,自然语言理解模块负责将纠正后的识别结果转换成意图信息,对话管理模块结合自然语言理解模块的当前转换结果和上下文信息,生成最终的回复,由机器人输出该回复。

然而,目前的全双工对话系统允许用户和机器人同时说话,不符合人类对话习惯,对话体验较差。



技术实现要素:

本申请提供了一种输出响应信息的方法、装置、电子设备及存储介质,通过对全双工对话的对话体验进行量化,获得全双工对话中首先需要关注的一个指标:机器回复间隔时间,接着将获得回复结果这一步骤提前到等待静默标识的期间执行,可缩短机器回复间隔时间,实现对机器回复间隔时间的优化。

本申请第一方面提供了一种输出响应信息的方法,所述方法包括:

对获取到的语音流进行语音识别,获得语音识别结果;

对所述语音流进行静默检测,确定是否生成静默标识;

在对所述语音流进行静默检测期间,获得所述语音识别结果对应的响应信息并缓存;

在生成所述静默标识的情况下,读取并输出所缓存的响应信息。

可选地,在对所述语音流进行静默检测期间,所述方法还包括:

在对所述语音流进行静默检测期间,检测所述语音识别结果是否发生更新和/或所述语音识别结果对应的意图信息是否发生更新;

获得并缓存所述语音识别结果对应的响应信息,包括:

在所述语音识别结果发生更新或所述语音识别结果对应的意图信息发生更新时,获得更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息;

利用更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息,对已缓存的响应信息进行更新并缓存。

可选地,在获得所述语音识别结果对应的响应信息并缓存之后,所述方法还包括:

根据所述语音识别结果对应的响应信息和以下信息中至少一者:所述语音识别结果、历史语音识别结果和对应的历史响应信息、所述语音识别结果的属性信息,确定所述响应信息的预估响应时刻;

在所述预估响应时刻晚于预估时刻的情况下,将等待第一预设时长后的时刻确定为所述响应信息的响应时刻,所述预估时刻为基于所述静默标识的生成时刻而确定的时刻;

在所述预估响应时刻早于所述预估时刻的情况下,将当前时刻确定为所述响应信息的响应时刻;

在生成所述静默标识的情况下,读取并输出所缓存的响应信息,包括:

在生成所述静默标识的情况下,在所述响应信息的响应时刻,读取并输出所缓存的响应信息。

可选地,在所述响应信息的响应时刻为当前时刻的情况下,所述方法还包括:

对在输出所缓存的响应信息期间获取到的语音流进行语音识别,获得新的语音识别结果;

在所述新的语音识别结果满足预设的打断条件时,停止输出所缓存的响应信息。

可选地,所述方法还包括:

在读取到所缓存的响应信息且确定出所述响应信息的响应时刻时,对用于输出新的响应信息的权限进行加锁操作;

在间隔第二预设时长后或在输出所缓存的响应信息期间,对用于输出新的响应信息的权限进行解锁操作。

可选地,在缓存所述语音识别结果对应的响应信息之前,所述方法还包括:

比较所述语音识别结果对应的响应信息和当前待输出响应信息;

在所述语音识别结果对应的响应信息和当前待输出响应信息不相同的情况下,或,在所述语音识别结果对应的响应信息的优先级低于缓存队列中已存储有历史语音识别结果对应的历史响应信息的优先级的情况下,丢弃所述语音识别结果对应的响应信息,其中,一个响应信息的优先级是根据该响应信息与至少一个语音识别结果之间的关联度确定的;

缓存所述语音识别结果对应的响应信息,包括:

利用所述语音识别结果对应的响应信息覆盖所述缓存队列中已存储有历史语音识别结果对应的历史响应信息。

本申请第二方面提供了一种输出响应信息的装置,所述装置包括:

第一获得模块,用于对获取到的语音流进行语音识别,获得语音识别结果;

第一确定模块,用于对所述语音流进行静默检测,确定是否生成静默标识;

第二获得模块,用于在对所述语音流进行静默检测期间,获得所述语音识别结果对应的响应信息并缓存;

读取模块,用于在生成所述静默标识的情况下,读取并输出所缓存的响应信息。

可选地,所述装置还包括:

第一检测模块,用于在对所述语音流进行静默检测期间,检测所述语音识别结果是否发生更新和/或所述语音识别结果对应的意图信息是否发生更新;

所述第二获得模块包括:

获得子模块,用于在所述语音识别结果发生更新或所述语音识别结果对应的意图信息发生更新时,获得更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息;

更新子模块,用于利用更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息,对已缓存的响应信息进行更新并缓存。

可选地,所述装置还包括:

第二确定模块,用于根据所述语音识别结果对应的响应信息和以下信息中至少一者:所述语音识别结果、历史语音识别结果和对应的历史响应信息、所述语音识别结果的属性信息,确定所述响应信息的预估响应时刻;

第三确定模块,用于在所述预估响应时刻晚于预估时刻的情况下,将等待第一预设时长后的时刻确定为所述响应信息的响应时刻,所述预估时刻为基于所述静默标识的生成时刻而确定的时刻;

第四确定模块,用于在所述预估响应时刻早于所述预估时刻的情况下,将当前时刻确定为所述响应信息的响应时刻;

所述读取模块包括:

读取子模块,用于在生成所述静默标识的情况下,在所述响应信息的响应时刻,读取并输出所缓存的响应信息。

可选地,所述装置还包括:

第三获得模块,用于对在输出所缓存的响应信息期间获取到的语音流进行语音识别,获得新的语音识别结果;

停止模块,用于在所述新的语音识别结果满足预设的打断条件时,停止输出所缓存的响应信息。

可选地,所述装置还包括:

加锁模块,用于在读取到所缓存的响应信息且确定出所述响应信息的响应时刻时,对用于输出新的响应信息的权限进行加锁操作;

解锁模块,用于在间隔第二预设时长后或在输出所缓存的响应信息期间,对用于输出新的响应信息的权限进行解锁操作。

可选地,所述装置还包括:

比较模块,用于比较所述语音识别结果对应的响应信息和当前待输出响应信息;

丢弃模块,用于在所述语音识别结果对应的响应信息和当前待输出响应信息不相同的情况下,或,在所述语音识别结果对应的响应信息的优先级低于缓存队列中已存储有历史语音识别结果对应的历史响应信息的优先级的情况下,丢弃所述语音识别结果对应的响应信息,其中,一个响应信息的优先级是根据该响应信息与至少一个语音识别结果之间的关联度确定的;

所述第二获得模块包括:

覆盖模块,用于利用所述语音识别结果对应的响应信息覆盖所述缓存队列中已存储有历史语音识别结果对应的历史响应信息。

本申请实施例第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的输出响应信息方法中的步骤。

本申请实施例第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的输出响应信息方法中的步骤。

采用本申请的输出响应信息的方法,对话管理系统首先对获取到的语音流进行语音识别,获得语音识别结果;接着对语音流进行静默检测,确定是否生成静默标识;接着在对语音流进行静默检测期间,获得语音识别结果对应的响应信息并缓存;最后在生成静默标识的情况下,读取并输出所缓存的响应信息。本申请对全双工对话的对话体验进行量化,提出了全双工对话中首先需要关注的一个指标:机器回复间隔时间,将获得回复结果这一步骤提前到等待静默标识的期间执行,使得对话管理模块dm在获取到静默标识后可直接读取预先缓存的回复结果并输出,能显著缩短机器回复间隔时间,实现对机器回复间隔时间的优化,进而提升用户对话体验。

附图说明

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

图1是本申请一实施例示出的一种输出响应信息的方法的流程图;

图2是本申请一实施例示出的一种对话管理系统的架构示意图;

图3是本申请一实施例示出的另一种对话管理系统的架构示意图;

图4是本申请一实施例示出的一种输出响应信息的装置的结构框图;

图5是本申请一实施例示出的一种电子设备的示意图。

具体实施方式

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

在对本申请的输出响应信息的方法进行介绍之前,下面首先对相关技术中的对话处理方法进行简单说明。

目前的全双工对话机器人多采用传统的pipeline架构(pipeline是指将计算机指令处理过程拆分为多个步骤,通过多个硬件处理单元并行执行以加快指令执行速度),即:语音识别模块asr(automaticspeechrecognition,自动语音识别)负责识别用户语音和声学上的静默检测(静默检测是指通过对语音波形图进行分析,确定用户语音输入是否完毕);纠错模块负责纠正语音识别模块asr的识别结果,其负责在语义层面对识别结果进行补充,通常解决断句错误的情况;自然语言理解模块nlu(naturallanguageunderstanding,自然语言理解)负责将纠正后的识别结果转换成意图和槽位(槽位识别可以视为对每个意图所需条件的识别,例如识别结果为:从北京到上海的航班,意图为航班查询,槽位为:北京(出发城市),上海(目的城市);对话管理模块dm(dialogmanagement,对话管理)结合自然语言理解模块nlu的当前转换结果,和上下文信息,生成最终的回复。

然而全双工对话允许用户和机器人同时说话,不符合人类的对话习惯,需要转换成半双工模式,以提升对话体验。当前很多技术都在尝试优化对话体验,但对话体验是一个抽象的概念,相关技术并没有定义清楚何为对话体验,应该优化哪些指标,只是给出了感性的理解,如对话过程中不发生机器抢话等。

本申请沿用传统的pipline架构,并将对话体验进行量化,提出了全双工对话中首先需要关注的一个指标:机器回复间隔时间。机器回复间隔时间指用户说完话到听到机器人回复的时间间隔,该间隔时间不能太长,否则可能引起用户补话的情况,降低机器人的智能程度,例如用户说完话后机器人长时间未回复,用户重复说过的话或者询问对方是否还在线。相关技术并未对机器回复间隔时间指标进行针对性的优化,其采用的方式通常是:对话管理模块dm等待静默检测,拿到静默检测结果后,结合自然语言理解模块nlu获取回复结果,然后输出回复结果。因此,回复速度的快慢由静默检测算法和各模块执行时间决定。

其中,静默检测结果即vad检测结果。vad(voiceactivitydetection,语音端点检测技术)是语音信号处理过程的关键技术之一,其主要任务是从带有噪声的语音中准确的定位出语音的结束点,由于用户输入的语音中通常含有很长的静音,因此在语音信号处理过程中首先需要将静音和实际语音分离开。

下面将对机器回复间隔时间这一指标的优化过程进行详细介绍。

图1是本申请一实施例示出的一种输出响应信息的方法的流程图。参照图1,本申请的输出响应信息的方法可以包括如下步骤:

步骤s11:对获取到的语音流进行语音识别,获得语音识别结果。

图2是本申请一实施例示出的一种对话管理系统的架构示意图。本申请的输出响应信息的方法可应用于图2所示的对话管理系统。对话管理系统通过语音识别模块asr获取到用户输入的语音流后,对语音流进行识别,并将识别得到的文本传输给对话管理模块dm。

在本实施例中,对语音流的识别和对识别结果的传输可同时执行,即语音识别与合成模块每次识别得到文本后,将该部分文本传输给对话管理模块dm,而不需要等到识别完成后一次性将文本发送给对话管理模块dm,如此,对话管理模块dm可提前接收到部分识别结果。

步骤s12:对所述语音流进行静默检测,确定是否生成静默标识。

在本实施例中,语音识别模块asr在获取用户输入的语音流的过程中,会通过vad检测技术对语音流的端点进行静默检测,得到vad检测结果,vad检测结果包含语音的结束点。对话管理模块dm获取到vad检测结果后,根据其中记载的结束点,可以确定拿到的识别结果中哪些是有效语音流,即用户说的话,哪些是无效语音流,即不是用户说的话,例如噪音、静音等。

其中,语音识别模块asr每检测到一个结束点时,会生成一个静默标识,并将该静默标识发送给对话管理模块dm,告知对话管理模块dm用户已经完成了当次语音流的输入。

步骤s13:在对所述语音流进行静默检测期间,获得所述语音识别结果对应的响应信息并缓存。

在本实施例中,机器回复间隔时间按先后顺序可分为以下5个部分:vad等待耗时、网络传输耗时、获取结果耗时、程序执行时间耗时以及音频播报静默耗时。其中,vad等待耗时是指等待接收语音识别模块asr发送的静默标识这一阶段的耗时,网络传输耗时是指各微服务之间的rcp请求耗时,获取结果耗时是指对话管理模块dm结合自然语言理解模块nlu获取回复结果这一阶段的的耗时,程序执行时间耗时是指各模块进行运算的耗时,音频播报静默耗时指合成语音或者播报录音时,从开始播报到用户听到声音的耗时。

在相关技术中,对话管理模块dm需要拿到静默标识后,结合自然语言理解模块nlu获取回复结果。通常情况下,对话管理模块dm需要等待较长时长才能接收到语音识别模块asr发送的静默标识,使得对话管理模块dm即便较早地拿到识别结果,也无法立即对识别结果进行处理。

因此,本申请中将获取回复结果这一阶段提前到等待静默标识的阶段(即在对语音流进行静默检测期间)执行,如此,对话管理模块dm较早地拿到识别结果后,可以提前获得回复结果并缓存。

示例地,对话管理模块dm在某个时刻获得了识别结果,为“查询附近的酒店”,但是还没接收到静默标识,此时对话管理模块dm可立即与自然语言理解模块nlu交互,查询用户附近的酒店,将其作为回复结果并缓存。其中,此处的回复结果即语音识别结果对应的响应信息。

步骤s14:在生成所述静默标识的情况下,读取并输出所缓存的响应信息。

在本实施例中,对话管理模块dm在接收到静默标识时,可确定用户已经语音输入完毕,此时直接从回复队列中读取缓存的回复结果作为响应信息并输出。

在本实施例中,对话管理模块dm利用提前预测的策略优化机器回复间隔时间。静默检测主要依赖声学特征做断句,通常有一个等待时长阈值,若在该等待时长阈值内未检测到用户的语音流输入,才确定用户说话结束,而在这个等待时长内,用户说话内容通常不会有变化,基于此原理,本申请将获得回复结果这一步骤提前到等待静默标识的期间执行,可节省在静默标识后再获得回复结果的耗时。

结合图2,在本实施例中,对话管理系统的语音识别模块asr主要负责将语音转化为文本,对话管理模块dm主要用于按照通用策略对语音识别模块asr传输的识别结果进行处理,及对对话过程进行管理和获得回复结果,自然语言理解模块nlu主要用于对识别结果的领域/意图/槽位进行识别,输出模块主要负责语音/电话信息转换。在与用户进行对话时,对话管理系统的语音识别模块asr获得用户输入的语音流,通过语音识别与合成模块将语音流转换为文本识别结果,然后通过纠错模块纠错,将纠错后的识别结果发送给对话管理模块dm,与此同时,静默检测模块负责对输入的语音流进行静默检测。对话管理模块dm实施提前预测策略,将识别结果发送给自然语言理解模块nlu,自然语言理解模块nlu对识别结果进行通用意图识别,将识别得到的意图信息(即图2中的解析结果)返回给对话管理模块dm。对话管理模块dm再通过dst状态追踪策略和policy策略获得回复结果。对话管理模块dm将回复结果缓存在回复队列中,在接收到静默标识后,直接从回复队列中读取缓存的回复结果并发送到输出模块。输出模块对回复结果进行解码,然后播放。其中,自然语言理解模块nlu的内部实现过程可参照已有技术实现,本实施例对此不作具体限制。

通过本申请的输出响应信息的方法,对话管理系统首先对获取到的语音流进行语音识别,获得语音识别结果;接着对语音流进行静默检测,确定是否生成静默标识;接着在对语音流进行静默检测期间,获得语音识别结果对应的响应信息并缓存;最后在生成静默标识的情况下,读取并输出所缓存的响应信息。本申请对全双工对话的对话体验进行量化,提出了全双工对话中首先需要关注的一个指标:机器回复间隔时间,将获得回复结果这一步骤提前到等待静默标识的期间执行,使得对话管理模块dm在获取到静默标识后可直接读取预先缓存的回复结果并输出,能显著缩短机器回复间隔时间,实现对机器回复间隔时间的优化,进而提升用户对话体验。

结合以上实施例,在一种实施方式中,在对所述语音流进行静默检测期间,本申请的方法还可以包括如下步骤:

在对所述语音流进行静默检测期间,检测所述语音识别结果是否发生更新和/或所述语音识别结果对应的意图信息是否发生更新;

步骤s13可以包括:

在所述语音识别结果发生更新或所述语音识别结果对应的意图信息发生更新时,获得更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息;

利用更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息,对已缓存的响应信息进行更新并缓存。在本实施例中,对话管理模块dm在获得回复结果后且还未接收到静默标识的期间内,可以利用新接收到的语音识别结果调整回复结果。如果新接收到的语音识别结果与之前接收到的语音识别结果相同,一般不需要调整回复结果,如果新接收到的语音识别结果与之前接收到的语音识别结果不相同,一般需要重新根据新接收到的语音识别结果获得新的回复结果,直到接收到静默标识时,读取最新的回复结果并输出。

具体地,对话管理模块dm在获得回复结果后且还未接收到静默标识的期间内,新接收到的语音识别结果可能存在下述情况:

一、新接收到的语音识别结果与之前的语音识别结果相同。

二、新接收到的语音识别结果与之前的语音识别结果不相同。

针对上述第一种情况,由于前后接收的语音识别结果都是相同的,因此可直接读取缓存的回复结果并输出,以减少获取结果耗时,实现对机器回复间隔时间的调整。输出方式可以是通过语音播报方式输出,也可以是其它方式,本实施例对此不作具体限制。

针对上述第二种情况,当新接收到的语音识别结果与之前的语音识别结果不相同时,又可分为如下情况:

1、新接收到的语音识别结果对应的意图信息未发生变化。

2、新接收到的语音识别结果对应的意图信息发生变化。

在新接收到的语音识别结果与原来的语音识别结果不相同时,对话管理模块dm可通过自然语言理解模块nlu获得新的意图信息。如果新的意图信息与原来的意图信息相同,表示用户意图未发生变化时,也即预先获得的回复结果仍旧有效,此时无需获得新的回复结果。此种方式仍能减少获取结果耗时,实现对机器回复间隔时间的调整。如果新的意图信息与原来的意图信息不相同,表示用户意图发生变化,也即预先获得的回复结果无效,此时需要获得新的回复结果并对原来的回复结果进行调整。

示例地,假设对话管理模块dm接收到“查询周边的火锅店”这一识别结果时,还未接收到静默标识,对话管理模块dm可立即获得回复结果并缓存。在获得回复结果后且还未接收到静默标识的期间内,如果接收的新的识别结果为“查询周边的火锅店”,由于与原来的识别结果相同,因此无需重新获得新的回复结果。如果接收的新的识别结果为“查询周边的火锅店、火锅店”,由于与原来的识别结果不相同,因此通过自然语言理解模块nlu获得新的意图信息,并确定意图信息未发生变化,此时无需获得新的回复结果。如果接收的新的识别结果为“查询周边的烧烤店”,由于与原来的识别结果不相同,因此通过自然语言理解模块nlu获得新的意图信息,并确定新的意图信息发生了变化,此时需要获得新的回复结果并对原来的回复结果进行更新。

在具体实施时,对话管理模块dm在获得回复结果后且还未接收到静默标识的期间内,对回复结果的调整方法可为如下任意一种:

一、在语音识别结果发生更新时,获得新的回复结果并对原来的回复结果进行更新。

执行该方式时,对话管理模块dm只要检测到新接收到的语音识别结果与之前接收到的语音识别结果不同,立即获得新的回复结果,并利用新的回复结果对之前获得的回复结果进行更新。

二、在语音识别结果对应的意图信息发生更新时,获得新的回复结果并对原来的回复结果进行更新。

执行该方式时,对话管理模块dm在检测到新接收到的语音识别结果与之前接收到的语音识别结果不同时,进一步通过自然语言理解模块nlu检测新接收到的语音识别结果的意图信息,如果该意图信息与之前接收到的语音识别结果的意图信息不同,获得新的回复结果,并利用新的回复结果对之前获得的回复结果进行更新。

在本实施例中,对话管理模块dm在获得回复结果后且还未接收到静默标识的期间内,实时检测原来的回复结果是否需要更新,并在需要更新时及时获得新的回复结果并进行更新,可有效防止用户输入语音发生变化时继续输出原来的回复结果所导致的答非所问的情况,避免影响用户的对话体验。

本申请还将对话体验进行进一步量化,提出了全双工对话中另一个需要关注的指标:机器回复时机。机器回复时机是指机器决定开始回复用户的时刻,不能出现不合理的抢话等,否则容易导致对话节奏混乱。机器回复时机又可分为机器与用户的节奏控制和机器与自身的节奏控制。

机器与用户的节奏控制包括机器不主动打断用户说话。机器与自身的节奏控制包括机器不主动打断自己讲话。相关技术中只考虑机器与用户的节奏控制,认为获得回复结果就应该立即回复,这是有局限性的,在实际情况中,用户可能想要说多句话,或者只是说一个无意义的语气词,因此回复时机应该结合上下文一起判断,且应该有判定失误的补救措施,如打断策略等。

下面将对机器回复时机指标的优化过程进行详细介绍。

在一种实施方式中,在上述步骤s13之后,本申请的输出响应信息的方法还可以包括如下步骤:

根据所述语音识别结果对应的响应信息和以下信息中至少一者:所述语音识别结果、历史语音识别结果和对应的历史响应信息、所述语音识别结果的属性信息,确定所述响应信息的预估响应时刻;

在所述预估响应时刻晚于预估时刻的情况下,将等待第一预设时长后的时刻确定为所述响应信息的响应时刻,所述预估时刻为基于所述静默标识的生成时刻而确定的时刻;

在所述预估响应时刻早于所述预估时刻的情况下,将当前时刻确定为所述响应信息的响应时刻;

相应地,在生成所述静默标识的情况下,读取并输出所缓存的响应信息,包括:

在生成所述静默标识的情况下,在所述响应信息的响应时刻,读取并输出所缓存的响应信息。

在相关技术中,在按照通用策略获得预估时刻时,具体是将对话管理模块dm收到静默标志的时刻作为预估时刻的。

如前所述,为避免直接在通用策略确定的预估时刻输出响应信息时造成的失误,本申请还通过模型获得一个预估响应时刻,该预估响应时刻是对多方面信息进行综合分析推测出的一个较为合理的输出响应信息的时刻。

本实施例中,可以预先利用语音识别结果对应的响应信息样本作为输入训练得到时机预测模型。对话管理模块dm在获得语音识别结果对应的响应信息后,将语音识别结果对应的响应信息输入时机预测模型,即可输出预估响应时刻。

其中,在训练时机预测模型时,样本中还可以包括语音识别结果样本、历史语音识别结果样本和对应的历史响应信息样本、语音识别结果的属性信息样本、vad标识中的任意一个或多个,以提升模型预估结果的准确度。其中,加入语音识别结果样本,或者历史语音识别结果样本和对应的历史响应信息样本时训练得到的时机预测模型,可以在预估结果时考虑当前语音识别结果的上下文信息,进而提升预估结果的准确度。语音识别结果的属性信息包括识别结果的字数、时长等特征信息。vad标识包括结束点,可以通过vad检测结果获得。语音识别结果的属性信息和vad标识同样有助于模型进行判断并获得更合理的预估响应时刻。

接着,对话管理模块dm根据预估时刻和预估响应时刻的先后顺序,按照如下策略执行:

一、预估响应时刻晚于预估时刻

如果预估响应时刻晚于预估时刻,表示通用策略认为应该在预估时刻回复,但是时机预测模型认为不应该在预估时刻回复,而应该延后,并在预估响应时刻回复。此时,可以综合考虑预估时刻和预估响应时刻,适当地在预估时刻基础上延长一定时间,再输出回复结果。对话管理模块dm可以将预估时刻和预估响应时刻的差值的一部分作为第一预设时长,将预估时刻上等待第一预设时长后的时刻作为输出回复结果的响应时刻。

在具体实施将预估时刻和预估响应时刻的差值的一部分作为第一预设时长时,可以取预估时刻和预估响应时刻之间的差值的一定比例值作为第一预设时长,例如差值为1小时时,可以取差值的二分之一,即半小时作为第一预设时长,也可以取差值的三分之二,即40分钟作为第一预设时长,当然也可以直接取1小时作为第一预设时长(即将预估响应时刻作为响应信息的响应时刻),本实施例对此不作具体限制。

二、预估响应时刻早于预估时刻

如果预估响应时刻早于预估时刻,表示时机预测模型认为应该提前回复。此时,可以立即回复,即将当前时刻确定为输出回复结果的响应时刻。

在确定输出回复结果的时刻后,在到达响应信息的响应时刻时,对话管理模块dm直接从回复队列中读取并输出预先缓存的回复结果。

在本实施例中,时机预测模型可以是语言模型(例如可以是lstm模型、bert模型等)、分类模型、匹配模型(例如可以是:sentence-bert模型、孪生网络模型等)中的任意一种,本实施例对此不作具体限制。

本实施例中,对话管理系统通过时机预测模型获得更为合理的预估响应时刻,并利用预估响应时刻对通用策略下的预估时刻进行调整,能避免直接在预估时刻输出响应信息时造成的失误现象,优化用户的对话体验。

结合以上实施例,在一些场景中,时机预测模型也可能产生误判,例如某次由于误判产生了预估响应时刻早于预估时刻的结果,此时对话管理模块dm将当前时刻确定为响应信息的响应时刻,并马上进入输出准备,如果不立即阻止,将会造成错误回复,导致用户说话时机器也在说话,影响用户体验。因此,本申请中引入了用户打断机制,作为判断失误时的补救措施。

具体地,在所述响应信息的响应时刻为当前时刻的情况下,本申请的方法还可以包括:

对在输出所缓存的响应信息期间获取到的语音流进行语音识别,获得新的语音识别结果;

在所述新的语音识别结果满足预设的打断条件时,停止输出所缓存的响应信息。

在本实施例中,对话管理系统可在任意时刻接收用户输入的语音流,即使是在即将输出响应信息的时刻也可以接收用户输入的语音流。在响应信息的响应时刻为当前时刻的情况下,对话管理模块dm在输出回复结果的期间,获得当前用户新输入的语音流的识别结果,判断该新的语音识别结果是否满足预设的打断条件,如果满足,立即停止输出回复结果。

其中,预设的打断条件至少包括如下三种:意图打断、关键词打断、用户说话即打断等。其中,意图打断需要分析识别结果的意图信息,如果意图信息表示想要阻止机器人说话,对话管理模块dm立即停止输出回复结果。关键词打断需要检测识别结果中是否明确包含表示打断的关键词,例如“不要说话”“停止说话”等关键词,一旦检测到这类关键词,对话管理模块dm立即停止输出回复结果。用户说话即打断是指只要检测到用户在说话,对话管理模块dm立即停止输出回复结果。

在本实施例中,引入了用户打断机制,作为时机预测模型产生误判时的补救措施,能在检测到用户需要打断机器说话时,及时阻止对话管理模块dm继续输出回复结果,从而避免在用户说话时机器也在说话,及时补救对用户造成的干扰。

结合以上实施例,在一种实施方式中,本申请还引入了策略锁机制,实现机器自身的节奏控制,避免连续触发机器回复,导致机器打断自身说话。具体地,本申请的方法还可以包括:

在读取到所缓存的响应信息且确定出所述响应信息的响应时刻时,对用于输出新的响应信息的权限进行加锁操作;

在间隔第二预设时长后或在输出所缓存的响应信息期间,对用于输出新的响应信息的权限进行解锁操作。

在本实施例中,对话管理模块dm在到达响应信息的响应时刻时,会从回复队列中读取预先缓存的回复结果,将其传输给输出模块,并授予输出模块回复权限(输出模块每一次输出回复结果时均需要获得回复权限),输出模块在获得回复权限后,输出回复结果。一旦授予输出模块回复权限,对话管理模块dm立即对回复权限进行加锁操作,从而防止输出模块再次获得回复权限。如此,输出模块在短时间内不会重复输出同一个回复结果,或者在上一个回复结果未输出完毕时输出新的回复结果,进而避免了连续触发机器回复,导致机器打断自身说话。

在本实施例中,可以根据实际需求设置授予输出模块回复权限的时机,例如可以将确定出响应信息的响应时刻确定为授予回复权限的时机,也可以将读取到所缓存的响应信息且确定出响应信息的响应时刻确定为授予回复权限的时机。在授予输出模块回复权限后,对话管理模块dm立即对回复权限进行加锁操作。

本实施例中可以通过下述任意一种方式,或者两种方式并用以实现回复权限的解锁操作:

一、在间隔第二预设时长后对回复权限进行解锁操作。

二、在输出回复结果期间对回复权限进行解锁操作。

针对第一种方式,对话管理模块dm可在对回复权限进行加锁操作后,等待第二预设时长后,对回复权限进行解锁操作。其中,第二预设时长可以根据实际需求任意设置,通常为一个不引起机器连续回复的经验值。

针对第二种方式,对话管理模块dm可在检测到输出回复结果后对回复权限进行解锁操作。例如,可以在检测到回复结果输出一半后回复权限进行解锁操作,或者在检测到回复结果输出完毕后对回复权限进行解锁操作,又或者在检测到回复结果输出3秒后对回复权限进行解锁操作,本实施例对此不作具体限制。

本实施例中引入了策略锁机制,通过对回复权限进行加锁操作,可避免连续触发机器回复,进而避免导致机器打断自身说话,实现机器对自身的节奏的灵活控制。

图3是本申请一实施例示出的另一种对话管理系统的架构示意图。在图3中,本申请增加了回复时机模型和策略锁。对话管理模块dm在获取到回复结果后,结合时机预测模型获得预估响应时刻,输入模型的可选特征包括本次回复结果、当前的识别结果、机器与用户的对话历史、当前识别结果的特征信息、vad标志等。对于通用策略认为本该回复,但时机预测模型判定不该回复的情况,等待第一预设时长再回复,即如果在该期间没有检测到用户输入的语音流,做延迟回复处理。对于通用策略认为本不该回复,但时机预测模型判定应该回复的情况,引入用户打断机制,可以是意图打断、关键词打断、用户说话即打断当中的任意一种或多种。引入策略锁机制实现机器自身的节奏控制,避免连续触发机器回复,导致机器打断自身说话。本申请通过模型和策略锁的应用,可显著优化机器回复时机,进而优化用户体验。

本申请还将对话体验进行进一步量化,提出了全双工对话中的第三个需要关注的指标:机器回复内容的正确性。机器回复内容的正确性是指机器回复与用户表述之间的相关性,不能出现答非所问的情况。相关技术多集中于识别结果的准确性、意图理解的准确性以及对话管理模块dm的配置管理,忽略了用户主动打断的情况。用户主动打断可分为三种情况:用户补充之前的内容、用户不想机器说而想自己说、用户猜到了机器要说的内容而提前回复,这三种情况对应的机器回复内容明显是不一样的。

下面将对机器回复内容的正确性这一指标的优化过程进行详细介绍。

在上述步骤s13之前,本申请的方法还可以包括如下步骤:

比较所述语音识别结果对应的响应信息和当前待输出响应信息;

在所述语音识别结果对应的响应信息和当前待输出响应信息不相同的情况下,或,在所述语音识别结果对应的响应信息的优先级低于缓存队列中已存储有历史语音识别结果对应的历史响应信息的优先级的情况下,丢弃所述语音识别结果对应的响应信息,其中,一个响应信息的优先级是根据该响应信息与至少一个语音识别结果之间的关联度确定的;

相应地,步骤s13可以包括:

利用所述语音识别结果对应的响应信息覆盖所述缓存队列中已存储有历史语音识别结果对应的历史响应信息。

在本实施例中,由于用户可能不断地输入语音流,因此对话管理模块dm可能每时每刻都会获得新的回复结果,其次意图信息也可能随时改变,导致上一个回复结果随时变得无效,例如即将回复某个回复结果时,新产生的回复结果更符合用户的需求。因此,对回复队列的管理以及回复消息的及时调整尤为必要。

在本实施例中,回复队列中管理着对话管理模块dm获得的每一个回复结果,决策每个回复结果是否进入队列,以及进入队列后所处的位置。回复队列对于每个回复结果的管理需要遵循如下多个原则:

一、在每个回复结果优先级相同的情况下:

1、如果当前机器既没有正在播放也没有即将播放的回复结果,那么每次拿到新的回复结果后,直接利用新的回复结果覆盖掉原队列中的回复结果,即删除原队列中的回复结果,缓存新的回复结果。

2、如果机器有即将播放的回复结果,那么拿到新的回复结果后,若新的回复结果和即将播放的回复结果相同,利用新的回复结果覆盖掉原队列中的回复结果,但不要求播放(因为即将播放的回复结果和新的回复结果一样,所以只需保留内部的有效信息即可);若新的回复结果和即将播放的回复结果不相同,则丢弃新的回复结果。

3、如果机器有正在播放的回复结果,那么每次拿到新的回复结果后,利用新的回复结果后覆盖掉原队列中的回复结果。

二、在回复结果的优先级存在不相同的情况下:

1、如果回复队列中有高优先级的回复结果,则丢弃低优先级的回复结果。

2、每次播放时均从回复队列的队首读取回复结果。

3、如果在播放回复结果时被用户打断,且用户打断发生在回复结果的阈值之前,则重新播放回复结果,否则播放下一个回复结果。

针对第二种情况下的第3个原则,如果用户打断发生在回复结果的阈值之前(包含阈值时刻),表示用户还未听到回复结果的大部分内容,因此选择重新播放,如果用户打断发生在回复结果的阈值之后,表示用户已经听到回复结果的大部分内容,因此选择播放下一个回复结果。例如,检测到用户打断时,回复结果已经播放了三分之一,认为用户没有听到大部分内容,此时可以选择重新播放回复结果。再例如,检测到用户打断时,回复结果已经播放了四分之三,认为用户听到了大部分内容,此时可以选择播放下一个回复结果。

因此,对话管理模块dm在获得语音识别结果对应的回复结果后,将该回复结果与当前待输出响应信息(即将播放的回复结果)进行比较,如果当前的回复结果与即将播放的回复结果相同,或者当前的回复结果的优先级低于即将播放的回复结果的优先级,表示当前的回复结果播放的意义不大,因此可直接丢弃该当前的回复结果。

在本实施例中,一个回复结果的优先级可以根据该回复结果与多个语音识别结果之间的关联度设置,例如可以为不同的关联度区间设置不同的优先级,关联度与优先级成正比,关联度越高,优先级越高,关联度越低,优先级越低。每一个语音识别结果都对应有一个优先级最高的回复结果,对该优先级最高的回复结果进行播放,能尽可能地提高输出的回复结果的准确性。

在接收到静默检测结果后,如果新的识别结果与原有的识别结果相同,或者新的识别结果的意图信息与原来的识别结果的意图信息相同,那么直接从回复队列中读取缓存的回复结果并发送到输出模块。输出模块对回复结果进行解码,然后播放。

在本实施例中,回复队列采用多种原则对所有回复结果进行管理,使得输出模块能尽可能地输出与语音识别结果关联度较高的回复结果,避免答非所问的情况,提升回复结果的准确性。

本申请在传统的pipline架构的基础上,提出了全双工对话中需要关注的三个指标:机器回复间隔时间、机器回复时机以及机器回复内容的正确性,并给出了完整的全双工对话实施方案,利用提前预测的策略降低了机器回复间隔时间,利用策略锁和时机预测模型优化了机器与用户的对话节奏,实现了机器对自身的对话节奏的控制,降低了误回复的概率以及带来的体验问题,利用回复队列和回复队列优先级机制确保回复内容更加准确。

基于同一发明构思,本申请一实施例还提供了一种输出响应信息的装置400。图4是本申请一实施例示出的一种输出响应信息的装置的结构框图。如图4所示,该装置400包括:

第一获得模块401,用于对获取到的语音流进行语音识别,获得语音识别结果;

第一确定模块402,用于对所述语音流进行静默检测,确定是否生成静默标识;

第二获得模块403,用于在对所述语音流进行静默检测期间,获得所述语音识别结果对应的响应信息并缓存;

读取模块404,用于在生成所述静默标识的情况下,读取并输出所缓存的响应信息。

可选地,所述装置400还包括:

第一检测模块,用于在对所述语音流进行静默检测期间,检测所述语音识别结果是否发生更新和/或所述语音识别结果对应的意图信息是否发生更新;

所述第二获得模块包括:

获得子模块,用于在所述语音识别结果发生更新或所述语音识别结果对应的意图信息发生更新时,获得更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息;

更新子模块,用于利用更新后的语音识别结果对应的响应信息或更新后的意图信息对应的响应信息,对已缓存的响应信息进行更新并缓存。可选地,所述装置400还包括:

第二确定模块,用于根据所述语音识别结果对应的响应信息和以下信息中至少一者:所述语音识别结果、历史语音识别结果和对应的历史响应信息、所述语音识别结果的属性信息,确定所述响应信息的预估响应时刻;

第三确定模块,用于在所述预估响应时刻晚于预估时刻的情况下,将等待第一预设时长后的时刻确定为所述响应信息的响应时刻,所述预估时刻为基于所述静默标识的生成时刻而确定的时刻;

第四确定模块,用于在所述预估响应时刻早于所述预估时刻的情况下,将当前时刻确定为所述响应信息的响应时刻;

所述读取模块404包括:

读取子模块,用于在生成所述静默标识的情况下,在所述响应信息的响应时刻,读取并输出所缓存的响应信息。

可选地,所述装置400还包括:

第三获得模块,用于对在输出所缓存的响应信息期间获取到的语音流进行语音识别,获得新的语音识别结果;

停止模块,用于在所述新的语音识别结果满足预设的打断条件时,停止输出所缓存的响应信息。

可选地,所述装置400还包括:

加锁模块,用于在读取到所缓存的响应信息且确定出所述响应信息的响应时刻时,对用于输出新的响应信息的权限进行加锁操作;

解锁模块,用于在间隔第二预设时长后或在输出所缓存的响应信息期间,对用于输出新的响应信息的权限进行解锁操作。

可选地,所述装置400还包括:

比较模块,用于比较所述语音识别结果对应的响应信息和当前待输出响应信息;

丢弃模块,用于在所述语音识别结果对应的响应信息和当前待输出响应信息不相同的情况下,或,在所述语音识别结果对应的响应信息的优先级低于缓存队列中已存储有历史语音识别结果对应的历史响应信息的优先级的情况下,丢弃所述语音识别结果对应的响应信息,其中,一个响应信息的优先级是根据该响应信息与至少一个语音识别结果之间的关联度确定的;

所述第二获得模块403包括:

覆盖模块,用于利用所述语音识别结果对应的响应信息覆盖所述缓存队列中已存储有历史语音识别结果对应的历史响应信息。

基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。

基于同一发明构思,本申请另一实施例还提供了一种电子设备500,如图5所示。图5是本申请一实施例示出的一种电子设备的示意图。该电子设备包括存储器502、处理器501及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种输出响应信息的方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜