一种语音控制方法及装置与流程

文档序号:26194149发布日期:2021-08-06 18:47阅读:469来源:国知局

本申请涉及自动驾驶领域,尤其涉及一种语音控制方法及装置。



背景技术:

语音交互产品已经广泛进入到人们的日常生活中,比如智能手机、智能家居设备、智能车载设备等产品中都具有语音交互功能。特别是在车载环境中,语音交互可以解放双手,且具有命令控制快捷且保障行车安全的特点。

行车过程中,由于行车环境的变化,用户通常可以通过与车载的语音控制装置进行语音交互,实现对车载设备比如车窗和天窗的开度的调节。

但当前的语音交互过程中,语音控制装置需要确定用户已经结束下发语音信号之后,才能根据获取到的整段用户语音,进行语音识别和语义分析以得到控制指令,然后根据控制指令对相应的车载设备比如车窗的开度进行调节。由于需要在获取整段用户语音之后才能对用户语音进行识别分析,使得整个控制过程的时延较长。



技术实现要素:

本申请提供一种语音控制方法及装置,用于在语音控制过程中减少控制时延,提高用户体验。

本申请提供的语音控制方法可以由终端设备实现,例如,车辆或车载设备。该语音控制方法也可以由终端设备的部件实现,如由终端设备中的处理装置、电路、芯片等部件实现,例如,终端设备中支持无线通信功能相关的芯片,如系统芯片或通信芯片。其中,系统芯片也称为片上系统,或称为片上系统(systemonchip,soc)芯片。通信芯片可以包括射频处理芯片和基带处理芯片。基带处理芯片有时也称为调制解调器(modem)。在物理实现中,通信芯片可集成在soc芯片内部,也可以不与soc芯片集。例如,基带处理芯片集成在soc芯片中,射频处理芯片不与soc芯片集成。

第一方面,本申请提供一种语音控制方法,该方法包括:根据第一语音信号,确定具有完整语义的第一文本信息;根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换。示例性的,目标设备对应的指定运行状态可以至少包括有第一运行状态和第二运行状态。其中,第二文本信息是在第一文本信息之前被获取的,第二文本信息与第一文本信息之间具有上下文关系,第二文本信息用于控制目标设备进入指定运行状态中的第一运行状态,第一文本信息用于控制目标设备由指定运行状态中的第一运行状态切换至第二运行状态。

示例性的,目标设备是车窗,车窗对应的指定运行状态可以包括有向下移动(即第一运行状态)和停止向下移动(即第二运行状态),其中第二文本信息用于控制车窗向下移动,第一文本信息用于控制车窗停止向下移动。可以根据第一文本信息和第二文本信息控制车窗由向下移动的状态切换至停止向下移动的状态。

应理解的是,在上述技术方案中,无需等待用户结束下发语音信号,而是在第一文本信息具有完整语义,且存在与第一文本信息具有上下文关系的第二文本信息的情况下,确定用户结束下发语音信号,并根据第一文本信息和第二文本信息生成控制指令,通过该方式,有助于减少语音控制过程中的控制时延,而且生成的控制指令是结合上一次的文本信息生成的,可有效控制处于指定运行状态的目标设备。

一种可选实现方式中,第二文本信息与第一文本信息具有上下文关系,至少包括如下的一项或多项:第二文本信息和第一文本信息对应于(或者作用于)同一个目标设备;第二文本信息对应的执行动作和第一文本信息对应的执行动作属于相同类型。

应理解的是,在上述技术方案中,在确定第二文本信息与第一文本信息具有上下文关系时,具体可确定第二文本信息和第一文本信息是否对应同一个目标设备,和/或,第二文本信息对应的执行动作和第一文本信息对应的执行动作是否属于相同类型,从而有助于提高确定第二文本信息是第一文本信息的上文的正确率。

一种可选实现方式中,根据第一语音信号,确定具有完整语义的第一文本信息之前,还包括:根据第二语音信号,确定具有完整语义的第二文本信息;对第二文本信息执行自然语言理解,得到第二结构化信息;根据第二结构化信息,控制目标设备进入第一运行状态。

应理解的是,在上述技术方案中,先获取第二语音信号,根据第二语音信号控制目标设备进入至第一运行状态,然后获取第一语音信号,根据第一语音信号控制目标设备由第一运行状态切换至第二运行状态,实现根据第二语音信号对处于第一运行状态的目标设备的控制。

一种可选实现方式中,根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换,包括:根据第二文本信息对应的第二结构化信息,确定与第二结构化信息相对应的预设集合,预设集合中包括一个或多个预设文本信息和预设指令标识的对应关系;在一个或多个预设文本信息中包括第一文本信息时,根据第一文本信息对应的预设指令标识确定控制指令,其中,控制指令用于控制目标设备由指定运行状态中的第一运行状态切换至指定运行状态中的第二运行状态。

应理解的是,在上述技术方案中,设置第二结构化信息对应的预设集合,在第一文本信息包含于预设集合中的情况下,可以直接确定出第一文本信息对应的预设指令标识,再根据该预设指令标识生成控制指令,无需对第一文本信息执行自然语言理解和对话管理,进一步减少控制过程中的时延。

一种可选实现方式中,根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换,还包括:在第一文本信息与一个或多个预设文本信息中任一个预设文本信息不同时,对第一文本信息执行自然语言理解得到第一结构化信息;根据第一结构化信息和第二结构化信息确定控制指令。

应理解的是,在上述技术方案中,在第一文本信息未包含于预设集合的情况下,可以先对第一文本信息进行自然语言理解得到第一结构化信息,然后根据第一结构化信息和第二结构化信息执行对话管理,得到控制指令,有助于保障系统的正常运行。

一种可选实现方式中,根据第一结构化信息和第二结构化信息确定控制指令之后,还包括:在控制指令无效的情况下,根据第一结构化信息更新第二结构化信息。

应理解的是,在上述技术方案中,在控制指令无效时,可以根据第一结构化信息更新存储的第二结构化信息(也即更新存储的历史结构化信息),保障当前存储的历史结构化信息是最新的结构化信息,保障系统的正确运行,且有助于在接收到新的语音信号时做出正确的判断。

一种可选实现方式中,根据第一语音信号,确定具有完整语义的第一文本信息,包括:根据第一语音信号,确定第一语音信号对应的m个文字,m为正整数;将m个文字组成的文本信息输入至第一预设模型,得到第一预设模型的输出结果,第一预设模型用于判断输入的多个文字所组成的文本信息是否具有完整语义;根据m个文字组成的文本信息和第一预设模型的输出结果,生成第一文本信息。

一种可选实现方式中,第一预设模型由如下步骤确定:获取第一训练集合,第一训练集合中包括有多个第一训练数据,针对于多个第一训练数据中每个第一训练数据,第一训练数据包括有第一训练文本信息和第一标签,第一训练文本信息由一个或多个文字组成,第一标签用于指示第一训练文本信息是否具有完整语义;根据多个第一训练数据和第一训练模型,执行一次或多次第一模型训练,至第一训练模型的第一输出结果符合第一预设条件,并将第一输出结果符合第一预设条件的第一训练模型确定为第一预设模型;其中,第一模型训练包括:将多个第一训练数据输入至第一训练模型中,得到第一输出结果;根据第一输出结果,更新第一训练模型中的模型参数,得到模型参数更新后的第一训练模型。

应理解的是,在上述技术方案中,预先设定第一预设模型,其中第一预设模型是根据多个历史训练数据训练得到的较为精确的分类模型。当根据第一语音信号确定出第一语音信号对应的m个文字时,可以将m个文字组成的文本信息输入至该第一预设模型中,以确定出当前第一语音信号对应的m个文字是否具有完整语义,有助于得到较为准确的判定结果,进而得到较为准确的具有完整语义的第一文本信息。

一种可选实现方式中,根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换之前,还包括:将第一文本信息和历史文本信息输入至第二预设模型中,得到第二预设模型的输出结果,第二预设模型用于判断输入的两个文本信息是否具有上下文关系;根据第二预设模型的输出结果,将历史文本信息确定为第二文本信息。

一种可选实现方式中,第二预设模型由如下步骤确定:获取第二训练集合,第二训练集合中包括有多个第二训练数据,针对于多个第二训练数据中每个第二训练数据,第二训练数据包括两个第二训练文本信息和第二标签,第二标签用于指示两个第二训练文本信息是否具有上下文关系;根据多个第二训练数据和第二训练模型,执行一次或多次第二模型训练,至第二训练模型的第二输出结果符合第二预设条件,并将第二输出结果符合第二预设条件的第二训练模型确定为第二预设模型;其中,第二模型训练包括:将多个第二训练数据输入至第二训练模型中,得到第二输出结果;根据第二输出结果,更新第二训练模型中的模型参数,得到模型参数更新后的第二训练模型。

应理解的是,在上述技术方案中,预先设定第二预设模型,其中第二预设模型是根据多个历史训练数据训练得到的较为精确的分类模型。当第一语音信号对应的m个文字具备完整语义时,即m个文字组成第一文本信息时,可以将第一文本信息和当前存储的历史文本信息输入至该第二预设模型,从而根据该第二预设模型的输出结果确定历史文本信息是否为第一文本信息的上文,通过该方式有助于得到较为准确的判定结果。

第二方面,本申请提供一种语音控制装置,该装置包括:处理模块,用于根据第一语音信号,确定具有完整语义的第一文本信息;控制模块,用于根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换。示例性的,目标设备对应的指定运行状态可以至少包括有第一运行状态和第二运行状态。其中,第二文本信息是在第一文本信息之前被获取的,第二文本信息与第一文本信息之间具有上下文关系,第二文本信息用于控制目标设备进入指定运行状态中的第一运行状态,第一文本信息用于控制目标设备由指定运行状态中的第一运行状态切换至第二运行状态。

一种可选实现方式中,第二文本信息与第一文本信息具有上下文关系,至少包括如下的一项或多项:第二文本信息和第一文本信息对应于同一个目标设备;第二文本信息对应的执行动作和第一文本信息对应的执行动作属于相同类型。

一种可选实现方式中,在处理模块根据第一语音信号,确定具有完整语义的第一文本信息之前,处理模块还用于:根据第二语音信号,确定具有完整语义的第二文本信息;对第二文本信息执行自然语言理解,得到第二结构化信息;控制模块还用于:根据第二结构化信息,控制目标设备进入第一运行状态。

一种可选实现方式中,控制模块具体用于:根据第二文本信息对应的第二结构化信息,确定与第二结构化信息相对应的预设集合,预设集合中包括一个或多个预设文本信息和预设指令标识的对应关系;在一个或多个预设文本信息中包括第一文本信息时,根据第一文本信息对应的预设指令标识确定控制指令,其中,控制指令用于控制目标设备由指定运行状态中的第一运行状态切换至指定运行状态中的第二运行状态。

一种可选实现方式中,控制模块还用于:在第一文本信息与一个或多个预设文本信息中任一个预设文本信息不同时,对第一文本信息执行自然语言理解得到第一结构化信息;根据第一结构化信息和第二结构化信息确定控制指令。

一种可选实现方式中,控制模块还用于:根据第一结构化信息和第二结构化信息确定控制指令之后,在控制指令无效的情况下,根据第一结构化信息更新第二结构化信息。

一种可选实现方式中,处理模块具体用于:根据第一语音信号,确定第一语音信号对应的m个文字,m为正整数;将m个文字组成的文本信息输入至第一预设模型,得到第一预设模型的输出结果,第一预设模型用于判断输入的多个文字所组成的文本信息是否具有完整语义;根据m个文字组成的文本信息和第一预设模型的输出结果,生成第一文本信息。

一种可选实现方式中,处理模块具体用于:获取第一训练集合,第一训练集合中包括有多个第一训练数据,针对于多个第一训练数据中每个第一训练数据,第一训练数据包括有第一训练文本信息和第一标签,第一训练文本信息由一个或多个文字组成,第一标签用于指示第一训练文本信息是否具有完整语义;根据多个第一训练数据和第一训练模型,执行一次或多次第一模型训练,至第一训练模型的第一输出结果符合第一预设条件,并将第一输出结果符合第一预设条件的第一训练模型确定为第一预设模型;其中,第一模型训练包括:将多个第一训练数据输入至第一训练模型中,得到第一输出结果;根据第一输出结果,更新第一训练模型中的模型参数,得到模型参数更新后的第一训练模型。

一种可选实现方式中,控制模块根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换之前,处理模块还用于:将第一文本信息和历史文本信息输入至第二预设模型中,得到第二预设模型的输出结果,第二预设模型用于判断输入的两个文本信息是否具有上下文关系;根据第二预设模型的输出结果,将历史文本信息确定为第二文本信息。

一种可选实现方式中,处理模块具体用于:获取第二训练集合,第二训练集合中包括有多个第二训练数据,针对于多个第二训练数据中每个第二训练数据,第二训练数据包括两个第二训练文本信息和第二标签,第二标签用于指示两个第二训练文本信息是否具有上下文关系;根据多个第二训练数据和第二训练模型,执行一次或多次第二模型训练,至第二训练模型的第二输出结果符合第二预设条件,并将第二输出结果符合第二预设条件的第二训练模型确定为第二预设模型;其中,第二模型训练包括:将多个第二训练数据输入至第二训练模型中,得到第二输出结果;根据第二输出结果,更新第二训练模型中的模型参数,得到模型参数更新后的第二训练模型。

第三方面,本申请提供一种计算设备,包括处理器,处理器与存储器相连,存储器存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得计算设备执行上述第一方面或第一方面的任一种可能的实现方式中的方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法。

第五方面,本申请提供一种计算机程序产品,当计算机读取并执行计算机程序产品时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法。

第六方面,本申请提供一种芯片,芯片与存储器相连,用于读取并执行存储器中存储的软件程序,以实现上述第一方面或第一方面的任一种可能的实现方式中的方法。

应理解的是,上述第一方面至第六方面的技术方案中,语音控制装置可以获取第二语音信号,根据第二语音信号确定第二文本信息,然后根据第二文本信息执行自然语言理解,得到第二结构化信息,再根据第二结构化信息控制目标设备进入指定运行状态的第一运行状态。在目标设备处于第一运行状态的情况中,语音控制装置还可以在持续获取第一语音信号的过程中,对持续获取到的第一语音信号执行流式语音识别,得到对应的m个文字,确定该m个文字组成的文本信息具有完整语义的情况下,将具有完成语义的m个文字组成的第一文本信息,无需在用户下发完成语音信号之后等待静默时长,而是在确定获取到具有完整语义的文本信息之后即推断出用户下发完成语音信号,从而有效减少控制时延。

进一步的,根据第一文本信息和当前存储的历史文本信息确定二者之间是否具有上下文关系,在确定二者具有上下文关系的情况下,则可以确定出当前获取到的第一语音信号是用户针对于上一次的第二语音信号的进一步指示,于是可以根据第一文本信息和第二文本信息,控制处于第一运行状态的目标设备,具体的,将该目标设备的运行状态由第一运行状态切换至第二运行状态,如此,可以有效确定出用户下发的第一语音信号所指示的目标设备,并对该目标设备进行控制。

而且,在对目标设备进行控制时,可以确定第一文本信息是否在第二文本信息(即第二结构化信息)对应的预设集合中,当第一文本信息在该预设集合中时,可以无需对第一文本信息执行自然语言理解和对话管理,而直接根据该预设集合确定出第一文本信息对应的预设指令标识,从而有助于进一步减少控制过程中的时延。

如此,本申请中通过流式语音识别技术、完整语义判定、上下文判定以及设定第二文本信息(即第二结构化信息)对应的预设集合,可以有效减少控制过程中的时延,用户可以通过下发语音信号实现更直观有效地控制目标设备,有助于提高用户体验。

附图说明

图1为本申请提供的一种语音控制装置包含的功能模块示意图;

图2为本申请提供的一种数据处理模块所包含的功能模块示意图;

图3为本申请提供的语音控制装置所适用的一种具体场景;

图4为本申请提供的一组车窗缓慢下移过程的示意图;

图5为本申请提供的第一种语音控制装置处理语音信号产生时延的示意图;

图6为本申请提供的再一种数据处理模块所包含的功能模块示意图;

图7为本申请提供的一种语音控制方法的流程示意图;

图8为本申请提供的再一种语音控制方法的流程示意图;

图9为本申请提供的一种流控制模块中两个预设模型的输入输出的流程示意图;

图10为本申请提供的一种车载场景中的语音控制流程;

图11为本申请提供的再一种车载场景中的语音控制流程;

图12为本申请提供的另一种车载场景中的语音控制流程;

图13为本申请提供的第二种语音控制装置处理语音信号产生时延的示意图;

图14为本申请提供的第三种语音控制装置处理语音信号产生时延的示意图;

图15为本申请提供的一种语音控制装置的结构示意图;

图16为本申请提供的另一种语音控制装置的结构示意图。

具体实施方式

下面将结合附图,对本申请实施例进行详细描述。

如图1所示,为本申请提供的一种语音控制装置包含的功能模块示意图。该语音控制装置中包括:语音获取模块、数据处理模块和决策模块。其中,语音获取模块用于获取语音信号,并将获取到的语音信号传输至数据处理模块。数据处理模块用于对语音信号执行语音分析、语义分析、对话管理等,以得到数据处理结果。数据处理模块将数据处理结果发送至决策模块,决策模块根据数据处理结果生成控制指令,并下发至对应的目标设备。

如图2所示,为本申请提供的一种数据处理模块所包含的功能模块示意图。示例性的,数据处理模块中包括:语音识别(automaticspeechrecognition,asr)功能模块、自然语言理解(naturallanguageunderstanding,nlu)功能模块、对话管理(dialogmanagement,dm)功能模块。为方便说明,以下将asr功能模块、nlu功能模块、dm功能模块分别简称为asr模块、nlu模块、dm模块。

下面对这三个组成部分分别进行说明。

一、asr模块可以用于执行语音分析,即将用户输入的语音信号转换成自然语言文本(可以称为文本信息),相当于人类的耳朵。

语音识别原理流程:“语音输入—编码(特征提取)—解码—文字输出”。示例性的,语音输入即将获取到的语音信号输入至asr模块中。其中语音信号实际上是一种声波,asr模块可以对该语音信号执行编码(特征提取),具体的,可以按照帧(毫秒级)对声波进行拆分,得到每帧对应的一小段波形。针对于每帧对应的一小段波形,对该一小段波形按照人耳特征转变为多维向量信息。asr模块根据该多维向量信息,解码得到该多维向量信息对应的多个音素(phone),将该多个因素组成字词并串联成语句(即文本信息)。asr模块将生成的文本信息输出。

与语音识别相关的技术,主要包括:

1)语音活动检测(voiceactivedetection,vad)

语音活动检测也可以称为语音激活检测或静音检测等。

在远场识别场景下,用户不能用手接触设备,这时噪声比较大,信噪比下降剧烈,简单可以理解为信号不清晰,则可以使用vad技术。其作用就是判断什么时候有语音信号输入,什么时候没有语音信号输入(即静音),后续的语音信号处理或是语音识别可以是在vad截取出来的有效语音片段上进行的。也即,vad主要用于检测用户是否完成语音信号输入。

vad主要包括语音vad和语义vad。语音vad是指在检测到设定时长内没有语音信号输入,则停止接收语音信号(也称为停止收音)。语义vad是指在确定当前从输入的语音信号转换得到的文本信息具有完整的语义时,则停止接收语音信号。

2)语音唤醒(voicetrigger,vt)

在远场识别场景下,需要在vad检测到人声之后,进行语音唤醒,相当于向该设备下发一个唤醒指令,从而触发后续的语音识别。

3)麦克风阵列(microphonearray)

这是一套用来对声场的空间特性进行采样并处理的系统,有一定数目的声学传感器(一般是麦克风)组成。其目的有几个:语音增强,从含噪声的语音信号中提取出纯净语音的过程;声源定位,使用麦克风阵列来计算目标说话人的角度和距离,从而实现对目标说话人的跟踪以及后续的语音定向拾取;去混响,减少一些反射声的影响;声源信号提取/分离,将多个混合声音全部提取出来。主要是适用于车载、户外、超市等多杂音、噪音、回音的复杂环境。

二、nlu模块可以用于执行自然语言理解或语义分析,即将自然语言文本转换为机器可以理解的结构化信息。示例性的,自然语言文本比如“打开车窗”,通过自然语言理解得到的结构化信息,比如“control-window.adjust”。

三、dm模块可以用于执行对话管理,即基于对话的状态,根据语义信息,提供相应的业务。对话管理控制着人机对话的过程,它会根据对话的历史信息,决定该对用户做出什么样的反应。最常见的应用为任务驱动的多轮对话,用户带着明确的目的如订单查询等,用户需求比较复杂,有很多限制条件,可能需要分多轮进行陈述。本质上,任务驱动的对话管理实际就是一个决策过程,系统在对话过程中不断根据当前状态决定下一步应该采取的最优动作(如:提供结果,询问特定限制条件,澄清或确认需求等),从而最有效的辅助用户完成信息或服务获取的任务。

此外,数据处理模块中还可以包括:自然语言生成(naturallanguagegeneration,nlg)功能模块和语音合成(texttospeech,tts)功能模块,为方便说明,以下将nlg功能模块、tts功能模块分别简称为nlg模块、tts模块。

其中nlg模块可以用于根据业务的信息生成自然语言文本。

tts模块可以用于将自然语言文本变成输出的语音信号。跟asr模块相反,tts模块是将自然语言文本转化为语音,让机器朗读出来,相当于人类的嘴巴。

如图3为本申请提供的语音控制装置可以适用的一种具体场景,该具体场景可以是车载场景,用户可以通过语音控制装置,向某个车载设备(可以称为目标设备,比如为车窗、车载音箱、座椅、空调等)下发控制指令。比如图3中,用户说“打开车窗”(相当于用户下发语音信号,该语音信号为“打开车窗”),则语音控制装置在接收到该语音信号之后,可以将语音信号通过图2所示的asr模块、nlu模块和dm模块等处理后得到车窗的控制指令,然后根据该控制指令控制车窗缓慢下移。

此外,用户还可以通过语音控制装置对其他车载设备下发控制指令。比如用户说“抬高座椅”,则语音控制装置响应于该语音信号,控制座椅缓慢抬高,再比如用户说“调小空调风力”,则语音控制装置响应于该语音信号,控制空调风力缓慢减小。

此外,本申请提供的语音控制装置还可以适用于其他场景,比如家庭场景中,用户可以通过语音控制装置,向家庭场景中某个家庭设备(可以称为目标设备,比如扫地机器人、台灯、窗帘等)下发控制指令。示例性的,用户说“打开窗帘”,则语音控制装置响应于该语音信号控制窗帘缓慢打开;用户说“调亮台灯”,则语音控制装置响应于该语音信号控制台灯逐渐调高亮度等。

需要指出的是,上述目标设备基于控制指令,在预设时段内可以处于对应的运行状态中。比如在打开车窗的例子中,车窗由全闭状态下移至全开状态的过程大概需要3-4秒。如图4为本申请示例性提供的一组车窗缓慢下移过程的示意图,其中粗实线代表车门,细虚线代表车窗。在如图4中(a),车窗处于全闭状态,也即车窗尚未打开。在如图4中(b),车窗处于半开状态,具体处于40%的打开状态。在如图4中(c),车窗仍处于半开状态,具体处于60%的打开状态。在如图4中(d),车窗处于全开状态,也即处于100%的打开状态。车窗由如图4中(a)的状态下移至如图4中(d)的状态,大概需要3-4秒。

基于此,车窗在基于控制指令开始下移的3-4秒内,车窗处于缓慢下移的运行状态中。在该运行状态中,用户可以直观感受到当前车窗的打开状态,并根据个人需求通过语音控制装置再次向车窗下发控制指令,比如车窗停止指令,以使得车窗停留在用户想要的位置。

比如车窗下移至图4中(c)示出的位置时,用户直观感觉当前车窗位置比较合适,于是可以通过语音控制装置再次向车窗下发停止指令,比如用户说“停”,则语音控制装置可以接收到该语音信号之后,将语音信号通过图2所示的asr模块、nlu模块、dm模块处理后得到车窗的控制指令,比如“车窗停止”,根据该控制指令控制车窗停止下移。

本申请中,可以将用户对处于运行状态中的目标设备的控制,称为是过程控制,比如上述对处于下移过程中的车窗的控制,可以称为是对车窗的过程控制。上述说明也适用于目标设备为车载设备中的其他设备的情况中,比如座椅、空调等,当然还适用于目标设备为其他场景中设备的情况中,比如家庭场景中的扫地机器人、窗帘、台灯等。

此处需要补充的是,也可以认为目标设备具有指定运行状态,该指定运行状态至少包括两种运行状态,称为第一运行状态和第二运行状态。其中第一运行状态可以是目标设备基于用户第一次下发的语音信号(或控制指令)所处于的运行状态,比如车窗处于向下移动的运行状态,再比如座椅处于缓慢抬高的运行状态等。第二运行状态可以是目标设备基于用户第二次下发的语音信号(或控制指令)所处于的运行状态,比如车窗停止向下移动的运行状态,比如座椅停止缓慢抬高的运行状态等。

用户在向语音控制装置下发语音信号的过程中,语音控制装置需要确定用户已经结束下发语音信号(或称为用户语音、语音指令)之后,才能根据获取到的整段语音信号,进行语音识别和语义分析得到控制指令。

示例性的,可以设定静默时长(trailingsilence),语音控制装置确定未接收到语音信号的时长达到静默时长时,确定用户已经结束下发语音信号。随后语音控制装置对获取到的整段语音信号通过图2所示的asr模块、nlu模块、dm模块处理后得到控制指令。

如图5为本申请示例性提供的第一种语音控制装置处理语音信号产生时延的示意图,该时延具体包括静默时长、asr模块处理时长、nlu模块处理时长和dm模块处理时长,可见从语音控制装置接收到语音信号至语音控制装置生成控制指令的时延较长。

较长时延会导致目标设备不能被及时控制,尤其是在过程控制中,用户不能通过语音控制装置较为直观有效的控制目标设备。比如当车窗下移至60%时,用户直观感觉当前车窗位置比较合适,于是用户说“停”,可能从用户说“停”至车窗真正停止之间存在时延比如1秒(s),那么此时车窗可能已经下移至80%,这样车窗最终所处的位置并不是用户想要的。

基于此,本申请提供一种语音控制方法,用于在语音控制过程中减少控制时延。

为了更好解释本申请中语音控制方法,先对本申请中的数据处理模块进一步说明如下。

如图6为本申请示例性提供的一种数据处理模块,相比于如图2中的数据处理模块的具体结构,新增有流控制模块和快速匹配模块。流控制模块接收来自asr模块的文本信息,并确定是否将该文本信息发送至快速匹配模块。在流控制模块将文本信息发送至快速匹配模块时,快速匹配模块可以从预设集合中确定出预设指令标识,并根据预设指令标识确定向目标设备发送的控制指令。在快速匹配模块不能从预设集合中确定出预设指令标识的情况下,可以进一步通过nlu模块和dm模块生成相应的控制指令,并发送至目标设备。具体实现可参见下述方法实施例中的描述。

在本申请实施例中,如下将用户在第一次下发的语音信号称为是第二语音信号。语音控制装置根据第二语音信号得到的文本信息称为是第二文本信息,根据第二文本信息生成的控制指令称为第二控制指令,第二控制指令用于控制目标设备进入第一运行状态。

用户在第二次下发的语音信号称为是第一语音信号,第一语音信号即用户对目标设备执行过程控制中的语音信号。语音控制装置根据第一语音信号得到的文本信息称为是第一文本信息,根据第一文本信息生成的控制指令称为第一控制指令,第一控制指令用于控制目标设备由第一运行状态切换至第二运行状态。

如图7为本申请示例性提供的一种语音控制方法的流程示意图,该流程中:

步骤701,语音控制装置根据第一语音信号,确定具有完整语义的第一文本信息。

语音控制装置可以通过流式语音识别技术对接收到的语音信号进行识别,该方式中语音控制装置无需等待静默时长,而是在接收到用户的语音信号开始,即执行语音识别。

情况1,用户下发的第一语音信号为一个文字。

比如用户下发的第一语音信号为“停”,用户需要通过一段时长比如0.5s时长说完该“停”字。对于语音控制装置来说,可以执行如下操作:接收到语音信号“停”,将语音信号“停”转换为文字信息“停”。

情况2,用户下发的第一语音信号为多个文字。

比如用户下发的第一语音信号为“就调到这”,用户需要通过一段时长比如2s时长,才能说完该“就调到这”四个字。对于语音控制装置来说,可以执行如下操作:

t1时刻:接收到语音信号“就”,将语音信号“就”转换为文字“就”,即生成文本信息“就”。

t2时刻:接收到语音信号“调”,将语音信号“调”转换为文字“调”,并结合t1时刻生成的文本信息“就”,生成文本信息“就调”。

t3时刻:接收到语音信号“到”,将语音信号“到”转换为文字“到”,并结合t2时刻的文本信息“就调”,生成文本信息“就调到”。

t4时刻:接收到语音信号“这”,将语音信号“这”转换为文字“这”,并结合t3时刻的文本信息“就调到”,生成文本信息“就调到这”。

在上述情况1中,语音控制装置识别出的文本信息具有完整语义。在上述情况2的t1时刻至t3时刻中,虽然语音控制装置执行语音识别,但是识别出的文本信息是不具有完整语义的,而在上述t4时刻得到的文本信息才具有完整语义。语音控制装置需要确定识别出的文本信息是否具有完整语义。此处文本信息具有完整语义可以理解为,语音控制装置可以根据该文本信息确定对应的结构化信息或控制指令。

一种可选实现方式中,可以预先设置分类模型,该分类模型用于识别文本信息是否具有完整语义,该分类模型可以称为第一预设模型,该第一预设模型的输入为语音控制装置执行流式语音识别得到文本信息(或者是说文本信息中包含的一个或多个文字),第一预设模型的输出为第一指示信息,该第一指示信息用于指示该文本信息是否具有完整语义。

示例性的,该第一指示信息可以是一个预设比特,比如,该预设比特取值为1时,表示该输入的文本信息具有完整语义,该预设比特取值为0时,表示该输入的文本信息不具有完整语义。

一种可选实现方式中,该第一预设模型可以是基于如下方式训练得到:

预先准备第一训练集合,该第一训练集合中包括有多个第一训练数据,该多个第一训练数据中的每个第一训练数据包括有第一训练文本信息和第一标签,其中第一训练文本信息中包括有一个或多个文字,第一标签用于指示该第一训练文本信息是否具有完整语义。

示例性的,第一标签可以是人工预先标记的,也可以是在机器学习过程中自动标记的。第一标签可以通过一个预设比特来表示对应的第一训练文本信息是否具有完整语义,比如,该预设比特取值为1时,表示对应的第一训练文本信息具有完整语义,该预设比特取值为0时,表示对应的第一训练文本信息不具有完整语义。

如表1为本申请示例性提供的第一训练集合中的多个第一训练数据。

示例性的,第一训练数据中包括第一训练文本信息“就”和第一标签“0”,第一标签“0”用于指示第一训练文本信息“就”不具备完整语义。

再示例性的,第一训练数据中包括第一训练文本信息“停”和第一标签“1”,第一标签“1”用于指示第一训练文本信息“停”具备完整语义。

表1

进一步的,可以根据第一训练集合中的多个第一训练数据,对第一训练模型进行一次或多次模型训练(可以称为第一模型训练),得到训练完成的模型,以作为第一预设模型。

示例性的,在每次第一模型训练中,可以将第一训练集合中的多个第一训练数据输入至第一训练模型中,得到第一训练模型的输出结果(称为第一输出结果),第一输出结果比如是判定每个第一训练数据中的第一训练文本信息是否具有完整语义。根据第一输出结果以及每个第一训练数据中的第一标签,确定模型更新参数,其中模型更新参数比如梯度参数。根据该模型更新参数对当前的第一训练模型进行更新。

基于更新后的第一训练模型执行下一次的第一模型训练,循环上述操作,直至确定出的第一输出结果符合第一预设条件。

示例性的,可以根据第一输出结果确定第一训练模型的输出正确率,比如共计1000个第一训练数据,其中第一输出结果中有900个第一训练数据对应的输出结果是正确的,则该输出正确率为90%。相应的,可以设置第一预设条件为输出正确率大于预设正确率。第一训练模型的第一输出结果的输出正确率大于预设正确率的情况下,可以确定该第一训练模型已经训练完成,可以将该训练完成的第一训练模型作为第一预设模型。

需要说明的是,语音控制装置可以根据工作过程中得到的数据进一步对第一预设模型的模型参数进行更新,以提高模型准确性。

语音控制装置通过流式语音识别技术,处理第一语音信号得到第一语音信号对应文本信息(如下称为第三文本信息),第三文本信息中包括有m个文字,m为正整数。

语音控制装置将第三文本信息输入至第一预设模型中,根据第一预设模型的输出结果和第三文本信息,生成第一文本信息。

一个示例中,第一预设模型的输出结果指示第三文本信息具有完整语义,语音控制装置可以将第三文本信息作为第一文本信息。比如将“就”、“调”、“到”、“这”4个文字组成的第三文本信息“就调到这”输入至第一预设模型中,第一预设模型的输出为“1”,语音控制装置可以将第三文本信息“就调到这”作为第一文本信息。

再一个示例中,第一预设模型的输出结果指示第三文本信息不具有完整语义,则语音控制装置可以在通过流式语音技术识别到新的文字之后,将该新的文字和该m个文字组成的新的第三文本信息并输入至第一预设模型中,直至第一预设模型的输出结果指示输入的第三文本信息具有完整语义,将输入的第三文本信息作为第一文本信息。

步骤702,语音控制装置根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中由第一运行状态切换至第二运行状态。

其中,语音控制装置在获取第一文本信息之前,先获取到第二文本信息。第二文本信息用于控制目标设备进入指定运行状态中的第一运行状态,第二文本信息与第一文本信息之间具有上下文关系。

预先说明的是,语音控制装置中会存储有会话状态,会话状态中可以包括语音控制装置根据上一次接收处理的语音信号,确定的文本信息和/或结构化信息。语音控制装置可以根据当前接收到语音信号,并结合其存储的会话状态确定是否生成相应的控制指令。

本申请中,可以将会话状态中的文本信息称为是历史文本信息,将会话状态中的结构化信息称为是历史结构化信息。在会话状态满足第三预设条件时,也可将历史文本信息和历史结构化信息分别称为第二文本信息和第二结构化信息。

在一种可选方式中,历史文本信息和第一文本信息之间具有上下文关系,也可以理解为,历史文本信息是第一文本信息的上文,和/或,第一文本信息是历史文本信息的下文。可以是满足如下任一个或任多个条件:

条件1,历史文本信息与第一文本信息均对应于有相同目标设备。比如,历史文本信息与第一文本信息均对应于车窗。再比如,历史文本信息与第一文本信息均对应于座椅。

条件2,历史文本信息对应的执行动作与第一文本信息对应的执行动作属于相同类型。比如,历史文本信息用于指示车窗下移,第一文本信息用于指示车窗下移停止,则二者均对应于下移这个动作类型。再比如,历史文本信息用于指示座椅抬高,第一文本信息用于指示座椅抬高停止,则二者均对应于抬高这个动作类型。

如下举例说明历史文本信息与第一文本信息之间具有上下文关系的情况:

(1)历史文本信息是“打开车窗”,第一文本信息是“就调到这”。

(2)历史文本信息是“打开车窗”,第一文本信息是“停”。

(3)历史文本信息是“打开车窗”,第一文本信息是“右后车窗”。

(4)历史文本信息是“调小空调风力”,第一文本信息是“好了”。

(5)历史文本信息是“车窗下移”,第一文本信息是“车窗下移停止”。

可以将历史文本信息与第一文本信息之间具有上下文关系作为第三预设条件。历史文本信息可以指示目标设备进入某一运行状态,第一文本信息可以指示该目标设备由该运行状态切换至另一运行状态。相当于,第二文本信息指示目标设备进入第一运行状态,第一文本信息指示目标设备由第一运行状态切换至第二运行状态。

在另一种可选方式中,历史文本信息和第一文本信息之间不具有上下文关系,历史文本信息可以指示某一设备进入某一运行状态,第一文本信息可以指示其他设备进入其他运行状态。如下举例说明历史文本信息与第一文本信息之间不具有上下文关系的情况:

(a)历史文本信息是“打开车窗”,第一文本信息是“播放音乐”。

(b)历史文本信息是“打开车窗”,第一文本信息是“打开蓝牙”。

(c)历史文本信息是“打开车窗”,第一文本信息是“关闭空调”。

上述仅为示例性举例,不构成对本申请方法的限定。

语音控制装置在确定出第一文本信息之后,可以确定历史文本信息与第一文本信息之间是否具有上下文关系。一个示例中,可以通过上述条件1和/或条件2确定历史文本信息与第一文本信息之间是否具有上下文关系。

再一个示例中,可以预先设置分类模型,该分类模型用于确定两个文本信息之间是否具有上下文关系,该分类模型可以称为第二预设模型,该第二预设模型的输入为两个文本信息,具体为历史文本信息和第一文本信息,第二预设模型的输出为第二指示信息,该第二指示信息用于指示该历史文本信息和第一文本信息之间是否具有上下文关系。

示例性的,该第二指示信息可以是一个预设比特,比如,该预设比特取值为1时,表示该输入的历史文本信息和第一文本信息之间具有上下文关系,该预设比特取值为0时,表示该输入的历史文本信息和第一文本信息之间不具有上下文关系。

一种可选实现方式中,该第二预设模型可以是基于如下方式训练得到:

预先准备第二训练集合,该第二训练集合中包括有多个第二训练数据,该多个第二训练数据中的每个第二训练数据包括有两个文本信息和第二标签,其中第二标签用于指示该两个文本信息之间是否具有上下文关系。示例性的,该两个文本信息具有先后顺序。

示例性的,第二标签可以是人工预先标记的,也可以是在机器学习过程中自动标记的。第二标签可以通过一个预设比特来表示对应的两个文本信息之间是否具有上下文关系,比如,该预设比特取值为1时,表示对应的两个文本信息之间具有上下文关系,该预设比特取值为0时,表示对应的两个文本信息之间不具有上下文关系。

如表2为本申请示例性提供的第二训练集合中的多个第二训练数据。

示例性的,第二训练数据中包括两个文本信息“打开车窗”、“关闭空调”和第二标签“0”,第二标签“0”用于指示“打开车窗”和“关闭空调”之间不具有上下文关系。

再示例性的,第二训练数据中包括两个文本信息“打开车窗”、“就调到这”和第二标签“1”,第二标签“1”用于指示“打开车窗”和“就调到这”之间具有上下文关系。

表2

进一步的,可以根据第二训练集合中的多个第二训练数据,对第二训练模型进行一次或多次模型训练(可以称为第二模型训练),得到训练完成的模型,以作为第二预设模型。

示例性的,在每次第二模型训练中,可以将第二训练集合中的多个第二训练数据输入至第二训练模型中,得到第二训练模型的输出结果(称为第二输出结果),第二输出结果比如是判定每个第二训练数据中的两个文本信息之间是否具有上下文关系。根据第二输出结果以及每个第二训练数据中的第二标签,确定模型更新参数,其中模型更新参数比如梯度参数。根据该模型更新参数对当前的第二训练模型进行更新。

基于更新后的第二训练模型执行下一次的第二模型训练,循环上述操作,直至确定出的第二输出结果符合第二预设条件。

示例性的,可以根据第二输出结果确定第二训练模型的输出正确率,比如共计1000个第二训练数据,其中第二输出结果中有900个第二训练数据对应的输出结果是正确的,则该输出正确率为90%。相应的,可以设置第二预设条件为输出正确率大于预设正确率。第二训练模型的第二输出结果的输出正确率大于预设正确率的情况下,可以确定该第二训练模型已经训练完成,可以将该训练完成的第二训练模型作为第二预设模型。

需要说明的是,语音控制装置可以根据工作过程中得到的数据进一步对第二预设模型的模型参数进行更新,以提高模型准确性。

一种可选实现方式中,语音控制装置将历史文本信息和第一文本信息输入至第二预设模型中,根据第二预设模型的输出结果,确定历史文本信息与第一文本信息之间是否具有上下文关系,也即是否存在第二文本信息。如下分情况说明:

情况1,当存在第二文本信息时,语音控制装置根据第二文本信息和第一文本信息确定控制指令,该控制指令即用于控制目标设备由第一运行状态切换至第二运行状态。

如下先对目标设备进入第一运行状态解释说明。

一种可选的具体实现中,语音控制装置基于上述获取第一文本信息的实现方式获取第二文本信息。示例性的,语音控制装置获取用户下发的第二语音信号,通过语音识别得到第二语音信号对应的n个文字,n为正整数。语音控制装置在确定n个文字具有完整语义的情况下,对第二文本信息执行自然语言理解,得到第二结构化信息,然后根据第二结构化信息,控制目标设备进入第一运行状态。

此外,由于用户下发的第二语音信号用于指示目标设备进入第一运行状态,比如用于指示车窗进入向下移动的运行状态,再比如用于指示座椅进入缓慢抬高的运行状态等,也就是说,第二语音信号对应的执行过程中的时延要求低于第一语音信号对应的执行过程(即过程控制)中的时延要求,语音控制装置还可以基于现有流程中方式控制目标设备进入第一运行状态,本申请不限定。

语音控制装置中包括有一个或多个第二预设结构化信息。对于一个或多个第二预设结构化信息中的任一个第二预设结构化信息,该第二预设结构化信息对应有预设集合,预设集合中包括有一个或多个预设文本信息。

在一种可选实现方式中,在第二预设结构化信息对应的预设集合中,一个或多个预设文本信息可以对应于一个或多个预设指令标识。

示例性的,表3为本申请提供的一种第二预设结构化信息与预设集合的对应关系。

比如第二预设结构化信息“control-window.adjust”对应的预设集合中,预设文本信息“停、stop、好了、ok”对应的预设指令标识为“车窗停止”。

再比如第二预设结构化信息“control-chair.adjust”对应的预设集合中,预设文本信息“停、stop、好了、ok”对应的预设指令标识为“座椅停止”。

表3

一种可选的具体实现中,语音控制装置根据第二结构化信息,从第二预设结构化信息与预设集合的对应关系中,确定第二结构化信息对应的预设集合,然后确定第一文本信息是否包含于第二结构化信息对应的预设集合中。在第一文本信息包含于该预设集合的情况下,语音控制装置可以根据第一文本信息在该预设集合中对应的预设指令标识,确定用于控制目标设备的控制指令。

结合表3举例,第二结构化信息为“control-window.adjust”,语音控制装置确定第一文本信息“停”在“control-window.adjust”对应的预设集合中,并进一步确定“停”对应的预设指令标识为“车窗停止”。语音控制装置根据该预设指令标识“车窗停止”,确定向车窗下发车窗停止指令。

进一步的,还可以在每个第二预设结构化信息对应的预设集合中,设置预设文本信息对应的第一预设结构化信息。比如表4中,“control-window.adjust”对应的预设集合中,预设文本信息“停、stop、好了、ok”对应于预设指令标识“车窗停止”,并进一步对应于第一预设结构化信息“control-window.stop”。

表4

若语音控制装置根据第一文本信息,从第二结构化信息对应的预设集合中确定的控制指令无效,则可以根据第一预设结构化信息执行对话管理,以用于后续的指令下发。其中指令无效可以是语音控制装置不下发该控制指令,或者向目标设备下发该控制指令之后,目标设备不执行。

示例性的,若语音控制装置确定控制指令为“车窗减速指令”,而当前车窗下移的速度已达到最低速度,则语音控制装置可以确定该控制指令无效。进一步的,语音控制装置可以根据该“车窗减速指令”对应的第一预设结构化信息“control-window.slower”,发起对话比如提醒用户当前已达到最低下降速度,或者询问用户是否需要停止下移车窗。

在另一种可选实现方式中,在第二预设结构化信息对应的预设集合中,可以包括一个或多个预设文本信息以及一个或多个第一预设结构化信息。

示例性的,表5为本申请提供的再一种第二预设结构化信息与预设集合的对应关系。

比如第二预设结构化信息“control-window.adjust”对应的预设集合中,预设文本信息“停、stop、好了、ok”对应的第一预设结构化信息为“stop”。

表5

一种可选的具体实现中,语音控制装置根据第二结构化信息,从第二预设结构化信息与预设集合的对应关系中,确定第二结构化信息对应的预设集合,然后确定第一文本信息是否包含于第二结构化信息对应的预设集合中。在第一文本信息包含于该预设集合的情况下,语音控制装置可以根据第一文本信息在该预设集合中对应的第一预设结构化信息,结合第二结构化信息,生成第三结构化信息,并根据第三结构化信息确定用于控制目标设备的控制指令。

结合表5举例,第二结构化信息为“control-window.adjust”,语音控制装置确定第一文本信息“停”在“control-window.adjust”对应的预设集合中,并进一步确定“停”对应的第一预设结构化信息为“stop”。语音控制装置根据第一预设结构化信息“stop”和第二结构化信息为“control-window.adjust”,生成第三结构化信息,比如“control-window.stop”,然后根据第三结构化信息“control-window.stop”向车窗下发车窗停止指令。

若语音控制装置遍历第二结构化信息对应的预设集合中的所有预设文本信息,确定该预设集合中未包含有该第一文本信息,则语音控制装置可以根据第一文本信息执行语音理解,得到第一结构化信息,然后根据第一结构化信息和第二结构化信息,生成第三结构化信息,并根据第三结构化信息确定用于控制目标设备的控制指令。

结合表3举例,第二结构化信息为“control-window.adjust”,语音控制装置确定第一文本信息“就调到这”不在“control-window.adjust”对应的预设集合中,语音控制装置对第一文本信息“就调到这”执行自然语音理解,得到第一结构化信息比如“stop”,语音控制装置进而根据第二结构化信息“control-window.adjust”和第一结构化信息“stop”,生成第三结构化信息比如“control-window.stop”,然后根据第三结构化信息“control-window.stop”向车窗下发车窗停止指令。

本申请实施例中,语音控制装置中还可以不包括第二结构化信息对应的预设集合,也即语音控制装置中的一个或多个第二预设结构化信息中不包括该第二结构化信息。语音控制装置可以根据第一文本信息执行语音理解,得到第一结构化信息,然后根据第一结构化信息和第二结构化信息,生成第三结构化信息,并根据第三结构化信息确定用于控制目标设备的控制指令。

比如,第二结构化信息为“media-set.adjust”(其中“media-set.adjust”用于控制车载音箱播放音乐),该第二结构化信息未在多个第二预设结构化信息中。比如第一结构化信息还是“stop”,语音控制装置可以根据第二结构化信息“media-set.adjust”和第一结构化信息“stop”,生成第三结构化信息“media-set.stop”,然后根据第三结构化信息“media-set.stop”,生成用于控制车载音箱停止播放音乐的停止指令。

此外,本申请中,语音控制装置根据第三结构化信息确定出的控制指令可能无效,比如,第二结构化信息为“control-window.adjust”,第一结构化信息为“top”,那么生成第三结构化信息比如“control-top-window.adjust”,对应控制指令比如为调整天窗,基于前面的调整车窗的控制指令,则语音控制装置可以确定该生成的控制指令是无效指令。

语音控制装置可以根据该新生成的第三结构化信息更新会话状态,在语音控制装置再次接收到新的语音信号时,根据该新的语音信号和该会话状态,确定是否生成有效的控制指令。示例性的,语音控制装置接收到的语音信号比如“停”,则此时语音控制装置可以根据“停”和会话状态中的“control-top-window.adjust”,确定将天窗停下来。

再另外一些可能方式中,语音控制装置也可以发起询问,与用户通过对话交流,来生成有效的控制指令。比如在确定第三结构化信息对应控制指令无效时,生成询问语句,比如“需要调节天窗吗?”或者“请问如何调节天窗?”,在确定用户需要停止调节天窗时,下发天窗停止指令。

需要说明的是,上述例子中,第一文本信息(或第一语音信号)中可能并未指示出目标设备,语音控制装置根据具有上下文关系的第二文本信息和第一文本信息,可以确定第二文本信息和第一文本信息对应于相同目标设备,也即第一文本信息对应的目标设备与第二文本信息对应的目标设备相同。比如,第二文本信息为“打开车窗”,其中目标设备为车窗,第一文本信息为“停”,虽然第一文本信息中不包含有目标设备,但可以根据与第一文本信息具有上下文关系的该第二文本信息,确定第一文本信息中目标设备同样为车窗。

此外,本申请不排除第一文本信息(或第一语音信号)中指示目标设备的情况,比如第二文本信息为“打开车窗”,第一文本信息为“车窗停”,二者均指示出目标设备为车窗。

情况2,当不存在第二文本信息时,语音控制装置根据第一文本信息执行语音理解,得到第一结构化信息,根据第一结构化信息更新会话状态。

第一种可能方式中,语音控制装置中存储有会话状态,相当于语音控制装置中存储有历史文本信息和历史结构化信息,该历史文本信息与第一文本信息之间不存在上下文关系,语音控制装置可以根据第一文本信息执行语音理解,得到第一结构化信息,然后根据第一文本信息和第一结构化信息更新会话状态。

第二种可能方式中,语音控制装置中会话状态未空,相当于语音控制装置中未存储有历史文本信息和历史结构化信息,语音控制装置可以根据第一文本信息执行语音理解,得到第一结构化信息,然后将第一文本信息和第一结构化信息作为当前会话状态。

当语音控制装置再次接收到语音信号时,可以根据该新的语音信号,结合更新后的会话状态,生成控制指令,或者再次更新会话状态。

结合如图6中数据处理模块,流控制模块中可以设置有第一预设模型和第二预设模型,相当于流控制模块用于根据第一语音信号,确定具有完整语义的第一文本信息,以及根据第一文本信息和历史文本信息确定二者之间是否具有上下文关系。快速匹配模块中可以设置有预设数据库,该预设数据库中包括一个或多个第二预设结构化信息,相当于快速匹配模块用于确定第一文本信息是否对应有预设指令标识。

基于如图6中的各模块,提供另一种语音控制方法,该方法流程可参见如图8所示。

步骤801,asr模块根据第一语音信号,确定第三文本信息,其中第三文本信息中包括有m个文字,m为正整数。

步骤802,asr模块将第三文本信息,发送至流控制模块。相应的,流控制模块接收到来自asr模块的第三文本信息。

步骤803,流控制模块将第三文本信息输入至第一预设模型中,确定该第三文本信息是否具有完整语义。若是,则执行步骤804,否则返回步骤801。

步骤804,流控制模块确定历史文本信息是否与第一文本信息(即上述步骤803中得到的第三文本信息)具有上下文关系。若是,则执行步骤805,否则将第一文本信息经nlu模块和dm模块处理。

步骤805,流控制模块向快速匹配模块发送第一文本信息。相应的,快速匹配模块接收到来自流控制模块的第一文本信息。

步骤806,快速匹配模块确定第二结构化信息对应的预设集合中是否存在第一文本信息对应的预设指令标识。若是,则执行步骤807,否则将第一文本信息经nlu模块和dm模块处理。

步骤807,快速匹配模块向决策模块发送第一文本信息对应的预设指令标识。

步骤808,决策模块根据第一文本信息对应的预设指令标识生成控制指令。

步骤809,决策模块向目标设备发送控制指令。

上述步骤801至步骤809未详细描述的内容均可参见如图7相关实施例中描述。

示例性的,图9示例性提供的流控制模块中两个预设模型的输入输出的流程示意图,其中,第一预设模型的输入为第三文本信息,比如第三文本信息为“就调到这”,第一预设模型的输出指示该第三文本信息具有完整语义。流控制模块将第三文本信息作为第一文本信息,将历史文本信息和第一文本信息输入至第二预设模型中,比如历史文本信息为“打开车窗”,第二预设模型的输出指示该历史文本信息和第一文本信息二者具有上下文关系。示例性的,第一预设模型和第二预设模型可以是通过自监督学习得到的。

为更好的解释本申请实施例,如下结合具体场景解释说明。

在图3的车载场景中,用户在第一次下发语音信号(即第二语音信号)时,说“打开车窗”,语音控制装置响应于该语音信号控制车窗缓慢下移,其中历史文本信息为“打开车窗”,历史结构化信息为“control-window.adjust”。

用户在第二次下发语音信号(即第一语音信号)时,可以有如下几种示例:

示例一,用户第二次下发的语音信号(即第一语音信号)为“停”,参照如图10示例性示出的语音控制流程,包括如下步骤:

步骤1,语音控制装置确定文本信息“停”具有完整语义;

步骤2,语音控制装置确定文本信息“停”与文本信息“打开车窗”具有上下文关系。

步骤3,语音控制装置确定结构化信息“control-window.adjust”对应的预设集合中包括文本信息“停”,确定文本信息“停”对应的预设指令标识为“车窗停止”,根据预设指令标识“车窗停止”确定车窗停止指令。

示例二,用户第二次下发的语音信号(即第一语音信号)为“就调到这”,参照如图11示例性示出的语音控制流程,包括如下步骤:

步骤1,语音控制装置确定文本信息“就”不具有完整语义;

步骤2,语音控制装置确定文本信息“就调”不具有完整语义;

步骤3,语音控制装置确定文本信息“就调到”不具有完整语义;

步骤4,语音控制装置确定文本信息“就调到这”具有完整语义;

步骤5,语音控制装置确定文本信息“就调到这”与“打开车窗”具有上下文关系。

步骤6,语音控制装置确定结构化信息“control-window.adjust”对应的预设集合中不包括文本信息“就调到这”。

步骤7,语音控制装置对文本信息“就调到这”执行语义分析处理后得到结构化信息“stop”。

步骤8,语音控制装置对结构化信息“stop”和结构化信息“control-window.adjust”执行对话管理后,得到结构化信息“control-window.stop”。

步骤9,语音控制装置根据结构化信息“control-window.stop”,生成车窗停止指令。

示例三,用户第二次下发的语音信号(即第一语音信号)为“播放音乐”,参照如图12示例性示出的语音控制流程,包括如下步骤:

步骤1,语音控制装置确定文本信息“播”不具有完整语义;

步骤2,语音控制装置确定文本信息“播放”不具有完整语义;

步骤3,语音控制装置确定文本信息“播放音”不具有完整语义;

步骤4,语音控制装置确定文本信息“播放音乐”具有完整语义;

步骤5,语音控制装置确定文本信息“播放音乐”与“打开车窗”不具有上下文关系。

语音控制装置根据“播放音乐”执行语义分析和对话管理等,并更新会话状态。

上述示例一至示例三中未详细描述的内容均可参见如图7相关实施例中描述。

在图3的车载场景中,一种具体的可选方式中,车窗可以是由车载电路中的马达控制,语音控制装置可以向车载电路发送控制指令,车载电路根据控制指令控制马达的电源通断,从而实现对车窗的控制。示例性的,在上述示例一和示例二中,当语音控制装置响应于第二语音信号,控制车窗向下移动时,可以是语音控制装置向车载电路发送车窗下移指令,车载电路根据车窗下移指令控制马达电源连通,马达工作,使得车窗缓慢向下移动。当语音控制装置响应于第一语音信号,控制车窗停止下移时,可以是语音控制装置向车载电路发送车窗停止指令,车载电路根据车窗停止指令控制马达电源断开,马达停止工作,使得车窗停止移动。

再一种具体的可选方式中,车窗可以是由步进电路中步进电机控制,语音控制装置可以向步进电机发送步进信号,步进电机根据步进信号控制车窗。示例性的,在上述示例一和示例二中,当语音控制装置响应于第二语音信号,控制车窗向下移动时,可以是语音控制装置根据车窗下移指令向步进电机发送开始步进信号,控制步进电路工作,使得车窗缓慢向下移动。当语音控制装置响应于第一语音信号,控制车窗停止下移时,可以是语音控制装置向步进电机发送停止步进信号,控制步进电路停止工作,使得车窗停止移动。

上述技术方案中,语音控制装置可以获取第二语音信号,根据第二语音信号确定第二文本信息,然后根据第二文本信息执行自然语言理解,得到第二结构化信息,再根据第二结构化信息控制目标设备进入指定运行状态的第一运行状态。在目标设备处于第一运行状态的情况中,语音控制装置还可以在持续获取第一语音信号的过程中,对持续获取到的第一语音信号执行流式语音识别,得到对应的m个文字,确定该m个文字组成的文本信息具有完整语义的情况下,将具有完成语义的m个文字组成的第一文本信息,无需在用户下发完成语音信号之后等待静默时长,而是在确定获取到具有完整语义的文本信息之后即推断出用户下发完成语音信号,从而有效减少控制时延。

进一步的,根据第一文本信息和当前存储的历史文本信息确定二者之间是否具有上下文关系,在确定二者具有上下文关系的情况下,则可以确定出当前获取到的第一语音信号是用户针对于上一次的第二语音信号的进一步指示,于是可以根据第一文本信息和第二文本信息,控制处于第一运行状态的目标设备,具体的,将该目标设备的运行状态由第一运行状态切换至第二运行状态,如此,可以有效确定出用户下发的第一语音信号所指示的目标设备,并对该目标设备进行控制。

而且,在对目标设备进行控制时,可以确定第一文本信息是否在第二文本信息(即第二结构化信息)对应的预设集合中,当第一文本信息在该预设集合中时,可以无需对第一文本信息执行自然语言理解和对话管理,而直接根据该预设集合确定出第一文本信息对应的预设指令标识,从而有助于进一步减少控制过程中的时延。

如此,本申请中通过流式语音识别技术、完整语义判定、上下文判定以及设定第二文本信息(即第二结构化信息)对应的预设集合,可以有效减少控制过程中的时延,用户可以通过下发语音信号实现更直观有效地控制目标设备,有助于提高用户体验。

基于本申请中语音控制方法,可以降低语音控制装置处理语音信号产生时延。

如图13为本申请示例性提供的第二种语音控制装置处理语音信号产生时延的示意图,语音控制装置在接收到语音信号的时刻起,进行语音识别,根据第二结构化信息对应的预设集合,不能确定第一文本信息对应的预设指令标识时,可以通过nlu模块和dm模块处理后,得到相应的控制指令,并下发至目标设备。相比于如图5示出的时延图,本申请方法至少可以避免语音控制装置等待静默时长导致的时延。

如图14为本申请示例性提供的第三种语音控制装置处理语音信号产生时延的示意图,语音控制装置在接收到语音信号的时刻起,进行语音识别,根据第二结构化信息对应的预设集合,确定第一文本信息对应的预设指令标识,从而得到相应的控制指令,并下发至目标设备。相比于如图5示出的时延图,本申请方法不仅可以避免语音控制装置等待静默时长产生的时延,还能避免nlu模块和dm模块处理导致的时延。

本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。

可以理解的是,上述各个方法实施例中,由语音控制装置实现的方法和操作,也可以由可用于语音控制装置的部件(例如芯片或者电路)实现。

本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

基于上述内容和相同构思,图15和图16为本申请的提供的可能的语音控制装置的结构示意图。这些语音控制装置可以用于实现上述方法实施例中语音控制装置的功能,因此也能实现上述方法实施例所具备的有益效果。

如图15所示,该语音控制装置包括处理模块1501和控制模块1502。一种可选实现方式中,处理模块1501可用于执行如图7示例性示出的方法实施例中的步骤701,控制模块1502可用于执行如图7示例性示出的方法实施例中的步骤702。另一种可选实现方式中,处理模块1501可用于执行如图8示例性示出的方法实施例中的步骤801至步骤805,控制模块1502可用于执行如图8示例性示出的方法实施例中的步骤806至步骤809。

一种可选实现方式中,处理模块1501用于根据第一语音信号,确定具有完整语义的第一文本信息;控制模块1502用于根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换,其中,第二文本信息是在第一文本信息之前被获取的,第二文本信息用于控制目标设备进入指定运行状态中的第一运行状态,第二文本信息与第一文本信息具有上下文关系。

一种可选实现方式中,第二文本信息与第一文本信息具有上下文关系,至少包括如下的一项或多项:第二文本信息和第一文本信息对应于同一个目标设备;第二文本信息对应的执行动作和第一文本信息对应的执行动作属于相同类型。

一种可选实现方式中,在处理模块1501根据第一语音信号,确定具有完整语义的第一文本信息之前,处理模块1501还用于:根据第二语音信号,确定具有完整语义的第二文本信息;对第二文本信息执行自然语言理解,得到第二结构化信息;控制模块1502还用于:根据第二结构化信息,控制目标设备进入第一运行状态。

一种可选实现方式中,控制模块1502具体用于:根据第二文本信息对应的第二结构化信息,确定与第二结构化信息相对应的预设集合,预设集合中包括一个或多个预设文本信息和预设指令标识的对应关系;在一个或多个预设文本信息中包括第一文本信息时,根据第一文本信息对应的预设指令标识确定控制指令,其中,控制指令用于控制目标设备由指定运行状态中的第一运行状态切换至指定运行状态中的第二运行状态。

一种可选实现方式中,控制模块1502还用于:在第一文本信息与一个或多个预设文本信息中任一个预设文本信息不同时,对第一文本信息执行自然语言理解得到第一结构化信息;根据第一结构化信息和第二结构化信息确定控制指令。

一种可选实现方式中,控制模块1502还用于:根据第一结构化信息和第二结构化信息确定控制指令之后,在控制指令无效的情况下,根据第一结构化信息更新第二结构化信息。

一种可选实现方式中,处理模块1501具体用于:根据第一语音信号,确定第一语音信号对应的m个文字,m为正整数;将m个文字组成的文本信息输入至第一预设模型,得到第一预设模型的输出结果,第一预设模型用于判断输入的多个文字所组成的文本信息是否具有完整语义;根据m个文字组成的文本信息和第一预设模型的输出结果,生成第一文本信息。

一种可选实现方式中,处理模块1501具体用于:获取第一训练集合,第一训练集合中包括有多个第一训练数据,针对于多个第一训练数据中每个第一训练数据,第一训练数据包括有第一训练文本信息和第一标签,第一训练文本信息由一个或多个文字组成,第一标签用于指示第一训练文本信息是否具有完整语义;根据多个第一训练数据和第一训练模型,执行一次或多次第一模型训练,至第一训练模型的第一输出结果符合第一预设条件,并将第一输出结果符合第一预设条件的第一训练模型确定为第一预设模型;其中,第一模型训练包括:将多个第一训练数据输入至第一训练模型中,得到第一输出结果;根据第一输出结果,更新第一训练模型中的模型参数,得到模型参数更新后的第一训练模型。

一种可选实现方式中,控制模块1502根据第一文本信息和第二文本信息,控制目标设备在指定运行状态中切换之前,处理模块1501还用于:将第一文本信息和历史文本信息输入至第二预设模型中,得到第二预设模型的输出结果,第二预设模型用于判断输入的两个文本信息是否具有上下文关系;根据第二预设模型的输出结果,将历史文本信息确定为第二文本信息。

一种可选实现方式中,处理模块1501具体用于:获取第二训练集合,第二训练集合中包括有多个第二训练数据,针对于多个第二训练数据中每个第二训练数据,第二训练数据包括两个第二训练文本信息和第二标签,第二标签用于指示两个第二训练文本信息是否具有上下文关系;根据多个第二训练数据和第二训练模型,执行一次或多次第二模型训练,至第二训练模型的第二输出结果符合第二预设条件,并将第二输出结果符合第二预设条件的第二训练模型确定为第二预设模型;其中,第二模型训练包括:将多个第二训练数据输入至第二训练模型中,得到第二输出结果;根据第二输出结果,更新第二训练模型中的模型参数,得到模型参数更新后的第二训练模型。

如图16所示为本申请实施例提供的装置,图16所示的装置可以为图15所示的装置的一种硬件电路的实现方式。该装置可适用于前面所示出的流程图中,执行上述方法实施例中语音控制装置的功能。

为了便于说明,图16仅示出了该装置的主要部件。

该语音控制装置包括:处理器1610和接口1630,可选的,该语音控制装置还包括存储器1620。接口1630用于实现与其他设备进行通信。

以上实施例中语音控制装置执行的方法可以通过处理器1610调用存储器(可以是语音控制装置中的存储器1620,也可以是外部存储器)中存储的程序来实现。即,语音控制装置可以包括处理器1610,该处理器1610通过调用存储器中的程序,以执行以上方法实施例中语音控制装置执行的方法。这里的处理器可以是一种具有信号的处理能力的集成电路,例如cpu。语音控制装置可以通过配置成实施以上方法的一个或多个集成电路来实现。例如:一个或多个asic,或,一个或多个微处理器dsp,或,一个或者多个fpga等,或这些集成电路形式中至少两种的组合。或者,可以结合以上实现方式。

具体的,图15中的处理模块1501和控制模块1502的功能/实现过程可以通过图16所示的语音控制装置中的处理器1610调用存储器1620中存储的计算机执行指令来实现。

基于上述内容和相同构思,本申请提供一种计算设备,包括处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得计算设备执行上述方法实施例中的方法。

基于上述内容和相同构思,本申请提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,以使得计算设备执行上述方法实施例中的方法。

基于上述内容和相同构思,本申请提供一种计算机程序产品,当计算机读取并执行计算机程序产品时,以使得计算设备执行上述方法实施例中的方法。

基于上述内容和相同构思,本申请提供一种芯片,芯片与存储器相连,用于读取并执行存储器中存储的软件程序,以使得计算设备执行上述方法实施例中的方法。

基于上述内容和相同构思,本申请实施例提供一种装置,所述装置包括处理器和接口电路,所述接口电路,用于接收程序或指令代码并传输至所述处理器;所述处理器运行所述程序或指令代码以执行上述方法实施例中的方法。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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