车载语音交互方法、全双工对话系统、服务器和存储介质与流程

文档序号:20571295发布日期:2020-04-29 00:48阅读:295来源:国知局
车载语音交互方法、全双工对话系统、服务器和存储介质与流程

本发明涉及语音技术领域,特别是涉及一种车载语音交互方法、全双工对话系统、服务器和存储介质。



背景技术:

自然语言理解(naturallanguageunderstanding,nlu)以语言学为基础,融合逻辑学、心理学和计算机科学等学科,试图解决以下问题:语言究竟是怎样组织起来传输信息的?人又是怎样从一连串的语言符号中获取信息的?换种表达就是,通过语法、语义、语用的分析,获取自然语言的语义表示。

全双工的英文叫fullduplex,fullduplex这个词是一个通信的术语,表示实时的、双向的语音信息的交互。

传统nlu技术解决的是一句query(指用户发起语音交互的自然语言文本)通过分类得到相应领域domain、意图intent、槽位slots的过程,但在车载全双工对话系统中,传统nlu技术存在一定弊端。传统nlu技术主要通过领域、意图、分类结合白名单的方式,来将query定义到某一正例场景范围,但不能明确对话主体。例如,当query是“今天北京天气不太好啊”,在非全双工对话系统中,该query可以分类到天气,会被识别为询问天气场景,但无法明确判断是人机对话还是人人对话;但在全双工对话系统中,会大概率认为是人与人之间的聊天内容,属于噪声。

针对这种情况,亟需一种能够应用在全双工对话系统中车载语音交互方法。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种车载语音交互方法、全双工对话系统、服务器和存储介质。

为了解决上述问题,本发明实施例公开了一种车载语音交互方法,应用于全双工对话系统,其特征在于,所述方法包括:

接收客户端转发的用户语音请求,并将其输入预设的nlu模型和噪声模型;

通过nlu模型获得nlu信息,并将该nlu信息输入预设的nlu规则模板;

利用nlu规则模板对请求进行规则匹配处理,获得请求对应的第一标记结果;

通过噪声模型计算获得请求对应的第二标记结果;

若第一标记结果和第二标记结果不一致,则根据预设的产品规则对请求进行匹配处理;

根据匹配结果确定请求的最终标记结果;

根据最终标记结果向客户端返回语音请求的反馈。

进一步地,根据匹配结果确定请求的最终标记结果,包括:

若根据产品规则不能对请求全部匹配,则利用预设的融合文本抗噪模型对nlu模型和噪声模型的融合进行调节;

计算模型融合的得分;

根据计算结果确定请求的最终标记结果。

进一步地,nlu信息包括领域、意图、槽位、文本长度和多轮交互在内的一项或多项nlu信息,通过nlu模型获得nlu信息,包括:

通过nlu分类模型获得包括领域、意图在内的一项或多项nlu信息;

通过nlu序列标注模型获得槽位的nlu信息;

通过多轮交互模型获得包括对话轮次、有无信息继承、是否改写对话在内多轮交互的nlu信息;

和/或,

通过读取请求内容获得文本长度的nlu信息。

进一步地,利用nlu规则模板对请求进行规则匹配处理,获得请求对应的第一标记结果,包括:

预设若干个nlu规则;

根据nlu信息逐一对该若干个nlu规则进行规则匹配处理,直至任意一个nlu规则匹配完成,结束规则匹配处理;

根据本次完成匹配对应的nlu规则,输出请求对应的第一标记结果。

进一步地,所述nlu规则包括过滤规则和/或放行规则,过滤规则通过包括文本长度、黑名单、预设领域、预设意图、歧义内容在内的一种或多种方式进行nlu规则的匹配过滤;放行规则通过包括白名单、存在多轮继承信息在内的一种或多种方式进行nlu规则的匹配放行。

进一步地,通过噪声模型计算获得请求对应的第二标记结果包括:

利用一个基于二分类建立的噪声模型对请求进行计算,获得该请求在不同类别的概率,将概率最大值对应的类别作为该请求对应的第二标记结果。

进一步地,根据预设的产品规则对请求进行匹配处理包括:

根据产品规则预设若干个正则化模板;

将请求和正则化模板进行匹配。

进一步地,利用预设的融合文本抗噪模型对nlu模型和噪声模型的融合进行调节,包括:

获取全双工持续倾听时间;

若持续倾听时间接近预设上限,则在nlu模型和噪声模型的融合中对噪声模型进行抑制;

或,

若持续倾听时间接近预设下限,则在nlu模型和噪声模型的融合中对nlu模型进行抑制。

本发明实施例还公开了一种全双工对话系统,其特征在于,包括:

接收模块,用于接收客户端转发的用户语音请求,并将其输入预设的nlu模型和噪声模型;

nlu模型,用于通过nlu模型获得nlu信息,并将该nlu信息输入预设的nlu规则模板;

nlu规则模块,用于利用nlu规则模板对请求进行规则匹配处理,获得请求对应的第一标记结果;

噪声模型,用于计算获得请求对应的第二标记结果;

产品规则模块,用于在第一标记结果和第二标记结果不一致的情况下根据预设的产品规则对请求进行匹配处理;

确定模块,用于根据匹配结果确定请求的最终标记结果;

反馈模块,用于根据最终标记结果向客户端返回语音请求的反馈。

本发明实施例还公开了一种服务器,应用于全双工对话系统,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的车载语音交互方法的步骤。

本发明实施例还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述的车载语音交互方法的步骤。

本发明实施例包括以下优点:

本发明在传统nlu模型应用的基础上,增加了利用二分类算法对语音请求进行标记的噪声模型,通过nlu模型和噪声模型融合,加上产品规则匹配过滤的方法,实现全双工对话系统中正常请求不被过滤。进一步地,藉由融合文本抗噪模型可以动态调节包括nlu模型和噪声模型在内的双模型融合的加权配比,对请求结果的标记或判定更加准确,进一步保证了用户的正常语音对话不会被过滤,使得用户在车内使用语音助手的体验更佳。

附图说明

图1是本发明的一种车载语音交互方法实施例的步骤流程图;

图2是本发明中融合文本抗噪模型融合处理方法的步骤流程图;

图3是本发明中全双工对话系统通信示意图;

图4是本发明中的一种全双工对话系统实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

斯坦福大学机器学习的课程“机器学习系统设计(machinelearningsystemdesign)”中,提出一种衡量模型输出效果的方法,该方法中部分内容具体如下:

被模型预测为正的正样本叫truepositive(真正例,tp);可以称作判断为真的正确率;

被模型预测为负的负样本truenegative(真负例,tn);可以称作判断为假的正确率;

被模型预测为正的负样本falsepositive(假正例,fp);可以称作误报率;

被模型预测为负的正样本falsenegative(假负例,fn);可以称作漏报率。

本方案中,正例指的是标注正确的情况下且模型判别为正的“真正例tp”;负例指的是标注正确的情况下且模型判别为负的“真负例tn”。

传统nlu技术解决的是一句query通过分类得到相应领域domain、意图intent、槽位slots的过程,但在车载全双工对话系统中,传统nlu技术存在不足。

比如当前车内包括主驾和副驾两位用户,主驾发出的query的内容是:“今天北京天气不太好啊”,在非全双工对话系统中通常这个语音请求会被划分到某个正例的垂直领域,即被识别为询问天气场景,但在全双工对话系统中会大概率认为是人与人之间的聊天内容,属于噪声,需要过滤或者忽略。

针对这种情况,亟需提出一种应用于全双工对话系统的车载语音交互方法,克服上述问题或者至少部分地解决上述问题。

本发明实施例的核心构思之一在于,提出一种车载语音交互方法。

参照图1,示出了本发明的一种车载语音交互方法实施例的步骤流程图,具体可以包括如下步骤:

s1,接收客户端转发的用户语音请求,并将其输入预设的nlu模型和噪声模型。服务器将语音query(语音请求)作为输入,一并输入到两个模型中。

s2,通过nlu模型获得nlu信息,并将该nlu信息输入预设的nlu规则模板。

s3,利用nlu规则模板对请求进行规则匹配处理,获得请求对应的第一标记结果。第一标记结果可以是将该请求标记为正常请求或噪声,或者使用clear、noise来进行标记请求的状态query_state,即clear表示正常的query,noise表示该请求是噪声。

s4,通过噪声模型计算获得请求对应的第二标记结果。其中,该噪声模型可以利用二分类算法对用户语音请求进行标记,确定是噪声还是正常请求。

s5,若第一标记结果和第二标记结果不一致,则根据预设的产品规则对请求进行匹配处理。

s6,根据匹配结果确定请求的最终标记结果。

s7,根据最终标记结果向客户端返回语音请求的反馈。

进一步地,如图2所示,步骤s6包括:

s61,若根据产品规则不能对请求全部匹配,则利用预设的融合文本抗噪模型对nlu模型和噪声模型的融合进行调节。其中,融合文本抗噪模型获取全双工对话系统的持续倾听时间参数t,若持续倾听时间t越久,噪声引入可能性越大,噪声模型影响能力越大,需要被抑制,因此融合文本抗噪模型需要增加nlu模型能力来平衡;若持续倾听时间t越短,噪声引入可能性越小,nlu模型影响能力越大,需要被抑制,因此融合文本抗噪模型需要增加噪声模型能力来平衡。

s62,计算模型融合的得分。具体地,可以依据持续倾听时间t和不同权重,不同的权重可以分别对应nlu模型和噪声模型,然后进行计算,计算方式可以自行设置,在此不做限制。

s63,根据计算结果确定请求的最终标记结果。

如图3所示,图3披露了本发明全双工对话系统和客户端(例如车辆的中控平台)之间的通信过程,由图结合前文描述可知,和传统方式只使用nlu模型不同,本发明在传统nlu模型应用的基础上,增加了利用二分类算法对语音请求进行标记的噪声模型,通过nlu模型和噪声模型融合,加上产品规则匹配过滤的方法,实现全双工对话系统中正常请求不被过滤。进一步地,藉由融合文本抗噪模型可以动态调节包括nlu模型和噪声模型在内的双模型融合的加权配比,对请求结果的标记或判定更加准确,进一步保证了用户的正常语音对话不会被过滤,使得用户在车内使用语音助手的体验更佳。

进一步地,nlu信息包括领域、意图、槽位、文本长度和多轮交互在内的一项或多项nlu信息,s2中通过nlu模型获得nlu信息,包括:

通过nlu分类模型获得包括领域、意图在内的一项或多项nlu信息;

通过nlu序列标注模型获得槽位的nlu信息;

通过多轮交互模型获得包括对话轮次、有无信息继承、是否改写对话在内多轮交互的nlu信息;

和/或,

通过读取请求内容获得文本长度的nlu信息。

以车辆主驾用户发出的query的内容是:“今天北京天气不太好啊”为例,可以得到nlu信息:{"domain":"weather","intent":"weather_search","slots":[{"value":"今天"},{"value":"北京"}],"multi_round":0,”query_length”:10}。其中,nlu分类模型使用bert、textcnn和softmax的组合来说明,当然也可以使用其他分类模型,在此不作限制。

bert全称是来自变换器的双向编码器表征量(bidirectionalencoderrepresentationsfromtransformers),它是google于2018年末开发并发布的一种新型语言模型。与bert模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。

textcnn是利用卷积神经网络对文本进行分类的算法,由yoonkim在《convolutionalneuralnetworksforsentenceclassification》中提出。textcnn的结构包括嵌入层(embeddinglayer)和卷积池化层(convolutionandpooling)。其中,textcnn使用预先训练好的词向量作embeddinglayer。对于数据集里的所有词,因为每个词都可以表征成一个向量,因此可以得到一个嵌入矩阵m,嵌入矩阵m里的每一行都是词向量。这个嵌入矩阵m可以是静态(static)的(即固定不变);也可以是非静态(non-static)的(即可以根据反向传播更新)。在卷积池化层中,卷积环节首先对输入的这个句子进行切词,假设有s个词,根据嵌入矩阵m,可以得到每个词的词向量。假设词向量一共有d维。那么对于这个句子,便可以得到s行d列的矩阵,再使用卷积神经网络去提取特征。可以使用更多高度不同的卷积核,得到更丰富的特征表达。在池化环节,由于不同尺寸的卷积核得到的特征(featuremap)大小也是不一样的,因此对每个featuremap使用池化函数,使它们的维度相同。在得到最终的特征向量后,将这个特征向量再输入softmaxlayer做分类。

softmax是一个用在多分类过程的函数,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类。

即通过nlu的领域分类模型可以获得domain的结果"weather",通过nlu的意图分类模型可以获得intent的结果"weather_search"。

使用nlu序列标注模型,例如bert、cudnnlstm和crf的组合来说明,当然也可以使用其他序列标注模型,在此不作限制。

cudnnlstm由cudnn支持的快速lstm(longshort-termmemory)。lstm是一种特殊的循环神经网络rnn(recurrentneuralnetworks)。

crf即条件随机场(conditionalrandomfields),是在给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,它是一种判别式的概率无向图模型,既然是判别式,那就是对条件概率分布建模。

crf较多用在自然语言处理和图像处理领域,在nlp中,它是用于标注和划分序列数据的概率化模型,根据crf的定义,相对序列就是给定观测序列x和输出序列y,然后通过定义条件概率p(y|x)来描述模型。

具体地,nlu序列标注模型可以由多个垂直领域序列标注模型组成,例如导航序列标注模型、音乐序列标注模型、天气序列标注模型等等。通过这其中任意一个或多个垂直领域序列标注模型,获得slots结果"今天"和"北京"。

通过多轮交互模型获得包括对话轮次、有无信息继承、是否改写对话在内多轮交互的nlu信息。可以根据multi_round结果,无继承信息用0表示,有继承信息用1表示。类似的,本次对话是否已改写也可以使用不同数字、字母或符号表示。例如首轮“今天北京天气怎么样”,次轮“明天呢”,次轮会被改写成“明天北京天气怎么样”,因此次轮中对话轮次为2,query的multi_round=1,本次对话已改写等。

通过读取请求内容获得文本长度的nlu信息,例如读取query长度,使用query_length来表示文本长度。

下面是一个示例:

输入:

"听说附近有家不错的饭馆,想去看看"

输出:

{"domain":"navigation",

"intent":"navigation_search_food",

"slots":[{"value":"附近"},{"value":"餐馆"}],"multi_round":0,"query_length":15}

进一步地,步骤s3包括:

预设若干个nlu规则;

根据nlu信息逐一对该若干个nlu规则进行规则匹配处理,直至任意一个nlu规则匹配完成,结束规则匹配处理;

根据本次完成匹配对应的nlu规则,输出请求对应的第一标记结果。

其中,nlu规则包括过滤规则和/或放行规则,过滤规则通过包括文本长度、黑名单、预设领域、预设意图、歧义内容在内的一种或多种方式进行nlu规则的匹配过滤;放行规则通过包括白名单、存在多轮继承信息在内的一种或多种方式进行nlu规则的匹配放行。

nlu模型获取到请求的nlu信息,即包括领域、意图、槽位、多轮交互、文本长度等nlu信息后,为解决请求范围的识别问题,将该nlu信息输入预设的nlu规则模板。nlu规则模板在nlu模型基础上,只对明显的错误query类型进行过滤,只对符合nlu业务的明确正常query进行放行,其他query不做处理。

下面是几个nlu规则模板的示例:

1.query长度过滤:空字、单字、双字语气词。

示例1:

输入:啊;

输出:{"query":"啊","query_state":"noise"},

示例2:

输入:呵呵;

输出:{"query":"呵呵","query_state":"noise"}

2.黑名单匹配过滤(语气词,情绪词),

示例1:

输入:滚蛋;

输出:{"query":"滚蛋","query_state":"noise"}

示例2:

输入:滚远点;

输出:{"query":"滚远点","query_state":"noise"}

3.白名单匹配放行

示例1:

输入:再见;

输出:{"query":"再见","query_state":"clear"}

示例2:

输入:退出;

输出:{"query":"退出","query_state":"clear"}

multi_round等于1放行

示例:

上一轮输入:今天天气怎么样?

本轮输入:明天呢?

输出:{"query":"明天呢","query_rewrite":"明天天气怎么样","query_state":"clear"}

特定规则匹配过滤策略

nlu中特定domain、intent匹配,如闲聊&chat领域,属于unknown、unsupport、unclear的意图。

示例:

输入:你有点可爱呀

输出:{"query":"你有点可爱呀","query_state":"noise"}

歧义规则匹配过滤策略

如果槽位值本身或者拼接后是请求本身的,在不包含指令词的情况下容易产生歧义,这种就需要过滤。

示例1:

输入:北京

输出:{"query":"北京","query_state":"noise"};

示例2:

输入:周杰伦青花瓷

输出:{"query":"周杰伦青花瓷","query_state":"noise"}

本方案中,由nlu规则模板串行执行上述第1至6的规则,任何一个规则命中后会直接退出nlu规则匹配环节。经过规则匹配后的query会在结果中标记query_state,正常的为clear,噪声的为noise,这些标记的结果视为该请求的第一标记结果。

进一步地,步骤s4包括:

利用一个基于二分类建立的噪声模型对请求进行计算,获得该请求在不同类别的概率,将概率最大值对应的类别作为该请求对应的第二标记结果。

首先,基于bert和textcnn的方式建立一个噪声模型,用来对query进行二分类建模,然后对query进行二分类打分。该模型可以预先进行训练,然后利用训练好的模型来完成推理过程。

模型训练过程:

步骤1,训练语料预处理。

步骤2,预训练层中,利用bert预训练模型进行词嵌入。

步骤3,卷积层中,词嵌入结果在宽度为5的过滤器上进行映射。

步骤4,最大池化层中进行最大池化操作。

步骤5,在全连接层中利用softmax的参数计算输出当前结果,并通过反向传播算法更新参数,继续进行步骤3至5,直到模型收敛。

模型推理过程:

步骤1,噪声模型接收到query。

步骤2,预训练层中,利用bert预训练模型进行词嵌入。

步骤3,卷积层中,词嵌入结果在宽度为5的过滤器上进行映射。

步骤4,最大池化层中进行最大池化操作。

步骤5,在全连接层中利用softmax的参数计算输出当前结果。

下面使用一个示例来说明噪声模型的处理过程:

输入:

今天天气怎么样。

过程:

步骤1:query进入噪声模型。

步骤2:每个query进行768*33维度的向量表示,768是特征维度,33是query最大长度,分字后对每个query进行向量表示。

步骤3:在768*33特征矩阵上用宽度为5的过滤器进行映射,得到新的特征矩阵。

步骤4:做最大池化操作。

步骤5:通过训练得到的参数对query进行计算,进行二分类,得到输出不同类别的概率。

输出:

{"query_state":"clear","modelconfidence":{"noise":

0.006693478673696518,"clear":0.993306577205658}}

根据输出可以知道标记结果为clear,即噪声模型判断是正常query。由噪声模型的输出确定的这些标记结果视为该请求的第二标记结果。

若第一标记结果和第二标记结果一致,则视为nlu模型和噪声模型无冲突,可以将第二标记结果作为最终标记结果;然后根据最终标记结果向客户端返回语音请求的反馈。

若第一标记结果和第二标记结果不一致,则进入s5的步骤,即若第一标记结果和第二标记结果不一致,则根据预设的产品规则对请求进行匹配处理。

产品规则是符合业务定义的规则方法,用于解决query是否正常的识别问题。具体地,根据预设的产品规则对请求进行匹配处理包括:根据产品规则预设若干个正则化模板;将请求和正则化模板进行匹配。即采用正则化模板的表达方式,根据产品或者业务的需求,制定包括导航、音乐、天气、百科等具体场景业务模板进行二次判断。

其中,具体的产品规则示例如下:

1.导航场景:

导航去{poi}

^导航到{poi}

^我想吃{poi}

2.音乐场景:

^帮我放{music}

^我想听{music}

3.百科场景:

^介绍下{word}

^名词解释{word}

^什么是{word}

^为什么{word}

^什么叫{word}

{word}是什么$

{word}为什么$

{word}是什么意思$

{word}怎么办$

{pre_word}如何{post_word}

{pre_word}怎样{post_word}

4.全局场景:

global_exit,首起非“退出”,文本长度大于4的则过滤掉。global_ai_homepage_open、global_small、global_big则过滤掉。

其中,全局领域叫做:global,exit代表退出相关指令,aihomepageopen代表ai主页打开,small代表全局最小,big代表全局最大。这几个意图在持续倾听中意义不大,所以可以过滤掉。

5.测控场景:提取关键字,拼出指令,指令部分占比query少于70%,均过滤

6.6.天气场景:简单描述天气状况(天气不好,天气有点差)query过滤

7.7.特殊场景:包含小p以及同音字的句首query会被匹配放行,如:

小p去下火车站

小p你好我要听最热的歌

附近{restaurant},小p想去{resturant}

下面结合一个具体示例说明根据预设的产品规则对请求进行匹配处理的过程:

输入:query=听说附近有家不错的饭馆,小p我想去看看。

输出:{"query":"听说附近有家不错的饭馆,小p我想去看看","query_state":"clear","noise-model":{"clear":0.00669488962739706,"noise":0.9933051466941833},”nlu-model”:1,"nlu_rule":0.5,“rule”:1}

上述示例被nlu模型认为是正常query,”nlu-model”:1,标记clear。

nlu规则模板判断不出问饭馆还是闲聊饭馆,则"nlu_rule":0.5。

噪声模型分类认为是偏闲聊,标记noise,"noise-model":{"clear":0.00669488962739706,"noise":0.9933051466941833}。

由上可知,query在nlu模型和噪声模型标记的结果不一致,则进行产品规则匹配过程,根据特殊场景模板,与“附近xxx[restaurant],小p想去xxx”相匹配,命中业务模板,则确定最终标记结果“rule”:1,最终“听说附近有家不错的饭馆,小p我想去看看”这条query不被过滤。

由于本方案中包括了nlu模型和噪声模型,虽然可以利用产品规则对请求进行匹配处理,但如果出现了根据产品规则不能对请求全部匹配的情况,则需要利用预设的融合文本抗噪模型对nlu模型和噪声模型的融合进行调节。

融合文本抗噪模型是本发明利用动态参数调节nlu模型和噪声模型的模型。由于方案包括了两个模型,在全双工对话系统中,如果以参数t来表示全双工持续倾听时间,那么若持续倾听时间t越久,噪声引入可能性越大,噪声模型影响能力越大,需要被抑制,因此融合文本抗噪模型需要增加nlu模型能力来平衡;若持续倾听时间t越短,噪声引入可能性越小,nlu模型影响能力越大,需要被抑制,因此融合文本抗噪模型需要增加噪声模型能力来平衡。

具体地,对全双工持续倾听时间t设置上限tmax和下限tmin,若全双工持续倾听时间t超过上限则噪声模型就会被完全抑制;或者全双工持续倾听时间t低于下限,nlu模型就会被完全抑制,这两种超出上限和下限之外的情况都不好。相应地,利用融合文本抗噪模型对nlu模型和噪声模型的融合进行调节,包括:

获取全双工持续倾听时间t。

若持续倾听时间t接近上限tmax,则在nlu模型和噪声模型的融合中对噪声模型进行抑制;或,若持续倾听时间t接近下限tmin,则在nlu模型和噪声模型的融合中对nlu模型进行抑制。

全双工持续倾听时间t范围是(tmin,tmax)秒,融合文本抗噪模型中设置了一个动态权重α。其中,α=(t-5)/(tmax-tmin),0≤α≦1.0,t越大,α越大。

在计算模型融合的得分过程中,各个参数介绍如下:

s-noise_clear表示噪声模型正常query得分。

s-nlu_domain表示nlu模型,domain得分。

s-nlu_intent表示nlu模型,intent得分。

s-nlu_rule表示nlu规则模板得分(0是噪声,1是正常,0.5是不处理)

s-rule表示产品规则得分(0是噪声,1是正常,0.5是不处理)

s-weight_noise表示加权噪声得分,s-weight_noise=(1-α)×s-noise_clear,其中t越大,α越大,该得分越小,噪声模型能力被抑制,反之亦然。

s-weight_nlu表示加权后的nlu得分,具体地,s-weight_nlu=α×(s-nlu_domain+s-nlu_intent)/2,其中t越大,α越大。该得分越大,nlu模型能力被增强,反之亦然。

s-final表示模型融合最终得分,s-final=s-weight_noise+s-weight_nlu。

对s-final的算式展开后可知:

s-final=(1-α)×s-noise_clear+α×(s-nlu_domain+s-nlu_intent)/2

其中α=(t-5)/(tmax-tmin),t为时间参数,且s-nlu_rule≠1,s-rule≠1

s-final=s-nlu_rule,其中s-nlu_rule=1或0

s-final=s-rule,其中s-nlu_rule=0.5,s-rule=1或0

综上,根据计算结果确定请求的最终标记结果,即若是0≤s-final≦0.5的情况可以确定是噪声query,若是1≧s-final>0.5的情况可以确定是正常query。

下面使用几个具体示例来说明融合文本抗噪模型的处理过程:

示例1:

query1=今天天气不太好啊,持续倾听时间是t=40,时间范围是(5,60),则α=0.64

s-clear=0.0023

s-nlu_domain=0.9138,s-nlu_intent=0.3,s-nlu_rule=0,s-rule=0

s-final=0.36×0.0023+0.64×0.9138/2=0.3892

该query属于噪声query,需过滤。

示例2:

query2=今天天气怎么样,持续倾听时间是t=40,时间范围是(5,60),则α=0.64

s-clear=0.9977

s-nlu_domain=0.9138,s-nlu_intent=1,s-nlu_rule=0,s-rule=0

s-final=0.36×0.9977+0.64×1.9138/2=0.9716

该query属于正常query,不需过滤。

示例3:

query3=请给我介绍一下北京,持续倾听时间是t=40,时间范围是(5,60),则α=0.64

s-rule=1.0,则s-final=1.0

该query属于产品规则命中,是正常query,不需过滤。

示例4:

query4=从中关村途径奥体中心路过东直门去望京soho,持续倾听时间是t=40,时间范围是(5,60),则α=0.64

s-rule=1.0,则s-final=1.0

该query属于正常query,不需过滤。

综上所述,和传统方式只使用nlu模型不同,本发明在传统nlu模型应用的基础上,增加了利用二分类算法对语音请求进行标记的噪声模型,通过nlu模型和噪声模型融合,加上产品规则匹配过滤的方法,实现全双工对话系统中正常请求不被过滤。进一步地,藉由融合文本抗噪模型可以动态调节包括nlu模型和噪声模型在内的双模型融合的加权配比,对请求结果的标记或判定更加准确,进一步保证了用户的正常语音对话不会被过滤,使得用户在车内使用语音助手的体验更佳。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图4,示出了本发明的一种全双工对话系统实施例的结构框图,具体可以包括如下模块:

接收模块,用于接收客户端转发的用户语音请求,并将其输入预设的nlu模型和噪声模型;服务器将语音query(语音请求)作为输入,一并输入到两个模型中。

nlu模型,用于通过nlu模型获得nlu信息,并将该nlu信息输入预设的nlu规则模板;

nlu规则模块,用于利用nlu规则模板对请求进行规则匹配处理,获得请求对应的第一标记结果;

噪声模型,用于计算获得请求对应的第二标记结果;

产品规则模块,用于在第一标记结果和第二标记结果不一致的情况下根据预设的产品规则对请求进行匹配处理;

确定模块,用于根据匹配结果确定请求的最终标记结果;

反馈模块,用于根据最终标记结果向客户端返回语音请求的反馈。

其中,确定模块包括:

融合文本抗噪模型,用于确定若根据产品规则不能对请求全部匹配,则利用预设的融合文本抗噪模型对nlu模型和噪声模型的融合进行调节;

计算单元,用于计算模型融合的得分;

确定单元,用于根据计算结果确定请求的最终标记结果。

其中,nlu信息包括领域、意图、槽位、文本长度和多轮交互在内的一项或多项nlu信息,nlu模型包括:

分类单元,用于通过nlu分类模型获得包括领域、意图在内的一项或多项nlu信息;

标注单元,用于通过nlu序列标注模型获得槽位的nlu信息;

多轮交互单元,用于通过多轮交互模型获得包括对话轮次、有无信息继承、是否改写对话在内多轮交互的nlu信息;

和/或,

长度单元,用于通过读取请求内容获得文本长度的nlu信息。

其中,nlu规则模块包括:

规则设置单元,用于预设若干个nlu规则;

规则匹配单元,用于根据nlu信息逐一对该若干个nlu规则进行规则匹配处理,直至任意一个nlu规则匹配完成,结束规则匹配处理;

输出单元,用于根据本次完成匹配对应的nlu规则,输出请求对应的第一标记结果。

规则设置单元预设的若干个nlu规则包括过滤规则和/或放行规则,过滤规则通过包括文本长度、黑名单、预设领域、预设意图、歧义内容在内的一种或多种方式进行nlu规则的匹配过滤;放行规则通过包括白名单、存在多轮继承信息在内的一种或多种方式进行nlu规则的匹配放行。

其中,噪声模型具体用于利用一个基于二分类建立的噪声模型对请求进行计算,获得该请求在不同类别的概率,将概率最大值对应的类别作为该请求对应的第二标记结果。

其中,产品规则模块包括:

正则化设置单元,用于根据产品规则预设若干个正则化模板;

正则化匹配单元,用于将请求和正则化模板进行匹配。

其中,融合文本抗噪模型具体用于获取全双工持续倾听时间;若持续倾听时间接近预设上限,则在nlu模型和噪声模型的融合中对噪声模型进行抑制;或,若持续倾听时间接近预设下限,则在nlu模型和噪声模型的融合中对nlu模型进行抑制。

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

本发明实施例还提供了一种服务器,包括:

包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述车载语音交互方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述车载语音交互方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

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

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

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

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

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

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

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

以上对本发明所提供的车载语音交互方法、全双工对话系统、服务器和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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