欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于语音识别的问答方法、装置、计算机设备和存储介质独创技术49183字

基于语音识别的问答方法、装置、计算机设备和存储介质

2021-02-16 01:22:44

基于语音识别的问答方法、装置、计算机设备和存储介质

  技术领域

  本申请涉及人工智能技术领域,特别是涉及一种基于语音识别的问答方法、装置、计算机设备和存储介质。

  背景技术

  随着人工智能技术的发展,语音识别技术逐渐成熟,并且应用到外呼机器人、智能客服以及智能助手等场景中。

  相关技术中,在用户与外呼机器人通话的过程中,外呼机器人对输入的用户语音进行识别,从而根据识别结果进行应答。

  但是,常常会出现机器人抢答,答复内容与用户语音并不匹配的情况。

  发明内容

  基于此,有必要针对上述技术问题,提供一种能够避免出现机器人抢答的基于语音识别的问答方法、装置、计算机设备和存储介质。

  一种基于语音识别的问答方法,该方法包括:

  在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  在其中一个实施例中,上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束,包括:

  依次根据各语音片段对应的识别结果确定计时状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;

  计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;

  在计时时长超过预设时长的情况下,确定用户发言结束。

  在其中一个实施例中,该方法还包括:

  计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束,包括:

  依次根据各语音片段对应的识别结果确定计数状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;

  在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;

  在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  在其中一个实施例中,该方法还包括:

  计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,上述依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果,包括:

  依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;

  若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在其中一个实施例中,上述根据目标语音输出回复语音,包括:

  确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;

  根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  在其中一个实施例中,上述根据目标文本进行意图识别,并根据意图识别结果输出回复语音,包括:

  将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;

  根据用户意图确定回复语音,并输出回复语音。

  在其中一个实施例中,上述根据用户意图确定回复语音,包括:

  根据用户意图在预先设置的数据库中查找对应的回复话术;

  将回复话术转换为回复语音。

  一种基于语音识别的问答装置,该装置包括:

  识别结果获得模块,用于在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  发言结束确定模块,用于若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  回复语音输出模块,用于将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  在其中一个实施例中,上述发言结束确定模块,具体用于依次根据各语音片段对应的识别结果确定计时状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;在计时时长超过预设时长的情况下,确定用户发言结束。

  在其中一个实施例中,该发言结束确定模块,还用于计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,上述发言结束确定模块,具体用于依次根据各语音片段对应的识别结果确定计数状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  在其中一个实施例中,发言结束确定模块,还用于计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,上述识别结果获得模块,具体用于依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在其中一个实施例中,上述回复语音输出模块,包括:

  文本拼接子模块,用于确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;

  回复语音输出子模块,用于根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  在其中一个实施例中,上述回复语音输出子模块,具体用于将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;根据用户意图确定回复语音,并输出回复语音。

  在其中一个实施例中,回复语音输出子模块,具体用于根据用户意图在预先设置的数据库中查找对应的回复话术;将回复话术转换为回复语音。

  一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

  在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

  在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  上述基于语音识别的问答方法、装置、计算机设备和存储介质,服务器在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。通过本公开实施例,服务器会实时对语音流进行语音识别,如果用户短暂停顿,服务器并不会输出回复语音,即避免了机器人出现抢答的问题;服务器在确定连续n个语音片段均为空白语音片段后确定用户发言结束,此时将上一次输出回复语音后至用户发言结束前的所有语音片段确定为目标语音,根据目标语音输出回复语音,即获取到完整的用户发言才输出回复语音,可以使机器人的回复与用户发言更加匹配。

  附图说明

  图1为一个实施例中基于语音识别的问答方法的应用环境图;

  图2为一个实施例中基于语音识别的问答方法的流程示意图;

  图3为一个实施例中确定用户发言结束步骤的流程示意图之一;

  图4为一个实施例中确定用户发言结束步骤的流程示意图之二;

  图5为一个实施例中确定用户发言结束步骤的流程示意图之三;

  图6为一个实施例中确定用户发言结束步骤的流程示意图之四;

  图7为一个实施例中根据目标语音输出回复语音步骤的流程示意图;

  图8为另一个实施例中基于语音识别的问答方法的流程示意图;

  图9为一个实施例中基于语音识别的问答装置的结构框图;

  图10为一个实施例中计算机设备的内部结构图。

  具体实施方式

  为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

  本申请提供的基于语音识别的问答方法,可以应用于如图1所示的应用环境中。该应用环境包括终端102和服务器104。其中,终端102通过网络与服务器104进行通信,服务器104通过终端102接收语音流,并在确定回复语音后将回复语音发送到终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

  在一个实施例中,如图2所示,提供了一种基于语音识别的问答方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

  步骤201,在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果。

  其中,识别结果用于表征语音片段是否为空白语音片段;空白语音片段为不存在用户声音的语音片段;非空白语音片段为存在用户声音的语音片段。

  在用户与机器人通话的过程中,终端将采集到的语音以语音流的方式输入到服务器,服务器根据语音流输出回复语音。服务器在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,确定语音片段是否为空白语音片段。

  分片处理可以按照固定时间间隔,例如,对于输入的语音流,按照200ms的时间间隔进行分片处理,得到语音片段1、2、……100。

  分片处理也可以按照自适应时间间隔,即对非空白语音片段采用第一时间间隔进行分片处理,对空白语音片段采用第二时间间隔进行分片处理,且第一时间间隔小于第二时间间隔。例如,对于输入的语音流,服务器按照200ms的时间间隔进行一次分片处理,得到语音片段1,对语音片段1进行语音识别确定语音片段1为非空白语音片段;服务器继续按照200ms的时间间隔进行分片处理以及语音识别;在确定语音片段41为空白语音片段后,服务器开始按照250ms的时间间隔进行分片处理,直到确定一个语音片段为非空白语音片段为止,服务器再开始按照200ms的时间间隔进行分片处理。本公开实施例对分片处理方式不做限定。

  上述对语音片段进行语音识别可以采用自动语音识别技术(Automatic SpeechRecognition,ASR),本公开实施例对语音识别不做限定。

  步骤202,若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束。

  其中,n为大于1的整数。

  服务器可以预先设置n的数值,如果确定连续n个语音片段均为空白语音片段,则表明用户在等待机器人回复,因此确定用户发言结束。本公开实施例对n不做限定。

  步骤203,将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  确定用户发言结束之后,从上一次输出回复语音到本次用户发言结束,服务器得到了多个语音片段,将这些语音片段作为本次用户发言的目标语音,根据目标语音确定回复语音,并输出回复语音。

  上述基于语音识别的问答方法中,服务器在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。通过本公开实施例,服务器会实时对语音流进行语音识别,如果用户短暂停顿,服务器并不会输出回复语音,即避免了机器人出现抢答的问题;服务器在确定连续n个语音片段均为空白语音片段后确定用户发言结束,此时将上一次输出回复语音后至用户发言结束前的所有语音片段确定为目标语音,根据目标语音输出回复语音,即获取到完整的用户发言才输出回复语音,可以使机器人的回复与用户发言更加匹配。

  在一个实施例中,如图3所示,上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束的步骤,可以包括如下:

  步骤301,依次根据各语音片段对应的识别结果确定计时状态。

  在对输入的语音流进行分片处理的过程中,可以得到多个语音片段,依次对各语音片段进行语音识别,得到各语音片段是否为空白语音片段的识别结果。如果检测到语音片段为非空白语音片段,则确定暂时不进入计时状态,继续执行对输入的语音流进行分片处理,对分片得到的各语音片段进行语音识别,得到语音片段对应的识别结果的步骤。如果检测到一个语音片段为空白语音片段,则执行步骤302。

  步骤302,若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时。

  在检测到一个语音片段为空白语音片段的情况下,判断该语音片段的前一个语音片段是否为非空白语音片段,如果该语音片段的前一个语音片段是非空白语音片段,则进入计时状态,开始计时。

  例如,确定语音片段41为空白语音片段,语音片段40为非空白语音片段,则从语音片段41开始计时。

  步骤303,计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时。

  在计时开始后,对后续的语音片段进行语音识别,如果后续的语音片段也是空白语音片段,则持续计时;如果后续的语音片段为非空白语音片段,则结束计时。

  例如,如果确定语音片段42、43……80均为空白语音片段,则持续计时,如果确定语音片段81为非空白语音片段,则结束计时。

  步骤304,在计时时长超过预设时长的情况下,确定用户发言结束。

  开始计时后,如果计时时长超过预设时长,则表明用户一直未发言,在等待机器人回复,因此,可以确定本次用户发言结束,进而根据本次用户发言确定目标语音,并根据目标语音输出回复语音。

  在其中一个实施例中,如图4所示,还可以包括:

  步骤305,计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  计时结束后,如果从开始计时到计时结束的计时时长未超过预设时长,表明在检测到空白语音片段期间,用户只是短暂停顿,本次用户发言并未结束,对计时进行清零处理,同时继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束的步骤中,实时对语音流进行分片处理并进行语音识别,根据识别结果实时确定用户发言是否结束,在用户发言未结束的情况持续进行语音识别,而不输出回复语音,直到用户发言结束才输出回复语音,避免出现外呼机器人抢答的问题。

  在一个实施例中,如图5所示,上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束的步骤,可以包括如下:

  步骤401,依次根据各语音片段对应的识别结果确定计数状态。

  在对输入的语音流进行分片处理的过程中,可以得到多个语音片段,依次对各语音片段进行语音识别,得到语音片段是否为空白语音片段的识别结果。如果检测到语音片段为非空白语音片段,则确定暂时不进入计数状态,继续执行对输入的语音流进行分片处理,对分片得到的各语音片段进行语音识别,得到语音片段对应的识别结果的步骤。如果检测到一个语音片段为空白语音片段,则执行步骤402。

  步骤402,若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数。

  在检测到一个语音片段为空白语音片段的情况下,判断该语音片段的前一个语音片段是否为非空白语音片段,如果该语音片段的前一个语音片段是非空白语音片段,则进入计数状态,开始进行空白语音片段的计数。

  例如,确定语音片段41为空白语音片段,语音片段40为非空白语音片段,则从语音片段41开始计数,空白语音片段的数量为1。

  步骤403,在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数。

  在计数开始后,对后续的语音片段进行语音识别,如果后续的语音片段也是空白语音片段,则对空白语音片段的数量进行累加处理;如果后续的语音片段为非空白语音片段,则结束计数。

  例如,如果确定语音片段42是空白语音片段,则空白语音片段的数量为2,如果确定语音片段43也是空白语音片段,则空白语音片段的数量为3,以此类推,对空白语音片段的数量进行累加处理。如果确定语音片段81为非空白语音片段,则结束空白语音片段的计数。

  步骤404,在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  开始计数后,如果累加到的空白语音片段的数量超过预设数量阈值,则表明用户一直未发言,在等待机器人回复,因此,可以确定本次用户发言结束,进而根据本次用户发言确定目标语音,并根据目标语音输出回复语音。

  在其中一个实施例中,如图6所示,还可以包括:

  步骤405,计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  计数结束后,如果从开始计数到计数结束,累加到的空白语音片段的数量未超过预设数量阈值,表明在检测到空白语音片段期间,用户只是短暂停顿,本次用户发言并未结束,对计数进行清零处理,同时继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  上述若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束的步骤中,服务器实时对语音流进行分片处理并进行语音识别,根据识别结果实时确定用户发言是否结束,在用户发言未结束的情况持续进行语音识别,而不输出回复语音,直到用户发言结束才输出回复语音,避免出现外呼机器人抢答的问题。

  在一个实施例中,上述依次对分片得到的各语音片段进行语音识别,得到各所述语音片段对应的识别结果,可以包括:依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在对输入的语音流进行分片处理后,得到多个语音片段,依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;如果文本片段中存在文本,则确定语音片段为非空白语音片段;如果文本片段中存在文本,则确定语音片段为空白语音片段。

  在其中一个实施例中,如图7所示,上述根据目标语音输出回复语音的步骤,可以包括:

  步骤501,确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本。

  确定用户发言结束之后,从上一次输出回复语音后到用户发言结束前,服务器得到了多个语音片段,将这些语音片段作为本次用户发言的目标语音。目标语音中各语音片段均具有对应的文本片段,在确定目标语音后,将目标语音中各语音片段对应的文本片段,按照时间顺序进行拼接得到目标文本。即,将上一次输出回复语音后到用户发言结束前的所有文本作为目标文本。

  步骤502,根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  在得到目标文本之后,根据目标文本进行语义理解。语义理解可以采用意图识别模型,在确定目标文本后,将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;之后,根据用户意图确定回复语音,并输出回复语音。

  在实际应用中,意图识别模型可以输出多个意图标签及各意图标签对应的置信度,将置信度最高的意图标签确定为目标文本对应的用户意图。可以理解地,采用意图识别模型可以得到完整的用户意图,以便根据完整的用户意图进行回复。

  上述意图识别模型可以是NLP(Natural Language Processing,自然语言处理)模型,本公开实施例对此不做限定。

  在其中一个实施例中,根据用户意图确定回复语音,包括:根据用户意图在预先设置的数据库中查找对应的回复话术;将回复话术转换为回复语音。

  预先设置数据库,数据库中存储有多个用户意图及各用户意图对应的回复话术。在确定目标文本对应的用户意图之后,在数据库中进行查找得到对应的回复话术。最后,对回复话术进行语音转换,得到回复语音。

  上述根据目标语音输出回复语音的步骤中,服务器确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;根据目标文本进行意图识别,并根据意图识别结果输出回复语音。通过本公开实施例,将上一次输出回复语音后到用户发言结束前的所有文本作为目标文本,根据目标文本获取到完整的用户意图,根据完整的用户意图输出回复语音,解决了机器人反应过快导致的意图收集不完整的问题,解决了用户停顿、喘气、查找信息等场景的体验问题,可以使回复语音与用户发言更加匹配。

  一个实施例中,如图8所示,提供了一种基于语音识别的问答方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

  步骤601,在每次输出回复语音后,对输入的语音流进行分片处理,并依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;若文本片段中不存在文本,则确定语音片段为空白语音片段。

  步骤602,若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束。

  其中,n为大于1的整数。

  在其中一个实施例中,依次根据各语音片段对应的识别结果确定计时状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;在计时时长超过预设时长的情况下,确定用户发言结束;计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,依次根据各语音片段对应的识别结果确定计数状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束;计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  步骤603,将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音。

  步骤604,确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本。

  步骤605,将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图。

  步骤606,根据用户意图在预先设置的数据库中查找对应的回复话术;将回复话术转换为回复语音。

  上述基于语音识别的问答方法中,服务器实时对语音流进行分片处理并进行语音识别,根据识别结果实时确定用户发言是否结束,在用户发言未结束的情况持续进行语音识别,而不输出回复语音,直到用户发言结束才输出回复语音,避免出现外呼机器人抢答的问题。并且,服务器将上一次输出回复语音后到用户发言结束前的所有文本作为目标文本,根据目标文本获取到完整的用户意图,根据完整的用户意图输出回复语音,可以使回复语音与用户发言更加匹配。

  应该理解的是,虽然图2-图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

  在一个实施例中,如图9所示,提供了一种基于语音识别的问答装置,包括:

  识别结果获得模块701,用于在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  发言结束确定模块702,用于若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  回复语音输出模块703,用于将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  在用户与机器人通话的过程中,终端将采集到的语音以语音流的方式输入到服务器,服务器根据语音流输出回复语音。服务器在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,确定语音片段是否为空白语音片段。

  分片处理可以按照固定时间间隔;也可以按照自适应时间间隔,即对非空白语音片段采用第一时间间隔进行分片处理,对空白语音片段采用第二时间间隔进行分片处理,且第一时间间隔小于第二时间间隔。

  服务器可以预先设置n的数值,如果确定连续n个语音片段均为空白语音片段,则表明用户在等待机器人回复,因此确定用户发言结束。

  确定用户发言结束之后,从上一次输出回复语音到本次用户发言结束,服务器得到了多个语音片段,将这些语音片段作为本次用户发言的目标语音,根据目标语音确定回复语音,并输出回复语音。

  可以理解地,服务器会实时对语音流进行语音识别,如果用户短暂停顿,服务器并不会输出回复语音,即避免了机器人出现抢答的问题;服务器在确定连续n个语音片段均为空白语音片段后确定用户发言结束,此时将上一次输出回复语音后至用户发言结束前的所有语音片段确定为目标语音,根据目标语音输出回复语音,即获取到完整的用户发言才输出回复语音,可以使机器人的回复与用户发言更加匹配。

  在其中一个实施例中,上述发言结束确定模块702,具体用于依次根据各语音片段对应的识别结果确定计时状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;在计时时长超过预设时长的情况下,确定用户发言结束。

  在其中一个实施例中,该发言结束确定模块702,还用于计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在其中一个实施例中,上述发言结束确定模块702,具体用于依次根据各语音片段对应的识别结果确定计数状态;若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  在其中一个实施例中,发言结束确定模块702,还用于计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  可以理解地,在确定用户发言结束的步骤中,实时对语音流进行分片处理并进行语音识别,根据识别结果实时确定用户发言是否结束,在用户发言未结束的情况持续进行语音识别,而不输出回复语音,直到用户发言结束才输出回复语音,避免出现外呼机器人抢答的问题。

  在其中一个实施例中,上述识别结果获得模块701,具体用于依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在其中一个实施例中,上述回复语音输出模块703,包括:

  文本拼接子模块,用于确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;

  回复语音输出子模块,用于根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  确定用户发言结束之后,从上一次输出回复语音后到用户发言结束前,服务器得到了多个语音片段,将这些语音片段作为本次用户发言的目标语音。目标语音中各语音片段均具有对应的文本片段,在确定目标语音后,将目标语音中各语音片段对应的文本片段,按照时间顺序进行拼接得到目标文本。即,将上一次输出回复语音后到用户发言结束前的所有文本作为目标文本。

  在其中一个实施例中,上述回复语音输出子模块,具体用于将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;根据用户意图确定回复语音,并输出回复语音。

  在实际应用中,意图识别模型可以输出多个意图标签及各意图标签对应的置信度,将置信度最高的意图标签确定为目标文本对应的用户意图。可以理解地,采用意图识别模型可以得到完整的用户意图,以便根据完整的用户意图进行回复。

  在其中一个实施例中,回复语音输出子模块,具体用于根据用户意图在预先设置的数据库中查找对应的回复话术;将回复话术转换为回复语音。

  可以理解地,服务器确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;根据目标文本进行意图识别,并根据意图识别结果输出回复语音。通过本公开实施例,将上一次输出回复语音后到用户发言结束前的所有文本作为目标文本,根据目标文本获取到完整的用户意图,根据完整的用户意图输出回复语音,可以使回复语音与用户发言更加匹配。

  关于基于语音识别的问答装置的具体限定可以参见上文中对于基于语音识别的问答方法的限定,在此不再赘述。上述问答装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

  在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储问答数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于语音识别的问答方法。

  本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

  在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

  在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  依次根据各语音片段对应的识别结果确定计时状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;

  计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;

  在计时时长超过预设时长的情况下,确定用户发言结束。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  依次根据各语音片段对应的识别结果确定计数状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;

  在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;

  在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;

  若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;

  根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;

  根据用户意图确定回复语音,并输出回复语音。

  在一个实施例中,处理器执行计算机程序时还实现以下步骤:

  根据用户意图在预先设置的数据库中查找对应的回复话术;

  将回复话术转换为回复语音。

  在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

  在每次输出回复语音后,对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别,得到各语音片段对应的识别结果;识别结果用于表征语音片段是否为空白语音片段;

  若连续n个语音片段对应的识别结果均为语音片段为空白语音片段,则确定用户发言结束;n为大于1的整数;

  将上一次输出回复语音后至用户发言结束前得到的多个语音片段确定为目标语音,并根据目标语音输出回复语音。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  依次根据各语音片段对应的识别结果确定计时状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始计时;

  计时开始后,若后续的语音片段为空白语音片段,则持续计时;若后续的语音片段为非空白语音片段,则结束计时;

  在计时时长超过预设时长的情况下,确定用户发言结束。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  计时结束后,若计时时长未超过预设时长,则对计时进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  依次根据各语音片段对应的识别结果确定计数状态;

  若检测到一个语音片段为空白语音片段,且语音片段的前一个语音片段为非空白语音片段,则开始进行空白语音片段的计数;

  在计数开始后,若后续的语音片段为空白语音片段,则对计数进行累加处理;若后续的语音片段为非空白语音片段,则结束空白语音片段的计数;

  在累计到的空白语音片段的数量超过预设数量阈值的情况下,确定用户发言结束。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  计数结束后,若累计到的空白语音片段的数量未超过预设数量阈值,则对计数进行清零处理,并继续执行对输入的语音流进行分片处理,并依次对分片得到的各语音片段进行语音识别的步骤。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  依次对各语音片段进行文本转换,得到各语音片段对应的文本片段;

  若文本片段中不存在文本,则确定语音片段为空白语音片段。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  确定目标语音中各语音片段对应的文本片段,并将多个文本片段按照时间顺序拼接为目标文本;

  根据目标文本进行意图识别,并根据意图识别结果输出回复语音。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  将目标文本输入到预先设置的意图识别模型中,得到意图识别模型输出的用户意图;

  根据用户意图确定回复语音,并输出回复语音。

  在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

  根据用户意图在预先设置的数据库中查找对应的回复话术;

  将回复话术转换为回复语音。

  本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

  以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

  以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

《基于语音识别的问答方法、装置、计算机设备和存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)