基于语音交互的信息核实方法、装置、设备和计算机存储介质与流程
本申请涉及计算机技术领域,特别涉及人工智能技术领域。
背景技术:
在地图类应用中,地理位置点可以是地图上的poi(pointofinterest,兴趣点)、aoi(areaofinterest,兴趣区域)或者更大范围的roi(regionofinterest,位置区域),尤其是与人们生活密切相关的地点,如学校、银行、餐馆、医院、超市等。一个地理位置往往包括:名称、坐标、地址、类别和电话等信息。地理位置信息通常由实地采集、互联网数据获取和用户上报等方式获取。由于城市建设快速发展和业务单位规划的变更,导致地理位置信息也会频繁地发生变化。
地理位置点检索和地图导航等应用均以地理位置点信息为数据基础,所以地理位置点数据的准确性对于各类地图应用的准确性和可用性至关重要。地图类应用为了提升地理位置点数据的准确性,需要对现存的地理位置点信息进行核实。
技术实现要素:
有鉴于此,本申请提供了一种基于语音交互的信息核实方法、装置、设备和计算机存储介质。
第一方面,本申请提供了一种基于语音交互的信息核实方法,包括:
获取用户针对语音问询反馈的语音应答文本,所述语音问询用于向用户进行信息核实;
将所述语音应答文本的各字符以及各字符对应的注音信息输入预先训练得到的语义理解模型,获取所述语义理解模型输出的用户意图信息和/或被核实对象信息,其中所述用户意图信息包括确认、否认、回答或提问。
第二方面,本申请提供了一种训练语义理解模型的方法,包括:
获取训练数据,所述训练数据包括用户针对语音问询反馈的语音应答文本,对所述语音应答文本的用户意图信息和/或被核实对象信息的标注;
将训练数据中语义应答文本的各字符以及各字符对应的注音信息作为语音理解模型的输入,标注的用户意图信息和/或被核实对象信息作为所述语义理解模型的目标输出,训练所述语义理解模型;其中所述用户意图信息包括确认、否认、回答或提问。
第三方面,本申请提供了一种基于语音交互的信息核实装置,包括:语义理解模块;
所述语义理解模块,用于获取用户针对语音问询反馈的语音应答文本,所述语音问询用于向用户进行信息核实;将所述语音应答文本的各字符以及各字符对应的注音信息输入预先训练得到的语义理解模型,获取所述语义理解模型输出的用户意图信息和/或被核实对象信息,其中所述用户意图信息包括确认、否认、回答或提问。
第四方面,本申请还提供了一种训练语义理解模型的装置,包括:
数据获取模块,用于获取训练数据,所述训练数据包括用户针对语音问询反馈的语音应答文本,对所述语音应答文本的用户意图信息和/或被核实对象信息的标注;
模型训练模块,用于将训练数据中语义应答文本的各字符以及各字符对应的注音信息作为语音理解模型的输入,标注的用户意图信息和/或被核实对象信息作为所述语义理解模型的目标输出,训练所述语义理解模型;其中所述用户意图信息包括确认、否认、回答或提问。
第五方面,本申请还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的方法。
第六方面,本申请还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述中任一项所述的方法。
由以上技术方案可以看出,通过本申请所提供的方法和装置,能够对用户针对语音问询反馈的语音应答文本进行语义理解,从而获取用户意图信息和/或被核实对象信息,实现自动地信息核实。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的主要流程图;
图2是本申请实施例提供的基于语音交互的信息核实架构示意图;
图3为本申请实施例提供的对声学模型进行训练的方法流程图;
图4为本申请实施例提供的声学模型的结构示意图;
图5为本申请实施例提供的一个语义理解模型的原理图;
图6为本申请实施例提供的训练语义理解模型的方法流程图;
图7为本申请实施例提供的地理位置点链指的原理示意图;
图8为本申请实施例提供的基于语音交互的信息核实装置的结构图;
图9为本申请实施例提供的训练语义理解模型的装置结构图;
图10是用来实现本申请实施例的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前针对地理位置点信息的核实,通常采用实地采集核实和人工客服打电话核实的方法。实地采集核实是地图信息采集员到达地理位置点实地,通过勘测、拍照、询问等方法对地理位置点信息进行核实。实地采集核实的方案在早期非信息化时代的地理信息建设中使用普遍,但是该方案需要消耗大量人力物力,不仅效率低,而且对作业人员有专业能力要求,不适用于大量数据作业,目前基本已被摒弃。
人工客服打电话核实则是客服拨打地理位置点的电话,使用人工对话询问的方式来核实信息。核实人员可以不用到达实地即可通过电话获得信息反馈。人工客服通过与用户直接沟通,更容易获得确切的信息。同时该方案操作门槛低对人工客服无特殊专业能力要求。如人工客服可基于现存信息询问该地理位置点的名称、地址、营业时间等属性信息,通过对方的反馈来标记该地理位置点的各个信息是否正确并进行更新。
然而人工客服打电话核实的方式需要大量人工参与,人工成本高、效率低,一个人一天只能核实100到200条。并且人很容易疲劳和情绪化,很难保证长时间的稳定作业。
有鉴于此,本申请提供了一种基于语音交互的信息核实方法。如图1中所示,该方法主要包括以下步骤:
在101中,获取用户针对语音问询反馈的语音应答文本,该语音问询用于向用户进行信息核实。
在102中,将语音应答文本的各字符以及各字符对应的注音信息输入预先训练得到的语义理解模型,获取语义理解模型输出的用户意图信息和/或被核实对象信息。
其中用户意图信息可以包括确认、否认、回答或提问。确认表征用户对语音问询所核实信息的确认,否认表征用户对语音问询所核实信息的否认,回答表征用户对语音问询所核实信息的回答,提问表征用户对语音问询所核实信息的提问。通常,在否认、回答意图下上述语音应答文本往往还伴随有用户提供的被核实对象信息。当然语音应答文本也可以不包含用户意图而仅仅包含被核实对象信息。
若获得被核实对象信息,则可以对该被核实对象信息进行存储,或者利用该被核实对象信息对已存储的信息进行更新。若获得用户意图信息,则可以依据用户意图信息推测出被核实对象信息,并进行存储或利用推测出的被核实对象信息对已存储的信息进行更新。
例如,语音问询为:“请问是幸福超市吗”,用户反馈的语音应答文本为“是的,这里是幸福超市”,则确定被核实的地理位置点名称为“幸福超市”。
再例如,语音问询为:“请问是幸福超市吗”,用户反馈的语音应答文本为“是的”,则推测出被核实的地理位置点名称为“幸福超市”。
再例如,语音问询为:“请问是幸福超市吗”,用户反馈的语音应答文本为“不是,这里是新富超市”,则确定被核实的地理位置点名称为“新富超市”。或者更进一步地,通过地理位置点链指机制和/或进一步对话等,确定被核实的地理位置点名称是否为“幸福超市”。关于地理位置点链指机制将在后续实施例中描述。
再例如,语音问询为:“请问是幸福超市吗”,用户反馈的语音应答文本为“不是”,则需要进一步语音问询“请问您是哪里”来确定被核实的地理位置点名称。若用户进一步反馈“这里是新富超市”,则识别出用户意图为“回答”,且被核实的地理位置点名称为“新富超市”。
另外,需要说明的是,本申请涉及的被核实对象可以是任意领域的被核实对象,例如地图类应用中的地理位置点、电子商务领域的交易信息、商品信息等等。在后续实施例中仅以地图类应用中的地理位置点为例进行描述,此时对应的被核实对象信息可以包括但不限于地理位置点的名称、类别、地址、营业时间、联系电话、经营者等属性信息。
为了方便对本申请所提供方法的理解,首先对本申请所基于的语音交互的信息核实架构进行描述。如图2中所示,本申请语音交互架构中,用户与本申请实施例提供的语音交互的信息核实装置(简称为智能核实装置)建立通信连接后,可以实现由智能核实装置通过通信连接与用户进行语音交互以进行信息核实。例如可以通过电话向用户进行信息核实,通过网络语音通话向用户进行信息核实,通过网络语音消息向用户进行信息核实等。
智能核实装置首先利用话术库,进行自然语言生成,生成的自然语言文本经过语音合成生成语音,经过网络播报给用户,该语音通常为语音问询。用户听到该语音问询后,可以针对该语音问询反馈语音应答,通过网络提供给智能核实装置。智能核实装置进行语音识别后,得到语音应答文本。对该语音应答文本进行语义理解,提取出其中的结构化信息。在本申请实施例中,该结构化信息就可以为被核实对象信息。更进一步地,基于语义理解的结果可以进一步进行对话管理。在对话管理中通过调用业务逻辑利用提取的结构化信息更新地理位置点数据库。另一方面,可以继续进行自然语言生成,周而复始,直至完成信息核实。
下面对上述智能核实装置执行的各部分处理进行详细描述。
(一)语音识别处理
声音本质上是一种波,也就是声波。这种波可以作为一种信号来进行处理,所以语音识别处理实质上是将一段随时间播放的信号序列进行处理后,输出一段文本序列。简单来说,将语音片段输入转化为文本输出的过程就是语音识别。在语音识别处理过程中,主要依赖声学模型和语言模型。
在声学模型之前,首先对语音(本实施例中主要是用户返回的语音应答)进行预处理和特征提取。现实中,一段高保真、无噪声的语音是非常难得的,我们实际获取到的语音数据多多少少都有噪声存在,所以在正式进入声学模型之前,我们需要通过消除噪声和信道增强等预处理技术,将信号从时域转化到频域,然后为声学模型提取有效的特征向量。接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分,与此同时,语言模型会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结果。这便是语音识别的一般原理。
语音信号具有多样性,不同的说话人(嗓音)、态度(风格、环境)、上下文内容等都会导致同一个词的语音信号的表现是千差万别的,就算是一个人说相同一句话,你也无法保证,这两次的语音信号是一样的。如何用模型表示出语音信号真正含义并转化成正确的文本,是一项很大的挑战。经过调研发现,关于地理位置点核实场景的话术和用户反馈的内容相对比较集中。虽然语音识别的结果错误率比较高,但是问题比较集中,基本都是地理位置点名称识别错误。
本申请实施例中,利用声学模型和语言模型,对用户针对语音问询反馈的语音应答进行语音识别,得到语音应答文本。其中声学模型和语言模型在训练过程中引入地理位置点词典数据。
先来看声学模型。声学模型可以理解为是对发声的建模,它能够把语音输入转换成声学表示的输出,更准确的说是给出语音属于某个声学符号的概率。在英文中这个声学符号可以是音节(syllable)或者更小的颗粒度音素(phoneme);在中文中这个声学符号可以是声韵母或者是颗粒度同英文一样小的音素。
本申请中可以基于fine-tuning(调优)方式对声学模型进行定向优化,具体可以如图3中所示,包括以下步骤:
在301中,利用人工客服向用户进行信息核实的语音以及对应的标注文本,获得训练数据。
本实施例中,可以利用人工客服向用户进行信息核实的语音进行语音识别,同时定位其中的地理位置点名称,将其纠正成正确的文本进行人工标注,从而形成“语音-文本”对,然后标注文本对应的音素信息,将其作为训练数据。
在302中,利用训练数据,对已有的声学模型进行模型参数的优化。
假设训练集合为s={(x1,z1),(x2,z2),…(xn,zn)},表示有n个训练样本,xi是第i个语音样本,zi是对应的音素。一个语音样本的输入是一个序列,输出的音素信息也是一个序列。
本申请对于声学模型采用的结构并不加以限制,例如可以采用诸如bi-lstm(bi-directionallongshort-termmemory,双向长短时记忆)+ctc(connectionisttemporalclassification,时序分类)的模型结构,如图4中所示。
训练目标为:ctc输出的音素序列符合训练样本中对应的音素标注。可以利用训练目标构建损失函数,并根据损失函数的结果优化模型参数。由于目前已经有了很好的声学模型,只是在针对特定领域有提升空间。因此对于地理位置点来说,训练数据中重点针对的是包含地理位置点的语音和对其的标注。因此,可以利用这部分训练数据仅仅进行fine-tunning。即在已有的声学模型的模型参数基础上,利用该部分训练数据进行模型参数的优化。因为原来的声学模型的权重已经平滑,因此不需要扭曲它们,在训练过程中将已有的声学模型的学习率调低。
对于语言模型而言,其作用可以理解为消除同音近似音的问题。在声学模型给出音素列之后,从候选的文本序列中找出概率最大的字符串序列。在本申请中,语言模型在训练过程中采用的训练样本可以利用地理位置点词典进行数据增强,利用诸如rnn模型等进行语音模型的训练。在此不做过多描述。
经过上述方式的处理,语音识别效果得到了很大的提高。特别是对于一些略低频的地理位置点名称,识别准确率大大提高。
(二)语义理解
语义理解的目标是将文本信息转换为可被机器处理的语义表示,通常体现为结构化信息。因为同样的意思有很多种不同的表达方式,对机器而言,理解一句话里每个词的确切含义并不重要,重要的是理解这句话表达的意思。比如“我家是幸福超市”,“我家店的名字是幸福超市”,“我家的店名叫幸福超市”,都表达了一个意思,即用户家店的名字是“幸福超市”,那么就需要将其中的结构化信息“幸福超市”识别出来。
在本申请实施例中,对于用户的语音应答文本,主要从中识别出用户意图信息和/或被核实对象信息。在此以识别出两种信息为例。该部分的实现实际上就是图1所描述的内容。即将所述语音应答文本的各字符以及各字符对应的注音信息输入预先训练得到的语义理解模型,获取语义理解模型输出的用户意图信息和/或被核实对象信息。
本申请实施例中提供的语义理解模型可以包括:嵌入层、时序建模层、映射层和预测层。图5为本申请实施例提供的一个语义理解模型的原理图。
其中嵌入层,图中表示为wordembeddings,用于对语音应答文本中各字符以及各字符对应的注音信息进行编码。在本申请中,对于汉字而言,采用的注音信息可以是拼音,也可以采用其他形式的注音信息。图5中以拼音为例,对各字符的拼音进行编码,能够有效消除因同音词所造成的语音识别不准确地问题,在语义理解时,即便语音识别结果不准确,也能够正确地识别用户意图信息和被核实对象信息。
时序建模层,用于利用嵌入层对应的编码结果,学习各字符之间的语义依赖关系。图5中以bi-lstm为例。
映射层,用于利用时序建模层所输出隐向量的最大池化结果,映射得到用户意图信息。图5中映射层以softmax为例。
预测层,用于利用时序建模层输出的各时序的隐向量进行被核实对象信息预测。图5中预测层的实现以softmax+crf层为例。
其中映射层和预测层分别是用户意图识别任务和被核实对象信息预测任务,如果仅实现其中一种,则仅采用映射层和预测层中一个即可。
给定一个用户输入的句子s=w1,w2,w3…,wt,在这里wi表示句子中第i个字符,而t表示句子的长度。每个词使用词向量表示为e(wi)。假设输入序列为x,预测层的输出序列表示为y。
bi-lstm层对前向后向的输出采用拼接的方式。因此输入xt,对应隐层的输出的
预测层的输出
yu=softmax(wuhu+bu)
其中,hu是对隐向量最大池化的结果,即:
ws、wu、bs和bu为模型参数。
从图5中可以看出,对于语音识别结果“部队哇,我们是永乐超市”,对各字符和各字符的音频进行embedding后,经过bi-lstm输出隐向量,映射层利用隐向量的最大池化结果,映射得到用户意图信息为否定(图中以deny表示。预测层利用各时序的隐向量进行预测,得到其中的poi名称为“永乐超市”,图中crf输出的各字符的标签中,b_poi表示poi的开始字符,i_poi表示poi的中间字符,e_poi表示poi的结束字符。可以看出,通过创新性地引入各字符拼音的输入,即便出现错误的语音识别结果,即将“不对哇”错误识别成“部队哇”。基于该语义理解模型也能够正确地识别出用户意图为否定。
图6为本申请实施例提供的训练语义理解模型的方法流程图,如图6中所示,该方法可以包括以下步骤:
在601中,获取训练数据,训练数据包括用户针对语音问询反馈的语音应答文本,对语音应答文本的用户意图信息和/或被核实对象信息的标注。
由于人工标注数据的代价大、效率低,因此在此考虑通过机器辅助人工来标注数据。由于在此场景下,用户表达的句子格式都比较类似,相反,更多的是因为噪音,语音识别等问题引入的各种错误的识别结果。针对这种特色的数据分布,本申请实施例提出了半监督的方法,具体方法如下:
首先针对相同的语音问询,获取高频的语音应答文本并进行人工标注后,得到种子样本。
即针对每个相同的问题,比如“请问,你家是***吗”,我们首先针对高频的用户应答文本进行标注,包括标注地理位置点信息,例如poi名称。
然后,利用种子样本对历史数据库中经过对象信息泛化的语音应答文本进行相似度聚类。
例如,按照标注结果将poi名称进行泛化和聚类:
泛化结果“对的,我家就是[poi-name]啊”对应的标注为:confirm(poi_name)
泛化结果“是的呀,是[poi-name]”对应的标注为:confirm(poi_name)
泛化结果“嗯对”对应的标注为:confirm()
泛化结果“我们家改名字了,改成[poi-name]”对应的标注为:deny(poi_name)
在聚类过程中,相似度的计算可以引入词向量、拼音相似度等特征。
最后,依据聚类结果获取各用户意图信息对应的语音应答文本作为训练数据。
在602中,将训练数据中语义应答文本的各字符以及各字符对应的注音信息作为语音理解模型的输入,标注的用户意图信息和/或被核实对象信息作为所述语义理解模型的目标输出,训练语义理解模型。
语义理解模型的结构仍如图5中所示。由于包含用户意图识别和被核实对象信息识别两个任务,这两个任务可以单独训练,也可以联合训练。由于两个任务之间存在较大的相关性,因此联合训练的效果更好,优选联合训练的方式。
用户意图识别的损失函数可以采用交叉熵形式,表示为:
其中,lu表示对应的实际用户意图。
被核实对象信息识别可以直接复用crf的损失函数。crf损失函数由两部分组成,真实路径的分数和所有路径的总分数。真实路径的分数应该是所有路径中分数最高的。
路径的分数计算公式:
上述公式中字母的上标表示对应的输入序列中的第i个字符,字母的下表表示该第i个字符的第m个时序。p为转移矩阵,表示标签从
每个序列的得分如上面的公式可以计算了,那么我们只需要让正确的标签序列得分最大就可以了,因此定义损失函数为:
其中
然后利用上述两个损失函数计算联合损失函数,联合损失函数可以采用将上述
经过上述处理后,在语义理解上提高了准确性。但对于被核实对象信息而言,仍可能不准确。例如,对于poi名称“永乐超市”大概率正确。但对于某些时空场景下,其可能是“勇乐超市”、“涌乐超市”等。为了解决这一情况,可以进一步将被核实对象信息链指到被核实对象所属领域知识库中的对象信息。例如,将poi名称链指到poi知识库中的poi名称上。
具体地,可以预先构建领域知识库,在该知识库中可以包括地理位置点信息,包括名称、类型、地址、坐标、联系方式等等。然后对于获取到的地理位置点信息,基于语音相似度、文本相似度、属性相似度中的至少一种,将被核实对象信息分类至领域知识库,以被核实对象链指到领域知识库中的对象信息。如果确定出链指到的对象信息,则利用确定出的对象信息更新被核实对象信息。其中,在进行上述分类时,实际上是利用预先构建的分类器对经过上述语义理解确定出的被核实对象信息进行分类。该分类器所分类的类别就是领域知识库中各已有地理位置点,即分类器计算语义理解得到的被核实对象信息属于领域知识库中各已有地理位置点的概率,依据该概率确定该被核实对象是否链指到领域知识库中的已有地理位置点,以及如果链指到,则具体链指到哪个已有地理位置点。
例如图7中所示,语义理解得到的“永乐超市”,将从用户获取到的“永乐超市”的语音、文本、地址、坐标等信息将其分类至领域知识库中的各已有地理位置点。若最终发现将其分类至“勇乐超市”的概率最高且超过预设阈值,则将语义理解得到的“永乐超市”更正为“勇乐超市”。其中在进行分类时可以采用gbdt(gradientboostingdecisiontree,梯度提升迭代决策树)算法。
通过上述链指处理,能够使得语义理解得到的被核实对象信息更加准确。
(三)对话管理
对话管理指的是根据语义理解结果,以及对话上下文,决定下一步的响应。重点是通过维护对话状态确定与用户的交互,以期望获得最终的正确核实结果。
经过上述语义理解过程,大概率能够识别出正确的结果。但如果poi新增,则就无法保证是完全正确的。还存在一些语义理解不适应的情况,从而导致获得的地理位置点信息不正确。基于此,可以引入基于多轮对话机制,向用户确认被核实对象的正确性。
具体地,对于语义理解得到的地理位置点名称,向用户发出针对该地理位置点名称所包含字符信息的语音问询,根据用户反馈的语音应答文本,再经过语音识别、语义理解等获得用户意图信息,依据用户意图信息确定上述地理位置点名称的正确性。
例如,通过上述语义理解得到了地理位置点名称“勇乐超市”,可以向用户接着问询“是勇敢的勇,欢乐的乐吗”,若用户回答“是的”,即用户意图是肯定,则确定语义理解得到的地理位置点名称的正确性。如果用户回答“不是”,即用户意图是否定,则确定语义理解得到的地理位置点名称是错误的。可以进一步对用户进行问询来获取正确的地理位置点名称。
除此之外,即便能够对用户的语音应答进行准确识别,但很多用户出于不信任、戏弄等多种原因,可能故意欺骗智能核实装置。针对此问题,本申请中引入了测谎机制。其中测谎机制可以包括主动测谎机制和被动测谎机制。
其中主动测谎机制包括:向用户语音问询已经明确知道结果的内容,获取用户反馈的语音应答,进行语音识别和语义理解后,将用户意图信息和被核实对象信息与已明确结果进行比对,如果一致,则确定用户通过测谎;否则确定用户未通过测谎。对于未通过测谎的用户反馈的语音应答文本不予以采纳。
也就是说,除了向用户语音问询不知道结果的内容之外,还会向用户语音问询已经明确知道结果的内容。通过用户对已经明确知道结果的内容的语音应答来确定用户是否说谎。
被动测谎机制包括:基于用户的语音应答的情感,不同问题的回答时延、同类型地理位置点大数据统计结果,来识别用户是否撒谎。
经过上述测谎机制,能够进一步保证用户所反馈内容的准确性,从而保证数据核实的准确性。
更进一步地,本申请还可以对用户针对语音问询反馈的语音应答进行情感识别、用户属性识别、对当前时空信息进行识别等中的至少一种;依据识别结果,采用对应的话术与用户进行后续语音交互。例如,在晚上的时候可以对用户说晚上好,早晨对用户说早上好。对于女性,可以对用户说“你好美女”。对于用户已经感到厌烦的情绪下,可以少一些问询,对于用户比较愉快的情绪下,可以多一些问询,等等。通过这种方式,能够实现不同场景下、不同用户采用不同的话术,比较灵活和人性化,降低用户的挂断率,提高信息核实的召回率。
(四)语音合成
用户不是机器人,是有感情的,自然的语音播报对于用户的配合度起到非常关键的作用。如果语音合成非常差,用户会直接挂断电话,影响信息核实的正常进行。为了能够让语音合成更加自然,语音合成模型可以采用人工客服向用户进行信息核实的语音以及对应的标注文本预先训练得到,标注文本包括对被核实对象所属对象类型的属性信息标注和/或时间信息。
对于地理位置点信息的核实而言,除了时间信息和地理位置点信息之外,其他话术基本都是有限集合。而已有的语音合成服务对于时间信息和地理位置点信息的播报比较生硬,表达不自然。因此本申请对时间信息和地理位置点信息进行了定制优化。
由于历史上已经累计了大量人工客服向用户进行信息核实的语音,因此可以选择一些声音优美、发音清晰的人工客服的语音数据作为高质量语音数据,通过语音识别和语义理解,将高质量语音数据转化成文本,同时标注出其中的地理位置点属性信息和时间信息,这样就生成了文本-语音对,从而作为训练数据。例如:
“请问是【幸福超市】吗?”,其中【】框出的内容打上poi名称的标签。
“你们家是【2020年4月2日】开业吗?”其中【】框出的内容打上时间标签。
通过这种训练数据训练出的语音合成模型,地理位置点信息和时间信息的语音表达都更接近人的表达方式,并且自然流程、优美清晰,从而提升用户的满意度和配合度。
以上是对本申请所提供方法进行的详细描述。下面结合实施例对本申请提供的装置进行详细描述。
图8为本申请实施例提供的基于语音交互的信息核实装置的结构图,如图8中所示,该装置可以包括:语义理解模块01;还可以进一步包括:链指模块02、语音识别模块03、声学模型训练模块04、对话管理模块05、语音合成模块06。其中各组成模块的主要功能如下:
语义理解模块01,用于获取用户针对语音问询反馈的语音应答文本,语音问询用于向用户进行信息核实;将语音应答文本的各字符以及各字符对应的注音信息输入预先训练得到的语义理解模型,获取语义理解模型输出的用户意图信息和/或被核实对象信息,其中用户意图信息包括确认、否认、回答或提问。
其中,语义理解模型包括:嵌入层和时序建模层,还包括映射层和/或预测层。
嵌入层,用于对各字符以及各字符对应的注音信息进行编码。
时序建模层,用于利用嵌入层对应的编码结果,学习各字符之间的语义依赖关系。
映射层,用于利用时序建模层所输出隐向量的最大池化结果,映射得到用户意图信息。
预测层,用于利用时序建模层输出的各时序的隐向量进行被核实对象信息预测。
链指模块02,用于若语义理解模块获取到被核实对象信息,则将被核实对象信息链指到被核实对象所属领域知识库中的对象信息。
语义理解模块01和链指模块02的功能和执行的具体操作,参见方法实施例中关于语义理解的相关记载,在此不做赘述。
语音识别模块03,用于利用声学模型和语言模型,对用户针对语音问询反馈的语音应答进行语音识别,得到语音应答文本。其中声学模型和语言模型在训练过程中引入被核实对象所属对象类型的词典数据。
声学模型训练模块04,用于利用人工客服向用户进行信息核实的语音以及对应的标注文本,获得训练数据;利用训练数据,对已有的声学模型进行模型参数的优化,其中将已有的声学模型的学习率调低。
语音识别模块03和声学模型训练模块04的功能和执行的具体操作,参见方法实施例中关于语音识别的相关记载,在此不做赘述。
对话管理模块05,用于基于多轮对话机制,向用户确认被核实对象信息的正确性,具体包括:向用户发出针对被核实对象信息中所包含字符信息的语音问询;根据用户反馈的语音应答文本的用户意图信息,确定被核实对象信息的正确性。
对话管理模块05,用于将用户意图信息和/或被核实对象信息与已明确结果进行比对,如果一致,则确定用户通过测谎;否则确定用户未通过测谎;对于未通过测谎的用户反馈的语音应答文本不予以采纳。
对话管理模块05,用于对用户针对语音问询反馈的语音应答进行情感识别、用户属性识别以及对当前时空信息进行识别中的至少一种;依据识别结果,采用对应的话术与用户进行后续语音交互。
对话管理模块05的功能和执行的具体操作,参见方法实施例中关于对话管理的相关记载,在此不做赘述。
语音合成模块06,用于利用语音合成模型产生语音问询;其中,语音合成模型采用人工客服向用户进行信息核实的语音以及对应的标注文本预先训练得到,标注文本包括对被核实对象所属对象类型的属性信息标注和/或时间信息。
语音合成模块06的功能和执行的具体操作,参见方法实施例中关于语音合成的相关记载,在此不做赘述。
图9为本申请实施例提供的训练语义理解模型的装置结构图,如图9所示,该装置包括:数据获取模块11和模型训练模块12。其中各组成模块的主要功能如下:
数据获取模块11,用于获取训练数据,训练数据包括用户针对语音问询反馈的语音应答文本,对语音应答文本的用户意图信息和/或被核实对象信息的标注。
模型训练模块12,用于将训练数据中语义应答文本的各字符以及各字符对应的注音信息作为语音理解模型的输入,标注的用户意图信息和/或被核实对象信息作为语义理解模型的目标输出,训练语义理解模型;其中用户意图信息包括确认、否认、回答或提问。其中注音信息包括汉语拼音,还可以采用其他注音信息。
具体地,数据获取模块11可以针对相同的语音问询,获取高频的语音应答文本并进行人工标注后,得到种子样本;利用种子样本对历史数据库中经过对象信息泛化的语音应答文本进行相似度聚类;依据聚类结果获取各用户意图信息对应的语音应答文本作为训练数据。
具体地,语义理解模型包括:嵌入层和时序建模层,还包括映射层和/或预测层。
嵌入层,用于对各字符以及各字符对应的注音信息进行编码。
时序建模层,用于利用嵌入层对应的编码结果,学习各字符之间的语义依赖关系。
映射层,用于利用时序建模层所输出隐向量的最大池化结果,映射得到用户意图信息。
预测层,用于利用时序建模层输出的各时序的隐向量进行被核实对象信息预测。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图10所示,是根据本申请实施例方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据该电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
该电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除