一种语音对话处理方法和系统与流程

文档序号:22744193发布日期:2020-10-31 09:31阅读:132来源:国知局
一种语音对话处理方法和系统与流程

本申请涉及数据处理领域,特别涉及一种语音对话的处理方法、系统、装置以及计算机可读存储介质。



背景技术:

随着人工智能技术的发展,语音识别技术广泛应用于各种领域,例如,智能家居、智能客服等。语音交互的核心是机器如何正确地理解用户的意图,从而做出正确的回应来帮助用户快速准确地解决问题。然而随着应用场景的逐渐扩展,在复杂的现实场景中,语音识别的性能很难得到保障。因此,有必要提供一种语音对话处理方法和系统,提高语义理解的准确性。



技术实现要素:

本申请实施例的一方面涉及一种方法,用于处理语音对话,所述方法包括:获取目标语音对话数据;基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对所述目标语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列;将所述文本向量表示序列、所述音标向量表示序列和所述角色向量表示序列输入训练好的语音对话编码模型,确定所述目标语音对话数据对应的表示向量;将所述表示向量输入分类模型,确定所述目标语音对话数据的摘要。

本申请实施例的另一方面涉及一种系统,用于处理语音对话,所述系统包括:获取模块,可以用于获取目标语音对话数据;确定模块,可以用于基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对所述目标语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列;输入模块,可以用于将所述文本向量表示序列、所述音标向量表示序列和所述角色向量表示序列输入训练好的语音对话编码模型,确定所述目标语音对话数据对应的表示向量;处理模块,可以用于将所述表示向量输入分类模型,确定所述目标语音对话数据的摘要。

本申请实施例的另一方面涉及一种装置,用于处理语音对话,所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行所述指令时,实现上述用于提取语音对话摘要的方法。

本申请实施例的另一方面涉及一种计算机可读存储介质,所述存储介质存储计算机指令,所述计算机指令被处理器执行时,实现上述用于提取语音对话摘要的方法。

附图说明

本申请将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,

其中:

图1是根据本申请一些实施例所示的示例性语音对话处理系统的应用场景示意图;

图2是根据本申请一些实施例所示的示例性第一处理设备的模块图;

图3是根据本申请一些实施例所示的用于训练语音对话编码模型的示例性方法

的示意图;

图4是根据本申请一些实施例所示的基于自监督学习方式训练语音对话编码模

型的示例性方法的示意图;

图5是根据本申请一些实施例所示的示例性第二处理设备的模块图;

图6是根据本申请一些实施例所示的用于提取语音对话摘要的示例性方法的示

意图。

具体实施方式

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

本申请的实施例可以应用于不同的运输系统,例如,出租车、专车、顺风车、巴士、代驾等。本申请描述的“乘客”、“乘客端”、“乘客终端”、“顾客”、“需求者”、“服务需求者”、“服务请求者”、“消费者”、“消费方”、“使用需求者”等是可以互换的,是指需要或者订购服务的一方,可以是个人,也可以是工具。同样地,本申请描述的“司机”、“司机端”、“司机终端”、“提供者”、“供应者”、“服务提供者”、“服务者”、“服务方”等也是可以互换的,是指提供服务或者协助提供服务的个人、工具或者其他实体等。另外,本申请描述的“用户”可以是需要或者订购服务的一方,也可以是提供服务或者协助提供服务的一方。

图1是根据本申请一些实施例所示的示例性语音对话处理系统的应用场景示意图。

语音对话处理系统100可以应用于多种场景,例如,智能客服、机器人判责等。具体地,以在线交通运输服务场景为例,在司机与乘客之间出现服务分歧时,语音对话处理系统100可以处理司机与乘客间的语音对话,并基于处理结果,判断司机或乘客的责任。在一些实施例中,如图1所示,语音对话处理系统100可以包括用户终端110、第一处理设备120和第二处理设备130。

用户终端110可以是用户用于请求或提供线上到线下服务的设备。线上到线下服务可以是运输服务(例如,出租车服务)、购物服务、订餐服务、快递服务等。用户可以使用用户终端110发送语音请求或与其他用户进行语音对话。例如,以运输服务为例,用户终端110可以包括司机端和乘客端,司机和乘客可以分别通过司机端和乘客端进行语音对话以沟通服务内容(例如,上车位置、出发时间)。在一些实施例中,用户终端110可以包括移动设备110-1、平板电脑110-2、膝上型电脑110-3等或其任意组合。移动设备110-1可以包括可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。可穿戴设备可以包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣服、智能背包、智能配件等或其任意组合。智能移动设备可以包括智能电话、个人数字助理(pda)、游戏设备、导航设备、销售点(pos)等或其任意组合。虚拟现实设备和/或增强虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以是googleglasstm、riftcontm、fragmentstm、gearvrtm等。

第一处理设备120和第二处理设备130可以处理数据和/或信息,以执行本申请中描述的一个或多个功能。在一些实施例中,第一处理设备120和第二处理设备130是任何具有数据处理能力的设备,例如,处理器、服务器等。在一些实施例中,第一处理设备120和第二处理设备130可以相同也可以不同。在一些实施例中,第一处理设备120和第二处理设备130可以包括处理器,用于执行程序指令。处理器可以包括中央处理器(cpu)、专用集成电路(asic)、专用指令处理器(asip)、图形处理器(gpu)、物理处理器(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编辑逻辑电路(pld)、控制器、微控制器单元、精简指令集电脑(risc)、微处理器等或其任意组合。在一些实施例中,第一处理设备120和第二处理设备130还可以包括存储介质,用于存储程序指令或数据。存储介质可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。在一些实施例中,第一处理设备120和第二处理设备130还可以包括用于内部连接和/或外部连接的数据总线、通讯接口等。在一些实施例中,第一处理设备120和第二处理设备130还可以包括输入设备(例如,键盘、鼠标、麦克风等)、输出设备(例如,显示器、播放器等)等。在一些实施例中,第一处理设备120和第二处理设备130可集成在同一个处理设备中实现。在一些实施例中,第一处理设备120和第二处理设备130可以在云平台上执行。例如,云平台可以包括私有云、公共云、混合云、社区云、分散式云、内部云等或其任意组合。

在一些实施例中,第一处理设备120可以基于样本语音数据对语音对话编码模型进行训练。具体地,第一处理设备120可以获取训练数据123,基于训练数据123训练初始模型124,以确定训练后的模型125。训练数据123可以是线上到线下服务中涉及的用户之间的历史语音对话数据(例如,司机与乘客间的历史语音对话数据)。在一些实施例中,第一处理设备120可以从用户终端110或存储设备(图中未示出)获取训练数据123。在一些实施例中,训练数据123可以包括无标签数据121和有标签数据122,其中,有标签数据122可以是添加了标签的历史语音对话数据。在一些实施例中,标签可以是历史语音对话数据的摘要。在一些实施例中,标签可以是历史语音对话数据的分类结果。例如,以运输服务为例,如果司机与乘客之间出现服务分歧,会对服务分歧进行责任判定,则标签为责任判定结果(例如,“司机责任”、“乘客责任”、“双方均无责任”及“无法判定责任”)。关于模型训练的更多细节可见图2-4及其描述,此处不再赘述。

在一些实施例中,第二处理设备130可以获取目标语音对话数据并基于训练后的语音对话编码模型,确定目标语音对话数据的处理结果(例如,摘要、意图分类)。具体地,第二处理设备130可以从用户终端110或存储设备(图中未示出)获取目标语音对话数据(例如,司机与乘客间的语音对话),并基于训练后的模型125,确定目标语音对话数据的表示向量。进一步地,第二处理设备130可以将表示向量输出分类模型,确定目标语音对话数据的处理结果131。关于确定目标语音对话数据的处理结果的更多细节可见图5-6及其描述,此处不再赘述。

在一些实施例中,语音对话处理系统100还可以包括网络(图中未示出),用于促进各个组件之间的数据和/或信息的交换。网络可以是任意类型的有线或无线网络。例如,网络可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(lan)、广域网络(wan)、无线区域网络(wlan)、都会区域网络(man)、公共电话交换网络(pstn)、蓝牙网络、zigbee网络、近场通讯(nfc)网络等或其任意组合。

需要注意的是,以上对于语音对话处理系统100的描述,仅仅是为了示例和说明,并不能把本申请限制在所举实施例范围之内。对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对语音对话处理系统100进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。

图2是根据本申请一些实施例所示的示例性第一处理设备的模块图。

如图2所示,第一处理设备120可以包括获取模块210、确定模块220和训练模块230。

获取模块210可以用于获取样本语音对话数据。

确定模块220可以用于基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对样本语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列。

训练模块230可以用于基于文本向量表示序列、音标向量表示序列和角色向量表示序列,以自监督学习的方式对语音对话编码模型进行预训练,得到预训练后的语音对话编码模型。

更多细节可以参见图3及其描述,此处不再赘述。

应当理解,第一处理设备120可以利用各种方式来实现,例如,通过硬件、软件或者软件和硬件的结合来实现,其中,硬件部分可以利用专用逻辑来实现,软件部分则可以存储在存储器中,由微处理器或者专用设计硬件来执行。本领域技术人员可以理解,第一处理设备120及其模块可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。第一处理设备120及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于第一处理设备120及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,获取模块210和确定模块220可以是一个系统中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,第一处理设备120中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

图3是根据本申请一些实施例所示的用于训练语音对话编码模型的示例性方法的示意图。如图3所示,流程300可以包括下述步骤。在一些实施例中,流程300可以由第一处理设备120执行。

步骤302,第一处理设备120(例如,获取模块210)可以获取样本语音对话数据。

样本语音对话数据可以是以语音形式记录的人与人之间的历史对话数据。例如,在运输服务场景中,样本语音对话数据可以是司机与乘客间的语音对话数据、司机或乘客与客服之间的语音对话数据等。又例如,在购物服务场景中,样本语音对话数据可以是顾客与在线导购间的语音对话数据。进一步例如,在日常生活场景中,样本语音对话数据可以是朋友之间的语音对话数据、亲人之间的语音对话数据等。

在一些实施例中,第一处理设备120可以通过从存储设备或用户终端110获取样本语音对话数据。具体地,在运输服务场景中,用户终端110可以通过实时录音地方式记录乘客与司机间的对话内容并将对话内容上传至存储设备。相应地,第一处理设备120可以通过从存储设备或用户终端110获取样本语音对话数据。

步骤304,第一处理设备120(例如,确定模块220)可以基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对样本语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列。在本申请中,向量表示序列可以指在向量空间中由一组向量构成的序列。

在一些实施例中,样本语音对话数据可以对应对话文字文本,其中包括多个词(或词组)或段落。相应地,文本向量表示序列可以指对对话文字文本中的多个词(或词组)或段落进行向量转化后得到的向量表示序列。具体地,第一处理设备120可以通过语音识别技术(asr,automaticspeechrecognition),将样本语音对话数据转化为包括多个词(或词组)或段落的对话文字文本,并将对话文字文本输入文本嵌入模型31,得到文本向量表示序列。

在一些实施例中,文本嵌入模型可31以包括词嵌入子模型、位置嵌入子模型和段落嵌入子模型。

词嵌入子模型可以用于对对话文字文本中的词(或词组)进行向量化处理,得到词向量表示序列。例如,以对话文字文中的某个词为例,该词的词向量为对该词进行向量编码后得到的向量。相应地,词向量表示序列为对话文字文本中的所有词对应的词向量的综合结果(例如,拼接结果)。

位置嵌入子模型可以用于对对话文字文本中的词所处的位置进行向量化处理,得到位置向量表示序列。例如,以对话文字文中的某个词为例,假设该词位于对话文字文本的第一位,那么其对应的位置向量为表征“第一位”的向量,其长度与该词的词向量长度相同。相应地,位置向量表示序列为对话文字文本中的所有词对应的位置向量的综合结果(例如,拼接结果)。在本申请中,通过使用位置向量表示序列,可以使模型对对话文字文本的语义理解更加准确。例如,假设有两个对话文字文本“helikethismoviebecauseitdoesn'thaveanoverheadhistory”和“hedoesn'tlikethismoviebecauseithasanoverheadhistory”,其主要区别在于词“like”和“doesn’t”所处的位置不同,如果只考虑各个词对应的词向量,那么则无法准确理解两个对话文字文本的语义区别,而如果加上位置向量,则可以得出两个对话文字文本所表达的情感取向是一正一负。

段落嵌入子模型可以用于对对话文字文本中段落进行向量化处理,得到段落向量表示序列。例如,以对话文字文本中的某个段落为例,该段落的段落向量为对该段落进行向量编码后得到的向量。相应地,段落向量表示序列为对话文字文本中的所有段落对应的段落向量的综合结果(例如,拼接结果)。

在一些实施例中,词嵌入子模型、位置嵌入子模型和段落嵌入子模型可以通过one-hot、word2vec等方式对输入的对话文字文本进行向量转化,得到相应的词向量表示序列、位置向量表示序列和段落向量表示序列。

在一些实施例中,可以将词向量表示序列、位置向量表示序列和段落向量表示序列进行合并(例如,拼接)后得到样本语音对话数据的文本向量表示序列。

在一些实施例中,样本语音对话数据对应的对话文字文本中所包括的词(或词组)可以对应音标信息。相应地,音标向量表示序列可以指对对话文字文本中的词(或词组)的音标信息进行向量转化后得到的向量表示序列。在一些实施例中,音标信息可以指中文的汉语拼音,也可以是指其他语言的音标或音图,例如,英语的音标、日语的音图、西班牙语的字母(西班牙语的字母发音固定,可以直接将字母作为音标)等。

具体地,第一处理设备120可以通过使用隐马尔科夫模型、条件随机场、神经网络、transformer等模型或统计等方法,将对话文字文本转换为音标文本,并将音标文本输入音标嵌入模型32,得到音标向量表示序列。在本申请中,通过使用音标向量表示序列,可以有效降低由于音调或发音等导致的语音识别错误率。例如,汉语中存在多音字,相同的文字在不同场景中的发音可能不同。又例如,在汉语中,拼音音调包括一声、二声、三声和四声,类似的发音(例如,“马”和“骂”)因其音调不同而导致对应的含义完全不同。又例如,在英语中,类似的发音对应的单词可能不同。相应地,音标向量序列可以体现对话文字文本中各个词的音调及发音等,从而降低语音识别错误率。

在一些实施例中,音标嵌入模型32可以通过one-hot、word2vec等方式对音标文本进行向量转化,得到音标向量表示序列。

在一些实施例中,样本语音对话数据还涉及进行语音对话的角色(例如,“乘客”或“司机”)。相应地,角色向量表示序列可以指对样本语音对话数据中的角色进行向量转化后得到的向量表示序列。具体地,在将样本语音对话数据转化为对话文字文本时,可以在其中加入角色信息。第一处理设备120可以将角色信息输入角色嵌入模型33,得到角色向量表示序列。

具体例如,以运输服务场景为例,假设对话文字文本的一部分为“师傅您好,我这边有事要取消订单”,说话方为乘客。相应地,该部分对话文字文本的角色向量为“乘客”。在本申请中,通过使用角色向量表示序列,可以融入样本语音对话数据中说话方的角色信息,从而可以帮助理解对话的逻辑。例如,在上述举例中,若要判定取消订单的责任方,则可以准确地判断出是乘客要求取消订单,责任方为乘客。

在一些实施例中,角色嵌入模型33可以通过one-hot等方式对角色信息进行向量转化,得到角色向量表示序列。

在一些实施例中,文本嵌入模型、音标嵌入模型和角色嵌入模型的类型可以是embedding模型、word2vec模型等。

步骤306,第一处理设备120(例如,训练模块230)可以基于文本向量表示序列、音标向量表示序列和角色向量表示序列,以自监督学习的方式对语音对话编码模型进行预训练,得到预训练后的语音对话编码模型。

在一些实施例中,第一处理设备120可以将文本向量表示序列、音标向量表示序列和角色向量表示序列输入至初始语音对话编码模型,并以自监督学习方式进行预训练。在一些实施例中,第一处理设备120可以将文本向量表示序列、音标向量表示序列和角色向量表示序列分别输入至初始语音对话编码模型。在一些实施例中,第一处理设备120可以将文本向量表示序列、音标向量表示序列和角色向量表示序列进行合并后再输入至初始语音对话编码模型。在本申请中,“合并”可以指叠加、拼接、加权、变换等多种方式。例如,第一处理设备120可以通过线性变换或神经网络变换对上述向量序列进行合并,从而更好地融合各个向量表示序列所体现的特征的不同作用。在一些实施例中,对上述向量序列进行合并的参数可以是系统默认值,也可以与文本嵌入模型31、音标嵌入模型32以及角色嵌入模型33联合训练得到。

在本申请中,通过将多个向量表示序列进行合并,可以使得语音对话编码模型可以从合并后的向量表示序列中同时学习文本、音标和角色信息,音标与文本结合可以更加准确的确定文本中的词本身所表达的含义,角色信息则可以帮助区分对话逻辑,使得对话的理解更加准确。

在一些实施例中,语音对话编码模型可以是transformer模型。transformer模型可以对输入的向量表示序列的上下文信息进行编码,并生成上下文表示序列。上下文表示序列是指结合了输入内容的上下文信息的向量序列,例如,“ihaveadog,itiscute”,通过学习上下文信息,可以知道“it”指“dog”。

在一些实施例中,transformer模型可以包括encoder和decoder,其中,encoder为编码组件部分,可以由多个encoder组成;decoder为解码组件部分,可以由多个decoder组成。每一个encoder可以包括自注意力层和前馈神经网络层;每一个decoder可以包括自注意力层、编码-解码注意力层和前馈神经网络层。transformer模型可以并行处理输入的向量表示序列中的所有元素,同时利用注意力层结构将上下文与较远的元素结合起来。在一些实施例中,示例性地,transformer模型可以包括12层的encoder和decoder,隐藏尺寸为768,12个注意力头,包含大约100m的参数。

在一些实施例中,语音对话编码模型可以是bert、xlent、gpt2、t5等基于transformer技术的模型,也可以是神经网络模型或其他模型。

在一些实施例中,文本嵌入模型31、音标嵌入模型32和角色嵌入模型33中的至少一个或至少一部分可以与语音对话编码模型进行联合预训练。例如,在联合训练过程中,文本嵌入模型31的段落嵌入子模型可以不参与联合训练,而词嵌入子模型和位置嵌入子模型可以参与联合训练。

在一些实施例中,在完成对语音对话编码模型的预训练之后,可以结合下游任务模型(例如,分类模型、摘要提取模型、翻译模型等),基于少量的有标注数据(标注对应相应的下游任务,例如,“类别”、“摘要”、“翻译”等),对语音对话编码模型进行微调,从而提高下游任务的处理效果。

关于自监督学习的更多细节,可以参见图3的详细描述,此处不再赘述。

由于在自动语音识别得到的文本数据中,往往含有大量的不流畅文本,以及存在口语嘈杂、对话逻辑复杂等问题,这些问题会对后续的语音对话处理(例如,确定分类结果、提取摘要、机器翻译等)造成严重的干扰。而在本说明书的方法中,通过多个嵌入模型对样本语音对话数据进行向量转化,在文本嵌入模型的基础上结合了音标嵌入模型和角色嵌入模型,使得在模型训练过程中可以融合角色信息和音标信息,可以减轻自动语音识别错误的影响,同时可以帮助理解复杂对话的逻辑,使得最终训练得到的模型可以具有更好的性能。

例如,以运输服务场景为例,如果司机和乘客之间出现服务分歧(例如,取消订单责任),需要根据司机、乘客及客服等多方之间的语音对话数据进行判责。在多方的语音对话数据中涉及多方的角色,使得判断过程相对比较复杂。例如,语音对话数据可能是“司机说:是他让取消的;乘客说:不是我让他取消的;客服说:那到底是谁让取消的?”,在以上对话中,指代名词出现了多次,对于模型来说比较难以判断。而在输入模型的数据中融入角色信息后,模型可以更加清楚的判断出对话逻辑,比如,司机说的“他”是指的乘客,乘客说的“他”是指的司机,客服说的“谁”是指的司机或乘客。另外,口语对话中还涉及音调和发音等,在输入模型的数据中融入音标信息,使得模型可以更加准确地理解语义。例如,“取消”和“取笑”的发音类似但音调不同,“消”为一声,“笑”为四声,可以通过融入音标信息,帮助模型正确地理解语义信息为“取笑订单”而非“取笑某个人”。

为了验证本申请所述的语音对话编码模型的效果,分别使用express(快车)数据集和premier(专车)数据集,对比了cnn、han、bert和本申请提出的模型在下游任务(例如,分类)中的处理效果,实验结果如下:

表1不同模型的效果对比

同时,为了验证本申请所披露的技术方案中的音标信息和角色信息的作用,进一步进行了验证实验。在实验中,首先去除音标信息进行验证,再进一步去除角色信息进行验证,结果如下表所示:

表2:音标信息和角色信息的效果验证结果

由以上数据可知,与其他现有模型相比,本申请所披露的方法训练得到的语音对话编码模型在用于下游任务时,具有较好的准确率。加入音标信息与角色信息与文本信息进行结合,可以明显的改善模型用于下游任务的性能。

应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,可以在流程300中的任何位置添加一个或以上其他可选步骤(例如,存储步骤、预处理步骤)。又例如,在步骤304之前,第一处理设备120可以对样本语音对话数据进行预处理以确定样本语音对话数据的对话文字文本和音标文本,再分别基于对话文字文本和音标文本确定文本向量表示序列和音标向量表示序列。

图4是根据本申请一些实施例所示的基于自监督学习方式训练语音对话编码模型的示例性方法的示意图。

自监督学习是指模型在训练时,模型直接基于无标签的样本数据自行学习,无需预先对样本数据添加标注。例如,将无标签数据中的句子的顺序随机打乱,打乱顺序的句子作为模型的输入,模型自监督学习句子的正确顺序,此时正确的句子顺序可以作为“标注”。通过自监督学习,可以有效地减少模型训练时对有标注数据的依赖。

在一些实施例中,以自监督学习的方式对语音对话编码模型进行预训练时,可以以文本向量表示序列、音标向量表示序列和角色向量表示序列的至少一个的至少一部分作为标注。

在一些实施例中,标注至少包括角色向量表示序列中的部分元素。例如,如图4所示,410表示输入至语音对话编码模型的一部分向量表示序列(例如,角色向量表示序列),其中,a表示角色a的向量表示,b表示角色b的向量表示。然后,从410中随机挑选一部分(即,420)并对其中部分元素(例如,402)进行掩盖(mask),掩盖掉的元素的值作为训练的标注。具体地,在训练过程中,以元素402为例,其预测值为“y1”,其标注为“a”,基于预测值和标注计算损失值404,进而基于损失值404调整模型参数。例如,可以基于梯度下降法对损失值404进行优化。

在一些实施例中,标注还可以包括文本向量表示序列中的关键词。关键词可以是预先设定的词,也可以是随机设定的词。相应地,训练任务可以理解为“关键词预测任务”。具体地,可以根据预先设定的关键词列表,对文本向量表示序列中的部分元素进行掩盖,掩盖掉的元素的值作为训练的标注。基于其预测值与标注确定损失值,进而基于损失值调整模型参数。通过对关键词进行掩盖,使得语音对话编码模型可以更有效地的学习到上下文信息和短语表达式。

在一些实施例中,标注还可以包括文本向量表示序列体现的句子顺序。相应地,训练任务可以理解为“句子顺序预测任务”。例如,假设对话文字文本中包括a、b、c三个句子,句子顺序为a位于b前一句,b位于c前一句以及a的后一句。相较于仅仅预测下一个句子的任务,句子顺序预测任务可以更加关注于对句子连贯性,提高模型的性能。

图5是根据本申请一些实施例所示的示例性第二处理设备的模块图。

如图5所示,第二处理设备130可以包括获取模块510、确定模块520、输入模块530和处理模块540。

获取模块510可以用于获取目标语音对话数据。

确定模块520可以用于基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对目标语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列。

输入模块530可以用于将文本向量表示序列、音标向量表示序列和角色向量表示序列输入训练好的语音对话编码模型,确定目标语音对话数据对应的表示向量。

处理模块540可以将表示向量输入分类模型,确定目标语音对话数据的摘要或意图分类结果。

更多细节可以参见图6及其描述,此处不再赘述。

应当理解,第二处理设备130可以利用各种方式来实现,例如,通过硬件、软件或者软件和硬件的结合来实现,其中,硬件部分可以利用专用逻辑来实现,软件部分则可以存储在存储器中,由微处理器或者专用设计硬件来执行。本领域技术人员可以理解,第二处理设备130及其模块可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。第二处理设备130及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于第二处理设备130及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,获取模块510和确定模块520可以是一个系统中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,第二处理设备130中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

图6是根据本申请一些实施例所示的用于提取语音对话摘要的示例性方法的示意图。如图6所示,流程600可以包括下述步骤。在一些实施例中,流程600可以由第二处理设备130执行。

步骤602,第二处理设备130(例如,获取模块510)可以获取目标语音对话数据。以运输服务场景为例,目标语音对话数据可以指需要进行处理的司机与乘客的语音对话数据、司机或乘客与客服的语音对话数据、司机、乘客与客服的多人语音对话数据等。

结合步骤302所述,第二处理设备130可以通过从存储设备或用户终端110获取目标语音对话数据。具体地,在运输服务场景中,用户终端110可以通过实时录音地方式记录乘客与司机间的对话内容并将对话内容上传至存储设备。相应地,第二处理设备130可以通过从存储设备或用户终端110获取目标语音对话数据。

步骤604,第二处理设备130(例如,确定模块520)可以基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对目标语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列。

关于确定文本向量表示序列、音标向量表示序列和角色向量表示序列的相关描述可以参见步骤304,此处不再赘述。

步骤606,第二处理设备130(例如,输入模块530)可以将文本向量表示序列、音标向量表示序列和角色向量表示序列输入训练好的语音对话编码模型,确定目标语音对话数据对应的表示向量。

在一些实施例中,第二处理设备130可以将文本向量表示序列、音标向量表示序列和角色向量表示序列进行合并后输入至训练好的语音对话编码模型,关于对多个向量序列进行合并的描述可以参见步骤306,此处不再赘述。

如前文所述,训练好的语音对话编码模型可以综合目标语音对话数据的文本信息、音标信息和角色信息,从而准确理解其中的语义信息,并输出相应的表示向量。在一些实施例汇总,表示向量可以是包括[cls]符号和分隔符[sep]的多个向量序列。

步骤608,第二处理设备130(例如,处理模块540)可以将表示向量输入分类模型,确定目标语音对话数据的摘要。在本申请中,语音对话数据的摘要可以是可以反映语音对话数据的关键语义信息的内容(例如,关键词、关键句子、关键段落等)。

在一些实施例中,第二处理设备130还可以基于分类模型,对包含分隔符的表示向量进行二分类,确定该向量对应的句子是否为摘要,如果是摘要,则输出为1,如果不是摘要,则输出为0。

在一些实施例中,分类模型可以是神经网络模型、逻辑回归模型、支持向量机、随机森林等。在一些实施例中,可以基于带有标注的多个训练样本训练分类模型。在一些实施例中,训练样本可以是样本语音对话数据,标注可以是语音对话数据的摘要。在一些实施例中,可以通过人工方式或其他任何方式添加训练样本的标注。

具体地,将带有标注的训练样本输入初始分类模型,迭代更新模型参数直到训练完成。在一些实施例中,可以通过常用的方法进行模型训练,更新模型参数。例如,可以基于梯度下降法进行训练。

在一些实施例中,分类模型可以与预训练后的语音对话编码模型进行联合训练(该过程中可以对预训练后的语音对话编码模型进行微调),将带有标注的训练样本输入预训练后的语音对话编码模型,将其输出的表示向量输入分类模型,分类模型输出分类结果,进而基于分类结果同时更新语音对话编码模型和分类模型的参数。

在一些实施例中,第二处理设备130还可以获取摘要的句子文本,并对句子文本进行文法校正。文本校正是指改正摘要的句子文本中存在的字词错误、语法缺陷(例如,缺少主语、主语与谓语的语序搭配错误等)。例如,将摘要句子中的“取笑订单”修改为“取消订单”。又例如,在运输服务场景中,司机与乘客的语音对话为:乘客发言“师傅,你什么时候到?”,司机发言“马上来接”;摘要为司机的发言“马上过来”,在这种情况下,第二处理设备130可以将摘要校正为“我马上过来接你”。

在一些实施例中,可以通过文法校正模型进行文法校正。在一些实施例中,文法校正模型可以包括神经网络模型、n-gram模型等。

本申请还公开了一种用于对语音对话进行分类的方法,具体地,该方法可以包括下述步骤。

第二处理设备130(例如,获取模块510)可以获取目标语音对话数据。关于获取目标语音对话数据的更多细节可以参见步骤602的描述,此处不再赘述。

第二处理设备130(例如,确定模块520)可以基于文本嵌入模型、音标嵌入模型和角色嵌入模型,分别对目标语音对话数据进行向量转化,得到文本向量表示序列、音标向量表示序列和角色向量表示序列。更多细节可以参见步骤604的描述,此处不再赘述。

第二处理设备130(例如,输入模块530)可以将文本向量表示序列、音标向量表示序列和角色向量表示序列输入训练好的语音对话编码模型,确定目标语音对话数据对应的表示向量。关于表示向量的更多细节可以参见步骤606的描述,此处不再赘述。

第二处理设备130(例如,处理模块540)可以将表示向量输入分类模型,确定目标语音对话数据的意图分类结果。为了便于区分,在后文中将用于确定意图分类结果的分类模型称之为“意图分类模型”。在本申请中,语音对话数据的意图分类结果可以是指对语音对话中的多方用户发言的想法或语义的分类。例如,在运输服务场景中,如果需要根据语音对话判定订单的取消是哪一方的责任,那么意图分类结果可以是“司机责任”、“乘客责任”、“双方无责”、“无法判定”等。

在一些实施例中,意图分类模型可以是神经网络模型、逻辑回归模型、支持向量机、随机森林等。在一些实施例中,可以基于带有标注的多个训练样本训练意图分类模型。在一些实施例中,训练样本可以是样本语音对话数据,标注可以是语音对话数据的意图分类结果。在一些实施例中,可以通过人工方式或其他任何方式添加训练样本的标注。关于模型的具体训练过程与前文分类模型的训练过程类似,此处不再赘述。

本申请可能带来的有益效果包括但不限于:(1)通过融合音标信息和角色信息,可以提高语音识别中语义理解的准确性;(2)在将多个向量序列输入语音对话编码模型时,可以通过多种方式对多个向量序列进行合并和变换,可以更好地融合各个向量表示序列所体现的特征的不同作用;(3)在语音对话编码模型的训练过程中,通过角色预测任务、关键词预测任务和句子顺序预测任务,可以提高模型准确性;(4)基于语音对话编码模型确定语音对话的表示向量,并基于表示向量,通过分类模型确定语音对话的摘要或意图分类结果,可以提高语音对话处理的准确性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本申请中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。

最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。

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